:root{--ground: #0e141b;--panel: #17202a;--panel-silent: #141b23;--line: #2a3644;--text: #eef2f6;--text-2: #c9d3dd;--muted: #9aa7b4;--dim: #6f7d8b;--past-bg: #5a1f12;--past: #ff8a5b;--appr-bg: #4a3a10;--appr: #f2c14e;--trend-wind: #8fc1ff;--late: #f2c14e;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--text);font-family:IBM Plex Sans,system-ui,sans-serif}.num,.wind__value,.kiosk__local{font-family:Barlow Semi Condensed,IBM Plex Sans,system-ui,sans-serif}.home{min-height:100%;display:grid;place-content:center;text-align:center;padding:24px;gap:8px}.home h1{margin:0;font-family:Barlow Semi Condensed,system-ui,sans-serif;font-size:48px}.home p{margin:0;color:var(--text-2)}.home__soon{color:var(--muted)}.kiosk{min-height:100vh;padding:28px 32px 22px;display:flex;flex-direction:column;gap:20px}.kiosk--message{display:grid;place-content:center;text-align:center;font-size:22px;color:var(--text-2)}.kiosk--message p{max-width:720px;line-height:1.5}.kiosk__head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}.kiosk__site{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.kiosk__site h1{margin:0;font-family:Barlow Semi Condensed,system-ui,sans-serif;font-weight:700;font-size:clamp(28px,3vw,44px)}.kiosk__site span{color:var(--muted);font-size:18px}.kiosk__clock{display:flex;align-items:baseline;gap:12px}.kiosk__local{font-size:clamp(26px,2.6vw,38px);font-weight:600}.kiosk__zulu{color:var(--muted);font-size:16px}.kiosk__checked{color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}.kiosk__offline{margin:0;padding:12px 16px;border-radius:8px;border:1px solid var(--late);color:var(--text);background:#2e2610;font-size:18px}.kiosk__grid{display:grid;gap:18px;flex-grow:1;align-items:stretch}.kiosk__foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:15px}@media(max-width:900px){.kiosk{padding:16px}.kiosk__grid{grid-template-columns:minmax(0,1fr)!important}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px 22px;display:flex;flex-direction:column;gap:14px;min-width:0}.panel--late{border-color:var(--late)}.panel--silent{background:var(--panel-silent);border:2px dashed #5c6b7a}.panel__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.panel__head h2{margin:0;font-size:17px;font-weight:600;color:var(--text-2)}.panel__empty{margin:0;color:var(--muted);font-size:18px}.age{color:var(--muted);font-size:15px;white-space:nowrap}.badge{font-size:15px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}.badge--late{color:#1b1606;background:var(--late)}.badge--not_reporting{color:var(--text);background:#3a4654}.wind{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.wind__value{font-size:clamp(56px,6vw,92px);font-weight:700;line-height:1}.wind__dir{font-size:22px;color:var(--muted)}.wind__side{display:inline-flex;flex-direction:column;align-items:flex-start;gap:8px;align-self:flex-end;align-self:last baseline}.wind--stale .wind__value,.wind--stale .wind__dir{color:var(--dim)}.wind-extra{display:flex;gap:26px;flex-wrap:wrap;font-size:19px}.wind-extra strong{font-family:Barlow Semi Condensed,system-ui,sans-serif;font-size:28px}.label,.facts dt{color:var(--muted)}.facts{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px;font-size:18px}.facts div{display:flex;gap:8px}.facts dd,.trend{margin:0}.trend svg{width:100%;height:70px;display:block}.trend polyline{fill:none;vector-effect:non-scaling-stroke}.trend__wind{stroke:var(--trend-wind);stroke-width:2.5}.trend__gust{stroke:var(--past);stroke-width:2;stroke-dasharray:5 4}.trend figcaption{color:var(--muted);font-size:13px;margin-top:4px}.raw summary{cursor:pointer;color:var(--muted);font-size:14px;min-height:32px;display:flex;align-items:center}.raw code{display:block;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:14px;color:var(--text-2);background:var(--ground);border-radius:6px;padding:10px 12px;overflow-wrap:anywhere}.limits{list-style:none;margin:auto 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.limit{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;border:1px solid var(--line);font-size:16px}.limit__set{font-weight:600;font-size:17px}.limit__text{text-align:right}.limit--past{background:var(--past-bg);border-color:var(--past)}.limit--approaching{background:var(--appr-bg);border-color:var(--appr)}.limit--within .limit__set,.limit--within .limit__text{color:var(--muted)}.limit--unknown,.limit--stale{border-style:dashed;border-color:#5c6b7a;color:var(--text-2)}.kiosk__main{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:18px;flex-grow:1;align-items:stretch}.kiosk__main .panel{min-height:0}.kiosk__fallback{margin:0;padding:10px 16px;border-radius:8px;border:1px solid #5c6b7a;background:#1b232c;color:var(--text-2);font-size:18px}.kiosk__fallback--down{border-color:var(--late);color:var(--text)}@media(max-width:900px){.kiosk__main{grid-template-columns:minmax(0,1fr)}}.windpanel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;display:flex;flex-direction:column;align-items:center;gap:14px}.windpanel--stale{background:var(--panel-silent);border:2px dashed #5c6b7a}.windpanel--stale .sock__band{opacity:.45}.sock{width:100%;max-width:300px;height:auto;display:block}.sock__ring{fill:#10171f;stroke:var(--line);stroke-width:2}.sock__tick{stroke:#3c4a59;stroke-width:1.5}.sock__cardinal{fill:var(--muted);font-size:14px;font-weight:600;font-family:IBM Plex Sans,system-ui,sans-serif}.sock__vrange{fill:none;stroke:var(--trend-wind);stroke-width:6;opacity:.35;stroke-linecap:round}.sock__gust{fill:none;stroke:var(--past);stroke-width:1.5;stroke-dasharray:4 3;opacity:.8}.sock__band{stroke:#0e141b;stroke-width:1}.sock__band--orange{fill:#ff7a2f}.sock__band--white{fill:#f4f1ea}.sock__band--limp{opacity:.75}.sock__band--variable{stroke-dasharray:3 2}.sock__from{fill:var(--trend-wind)}.sock__pole{fill:#c9d3dd}.sock__mouth{fill:none;stroke:#ff7a2f;stroke-width:5}.dots{list-style:none;margin:0;padding:0;display:flex;gap:18px;justify-content:center;flex-wrap:wrap}.dot{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px;color:var(--muted)}.dot__mark{width:14px;height:14px;border-radius:50%;display:block}.dot--past .dot__mark{background:#ff5a3c;box-shadow:0 0 0 3px #ff5a3c40}.dot--approaching .dot__mark{background:var(--appr)}.dot--within .dot__mark{background:#4fbf85}.dot--unknown .dot__mark,.dot--stale .dot__mark{background:transparent;border:2px dashed #6f7d8b}.dot--past .dot__name,.dot--approaching .dot__name{color:var(--text)}.winddeg{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.winddeg__value{font-family:Barlow Semi Condensed,system-ui,sans-serif;font-size:52px;font-weight:700;line-height:1}.winddeg__speed{font-size:18px;color:var(--text-2)}.winddeg__sock{font-size:13px;color:var(--muted)}.windpanel--stale .winddeg__value{color:var(--dim)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.kiosk__main .panel .trend{flex-grow:1;display:flex;flex-direction:column;min-height:120px}.kiosk__main .panel .trend svg{flex-grow:1;height:auto;min-height:110px;max-height:260px}.wind-dots{list-style:none;margin:0;padding:0;display:flex;gap:10px}.wind-dot{width:18px;height:18px;border-radius:50%}.wind-dot--past{background:#ff5a3c;box-shadow:0 0 0 4px #ff5a3c40}.wind-dot--approaching{background:var(--appr)}.wind-dot--within{background:#4fbf85}.wind-dot--unknown,.wind-dot--stale{border:2px dashed #6f7d8b}.gusts{width:100%;margin-top:6px;padding-top:14px;border-top:1px solid var(--line)}.gusts__title{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;text-align:center}.gusts__none{margin:0;text-align:center;color:var(--muted);font-size:15px}.gusts__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.gusts__item{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:0 8px}.gusts__value{font-family:Barlow Semi Condensed,system-ui,sans-serif;font-size:28px;font-weight:700;color:var(--past)}.gusts__ago{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:17px;color:var(--text-2)}.windpanel--stale .gusts__value{color:var(--dim)}.kiosk__main .panel .trend svg{width:100%;height:auto;max-height:none;min-height:0;flex-grow:0}.trend__grid{stroke:#2a3644;stroke-width:1}.trend__grid--time{stroke-dasharray:2 4}.trend__axis{stroke:#4a5868;stroke-width:1.5}.trend__label{fill:var(--muted);font-size:13px;font-family:IBM Plex Sans,system-ui,sans-serif}.fieldreport{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 20px;display:flex;flex-direction:column;gap:8px}.fieldreport__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.fieldreport__head h2{margin:0;font-size:16px;font-weight:600;color:var(--text-2)}.fieldreport__head span{color:var(--muted);font-size:15px}.fieldreport__raw{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:clamp(18px,1.6vw,24px);color:var(--text);overflow-wrap:anywhere}.fieldreport__meta{display:flex;align-items:center;gap:12px}.fieldreport__age{color:var(--muted);font-size:15px}.fltcat{font-family:Barlow Semi Condensed,system-ui,sans-serif;font-weight:700;font-size:18px;padding:2px 12px;border-radius:6px;letter-spacing:.04em}.fltcat--vfr{background:#1f8f4e;color:#fff}.fltcat--mvfr{background:#2563c9;color:#fff}.fltcat--ifr{background:#c62828;color:#fff}.fltcat--lifr{background:#b51fb5;color:#fff}.fieldreport__why{margin:0;color:var(--text-2);font-size:15px}.fieldreport__lines{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 22px;font-size:16px}.fieldreport__lines div{display:flex;gap:8px;min-width:0}.fieldreport__lines dt{color:var(--muted);flex-shrink:0}.fieldreport__lines dd{margin:0;color:var(--text)}.fieldreport__remarks h3{margin:4px 0 6px;font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.fieldreport__remarks ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:4px 22px;font-size:15px;color:var(--text-2)}.fieldreport__remarks code{font-family:IBM Plex Mono,ui-monospace,monospace;color:var(--text);margin-right:6px}.ownerlink{position:fixed;right:18px;bottom:14px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:var(--text-2);background:var(--panel);border:1px solid var(--line);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:20}.ownerlink--shown{opacity:1;pointer-events:auto}.ownerlink:hover,.ownerlink:focus-visible{color:var(--text);border-color:var(--text-2)}.kiosk__main--single{grid-template-columns:minmax(0,1fr)!important}.kiosk__fcst{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.kiosk__fcst--two{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.fcst,.aloft{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 18px;display:flex;flex-direction:column;gap:8px;min-width:0;overflow:hidden}.fcst__head,.aloft__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.fcst__head h2,.aloft__head h2{margin:0;font-size:16px;font-weight:600;color:var(--text-2)}.fcst__head span,.aloft__head span{color:var(--muted);font-size:15px}.fcst__hours,.aloft__levels{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}.fcst__hour{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border-radius:8px;background:#10171f;min-width:0;text-align:center}.fcst__hour--night{background:#0b1016}.fcst__time{font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums}.fcst__wind{font-family:Barlow Semi Condensed,system-ui,sans-serif;font-size:22px;font-weight:700;line-height:1.1}.fcst__gust{font-size:15px;font-weight:600;color:var(--past)}.fcst__temp{font-size:16px;color:var(--text-2)}.fcst__sky{font-size:13px;color:var(--muted);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.fcst__pop{font-size:13px;color:var(--trend-wind)}.warrow{color:var(--trend-wind);display:block}.aloft__level{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:6px 10px;padding:6px 10px;border-radius:8px;background:#10171f;min-width:0}.aloft__alt{font-size:15px;color:var(--muted);white-space:nowrap}.aloft__wind{display:flex;align-items:baseline;gap:6px;min-width:0}.aloft__wind strong{font-family:Barlow Semi Condensed,system-ui,sans-serif;font-size:24px;font-weight:700}.aloft__dir{font-size:15px;color:var(--text-2)}.aloft__temp{font-size:15px;color:var(--text-2);white-space:nowrap}@media(max-width:900px){.kiosk__fcst--two{grid-template-columns:minmax(0,1fr)}.fcst__hours{grid-auto-columns:minmax(64px,1fr);overflow-x:auto}.aloft__levels{grid-auto-flow:row}}.obs-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:0 4px}.obs-head h2{margin:0;font-size:20px;font-weight:600;color:var(--text)}.wind-top{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}.windpanel__top{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;min-height:0}.fieldreport__src{color:var(--muted);font-size:15px;font-weight:600}.fieldreport__top{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.gusts__list{flex-direction:row;justify-content:space-between;gap:6px}.gusts__item{flex-direction:column;align-items:center;gap:0;padding:0}.aloft__level{grid-template-columns:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;text-align:center}.aloft__wind{flex-direction:column;align-items:center;gap:0}body:has(.stage-frame){overflow:hidden}.stage-frame{position:fixed;inset:0;overflow:hidden;background:var(--ground)}.kiosk--fit{position:absolute;transform-origin:top left;min-height:0;padding:12px 22px 8px;gap:8px;overflow:hidden}.kiosk--fit>*{flex:0 0 auto}.kiosk--fit>.kiosk__main{flex:1 1 0;min-height:0}.kiosk--fit .kiosk__head{flex-wrap:nowrap}.kiosk--fit .kiosk__site h1{font-size:34px}.kiosk--fit .kiosk__site span{font-size:16px}.kiosk--fit .kiosk__local{font-size:32px}.kiosk--fit .kiosk__zulu,.kiosk--fit .kiosk__checked{font-size:15px}.kiosk--fit .obs-head h2{font-size:20px}.kiosk--fit .age,.kiosk--fit .badge{font-size:16px}.kiosk--fit .kiosk__fallback,.kiosk--fit .kiosk__offline{padding:6px 14px;font-size:16px}.kiosk--fit .kiosk__foot{font-size:14px;justify-content:flex-end}.kiosk--fit .kiosk__main{grid-template-columns:minmax(0,1fr) 420px;gap:10px}.kiosk--fit .kiosk__main--single{grid-template-columns:minmax(0,1fr)!important}.kiosk--fit .panel,.kiosk--fit .windpanel{min-height:0;overflow:hidden;padding:12px 16px;gap:8px}.kiosk--fit .wind__value{font-size:76px}.kiosk--fit .wind__dir{font-size:22px}.kiosk--fit .wind-dot{width:18px;height:18px}.kiosk--fit .wind-extra{font-size:17px;gap:20px}.kiosk--fit .wind-extra strong{font-size:28px}.kiosk--fit .facts{display:flex;flex-wrap:wrap;gap:4px 28px;font-size:18px}.kiosk--fit .panel .trend{flex:1 1 0;min-height:0;display:flex;flex-direction:column;margin:0}.kiosk--fit .trend__box{flex:1 1 0;min-height:0;position:relative}.kiosk--fit .panel .trend .trend__box svg{position:absolute;inset:0;width:100%;height:100%;max-height:none;min-height:0}.kiosk--fit .trend figcaption{font-size:13px;margin-top:2px}.kiosk--fit .windpanel{gap:6px;justify-content:space-between}.kiosk--fit .windpanel__top{flex:1 1 0;min-height:0}.kiosk--fit .sock{flex:0 1 auto;height:100%;width:auto;max-width:56%;aspect-ratio:1;min-height:0}.kiosk--fit .winddeg__value{font-size:52px}.kiosk--fit .winddeg__speed{font-size:17px}.kiosk--fit .winddeg__sock{font-size:13px}.kiosk--fit .gusts{margin-top:0;padding-top:6px}.kiosk--fit .gusts__title{font-size:12px;margin-bottom:2px}.kiosk--fit .gusts__value{font-size:24px}.kiosk--fit .gusts__ago{font-size:13px}.kiosk--fit .kiosk__fcst{gap:10px}.kiosk--fit .fcst,.kiosk--fit .aloft{padding:8px 14px;gap:6px}.kiosk--fit .fcst__head h2,.kiosk--fit .aloft__head h2{font-size:16px}.kiosk--fit .fcst__head span,.kiosk--fit .aloft__head span,.kiosk--fit .fcst__time,.kiosk--fit .aloft__alt,.kiosk--fit .aloft__dir,.kiosk--fit .aloft__temp,.kiosk--fit .fcst__temp{font-size:14px}.kiosk--fit .fcst__wind,.kiosk--fit .aloft__wind strong{font-size:20px}.kiosk--fit .fcst__sky,.kiosk--fit .fcst__pop{font-size:12px}.kiosk--fit .fcst__gust{font-size:13px}.kiosk--fit .fcst__hour,.kiosk--fit .aloft__level{padding:4px 2px}.kiosk--fit .fieldreport{padding:8px 14px;gap:4px}.kiosk--fit .fieldreport__src{font-size:15px}.kiosk--fit .fieldreport__raw{font-size:20px}.kiosk--fit .fltcat{font-size:17px;padding:0 10px}.kiosk--fit .fieldreport__why,.kiosk--fit .fieldreport__age{font-size:15px}.kiosk--fit .fieldreport__lines{grid-template-columns:repeat(5,minmax(0,1fr));gap:2px 14px;font-size:13px}.kiosk--fit .fieldreport__remarks h3{margin:2px 0;font-size:12px}.kiosk--fit .fieldreport__remarks ul{gap:2px 18px;font-size:14px}.gusts__value,.gusts__ago{white-space:nowrap}@media(max-width:899px){.gusts__list{flex-wrap:wrap;justify-content:center;gap:6px 14px}.gusts__value{font-size:22px}.gusts__ago{font-size:13px}}.kiosk--fit .panel .trend{min-height:80px}.kiosk--fit .fcst__hours,.kiosk--fit .aloft__levels{gap:4px}.kiosk--fit .wind__value{font-size:60px}.kiosk--fit .wind-extra strong{font-size:24px}.kiosk--fit .panel{gap:4px}.kiosk--fit .kiosk__fallback{padding:3px 14px;font-size:15px}.kiosk--fit .fieldreport__remarks h3{display:none}.kiosk__renew{margin:0;padding:8px 16px;border-radius:8px;border:1px solid var(--late);background:#2e2610;color:var(--text);font-size:18px}.kiosk--fit .kiosk__renew{padding:3px 14px;font-size:15px}.kiosk__logo{display:inline-flex;align-self:center}.kiosk__logo img{display:block;max-height:44px;max-width:220px}.kiosk__logo--plate{background:#fff;border-radius:8px;padding:4px 8px}.kiosk--branded .kiosk__head{border-bottom:3px solid var(--brand-primary, var(--line));padding-bottom:6px}.kiosk--branded .obs-head h2{border-left:4px solid var(--brand-accent, var(--line));padding-left:10px}.kiosk--branded .num,.kiosk--branded .wind__value,.kiosk--branded .kiosk__local,.kiosk--branded .kiosk__site h1{font-family:inherit}.kiosk__powered{margin-right:auto;color:var(--dim)}.kiosk--fit .kiosk__logo img{max-height:38px}.fcst__sky{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.kiosk--fit .fcst__sky{min-height:2.4em}
