@font-face{font-family:Weather Condensed;src:url('fonts/RobotoCondensed.ttf') format('truetype');font-weight:100 900;font-display:swap}:root{color-scheme:dark;--bg:#202020;--text:#eee;--muted:#b4b4b4;--line:#8a8a8a;--accent:#54b8d7;--sun:#dfcc22;--rain:#8ebdc9;--cloud:#99bbc4;--icon-line:#969c9d;--hero-top:#002635;--hero-bottom:#142024;--hover:#292929;--panel:#202020}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:0}body{margin:0;background:#151515;color:var(--text);font:16px/1.3 Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}button{font:inherit;color:inherit;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}a{color:inherit}button:hover{background:var(--hover)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}[hidden]{display:none!important}.page{max-width:760px;min-width:0;margin:auto;background:var(--bg);container-type:inline-size;--u:min(1.25px,calc(100cqw / 390))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}header{height:calc(var(--u)*57);display:flex;align-items:center;padding:0 calc(var(--u)*14);gap:calc(var(--u)*18);border-bottom:1px solid #454545}.wordmark{font-size:calc(var(--u)*32);font-weight:750;letter-spacing:-1.7px;text-decoration:none}.place{margin-left:auto;font-size:calc(var(--u)*16);font-weight:700}.settings-link{text-decoration:none;padding:calc(var(--u)*10);font-size:calc(var(--u)*23);color:var(--muted)}.demo-banner{display:flex;gap:calc(var(--u)*6);align-items:center;padding:calc(var(--u)*5) calc(var(--u)*8);min-height:calc(var(--u)*25);background:#151515;color:#c9d1d3;font-size:calc(var(--u)*11)}.badge{color:var(--accent);font-weight:700;letter-spacing:.5px}.location-heading{padding:calc(var(--u)*7) calc(var(--u)*8);border-bottom:1px solid #626262;min-height:calc(var(--u)*57)}h1,h2,h3,p{margin:0}h1{font-family:Weather Condensed,Arial,sans-serif;font-size:calc(var(--u)*38);font-weight:750;letter-spacing:-.6px;line-height:1.13}.today{padding:calc(var(--u)*24) calc(var(--u)*8) calc(var(--u)*37);background:linear-gradient(var(--hero-top),var(--hero-bottom));border-bottom:1px solid #5b6567}.today>h2{font:750 calc(var(--u)*23)/1.22 Weather Condensed,Arial,sans-serif;letter-spacing:-.25px}.sun-times{display:flex;align-items:center;gap:calc(var(--u)*8);height:calc(var(--u)*18);margin-top:calc(var(--u)*8);font-size:calc(var(--u)*15);font-weight:700}.sun-times img{object-fit:contain;height:calc(var(--u)*18);width:calc(var(--u)*27);color:#adb7bc}.today-pair{display:grid;grid-template-columns:1fr 1fr}.provider-summary{min-width:0}.provider-summary+.provider-summary{padding-left:0}.summary-symbol{height:calc(var(--u)*128);margin-top:calc(var(--u)*10);padding-left:calc(var(--u)*18)}.summary-symbol .weather-icon{width:calc(var(--u)*94);height:calc(var(--u)*94)}.current-main{display:flex;align-items:center;gap:calc(var(--u)*6);height:calc(var(--u)*63)}.current-temp{font:750 calc(var(--u)*52)/1 Weather Condensed,Arial,sans-serif;letter-spacing:calc(var(--u)*-1.4)}.wind-unit{font-size:calc(var(--u)*18);margin-left:calc(var(--u)*1)}.provider-name{font:750 calc(var(--u)*15)/calc(var(--u)*19) Weather Condensed,Arial,sans-serif;text-transform:uppercase;white-space:nowrap}.metrics{display:grid;grid-template-columns:calc(var(--u)*124) 1fr;margin:calc(var(--u)*16) 0 0;grid-auto-rows:calc(var(--u)*23.5);font-size:calc(var(--u)*15);line-height:calc(var(--u)*23.5)}.metrics dt{margin:0;white-space:nowrap}.metrics dd{margin:0;font-weight:700;white-space:nowrap;text-align:left}.metrics dd svg{height:calc(var(--u)*13);width:calc(var(--u)*8);margin-right:calc(var(--u)*4);fill:var(--muted);stroke:none;vertical-align:baseline}.grid{display:grid;grid-template-columns:17.65% 41.7% 35.5% 5.15%;align-items:center}.table-head{height:calc(var(--u)*36);border-bottom:1px solid #c0c0c0;font:750 calc(var(--u)*16)/1 Weather Condensed,Arial,sans-serif;text-transform:uppercase;white-space:nowrap}.table-head>span:first-child{padding-left:calc(var(--u)*15)}.table-head .period-label{font-size:calc(var(--u)*20);color:var(--accent);text-transform:none}section[aria-labelledby=hourly-title]{border-top:calc(var(--u)*16) solid #151515}.hour-row{height:calc(var(--u)*69);border-bottom:1px solid var(--line)}.time{padding-left:calc(var(--u)*15);font-size:calc(var(--u)*18);line-height:1;white-space:nowrap}.forecast-cell{min-width:0}.values-line{display:flex;align-items:center;gap:calc(var(--u)*10);height:calc(var(--u)*32)}.weather-icon{display:block;flex-shrink:0;width:calc(var(--u)*31);height:calc(var(--u)*31);overflow:visible}.row-temp{font:750 calc(var(--u)*24)/1 Weather Condensed,Arial,sans-serif;letter-spacing:calc(var(--u)*-.5);width:calc(var(--u)*39);flex-shrink:0}.wind-dial{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:calc(var(--u)*23);height:calc(var(--u)*23);border:calc(var(--u)*2) solid #929595;border-radius:50%;font:500 calc(var(--u)*13)/1 Weather Condensed,Arial,sans-serif;position:relative;color:var(--text)}.wind-dial:before{content:"";position:absolute;left:calc(var(--u)*-1);top:calc(var(--u)*-1);border-top:calc(var(--u)*5) solid #929595;border-right:calc(var(--u)*5) solid transparent}.current-main .wind-dial{width:calc(var(--u)*23);height:calc(var(--u)*23)}.precip{height:calc(var(--u)*18);display:flex;align-items:center;gap:calc(var(--u)*2);font-size:calc(var(--u)*14);line-height:1;white-space:nowrap;margin-top:calc(var(--u)*2);color:var(--text)}.precip svg,.day-rain svg{width:calc(var(--u)*6);height:calc(var(--u)*10);color:var(--muted);flex-shrink:0;margin-right:calc(var(--u)*1)}.divider{margin:0 calc(var(--u)*1)}.expand{display:flex;align-items:center;justify-content:center;width:100%;gap:calc(var(--u)*11);height:calc(var(--u)*54);padding:0;background:var(--bg);border-bottom:1px solid #969696;text-transform:uppercase;font:750 calc(var(--u)*20)/1 Weather Condensed,Arial,sans-serif;letter-spacing:-.2px}.chevron{display:inline-block;width:calc(var(--u)*15);height:calc(var(--u)*15);border-right:calc(var(--u)*2) solid var(--accent);border-bottom:calc(var(--u)*2) solid var(--accent);transform:rotate(45deg);margin-top:calc(var(--u)*-8)}.expand[aria-expanded=true] .chevron,.day-toggle[aria-expanded=true] .chevron,.close-day .chevron{transform:rotate(225deg);margin-top:calc(var(--u)*8)}.week{margin:0}.day-toggle{height:calc(var(--u)*121);width:100%;text-align:left;background:var(--bg);padding:0;border-bottom:1px solid var(--line)}.day-label{padding-left:calc(var(--u)*15);line-height:1.25;white-space:nowrap}.day-label strong{display:block;font-size:calc(var(--u)*18);font-weight:700}.day-label small{display:block;font-size:calc(var(--u)*18);font-weight:400}.day-cell{display:grid;grid-template-columns:calc(var(--u)*61) 1fr;grid-template-rows:calc(var(--u)*54) calc(var(--u)*38);align-items:start}.day-symbol{grid-column:1;grid-row:1}.day-symbol .weather-icon{width:calc(var(--u)*53);height:calc(var(--u)*53)}.day-temps{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:0;line-height:1}.day-temps strong{font:750 calc(var(--u)*24)/calc(var(--u)*26) Weather Condensed,Arial,sans-serif;letter-spacing:calc(var(--u)*-.4)}.day-temps small{font:750 calc(var(--u)*24)/calc(var(--u)*26) Weather Condensed,Arial,sans-serif;color:var(--muted);letter-spacing:calc(var(--u)*-.4)}.day-rain{grid-column:1;grid-row:2;font-size:calc(var(--u)*14);line-height:calc(var(--u)*17);white-space:nowrap;padding-top:calc(var(--u)*3)}.day-rain>span{display:flex;align-items:center;gap:calc(var(--u)*2)}.day-wind{grid-row:2;grid-column:2;margin-top:calc(var(--u)*2);margin-left:calc(var(--u)*3)}.day-toggle>.chevron{justify-self:center}.day-detail{background:var(--bg)}.day-detail .hour-row{background:var(--bg)}.day-toggle[aria-expanded=true]{border-bottom:0}section.rain{border-top:calc(var(--u)*16) solid #151515}.rain-heading{display:flex;justify-content:space-between;align-items:center;padding:0 calc(var(--u)*15);height:calc(var(--u)*52);border-bottom:1px solid #a0a0a0;gap:calc(var(--u)*15)}.rain-heading h2{font:750 calc(var(--u)*20)/1 Weather Condensed,Arial,sans-serif;color:var(--accent);white-space:nowrap}.rain-heading>span{font:750 calc(var(--u)*13)/1 Weather Condensed,Arial,sans-serif;text-transform:uppercase}.rain-body{padding:calc(var(--u)*15) calc(var(--u)*15) calc(var(--u)*20)}.rain-body h3{font:750 calc(var(--u)*23)/1.2 Weather Condensed,Arial,sans-serif}.rain-body p{font-size:calc(var(--u)*18);margin-top:calc(var(--u)*27)}.rain-totals{font-size:calc(var(--u)*12);color:var(--muted);margin-top:calc(var(--u)*14);display:flex;gap:calc(var(--u)*14);flex-wrap:wrap}.rain-totals strong{font-weight:400}.radar{padding:calc(var(--u)*20) calc(var(--u)*15);border-top:1px solid #656565;border-bottom:1px solid #656565}.radar-emblem,.radar .eyebrow{display:none}.radar h2{font:750 calc(var(--u)*22)/1.3 Weather Condensed,Arial,sans-serif}.radar p{font-size:calc(var(--u)*14);margin:calc(var(--u)*10) 0 calc(var(--u)*15);line-height:1.5;color:var(--muted)}.external{color:var(--accent);text-decoration:none;font-size:calc(var(--u)*16)}.link-note{display:block;font-size:calc(var(--u)*11);color:var(--muted);margin-top:calc(var(--u)*7)}footer{padding:0 calc(var(--u)*15)}details{border-bottom:1px solid #656565}summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;min-height:calc(var(--u)*49);font-size:calc(var(--u)*14)}summary::-webkit-details-marker{display:none}summary>span{font-size:calc(var(--u)*20);color:var(--muted)}details[open]>summary>span{transform:rotate(45deg)}.details-body{font-size:calc(var(--u)*13);line-height:1.6;color:var(--muted);padding:0 0 calc(var(--u)*16)}.details-body p{margin:0 0 calc(var(--u)*12)}.details-body a{color:var(--accent)}.theme-options{padding-bottom:calc(var(--u)*10)}.theme-options button{display:flex;align-items:center;width:100%;gap:calc(var(--u)*10);background:transparent;padding:calc(var(--u)*12) calc(var(--u)*4);font-size:calc(var(--u)*14);text-align:left}.theme-options button:hover{background:var(--hover)}.swatch{width:calc(var(--u)*18);height:calc(var(--u)*18);border:1px solid #999;border-radius:100%}.swatch.reference{background:#202020}.swatch.paper{background:#f5f3ea}.swatch.forest{background:#0d120e}.swatch.mono{background:#151719}.check{margin-left:auto;color:var(--accent)}[aria-pressed=true] .check:after{content:'✓'}.footer-bottom{padding:calc(var(--u)*25) 0;display:flex;gap:calc(var(--u)*12);flex-wrap:wrap;align-items:center;color:var(--muted);font-size:calc(var(--u)*11)}.footer-bottom strong{font-size:calc(var(--u)*17);color:var(--text);letter-spacing:-.5px}.footer-bottom a{margin-left:auto;text-decoration:none}html[data-theme=forest]{--bg:#0d120e;--text:#e8ece6;--muted:#a2ada3;--line:#57615a;--accent:#bdd6b8;--hero-top:#13251c;--hero-bottom:#101b14;--hover:#1c281f}html[data-theme=paper]{color-scheme:light;--bg:#f5f3ea;--text:#17221b;--muted:#5d6b60;--line:#909d90;--accent:#496653;--hero-top:#e2e8dd;--hero-bottom:#eeeee3;--hover:#e5e8da;--sun:#d9b91b}html[data-theme=mono]{--bg:#151719;--text:#eceded;--muted:#a8afb2;--line:#666b6e;--accent:#c1cbd0;--hero-top:#20262a;--hero-bottom:#1b2023;--hover:#282d30}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Measured corrections after the 390 px reference comparison. */
.today{padding-top:calc(var(--u)*22);padding-bottom:calc(var(--u)*46)}.sun-times{margin-top:calc(var(--u)*6)}.summary-symbol{height:calc(var(--u)*125);margin-top:calc(var(--u)*7)}.current-main{height:calc(var(--u)*65)}.metrics{margin-top:calc(var(--u)*12)}

.wind-dial.wind-strong{border-color:#ed843b}.wind-dial.wind-strong:before{border-top-color:#ed843b}
.day-toggle>.chevron{position:relative;left:calc(var(--u)*-2)}
/* Bounded mobile layout fixes: retain typography, icon artwork and theme tokens. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.grid{grid-template-columns:calc(var(--u)*77) minmax(0,1fr) minmax(0,1fr) calc(var(--u)*28)}
.table-head{height:auto;min-height:calc(var(--u)*36);padding:calc(var(--u)*4) 0;line-height:1.08;white-space:normal}
.table-head>span{min-width:0}
.table-head>span:nth-child(2),.table-head>span:nth-child(3){padding-right:calc(var(--u)*8);overflow-wrap:normal;word-break:normal;hyphens:none}
.hour-row>.forecast-cell,.day-cell{padding-right:calc(var(--u)*7)}
.day-label{min-width:0;padding-right:calc(var(--u)*6)}
.day-cell{grid-template-columns:calc(var(--u)*59) minmax(0,1fr);column-gap:calc(var(--u)*4)}
.day-cell>*{min-width:0}
.day-wind{margin-left:0}
.day-toggle>.chevron{left:0;justify-self:center}
.summary-symbol{height:calc(var(--u)*113)}
/* Gentle breathing-room pass, limited to forecast-table contents. */
.hour-row{height:calc(var(--u)*73)}
.day-toggle{height:calc(var(--u)*125)}
.hour-row>.forecast-cell,.day-cell{padding-left:calc(var(--u)*5);padding-right:calc(var(--u)*12)}
.table-head>span:nth-child(2),.table-head>span:nth-child(3){padding-left:calc(var(--u)*5);padding-right:calc(var(--u)*12)}
.values-line{gap:calc(var(--u)*9)}
.hour-row .weather-icon{width:calc(var(--u)*28);height:calc(var(--u)*28)}
.hour-row .row-temp{font-size:calc(var(--u)*22);font-weight:650;width:calc(var(--u)*36)}
.day-symbol .weather-icon{width:calc(var(--u)*47);height:calc(var(--u)*47)}
.day-temps strong{font-size:calc(var(--u)*22);font-weight:650;line-height:calc(var(--u)*25)}
.day-temps small{font-size:calc(var(--u)*21);font-weight:550;line-height:calc(var(--u)*25)}
.precip{font-size:calc(var(--u)*13);font-weight:400;color:var(--muted);margin-top:calc(var(--u)*3)}
.day-rain{font-size:calc(var(--u)*13);font-weight:400;color:var(--muted);line-height:calc(var(--u)*18)}
.hour-row .wind-dial,.day-cell .wind-dial{font-size:calc(var(--u)*12);font-weight:400;color:var(--muted)}

/* Necessary source availability / clock labels; forecast layout is unchanged. */
.source-state{font-size:calc(var(--u)*10);font-weight:400;line-height:1.25;min-height:2.5em;margin:calc(var(--u)*3) 0;color:var(--muted);overflow-wrap:anywhere}.data-note{padding:12px 16px;font-size:14px}.clock-offset{display:block;font-size:9px;font-weight:400}.sun-times[hidden]{display:none}

/* Original FMI images only. Scale boxes, never recolor or edit the artwork. */
.fmi-artwork{object-fit:contain;filter:none}
.summary-symbol .weather-icon{width:calc(var(--u)*110);height:calc(var(--u)*110)}
.hour-row .weather-icon{width:calc(var(--u)*34);height:calc(var(--u)*34)}
.hour-row .values-line{gap:calc(var(--u)*7)}
.day-symbol .weather-icon{width:calc(var(--u)*54);height:calc(var(--u)*54)}
.missing-weather-icon{display:inline-flex;align-items:center;justify-content:center;font:400 calc(var(--u)*18)/1 Weather Condensed,Arial,sans-serif;color:var(--muted)}
.summary-symbol .missing-weather-icon{font-size:calc(var(--u)*40)}
/* Official pollen notice/link, at the bottom of the existing single-page flow. */
.pollen{border-top:1px solid #656565}
.pollen-heading{height:calc(var(--u)*40);display:flex;align-items:center;padding:0 calc(var(--u)*15);border-bottom:1px solid #656565}
.pollen-heading h2{font:750 calc(var(--u)*20)/1 Weather Condensed,Arial,sans-serif;color:var(--accent)}
.pollen-body{padding:calc(var(--u)*18) calc(var(--u)*15) calc(var(--u)*22)}
.pollen-body h3{font:700 calc(var(--u)*22)/1.25 Weather Condensed,Arial,sans-serif}
.pollen-date,.pollen-source{color:var(--muted);font-size:calc(var(--u)*12);line-height:1.5}
.pollen-date{margin-top:calc(var(--u)*10)}.pollen-source{margin-top:calc(var(--u)*3);margin-bottom:calc(var(--u)*16)}
