@font-face{font-family:VT323;src:url('/fonts/VT323.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Archivo Narrow';src:url('/fonts/ArchivoNarrow.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
:root{color-scheme:dark;--ink:#e9edf5;--muted:#97a5bc;--surface:#131e33;--line:#2a3953;--gold:#f8b553;--blue:#507eff;font-family:'Archivo Narrow','Segoe UI',Arial,sans-serif;background:#0b1220;color:var(--ink)}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,summary,select{cursor:pointer}button{border:1px solid var(--line);border-radius:5px;background:#1b2a43;color:var(--ink);padding:9px 14px;min-height:40px}button:hover{background:#2a3e5d}button:disabled{opacity:.5;cursor:wait}button[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:#152038}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #8cadff;outline-offset:3px}.accent{background:var(--gold);border-color:var(--gold);color:#142036}.accent:hover{background:#ffca79}a{color:#a6c4ff}.masthead{height:90px;border-bottom:1px solid var(--line);padding:16px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink);letter-spacing:2px;font-weight:700}.brand small{display:block;color:var(--muted);font-size:11px;letter-spacing:3px;margin-top:4px}.brand-mark{font-family:VT323,monospace;font-size:38px;letter-spacing:-7px;line-height:1;color:var(--gold);padding-right:9px}.brand-mark span{color:#83a2ff}.header-actions{display:flex;align-items:center;gap:24px}.live-label{font-size:11px;letter-spacing:2px;color:var(--muted)}.live-label>span{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8cdda8;margin-right:5px}.studio{display:grid;grid-template-columns:minmax(0,1fr) 330px;max-width:1720px;margin:0 auto}.viewer{padding:28px 32px;min-width:0}.viewer-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--gold);font-weight:600}h1,h2,p{margin:0}h1{font-size:30px;font-weight:500;margin-top:4px}h2{font-size:20px;font-weight:500;margin:6px 0 15px}.viewer-heading>p{font-size:13px;color:var(--muted);max-width:220px;text-align:right}.stage{background:#050913;min-height:300px;height:calc(100vh - 265px);max-height:850px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #23304a;box-shadow:0 14px 64px #0006}.screen{position:relative;flex-shrink:0;background:#101b78;overflow:hidden}.screen canvas{display:block;width:100%;height:100%}.screen.half-resolution #weather-canvas{image-rendering:pixelated}.screen.gpu-crt #weather-canvas{opacity:0}.screen.gpu-crt.clean #weather-canvas{opacity:1}.screen.scanline-fallback:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(transparent 0 2px,#0002 2px 3px)}.transport{display:flex;align-items:center;gap:14px;padding:16px 0 10px;font-size:14px}.transport-buttons{display:flex;gap:5px}.transport-buttons button{padding:6px 12px;min-height:34px}#resolution-label{color:var(--muted);margin-left:auto;font-size:12px}.transport+#scene-progress{display:block;width:100%;height:2px;border:0;background:#273149;appearance:none}.transport+#scene-progress::-webkit-progress-bar{background:#273149}.transport+#scene-progress::-webkit-progress-value{background:var(--gold)}.scene-nav{display:flex;gap:7px;margin-top:16px;flex-wrap:wrap}.scene-nav button{min-height:34px;padding:5px 14px}.scene-nav button[aria-pressed=true]{background:#253854;border-color:#8caccf;color:#fff}.credits{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;font-size:12px;color:var(--muted)}#photo-credit{overflow-wrap:anywhere}.text-button{background:transparent;padding:2px;border:0;color:#b6c8e7;min-height:32px;white-space:nowrap}.controls{border-left:1px solid var(--line);padding:5px 24px 30px;background:#10192b}.control-section{padding:25px 0;border-bottom:1px solid var(--line)}label{display:block;font-size:13px;color:#b5c4dc;margin:13px 0 0}input:not([type=checkbox]):not([type=range]):not([type=file]),select{display:block;width:100%;background:#0e1728;color:var(--ink);border:1px solid #33435f;border-radius:4px;min-height:40px;padding:8px 10px;margin-top:6px;min-width:0}input[type=range]{display:block;width:100%;accent-color:var(--gold);margin-top:12px}input[type=checkbox]{accent-color:var(--gold);width:17px;height:17px;flex-shrink:0;margin:0}.check{display:flex;align-items:center;gap:9px;min-height:26px}.search-row{display:flex;gap:6px;align-items:center}.search-row>input{min-width:0}.search-row>button{margin-top:6px}.search-results{display:grid;gap:5px;margin-top:10px}.search-results:empty{margin:0}.search-results button{text-align:left;font-size:14px}.search-results small{display:block;color:var(--muted);margin-top:3px}.two-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.two-columns>button{margin-top:12px;padding:8px 6px}.font-switch{display:flex;background:#0a1324;border-radius:6px;padding:4px;gap:4px}.font-switch button{flex:1;background:transparent;border:0}.font-switch button[data-font=retro]{font-family:VT323,monospace;font-size:24px}.font-switch button[aria-pressed=true]{background:var(--gold)}.font-switch small{display:block;font-family:'Archivo Narrow',sans-serif;font-size:9px;letter-spacing:1px;margin-top:3px}.section-title{display:flex;align-items:center;gap:8px;justify-content:space-between}.chip{font-size:10px;letter-spacing:.5px;border:1px solid #465573;border-radius:3px;padding:3px 6px;color:#aebcce;white-space:nowrap}details{margin-top:14px;font-size:13px}summary{color:#bdcce2;padding:8px 0}details form>button{margin-top:12px}details ol{padding-left:20px;line-height:1.7;color:#aebed4}.hint{font-size:12px;line-height:1.5;color:var(--muted);margin-top:12px}.file-label input{display:block;max-width:100%;font-size:11px;margin-top:8px;color:var(--muted)}.full-width{width:100%;margin-top:12px}.legal{font-size:12px;line-height:1.6;color:var(--muted);padding-top:20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.exit-tv{position:fixed;bottom:15px;right:18px;z-index:20;opacity:.18}.exit-tv:hover,.exit-tv:focus-visible{opacity:1}body.tv-mode .masthead,body.tv-mode .controls,body.tv-mode .viewer-heading,body.tv-mode .transport,body.tv-mode .scene-nav,body.tv-mode .credits,body.tv-mode progress{display:none}body.tv-mode .studio{display:block;max-width:none}body.tv-mode .viewer{padding:0}body.tv-mode .stage{height:100dvh;max-height:none;border:0;background:#000}
@media(min-width:1500px){.viewer{padding:36px 54px}.controls{padding-inline:28px}.studio{grid-template-columns:minmax(0,1fr) 370px}}
@media(max-width:900px){.studio{grid-template-columns:1fr}.controls{border-left:0;border-top:1px solid var(--line);padding-inline:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px}.legal{grid-column:1/-1}.viewer{padding:22px}.stage{height:min(70vh,600px)}.masthead{padding-inline:22px}.live-label{display:none}}
@media(max-width:520px){.controls{grid-template-columns:1fr}.masthead{padding-inline:16px;height:78px}.brand{font-size:13px;letter-spacing:1px;gap:9px}.brand small{font-size:9px}.brand-mark{font-size:32px}.header-actions{gap:0}.header-actions button{font-size:12px;padding:8px}.viewer{padding:16px 12px}.viewer-heading{gap:8px;align-items:flex-start}h1{font-size:25px}.viewer-heading>p{max-width:140px;font-size:11px}.stage{min-height:210px;height:56vh}.transport{gap:9px;font-size:12px}.transport-buttons button{padding:5px 9px}#resolution-label{font-size:10px}.scene-nav{gap:5px}.scene-nav button{padding:5px 10px}.credits{align-items:flex-start;font-size:11px}.control-section{padding-top:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.photo-feed-list{border:1px solid var(--line);border-radius:5px;margin:13px 0 0;padding:10px 11px 12px;min-width:0}.photo-feed-list legend{font-size:13px;color:#b5c4dc;padding:0 4px}.photo-feed-list .check{margin:6px 0;line-height:1.3}.photo-feed-list .hint{margin-top:9px}.photo-origin-link{color:inherit;text-decoration:none}.photo-origin-link:hover,.photo-origin-link:focus-visible{color:#fff;text-decoration:underline}.photo-origin-hotspot{position:absolute;z-index:3;display:block;overflow:hidden;opacity:0;color:transparent;cursor:pointer;white-space:nowrap}.photo-origin-hotspot:focus-visible{opacity:.92;color:#fff;background:#071329e8;outline:2px solid #ffd06b;outline-offset:1px;text-decoration:underline}
#crt-display{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;image-rendering:auto}
.screen.gpu-crt::before,.screen.gpu-crt::after{display:none}
.screen.clean #crt-display{display:none}
.brand-monogram{display:block;object-fit:contain;flex-shrink:0}
.brand-wordmark{display:block;width:280px;height:auto;max-width:100%}
.brand>span{min-width:0}.brand small{margin-top:0}
.tv-toolbar{position:fixed;right:18px;bottom:18px;z-index:40;opacity:.9}.tv-toolbar:hover,.tv-toolbar:focus-within{opacity:1}.tv-mode .screen{cursor:pointer}
#crt-settings>summary{color:var(--gold);font-weight:600;padding-block:12px}
.update-notice{padding:10px 24px;background:#263b5c;color:#fff;display:flex;align-items:center;justify-content:center;gap:14px}.tv-mode .update-notice{display:none}
.track-list{max-height:230px;overflow:auto;padding-left:22px;color:var(--muted)}.track-list li{margin-block:6px}.track-button{width:100%;text-align:left;font-size:12px;padding:7px;min-height:32px;overflow-wrap:anywhere}
@media(min-width:901px){.viewer{position:sticky;top:0;align-self:start}body.tv-mode .viewer{position:static}}
@media(max-width:520px){.brand-wordmark{width:185px}.brand-monogram{width:30px;height:33px}.brand{gap:5px}.brand small{font-size:8px;letter-spacing:2px}.masthead{gap:8px}.header-actions button{white-space:nowrap;font-size:11px;padding:7px}}
.header-actions{gap:14px}.menu-launchers{display:flex;gap:5px}.menu-launchers button{min-height:34px;padding:5px 10px;background:transparent;font-size:13px}.menu-launchers button[aria-expanded=true]{border-color:var(--gold);color:var(--gold)}.header-actions #settings-menu{display:none}.quick-music-toggle{display:flex;align-items:center;gap:5px;min-height:34px;padding:5px 9px;background:transparent;font-size:12px;white-space:nowrap}.menu-head-content{min-width:0;flex:1}.menu-music-toggle{display:block;width:100%;min-height:36px;margin-top:10px;padding:5px 10px}
.menu-backdrop{position:fixed;inset:0;z-index:29;border:0;border-radius:0;background:#0003;padding:0;min-height:0}
.controls{display:none;border:1px solid var(--line);border-radius:8px;padding:0 22px 24px;background:var(--surface);}
body.menu-open .controls:not([hidden]){display:block;position:fixed;z-index:30;right:16px;top:104px;width:min(390px,calc(100vw - 32px));max-height:calc(100dvh - 120px);overflow:auto;box-shadow:0 18px 65px #000b}
.menu-head{position:sticky;z-index:2;top:0;margin-inline:-22px;padding:16px 18px 12px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}.menu-head h2{margin:3px 0 8px}.menu-head-actions{display:flex;align-items:flex-start;gap:6px;flex-shrink:0}.menu-head-actions #tv-menu-exit{min-height:38px;padding:6px 10px;font-size:13px}.menu-head>#close-menu{font-size:24px;line-height:1;min-width:38px;padding:4px}.menu-shortcuts{display:flex;gap:4px;flex-wrap:wrap}.menu-shortcuts button{min-height:30px;padding:3px 7px;font-size:12px}.control-section[hidden]{display:none!important}.controls .control-section{padding:18px 0}.controls .legal{padding-bottom:8px}
.photo-transport{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.photo-transport button{min-height:32px;padding:5px 10px;font-size:13px}.photo-transport #photo-count{margin-left:auto;font-size:12px;color:var(--muted)}
.satellite-options{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
input[type=color]{display:block;width:100%;height:42px;padding:3px;margin-top:6px;background:#0e1728;border:1px solid #33435f;border-radius:4px}
:root[data-theme="phosphor"]{--ink:#e0ffe8;--muted:#8eae9a;--surface:#10231d;--line:#2c5143;--gold:#79e6a5;--blue:#42d782;background:#09150f;color:var(--ink)}
:root[data-theme="amber"]{--ink:#fff2d5;--muted:#b8a886;--surface:#2a2015;--line:#5b442b;--gold:#ffb84e;--blue:#df8e37;background:#17100a;color:var(--ink)}
:root[data-theme="violet"]{--ink:#f1eaff;--muted:#a99cbe;--surface:#201a30;--line:#4c3e65;--gold:#d39bff;--blue:#9c83f5;background:#100c18;color:var(--ink)}
:root{--signal-menu-frame:#071531f5;--signal-menu-surface:#0b193b;--signal-menu-control:#172f79;--signal-menu-accent:var(--gold)}
:root[data-theme="phosphor"]{--signal-menu-frame:#10231df5;--signal-menu-surface:#10231d;--signal-menu-control:#1d362b}
:root[data-theme="amber"]{--signal-menu-frame:#20180ff5;--signal-menu-surface:#2a2015;--signal-menu-control:#3b2b19}
:root[data-theme="violet"]{--signal-menu-frame:#171225f5;--signal-menu-surface:#201a30;--signal-menu-control:#302748}
:root[data-theme="graphite"]{color-scheme:dark;--ink:#e9edf2;--muted:#a0a6af;--surface:#1b1e23;--line:#3b414a;--gold:#c7cdd5;--blue:#8793a1;--signal-menu-frame:#15181df5;--signal-menu-surface:#1b1e23;--signal-menu-control:#292e35;background:#0d0f12;color:var(--ink)}
:root[data-theme="whiteblue"]{color-scheme:light;--ink:#18324f;--muted:#5c7088;--surface:#f1f6fc;--line:#c1d2e5;--gold:#1769aa;--blue:#3d82bd;--signal-menu-frame:#f7faff;--signal-menu-surface:#f1f6fc;--signal-menu-control:#e2edf8;background:#e9f1f9;color:var(--ink)}
:root[data-theme="custom"]{--signal-menu-frame:var(--surface);--signal-menu-surface:var(--surface);--signal-menu-control:color-mix(in srgb,var(--surface),var(--ink) 9%)}
:root[data-theme="graphite"] button:not(.accent){background:#25292f;border-color:var(--line);color:var(--ink)}
:root[data-theme="graphite"] button:hover:not(.accent){background:#343a42}
:root[data-theme="graphite"] :is(input:not([type=checkbox]):not([type=range]):not([type=file]):not([type=color]),select){background:#24282e;border-color:var(--line);color:var(--ink)}
:root[data-theme="graphite"] :is(.font-switch,.photo-feed-list){background:#121519;border-color:var(--line)}
:root[data-theme="graphite"] .stage{background:#070809;border-color:var(--line)}
:root[data-theme="graphite"] :is(.youtube-player-dock,.install-dialog){background:var(--surface);border-color:var(--gold);color:var(--ink)}
:root[data-theme="whiteblue"] button:not(.accent){background:#e2ebf5;border-color:var(--line);color:var(--ink)}
:root[data-theme="whiteblue"] button:hover:not(.accent){background:#d1e1f0}
:root[data-theme="whiteblue"] :is(input:not([type=checkbox]):not([type=range]):not([type=file]):not([type=color]),select){background:#fff;border-color:#a9bfd8;color:var(--ink)}
:root[data-theme="whiteblue"] :is(.font-switch,.photo-feed-list){background:#dce8f4;border-color:var(--line)}
:root[data-theme="whiteblue"] .scene-nav button[aria-pressed=true]{background:#c4d9ee;border-color:#1769aa;color:#18324f}
:root[data-theme="whiteblue"] :is(a,.text-button){color:#155f9e}
:root[data-theme="whiteblue"] .stage{background:#dce7f3;border-color:var(--line);box-shadow:0 14px 54px #59718b30}
:root[data-theme="whiteblue"] :is(.youtube-player-dock,.install-dialog){background:var(--surface);border-color:var(--gold);color:var(--ink)}
:root[data-theme="whiteblue"] .card-detail{background:linear-gradient(135deg,#f8fbff,#e6f0fa);color:var(--ink)}
:root[data-theme="whiteblue"] .card-detail :is(header,dt,p){color:var(--muted)}
:root[data-theme="whiteblue"] .card-detail dl div{background:#1b4a7410;border-top-color:#8aabc9}
:root[data-theme="graphite"] .card-detail{background:linear-gradient(135deg,#22262c,#15181d);border-color:var(--gold);color:var(--ink)}
:root[data-theme="graphite"] .card-detail :is(header,h2){color:var(--gold)}
:root[data-theme="graphite"] .card-detail :is(dt,p){color:var(--muted)}
:root[data-theme="graphite"] .screen>.signal-select{background:var(--signal-menu-frame);border-color:var(--gold)}
:root[data-theme="whiteblue"] .screen>.signal-select{background:var(--signal-menu-frame);border-color:var(--gold)}
.screen>.card-detail{background:var(--signal-menu-frame);border-color:var(--gold);color:var(--ink)}
.screen>.card-detail h2,.screen>.card-detail header{color:var(--gold)}
.screen>.signal-select{background:var(--signal-menu-frame);border-color:var(--gold)}
body.tv-mode .masthead,body.tv-mode .viewer-heading,body.tv-mode .transport,body.tv-mode .photo-transport,body.tv-mode .scene-nav,body.tv-mode .credits,body.tv-mode progress{display:none}
body.tv-mode .controls{display:none}body.tv-mode.menu-open .controls:not([hidden]){display:block;top:16px;right:16px;max-height:calc(100dvh - 32px);}
body.tv-mode .studio{display:block;max-width:none}body.tv-mode .viewer{padding:0}body.tv-mode .stage{height:100dvh;max-height:none;border:0;background:#000}
body.tv-mode.menu-open .tv-toolbar{display:none}
@media(max-width:900px){.controls{grid-template-columns:1fr;display:none}.viewer{position:static}.menu-launchers{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:3px}.menu-launchers button{padding-inline:7px;font-size:12px}}
@media(min-width:601px) and (max-width:900px){.masthead{padding-inline:12px}.brand-wordmark{width:172px}.brand-monogram{width:32px;height:34px}.brand{gap:7px;letter-spacing:1px}.header-actions{gap:4px}.menu-launchers{flex-wrap:nowrap;gap:2px}.menu-launchers button{padding:3px 5px;font-size:11px;min-height:31px}.header-actions #tv-mode{white-space:nowrap;flex:none;font-size:12px;padding:6px 8px;min-height:34px}}
@media(min-width:901px){.header-actions #tv-mode{white-space:nowrap;flex:none}}
@media(max-width:600px){.header-actions{gap:5px}.live-label,.menu-launchers{display:none}.masthead{height:74px;padding:8px 10px}.brand-wordmark{width:138px}.brand-monogram{width:25px;height:28px}.header-actions{flex-wrap:nowrap;justify-content:flex-end}.header-actions #settings-menu{display:block}.header-actions #settings-menu,.header-actions #tv-mode{font-size:11px;padding:5px 7px;min-height:30px;white-space:nowrap;flex:none}.header-actions #quick-music-toggle{font-size:16px;padding:3px 6px;min-height:30px;min-width:32px;justify-content:center;flex:none}.quick-music-label{display:none}body.menu-open .controls:not([hidden]){left:8px;right:8px;top:auto;bottom:8px;width:auto;max-height:64dvh;border-radius:10px}.menu-head{padding-block:10px}.menu-shortcuts{gap:3px}.menu-shortcuts button{font-size:11px;padding:3px 6px}.photo-transport{gap:4px}.photo-transport button{font-size:11px;padding:4px 6px}}
body.tv-mode .stage{width:100vw;height:100dvh}.screen.clean #weather-canvas{opacity:1}
.studio{grid-template-columns:minmax(0,1fr);max-width:none}
.studio{display:block;width:100%;max-width:none}
body:not(.tv-mode) .viewer{display:flex;flex-direction:column;width:100%;max-width:1720px;min-height:calc(100dvh - 90px);margin:0 auto;padding:clamp(12px,2vw,28px) clamp(12px,3vw,42px)}
body:not(.tv-mode) .stage{flex:1 1 auto;height:auto;min-height:240px;max-height:none}
body:not(.tv-mode) .viewer-heading,body:not(.tv-mode) .transport,body:not(.tv-mode) .scene-nav,body:not(.tv-mode) .credits{flex-shrink:0}
@media(max-width:600px){body:not(.tv-mode) .viewer{min-height:calc(100dvh - 74px);padding:12px}body:not(.tv-mode) .viewer-heading{margin-bottom:12px}body:not(.tv-mode) .stage{min-height:220px}body:not(.tv-mode) .scene-nav{margin-top:9px}body:not(.tv-mode) .credits{margin-top:9px}}
.icons-page{min-height:100vh;background:#0b1220;color:var(--ink)}.icon-gallery{max-width:1200px;margin:0 auto;padding:34px 28px 54px}.icon-gallery h1{font-size:38px;margin:8px 0}.icon-gallery>p:not(.eyebrow){color:var(--muted);margin:0 0 22px}.icon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:10px}.icon-card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:9px;text-align:center;min-width:0}.icon-card canvas{width:112px;height:96px;max-width:100%;image-rendering:pixelated}.icon-card h2{font-size:15px;margin:3px 0 0;color:var(--ink)}
@media(max-width:800px){.icon-gallery{padding:22px 16px}.icon-gallery h1{font-size:30px}.icon-gallery>p:not(.eyebrow){margin-bottom:14px}.icon-grid{gap:7px}.icon-card{padding:6px}.icon-card canvas{width:90px;height:76px}.icon-card h2{font-size:13px}}
.stage{touch-action:pan-y}
#menu-backdrop:hover,#menu-backdrop:focus{background:#0003;outline:0}
body.menu-open.menu-external #menu-backdrop,body.menu-open.menu-external #menu-backdrop:hover,body.menu-open.menu-external #menu-backdrop:focus{background:transparent}
.alerts-section>.hint:first-of-type{margin-bottom:8px}.alert-actions{margin-top:10px}.alert-actions>button{margin-top:0}.alerts-list{display:grid;gap:10px;margin-top:10px}.alert-card{min-width:0;padding:12px;border:1px solid #354b70;border-left:4px solid #d8a53d;border-radius:5px;background:#0c172a}.alert-card.is-official{border-left-color:#ec554b}.alert-card.is-demo{border-left-color:#f7b74d;background:#16213a}.alert-card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.alert-badge{font-size:10px;font-weight:700;letter-spacing:1px;color:#ffd27c}.is-official .alert-badge{color:#ff958c}.alert-severity{font-size:11px;color:#cfdbec;text-transform:uppercase;letter-spacing:.5px}.alert-card h3{margin:7px 0;font-size:17px;line-height:1.2}.alert-description{font-size:13px;line-height:1.45;color:#d1dcef;overflow-wrap:anywhere}.alert-metadata{display:grid;gap:5px;margin:10px 0 0;font-size:12px}.alert-metadata>div{display:grid;grid-template-columns:minmax(64px,auto) 1fr;gap:8px}.alert-metadata dt{color:#94a9ca}.alert-metadata dd{margin:0;color:#e6eefb;overflow-wrap:anywhere}.alert-card details{margin-top:8px}.alert-card details p{font-size:12px;line-height:1.5;color:#d1dcef}.alert-card>a{display:inline-block;margin-top:8px;font-size:12px}.alert-empty{padding:14px;color:var(--muted);font-size:13px;border:1px dashed #394967;border-radius:5px}.alert-test-box{margin:18px 0 0;padding:10px;border:1px solid #344560;border-radius:5px}.alert-test-box legend{padding:0 5px;color:#c8d5ea;font-size:13px}.alert-test-box>.hint{margin-top:0}.alert-test-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}.alert-test-buttons button{padding-inline:5px;font-size:12px}
@media(min-width:601px) and (max-width:900px){.menu-launchers button{padding:3px 4px;font-size:10px}}
.alert-card.is-official{animation:ws-alert-pulse 2.6s ease-in-out infinite}@keyframes ws-alert-pulse{0%,100%{box-shadow:0 0 0 rgba(239,79,70,0)}50%{box-shadow:0 0 14px rgba(239,79,70,.24)}}@media(prefers-reduced-motion:reduce){.alert-card.is-official{animation:none}}

/* Dialog and compact header refinements. */
.controls{overscroll-behavior:contain;scrollbar-gutter:stable}.menu-head-actions #close-menu{display:grid;place-items:center;width:40px;height:40px;min-width:40px;padding:0;font-size:24px;line-height:1}.menu-head h2:focus{outline:none}.viewer-heading>div,.transport>span{min-width:0}.viewer-heading h1{overflow-wrap:anywhere}.transport #scene-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transport #resolution-label{white-space:nowrap;flex-shrink:0}.credits #photo-credit{min-width:0}
@media(max-width:1100px){.menu-launchers{display:none}.header-actions #settings-menu{display:block}.masthead{gap:12px}.header-actions{gap:8px}}
@media(max-width:380px){.brand-wordmark{width:110px}.brand small{font-size:7px;letter-spacing:1px}.header-actions #tv-mode,.header-actions #settings-menu{font-size:10px;padding-inline:5px}}

/* Give the channel a definite viewport budget so its controls remain in view. */
body:not(.tv-mode):has(.studio){display:flex;flex-direction:column;height:100dvh}.masthead,.update-notice{flex-shrink:0}body:not(.tv-mode) .studio{flex:1 1 0;min-height:460px}body:not(.tv-mode) .viewer{height:100%;min-height:0}body:not(.tv-mode) .stage{flex:1 1 0;min-height:160px}

.photo-transport button:disabled{cursor:default}
/* Integrated channel: one frame, readable dialogs, existing screen geometry. */
.integrated-channel .masthead,.integrated-channel .viewer-heading{display:none}
.integrated-channel .studio{padding:12px;max-width:none;width:100%}
.integrated-channel .viewer{max-width:1500px;width:100%;margin:auto;padding:10px;background:#0a1630;border:1px solid #334970;border-radius:10px;gap:8px}
.channel-dock{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid #334970;padding:10px 4px 2px}
.channel-dock .scene-nav{display:flex;flex-wrap:wrap;margin:0;gap:5px}
.channel-actions{display:flex;gap:6px;align-items:center}
.channel-actions #settings-menu{display:inline-flex!important}
.integrated-channel .credits{font-size:11px;margin:0;opacity:.8}
.integrated-channel .transport{margin:0;padding:0 4px}
.card-hotspots{position:absolute;inset:0;z-index:3;pointer-events:none}
.card-hotspots[hidden]{display:none}
.card-hotspot{position:absolute;pointer-events:auto;border:1px solid transparent!important;background:transparent!important;border-radius:2px;padding:0;cursor:pointer;min-height:0;box-shadow:none!important}
.card-hotspot:hover,.card-hotspot:focus-visible{outline:none!important;background:transparent!important}
.card-hotspot::after{content:none!important;display:none!important}
.card-detail{width:min(640px,calc(100vw - 28px));max-height:85dvh;overflow:auto;padding:24px;border:2px solid #ffd06b;background:linear-gradient(135deg,#172f79,#0b193b);color:#eef5ff;box-shadow:0 18px 80px #000a;border-radius:6px}
.card-detail::backdrop{background:#030b22a8;backdrop-filter:blur(2px)}
.card-detail header{display:flex;align-items:center;justify-content:space-between;gap:15px;color:#ffd06b;font-size:13px;letter-spacing:.08em}
.card-detail header span{overflow-wrap:anywhere}
.card-detail header button{flex-shrink:0}
.card-detail h2{font-size:clamp(24px,4vw,34px);line-height:1.15;margin:20px 0;border-bottom:1px solid #ffd06b;padding-bottom:16px;overflow-wrap:anywhere}
.card-detail dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}
.card-detail dl div{padding:14px;background:#ffffff08;border-top:1px solid #7c9bca}
.card-detail dt{color:#b7cbea;font-size:15px;line-height:1.3}
.card-detail dd{margin:8px 0 0;font-size:26px;line-height:1.15;overflow-wrap:anywhere}
.card-detail p{color:#b7cbea;font-size:13px;line-height:1.5;margin-bottom:0}
.tv-mode .channel-dock{display:none}
@media(max-width:600px){.integrated-channel .studio{padding:4px}.integrated-channel .viewer{padding:5px}.channel-dock{gap:8px}.channel-dock .scene-nav{width:100%;justify-content:center}.channel-actions{width:100%;justify-content:center}.card-detail{padding:16px}.card-detail dl{gap:8px}.card-detail dd{font-size:23px}}
/* Signal UI: DOM is an invisible interaction layer; pixels are drawn into weather-canvas. */
.screen>.signal-ui{opacity:0!important;pointer-events:auto;box-shadow:none!important;filter:none!important;transform:none!important}
.screen.signal-retro .signal-ui,.screen.signal-retro .signal-ui *{font-family:VT323,monospace!important}
.screen.signal-retro .signal-ui{font-size:18px}
body.menu-open .screen>.controls:not([hidden]){display:block;position:absolute;z-index:30;inset:6%;width:88%;height:88%;max-height:none;padding:0 18px 18px;overflow:auto;border-radius:0;background:#071531;border:1px solid #ffd06b;overscroll-behavior:contain;scrollbar-width:none}
.screen>.controls .menu-head{margin-inline:-18px;padding:10px 12px;background:#0a1c43;gap:6px}
.screen>.controls .menu-head h2{font-size:22px;margin-bottom:5px}
.screen>.controls .menu-shortcuts button{font-size:14px;min-height:28px}
.screen>.controls .menu-head .eyebrow{font-size:11px}
.screen>.controls .menu-music-toggle{margin-top:6px;min-height:28px}
.screen>.controls .control-section{padding:14px 0}
.screen>.controls label,.screen>.controls details,.screen>.controls summary{font-size:16px}
.screen>.controls .hint,.screen>.controls .legal{font-size:14px}
.screen>.controls .menu-head-actions #close-menu{width:30px;height:30px;min-height:30px;padding:0}
.screen>.menu-backdrop:not([hidden]){position:absolute;inset:0;z-index:29;opacity:0;background:transparent}
.screen>.card-detail{display:block;position:absolute;z-index:35;inset:6%;width:88%;height:88%;max-height:none;margin:0;overflow:auto;padding:18px;background:#071531;border-radius:0;border:1px solid #ffd06b;scrollbar-width:none;overscroll-behavior:contain}
.screen>.card-detail h2{font-size:26px;margin:14px 0;padding-bottom:12px}
.screen>.card-detail header{font-size:13px;letter-spacing:0}
.screen>.card-detail header button{min-height:30px;padding:5px 9px}
.screen>.card-detail dl{gap:10px}
.screen>.card-detail dl div{padding:10px}
.screen>.card-detail dd{font-size:26px}
.screen>.card-detail dt{font-size:16px}
.screen>.card-detail p{font-size:14px}
.screen>.signal-select{position:absolute;z-index:40;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding:5px;border:1px solid #ffd06b;background:#071531;scrollbar-width:none}
.signal-select button{display:block;width:100%;text-align:left;margin:2px 0;font-size:16px}
.signal-select button[aria-selected=true]{color:#ffd06b;border-color:#ffd06b}
.screen>.card-detail #regional-place-picker{display:grid;gap:12px;padding:12px 0 18px}
.screen>.card-detail #regional-place-picker[hidden]{display:none!important}
.screen>.card-detail #regional-place-picker label{margin:0;color:#b7cbea;font-size:17px}
.screen>.card-detail #regional-place-picker select{margin-top:7px;min-height:48px;width:100%}
.screen>.card-detail #regional-place-apply{width:100%;min-height:46px;background:#f8b553;border-color:#f8b553;color:#142036}
.screen>.card-detail #regional-place-hint{margin:0}
.detail-open .card-hotspots{display:none}
@media(max-width:520px){.screen>.controls .menu-head{padding:7px}.screen>.controls .menu-shortcuts{gap:2px}.screen>.controls .menu-shortcuts button{font-size:12px;padding:2px 4px;min-height:24px}.screen>.controls .menu-head h2{font-size:19px}.screen>.card-detail{padding:12px}.screen>.card-detail dl div{padding:7px}.screen>.card-detail dd{font-size:22px}.screen>.card-detail h2{font-size:23px}.screen>.card-detail header{font-size:11px}}
body.tv-mode.integrated-channel .studio{padding:0;height:100dvh}
body.tv-mode.integrated-channel .viewer{padding:0;border:0;border-radius:0;max-width:none;margin:0;height:100dvh}
body.tv-mode.integrated-channel #scene-progress{display:none!important}
.satellite-map-input{position:absolute;z-index:2;inset:0;opacity:0;pointer-events:none;touch-action:none;cursor:grab}.satellite-map-input:active{cursor:grabbing}.satellite-map-input .ol-viewport{touch-action:none}
.screen>.scene-edge-navigation{position:absolute;z-index:6;inset:0;pointer-events:none}
.screen>.scene-edge-navigation[hidden]{display:none}
.screen>.scene-edge-navigation .scene-edge-hotspot{position:absolute;top:0;bottom:0;width:clamp(48px,10%,88px);min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent!important;box-shadow:none!important;opacity:0;pointer-events:auto;touch-action:none;cursor:pointer}
.screen>.scene-edge-navigation #scene-edge-previous{left:0;cursor:w-resize}
.screen>.scene-edge-navigation #scene-edge-next{right:0;cursor:e-resize}
.screen>.scene-edge-navigation .scene-edge-hotspot:hover,.screen>.scene-edge-navigation .scene-edge-hotspot:focus-visible{background:transparent!important;border-color:transparent!important;outline:none!important}
@media(max-width:520px){
  body.menu-open .screen>.controls:not([hidden]){inset:3%;width:94%;height:94%;padding:0 10px 10px;scrollbar-width:thin;scrollbar-color:#8496b5 #0b1731}
  .screen>.controls .menu-head{margin-inline:-10px;padding:5px 8px;background:#0a1c43;gap:4px}
  .screen>.controls .menu-head h2{font-size:17px;margin:2px 0 4px}
  .screen>.controls .menu-shortcuts{gap:2px;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
  .screen>.controls .menu-shortcuts button{font-size:10px;padding:2px 3px;min-height:22px}
  .screen>.controls .menu-music-toggle{margin-top:4px;min-height:24px;padding:2px 7px;font-size:11px}
  .screen>.controls .control-section{padding:8px 0}
  .screen>.controls .control-section>.eyebrow{display:none}
  .screen>.controls .section-title h2{font-size:18px;margin:0 0 4px}
  .screen>.controls label{margin-top:7px}
  .screen>.controls .hint{margin-top:6px;line-height:1.3}
}

/* The channel menu is a quiet hamburger with a transparent, touch-friendly hit area. */
#settings-menu,#tv-menu{box-sizing:border-box;width:38px;height:38px;min-width:38px;min-height:38px;padding:0;border:0;border-radius:0;background:transparent;color:#c7d4e7;box-shadow:none;font-size:0;line-height:0;opacity:.78;display:inline-grid;place-items:center;flex:none}
#settings-menu::before,#tv-menu::before{content:"";display:block;width:17px;height:13px;background:linear-gradient(currentColor 0 0) top/100% 1.5px no-repeat,linear-gradient(currentColor 0 0) center/100% 1.5px no-repeat,linear-gradient(currentColor 0 0) bottom/100% 1.5px no-repeat;transition:color .16s ease,opacity .16s ease}
#settings-menu:hover,#tv-menu:hover,#settings-menu[aria-expanded="true"],#tv-menu[aria-expanded="true"]{background:transparent;border-color:transparent;color:var(--gold);opacity:1}
#settings-menu:focus-visible,#tv-menu:focus-visible{outline:2px solid #8cadff;outline-offset:2px}
.header-actions #settings-menu,.channel-actions #settings-menu{display:inline-grid!important;padding:0;min-height:38px;min-width:38px}
.channel-actions #settings-menu{display:inline-grid!important}
.tv-toolbar #tv-menu{border:0;background:transparent;box-shadow:none}

/* Larger, more spacious menus for 90s CRT and low-resolution signals. */
body.menu-readable .controls{font-size:16px}
body.menu-readable.menu-external .controls:not([hidden]){width:min(430px,calc(100vw - 32px))}
body.menu-readable .controls .control-section{padding:28px 0}
body.menu-readable .controls .control-section h2,body.menu-readable .controls #menu-heading{font-size:24px;line-height:1.25}
body.menu-readable .controls label,body.menu-readable .controls details,body.menu-readable .controls summary{font-size:16px;line-height:1.45}
body.menu-readable .controls label{margin-top:17px}
body.menu-readable .controls input:not([type=checkbox]):not([type=range]):not([type=file]),body.menu-readable .controls select{min-height:46px;padding:10px 12px;margin-top:8px;font-size:16px}
body.menu-readable .controls button:not(#close-menu){min-height:44px;padding-block:9px;font-size:15px}
body.menu-readable .controls .check{min-height:38px;gap:12px}
body.menu-readable .controls input[type=checkbox]{width:20px;height:20px}
body.menu-readable .controls .hint,body.menu-readable .controls .legal{font-size:14px;line-height:1.65;margin-top:15px}
body.menu-readable .controls .control-section>.eyebrow{font-size:12px}
body.menu-readable .controls .menu-head{gap:12px;padding-block:16px}
body.menu-readable .controls .menu-shortcuts{gap:7px}
body.menu-readable .controls .menu-shortcuts button{min-height:36px;padding:6px 9px;font-size:14px}
body.menu-readable .controls .menu-head-actions #close-menu{width:46px;height:46px;min-width:46px;min-height:46px;font-size:26px}
body.menu-readable .screen>.controls:not([hidden]){padding:0 18px 18px}
body.menu-readable .screen>.controls .menu-head{padding:12px 18px}
body.menu-readable .screen>.controls .menu-head h2{font-size:23px}
body.menu-readable .screen>.controls .control-section{padding:18px 0}
body.menu-readable .screen>.controls .menu-shortcuts{flex-wrap:wrap;overflow:visible}
body.menu-readable .screen>.controls .menu-shortcuts button{font-size:14px;min-height:34px;padding:5px 8px}
body.menu-readable .screen>.controls .menu-music-toggle{min-height:38px;margin-top:8px;padding:7px 10px}

/* Readable type for the integrated signal menu and every detail panel. */
body.integrated-channel.menu-open.menu-external .controls:not([hidden]){width:min(440px,calc(100vw - 32px))}
body.integrated-channel.menu-open .controls{font-size:17px}
body.integrated-channel.menu-open .controls .control-section{padding:22px 0}
body.integrated-channel.menu-open .controls .control-section h2,body.integrated-channel.menu-open .controls #menu-heading{font-size:25px;line-height:1.25}
body.integrated-channel.menu-open .controls label,body.integrated-channel.menu-open .controls details,body.integrated-channel.menu-open .controls summary{font-size:17px;line-height:1.45}
body.integrated-channel.menu-open .controls label{margin-top:15px}
body.integrated-channel.menu-open .controls input:not([type=checkbox]):not([type=range]):not([type=file]),body.integrated-channel.menu-open .controls select{min-height:48px;padding:10px 12px;font-size:17px}
body.integrated-channel.menu-open .controls button:not(#close-menu){min-height:42px;padding:7px 10px;font-size:16px}
body.integrated-channel.menu-open .controls .check{min-height:38px;gap:12px}
body.integrated-channel.menu-open .controls input[type=checkbox]{width:20px;height:20px}
body.integrated-channel.menu-open .controls .hint,body.integrated-channel.menu-open .controls .legal{font-size:15px;line-height:1.55}
body.integrated-channel.menu-open .controls .eyebrow{font-size:13px}
body.integrated-channel.menu-open .screen>.controls .menu-head{padding:14px 16px;gap:10px}
body.integrated-channel.menu-open .screen>.controls .menu-head h2{font-size:28px;margin:5px 0 10px}
body.integrated-channel.menu-open .screen>.controls .menu-head .eyebrow{font-size:14px}
body.integrated-channel.menu-open .screen>.controls .menu-shortcuts{gap:6px;flex-wrap:wrap;overflow:visible}
body.integrated-channel.menu-open .screen>.controls .menu-shortcuts button{min-height:38px;padding:5px 8px;font-size:16px}
body.integrated-channel.menu-open .screen>.controls .menu-music-toggle{min-height:42px;margin-top:10px;font-size:17px}
body.integrated-channel.menu-open .screen>.controls .control-section{padding:18px 0}
body.integrated-channel.menu-open .screen>.controls label,body.integrated-channel.menu-open .screen>.controls details,body.integrated-channel.menu-open .screen>.controls summary{font-size:19px;line-height:1.4}
body.integrated-channel.menu-open .screen>.controls label{margin-top:13px}
body.integrated-channel.menu-open .screen>.controls input:not([type=checkbox]):not([type=range]):not([type=file]),body.integrated-channel.menu-open .screen>.controls select{min-height:48px;padding:9px 11px;font-size:18px}
body.integrated-channel.menu-open .screen>.controls button:not(#close-menu){min-height:42px;padding:6px 9px;font-size:17px}
body.integrated-channel.menu-open .screen>.controls .hint,body.integrated-channel.menu-open .screen>.controls .legal{font-size:16px;line-height:1.5}
body.integrated-channel.menu-open .screen>.controls .control-section>.eyebrow{font-size:14px}
body.integrated-channel.menu-open .screen>.controls .menu-head-actions #close-menu{width:42px;height:42px;min-height:42px;min-width:42px;font-size:25px}
body.integrated-channel .screen>.card-detail{inset:6% 6% auto;width:88%;height:auto;max-height:88%;padding:22px}
body.integrated-channel .screen>.card-detail header{font-size:18px;line-height:1.35;gap:18px}
body.integrated-channel .screen>.card-detail header button{min-height:42px;padding:6px 12px;font-size:17px}
body.integrated-channel .screen>.card-detail h2{font-size:36px;line-height:1.15;margin:14px 0;padding-bottom:14px}
body.integrated-channel .screen>.card-detail dl{gap:14px}
body.integrated-channel .screen>.card-detail dl div{padding:14px}
body.integrated-channel .screen>.card-detail dt{font-size:21px;line-height:1.35}
body.integrated-channel .screen>.card-detail dd{font-size:36px;line-height:1.15;margin-top:8px}
body.integrated-channel .screen>.card-detail p{font-size:18px;line-height:1.5;margin-top:14px}
body.integrated-channel .screen>.signal-select button{font-size:19px;min-height:40px;padding:7px 10px}
@media(max-width:520px){
  body.integrated-channel.menu-open .screen>.controls .menu-head{padding:10px 12px;gap:8px}
  body.integrated-channel.menu-open .screen>.controls .menu-head h2{font-size:23px;margin:3px 0 6px}
  body.integrated-channel.menu-open .screen>.controls .menu-shortcuts{gap:5px}
  body.integrated-channel.menu-open .screen>.controls .menu-shortcuts button{font-size:14px;min-height:34px;padding:5px 7px}
  body.integrated-channel.menu-open .screen>.controls .control-section{padding:13px 0}
  body.integrated-channel.menu-open .screen>.controls label,body.integrated-channel.menu-open .screen>.controls details,body.integrated-channel.menu-open .screen>.controls summary{font-size:17px}
  body.integrated-channel.menu-open .screen>.controls .hint,body.integrated-channel.menu-open .screen>.controls .legal{font-size:14px}
  body.integrated-channel .screen>.card-detail{inset:5% 4% auto;width:92%;max-height:90%;padding:17px}
  body.integrated-channel .screen>.card-detail h2{font-size:29px}
  body.integrated-channel .screen>.card-detail header{font-size:15px}
  body.integrated-channel .screen>.card-detail dt{font-size:18px}
  body.integrated-channel .screen>.card-detail dd{font-size:30px}
  body.integrated-channel .screen>.card-detail p{font-size:16px}
}
#signal-menu-launcher{position:absolute;z-index:8;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;opacity:0}
#signal-menu-launcher:hover{background:transparent;border-color:transparent}
#signal-menu-launcher:focus-visible{opacity:.9;background:#08152ddd;outline:2px solid #ffd06b;outline-offset:1px}
#city-search-hotspot{position:absolute;z-index:5;display:block;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;opacity:0;color:transparent;cursor:pointer}
#city-search-hotspot[hidden]{display:none}
.screen>.card-detail{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior-y:contain;scrollbar-gutter:stable}
.screen>.card-detail #regional-change-open{display:block;width:100%;min-height:48px;margin:0 0 16px;padding:9px 12px;border:1px solid #ffd06b;background:#14274a;color:#ffd06b;text-align:left;font-size:18px;line-height:1.3;cursor:pointer}
.screen>.card-detail #regional-change-open[hidden]{display:none!important}
.screen>.card-detail #regional-place-picker{min-height:0;touch-action:pan-y}
.screen>.card-detail .regional-place-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.screen>.card-detail #regional-place-search{box-sizing:border-box;width:100%;min-width:0;min-height:46px;margin:0;padding:9px 11px;border:1px solid #587299;background:#0c1b35;color:#f2f6ff;font:inherit;font-size:17px}
.screen>.card-detail #regional-place-search-button,.screen>.card-detail .regional-place-actions button{min-height:46px;padding:8px 12px;font-size:17px}
.screen>.card-detail #regional-place-results{box-sizing:border-box;display:grid;gap:5px;min-height:110px;max-height:36dvh;overflow-x:hidden;overflow-y:auto;padding:5px;border:1px solid #526b91;background:#08152a;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#f8b553 #08152a}
.screen>.card-detail .regional-place-option{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;width:100%;min-height:46px;padding:7px 10px;border:1px solid #263c60;background:#112448;color:#eef5ff;text-align:left;font:inherit;font-size:17px;line-height:1.25;cursor:pointer;touch-action:pan-y}
.screen>.card-detail .regional-place-option[aria-selected="true"]{border-color:#ffd06b;background:#24385a;color:#ffd06b}
.screen>.card-detail .regional-place-option small{color:#b7cbea;font-size:.82em;line-height:1.25;overflow-wrap:anywhere}
.screen>.card-detail .regional-place-empty{margin:0;padding:12px;color:#b7cbea}
.screen>.card-detail .regional-place-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:8px}
.screen>.card-detail #regional-place-apply{margin:0}
.screen>.card-detail #regional-place-apply:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:520px){.screen>.card-detail #regional-place-results{max-height:32dvh}.screen>.card-detail .regional-place-option{min-height:52px}.screen>.card-detail #regional-change-open{font-size:17px}.screen>.card-detail .regional-place-search-row{grid-template-columns:minmax(0,1fr) auto}}
#city-search-hotspot:hover{background:transparent;border-color:transparent}
#city-search-hotspot:focus-visible{opacity:.94;background:#08152de8;outline:2px solid #ffd06b;outline-offset:1px;color:#fff}
.screen>.signal-retry-hotspot{position:absolute;z-index:9;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;opacity:0;cursor:pointer}
.screen>.signal-retry-hotspot:hover{background:transparent;border-color:transparent;box-shadow:none}
.screen>.signal-retry-hotspot:focus-visible{opacity:0;background:transparent;outline:none;box-shadow:none}
.viewer-heading>p[data-state="offline"]{padding:6px 9px;border:1px solid #b84b48;border-radius:3px;background:#210d18;color:#ffe5b0;font-weight:700}
#clock-settings-hotspot{position:absolute;z-index:6;display:block;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;opacity:0;color:transparent;cursor:pointer}
#clock-settings-hotspot[hidden]{display:none}
#clock-settings-hotspot:hover{background:transparent;border-color:transparent}
#clock-settings-hotspot:focus-visible{opacity:.94;background:#08152de8;outline:2px solid #ffd06b;outline-offset:1px;color:#fff}
#alert-strip-hotspot,#alert-dismiss-hotspot{position:absolute;z-index:7;display:block;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;opacity:0;color:transparent;cursor:pointer}
#alert-strip-hotspot[hidden],#alert-dismiss-hotspot[hidden]{display:none}
#alert-strip-hotspot:hover,#alert-dismiss-hotspot:hover{background:transparent;border-color:transparent}
#alert-strip-hotspot:focus-visible,#alert-dismiss-hotspot:focus-visible{opacity:.94;background:#08152ddd;outline:2px solid #ffd06b;outline-offset:1px;color:#fff}

#photo-credit .photo-origin-link[href],#music-credit a{color:inherit;text-decoration:underline;text-decoration-color:#f8b553;text-underline-offset:2px}#photo-credit .photo-origin-link[href]:hover,#music-credit a:hover{color:#fff}
.youtube-player-frame{width:min(100%,480px);aspect-ratio:4/3;min-height:200px;margin-top:10px;background:#000;border:1px solid var(--line)}.youtube-player-frame iframe{display:block;width:100%;height:100%;min-height:200px;border:0}
.youtube-player-dock{position:fixed;z-index:45;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));width:min(340px,calc(100vw - 24px));padding:8px;background:#10192b;border:1px solid var(--gold);border-radius:8px;box-shadow:0 14px 48px #000b;color:var(--ink)}
.youtube-player-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;font-weight:700}
.youtube-player-head button{min-height:32px;padding:3px 9px;font-size:13px;white-space:nowrap}
.youtube-player-dock .youtube-player-frame{width:100%;height:210px;min-height:210px;aspect-ratio:auto;margin-top:8px}
.youtube-player-dock .youtube-player-frame iframe{height:100%;min-height:200px}
@media(max-width:420px){.youtube-player-dock{top:max(10px,env(safe-area-inset-top));bottom:auto}body.menu-open .youtube-player-dock{top:auto;bottom:max(10px,env(safe-area-inset-bottom))}}

/* Optional UI type scaling. The broadcast canvas stays at its chosen design size. */
body[data-ui-text-size="large"] :is(.live-label,.viewer-heading>p,.transport,#resolution-label,.credits,.legal,.scene-nav button,.header-actions button){font-size:16px}
body[data-ui-text-size="large"] .controls{font-size:18px}
body[data-ui-text-size="large"] .controls .control-section h2,body[data-ui-text-size="large"] .controls #menu-heading{font-size:23px;line-height:1.3}
body[data-ui-text-size="large"] .controls :is(label,details,summary){font-size:17px;line-height:1.45}
body[data-ui-text-size="large"] .controls :is(.hint,.legal,.alert-description,.alert-metadata,.alert-empty,.alert-test-box legend){font-size:16px;line-height:1.55}
body[data-ui-text-size="large"] .controls .control-section>.eyebrow,body[data-ui-text-size="large"] .controls .chip{font-size:14px}
body[data-ui-text-size="large"] .controls :is(input:not([type=checkbox]):not([type=range]):not([type=file]),select){min-height:46px;font-size:17px}
body[data-ui-text-size="large"] .controls button:not(#close-menu){min-height:44px;font-size:16px}
body[data-ui-text-size="large"] .controls .menu-shortcuts button{min-height:36px;font-size:14px}
body[data-ui-text-size="large"] .controls :is(.alert-badge,.alert-severity,.alert-metadata dt,.alert-card details p,.alert-card>a,.file-label input){font-size:14px}
body[data-ui-text-size="large"] .card-detail header,body[data-ui-text-size="large"] .card-detail p{font-size:16px}
body[data-ui-text-size="large"] .card-detail dt{font-size:18px}

body[data-ui-text-size="xlarge"] :is(.live-label,.viewer-heading>p,.transport,#resolution-label,.credits,.legal,.scene-nav button,.header-actions button){font-size:18px}
body[data-ui-text-size="xlarge"] .controls{font-size:20px}
body[data-ui-text-size="xlarge"] .controls .control-section h2,body[data-ui-text-size="xlarge"] .controls #menu-heading{font-size:26px;line-height:1.3}
body[data-ui-text-size="xlarge"] .controls :is(label,details,summary){font-size:20px;line-height:1.45}
body[data-ui-text-size="xlarge"] .controls :is(.hint,.legal,.alert-description,.alert-metadata,.alert-empty,.alert-test-box legend){font-size:18px;line-height:1.55}
body[data-ui-text-size="xlarge"] .controls .control-section>.eyebrow,body[data-ui-text-size="xlarge"] .controls .chip{font-size:16px}
body[data-ui-text-size="xlarge"] .controls :is(input:not([type=checkbox]):not([type=range]):not([type=file]),select){min-height:52px;font-size:19px}
body[data-ui-text-size="xlarge"] .controls button:not(#close-menu){min-height:50px;font-size:18px}
body[data-ui-text-size="xlarge"] .controls .menu-shortcuts button{min-height:42px;font-size:16px}
body[data-ui-text-size="xlarge"] .controls :is(.alert-badge,.alert-severity,.alert-metadata dt,.alert-card details p,.alert-card>a,.file-label input){font-size:16px}
body[data-ui-text-size="xlarge"] .card-detail header,body[data-ui-text-size="xlarge"] .card-detail p{font-size:19px}
body[data-ui-text-size="xlarge"] .card-detail dt{font-size:21px}

body[data-ui-text-size="large"].integrated-channel.menu-open .controls :is(label,details,summary){font-size:19px;line-height:1.45}
body[data-ui-text-size="large"].integrated-channel.menu-open .controls :is(.hint,.legal){font-size:17px}
body[data-ui-text-size="large"].integrated-channel.menu-open .screen>.controls :is(label,details,summary){font-size:21px}
body[data-ui-text-size="large"].integrated-channel.menu-open .screen>.controls :is(.hint,.legal){font-size:18px}
body[data-ui-text-size="large"].integrated-channel.menu-open .screen>.controls .menu-shortcuts button{font-size:17px;min-height:40px}
body[data-ui-text-size="large"].integrated-channel.menu-open .screen>.controls .menu-music-toggle{font-size:18px;min-height:44px}
body[data-ui-text-size="large"].integrated-channel.menu-open .screen>.card-detail :is(header,p){font-size:19px}
body[data-ui-text-size="large"].integrated-channel.menu-open .screen>.card-detail dt{font-size:22px}
body[data-ui-text-size="xlarge"].integrated-channel.menu-open .controls :is(label,details,summary){font-size:21px;line-height:1.45}
body[data-ui-text-size="xlarge"].integrated-channel.menu-open .controls :is(.hint,.legal){font-size:19px}
body[data-ui-text-size="xlarge"].integrated-channel.menu-open .screen>.controls :is(label,details,summary){font-size:23px}
body[data-ui-text-size="xlarge"].integrated-channel.menu-open .screen>.controls :is(.hint,.legal){font-size:20px}
body[data-ui-text-size="xlarge"].integrated-channel.menu-open .screen>.controls .menu-shortcuts button{font-size:18px;min-height:44px}
body[data-ui-text-size="xlarge"].integrated-channel.menu-open .screen>.controls .menu-music-toggle{font-size:20px;min-height:48px}
body[data-ui-text-size="xlarge"].integrated-channel.menu-open .screen>.card-detail :is(header,p){font-size:21px}
body[data-ui-text-size="xlarge"].integrated-channel.menu-open .screen>.card-detail dt{font-size:24px}

/* Home Screen web apps can draw beneath iPhone/iPad system insets. */
@media (display-mode: standalone), (display-mode: fullscreen){
  .integrated-channel:not(.tv-mode) .studio{padding-top:max(4px,env(safe-area-inset-top));padding-right:max(4px,env(safe-area-inset-right));padding-bottom:max(4px,env(safe-area-inset-bottom));padding-left:max(4px,env(safe-area-inset-left))}
  body:not(.integrated-channel):not(.tv-mode) .masthead{padding-top:max(8px,env(safe-area-inset-top));padding-right:max(10px,env(safe-area-inset-right));padding-left:max(10px,env(safe-area-inset-left));height:calc(74px + env(safe-area-inset-top))}
  body:not(.integrated-channel):not(.tv-mode) .viewer{padding-bottom:max(12px,env(safe-area-inset-bottom))}
  body.menu-external.menu-open .controls:not([hidden]){right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px)}
  body.tv-mode.integrated-channel .studio{width:100%;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#000}
  body.tv-mode.integrated-channel .viewer{width:100%;height:100%;min-height:0}
  body.tv-mode.integrated-channel .stage{width:100%;height:100%;min-height:0}
  body.tv-mode .tv-toolbar{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}
}

/* Installed mobile TV mode uses the full safe viewport instead of a fixed 4:3 frame. */
html.mobile-app-fullscreen{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
body.mobile-installed.tv-mode{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;margin:0;overflow:hidden;overscroll-behavior:none;background:#101b78}
body.mobile-installed.tv-mode .studio{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-width:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow:hidden;background:#101b78}
body.mobile-installed.tv-mode .viewer{display:block;width:100%;height:100%;min-height:0;max-width:none;margin:0;padding:0;border:0}
body.mobile-installed.tv-mode .stage{display:flex;width:100%;height:100%;min-height:0;max-height:none;border:0;box-shadow:none;background:#101b78;overscroll-behavior:none}
body.mobile-installed.tv-mode .controls:not([hidden]){overscroll-behavior:contain;touch-action:pan-y}
body.mobile-installed.tv-mode .tv-toolbar{right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom))}

/* Installation is offered in browser mode, then disappears in the installed app. */
#install-app{background:var(--gold);border-color:var(--gold);color:#142036;font-weight:700;white-space:nowrap}
body.tv-mode #install-app,body.menu-open #install-app{display:none!important}
.install-dialog{width:min(420px,calc(100vw - 28px));max-height:calc(100dvh - 30px);overflow:auto;margin:auto;padding:20px;background:#10192b;color:var(--ink);border:1px solid var(--gold);border-radius:10px;box-shadow:0 24px 80px #000a}
.install-dialog::backdrop{background:#030915b8}
.install-dialog-head{display:flex;align-items:center;gap:13px;margin-bottom:16px}
.install-dialog-head img{border-radius:10px;flex:none}
.install-dialog-head>div{flex:1;min-width:0}
.install-dialog-head h2{margin:4px 0 0;font-size:23px}
.install-dialog-head button{align-self:flex-start;min-width:36px;min-height:36px;padding:3px;font-size:24px}

/* Keep on-screen controls readable after they are rasterized into low-resolution CRT presets. */
body.integrated-channel.menu-open .screen>.controls{font-size:20px}
body.integrated-channel.menu-open .screen>.controls .menu-head{padding:16px 18px;gap:12px}
body.integrated-channel.menu-open .screen>.controls .menu-head h2{font-size:32px;line-height:1.2}
body.integrated-channel.menu-open .screen>.controls .menu-head .eyebrow,
body.integrated-channel.menu-open .screen>.controls .control-section>.eyebrow{font-size:17px;line-height:1.25}
body.integrated-channel.menu-open .screen>.controls .menu-shortcuts{gap:8px}
body.integrated-channel.menu-open .screen>.controls .menu-shortcuts button{min-height:44px;padding:7px 10px;font-size:20px}
body.integrated-channel.menu-open .screen>.controls .menu-music-toggle{min-height:48px;padding:8px 12px;font-size:21px}
body.integrated-channel.menu-open .screen>.controls .control-section{padding:22px 0}
body.integrated-channel.menu-open .screen>.controls .control-section h2{font-size:29px;line-height:1.2}
body.integrated-channel.menu-open .screen>.controls label,
body.integrated-channel.menu-open .screen>.controls details,
body.integrated-channel.menu-open .screen>.controls summary{font-size:24px;line-height:1.35}
body.integrated-channel.menu-open .screen>.controls .hint,
body.integrated-channel.menu-open .screen>.controls .legal{font-size:21px;line-height:1.45}
body.integrated-channel.menu-open .screen>.controls .chip{font-size:17px}
body.integrated-channel.menu-open .screen>.controls input:not([type=checkbox]):not([type=range]):not([type=file]),
body.integrated-channel.menu-open .screen>.controls select{min-height:54px;padding:10px 12px;font-size:22px}
body.integrated-channel.menu-open .screen>.controls button:not(#close-menu){min-height:48px;padding:8px 11px;font-size:22px}
body.integrated-channel.menu-open .screen>.controls .font-switch small{font-size:14px;line-height:1.2;letter-spacing:.04em}
body.integrated-channel.menu-open .screen>.controls .search-results small,
body.integrated-channel.menu-open .screen>.controls .file-label input{font-size:17px}
body.integrated-channel.menu-open .screen>.controls .check{min-height:44px;gap:13px}
body.integrated-channel.menu-open .screen>.controls input[type=checkbox]{width:22px;height:22px}
@media(max-width:520px){
  body.integrated-channel.menu-open .screen>.controls .menu-head{padding:10px 12px;gap:8px}
  body.integrated-channel.menu-open .screen>.controls .menu-head h2{font-size:27px}
  body.integrated-channel.menu-open .screen>.controls .menu-head .eyebrow,
  body.integrated-channel.menu-open .screen>.controls .control-section>.eyebrow{font-size:14px}
  body.integrated-channel.menu-open .screen>.controls .menu-shortcuts{gap:5px;flex-wrap:wrap;overflow:visible}
  body.integrated-channel.menu-open .screen>.controls .menu-shortcuts button{min-height:36px;padding:5px 7px;font-size:16px}
  body.integrated-channel.menu-open .screen>.controls .menu-music-toggle{min-height:40px;font-size:17px}
  body.integrated-channel.menu-open .screen>.controls .control-section{padding:15px 0}
  body.integrated-channel.menu-open .screen>.controls .control-section h2{font-size:24px}
  body.integrated-channel.menu-open .screen>.controls label,
  body.integrated-channel.menu-open .screen>.controls details,
  body.integrated-channel.menu-open .screen>.controls summary{font-size:20px}
  body.integrated-channel.menu-open .screen>.controls .hint,
  body.integrated-channel.menu-open .screen>.controls .legal{font-size:16px}
  body.integrated-channel.menu-open .screen>.controls input:not([type=checkbox]):not([type=range]):not([type=file]),
  body.integrated-channel.menu-open .screen>.controls select{min-height:44px;font-size:18px}
  body.integrated-channel.menu-open .screen>.controls button:not(#close-menu){min-height:40px;font-size:18px}
}
/* VT323 and CRT soften fine strokes, so give that combination extra scale. */
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .menu-head h2{font-size:38px}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .menu-head .eyebrow,
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .control-section>.eyebrow{font-size:19px}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .menu-shortcuts button{min-height:48px;font-size:22px}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .menu-music-toggle{min-height:52px;font-size:24px}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .control-section h2{font-size:33px}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls label,
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls details,
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls summary{font-size:28px;line-height:1.3}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .hint,
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .legal{font-size:24px}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .chip{font-size:19px}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls input:not([type=checkbox]):not([type=range]):not([type=file]),
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls select{min-height:60px;font-size:25px}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls button:not(#close-menu){min-height:54px;font-size:25px}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .font-switch small{font-size:17px}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .search-results small,
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .file-label input{font-size:20px}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls input[type=checkbox]{width:24px;height:24px}
@media(max-width:520px){
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .menu-head h2{font-size:32px}
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .menu-head .eyebrow,
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .control-section>.eyebrow{font-size:16px}
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .menu-shortcuts button{min-height:40px;font-size:18px}
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .menu-music-toggle{min-height:44px;font-size:20px}
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .control-section h2{font-size:28px}
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls label,
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls details,
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls summary{font-size:23px}
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .hint,
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .legal{font-size:19px}
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls input:not([type=checkbox]):not([type=range]):not([type=file]),
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls select{min-height:48px;font-size:20px}
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls button:not(#close-menu){min-height:44px;font-size:20px}
}
.install-dialog>p{font-size:16px;line-height:1.5}
.install-dialog>p.hint{margin-top:14px;font-size:14px}
.credits #install-app:not([hidden]){display:inline-flex;align-items:center;flex:none;min-height:30px;padding:4px 9px;font-size:12px;box-shadow:none}
@media(max-width:600px){.credits #install-app:not([hidden]){min-height:28px;padding:3px 7px;font-size:11px}}

/* Keep the screen geometry stable while the locality-only photo controls appear. */
.photo-transport-reserve{display:flex;align-items:center;flex:0 0 38px;height:38px;min-width:0}
.photo-transport{width:100%;min-width:0;flex-wrap:nowrap;margin-top:0}
.photo-transport button{flex:none;white-space:nowrap}
.photo-transport #photo-count{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.credits{min-height:18px}
.credits #photo-credit{display:block;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal}
body.tv-mode .photo-transport-reserve{display:none}
@media(max-width:600px){.photo-transport-reserve{flex-basis:34px;height:34px}.photo-transport{gap:4px}.photo-transport #photo-count{font-size:10px}}

/* Clear menu hierarchy: grouped controls, short descriptions, visible current category. */
.controls .section-intro{margin:-4px 0 14px;color:var(--muted);font-size:13px;line-height:1.55}
.controls .settings-group-title{margin:22px 0 6px;padding-top:13px;border-top:1px solid var(--line);color:var(--gold);font-size:14px;line-height:1.35;letter-spacing:.04em}
.controls .section-intro+.settings-group-title,.satellite-options>.settings-group-title:first-child{margin-top:12px;padding-top:0;border-top:0}
.menu-shortcuts button[aria-expanded=true]{border-color:var(--gold);color:var(--gold)}
body.menu-readable .controls .section-intro{font-size:15px}
body.menu-readable .controls .settings-group-title{font-size:17px;line-height:1.4}
body.integrated-channel.menu-open .screen>.controls .section-intro{font-size:19px;line-height:1.5}
body.integrated-channel.menu-open .screen>.controls .settings-group-title{font-size:21px;line-height:1.35}
body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .settings-group-title{font-size:25px}
@media(max-width:520px){
  body.integrated-channel.menu-open .screen>.controls .section-intro{font-size:16px}
  body.integrated-channel.menu-open .screen>.controls .settings-group-title{font-size:18px}
  body.integrated-channel.menu-open .screen.signal-retro:not(.clean)>.controls .settings-group-title{font-size:20px}
}
.nts-radio-shortcut{margin:0 0 16px;padding:12px;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:5px;background:var(--surface)}
.nts-radio-shortcut .settings-group-title{margin:0 0 6px;padding:0;border:0}
.nts-radio-shortcut .hint{margin:0}
.nts-radio-shortcut .full-width{margin-top:10px}
.nts-official-link{display:block;margin-top:8px;padding:9px 12px;border:1px solid var(--line);border-radius:5px;background:transparent;text-align:center;text-decoration:none;color:var(--ink)}
.nts-official-link:hover,.nts-official-link:focus-visible{background:#2a3e5d;color:#fff}
