:root{--text:#5c5349;--text-h:#1a1209;--muted:#7a7168;--bg:#faf6ef;--surface:#fffdf8e0;--surface-raised:#ffffffb8;--soft:#ffe2b86b;--border:#5030181a;--border-strong:#50301829;--accent:#c07a14;--sun:#fb0;--focus:#5b51ff61;--blob:#ffd57347;--shadow:0 20px 60px #6646211a;--shadow-lg:0 32px 80px #66462124;--radius-sm:16px;--radius-md:24px;--radius-lg:32px;--radius-xl:40px;--sans:"Outfit", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font:17px/1.55 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#d4c9bc;--text-h:#fff8ee;--muted:#b5a898;--bg:#12100e;--surface:#201a15c7;--surface-raised:#3028218c;--soft:#ffe0b214;--border:#ffeed517;--border-strong:#ffeed524;--accent:#e8c06a;--sun:#ffbf5f;--focus:#ffd36f6b;--shadow:0 24px 70px #00000061;--shadow-lg:0 40px 100px #0000007a}}#root{min-height:100svh}body{background:radial-gradient(ellipse 80% 50% at 0% -10%, #ffd86b38, transparent), radial-gradient(ellipse 60% 40% at 100% 100%, #ff9f6e1a, transparent), var(--bg);min-width:320px;min-height:100svh;margin:0}*{box-sizing:border-box}h1,h2{color:var(--text-h);letter-spacing:-.03em;font-weight:800}p{margin:0}a{color:var(--text-h);text-underline-offset:.18em;transition:opacity .16s}a:hover{opacity:.8}button{-webkit-tap-highlight-color:transparent}.app-shell{box-sizing:border-box;flex-direction:column;gap:clamp(14px,3vw,20px);width:min(100%,960px);min-height:100svh;margin:0 auto;padding:clamp(16px,4vw,40px);display:flex}.intro-shell{place-items:center;display:grid}.intro-card,.hero-card,.mini-card,.timeline-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.intro-card{text-align:center;width:min(100%,560px);padding:clamp(32px,8vw,56px);position:relative;overflow:hidden}.intro-card:before{content:"";background:radial-gradient(circle, var(--sun) 0 36%, transparent 37%);opacity:.55;pointer-events:none;border-radius:999px;width:220px;height:220px;position:absolute;inset:-90px -50px auto auto}.intro-card h1{margin:0 0 16px;font-size:clamp(2rem,6vw,2.75rem);line-height:1.08}.intro-copy{max-width:30rem;color:var(--muted);margin:0 auto;font-size:1.02rem}.status-message{color:var(--muted);margin:24px 0 0;font-size:.95rem}.loading-shell{place-items:center;display:grid}.loading-card{text-align:center;flex-direction:column;align-items:center;gap:28px;padding:clamp(48px,10vw,72px);display:flex}.loading-sun{place-items:center;width:88px;height:88px;display:grid;position:relative}.loading-sun-core{background:radial-gradient(circle at 35% 30%, #ffe08a 0%, var(--sun) 55%, #e89a00 100%);border-radius:999px;width:44px;height:44px;animation:2s ease-in-out infinite loading-sun-pulse;box-shadow:0 0 32px #ffbb0073}.loading-sun-ring{border:2px solid #ffbb0059;border-radius:999px;animation:2.4s ease-out infinite loading-sun-ring;position:absolute;inset:0}.loading-sun-ring-2{animation-delay:.8s}.loading-message{color:var(--muted);margin:0;font-size:1.02rem;animation:.32s ease-out loading-enter,2.4s ease-in-out .32s infinite loading-pulse}@keyframes loading-sun-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.88;transform:scale(1.08)}}@keyframes loading-sun-ring{0%{opacity:.7;transform:scale(.55)}to{opacity:0;transform:scale(1.35)}}.loading-status{animation:.32s ease-out loading-enter,2.4s ease-in-out .32s infinite loading-pulse}.loading-dots-text{text-align:left;min-width:1.35em;display:inline-block}.loading-dots-text:after{content:"";animation:1.2s steps(4,end) infinite loading-dots}@keyframes loading-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes loading-pulse{0%,to{opacity:.72}50%{opacity:1}}@keyframes loading-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.error-message{color:#d45a4a}.primary-button,.ghost-button{font:inherit;cursor:pointer;border:0;border-radius:999px;font-weight:700;transition:transform .18s,box-shadow .18s,opacity .18s,background .18s}.primary-button{color:#281400;background:linear-gradient(135deg,#ffd76a,#ff9f6e);padding:14px 26px;box-shadow:0 12px 28px #e07d3633}.ghost-button{color:var(--text-h);background:var(--surface-raised);border:1px solid var(--border);padding:9px 16px;font-size:.88rem;font-weight:600}.primary-button:hover,.ghost-button:hover{transform:translateY(-1px)}.primary-button:focus-visible,.ghost-button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.primary-button:disabled{cursor:wait;opacity:.72;transform:none}.intro-actions{flex-direction:column;align-items:center;gap:16px;margin-top:24px;display:flex}.intro-divider{width:100%;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:10px;font-size:.78rem;font-weight:600;display:flex}.intro-divider:before,.intro-divider:after{content:"";background:var(--border);flex:1;height:1px}.country-select{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);width:100%;color:var(--text-h);font:inherit;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding:12px 40px 12px 16px;font-size:.95rem;transition:border-color .18s,box-shadow .18s}.country-select:hover:not(:disabled){border-color:var(--border-strong)}.country-select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.country-select:disabled{opacity:.6;cursor:wait}.country-select option{background:var(--surface);color:var(--text-h)}.debug-bar{border:1px dashed color-mix(in srgb, var(--accent) 50%, transparent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--accent) 6%, transparent);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;font-size:.82rem;display:flex}.debug-label{color:var(--muted);white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;font-weight:700}.debug-slider{min-width:120px;accent-color:var(--accent);cursor:pointer;flex:1}.debug-value{color:var(--text-h);text-align:right;min-width:2.5ch;font-weight:700}.debug-reset{border:1px solid var(--border);background:var(--surface-raised);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:600}.debug-reset:hover{color:var(--text-h)}.time-offset-bar{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;font-size:.82rem;display:flex}.time-offset-field-label{color:var(--muted);white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;font-weight:700}.time-offset-slider{min-width:120px;accent-color:var(--accent);cursor:pointer;flex:1}.time-offset-value{min-width:4rem;color:var(--text-h);text-align:right;flex-direction:column;align-items:flex-end;font-weight:700;line-height:1.3;display:flex}.time-offset-reset{border:1px solid var(--border);background:var(--surface);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:600}.time-offset-reset:hover{color:var(--text-h)}.time-offset-delta{color:var(--text-h);font-size:.82rem;font-weight:700}.time-offset-clock{color:var(--muted);font-size:.72rem}.hero-card{background:radial-gradient(ellipse 70% 60% at 0% 0%, var(--level-bg), transparent), radial-gradient(ellipse 50% 50% at 100% 100%, var(--level-bg-soft), transparent), var(--surface);flex-direction:column;gap:clamp(24px,4vw,32px);padding:clamp(24px,5vw,40px);display:flex;position:relative;overflow:hidden}.hero-card:after{content:"";border-radius:inherit;border:1px solid var(--level-color);opacity:.12;pointer-events:none;position:absolute;inset:0}.hero-card>*{z-index:1;position:relative}.hero-top{grid-template-columns:1fr;align-items:start;gap:clamp(20px,4vw,28px);display:grid}.eyebrow{color:#ffffffbf;letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.45em;margin:0 0 12px;font-size:.8rem;font-weight:700;display:inline-flex}.eyebrow-emoji{letter-spacing:0;text-transform:none;font-size:2em;line-height:1}.hero-card.night{--level-bg:#5b6b8a2e;--level-bg-soft:#5b6b8a1a;--level-color:#8fa3c4;--level-glow:#788cb440}.sun-status{border-radius:var(--radius-md);border:1px solid color-mix(in srgb, var(--level-color) 35%, var(--border));background:color-mix(in srgb, var(--level-color) 10%, var(--surface-raised));color:var(--text-h);align-items:center;gap:10px;margin:0 0 14px;padding:10px 14px;font-size:.92rem;line-height:1.35;display:inline-flex}.sun-status span{flex-direction:column;gap:2px;display:flex}.sun-status strong{letter-spacing:-.01em;font-weight:700}.sun-status small{color:var(--muted);font-size:.82rem;font-weight:500}.sun-status-icon{font-size:1.35rem;line-height:1}.hero-metric .eyebrow{color:color-mix(in srgb, var(--level-color) 55%, var(--muted))}.hero-metric .location-eyebrow{color:var(--muted)}.location-eyebrow{align-items:center;gap:.45em;display:inline-flex}.location-pin{flex-shrink:0;width:1.5em;height:1.5em}.uv-display{align-items:baseline;gap:clamp(8px,2vw,14px);display:flex}.uv-label{color:color-mix(in srgb, var(--level-color) 70%, var(--text-h));letter-spacing:-.04em;font-size:clamp(1.4rem,4vw,2rem);font-weight:800;line-height:1}.uv-value{color:var(--level-color);letter-spacing:-.06em;text-shadow:0 0 60px var(--level-glow);font-size:clamp(4rem,18vw,7.5rem);font-weight:900;line-height:.88}.risk-label{color:var(--text-h);background:var(--level-bg);border:1px solid color-mix(in srgb, var(--level-color) 30%, transparent);letter-spacing:.02em;border-radius:999px;margin-top:16px;padding:6px 14px;font-size:.88rem;font-weight:700;display:inline-flex}.advice-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--muted);padding:clamp(18px,3vw,24px)}.mood{color:var(--text-h);letter-spacing:-.02em;align-items:center;gap:.45em;margin:0 0 8px;font-size:clamp(1.1rem,2vw,1.3rem);font-weight:700;display:flex}.advice-card.warning{border-color:color-mix(in srgb, #e05252 45%, var(--border));background:color-mix(in srgb, #e05252 8%, var(--surface-raised))}.advice-card.warning .mood{color:#c0392b}.warning-icon{flex-shrink:0;width:1.25em;height:1.25em}.advice-copy{font-size:.95rem;line-height:1.55}.uv-scale{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--soft);grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:100%;margin:0;padding:8px;list-style:none;display:grid}.uv-scale-band{border-radius:var(--radius-sm);color:var(--muted);border:1px solid #0000;flex-direction:column;align-items:stretch;gap:8px;padding:10px 8px 8px;transition:background .2s,border-color .2s;display:flex}.uv-scale-band.current{border-color:color-mix(in srgb, var(--level-color) 40%, transparent);background:var(--level-bg-soft);color:var(--text-h)}.uv-scale-band strong,.uv-scale-band small,.uv-scale-band em{text-align:center;display:block}.uv-scale-band strong{color:var(--text-h);font-size:.82rem;font-weight:700;line-height:1.2}.uv-scale-band small{opacity:.85;font-size:.72rem;font-weight:500}.uv-scale-band em{background:color-mix(in srgb, var(--level-color) 85%, #000);color:#fff;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;margin-top:auto;padding:3px 8px;font-size:.62rem;font-style:normal;font-weight:700}.scale-color{border-radius:999px;width:100%;height:6px}.detail-grid{grid-template-columns:1fr;gap:clamp(14px,3vw,20px);display:grid}.mini-card,.timeline-card{padding:clamp(20px,4vw,28px)}.mini-card h2,.timeline-card h2{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,8vw,3rem);line-height:1}.section-heading{justify-content:space-between;align-items:start;gap:16px;margin-bottom:24px;display:flex}.section-heading h2{margin-top:4px}.timeline-note{color:var(--muted);margin:8px 0 0;font-size:.9rem}.timeline{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;grid-auto-columns:minmax(56px,1fr);grid-auto-flow:column;gap:8px;padding:4px 2px 8px;display:grid;overflow-x:auto}.hour{border-radius:var(--radius-sm);min-height:180px;color:var(--muted);grid-template-rows:1fr auto auto auto;justify-items:center;gap:6px;padding:8px 4px;transition:background .16s;display:grid}.hour.current-hour{background:var(--soft)}.hour.current-hour .hour-time{color:var(--text-h);font-weight:700}.bar-track{background:var(--soft);border-radius:999px;align-items:end;width:14px;height:100px;padding:3px;display:flex}.bar{border-radius:999px;width:100%;min-height:6px;transition:height .4s cubic-bezier(.34,1.2,.64,1)}.hour strong{color:var(--text-h);font-size:.92rem;font-weight:700}.hour-time{font-size:.78rem;font-weight:500}.hour small{opacity:.8;font-size:.68rem;font-weight:500}.bar.low,.hero-card.low{--level-color:#6ecf8a;--level-bg:#6ecf8a29;--level-bg-soft:#6ecf8a0f;--level-glow:#6ecf8a40}.bar.moderate,.hero-card.moderate{--level-color:#f0c04a;--level-bg:#f0c04a29;--level-bg-soft:#f0c04a0f;--level-glow:#f0c04a33}.bar.high,.hero-card.high{--level-color:#f09050;--level-bg:#f0905029;--level-bg-soft:#f090500f;--level-glow:#f0905033}.bar.very-high,.hero-card.very-high{--level-color:#f06078;--level-bg:#f0607829;--level-bg-soft:#f060780f;--level-glow:#f0607833}.bar.extreme,.hero-card.extreme{--level-color:#b87ee0;--level-bg:#b87ee029;--level-bg-soft:#b87ee00f;--level-glow:#b87ee033}.bar.low,.scale-color,.uv-scale-band.low .scale-color{background:#6ecf8a}.bar.moderate,.uv-scale-band.moderate .scale-color{background:#f0c04a}.bar.high,.uv-scale-band.high .scale-color{background:#f09050}.bar.very-high,.uv-scale-band.very-high .scale-color{background:#f06078}.bar.extreme,.uv-scale-band.extreme .scale-color{background:#b87ee0}footer{color:var(--muted);text-align:center;padding:8px 4px 4px;font-size:.84rem;line-height:1.6}.exposure-card{flex-direction:column;gap:20px;display:flex}.exposure-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.exposure-header .eyebrow{margin:0}.skin-type-tabs{background:var(--soft);border:1px solid var(--border);border-radius:999px;gap:4px;padding:3px;display:flex}.skin-tab{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.skin-tab.active{background:var(--surface);color:var(--text-h);box-shadow:0 1px 4px #0000001f}.skin-tab:hover:not(.active){color:var(--text-h)}.skin-tab:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.exposure-metrics{grid-template-columns:1fr 1fr;gap:16px;display:grid}.exposure-metric{flex-direction:column;gap:4px;display:flex}.exposure-label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.exposure-value{color:var(--text-h);letter-spacing:-.04em;margin:0;font-size:clamp(1.6rem,5vw,2.2rem);font-weight:900;line-height:1}.exposure-note{color:var(--muted);margin:4px 0 0;font-size:.82rem;line-height:1.45}@media (width<=559px){.uv-scale{grid-template-columns:1fr;gap:4px;padding:6px}.uv-scale-band{flex-direction:row;align-items:center;gap:10px;padding:8px 10px}.scale-color{flex-shrink:0;width:6px;height:28px}.uv-scale-band strong,.uv-scale-band small{text-align:left}.uv-scale-band em{flex-shrink:0;margin-top:0;margin-left:auto}}@media (width>=640px){.hero-top{grid-template-columns:1fr 1fr;align-items:center}}
