:root{--sans: "Inter", system-ui, sans-serif;--display: "Space Grotesk", var(--sans);--mono: "JetBrains Mono", ui-monospace, monospace;--accent: #ff5a1f;--accent-hi: #ff7440;--accent-ink: #0a0b0d;--live: #00e676;--data: #5ddeff;--warn: #ffb020;--danger: #ff5a70;--radius: 10px;--radius-sm: 7px;--gap: 14px;--pad: 16px;--bar-h: 56px;--player-h: 64px;--max: 1160px;--font-micro: 10px;--font-small: 12px}:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0a0b0d;--bg-grid: rgba(255, 255, 255, .022);--surface: #121417;--surface-2: #171a1f;--surface-3: #1d2127;--border: #24282f;--border-hi: #343a44;--text: #e9ebee;--text-2: #9ba2ad;--text-3: #6c7480;--shadow: 0 8px 28px rgba(0, 0, 0, .45);--eq-dim: #3a4049}:root[data-theme=light]{color-scheme:light;--bg: #f3f4f6;--bg-grid: rgba(10, 11, 13, .03);--surface: #ffffff;--surface-2: #f7f8fa;--surface-3: #eef0f3;--border: #e3e6ea;--border-hi: #ccd1d8;--text: #14161a;--text-2: #565e6b;--text-3: #858d9a;--shadow: 0 8px 24px rgba(20, 22, 26, .08);--eq-dim: #d7dbe1;--live: #00a152;--data: #0b8fb8}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--sans);font-size:14px;line-height:1.45;color:var(--text);background:linear-gradient(var(--bg-grid) 1px,transparent 1px),linear-gradient(90deg,var(--bg-grid) 1px,transparent 1px),var(--bg);background-size:48px 48px,48px 48px,auto;min-height:100dvh}#root{min-height:100dvh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}button{font-family:inherit}.mono{font-family:var(--mono)}.topbar{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.topbar-in{max-width:var(--max);margin:0 auto;height:var(--bar-h);padding:0 clamp(12px,3vw,22px);display:flex;align-items:center;gap:14px}.brand{display:flex;align-items:center;gap:9px;min-width:0}.brand svg{flex:none}.brand-name{font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:-.02em;white-space:nowrap}.brand-name i{font-style:normal;color:var(--accent)}.brand-live{display:inline-flex;align-items:center;gap:5px;font:700 var(--font-micro)/1 var(--mono);letter-spacing:.09em;color:var(--accent-ink);background:var(--accent);padding:5px 7px;border-radius:4px}.brand-live.off{background:var(--surface-3);color:var(--text-2)}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse 1.6s infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 60%,transparent)}70%{box-shadow:0 0 0 7px transparent}to{box-shadow:0 0 0 0 transparent}}.topnav{display:flex;gap:2px;margin-left:auto}.topnav a{font-size:var(--font-small);font-weight:500;color:var(--text-2);padding:7px 10px;border-radius:var(--radius-sm)}.topnav a:hover{color:var(--text);background:var(--surface-2)}.icon-btn{width:36px;height:36px;flex:none;display:grid;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-2);cursor:pointer}.icon-btn:hover{color:var(--text);border-color:var(--border-hi)}.nav-toggle{display:none}main{flex:1;max-width:var(--max);width:100%;margin:0 auto;padding:clamp(14px,2.5vw,22px) clamp(12px,3vw,22px) calc(var(--player-h) + 28px);display:flex;flex-direction:column;gap:var(--gap)}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:6px 0 0}.section-title h2{margin:0;font-family:var(--display);font-size:15px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.section-title .hint{font:500 var(--font-micro)/1 var(--mono);color:var(--text-3);letter-spacing:.08em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad)}.card-tight{padding:12px}.deck{display:grid;gap:var(--gap);grid-template-columns:1fr}@media (min-width: 900px){.deck{grid-template-columns:1.7fr 1fr}}.deck-main{display:flex;flex-direction:column;gap:14px;min-width:0}.deck-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.chip{font:700 var(--font-micro)/1 var(--mono);letter-spacing:.08em;padding:5px 8px;border-radius:4px;text-transform:uppercase;background:var(--surface-3);color:var(--text-2);border:1px solid var(--border)}.chip.live{background:color-mix(in srgb,var(--live) 16%,transparent);color:var(--live);border-color:color-mix(in srgb,var(--live) 40%,transparent)}.chip.accent{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.chip.data{color:var(--data);border-color:color-mix(in srgb,var(--data) 35%,transparent)}.deck-now{min-width:0}.deck-label{font:700 var(--font-micro)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin:0 0 6px}.deck-title{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(24px,4.5vw,38px);line-height:1.05;letter-spacing:-.02em;overflow-wrap:anywhere}.deck-sub{margin:6px 0 0;color:var(--text-2);font-size:13px}.deck-transport{display:flex;align-items:center;gap:14px}.play-big{width:64px;height:64px;flex:none;border:0;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;cursor:pointer;transition:transform .12s ease,background .12s ease}.play-big:hover{background:var(--accent-hi);transform:scale(1.04)}.play-big:active{transform:scale(.97)}.eq{display:flex;align-items:flex-end;gap:3px;height:44px;flex:1;min-width:0;overflow:hidden}.eq span{flex:1;min-width:3px;max-width:7px;border-radius:2px;background:var(--eq-dim);height:30%;transform-origin:bottom}.eq.on span{background:var(--accent);animation:eq 1.05s ease-in-out infinite}.eq.on span:nth-child(3n){background:color-mix(in srgb,var(--accent) 55%,var(--data))}@keyframes eq{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.progress{height:4px;background:var(--surface-3);border-radius:2px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--accent);border-radius:2px;transition:width .6s linear}.progress-meta{display:flex;justify-content:space-between;margin-top:6px;font:500 10px/1 var(--mono);color:var(--text-3)}.signals{display:grid;gap:var(--gap);grid-template-columns:1fr}@media (min-width: 640px){.signals{grid-template-columns:1fr 1fr}}.signal{text-align:left;cursor:pointer;color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:9px;transition:border-color .12s ease,background .12s ease}.signal:hover{border-color:var(--border-hi);background:var(--surface-2)}.signal.active{border-color:var(--sig, var(--accent));box-shadow:inset 0 0 0 1px var(--sig, var(--accent))}.signal-top{display:flex;align-items:center;gap:8px}.sig-dot{width:10px;height:10px;border-radius:3px;background:var(--sig, var(--accent));flex:none}.signal-name{font-family:var(--display);font-weight:700;font-size:15px}.signal-badge{margin-left:auto;font:700 var(--font-micro)/1 var(--mono);padding:4px 6px;border-radius:4px;letter-spacing:.06em;background:var(--surface-3);color:var(--text-2)}.signal.active .signal-badge{background:var(--sig, var(--accent));color:var(--accent-ink)}.signal-track{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.signal-meta{display:flex;gap:12px;flex-wrap:wrap;font:500 10px/1.4 var(--mono);color:var(--text-3)}.signal-meta b{color:var(--text-2);font-weight:500}.stats{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}@media (min-width: 720px){.stats{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1000px){.stats{grid-template-columns:repeat(6,1fr)}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 12px;min-width:0}.stat .k{font:700 var(--font-micro)/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.stat .v{margin-top:7px;font-family:var(--mono);font-weight:700;font-size:16px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat .v.ok{color:var(--live)}.stat .v.acc{color:var(--accent)}.stat .v.small{font-size:12px;font-weight:500;color:var(--text-2)}.state-grid{display:grid;gap:10px;grid-template-columns:1fr}@media (min-width: 800px){.state-grid{grid-template-columns:1.4fr 1fr}}.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--border);font-size:13px}.kv:last-child{border-bottom:0}.kv .k{color:var(--text-2)}.kv .v{font-family:var(--mono);font-size:12px;font-weight:500;text-align:right}.endpoints{display:flex;flex-direction:column;gap:8px}.endpoint{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 11px;font:500 11px/1.4 var(--mono);color:var(--text-2);overflow:hidden}.endpoint b{color:var(--text);font-weight:700;flex:none}.endpoint span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player{position:fixed;left:0;right:0;bottom:0;z-index:50;height:calc(var(--player-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border)}.player-in{max-width:var(--max);margin:0 auto;height:var(--player-h);padding:0 clamp(12px,3vw,22px);display:flex;align-items:center;gap:12px}.play-sm{width:42px;height:42px;flex:none;border:0;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;cursor:pointer}.play-sm:hover{background:var(--accent-hi)}.player-info{flex:1;min-width:0}.player-title{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-sub{font:500 10px/1.4 var(--mono);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-sub .err{color:var(--danger)}.seg{display:flex;background:var(--surface-3);border:1px solid var(--border);border-radius:999px;padding:3px;gap:2px;flex:none}.seg button{border:0;background:transparent;color:var(--text-2);font:700 10px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:8px 11px;border-radius:999px;cursor:pointer}.seg button.on{background:var(--accent);color:var(--accent-ink)}.vol{display:none;align-items:center;gap:8px;flex:none}@media (min-width: 720px){.vol{display:flex}}.vol input{width:96px;accent-color:var(--accent)}.vol .val{font:500 10px/1 var(--mono);color:var(--text-3);width:30px}footer{border-top:1px solid var(--border);background:var(--surface);padding:18px clamp(12px,3vw,22px) calc(var(--player-h) + 22px)}.footer-in{max-width:var(--max);margin:0 auto;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;font-size:var(--font-small);color:var(--text-2)}.footer-in .brand-name{font-size:14px}.footer-links{display:flex;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:10px}.footer-links a{color:var(--text-3)}.footer-links a:hover{color:var(--accent)}@media (max-width: 640px){.topnav{display:none;position:absolute;top:var(--bar-h);left:0;right:0;flex-direction:column;gap:0;background:var(--surface);border-bottom:1px solid var(--border);padding:8px;box-shadow:var(--shadow)}.topnav.open{display:flex}.topnav a{padding:12px;font-size:14px}.nav-toggle{display:grid;margin-left:auto}.brand-live{display:none}.deck-title{font-size:clamp(22px,7vw,30px)}.play-big{width:56px;height:56px}.eq{height:36px}.stats{grid-template-columns:repeat(2,1fr)}.seg button{padding:9px 12px}.player-in{gap:10px}.player .vol{display:none}}@media (min-width: 641px) and (max-width: 1024px){.stats{grid-template-columns:repeat(3,1fr)}.deck-title{font-size:clamp(26px,4vw,34px)}}@media (prefers-reduced-motion: reduce){.dot,.eq.on span{animation:none}}.deck-transport-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.deck-transport-meta .mono{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--text-2)}.deck-transport-meta .dim{font-weight:500;color:var(--text-3);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spectrum{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.spectrum canvas{display:block}.now-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px}.now-line strong{font-family:var(--display);font-size:15px}.now-line .dim{color:var(--text-3);font-size:11px}.week-grid{display:grid;gap:10px;grid-template-columns:repeat(7,minmax(150px,1fr));overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.week-day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;scroll-snap-align:start;min-width:0;display:flex;flex-direction:column;gap:8px}.week-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.week-day-h{font:700 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);display:flex;justify-content:space-between}.week-day.today .week-day-h{color:var(--accent)}.week-slot{display:flex;gap:8px;align-items:baseline}.week-slot>.mono{font-size:10px;font-weight:700;color:var(--accent);flex:none}.week-slot strong{display:block;font-size:12px;font-weight:600;line-height:1.25}.week-slot span{display:block;font-size:10px;color:var(--text-3)}.footnote{margin:8px 0 0;font-size:9px;letter-spacing:.08em;color:var(--text-3);text-transform:uppercase}.dim{color:var(--text-3)}@media (max-width: 640px){.ticker-label{padding:8px;font-size:9px}.ticker-track{font-size:10px}.week-grid{grid-template-columns:repeat(7,minmax(140px,1fr))}.spectrum{border-radius:var(--radius-sm)}}@media (min-width: 641px) and (max-width: 1100px){.week-grid{grid-template-columns:repeat(7,minmax(150px,1fr))}}.news-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;max-height:min(100%,540px)}.news-list{list-style:none;margin:10px 0 0;padding:0 2px 4px;display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-height:0;overflow-y:auto;max-height:46vh;scrollbar-width:thin;scrollbar-color:var(--border-hi) transparent}.news-list::-webkit-scrollbar{width:8px}.news-list::-webkit-scrollbar-track{background:transparent}.news-list::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:4px;border:2px solid var(--surface)}.news-list::-webkit-scrollbar-thumb:hover{background:var(--accent)}.news-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:baseline;padding:8px 6px;border-bottom:1px dashed var(--border);font-size:13px}.news-item:last-child{border-bottom:0}.news-item.muted{color:var(--text-3);grid-template-columns:1fr}.news-item a{font-weight:600;line-height:1.3}.news-item a:hover{color:var(--accent)}.news-item time{font-size:10px;color:var(--text-3);flex:none}.news-src{font:700 9px/1 var(--mono);letter-spacing:.06em;padding:4px 5px;border-radius:3px;flex:none;background:var(--surface-3);color:var(--text-2);text-transform:uppercase}.news-src[data-src=Pitchfork]{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.news-src[data-src=Billboard]{color:var(--data);border:1px solid color-mix(in srgb,var(--data) 35%,transparent)}@media (max-width: 640px){.news-item{grid-template-columns:auto 1fr}.news-item time{grid-column:2}}.prog-box{display:flex;flex-direction:column;gap:12px}.day-tabs{display:flex;gap:4px;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:4px}.day-tabs button{position:relative;font:600 11px/1 var(--sans);letter-spacing:.02em;border:0;border-radius:6px;padding:8px 12px;background:transparent;color:var(--text-2);cursor:pointer;text-transform:capitalize}.day-tabs button:hover{color:var(--text);background:var(--surface-3)}.day-tabs button.on{background:var(--accent);color:var(--accent-ink)}.today-dot{position:absolute;top:3px;right:3px;width:5px;height:5px;border-radius:50%;background:var(--data)}.day-tabs button.on .today-dot{background:var(--accent-ink)}.slot-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.slot{display:flex;gap:10px;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;min-width:0}.slot:hover{border-color:var(--border-hi);background:var(--surface-3)}.slot-body{min-width:0;display:flex;flex-direction:column;gap:1px}.slot-time{font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.04em}.slot-name{font-size:13px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-desc{font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 640px){.slot-grid{grid-template-columns:1fr}.day-tabs button{padding:10px;flex:1;text-align:center}}.topbar-in{height:50px}.topbar .brand-name{font-size:16px}.deck{gap:12px}.deck-main{gap:12px;padding:14px}.deck-cover-row{display:flex;gap:14px;align-items:center;min-width:0}.deck-cover,.deck-cover-row svg{border-radius:10px;flex:none;box-shadow:var(--shadow)}.deck-cover-text{min-width:0}.deck-title{font-size:clamp(20px,3.6vw,30px)}.news-card{max-height:min(100%,480px)}.news-list{max-height:32vh;gap:0}.news-item{padding:6px 4px;font-size:12px;grid-template-columns:auto 1fr auto}.news-item a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}.breaking{letter-spacing:.06em;color:var(--accent)}.hour-strip{display:grid;grid-template-columns:repeat(24,1fr);gap:2px}.hour-cell{height:26px;border-radius:4px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 22%,var(--surface-2));color:var(--text-3);font-size:9px}.hour-cell[data-station=dance]{background:color-mix(in srgb,var(--live) 26%,var(--surface-2))}.hour-cell.now{outline:2px solid var(--accent);color:var(--text);font-weight:700}.now-line{padding:8px 10px}.now-line strong{font-size:14px}.slot.now{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.slot-time{letter-spacing:.03em}.player-in{gap:10px}.player-cover{border-radius:6px;flex:none;display:block}.player-links{display:none;gap:10px;flex:none;font-size:9px;letter-spacing:.05em;color:var(--text-3)}.player-links a:hover{color:var(--accent)}@media (min-width: 900px){.player-links{display:flex}}@media (max-width: 640px){.topbar-in{height:48px}.deck-cover-row{gap:10px}.deck-cover,.deck-cover-row svg{width:84px;height:84px}.deck-title{font-size:clamp(18px,6vw,24px)}.news-list{max-height:30vh}.hour-strip{grid-template-columns:repeat(12,1fr)}.hour-cell{height:24px}}.block-list{display:flex;flex-direction:column;gap:6px}.block-row{display:grid;grid-template-columns:6px auto 1fr auto auto;gap:12px;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px 10px 0;min-width:0}.block-row:hover{border-color:var(--border-hi);background:var(--surface-3)}.block-row.now{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.block-bar{width:6px;align-self:stretch;border-radius:3px}.block-time{font-size:11px;font-weight:700;color:var(--text-2);letter-spacing:.03em;white-space:nowrap}.block-body{min-width:0;display:flex;flex-direction:column;gap:1px}.block-body strong{font-family:var(--display);font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.block-body span{font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.block-style{font:700 9px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:5px 7px;border-radius:999px;border:1px solid;background:color-mix(in srgb,currentColor 8%,transparent);white-space:nowrap}.block-station{font-size:9px;color:var(--text-3);letter-spacing:.05em;white-space:nowrap}.block-now{font-size:9px}@media (max-width: 640px){.block-row{grid-template-columns:6px 1fr auto;grid-template-areas:"bar time style" "bar body body";gap:4px 10px}.block-bar{grid-area:bar}.block-time{grid-area:time}.block-body{grid-area:body}.block-style{grid-area:style;justify-self:end}.block-now{display:none}}
