:root{
  --navy:#142a52;--navy2:#203a68;--navy3:#31517f;--red:#df272f;--red2:#ff5e55;--gold:#cfbd44;
  --ice:#edf4fb;--sky:#dbe9f8;--ink:#15233b;--muted:#67758a;--paper:#f7f9fc;--white:#fff;--line:#e3e9f1;
  --violet:#7567b8;--teal:#418d8a;--shadow:0 16px 44px rgba(20,42,82,.11);--shadow-hover:0 24px 56px rgba(20,42,82,.17);--radius:26px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:linear-gradient(180deg,#f9fbfd 0,#eef4fa 100%);color:var(--ink);-webkit-font-smoothing:antialiased}
button,a,input{font:inherit}.app-shell{max-width:760px;margin:0 auto;min-height:100vh;background:rgba(255,255,255,.74);box-shadow:0 0 70px rgba(20,42,82,.08);padding-bottom:94px;overflow:hidden}.topbar{height:84px;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;background:rgba(248,251,254,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(225,233,242,.8)}.brand{display:inline-flex;border-radius:16px}.brand img{width:182px;height:58px;object-fit:contain;object-position:left center}.icon-btn{border:0;background:#fff;width:44px;height:44px;border-radius:16px;color:var(--navy);box-shadow:0 7px 20px rgba(20,42,82,.08);font-size:20px;cursor:pointer}.icon-btn span{display:block;transition:transform .22s ease}
.screen{display:none;padding:28px 24px 40px}.screen.active{display:block;animation:screenIn .36s cubic-bezier(.2,.78,.25,1)}@keyframes screenIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.hero-copy{animation:fadeUp .45s .04s both}@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.eyebrow{font-size:12px;font-weight:850;letter-spacing:.15em;color:#687993}h1{font-size:40px;line-height:1.03;letter-spacing:-.04em;margin:7px 0 10px;color:var(--navy)}h2{letter-spacing:-.025em}.lead{font-size:17px;line-height:1.5;margin:0 0 24px;color:var(--muted);max-width:590px}.section-intro{margin:-1px 0 20px;color:var(--muted);line-height:1.5}.premium-card{transition:transform .28s cubic-bezier(.2,.8,.25,1),box-shadow .28s ease,filter .28s ease}
.radio-card{position:relative;overflow:hidden;border-radius:32px;padding:28px;background:linear-gradient(135deg,#13294f 0%,#233f72 60%,#31517f 100%);color:#fff;box-shadow:0 22px 50px rgba(20,42,82,.24);margin-bottom:20px}.radio-card:before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.18),rgba(255,255,255,0) 70%);right:-90px;top:-110px}.radio-card:after{content:"";position:absolute;inset:auto auto -110px -70px;width:230px;height:230px;background:radial-gradient(circle,rgba(207,189,68,.15),transparent 67%);border-radius:50%}.radio-card__head{position:relative;z-index:2;font-size:12px;letter-spacing:.14em;font-weight:800;display:flex;align-items:center;gap:9px;opacity:.9}.live-dot{width:9px;height:9px;border-radius:50%;background:#ff4a50;box-shadow:0 0 0 6px rgba(255,74,80,.13);animation:livePulse 1.8s infinite}@keyframes livePulse{0%,100%{box-shadow:0 0 0 5px rgba(255,74,80,.12)}50%{box-shadow:0 0 0 10px rgba(255,74,80,.025)}}.signal-orbit{position:absolute;right:16px;top:17px;width:150px;height:135px;opacity:.16;pointer-events:none}.signal-orbit i{position:absolute;right:18px;top:23px;border:2px solid rgba(255,255,255,.9);border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(45deg);animation:signal 2.6s infinite ease-out}.signal-orbit i:nth-child(1){width:42px;height:42px;right:49px;top:50px}.signal-orbit i:nth-child(2){width:78px;height:78px;right:31px;top:32px;animation-delay:.15s}.signal-orbit i:nth-child(3){width:116px;height:116px;right:12px;top:13px;animation-delay:.3s}@keyframes signal{0%,100%{opacity:.55;transform:rotate(45deg) scale(.96)}50%{opacity:1;transform:rotate(45deg) scale(1.03)}}.radio-card h2{position:relative;z-index:2;font-size:32px;margin:36px 0 5px}.radio-card p{position:relative;z-index:2;opacity:.78;margin:0 0 20px}.player-row{position:relative;z-index:2;display:flex;align-items:center;gap:14px}.play-btn{width:62px;height:62px;border-radius:50%;border:0;background:#fff;color:var(--red);font-size:22px;font-weight:900;box-shadow:0 10px 30px rgba(0,0,0,.18);cursor:pointer;display:grid;place-items:center}.play-btn span{display:block;transition:transform .18s ease}.player-meta{display:flex;flex-direction:column;min-width:0;flex:1}.player-meta strong{font-size:15px}.player-meta span{font-size:12px;opacity:.66;margin-top:4px}.volume{width:92px;accent-color:white}
.tv-card{min-height:250px;border-radius:32px;overflow:hidden;position:relative;background:radial-gradient(circle at 80% 20%,rgba(255,196,192,.85) 0 6%,transparent 33%),linear-gradient(135deg,#ef4a4e,#d81723 56%,#94141f);box-shadow:0 18px 46px rgba(180,21,34,.2);color:#fff;margin-bottom:32px}.tv-card:before{content:"DS TV";position:absolute;right:-15px;bottom:-24px;font-size:102px;font-weight:900;letter-spacing:-.08em;color:rgba(255,255,255,.08);transition:transform .45s ease}.tv-glow{position:absolute;width:210px;height:210px;border-radius:50%;right:-54px;top:-70px;background:radial-gradient(circle,rgba(255,255,255,.3),transparent 66%);animation:floatGlow 5s ease-in-out infinite}@keyframes floatGlow{50%{transform:translate(-13px,14px) scale(1.08)}}.tv-overlay{position:relative;z-index:2;padding:28px;display:flex;min-height:250px;flex-direction:column;align-items:flex-start;justify-content:flex-end}.pill{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:8px 11px;background:rgba(255,255,255,.17);font-size:11px;font-weight:900;letter-spacing:.1em;backdrop-filter:blur(8px)}.pill-dot{width:7px;height:7px;border-radius:50%;background:#fff;animation:blink 1.5s infinite}@keyframes blink{50%{opacity:.35}}.tv-card h2{font-size:30px;margin:17px 0 6px}.tv-card p{margin:0 0 18px;opacity:.86;max-width:520px}.tv-button{background:#fff;color:#9d1721;border:0;border-radius:15px;padding:14px 17px;font-size:13px;font-weight:900;letter-spacing:.04em;cursor:pointer;display:inline-flex;align-items:center;gap:10px;box-shadow:0 9px 22px rgba(105,10,17,.14)}.tv-button b,.text-btn b{font-size:17px;transition:transform .2s ease}.section-head{display:flex;align-items:end;justify-content:space-between;margin:34px 0 15px}.section-head.compact{margin-bottom:12px}.section-head h2{font-size:27px;margin:3px 0 0;color:var(--navy)}.text-btn{border:0;background:transparent;color:var(--red);font-size:13px;font-weight:800;cursor:pointer;display:flex;align-items:center;gap:7px;padding:8px 2px}.cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.news-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 10px 30px rgba(20,42,82,.05);cursor:pointer;transition:transform .25s cubic-bezier(.2,.78,.25,1),box-shadow .25s ease,border-color .25s ease}.news-card .img{height:118px;background:linear-gradient(135deg,var(--sky),#fff);background-size:cover;background-position:center;transition:transform .45s cubic-bezier(.2,.75,.25,1),filter .3s}.news-card .copy{position:relative;padding:15px 15px 17px;background:#fff}.news-card h3{margin:0 0 7px;font-size:16px;line-height:1.2;color:var(--navy)}.news-card p{font-size:13px;line-height:1.4;color:var(--muted);margin:0}.news-card .card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.news-card .card-category{font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:var(--accent,var(--navy2))}.news-card .card-arrow{color:var(--red);font-size:18px;transform:translateX(-2px);transition:transform .2s ease}.event-list{display:flex;flex-direction:column;gap:12px}.event-item{display:grid;grid-template-columns:72px 1fr auto;gap:15px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:21px;padding:13px 14px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;cursor:default}.event-item[data-url]{cursor:pointer}.event-date{border-radius:16px;background:var(--ice);color:var(--navy);text-align:center;padding:8px 4px}.event-date b{font-size:21px;display:block}.event-date span{font-size:10px;font-weight:800;letter-spacing:.08em}.event-item h3{margin:0 0 4px;font-size:16px}.event-item p{margin:0;color:var(--muted);font-size:12px}.event-arrow{font-size:23px;color:var(--red);transition:transform .2s ease}.radio-hero{display:flex;gap:18px;align-items:center;background:linear-gradient(145deg,#fff,var(--ice));border:1px solid var(--line);border-radius:26px;padding:18px;margin:22px 0 30px}.radio-hero img{width:92px;height:92px;border-radius:24px;object-fit:cover}.radio-hero h2{margin:0 0 6px;color:var(--navy)}.radio-hero p{margin:0;color:var(--muted);line-height:1.45}.schedule-list{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden}.schedule-item{display:grid;grid-template-columns:66px 1fr auto;gap:14px;padding:16px;border-bottom:1px solid var(--line);align-items:center;transition:background .2s ease,transform .2s ease}.schedule-item:last-child{border:0}.schedule-time{font-weight:900;color:var(--red)}.schedule-item h3{margin:0;font-size:15px}.schedule-item p{margin:3px 0 0;color:var(--muted);font-size:12px}.badge{font-size:10px;padding:6px 8px;border-radius:99px;background:var(--ice);color:var(--navy);font-weight:800}.standalone{margin-top:23px}.menu-list{display:flex;flex-direction:column;gap:12px;margin-top:25px}.menu-list a{display:grid;grid-template-columns:32px 1fr auto;gap:10px;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:19px;padding:18px;align-items:center;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.menu-list i{font-style:normal;font-size:20px;transition:transform .22s ease}.menu-list b{font-size:24px;color:#91a0b4;transition:transform .2s ease}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(760px,100%);height:78px;padding:8px 14px max(8px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-top:1px solid var(--line);z-index:30}.bottom-nav button{border:0;background:transparent;color:#8b98aa;font-size:19px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;position:relative}.bottom-nav button i{font-style:normal;transition:transform .22s cubic-bezier(.2,.85,.25,1);line-height:1}.bottom-nav button span{font-size:10px;font-weight:700;transition:color .2s}.bottom-nav button.active{color:var(--red)}.bottom-nav button.active:after{content:"";position:absolute;top:0;width:22px;height:3px;border-radius:99px;background:var(--red);animation:navMark .25s ease}@keyframes navMark{from{transform:scaleX(.2);opacity:0}to{transform:none;opacity:1}}.empty{background:#fff;border:1px dashed #cfd8e4;border-radius:20px;padding:20px;color:var(--muted);font-size:13px}.toast{position:fixed;z-index:99;left:50%;bottom:95px;transform:translateX(-50%);background:#101a2c;color:#fff;border-radius:14px;padding:12px 16px;font-size:13px;box-shadow:var(--shadow);animation:toastIn .25s ease}@keyframes toastIn{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}

.topics-section{margin-top:7px}.topic-featured{display:grid;grid-template-columns:1fr;gap:11px}.topic-card{--topic:#cfbd44;position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--topic),#fff 65%);border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--topic),#fff 91%),#fff 70%);padding:17px 18px;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;transition:transform .22s ease,box-shadow .22s ease,border-color .22s}.topic-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--topic)}.topic-card h3{margin:0 0 4px;color:var(--navy);font-size:16px}.topic-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.topic-card b{font-size:25px;color:var(--topic);transition:transform .2s ease}.category-rail-wrap{margin:2px -24px 20px;padding:3px 24px;overflow:hidden}.category-rail{display:flex;gap:8px;overflow-x:auto;padding:4px 0 9px;scrollbar-width:none}.category-rail::-webkit-scrollbar{display:none}.category-chip{--topic:var(--navy2);white-space:nowrap;border:1px solid var(--line);background:#fff;color:#637187;border-radius:999px;padding:10px 13px;font-size:12px;font-weight:800;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,color .2s ease,background .2s ease,border-color .2s ease}.category-chip.active{background:var(--topic);border-color:var(--topic);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--topic),transparent 78%)}

.news-dialog{width:min(680px,94vw);max-height:88vh;border:0;border-radius:26px;padding:0;box-shadow:0 30px 90px rgba(17,36,65,.28);overflow:auto;color:var(--ink)}.news-dialog::backdrop{background:rgba(10,23,43,.55);backdrop-filter:blur(5px)}.news-dialog[open]{animation:dialogIn .25s cubic-bezier(.2,.8,.25,1)}@keyframes dialogIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}.dialog-close{position:sticky;float:right;top:13px;margin:13px 13px -55px 0;z-index:4;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 7px 20px rgba(10,25,49,.13);color:var(--navy);font-size:25px;cursor:pointer}.dialog-image{height:230px;background:linear-gradient(135deg,var(--sky),#fff);background-size:cover;background-position:center}.dialog-copy{padding:25px}.category-label{font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}.dialog-copy h2{font-size:30px;line-height:1.1;margin:0;color:var(--navy)}.dialog-date{font-size:12px;color:#8a98aa;margin:9px 0 20px}.dialog-body{font-size:15px;line-height:1.7;color:#45546a;white-space:pre-wrap}

.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.34);transform:scale(0);animation:ripple .55s linear;pointer-events:none}@keyframes ripple{to{transform:scale(4);opacity:0}}
.interactive{position:relative;-webkit-tap-highlight-color:transparent}.interactive:focus-visible,.news-card:focus-visible,.event-item:focus-visible,.category-chip:focus-visible,.topic-card:focus-visible{outline:3px solid rgba(49,105,174,.28);outline-offset:3px}
@media(hover:hover) and (pointer:fine){
  .premium-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}.tv-card:hover:before{transform:translateX(-8px) scale(1.02)}
  .icon-btn:hover span{transform:rotate(7deg) scale(1.05)}.play-btn:hover{transform:translateY(-2px) scale(1.04)}.play-btn:hover span{transform:scale(1.08)}
  .tv-button:hover b,.text-btn:hover b{transform:translate(3px,-1px)}.tv-button:hover{box-shadow:0 12px 28px rgba(105,10,17,.2)}
  .news-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(20,42,82,.12);border-color:#d7e0eb}.news-card:hover .img{transform:scale(1.035);filter:saturate(1.06)}.news-card:hover .card-arrow{transform:translateX(3px)}
  .event-item[data-url]:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(20,42,82,.09);border-color:#d7e0eb}.event-item[data-url]:hover .event-arrow{transform:translateX(4px)}
  .schedule-item:hover{background:#fbfcfe}.menu-list a:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(20,42,82,.08);border-color:#d7e0eb}.menu-list a:hover i{transform:scale(1.08) rotate(-3deg)}.menu-list a:hover b{transform:translateX(4px)}
  .bottom-nav button:hover i{transform:translateY(-2px) scale(1.08)}.topic-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(20,42,82,.08)}.topic-card:hover b{transform:translateX(4px)}.category-chip:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(20,42,82,.07)}
}
.interactive:active,.news-card:active,.event-item[data-url]:active,.topic-card:active,.category-chip:active{transform:scale(.975)!important}.bottom-nav button:active i{transform:scale(.88)!important}
@media(max-width:560px){.screen{padding-left:18px;padding-right:18px}.topbar{padding-left:18px;padding-right:18px}.brand img{width:158px}.cards-grid{grid-template-columns:1fr}h1{font-size:34px}.radio-card{padding:23px}.radio-card h2{font-size:28px}.volume{display:none}.event-item{grid-template-columns:66px 1fr auto}.category-rail-wrap{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}.dialog-image{height:195px}.dialog-copy{padding:21px}.dialog-copy h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}

/* v0.5 — final polish: spokojniejsza hierarchia, mniej elementów, czytelniejsze sterowanie */
body{background:radial-gradient(circle at 50% -12%,#ffffff 0,#f4f8fc 35%,#edf3f8 100%)}
.app-shell{max-width:800px;background:rgba(255,255,255,.78);box-shadow:0 0 60px rgba(20,42,82,.06)}
.topbar{height:78px;padding:10px 24px;background:rgba(250,252,254,.91);border-bottom-color:rgba(222,230,239,.78)}
.brand img{width:188px;height:54px}.top-kicker{font-size:10px;letter-spacing:.16em;font-weight:900;color:#7d8aa0;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 10px}
.screen{padding-top:25px}.eyebrow{font-size:11px;letter-spacing:.14em}h1{font-size:38px}.lead{font-size:16px;margin-bottom:22px}
.radio-card{border-radius:27px;padding:26px;background:linear-gradient(138deg,#142a52 0%,#203a68 62%,#2d4d79 100%);box-shadow:0 18px 42px rgba(20,42,82,.2)}
.radio-card:before{opacity:.72}.radio-card:after{opacity:.72}.radio-card h2{font-size:30px;margin-top:32px}.play-btn{width:58px;height:58px;box-shadow:0 8px 22px rgba(0,0,0,.16)}
.tv-card{border-radius:27px;min-height:238px;background:radial-gradient(circle at 84% 16%,rgba(255,210,205,.54) 0 5%,transparent 30%),linear-gradient(138deg,#e14348,#cc202c 58%,#8d1720);box-shadow:0 16px 38px rgba(170,24,35,.16)}
.tv-card:before{font-size:94px;bottom:-20px}.tv-overlay{min-height:238px;padding:26px}.tv-card h2{font-size:28px}.tv-button{border-radius:13px;padding:13px 15px;box-shadow:0 7px 18px rgba(105,10,17,.12)}
.tv-card.offline{background:linear-gradient(138deg,#283b5d,#203451 58%,#182a44);box-shadow:0 16px 38px rgba(20,42,82,.15)}.tv-card.offline .pill-dot{display:none}.tv-card.offline .tv-glow{opacity:.35}
.section-head{margin-top:31px}.section-head h2{font-size:25px}.cards-grid{gap:12px}.news-card{border-radius:19px;box-shadow:0 7px 22px rgba(20,42,82,.045)}.news-card .copy{padding:14px 14px 16px}.news-card .img{height:116px}.news-card h3{font-size:15px}.news-card p{font-size:12.5px}
.event-list{gap:10px}.event-item{border-radius:18px;padding:12px 13px}.event-date{border-radius:14px}.radio-hero{border-radius:21px}.schedule-list{border-radius:20px}.topic-card{border-radius:18px}.category-chip{padding:9px 12px}
.bottom-nav{width:min(800px,100%);height:74px;grid-template-columns:repeat(4,1fr);padding-left:24px;padding-right:24px}.bottom-nav button{font-size:18px}.bottom-nav button span{font-size:10px}.bottom-nav button.active:after{width:20px}
.news-dialog{border-radius:22px}.dialog-copy{padding:23px}.dialog-copy h2{font-size:28px}
@media(hover:hover) and (pointer:fine){.premium-card:hover{transform:translateY(-2px);box-shadow:0 21px 48px rgba(20,42,82,.14)}.news-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(20,42,82,.09)}.play-btn:hover{transform:translateY(-1px) scale(1.025)}.topic-card:hover,.event-item[data-url]:hover{transform:translateY(-1px)}}
.interactive:active,.news-card:active,.event-item[data-url]:active,.topic-card:active,.category-chip:active{transform:scale(.985)!important}
@media(max-width:560px){.topbar{height:72px}.brand img{width:154px;height:50px}.top-kicker{font-size:9px;padding:7px 8px}.screen{padding-top:21px}h1{font-size:32px}.lead{font-size:15px}.radio-card{border-radius:23px;padding:21px}.radio-card h2{font-size:27px}.tv-card{border-radius:23px;min-height:225px}.tv-overlay{min-height:225px;padding:22px}.tv-card h2{font-size:26px}.bottom-nav{padding-left:12px;padding-right:12px}}

/* v0.6 — compact DiakoniaSan identity lockup */
.brand{display:inline-flex;align-items:center;gap:9px;border-radius:16px;min-width:0}
.brand .brand-mark{width:48px;height:48px;object-fit:contain;flex:0 0 48px;filter:drop-shadow(0 4px 7px rgba(20,42,82,.08));transition:transform .22s ease,filter .22s ease}
.brand .brand-wordmark{width:147px;height:46px;object-fit:contain;object-position:left center;transition:transform .22s ease}
@media(hover:hover){.brand:hover .brand-mark{transform:translateY(-2px) scale(1.035);filter:drop-shadow(0 7px 10px rgba(20,42,82,.12))}.brand:hover .brand-wordmark{transform:translateX(2px)}}
@media(max-width:560px){.brand{gap:7px}.brand .brand-mark{width:42px;height:42px;flex-basis:42px}.brand .brand-wordmark{width:126px;height:42px}.top-kicker{font-size:8px;padding:6px 7px;letter-spacing:.13em}}
@media(max-width:380px){.brand .brand-mark{width:39px;height:39px;flex-basis:39px}.brand .brand-wordmark{width:112px}.top-kicker{display:none}}
