/* Swiss sage: one-screen overview on hairline rules; diagnostics expand only when requested. */
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:400 500;font-display:swap;src:url(/vendor/inter-tight-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{color-scheme:light;--sage:#cdd6cf;--ink:#111;--muted:#4b554e;--rule:#111;--rule-soft:#9aa79e;--hatch:#b7c2ba;--hatch-line:#7d8a81;--cap:#e9f36b;--font:'Inter Tight',-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;font:400 14px/1.4 var(--font);color:var(--ink);background:var(--sage);font-variant-numeric:tabular-nums}
*{box-sizing:border-box}body{margin:0;background:var(--sage)}a{color:inherit;text-underline-offset:3px}button,input,select{font:inherit;color:var(--ink)}button{cursor:pointer;border-radius:0}button:disabled{opacity:.4;cursor:default}button,a,input,summary{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}[hidden]{display:none!important}
h1,h2,h3,p{margin:0}h2,h3{font-weight:500}
.label{font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;line-height:1.3}
.sub{font-size:11px;color:var(--muted)}
.masthead,main{max-width:700px;margin:auto;padding:0 16px}
.masthead{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;border-bottom:1px solid var(--rule)}
h1{font-size:19px;font-weight:500;letter-spacing:-.02em}h1 a{text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.notice{background:var(--cap);border:1px solid var(--rule);padding:8px 10px;font-size:12px;margin:12px 0 0}

/* Hero: total over the chosen horizon. */
.hero{padding:16px 0 18px}

/* Hour columns: hatched model range, black forecast with a yellow cap. */
.rainfall{padding-top:2px}
.chart-wrap{position:relative}
.cols{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);column-gap:6px;touch-action:pan-y}
.cols.dense{column-gap:2px}
.col{cursor:pointer;border-top:1px solid var(--rule);min-width:0}
.col-head{display:flex;flex-direction:column;padding:5px 0 8px;height:44px;white-space:nowrap;overflow:visible}
.col-time{font-size:11px;color:var(--muted)}.col-mm{font-size:13px;font-weight:500}
.col.quiet .col-head span{visibility:hidden}.times-only .col-mm{display:none}.times-only .col-head{height:28px}
.col.selected{border-top:3px solid var(--rule)}.col.selected .col-head{padding-top:3px}
.col.selected .col-plot{background-color:rgba(255,255,255,.3)}
.col-plot{position:relative;height:132px;border-bottom:1px solid var(--rule)}
.col-plot i{position:absolute;left:0;right:0;bottom:0;display:block}
.col-plot .range{background:var(--hatch) repeating-linear-gradient(135deg,var(--hatch-line) 0 1.5px,transparent 1.5px 5px);border-top:1px solid var(--hatch-line)}
.col-plot .bar{background:var(--ink)}
.col-plot .bar::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;max-height:100%;background:var(--cap)}
.col-plot .missing{height:14px;border:1px dashed var(--muted);border-bottom:0}
.chart-empty{position:absolute;inset:44px 0 0;display:flex;justify-content:center;align-items:center;font-size:12px;color:var(--muted);text-align:center;pointer-events:none;padding:12px}
.caption{color:var(--muted);margin-top:8px}
.playback{display:flex;align-items:center;gap:12px;margin-top:6px}
.playback button{flex:none;width:44px;height:44px;border:1px solid var(--rule);background:transparent;font-size:12px}
.playback output{font-size:12px;font-weight:500;white-space:nowrap}
#rain-description{margin-top:2px}
input[type=range]{-webkit-appearance:none;appearance:none;background:transparent;min-width:0;width:100%;height:44px;margin:0;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:1px;background:var(--rule)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-8px;background:var(--ink);border:0;border-radius:0}
input[type=range]::-moz-range-track{height:1px;background:var(--rule)}
input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--ink);border:0;border-radius:0}
input[type=range]:disabled{opacity:.4;cursor:default}

/* One row of four tiles. */
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.tile{display:flex;flex-direction:column;gap:3px;border-top:1px solid var(--rule);padding-top:7px;min-width:0;min-height:44px;text-decoration:none}
.tile-value{font-size:17px;font-weight:500;letter-spacing:-.01em;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile-sub{font-size:11px;color:var(--muted);line-height:1.3}
.tile-link:hover .tile-sub{color:var(--ink)}
.age-track{position:relative;display:block;height:5px;margin:2px 0 1px;background:repeating-linear-gradient(135deg,var(--hatch-line) 0 1px,transparent 1px 4px);border-bottom:1px solid var(--rule-soft)}
.age-track i{position:absolute;left:0;top:0;bottom:-1px;display:block;width:0;background:var(--ink)}
.age-track i::after{content:'';position:absolute;right:-3px;top:-1px;bottom:0;width:3px;background:var(--cap);outline:1px solid var(--ink)}
.nearby{align-self:flex-start;border:0;background:transparent;padding:0;min-height:44px;margin-top:-10px;text-align:left;text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.issued{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;border-top:1px solid var(--rule-soft);color:var(--muted)}
#refresh{border:0;background:transparent;font-size:20px;min-width:44px;min-height:44px;margin-right:-12px}

/* Rain radar: the official tile cropped around the house, with orientation cues on top. */
.radar-section{border-top:1px solid var(--rule);margin-top:6px;padding:10px 0 18px;scroll-margin-top:8px}
.radar-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
#radar-status{color:var(--muted);text-align:right}
.radar-summary{font-size:19px;font-weight:500;letter-spacing:-.015em;line-height:1.2;margin-top:10px}
.radar-next{font-size:13px;margin-top:4px}.radar-next:empty{display:none}
#radar-basis{margin-top:3px}
.radar-body{margin-top:12px}
.radar-map{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border:1px solid var(--rule);background:#d9e0db}
.radar-frames img{position:absolute;max-width:none;height:auto;image-rendering:pixelated;visibility:hidden}
.radar-frames img.on{visibility:visible}
.radar-frames canvas{position:absolute;inset:0;width:100%;height:100%;visibility:hidden}
.radar-frames canvas.on{visibility:visible}
#radar-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#radar-overlay .ring-halo{fill:none;stroke:rgba(255,255,255,.75);stroke-width:3;vector-effect:non-scaling-stroke}
#radar-overlay .ring{fill:none;stroke:var(--ink);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}
#radar-overlay .nearest-line{stroke:var(--ink);filter:drop-shadow(0 0 1px #fff);stroke-width:1.5;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}
#radar-overlay .nearest-dot{fill:none;stroke:var(--ink);stroke-width:1.5;vector-effect:non-scaling-stroke}
#radar-overlay .coast{fill:none;stroke:var(--muted);stroke-width:1.5;vector-effect:non-scaling-stroke}
.radar-places{position:absolute;inset:0;pointer-events:none}
.pin{position:absolute;width:0;height:0}
.pin b{position:absolute;top:0;left:7px;transform:translateY(-50%);font-size:11px;font-weight:500;line-height:1;white-space:nowrap;text-shadow:0 0 2px #fff,0 0 2px #fff,0 0 3px #fff,0 0 4px #fff}
.pin.place::before{content:'';position:absolute;left:-2.5px;top:-2.5px;width:5px;height:5px;background:var(--ink);box-shadow:0 0 0 1.5px #fff}
.pin.left b{left:auto;right:7px}.pin.below b{top:6px;transform:none}
.pin.ring-label b,.pin.sea b{left:0;transform:translate(-50%,-50%);font-size:10px;font-weight:400;color:var(--muted)}
.pin.sea b{font-style:italic}
.pin.edge b{top:auto;bottom:6px;left:0;transform:translateX(-50%);font-weight:400;color:var(--muted)}
.pin.home::before{content:'';position:absolute;left:-8px;top:-8px;width:12px;height:12px;border-radius:50%;border:2px solid var(--ink);box-shadow:0 0 0 1.5px #fff,inset 0 0 0 1.5px #fff}
.pin.home::after{content:'';position:absolute;left:-1.5px;top:-1.5px;width:3px;height:3px;border-radius:50%;background:var(--ink)}
/* Label sits above the house so the echoes right beside it stay visible. */
.pin.home b{top:auto;bottom:12px;left:auto;right:-4px;transform:none;padding:3px 5px;background:var(--ink);color:#fff;text-shadow:none;font-size:12px;box-shadow:0 0 0 1.5px #fff}
.radar-badge{position:absolute;left:8px;top:8px;padding:4px 6px;background:var(--ink);color:#fff;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;line-height:1.2}
.radar-badge.projection{background:var(--cap);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.radar-north{position:absolute;right:8px;top:6px;display:flex;flex-direction:column;align-items:center;font-size:11px;font-weight:500;line-height:1;text-shadow:0 0 3px #fff}
.radar-north b{font-weight:400}
.radar-motion{position:absolute;right:6px;top:40px;display:flex;align-items:center;gap:4px;padding:3px 6px;background:var(--ink);color:#fff;font-size:11px;font-weight:500;line-height:1}
.radar-motion b{display:inline-block;font-size:13px}
.radar-scale{position:absolute;left:8px;bottom:8px;display:flex;flex-direction:column;gap:2px;font-size:10px;line-height:1;text-shadow:0 0 3px #fff}
.radar-scale i{display:block;width:100%;height:5px;border:1px solid var(--ink);border-top:0}
.radar-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;font-size:12px;color:var(--muted);text-align:center;pointer-events:none}
.radar-play{display:flex;align-items:center;gap:12px;margin-top:10px}
.radar-play button{flex:none;width:44px;height:44px;border:1px solid var(--rule);background:transparent;font-size:12px}
.radar-timeline{margin:-8px 0 0 56px;padding:0 8px}
.radar-track{position:relative;display:block;height:5px;background:repeating-linear-gradient(135deg,var(--hatch-line) 0 1px,transparent 1px 4px);border-bottom:1px solid var(--rule-soft)}
.radar-track i{position:absolute;left:0;top:0;bottom:-1px;display:block;background:var(--ink)}
.radar-ticks{position:relative;display:block;height:20px;margin-top:4px;font-size:11px;color:var(--muted)}
.radar-ticks span{position:absolute;top:0;white-space:nowrap;transform:translateX(-50%)}
.radar-ticks .first{transform:none}.radar-ticks .last{transform:translateX(-100%)}
.radar-ticks .now{color:var(--ink);font-weight:500}
.radar-ticks .now::before{content:'';position:absolute;left:50%;top:-10px;height:9px;border-left:2px solid var(--ink)}
.radar-frame-note{font-size:12px;margin-top:2px}
.radar-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:14px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.04em}
.radar-legend span{display:flex;align-items:center;gap:6px}
.radar-legend i{display:block;width:30px;height:10px;box-shadow:inset 0 0 0 1px rgba(17,17,17,.25)}
.key-heavy{box-shadow:inset 0 0 0 1px var(--ink)!important}
.radar-small{font-size:11px;color:var(--muted);margin-top:5px}
.radar-legend+.radar-small{margin-top:6px}
.radar-section.outside .radar-side,.radar-section.outside .radar-north{display:none}
.radar-section.outside .radar-map{aspect-ratio:auto;height:96px}
.radar-link{display:inline-flex;align-items:center;min-height:44px;font-size:12px;font-weight:500;text-decoration:none}
@media(min-width:600px){
  .radar-body{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px;align-items:start}
  .radar-play{margin-top:0}
}

/* Details, below the fold, in the same language. */
.all-details{border-top:1px solid var(--rule);margin-top:6px}
.all-details>summary{min-height:48px;display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}
.all-details>summary::-webkit-details-marker{display:none}
.all-details>summary::after{content:'+';font-size:20px;line-height:1;margin-left:8px}
.all-details[open]>summary::after{content:'−'}
.all-details>summary span:last-child{font-size:11px;color:var(--muted);margin-left:auto}
.all-details>p{font-size:12px;color:var(--muted);margin:0 0 6px}
.correction-note{font-size:11px;color:var(--ink)}
.footnote{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--rule);font-size:11px;color:var(--muted);margin:0 0 16px}
.footnote a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none;font-weight:500}
.method{font-size:12px;color:var(--muted);border-top:1px solid var(--rule-soft);padding:10px 0;margin-top:10px}
.method summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--ink);font-weight:500}
.method p{max-width:75ch;margin:6px 0}.method ul{padding-left:18px}.method li{margin-bottom:7px}
.withheld-detail{margin:14px 0}.withheld-detail summary{font-size:11px}
.raw-models{display:flex;gap:10px 20px;flex-wrap:wrap;margin:6px 0}
.section-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin:0 0 12px}
.section-title p{font-size:11px;color:var(--muted);margin-top:3px}
.observed{border-top:1px solid var(--rule);padding-top:10px}
.gauges{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.gauge{border-top:1px solid var(--rule-soft);padding:8px 0 12px}
.gauge-name{font-size:13px;font-weight:500;margin:0 0 3px}
.gauge-location,.gauge-age{font-size:11px;color:var(--muted)}
.gauge-reading{font-size:17px;font-weight:500;margin:6px 0 2px}.gauge-reading small{font-size:11px;font-weight:400;color:var(--muted)}
.gauge-age.old{color:var(--ink);font-weight:500}
.empty-text{font-size:12px;color:var(--muted)}
.more-gauges{font-size:11px;color:var(--muted);margin:4px 0 16px}.more-gauges summary{cursor:pointer;width:max-content;min-height:44px;display:flex;align-items:center;color:var(--ink);font-weight:500}.more-gauges .gauges{margin-top:8px}

/* Archived forecast-versus-measured trail. */
.trail-section{border-top:1px solid var(--rule);padding-top:10px;margin:8px 0 24px}
.experimental{font-size:10px;color:var(--muted);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}
.trail-controls{display:flex;align-items:flex-end;gap:16px;margin-top:14px}
.trail-controls label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.trail-controls select{font-size:12px;text-transform:none;letter-spacing:0;color:var(--ink);background:transparent;border:1px solid var(--rule);border-radius:0;padding:8px 26px 8px 10px;max-width:280px;min-height:44px}
.trail-controls>p{font-size:11px;color:var(--muted);margin:0 0 9px auto;text-align:right}
.chart-legend{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--muted);margin:14px 0 4px}
.chart-legend span{display:flex;align-items:center;gap:5px}
.chart-legend i{width:12px;height:8px;display:inline-block}
.axis-unit{margin-left:auto}
.chart-legend .actual-key{background:#7d8a80}
.chart-legend .adjusted-key{height:0;border-top:2px solid var(--ink)}
.chart-legend .base-key{height:0;border-top:2px dashed var(--ink)}
.trail-chart-wrap{min-height:215px}
#trail-chart{display:block;width:100%;overflow:visible;touch-action:pan-y}
#trail-chart text{font:11px var(--font);fill:var(--muted)}
#trail-chart .grid{stroke:var(--rule-soft);stroke-width:1}
#trail-chart .actual-bar{fill:#7d8a80}
#trail-chart .chart-hit{fill:transparent;cursor:pointer}#trail-chart .chart-hit:hover{fill:rgba(17,17,17,.05)}
#trail-chart .missing{fill:none;stroke:var(--muted);stroke-dasharray:3 3}
#trail-chart .cursor{stroke:var(--ink);stroke-dasharray:3 4}
.base-line{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:5 3;pointer-events:none}
.adjusted-line{stroke:var(--ink);stroke-width:2;pointer-events:none}
.base-dot{fill:var(--sage);stroke:var(--ink);stroke-width:1;pointer-events:none}.adjusted-dot{fill:var(--ink);pointer-events:none}
.trail-section .chart-empty{inset:0;padding:20px}
.trail-readout{display:flex;gap:22px;align-items:center}.trail-readout input{max-width:220px}
.trail-readout p{font-size:11px;color:var(--muted);margin:5px 0}
.trail-metrics{display:flex;flex-wrap:wrap;gap:6px 30px;margin:12px 0 18px}.trail-metrics p{font-size:11px}
#trail-evidence{overflow-wrap:anywhere}

.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;top:-80px;left:16px;background:var(--ink);color:var(--sage);padding:10px;z-index:5}.skip:focus{top:8px}

@media(max-width:600px){
  .experimental{display:block;margin-top:6px}
  .trail-section .section-title{flex-direction:column;gap:4px}
  .trail-controls{flex-wrap:wrap;gap:12px;align-items:flex-start}.trail-controls label{flex:1 1 40%;min-width:0}.trail-controls label:first-child{flex-basis:100%}
  .trail-controls select{width:100%;font-size:12px;padding-left:8px;padding-right:20px;max-width:100%}.trail-controls>p{flex-basis:100%;margin:0;text-align:left}
  .trail-chart-wrap{min-height:200px}.trail-readout{display:block}.trail-readout input{max-width:none}.trail-metrics{display:block}.trail-metrics p{margin:7px 0}
}
@media(min-width:600px){.col-plot{height:180px}.total{font-size:72px}.cols{column-gap:10px}.cols.dense{column-gap:3px}.tiles{gap:16px}}
@media(max-width:374px){
  .masthead,main{padding-left:12px;padding-right:12px}
  .total{font-size:56px}  .tiles{gap:8px}.tile-value{font-size:15px}.cols{column-gap:4px}
}
@media(max-height:680px){.hero{padding:10px 0 10px}.total{font-size:52px}.col-plot{height:96px}.tiles{margin-top:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.headline{font-size:27px;font-weight:500;letter-spacing:-.01em;line-height:1.15;margin:8px 0 16px}
.days{display:grid;gap:6px}
.day-head{display:flex;justify-content:space-between;align-items:baseline;margin-top:8px;font-size:14px}
.day-name{font-weight:600}.day-facts{font-size:13px;color:var(--muted)}
.strip{position:relative;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}
.block{height:46px;border:0;border-radius:8px;padding:0 0 5px;display:flex;align-items:flex-end;justify-content:center;font-size:12px;font-weight:500;color:var(--ink);background:rgba(33,46,41,.07)}
.block.dark{color:var(--sage)}
.block.past{background:transparent;border:1px solid rgba(33,46,41,.12);cursor:default}
.block.past:disabled{opacity:1}
.block.unknown{border:1px dashed rgba(33,46,41,.35)}
.block.picked{outline:1.5px solid var(--ink);outline-offset:0}
.now-mark{position:absolute;top:-4px;bottom:-4px;width:4px;margin-left:-2px;border-radius:2px;background:var(--cap);box-shadow:0 0 0 .5px rgba(17,17,17,.5);pointer-events:none}
.block-ticks{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;font-size:11px;color:var(--muted)}
.block-detail{margin-top:12px;min-height:18px;font-size:13px;font-weight:500}
.block-detail.label{font-weight:400}
