/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-sans:"Quicksand", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-blue-500:oklch(62.3% .214 259.815);--color-blue-700:oklch(48.8% .243 264.376);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--spacing:.25rem;--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-bold:700;--leading-normal:1.5;--radius-3xl:1.5rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:"Outfit", ui-sans-serif, system-ui, sans-serif;--color-reflectivity-purple:#5912e7;--color-reflectivity-teal:#15c5b3;--color-reflectivity-coral:#e55659}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.hidden{display:none}.min-h-0{min-height:0}.w-\[500px\]{width:500px}.w-full{width:100%}.max-w-\[100vw\]{max-width:100vw}.max-w-\[300px\]{max-width:300px}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-3{gap:calc(var(--spacing) * 3)}.gap-9{gap:calc(var(--spacing) * 9)}.gap-16{gap:calc(var(--spacing) * 16)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.self-stretch{align-self:stretch}.overflow-x-auto{overflow-x:auto}.rounded-3xl{border-radius:var(--radius-3xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.stroke-gray-600{stroke:var(--color-gray-600)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-4{padding-inline:calc(var(--spacing) * 4)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-blue-700{color:var(--color-blue-700)}.text-gray-700{color:var(--color-gray-700)}.text-reflectivity-coral{color:var(--color-reflectivity-coral)}.opacity-70{opacity:.7}@media (hover:hover){.group-hover\:stroke-current:is(:where(.group):hover *){stroke:currentColor}.hover\:underline:hover{text-decoration-line:underline}}@media (prefers-color-scheme:dark){.dark\:block{display:block}.dark\:hidden{display:none}.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:stroke-gray-300{stroke:var(--color-gray-300)}.dark\:text-blue-500{color:var(--color-blue-500)}.dark\:text-gray-200{color:var(--color-gray-200)}}}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:#1a0f2e;--text-primary:#fff;--text-secondary:#fff9;--text-muted:#fff6;--text-faint:#ffffff59;--overlay-gradient:linear-gradient(180deg, #1a0f2ed9 0%, #3a2166bf 50%, #1a0f2ee6 100%);--overlay-banner-opacity:1;--border-header:#00d4ff26;--border-subtle:#ffffff14;--border-accent:#00d4ff33;--surface-search:#3a216680;--surface-card:#3a216666;--surface-card-alt:#3a216659;--surface-metric:#1a0f2e80;--surface-pill:#1a0f2e80;--input-bg:#1a0f2e99;--input-border:#00d4ff40;--input-text:#fff;--accent-teal:#15c5b3;--accent-coral:#e55659;--accent-lime:#c0f000;--accent-yellow:#fffd77;--accent-purple:#5912e7;--accent-cyan:#00d4ff;--hero-degree:#fffd77;--chart-label:#ffffff80;--temp-bar-track:#ffffff0d;--compass-ring:#00d4ff4d;--compass-label:#ffffff59;--btn-secondary-color:#c0f000;--btn-secondary-border:#c0f00066;--btn-secondary-hover:#c0f0001a;--toggle-track:#3a2166cc;--toggle-thumb:#c0f000;--logo-glow:#c0f0004d;--gradient-brand:linear-gradient(135deg, #c0f000, #fffd77, #e55659);--gradient-hero:linear-gradient(180deg, #c0f000, #fffd77, #e55659);--gradient-bar:linear-gradient(180deg, #c0f000, #e55659);--gradient-legend:linear-gradient(90deg, #c0f000, #e55659);--gradient-btn:linear-gradient(135deg, #5912e7, #15c5b3);--compass-arrow:#c0f000;--compass-glow:#c0f00080;--pill-hover-border:#c0f0004d;--pill-hover-shadow:#c0f0001a}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:#f5f0ff;--text-primary:#1a0f2e;--text-secondary:#1a0f2ea6;--text-muted:#1a0f2e73;--text-faint:#1a0f2e59;--overlay-gradient:linear-gradient(180deg, #fffd7759 0%, #f5f0ffd9 40%, #ffffffeb 100%);--overlay-banner-opacity:.18;--border-header:#5912e726;--border-subtle:#5912e71a;--border-accent:#5912e733;--surface-search:#ffffffd9;--surface-card:#ffffffe6;--surface-card-alt:#ffffffd9;--surface-metric:#fffffff2;--surface-pill:#ffffffe6;--input-bg:#fffffff2;--input-border:#5912e740;--input-text:#1a0f2e;--accent-teal:#0a9e8f;--accent-coral:#d13d40;--accent-lime:#5a7a00;--accent-yellow:#8a7b00;--accent-purple:#5912e7;--accent-cyan:#007faa;--hero-degree:#5912e7;--chart-label:#1a0f2e73;--temp-bar-track:#5912e714;--compass-ring:#5912e740;--compass-label:#1a0f2e59;--btn-secondary-color:#5912e7;--btn-secondary-border:#5912e759;--btn-secondary-hover:#5912e714;--toggle-track:#5912e726;--toggle-thumb:#5912e7;--logo-glow:#5912e733;--gradient-brand:linear-gradient(135deg, #3a2166, #5912e7, #d13d40);--gradient-hero:linear-gradient(180deg, #3a2166, #5912e7, #d13d40);--gradient-bar:linear-gradient(180deg, #5912e7, #d13d40);--gradient-legend:linear-gradient(90deg, #5912e7, #d13d40);--gradient-btn:linear-gradient(135deg, #3a2166, #0a9e8f);--compass-arrow:#5912e7;--compass-glow:#5912e759;--pill-hover-border:#5912e759;--pill-hover-shadow:#5912e71a}html,body{background-color:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s,color .3s}.app-shell{flex-direction:column;min-height:100dvh;display:flex;position:relative}.bg-overlay{background:var(--overlay-gradient);z-index:-1;transition:background .3s;position:fixed;inset:0}.bg-overlay:after{content:"";opacity:var(--overlay-banner-opacity);background:url(/banner.png) 50%/cover no-repeat;transition:opacity .3s;position:absolute;inset:0}.site-header{border-bottom:1px solid var(--border-header);padding:1.5rem 2rem}.header-inner{justify-content:space-between;align-items:center;gap:1rem;max-width:72rem;margin:0 auto;display:flex}.brand{align-items:center;gap:1rem;display:flex}.brand-logo{object-fit:contain;width:56px;height:56px;filter:drop-shadow(0 0 12px var(--logo-glow))}.brand-title{font-family:var(--font-display);letter-spacing:.04em;background:var(--gradient-brand);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.75rem;font-weight:800}.brand-tagline{color:var(--accent-cyan);opacity:.8;font-size:.85rem;font-style:italic}.theme-toggle{border:1px solid var(--border-accent);background:var(--surface-search);color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:9999px;align-items:center;gap:.6rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:border-color .2s,box-shadow .2s,background .2s;display:flex}.theme-toggle:hover{box-shadow:0 0 16px #5912e726}.theme-toggle-track{background:var(--toggle-track);border-radius:9999px;flex-shrink:0;width:36px;height:20px;position:relative}.theme-toggle-thumb{background:var(--toggle-thumb);border-radius:50%;width:16px;height:16px;transition:transform .25s,background .25s;position:absolute;top:2px;left:2px}.theme-toggle-thumb[data-theme=light]{transform:translate(16px)}.theme-toggle-label{text-transform:capitalize}.theme-toggle-icon{font-size:1rem;line-height:1}.main-content{flex-direction:column;flex:1;gap:2rem;width:100%;max-width:72rem;margin:0 auto;padding:2rem;display:flex}.location-search{z-index:200;background:var(--surface-search);border:1px solid var(--border-accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:1.25rem;flex-direction:column;gap:1rem;padding:1.25rem 1.5rem;transition:background .3s,border-color .3s;display:flex;position:relative;overflow:visible}.search-mode-toggle{align-items:center;gap:.75rem;display:flex}.mode-btn{border:1px solid var(--border-accent);color:var(--text-secondary);font-family:var(--font-sans);cursor:pointer;background:0 0;border-radius:9999px;padding:.4rem 1rem;font-size:.85rem;font-weight:600;transition:background .2s,color .2s,border-color .2s}.mode-btn:hover{border-color:var(--accent-purple);color:var(--text-primary)}.mode-btn-active{background:var(--gradient-btn);color:#fff;border-color:#0000}.mode-divider{color:var(--text-muted);text-transform:lowercase;font-size:.8rem;font-style:italic}.search-form-row{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.search-form{flex-wrap:wrap;flex:1;align-items:flex-end;gap:1rem;display:flex}.search-field{flex-direction:column;gap:.35rem;display:flex}.search-field label{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-cyan);opacity:.7;font-size:.75rem}.search-field input,.search-field select{border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);font-family:var(--font-sans);border-radius:9999px;outline:none;min-width:8rem;padding:.6rem 1rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s,background .3s}.search-field-wide{flex:1;min-width:14rem}.search-field-wide select{cursor:pointer;width:100%}.search-field input:focus,.search-field select:focus{border-color:var(--accent-teal);box-shadow:0 0 0 3px #15c5b333}.city-search-panel{flex-direction:column;gap:1rem;display:flex;overflow:visible}.city-search-row{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.city-search-row .geocode-search{flex:1;min-width:14rem}.search-or-divider{color:var(--text-muted);align-items:center;gap:1rem;font-size:.8rem;font-style:italic;display:flex}.search-or-divider:before,.search-or-divider:after{content:"";background:var(--border-accent);flex:1;height:1px}.btn-geolocate{align-self:flex-start}.geocode-search{flex-direction:column;gap:.35rem;display:flex;position:relative;overflow:visible}.geocode-search label{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-cyan);opacity:.7;font-size:.75rem}.geocode-input-wrap{position:relative}.geocode-search input{border:1px solid var(--input-border);background:var(--input-bg);width:100%;color:var(--input-text);font-family:var(--font-sans);border-radius:9999px;outline:none;padding:.6rem 2.5rem .6rem 1rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.geocode-search input:focus{border-color:var(--accent-teal);box-shadow:0 0 0 3px #15c5b333}.geocode-spinner{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:.85rem;transform:translateY(-50%)}.geocode-spinner .loading-spinner-wrap{gap:0}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.geocode-results{z-index:300;background:var(--surface-search);border:1px solid var(--border-accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:1rem;max-height:240px;margin:0;padding:.35rem;list-style:none;position:absolute;top:calc(100% + .35rem);left:0;right:0;overflow-y:auto;box-shadow:0 8px 32px #0003}.geocode-result{width:100%;color:var(--text-primary);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.75rem;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem .85rem;font-size:.9rem;transition:background .15s;display:flex}.geocode-result:hover,.geocode-result-active{background:#5912e71f}.geocode-result-name{font-weight:600}.geocode-result-main{align-items:center;gap:.5rem;min-width:0;display:flex}.geocode-result-badge{color:var(--accent-teal);letter-spacing:.04em;text-transform:uppercase;background:#15c5b326;border-radius:9999px;flex-shrink:0;padding:.1rem .45rem;font-size:.65rem;font-weight:700}.geocode-result-coords{color:var(--text-muted);flex-shrink:0;font-size:.75rem}.geocode-empty{color:var(--text-muted);text-align:center;padding:.75rem 1rem;font-size:.85rem}.panel-skeleton{flex-direction:column;gap:.75rem;padding:.25rem 0;display:flex}.panel-skeleton-line{background:linear-gradient(90deg,#ffffff0f 0%,#ffffff24 50%,#ffffff0f 100%) 0 0/200% 100%;border-radius:9999px;height:.85rem;animation:1.4s ease-in-out infinite skeleton-shimmer}.loading-spinner-wrap{flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex}.loading-spinner{border:2px solid #15c5b333;border-top-color:var(--accent-teal);border-radius:50%;animation:.8s linear infinite spinner-rotate;display:inline-block}.loading-spinner-sm .loading-spinner{border-width:2px;width:1rem;height:1rem}.loading-spinner-md .loading-spinner{border-width:2.5px;width:1.75rem;height:1.75rem}.loading-spinner-lg .loading-spinner{border-width:3px;width:2.5rem;height:2.5rem}.loading-spinner-label{color:var(--text-muted);text-align:center;font-size:.85rem}.loading-panel{justify-content:center;align-items:center;min-height:5.5rem;padding:1.5rem;display:flex}.alerts-panel-loading,.spc-card-loading,.environment-panel-loading,.hourly-section-loading,.storm-reports-panel-loading,.location-banner-loading{justify-content:center;align-items:center;min-height:5.5rem;display:flex}.location-banner-loading{justify-content:flex-start}.location-banner-loading>div{flex-direction:column;gap:.5rem;width:100%;display:flex}.storm-map-loading{z-index:600;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#0c081873;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}[data-theme=light] .storm-map-loading{background:#ffffff8c}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.alerts-panel-skeleton,.spc-card-skeleton,.environment-panel-skeleton,.hourly-section-skeleton,.storm-reports-panel-skeleton{min-height:6rem}.location-coords-loading{color:var(--text-muted);font-style:italic}.btn-primary,.btn-secondary{font-family:var(--font-sans);cursor:pointer;white-space:nowrap;border:none;border-radius:9999px;padding:.65rem 1.5rem;font-size:.9rem;font-weight:600;transition:transform .15s,box-shadow .2s,opacity .2s}.btn-primary{background:var(--gradient-btn);color:#fff;box-shadow:0 0 20px #5912e74d}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 30px #5912e780}.btn-secondary{color:var(--btn-secondary-color);border:1px solid var(--btn-secondary-border);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--btn-secondary-hover);box-shadow:0 0 15px #5912e71a}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.current-weather{background:var(--surface-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #5912e74d;border-radius:1.5rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;padding:2rem;transition:background .3s;display:flex}.location-name{font-family:var(--font-display);color:var(--text-primary);font-size:2rem;font-weight:700}.location-coords{color:var(--text-secondary);margin-top:.25rem;font-size:.9rem}.updated-at{color:var(--accent-cyan);opacity:.6;margin-top:.5rem;font-size:.8rem}.current-temp-hero{align-items:flex-start;gap:.25rem;display:flex}.hero-temp{font-family:var(--font-display);background:var(--gradient-hero);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:6rem;font-weight:800;line-height:1}.hero-degree{font-family:var(--font-display);color:var(--hero-degree);margin-top:.75rem;font-size:2rem;font-weight:600}.hero-feels{color:var(--text-secondary);align-self:flex-end;margin-bottom:.5rem;margin-left:1rem;font-size:.95rem}.hero-feels strong{color:var(--accent-teal)}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.weather-metric{background:var(--surface-metric);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:1.25rem;align-items:center;gap:1rem;padding:1.25rem;transition:transform .2s,box-shadow .2s,background .3s;display:flex}.weather-metric:hover{transform:translateY(-2px)}.metric-teal{border-color:#15c5b34d}.metric-teal:hover{box-shadow:0 4px 20px #15c5b326}.metric-coral{border-color:#e556594d}.metric-coral:hover{box-shadow:0 4px 20px #e5565926}.metric-lime{border-color:#c0f0004d}.metric-lime:hover{box-shadow:0 4px 20px #c0f00026}.metric-yellow{border-color:#fffd774d}.metric-yellow:hover{box-shadow:0 4px 20px #fffd7726}.metric-purple{border-color:#5912e74d}.metric-purple:hover{box-shadow:0 4px 20px #5912e726}.metric-icon{flex-shrink:0;font-size:1.75rem}.metric-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.75rem}.metric-value-row{align-items:baseline;gap:.3rem;display:flex}.metric-value{font-family:var(--font-display);font-size:1.5rem;font-weight:700}.metric-unit{color:var(--text-muted);font-size:.85rem}.metric-subtext{color:var(--accent-cyan);opacity:.7;font-size:.8rem}.metric-teal .metric-value{color:var(--accent-teal)}.metric-coral .metric-value{color:var(--accent-coral)}.metric-lime .metric-value{color:var(--accent-lime)}.metric-yellow .metric-value{color:var(--accent-yellow)}.metric-purple .metric-value{color:var(--accent-purple)}.wind-section{justify-content:center;display:flex}.wind-compass{background:var(--surface-card);border:1px solid var(--border-accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:1.5rem;align-items:center;gap:2rem;padding:1.5rem 2.5rem;transition:background .3s;display:flex}.compass-ring{border:2px solid var(--compass-ring);border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;display:flex;position:relative}.compass-arrow{color:var(--compass-arrow);filter:drop-shadow(0 0 6px var(--compass-glow));transition:transform .5s,color .3s}.compass-n,.compass-e,.compass-s,.compass-w{color:var(--compass-label);font-size:.65rem;font-weight:700;position:absolute}.compass-n{top:4px;left:50%;transform:translate(-50%)}.compass-e{top:50%;right:6px;transform:translateY(-50%)}.compass-s{bottom:4px;left:50%;transform:translate(-50%)}.compass-w{top:50%;left:6px;transform:translateY(-50%)}.wind-details{flex-direction:column;gap:.25rem;display:flex}.wind-label{color:var(--accent-cyan);text-transform:uppercase;letter-spacing:.06em;font-size:.85rem}.wind-speed{font-family:var(--font-display);color:var(--accent-lime);font-size:2rem;font-weight:700}.wind-gusts{color:var(--accent-coral);font-size:.85rem}.section-title{font-family:var(--font-display);color:var(--text-primary);border-left:3px solid var(--accent-teal);margin-bottom:1rem;padding-left:.5rem;font-size:1.25rem;font-weight:700}.temperature-chart{background:var(--surface-card-alt);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #5912e733;border-radius:1.5rem;padding:1.5rem;transition:background .3s}.chart-legend{color:var(--text-secondary);gap:1.5rem;margin-bottom:.75rem;font-size:.8rem;display:flex}.legend-item:before{content:"";vertical-align:middle;border-radius:2px;width:16px;height:3px;margin-right:.5rem;display:inline-block}.legend-temp:before{background:var(--gradient-legend)}.legend-feels:before{background:var(--color-reflectivity-teal);border-style:dashed}.chart-container{overflow-x:auto}.chart-svg{width:100%;min-width:600px;height:auto}.chart-axis-label{fill:var(--chart-label)}.chart-range{color:var(--text-muted);justify-content:space-between;margin-top:.25rem;padding:0 1.25rem;font-size:.75rem;display:flex}.hourly-forecast{background:var(--surface-card-alt);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #15c5b333;border-radius:1.5rem;padding:1.5rem;transition:background .3s}.hourly-scroll{scrollbar-width:thin;scrollbar-color:var(--color-reflectivity-purple) transparent;gap:.75rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.hourly-pill{background:var(--surface-pill);border:1px solid var(--border-subtle);border-radius:1rem;flex-direction:column;flex-shrink:0;align-items:center;gap:.35rem;min-width:72px;padding:.75rem .85rem;transition:border-color .2s,box-shadow .2s,background .3s;display:flex}.hourly-pill:hover{border-color:var(--pill-hover-border);box-shadow:0 0 12px var(--pill-hover-shadow)}.hourly-day{color:var(--accent-cyan);opacity:.6;text-transform:uppercase;font-size:.65rem}.hourly-time{color:var(--text-primary);font-size:.8rem;font-weight:600}.hourly-temp-bar{background:var(--temp-bar-track);border-radius:9999px;align-items:flex-end;width:8px;height:80px;display:flex;overflow:hidden}.temp-bar-fill{background:var(--gradient-bar);border-radius:9999px;width:100%;transition:height .3s,background .3s}.hourly-temp{font-family:var(--font-display);color:var(--accent-yellow);font-size:1rem;font-weight:700}.hourly-rain{color:var(--accent-teal);font-size:.65rem}.hourly-cloud{color:var(--text-muted);font-size:.65rem}.hourly-wind{color:var(--accent-coral);font-size:.65rem}.hourly-wind:after{content:" mph"}.site-footer{text-align:center;color:var(--text-faint);border-top:1px solid var(--border-header);padding:1.5rem 2rem;font-size:.8rem}.site-footer a{color:var(--accent-teal);text-decoration:none}.site-footer a:hover{text-decoration:underline}.weather-dashboard,.forecast-row{flex-direction:column;gap:2rem;display:flex}.storm-dashboard{gap:1.5rem;max-width:88rem}.location-banner{background:var(--surface-card);border:1px solid var(--border-accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:1.25rem;padding:1.25rem 1.5rem}.storm-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}.hourly-section{width:100%}.alerts-panel{background:var(--surface-search);border:1px solid var(--border-accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1;border-radius:1.25rem;padding:1.25rem 1.5rem;position:relative}.alerts-panel-clear{border-color:#c0f00040;align-items:center;gap:1rem;display:flex}.alerts-clear-icon{font-size:2rem}.alerts-clear-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700}.alerts-clear-text{color:var(--text-secondary);margin-top:.25rem;font-size:.9rem}.alerts-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.alert-card{background:var(--surface-metric);border:2px solid;border-radius:1rem;padding:1rem 1.15rem}.alert-card-header{align-items:flex-start;gap:.75rem;display:flex}.alert-icon{flex-shrink:0;font-size:1.5rem}.alert-event{font-family:var(--font-display);font-size:1rem;font-weight:700}.alert-plain{color:var(--text-secondary);margin-top:.15rem;font-size:.85rem}.alert-headline{color:var(--text-primary);margin-top:.65rem;font-size:.9rem}.alert-expires{color:var(--accent-coral);margin-top:.35rem;font-size:.8rem}.storm-map-panel{background:var(--surface-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #5912e759;border-radius:1.5rem;padding:1.25rem}.storm-map-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.storm-map-subtitle{color:var(--text-secondary);margin-top:.25rem;font-size:.85rem}.radar-controls{align-items:center;gap:.75rem;display:flex}.radar-btn{padding:.45rem 1rem;font-size:.8rem}.radar-timestamp{color:var(--accent-cyan);font-size:.8rem;font-weight:600}.storm-map-wrap{border:1px solid var(--border-subtle);border-radius:1rem;position:relative;overflow:hidden}.storm-map{z-index:1;width:100%;height:420px}.radar-legend{z-index:500;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1a0f2ebf;border-radius:9999px;align-items:center;gap:.5rem;padding:.35rem .65rem;font-size:.7rem;display:flex;position:absolute;bottom:.75rem;left:.75rem}[data-theme=light] .radar-legend{color:#1a0f2e;background:#ffffffe6}.radar-legend-bar{background:linear-gradient(90deg,#0ff,#0f0,#ff0,#f80,red,#f0f);border-radius:9999px;width:80px;height:8px}.radar-slider{width:100%;accent-color:var(--accent-teal);margin-top:.85rem}.spc-card{background:var(--surface-card-alt);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:2px solid;border-radius:1.25rem;padding:1.25rem 1.5rem}.spc-card-muted{border-color:var(--border-subtle)}.spc-card-top{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.spc-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-cyan);opacity:.75;font-size:.75rem}.spc-risk-label{font-family:var(--font-display);margin-top:.15rem;font-size:1.5rem;font-weight:800}.spc-badge{color:#1a0f2e;border-radius:9999px;padding:.35rem .65rem;font-size:.75rem;font-weight:800}.spc-blurb{color:var(--text-secondary);margin-top:.75rem;font-size:.95rem;line-height:1.5}.spc-valid{color:var(--text-muted);margin-top:.5rem;font-size:.8rem}.environment-panel{background:var(--surface-card-alt);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #15c5b340;border-radius:1.25rem;padding:1.25rem 1.5rem}.environment-hero{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:1.25rem;display:flex}.environment-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-cyan);opacity:.75;margin-bottom:.35rem;font-size:.75rem}.environment-temp,.environment-metrics{margin-top:0}.panel-subtitle,.panel-empty{color:var(--text-secondary);font-size:.9rem}.panel-empty{padding:.5rem 0;line-height:1.5}.storm-reports-panel{background:var(--surface-search);border:1px solid var(--border-accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:1.25rem;padding:1.25rem 1.5rem}.reports-list{flex-direction:column;gap:.75rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.report-card{background:var(--surface-metric);border:1px solid var(--border-subtle);border-radius:1rem;gap:.85rem;padding:.85rem 1rem;display:flex}.report-icon{flex-shrink:0;font-size:1.5rem}.report-title{font-family:var(--font-display);font-size:.95rem;font-weight:700}.report-location{color:var(--accent-teal);margin-top:.15rem;font-size:.8rem}.report-remark{color:var(--text-secondary);margin-top:.35rem;font-size:.85rem;line-height:1.4}.report-meta{color:var(--text-muted);margin-top:.35rem;font-size:.75rem}.leaflet-container{font-family:var(--font-sans);background:var(--bg-base)}.leaflet-control-zoom a{background:var(--surface-search)!important;color:var(--text-primary)!important;border-color:var(--border-accent)!important}.leaflet-popup-content-wrapper{background:var(--surface-card);color:var(--text-primary);border-radius:.75rem}.leaflet-popup-tip{background:var(--surface-card)}@media (width>=1024px){.storm-grid{grid-template-columns:1fr 1.4fr}.storm-map{height:520px}}@media (width<=640px){.storm-map{height:320px}.storm-map-header{flex-direction:column}.environment-hero{flex-direction:column;align-items:stretch}.environment-hero .wind-compass{justify-content:center;width:100%}}@media (width>=641px) and (width<=1023px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.wind-compass{width:100%;max-width:28rem;margin:0 auto}}@media (width>=1024px){.site-header{padding:1.75rem 2.5rem}.main-content{gap:2.5rem;padding:2.5rem}.weather-dashboard{grid-template-columns:1fr 1fr;grid-template-areas:"current current""metrics wind""forecast forecast";align-items:start;gap:2rem;display:grid}.current-weather{grid-area:current;padding:2.5rem}.metrics-grid{grid-area:metrics;grid-template-columns:repeat(2,1fr);align-self:stretch}.wind-section{grid-area:wind;justify-content:flex-end;align-self:center}.wind-compass{width:100%;max-width:22rem}.forecast-row{grid-area:forecast;grid-template-columns:1.4fr 1fr;align-items:start;gap:2rem;display:grid}.temperature-chart,.hourly-forecast{min-height:100%}.location-search{padding:1.5rem 2rem}.search-form-row,.search-form{flex-wrap:nowrap}}@media (width>=1280px){.metrics-grid{grid-template-columns:repeat(4,1fr)}.weather-dashboard{grid-template-areas:"current current""metrics wind""forecast forecast"}.wind-section{justify-content:center}.wind-compass{max-width:26rem}}@media (width<=640px){.site-header{padding:1rem 1.25rem;padding-top:max(1rem, env(safe-area-inset-top));padding-left:max(1.25rem, env(safe-area-inset-left));padding-right:max(1.25rem, env(safe-area-inset-right))}.header-inner{gap:.75rem}.brand{gap:.75rem;min-width:0}.brand-logo{flex-shrink:0;width:40px;height:40px}.brand-title{font-size:1.35rem}.brand-tagline{font-size:.75rem;display:none}.theme-toggle{flex-shrink:0;gap:.45rem;padding:.45rem .65rem}.theme-toggle-label{display:none}.main-content{gap:1.25rem;padding:1rem}.weather-dashboard{gap:1.25rem}.location-search{border-radius:1rem;gap:.85rem;padding:1rem}.search-mode-toggle{flex-wrap:wrap;justify-content:center;gap:.5rem}.mode-btn{text-align:center;flex:1;min-width:0;padding:.55rem .75rem}.mode-divider{text-align:center;width:100%}.search-form-row{flex-direction:column;align-items:stretch}.search-form{flex-direction:column;width:100%}.search-field{width:100%}.search-field input,.search-field select{width:100%;min-width:0;padding:.75rem 1rem;font-size:1rem}.btn-primary,.btn-secondary{text-align:center;width:100%;padding:.8rem 1.25rem;font-size:1rem}.btn-geolocate{align-self:stretch}.geocode-result{flex-direction:column;align-items:flex-start;gap:.25rem}.current-weather{text-align:center;border-radius:1.25rem;flex-direction:column;gap:1.25rem;padding:1.25rem}.location-name{word-break:break-word;font-size:1.5rem}.location-coords{font-size:.8rem}.updated-at{font-size:.75rem}.current-temp-hero{flex-wrap:wrap;justify-content:center;gap:.15rem}.hero-temp{font-size:4.5rem}.hero-degree{margin-top:.5rem;font-size:1.5rem}.hero-feels{text-align:center;width:100%;margin-top:.25rem;margin-bottom:0;margin-left:0;font-size:.9rem}.metrics-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.weather-metric{text-align:center;flex-direction:column;gap:.5rem;padding:1rem .75rem}.metric-icon{font-size:1.5rem}.metric-value{font-size:1.25rem}.metric-value-row{justify-content:center}.wind-compass{text-align:center;flex-direction:column;gap:1.25rem;width:100%;padding:1.25rem 1.5rem}.compass-ring{width:88px;height:88px}.wind-speed{font-size:1.75rem}.section-title{margin-bottom:.75rem;font-size:1.1rem}.temperature-chart,.hourly-forecast{border-radius:1.25rem;padding:1rem}.chart-legend{flex-wrap:wrap;gap:.75rem 1.25rem}.chart-container{-webkit-overflow-scrolling:touch;margin:0 -.25rem;padding:0 .25rem}.chart-svg{min-width:520px}.hourly-scroll{-webkit-overflow-scrolling:touch;gap:.5rem;padding-bottom:.75rem}.hourly-pill{min-width:64px;padding:.65rem .7rem}.hourly-temp-bar{height:64px}.site-footer{padding:1.25rem 1rem;padding-bottom:max(1.25rem, env(safe-area-inset-bottom));padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right));font-size:.75rem;line-height:1.5}.site-footer p{max-width:20rem;margin:0 auto}}@media (width<=380px){.brand-title{font-size:1.15rem}.hero-temp{font-size:3.75rem}.metrics-grid{grid-template-columns:1fr}.hourly-pill{min-width:58px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}
