.weather-layout:has(.weather-now){grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr)}.weather-now{display:flex;align-items:center;justify-content:space-between;gap:20px}.weather-now>div:first-child{min-width:0}.weather-now .weather-place{font-size:22px;margin-bottom:10px}.forecast-now-label{font:10px var(--mono);letter-spacing:.05em;color:#a9c3bf!important;margin:15px 0}.weather-now .temperature{font-size:clamp(62px,7vw,106px);line-height:1.1;margin:5px 0 12px}.weather-now .temperature span{font:18px var(--body);display:block;margin:10px 0 0}.forecast-feels{color:#bbd1c9!important;margin:0 0 24px}.weather-sky{width:190px;flex-shrink:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center;position:relative;background:radial-gradient(ellipse at 50% 38%,#aec78917,transparent 68%);overflow:hidden}.weather-sky>span{font:9px var(--mono);letter-spacing:.14em;color:#a8c9c3;text-align:center;margin-top:20px}.weather-glyph{width:64px;height:48px;display:block}.weather-glyph-large{width:100%;height:auto;filter:drop-shadow(0 0 13px #f9c36a14)}.sky-contours{width:100%;color:#547673;opacity:.45}.weather-sky .sky-orbit{transform-origin:60px 35px;animation:sky-breathe 12s ease-in-out infinite}.weather-sky .sky-cloud{animation:cloud-drift 8s ease-in-out infinite alternate}.weather-sky .sky-rain{animation:rain-drift 1.5s ease-in-out infinite}.weather-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 25px;border-top:1px solid #47615b;margin-top:10px}.weather-detail-grid>div{padding:18px 0;border-bottom:1px solid #314c45}.weather-detail-grid span{font-size:12px;color:#acc5bb;display:block}.weather-detail-grid strong{font:500 25px var(--body);display:block;color:#eff3dd;margin-top:5px;white-space:nowrap}.weather-detail-grid small{font-size:13px;color:#c5d7ca}.wind-compass{display:inline-block;vertical-align:middle;width:29px;height:29px;margin-left:10px}.wind-compass circle{fill:none;stroke:#739382}.wind-compass path{fill:#e5fa75}.weather-layout:has(.weather-now) .forecast-periods{display:none}.weather-layout:has(.weather-now) #weather-stamp{margin-top:22px;color:#a8c2b8}.forecast-lab{margin:55px 0 25px}.forecast-heading,.forecast-days-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin:0 0 24px}.forecast-heading .eyebrow,.forecast-days-heading .eyebrow{margin-bottom:14px}.forecast-heading h2,.forecast-days-heading h2{font-size:clamp(35px,4vw,52px);margin:0}.forecast-zone{font-size:12px;font-weight:600;min-width:210px}.forecast-zone select{display:block;width:100%;padding:10px 12px;margin-top:8px;border:1px solid #aab9ac;background:transparent;color:var(--ink)}.forecast-console{background:#13272c;color:#f0f4e7;border:1px solid #354d4d;box-shadow:0 15px 36px #14282c0c;overflow:hidden}.forecast-toolbar{display:flex;justify-content:space-between;gap:15px;padding:19px 25px;border-bottom:1px solid #3c5150;background:#102228}.forecast-tabs,.forecast-ranges{display:flex;gap:4px}.forecast-toolbar button{background:transparent;border:1px solid transparent;color:#bacec6;padding:10px 14px;font-size:13px;white-space:nowrap;min-height:40px}.forecast-toolbar button:hover{background:#273e41}.forecast-toolbar button[aria-pressed=true]{background:#e5fa75;color:#172828}.forecast-ranges button{border-color:#3a5351;padding:8px 12px}.forecast-ranges button[aria-pressed=true]{background:#304e4d;color:#f2f6e5;border-color:#bdd59f}.forecast-chart-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:28px 30px 0}.forecast-chart-heading .eyebrow{color:#a9c7ba;margin-bottom:8px;font-size:10px}.forecast-chart-heading h3{font:500 33px var(--display);margin:0}.forecast-chart-heading>span{font:500 36px var(--display);color:#f2c47b}.forecast-meta{color:#a3c0b9!important;font-size:12px;margin:12px 30px 15px}.forecast-chart{width:100%;min-width:0;touch-action:pan-y;cursor:crosshair}.forecast-chart>svg{width:100%;height:auto;display:block;min-height:210px}.forecast-empty{padding:70px 30px;color:#d1dfd3!important;text-align:center}.chart-axis{fill:#acc4bb;font:11px var(--mono)}.chart-grid{fill:none;stroke:#bed5c7;stroke-opacity:.12;stroke-dasharray:3 6}.forecast-trace{filter:drop-shadow(0 1px 4px #f7e5a522)}.forecast-scrub{margin:0 30px 25px}.forecast-scrub>label{display:flex;justify-content:space-between;gap:15px;color:#dce8d9;font-size:12px}.forecast-scrub>label>span{color:#a4bcb3;font-size:11px}.forecast-scrub input{width:100%;margin:17px 0 20px;accent-color:#e5fa75;cursor:ew-resize}.forecast-selected{display:grid;grid-template-columns:1.5fr repeat(4,1fr);border-top:1px solid #3a5551;padding-top:20px;gap:17px}.forecast-selected>div{min-width:0}.forecast-selected span:not(.selected-time span){display:block;font-size:11px;color:#a5c2b6}.forecast-selected strong{display:block;font-size:20px;line-height:1.4;font-weight:500}.forecast-selected small{display:block;color:#a9c3b8;font-size:10px;margin-top:6px}.selected-time{display:flex;align-items:center;gap:10px}.selected-time .weather-glyph{width:50px;min-width:50px}.selected-time strong{font-size:15px}.forecast-table{border-top:1px solid #3a5551;padding:16px 30px;color:#bed1c5;font-size:12px}.forecast-table summary{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-offset:4px}.forecast-table>div{max-width:100%;overflow:auto}.forecast-table table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px;margin-top:20px;text-align:left}.forecast-table th,.forecast-table td{border-bottom:1px solid #37524c;padding:10px 14px}.forecast-table caption{text-align:left;margin-bottom:12px}.forecast-days-heading{margin-top:45px}.forecast-days-heading>p{font-size:13px;margin:0}.forecast-days{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:1px;background:#c5cfc1;border:1px solid #c5cfc1}.forecast-day{display:flex;align-items:center;flex-direction:column;position:relative;min-width:0;border:0;background:#f0f2e8;color:#142b2c;padding:20px 6px 16px;text-align:center}.forecast-day:hover{background:#e2eacd}.forecast-day[aria-pressed=true]{background:#ddebab;box-shadow:inset 0 4px #486340}.forecast-day:disabled{opacity:.55;cursor:default}.day-name{font-size:14px;font-weight:700}.day-date{font-size:10px;color:#536858;margin:3px 0 8px}.forecast-day .weather-glyph{width:57px;height:45px}.day-condition{font-size:10px;line-height:1.4;min-height:33px;margin:8px 0 6px}.day-temps{display:flex;gap:8px;align-items:baseline;font-size:15px}.day-temps strong{font-size:22px;font-weight:600}.day-temps>span{color:#69785d}.day-range{width:80%;height:5px;border-radius:4px;background:#d6ddcc;margin:12px 0 15px;overflow:hidden;position:relative}.day-range i{position:absolute;height:100%;border-radius:4px;background:linear-gradient(90deg,#8fae91,#daa359)}.day-rain{font:10px var(--mono);color:#305561;white-space:nowrap}.day-interval{font-size:9px;color:#647359;margin-top:9px}.forecast-coverage{font-size:12px;margin:20px 0 10px;color:#3b5145}.forecast-method,.forecast-source{font-size:11px;color:#657362;line-height:1.8;max-width:1000px}.forecast-source a{text-decoration:underline;text-underline-offset:3px}@keyframes sky-breathe{50%{transform:scale(1.055)}}@keyframes cloud-drift{to{transform:translateX(4px)}}@keyframes rain-drift{50%{transform:translate(-2px,3px);opacity:.6}}@media(min-width:1500px){.forecast-selected strong{font-size:23px}}@media(max-width:1150px){.forecast-days{grid-template-columns:repeat(5,minmax(0,1fr))}.weather-sky{width:130px}.forecast-toolbar{padding:15px}.forecast-toolbar button{padding:9px 10px}.forecast-selected{grid-template-columns:repeat(4,1fr)}.forecast-selected .selected-time{grid-column:1/-1}.weather-detail-grid{gap:0 15px}.weather-detail-grid strong{font-size:21px}.wind-compass{width:24px;margin-left:4px}}@media(max-width:760px){.weather-layout:has(.weather-now){grid-template-columns:minmax(0,1fr)}.weather-now{gap:12px}.weather-now .weather-place{font-size:19px}.weather-sky{width:115px}.weather-now .temperature{font-size:70px}.weather-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-heading,.forecast-days-heading{display:block}.forecast-zone{display:block;margin-top:20px;max-width:270px}.forecast-console{margin:0 -1px}.forecast-toolbar{display:block;padding:12px}.forecast-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}.forecast-tabs button{font-size:11px;padding:10px 2px}.forecast-ranges{margin-top:12px}.forecast-ranges button{font-size:11px}.forecast-chart-heading{padding:24px 18px 0}.forecast-chart-heading h3{font-size:29px}.forecast-meta{margin-left:18px;margin-right:18px;line-height:1.7}.forecast-chart>svg{min-height:180px}.chart-axis{font-size:15px}.forecast-scrub{margin:0 18px 20px}.forecast-scrub>label{display:block}.forecast-scrub>label>span{display:block;margin-top:5px}.forecast-selected{grid-template-columns:1fr 1fr;gap:18px}.forecast-selected .selected-time{grid-column:1/-1}.forecast-selected strong{font-size:20px}.forecast-selected small{font-size:11px}.forecast-table{padding:18px}.forecast-days{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px}.forecast-days-heading>p{margin-top:16px}.forecast-day{padding:18px}.forecast-day .weather-glyph{width:74px;height:55px}.day-name{font-size:17px}.day-date,.day-condition,.day-rain{font-size:12px}.day-condition{min-height:17px}.day-interval{font-size:11px}.day-temps strong{font-size:28px}.day-range{width:75%;margin-bottom:12px}.forecast-method,.forecast-source{font-size:12px}.forecast-coverage{line-height:1.8}}@media(prefers-reduced-motion:reduce){.weather-sky .sky-orbit,.weather-sky .sky-cloud,.weather-sky .sky-rain{animation:none}.forecast-trace{filter:none}}

.forecast-trace{stroke-dasharray:1;animation:forecast-reveal .7s ease-out both}#forecast-halo{animation:forecast-pulse 3s ease-in-out infinite}@keyframes forecast-reveal{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes forecast-pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.forecast-trace,#forecast-halo{animation:none}}
