:root{--bg: #090d12;--ink: #e9edf2;--ink-dim: #9aa7b3;--line: rgba(255, 255, 255, .07);--accent: #ffb300}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:Segoe UI,system-ui,Roboto,Helvetica Neue,Arial,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:clamp(13px,1.05vw,22px);-webkit-font-smoothing:antialiased}#app{height:100%}.boot{height:100vh;display:grid;place-items:center}.boot-msg{color:var(--ink-dim);letter-spacing:.2em;text-transform:uppercase;font-size:.9em}.pair{height:100vh;display:grid;place-content:center;justify-items:center;gap:2.5vh;text-align:center;padding:0 10vw}.pair-title{color:var(--ink-dim);letter-spacing:.2em;text-transform:uppercase;font-size:clamp(1rem,2.2vh,2rem)}.pair-code{color:var(--accent, #ffb300);font-size:clamp(3rem,14vh,12rem);font-weight:700;letter-spacing:.08em;font-variant-numeric:tabular-nums}.pair-help{max-width:60ch;font-size:clamp(1rem,2.6vh,2.2rem);line-height:1.4}.board{display:grid;height:100vh;width:100vw;grid-template-rows:100vh;overflow:hidden}.pane{position:relative;min-width:0;min-height:0;overflow:hidden}.jitter{transform:translate(var(--jx, 0),var(--jy, 0))}.stale-dot{display:inline-block;width:.55em;height:.55em;border-radius:50%;background:#e0a020;margin-left:.5em;vertical-align:middle}.photo-pane{background:#05080c}.photo-stage,.photo-stage .photo{position:absolute;inset:0}.photo{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s linear}.photo.visible{opacity:1}.photo-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:var(--ink-dim);gap:.4em;font-size:1.2em}.photo-empty-sub{font-size:.75em;opacity:.7}.photo-pane:before,.photo-pane:after{content:"";position:absolute;left:0;right:0;pointer-events:none;z-index:5}.photo-pane:before{top:0;height:28%;background:linear-gradient(180deg,rgba(4,7,11,.78),transparent)}.photo-pane:after{bottom:0;height:46%;background:linear-gradient(0deg,rgba(4,7,11,.88) 20%,transparent)}.clock{position:absolute;top:3.5%;z-index:10;line-height:1}.clock.align-left{left:5%;text-align:left}.clock.align-center{left:5%;right:5%;text-align:center}.clock.align-right{right:5%;text-align:right}.clock-time{font-size:clamp(54px,6.2vw,150px);font-weight:300;letter-spacing:-.02em}.clock-sec{font-size:.38em;font-weight:400;color:var(--ink-dim);margin-left:.12em}.clock-ampm{font-size:.3em;font-weight:500;color:var(--ink-dim);margin-left:.18em}.clock-date{margin-top:.5em;font-size:clamp(16px,1.5vw,34px);font-weight:600;color:var(--accent);letter-spacing:.01em}.weather-overlay{position:absolute;left:0;right:0;bottom:0;z-index:10;padding:0 5% 3.5%;display:grid;gap:.55em}.alert-strip{display:flex;flex-wrap:wrap;gap:.45em}.alert-chip{border:1px solid rgba(255,200,60,.65);color:#ffd870;border-radius:999px;padding:.18em .75em;font-size:.85em}.alert-chip em{font-style:normal;opacity:.75;margin-left:.3em}.alert-test-tag,.banner-test{display:inline-block;border:1px solid currentColor;border-radius:4px;padding:.05em .35em;margin-right:.35em;font-size:.68em;letter-spacing:.08em}.wx-now{display:flex;align-items:center;gap:.4em}.wx-unconfigured{color:var(--ink-dim);font-size:.95em}.wx-icon svg{width:clamp(34px,3.2vw,68px);height:clamp(34px,3.2vw,68px);display:block}.wx-temp{font-size:clamp(40px,4.4vw,96px);font-weight:300;line-height:1}.wx-feels{color:var(--ink);font-size:clamp(14px,1.1vw,24px);margin-top:-.2em}.wx-details{display:flex;flex-wrap:wrap;gap:.35em 1.1em;color:var(--ink);font-size:clamp(12px,.95vw,21px)}.wx-stat{display:inline-flex;align-items:center;gap:.3em;white-space:nowrap}.wx-stat-icon svg{width:clamp(15px,1.2vw,24px);height:clamp(15px,1.2vw,24px);display:block}.wx-uv{display:inline-flex;align-items:center;gap:.3em;color:var(--ink);font-size:clamp(12px,.95vw,21px)}.wx-uv-n{color:var(--ink-dim)}.wx-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:.4em;border-top:1px solid var(--line);padding-top:.7em;margin-top:.15em}.wx-day{display:grid;justify-items:center;gap:.16em;text-align:center}.wx-day-name{color:var(--ink-dim);font-size:.82em;text-transform:uppercase;letter-spacing:.08em}.wx-day-icon svg{width:clamp(22px,1.8vw,40px);height:clamp(22px,1.8vw,40px);display:block}.wx-day-pop{font-size:.82em;color:#6fb3e8}.wx-day-pop.dim{opacity:.35}.wx-day-qpf{font-size:.78em;color:var(--ink-dim)}.wx-day-temp{font-weight:600;font-size:.95em}.wx-day-temp .hi{margin-right:.35em}.wx-day-temp .lo{color:var(--ink-dim);font-weight:400}.calendar-pane{background:var(--bg);border-left:1px solid var(--line)}.calgrid{height:100%;display:grid;grid-template-rows:auto 1fr;padding:clamp(10px,1.4vw,28px);gap:.4em;position:relative}.calgrid-head{display:grid;grid-template-columns:repeat(7,1fr);gap:.3em}.calgrid-dow{text-align:center;padding:.25em 0;color:var(--ink-dim);font-size:clamp(12px,.95vw,20px);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.calgrid-dow.today span{background:var(--accent);color:#14181e;border-radius:999px;padding:.22em .85em}.calgrid-body{display:grid;gap:.3em;min-height:0}.calgrid-week{display:grid;grid-template-columns:repeat(7,1fr);gap:.3em;min-height:0}.calgrid-cell{border-top:1px solid var(--line);padding:.35em .3em .2em;min-height:0;overflow:hidden;border-radius:8px}.calgrid-cell.past{opacity:.42}.calgrid-cell.today{background:#ffb30017;border:1.5px solid var(--accent);padding-top:.28em}.cell-date{display:flex;align-items:center;gap:.35em;margin-bottom:.25em}.cell-month{color:var(--ink-dim);font-size:.78em;text-transform:uppercase;letter-spacing:.06em}.cell-num{font-weight:600;font-size:clamp(14px,1.15vw,26px)}.cell-num.accent{background:var(--accent);color:#14181e;width:1.75em;height:1.75em;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800}.cell-events{display:grid;gap:.22em;align-content:start;min-height:0}.chip{position:relative;font-size:clamp(11px,.85vw,19px);line-height:1.2;color:var(--cal-color, #4a90d9);overflow:hidden}.chip-time{font-weight:700;margin-right:.3em}.chip-title{overflow-wrap:anywhere}.chip.allday{background:var(--cal-color, #4a90d9);color:#fff;border-radius:5px;padding:.14em .45em;font-weight:600}.chip.cont{opacity:.7}.chip-more{color:var(--ink-dim);font-size:.78em;padding-left:.5em}.cal-stale{position:absolute;top:.8em;right:.9em}.radar-panel{background:#0a0e13;border:1.5px solid rgba(255,255,255,.22);border-radius:10px;overflow:hidden;z-index:30}.radar-map{position:absolute;inset:0;background:#0a0e13}.radar-panel .leaflet-container{background:#0a0e13}.size-inset,.size-inset-big{position:absolute}.size-inset.target-photo,.size-inset-big.target-photo,.size-inset.target-forecast,.size-inset-big.target-forecast{bottom:24%;right:4%}.size-inset{width:var(--t1, 36%);aspect-ratio:4 / 3}.size-inset-big{width:46%;aspect-ratio:4 / 3}.size-pane{position:absolute;inset:0;border-radius:0;border:none;z-index:8}.size-full{position:fixed;inset:1.2vh 1.2vw;z-index:90}.radar-badge{position:absolute;left:.7em;bottom:.6em;z-index:500;background:#05080cc7;color:var(--ink-dim);border-radius:6px;padding:.2em .55em;font-size:clamp(11px,.8vw,17px)}.radar-badge.amber{color:#e0a020}.radar-attrib{position:absolute;right:.6em;bottom:.5em;z-index:500;color:#ffffff59;font-size:clamp(9px,.6vw,13px)}.property-marker-icon{background:transparent;border:0;line-height:0}.property-marker-icon svg{display:block}.preview-label{position:fixed;top:.55em;right:.7em;z-index:105;border:2px solid #fff;border-radius:6px;padding:.22em .55em;background:#b00020;color:#fff;font-size:clamp(12px,.9vw,19px);font-weight:800;letter-spacing:.07em}.banner{position:fixed;top:0;left:0;right:0;z-index:95;display:flex;align-items:baseline;justify-content:center;gap:.8em;padding:.5em 2em;background:var(--banner-color, #b26a00);color:#fff;font-weight:700;font-size:clamp(16px,1.4vw,30px)}.banner-time{position:absolute;left:1em;top:50%;transform:translateY(-50%);font-weight:700;font-size:.95em;font-variant-numeric:tabular-nums}.banner-until{font-weight:500;opacity:.9;font-size:.85em}.banner-more{font-weight:500;opacity:.75;font-size:.75em}.banner.tier3{padding:.75em 2em;font-size:clamp(22px,2vw,44px);text-transform:uppercase;letter-spacing:.04em}.dim-overlay{position:fixed;inset:0;background:#000;opacity:0;transition:opacity 2s linear;pointer-events:none;z-index:100}
