@font-face{font-family:Martian Mono;src:url(/fonts/martian-mono.ttf)format("truetype");font-weight:100 800;font-stretch:75% 112.5%;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#efefef;font-synthesis:none;--blue:#354e84;--purple:#332370;--orange:#e28144;--yellow:#ffff6f;--outline:1px 1px 0 #10131e, -1px -1px 0 #10131e, 1px -1px 0 #10131e, -1px 1px 0 #10131e, 2px 3px 0 #10131e;background:#08090b;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}::selection{color:#11162a;background:var(--yellow)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#5d6372;border-radius:4px}a{color:inherit;text-underline-offset:3px}.weather-app{place-items:center;width:100%;height:100dvh;display:grid}.station{aspect-ratio:4/3;width:min(100vw,133.333dvh);position:relative}.broadcast{background:linear-gradient(180deg, var(--purple) 0%, #50386f 35%, var(--orange) 100%);letter-spacing:-.04em;width:100%;height:100%;text-shadow:var(--outline);font-family:Martian Mono,monospace;font-size:2.65cqw;font-weight:400;font-stretch:75%;line-height:1.45;position:relative;overflow:hidden;container-type:size}.broadcast-header{z-index:2;align-items:center;gap:2.2%;width:100%;height:18.75%;padding:4.6875% 7.8125% 0;display:flex;position:absolute;top:0;left:0}.header-band{z-index:0;background:linear-gradient(180deg, var(--orange), var(--purple));clip-path:polygon(0 0,100% 0,87% 100%,0 100%);position:absolute;inset:25% 18% 0 0}.station-mark{text-align:center;text-shadow:1px 2px 1px #263183;color:#fff;background:linear-gradient(150deg,#253ee4 15%,#5f65df 75%,#a0a7ff);border:.5cqw solid #f0f1ff;border-radius:2.3cqw;flex-direction:column;flex-shrink:0;justify-content:center;width:13.4cqw;height:min(10.6cqw,15cqh);line-height:1;display:flex;position:relative;box-shadow:inset .3cqw .3cqw .5cqw #172173,.55cqw .6cqw #10131e}.station-mark span{letter-spacing:-.04em;font-family:Martian Mono,monospace;font-size:4.6cqw;font-weight:800}.station-mark strong{letter-spacing:-.02em;margin-top:.6cqw;font-size:1.4cqw}.broadcast-header h1{color:var(--yellow);text-wrap:balance;max-width:35%;margin:0;font-size:3cqw;font-weight:500;line-height:1.25;position:relative}.station-clock{white-space:nowrap;text-align:right;flex-direction:column;align-self:center;margin-left:auto;font-size:2.55cqw;line-height:1.55;display:flex;position:relative}.weather-content{z-index:1;background:var(--blue);font-size:2.65cqw;position:absolute;inset:18.75% 7.8125% 16.6%;box-shadow:inset 0 0 2.4cqw .2cqw #b0b8c47a}.slide{height:100%;animation:.35s cubic-bezier(.16,1,.3,1) channel-in}.conditions-panel{grid-template-columns:48% 52%;height:100%;padding:3.2% 3.5% 3%;display:grid}.current-summary{flex-direction:column;justify-content:space-between;align-items:center;padding-top:1%;display:flex}.current-temperature{font-size:4.5cqw;line-height:1.1}.condition-name{text-align:center;max-width:100%;font-size:2.65cqw;line-height:1.35}.weather-icon{filter:drop-shadow(.2cqw .3cqw #10131e);width:21cqw;height:auto;display:block;overflow:visible}.current-summary>.weather-icon{width:23cqw;max-height:48%}.current-wind{white-space:nowrap;padding-bottom:1%}.current-details{padding-left:3%}h2{color:var(--yellow);margin:0;font-size:3.05cqw;font-weight:600}.current-details h2{text-overflow:ellipsis;white-space:nowrap;height:16%;overflow:hidden}dl{margin:0}.current-details dl{flex-direction:column;justify-content:space-around;height:84%;display:flex}dl>div{justify-content:space-between;gap:8px;display:flex}dd{text-align:right;white-space:nowrap;margin:0}.current-details dt{font-size:2.5cqw}.current-details dd{font-size:2.65cqw}.lower-third{background:var(--blue);border-top:.25cqw solid #c4ceda;align-items:center;gap:5%;width:100%;height:16.6%;padding:0 7.8125%;display:flex;position:absolute;bottom:0;left:0;box-shadow:0 -.15cqw #10131e}.lower-third p{text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;padding-right:7cqw;font-size:2.6cqw;animation:.3s ease-out ticker-in;overflow:hidden}.crt .broadcast:after{content:"";pointer-events:none;z-index:5;opacity:.4;background:repeating-linear-gradient(#0000 0 2px,#07102718 2px 3px);position:absolute;inset:0}.observations-panel{height:100%;padding:3% 4%}.observations-panel table{font-size:2.15cqw;line-height:1.35}.observations-panel td,.observations-panel tbody th{padding:.9% 1% .9% 0}table{border-collapse:collapse;text-transform:uppercase;width:100%;font-size:2.3cqw}th{font-weight:600}thead{color:var(--yellow)}thead th{text-align:left;padding-bottom:2%}tbody th{text-align:left;text-overflow:ellipsis;white-space:nowrap;max-width:25cqw;overflow:hidden}td,tbody th{padding:1.2% 1% 1.2% 0}.city-column{width:35%}.local-panel{height:100%;padding:4% 5%}.local-panel p{text-transform:uppercase;margin:0;font-size:3cqw;line-height:1.6}.wide-panel{box-shadow:none;background:0 0;left:0;right:0}.extended-panel{height:100%;padding:0 7.8125%}.forecast-grid{grid-template-columns:repeat(3,1fr);gap:2.5%;height:100%;display:grid}.forecast-day{text-align:center;background:linear-gradient(#080b6f,#242b97 50%,#090f4f);border:.5cqw solid #f2f2f2;flex-direction:column;justify-content:space-around;align-items:center;min-width:0;padding:1.2cqw .3cqw;display:flex;box-shadow:inset 0 0 0 .3cqw #000}.forecast-day h3{color:var(--yellow);text-transform:uppercase;width:100%;margin:0;font-size:3cqw;font-weight:400}.forecast-day .weather-icon{width:19cqw;height:14cqw}.forecast-day p{justify-content:center;align-items:flex-start;min-height:7cqw;margin:0;font-size:2.8cqw;line-height:1.25;display:flex}.high-low{grid-template-columns:1fr 1fr;width:100%;font-size:3cqw;line-height:1.4;display:grid}.high-low>div{flex-direction:column;align-items:center;gap:0;display:flex}.high-low dt{color:#8b9df8}.high-low>div:last-child dt{color:var(--yellow)}.high-low dd{text-align:center}.almanac-panel{grid-template-rows:40% 60%;height:100%;display:grid}.solar-table{padding:1.5% 7.8125%}.solar-table table{text-transform:none;font-size:2.8cqw}.solar-table th{font-weight:400}.solar-table td,.solar-table thead th{text-align:right}.solar-table td,.solar-table tbody th{padding:0}.moon-data{background:#565659;padding:1.8% 7.8125%}.moon-data h2{font-size:3cqw;font-weight:400}.moon-grid{text-align:center;grid-template-columns:repeat(4,1fr);align-items:center;display:grid}.moon-grid figure{margin:0;font-size:2.7cqw}.moon-grid svg{width:12cqw;height:12cqw;margin:0 auto;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.weather-map{background:#425c86;width:100%;height:100%;position:relative;overflow:hidden}.map-geography{width:100%;height:100%;position:absolute;inset:0}.map-land{fill:#638260;stroke:#a9b992;stroke-width:1px}.map-state{fill:none;stroke:#d8dcbb;stroke-width:1.2px}.map-road{fill:none;stroke:#cdbb83;stroke-width:1.8px}.map-river{fill:none;stroke:#79bbdc;stroke-width:2px}.map-observation{text-align:center;grid-template-columns:auto auto;justify-content:center;align-items:center;font-size:1.8cqw;line-height:1.2;display:grid;position:absolute;transform:translate(-50%,calc(-100% - 1cqw))}.map-observation strong{color:var(--yellow);font-size:2.6cqw;font-weight:500}.map-observation .weather-icon{width:5.4cqw;height:4cqw}.map-observation span{white-space:nowrap;grid-column:1/-1}.city-marker{background:#fff;border-radius:50%;width:.55cqw;height:.55cqw;position:absolute;top:calc(100% + 1cqw);left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 .15cqw #172c4a}.radar-city{font-size:1.65cqw}.radar-frame{opacity:0;width:100%;height:100%;animation:6s linear infinite radar-loop;position:absolute;inset:0}.radar-caption{background:#172c4ae6;padding:.3em .5em;font-size:1.7cqw;position:absolute;bottom:2%;left:2%}.radar-legend{text-align:center;width:24%;margin-left:auto;font-size:1.5cqw;line-height:1.5;position:relative}.radar-legend>div{justify-content:space-between;align-items:center;gap:.6cqw;display:flex}.radar-legend i{background:linear-gradient(90deg,#00c835 0 16.7%,#08ef40 16.7% 33.3%,#b5f124 33.3% 50%,#ff0 50% 66.7%,#ff8a00 66.7% 83.3%,red 83.3%);border:1px solid #111;width:12cqw;height:1.5cqw;display:block}@keyframes radar-loop{0%,16.6%{opacity:1}16.7%,to{opacity:0}}.signal-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:6%;display:flex}.signal-state h2{margin-top:6%;font-size:2.6cqw}.signal-state p{max-width:40ch;font-size:1.8cqw}.signal-actions{gap:12px;margin-top:3%;display:flex}.signal-actions button{background:#263764;border:1px solid #b4c2e6;padding:.7em 1em;font-size:1.6cqw}.station-toolbar{z-index:10;opacity:0;background:#111725f2;border-radius:6px;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;width:min(740px,100% - 28px);padding:8px 12px;font-size:13px;transition:opacity .18s ease-out;display:grid;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.station-toolbar:hover,.station-toolbar:focus-within{opacity:1}.station-audio{z-index:12;aspect-ratio:1;color:#000;background:#0f0;border:0;border-radius:0;place-items:center;width:3.9%;padding:0;display:grid;position:absolute;bottom:8.3%;right:7.8125%;transform:translateY(50%)}.station-audio svg{stroke-width:3px;width:70%;height:70%}.station-audio:hover{filter:brightness(1.2)}.station-toolbar button{color:#c4c6ce;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;min-width:34px;height:34px;display:inline-flex}.station-toolbar button:hover{color:#fff;background:#23252d}.station-toolbar .location-control{justify-content:flex-start;justify-self:start;gap:8px;max-width:100%;padding:0 6px}.location-control>span:first-of-type{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.location-source{color:#969aa7;white-space:nowrap;font-size:11px}.transport,.utility-controls{gap:4px;display:flex}.utility-controls{justify-content:flex-end}.connection-notice{z-index:8;color:#e8ebf5;text-align:center;background:#18294d;width:100%;margin:0;font-size:12px;position:fixed;bottom:2px;left:0}.connection-notice button{color:var(--yellow);background:0 0;border:0;text-decoration:underline}.station:fullscreen{background:#08090b;place-items:center;width:100vw;height:100dvh;display:grid}.station:fullscreen .broadcast{aspect-ratio:4/3;width:min(100vw,133.333dvh);height:auto}.settings-dialog{color:#f3f3f6;background:#171a22;border:1px solid #424655;border-radius:12px;width:min(460px,100% - 32px);max-height:calc(100dvh - 48px);margin:auto;padding:26px;box-shadow:0 20px 80px #0009}.settings-dialog::backdrop{background:#000b}.dialog-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.dialog-heading h2{letter-spacing:-.02em;color:#fff;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:23px;font-weight:600}.icon-button{background:0 0;border:none;border-radius:4px;place-items:center;min-width:32px;min-height:32px;display:grid}.icon-button:hover{background:#343946}.settings-intro{color:#afb5c5;margin:6px 0 26px;font-size:14px}.search-label{margin-bottom:8px;font-size:13px;display:block}.search-field{color:#adb5ca;background:#0d1017;border:1px solid #656b7d;border-radius:5px;align-items:center;gap:10px;padding:0 12px;display:flex}.search-field:focus-within{border-color:#ffff6f}.search-field input{color:#fff;width:100%;height:44px;caret-color:var(--yellow);background:0 0;border:0;outline:none;font-size:14px}.search-field input::placeholder{color:#9ca5ba}.search-results{max-height:180px;margin:6px 0 16px;overflow-y:auto}.search-results>p{color:#d0d5df;font-size:13px}.search-results button{text-align:left;background:0 0;border:0;border-radius:4px;flex-direction:column;gap:3px;width:100%;padding:10px 8px;display:flex}.search-results button:hover{background:#2d3445}.search-results strong{font-size:14px;font-weight:500}.search-results span{color:#afb9cf;font-size:12px}.location-button{background:#2a334a;border:1px solid #666f87;border-radius:5px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:44px;font-size:14px;display:flex}.location-button:hover{background:#354361}.text-button{color:#c6cede;text-underline-offset:3px;background:0 0;border:0;margin:12px auto 24px;padding:4px;font-size:12px;text-decoration:underline;display:block}.setting-row{border-top:1px solid #353b4a;justify-content:space-between;align-items:center;padding:14px 0;font-size:14px;display:flex}.segmented{border:1px solid #5b6478;border-radius:5px;padding:2px;display:flex}.segmented button{background:0 0;border:0;border-radius:3px;padding:6px 12px;font-size:13px}.segmented button[aria-pressed=true]{color:#161b28;background:#ffff6f}.setting-row input{accent-color:var(--yellow);width:17px;height:17px}.privacy-note{color:#b0b8cb;margin:12px 0;font-size:12px;line-height:1.6}.attribution{color:#a9b0c3;font-size:11px;line-height:1.6}.location-error{color:#ffd4a9;font-size:13px;line-height:1.5}.alert-screen{background:#a30d16;height:100%;padding:4%;overflow:hidden}.alert-bulletin{animation:linear both alert-scroll}.alert-bulletin p{text-transform:uppercase;white-space:pre-line;font-size:2.8cqw;line-height:1.6}.alert-crawl{background:#a30d16;overflow:hidden}.alert-crawl p{text-overflow:clip;flex:none;animation:80s linear infinite alert-crawl;overflow:visible}@keyframes alert-scroll{0%,5%{transform:translateY(0)}to{transform:translateY(calc(22cqw - 100%))}}@keyframes alert-crawl{0%{transform:translate(80cqw)}to{transform:translate(-100%)}}@keyframes channel-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes ticker-in{0%{opacity:.5;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media (width<=800px){.location-source{display:none}}@media (width<=580px){.station-toolbar{gap:5px;padding:6px}.station-toolbar .location-control{gap:4px;font-size:12px}.location-control>span:first-of-type{max-width:105px}.transport,.utility-controls{gap:0}.station-toolbar button{min-width:30px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation:none!important}}
