.weather-card{border-radius:var(--radius-36);background:linear-gradient(135deg, #09274061, #03111e94), var(--surface-glass);gap:clamp(1rem,1.7vw,1.3rem);margin-top:clamp(1rem,2.5vw,1.5rem);padding:clamp(1.05rem,2.1vw,1.5rem) clamp(1.2rem,2.5vw,1.75rem);display:grid}.weather-card__heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.weather-card__heading>div{flex:auto;min-width:0}.weather-card__heading h2{overflow-wrap:anywhere;letter-spacing:-.045em;text-shadow:0 .25rem 1.75rem #0008123d;margin:0;font-size:clamp(2rem,4.8vw,3.75rem);line-height:1}.weather-card__heading h2 span{color:var(--text-secondary);letter-spacing:-.015em;text-transform:none;vertical-align:.08em;font-size:.64em;font-weight:680;display:inline}.weather-card__date{color:var(--text-secondary);margin:.75rem 0 0;font-size:.88rem;line-height:1.4}.unit-toggle{border:1px solid var(--border-default);border-radius:var(--radius-pill);cursor:pointer;min-width:6rem;min-height:2.75rem;color:var(--text-secondary);transition:border-color var(--transition-fast), transform var(--transition-fast);background:#03111eb3;flex:none;gap:.2rem;padding:.25rem;display:inline-flex}.unit-toggle:active{transform:scale(.98)}.unit-toggle__option{border-radius:var(--radius-pill);min-width:2.65rem;min-height:2.2rem;transition:color var(--transition-fast), background-color var(--transition-fast);place-items:center;font-size:.84rem;font-weight:800;display:grid}.unit-toggle__option.is-active{color:var(--brand-navy-950);background:var(--weather-accent)}.weather-card__summary{grid-template-columns:minmax(0,auto) auto;justify-content:start;align-items:center;gap:.7rem clamp(1rem,3vw,2rem);display:grid}.weather-card__icon{object-fit:contain;filter:drop-shadow(0 .8rem 1.5rem #000a1959);width:clamp(7rem,11vw,10rem);height:clamp(7rem,11vw,10rem)}.weather-icon{overflow:visible}.weather-icon__sun circle,.weather-icon__sun path,.weather-icon__moon,.weather-icon__cloud,.weather-icon__rain,.weather-icon__mist{vector-effect:non-scaling-stroke}.weather-icon__sun circle{fill:var(--brand-sun);stroke:#ffe6a3;stroke-width:2px}.weather-icon__sun path{fill:none;stroke:#ffe6a3;stroke-linecap:round;stroke-width:3px}.weather-icon__moon{fill:#dceaff;stroke:#f4f8ff;stroke-linejoin:round;stroke-width:2px}.weather-icon__cloud{fill:#c9e7f7;stroke:#eefaff;stroke-linejoin:round;stroke-width:2px}.weather-icon__rain,.weather-icon__mist{fill:none;stroke:var(--weather-accent);stroke-linecap:round;stroke-width:5px}.weather-icon__bolt{fill:var(--focus-ring)}.weather-icon__snow{fill:#e8fbff}.weather-card__temperature{letter-spacing:-.085em;text-shadow:0 .35rem 2.25rem #0008123d;margin:0;font-size:clamp(6.5rem,9.2vw,7.5rem);font-weight:740;line-height:.82}.weather-card__temperature>span{color:var(--weather-accent);letter-spacing:0;vertical-align:top;margin-left:.22em;font-size:.26em;display:inline-block}.weather-card__condition-group{grid-column:1/-1}.weather-card__condition{margin:0;font-size:clamp(1.1rem,2vw,1.35rem);font-weight:720}.weather-card__feels-like{color:var(--text-secondary);margin:.4rem 0 0;font-size:.9rem}.weather-card__metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:0;display:grid}.weather-metric{border:1px solid var(--border-subtle);border-radius:var(--radius-18);min-width:0;transition:transform var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);background:#03142370;padding:clamp(.85rem,1.7vw,1rem)}.weather-metric dt{color:var(--text-secondary);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:.55rem;font-size:.73rem;font-weight:720;display:flex}.weather-metric__icon{border:1px solid color-mix(in srgb, var(--weather-accent) 34%, transparent);width:1.75rem;height:1.75rem;color:var(--weather-accent);background:color-mix(in srgb, var(--weather-accent) 10%, transparent);border-radius:50%;flex:none;place-items:center;display:grid}.weather-metric__icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75px;width:1rem;height:1rem}.weather-metric dd{overflow-wrap:anywhere;margin:.7rem 0 0}.weather-metric__value{letter-spacing:-.025em;font-size:clamp(1.3rem,2.4vw,1.75rem);font-weight:760}.weather-metric__unit{color:var(--text-secondary);font-size:.76rem;font-weight:650}@media (hover:hover) and (pointer:fine){.unit-toggle:hover{border-color:var(--border-hover);transform:translateY(-1px)}.weather-metric:hover{border-color:var(--border-hover);background:#071f348f;transform:translateY(-2px)}}@media (width<=64rem){.weather-card__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=48rem){.weather-card{border-radius:var(--radius-28)}.weather-card__summary{grid-template-columns:minmax(0,auto) auto}.weather-card__temperature{font-size:clamp(4.5rem,15vw,5.5rem)}.weather-card__icon{width:clamp(5rem,18vw,6.25rem);height:clamp(5rem,18vw,6.25rem)}}@media (width<=35rem){.weather-card{border-radius:var(--radius-18);gap:1.35rem;padding:1.15rem}.weather-card__heading h2{font-size:clamp(1.75rem,9vw,2.6rem)}.weather-card__date{margin-top:.55rem;font-size:.78rem}.unit-toggle{min-width:5.5rem}.unit-toggle__option{min-width:2.4rem}.weather-card__summary{column-gap:.65rem}.weather-card__temperature{font-size:clamp(4.5rem,21vw,5.5rem)}.weather-card__metrics{gap:.65rem}.weather-metric{padding:.8rem}.weather-metric dt{letter-spacing:.045em;gap:.4rem;font-size:.64rem}.weather-metric__icon{width:1.5rem;height:1.5rem}.weather-metric__value{font-size:clamp(1.1rem,5.5vw,1.4rem)}}@media (width<=23rem){.weather-card__heading{flex-direction:column}}*,:before,:after{box-sizing:border-box}html{background:var(--brand-navy-950);min-height:100%}body{min-height:100vh;color:var(--text-primary);background:var(--brand-navy-950);margin:0}body,button,input{font:inherit}button{border:0}button,a,input{-webkit-tap-highlight-color:transparent}img,svg{display:block}#root{min-height:100vh}.app{isolation:isolate;min-height:100dvh;padding:clamp(1rem,2.7vw,2.5rem);position:relative;overflow-x:clip}.app__shell{width:min(100%,73.75rem);margin-inline:auto}.glass-panel{border:1px solid var(--border-subtle);background:var(--surface-glass);box-shadow:var(--shadow-glass);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(120%)}.weather-background{z-index:-1;pointer-events:none;background:var(--brand-navy-950);position:fixed;inset:0;overflow:hidden}.weather-background__image,.weather-background__overlay,.weather-background__effect,.weather-background__contrast{position:absolute;inset:0}.weather-background__image{background-image:var(--weather-background-image);background-position:50%;background-size:cover;animation:42s ease-in-out infinite alternate atmosphere-breathe;inset:-2%;transform:scale(1.025)}.weather-background__overlay{background-image:var(--weather-overlay-image);opacity:var(--weather-overlay-opacity);will-change:transform;background-position:50%;background-repeat:no-repeat;background-size:cover;inset:-4%}.weather-background__contrast{background:linear-gradient(#010a1494 0%,#020e1a4d 42%,#010a14b8 100%),radial-gradient(circle at 50% 34%,#0000 0,#0109122e 66%,#0108106b 100%)}.weather-background--clear-day .weather-background__overlay{transform-origin:10% 9%;animation:30s ease-in-out infinite alternate sun-breathe}.weather-background--clear-night .weather-background__overlay{animation:18s ease-in-out infinite alternate stars-breathe}.weather-background--cloudy .weather-background__overlay{animation:36s ease-in-out infinite alternate clouds-drift}.weather-background--rain .weather-background__overlay,.weather-background--storm .weather-background__overlay{animation:11s linear infinite rain-drift}.weather-background--mist .weather-background__overlay{animation:38s ease-in-out infinite alternate mist-drift}.weather-background--storm .weather-background__effect{opacity:0;background:#d2e1ff38;animation:15s linear infinite storm-flash}.weather-background--snow .weather-background__effect{opacity:.2;background-image:radial-gradient(circle,#ffffffad 0 1px,#0000 1.7px),radial-gradient(circle,#ffffff6b 0 1.5px,#0000 2px);background-position:0 0,4rem 5rem;background-size:7rem 7rem,10rem 10rem;animation:26s linear infinite snow-fall}.weather-background--snow .weather-background__contrast,.weather-background--mist .weather-background__contrast{background:linear-gradient(#010d1894 0%,#03111d6b 46%,#010a14bd 100%),radial-gradient(circle at 50% 35%,#0000 0,#0109124d 76%)}.app-header{justify-content:space-between;align-items:center;gap:1.5rem;min-height:3.5rem;display:flex}.app-header__brand{flex:none;display:block}.app-header__logo{object-fit:contain;filter:drop-shadow(0 .625rem 1.5rem #00081240);width:auto;height:clamp(2.625rem,4vw,3rem)}.app-header__descriptor{color:var(--text-secondary);letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:.65rem;margin:0;font-size:.72rem;font-weight:750;display:inline-flex}.app-header__update{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:.55rem;margin:0;font-size:.8rem;font-weight:650;display:inline-flex}.app-header__update svg{fill:none;width:1.05rem;height:1.05rem;stroke:var(--weather-accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px}.app-header__descriptor span,.app__footer span{background:var(--weather-accent);border-radius:50%;width:.45rem;height:.45rem;box-shadow:0 0 1rem #38c7ff7a}.hero{min-width:0;max-width:min(70rem,100%);margin:clamp(3rem,9vh,6.5rem) 0 0}.hero__eyebrow{color:var(--weather-accent);letter-spacing:.2em;text-transform:uppercase;margin:0 0 .9rem;font-size:.75rem;font-weight:800}.hero h1{letter-spacing:-.065em;text-transform:uppercase;text-wrap:balance;text-shadow:0 .25rem 2.5rem #0008124d;max-width:100%;margin:0;font-size:clamp(3.6rem,8vw,7.25rem);font-weight:780;line-height:.88}.hero h1 span{max-width:100%;display:block}.hero__description{max-width:39rem;color:var(--text-secondary);text-wrap:pretty;margin:1.5rem 0 0;font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.65}.search-panel{border-radius:var(--radius-28);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(1rem,2vw,1.5rem);margin-top:clamp(2rem,5vh,3.5rem);padding:clamp(1rem,2.2vw,1.35rem);display:grid}.search-panel--compact{border-radius:var(--radius-18);background:var(--surface-glass-medium);margin-top:clamp(1rem,2.5vw,1.75rem);padding:.85rem}.search-panel--compact .search-form>label,.search-panel--compact .search-form__hint{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.search-form{min-width:0}.search-form label{margin-bottom:.55rem;font-size:.88rem;font-weight:700;display:inline-block}.search-form__controls{grid-template-columns:minmax(0,1fr) auto;gap:.65rem;display:grid}.search-form__field{min-width:0;position:relative}.search-form__icon{z-index:1;color:var(--text-secondary);pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.search-form__icon svg{width:1.2rem;height:1.2rem}.search-form input{border:1px solid var(--border-default);border-radius:var(--radius-12);width:100%;min-width:0;min-height:3rem;color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);background:#03111ead;outline:none;padding:.75rem 1rem .75rem 3rem}.search-form input::placeholder{color:var(--text-tertiary)}.search-form input[aria-invalid=true]{border-color:#ff9dac}.search-form__hint,.search-panel__privacy,.form-error{color:var(--text-tertiary);margin:.55rem 0 0;font-size:.76rem;line-height:1.45}.form-error{color:#ffc2cb;font-weight:650}.search-panel__location{justify-items:stretch;display:grid}.search-panel__privacy{text-align:center;max-width:15rem}.button{border-radius:var(--radius-12);cursor:pointer;min-height:3rem;transition:transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.1rem;font-weight:760;display:inline-flex}.button:active:not(:disabled){transform:scale(.98)}.button:disabled{cursor:wait;opacity:.58}.button--primary{color:var(--brand-navy-950);background:var(--weather-accent)}.button--secondary,.button--compact{color:var(--text-primary);border-color:var(--border-default);background:#07243dc7}.button--compact{flex:none;min-height:2.75rem}.button__label--compact{display:none}@media (hover:hover) and (pointer:fine){.search-form input:hover{border-color:var(--border-hover)}.button:hover:not(:disabled){transform:translateY(-1px)}.button--primary:hover:not(:disabled){background:color-mix(in srgb, var(--weather-accent) 86%, white)}.button--secondary:hover:not(:disabled),.button--compact:hover:not(:disabled){border-color:var(--border-hover);background:#0c3453e6}}:where(button,input,a):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.status-notice{border-radius:var(--radius-18);width:min(100%,48rem);color:var(--text-secondary);justify-content:center;align-items:center;gap:.75rem;margin:1rem auto 0;padding:.9rem 1rem;display:flex}.status-notice--error{color:var(--status-error);background:var(--status-error-surface);border-color:#ffa7b55c;justify-content:space-between}.status-notice strong,.status-notice p{margin:0}.status-notice p{margin-top:.25rem;line-height:1.45}.status-notice__context{opacity:.8;font-size:.82rem}.status-notice__spinner{border:2px solid color-mix(in srgb, var(--weather-accent) 25%, transparent);border-top-color:var(--weather-accent);border-radius:50%;width:1.15rem;height:1.15rem;animation:.8s linear infinite spin}.empty-state{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:clamp(1.25rem,3vw,2rem);display:grid}.empty-state>div{border-radius:var(--radius-18);min-width:0;padding:clamp(1rem,2.5vw,1.4rem);box-shadow:0 1rem 3rem #0008122e}.empty-state span{color:var(--weather-accent);letter-spacing:.16em;font-size:.7rem;font-weight:800}.empty-state h2{margin:.9rem 0 .4rem;font-size:1rem}.empty-state p{color:var(--text-secondary);margin:0;font-size:.85rem;line-height:1.5}.app__footer{color:var(--text-tertiary);text-align:center;justify-content:center;align-items:center;gap:.55rem;margin-top:1.25rem;font-size:.73rem;display:flex}.app__footer span{width:.3rem;height:.3rem}.app__footer--weather{border-radius:var(--radius-18);color:var(--text-secondary);background:var(--surface-glass-medium);justify-content:flex-start;margin-top:1rem;padding:.9rem 1.15rem}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@keyframes atmosphere-breathe{to{transform:scale(1.055)}}@keyframes sun-breathe{to{opacity:.14;transform:scale(1.035)}}@keyframes stars-breathe{to{opacity:.21}}@keyframes clouds-drift{0%{transform:translate(-1.5%)}to{transform:translate(1.5%)}}@keyframes rain-drift{0%{transform:translate(-1%,-2%)}to{transform:translate(1.5%,2%)}}@keyframes mist-drift{0%{transform:translate(-2%)}to{transform:translate(2%)}}@keyframes storm-flash{0%,78%,81%,to{opacity:0}79%{opacity:.12}80%{opacity:.03}}@keyframes snow-fall{to{background-position:2rem 9rem,2rem 15rem}}@media (width<=64rem){.hero{margin-top:clamp(2.5rem,7vh,4.5rem)}}@media (width<=48rem){.search-panel{grid-template-columns:1fr;align-items:stretch}.search-panel__location{justify-items:stretch}.search-panel__privacy{max-width:none}.button--secondary{width:100%}.empty-state{grid-template-columns:1fr}.app__footer--weather{justify-content:center}}@media (width<=37.5rem){.app--welcome .app-header__descriptor{display:none}}@media (width<=35rem){.app{padding:.9rem}.app--welcome .app-header{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.35rem;min-height:0}.app-header__logo{width:auto;height:3.25rem}.app-header__descriptor,.app-header__update{text-align:right;justify-content:flex-end;max-width:9rem;font-size:.62rem;line-height:1.45}.app--welcome .app-header__descriptor{max-width:none;color:var(--text-secondary);letter-spacing:.18em;opacity:.9;text-align:left;white-space:nowrap;justify-content:flex-start;font-size:.65rem;font-weight:600;line-height:1.2;display:inline-flex}.app--welcome .app-header__descriptor span{display:none}.app-header__update{white-space:normal}.app--welcome .hero{margin-top:clamp(1.5rem,3.5vh,2rem)}.app--welcome .search-panel{margin-top:calc(clamp(2rem,5vh,3.5rem) - .625rem)}.hero h1{letter-spacing:-.035em;overflow-wrap:normal;text-wrap:wrap;word-break:normal;max-width:100%;font-size:clamp(2rem,10.5vw,4rem);line-height:.94}.hero__description{margin-top:1.15rem;font-size:.94rem}.search-panel{border-radius:var(--radius-18)}.search-panel--compact{grid-template-columns:minmax(0,1fr) auto;gap:.6rem;padding:.7rem}.search-panel--compact .search-form__controls{grid-template-columns:minmax(0,1fr) auto}.search-panel--compact .button--primary,.search-panel--compact .button--secondary{width:3rem;padding-inline:.5rem}.search-panel--compact .button__label--full{display:none}.search-panel--compact .button__label--compact{display:inline}.search-panel--compact .button__label--location{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.status-notice--error{flex-direction:column;align-items:stretch}}@media (width<=30rem){.search-form__controls{grid-template-columns:1fr}.button--primary{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.glass-panel,.weather-metric,.button,input,.unit-toggle{forced-color-adjust:auto;border:1px solid canvastext}.weather-background{display:none}}:root{color:#f7fbff;font-synthesis:none;text-rendering:optimizelegibility;--text-primary:#f7fbff;--text-secondary:#b8c8dc;--text-tertiary:#8499b2;--brand-navy-950:#04111f;--brand-navy-900:#061323;--brand-navy-800:#08233d;--brand-cyan:#38c7ff;--brand-blue:#168fe8;--brand-sun:#ffc247;--surface-glass:#05182b7a;--surface-glass-medium:#05182b99;--surface-glass-strong:#041322c2;--border-subtle:#d7eeff29;--border-default:#d7eeff38;--border-hover:#d7eeff61;--focus-ring:#ffe66d;--status-error:#ffd4d8;--status-error-surface:#591825c7;--radius-12:.75rem;--radius-18:1.125rem;--radius-28:1.75rem;--radius-36:2.25rem;--radius-pill:999px;--glass-blur:1.375rem;--shadow-glass:0 1.5rem 4.375rem #00081242;--transition-fast:.18s ease;--weather-accent:var(--brand-cyan);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#04111f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}
