:root{--sky-top:#b8c8e8;--sky-mid:#d4a8b0;--horizon-warm:#f0a060;--sun-core:#f06030;--panel:#f2f2f0;--panel-elevated:#fff;--text-primary:#1a1a1a;--text-secondary:#888880;--text-tertiary:#b5b5ad;--accent-scarlet:#e8503a;--accent-orange:#f09040;--accent-lavender:#9090c0;--s-1:4px;--s-2:8px;--s-3:16px;--s-4:24px;--s-5:32px;--s-6:48px;--t-label:11px;--t-sublabel:8.5px;--t-value-lg:64px;--t-value-md:28px;--t-value-sm:14px;--t-date:11px;--tracking-label:.14em;--tracking-sublabel:.12em;--radius-pill:999px;--radius-card:14px;--easing:cubic-bezier(.22, .61, .36, 1);font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;color:var(--text-primary);background:var(--panel);font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100dvh;margin:0;padding:0}body{overscroll-behavior-y:none;background:#0a0a0a;overflow:hidden}button{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}input{color:inherit;font-family:inherit}a{color:inherit;text-decoration:none}.app{overscroll-behavior-y:none;background:#0a0a0a;justify-content:center;align-items:stretch;height:100dvh;min-height:100dvh;display:flex}.card{background:var(--panel);isolation:isolate;transform-origin:bottom;width:100%;max-width:520px;height:100dvh;max-height:100dvh;animation:card-intro .68s var(--easing) both;flex-direction:column;display:flex;position:relative;overflow:hidden}.pull-refresh{--pull-distance:0px;--pull-progress:0;top:calc(var(--s-4) + env(safe-area-inset-top));z-index:6;width:70px;height:70px;color:var(--text-primary);-webkit-backdrop-filter:blur(16px)saturate(145%);opacity:var(--pull-progress);pointer-events:none;transform:translateX(-50%) translateY(calc((var(--pull-distance) * .82) - 58px)) scale(calc(.9 + (var(--pull-progress) * .1)));transition:opacity .18s var(--easing), transform .18s var(--easing);background:#ffffffdb;border-radius:50%;justify-content:center;align-items:center;padding:10px;display:inline-flex;position:absolute;left:50%;box-shadow:0 14px 34px -18px #74340873,inset 0 0 0 1px #ffffff6b}.pull-refresh[data-state=refreshing]{opacity:1;transform:translate(-50%)translateY(42px)scale(1)}.pull-refresh[data-state=settling],.pull-refresh[data-state=idle]{opacity:0}.pull-refresh__orb{filter:drop-shadow(0 6px 12px #f5b90047);width:50px;height:50px;transform:scale(calc(.74 + (var(--pull-progress) * .26)));opacity:calc(.45 + (var(--pull-progress) * .55));border-radius:50%;position:relative}.pull-refresh__sun{transform-origin:50%;place-items:center;display:grid;position:absolute;inset:0}.pull-refresh__ray{--ray-index:0;width:4px;height:13px;transform:translate(-50%, -50%) rotate(calc(var(--ray-index) * 30deg)) translateY(-20px);transform-origin:50%;background:#f7bf08;border-radius:1px;position:absolute;top:50%;left:50%}.pull-refresh__ray:nth-child(2n){height:9px}.pull-refresh__ring{z-index:1;background:#f7bf08;border-radius:50%;width:25px;height:25px;position:relative}.pull-refresh[data-state=refreshing] .pull-refresh__sun{animation:1.3s cubic-bezier(.18,.72,.18,1) infinite sun-spin}.pull-refresh[data-state=ready] .pull-refresh__orb{transform:scale(1.08)}@media (width>=720px){.card{max-width:none}}.hero{isolation:isolate;flex:1 1 0;min-height:200px;position:relative;overflow:hidden}@media (width>=720px){.hero{min-height:280px}}@media (width<=719px){.hero{min-height:clamp(128px,26dvh,200px)}}@media (width>=1100px){.hero{flex:0 0 44dvh;height:44dvh;min-height:0;max-height:44dvh}}.hero__sky{background:linear-gradient(to bottom, var(--sky-top) 0%, var(--sky-top) 18%, #c4bcd0 32%, var(--sky-mid) 48%, #e8b88c 62%, var(--horizon-warm) 78%, var(--sun-core) 92%, #d44818 100%);transition:background 1.2s var(--easing);animation:sky-intro .9s var(--easing) 80ms both;position:absolute;inset:0}.hero__bloom{filter:blur(8px);pointer-events:none;background:radial-gradient(#ffc878d9 0%,#f060308c 25%,#f0603000 60%);width:140%;height:80%;animation:14s ease-in-out infinite bloom-shift;position:absolute;bottom:-30%;left:50%;transform:translate(-50%)}@keyframes bloom-shift{0%,to{opacity:1;transform:translate(-50%)translateY(0)}50%{opacity:.92;transform:translate(-50%)translateY(-2%)}}.hero__grain{pointer-events:none;opacity:.28;mix-blend-mode:soft-light;background-image:url(/grain.svg),radial-gradient(circle at 30% 20%,#ffffff3d,#0000 34%),radial-gradient(circle at 70% 82%,#501e0a2e,#0000 38%);background-repeat:repeat;background-size:180px 180px,100% 100%,100% 100%;animation:8s steps(8,end) infinite grain-drift;position:absolute;inset:-10%}@keyframes grain-drift{0%,to{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-1%)}60%{transform:translate(-1%,3%)}80%{transform:translate(3%,1%)}}.controls{top:var(--s-3);right:var(--s-3);z-index:3;animation:page-element-in .52s var(--easing) .22s both;align-items:center;gap:8px;display:flex;position:absolute}.icon-btn{-webkit-backdrop-filter:blur(14px)saturate(140%);color:#1a1a1a;width:36px;height:36px;transition:background .2s var(--easing), transform .2s var(--easing);background:#ffffff8c;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:#ffffffc7;transform:translateY(-1px)}.icon-btn:active{transform:translateY(0)}.icon-btn[aria-pressed=true]{color:#fff;background:#1a1a1ad9}.icon-btn svg{width:16px;height:16px}.search{top:60px;right:var(--s-3);left:var(--s-3);z-index:4;-webkit-backdrop-filter:blur(20px)saturate(150%);animation:drop .22s var(--easing);background:#ffffffb8;border-radius:16px;flex-direction:column;gap:6px;padding:10px;display:flex;position:absolute;box-shadow:0 12px 32px -8px #0000002e}@keyframes drop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.search input{letter-spacing:-.01em;background:0 0;border:none;outline:none;width:100%;padding:8px 10px;font-size:15px}.search input::placeholder{color:var(--text-secondary)}.search__list{flex-direction:column;max-height:220px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.search__item{text-align:left;letter-spacing:-.01em;width:100%;transition:background .16s var(--easing);border-radius:10px;flex-direction:column;gap:2px;padding:10px;font-size:14px;display:flex}.search__item:hover,.search__item:focus-visible,.search__item[data-active=true]{background:#0000000d;outline:none}.search__item:disabled{cursor:default;opacity:.68}.search__item--locate{background:#ffffff73;margin-top:2px}.search__item--locate span{align-items:center;gap:8px;display:inline-flex}.search__item--locate svg{flex:none;width:15px;height:15px}.search__item small{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.search__empty{color:var(--text-secondary);padding:8px 10px;font-size:13px}.panel{background:var(--panel);padding:var(--s-4) var(--s-4) var(--s-3);gap:var(--s-3);animation:page-element-in .56s var(--easing) .26s both;flex-direction:column;flex:none;display:flex}@media (width>=720px){.panel{padding:var(--s-4) var(--s-5);gap:var(--s-3)}}@media (width>=1100px){.panel{padding:var(--s-4) var(--s-6) var(--s-4);gap:var(--s-3);flex:auto;min-height:0}.panel .visbar{flex:none;margin-top:auto}}.panel__header{justify-content:space-between;align-items:flex-start;gap:var(--s-3);display:flex}.label{font-size:var(--t-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-primary);align-items:center;gap:8px;margin:0;font-weight:500;line-height:1;display:inline-flex}.label__dot{background:var(--accent-orange);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block;box-shadow:0 0 0 1px #0000000a}.sublabel{font-size:var(--t-sublabel);letter-spacing:var(--tracking-sublabel);text-transform:uppercase;color:var(--text-secondary);margin-top:4px;font-weight:400;line-height:1;display:block}.date{font-size:var(--t-date);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-primary);white-space:nowrap;font-weight:500;line-height:1}.panel__time{white-space:nowrap;align-items:baseline;display:inline-flex}.panel__place{flex-direction:column;gap:4px;display:flex}.panel__place .sublabel{margin-top:0}@media (width<=719px){.label,.sublabel,.date{font-size:12px}.panel__time{flex-direction:column;align-items:flex-end;gap:4px}.panel__time .date__sep{display:none}.date--time{color:var(--text-secondary)}}.date__sep{color:var(--text-secondary);margin:0 6px;display:inline-block}.primary{justify-content:space-between;align-items:flex-end;gap:var(--s-3);margin-top:4px;display:flex}.primary__value{letter-spacing:-.03em;align-items:flex-start;font-size:clamp(56px,18vw,76px);font-weight:300;line-height:.95;display:inline-flex}@media (width>=720px){.primary__value{font-size:clamp(76px,12vw,112px)}.primary__icon{width:88px;height:88px}}@media (width>=1100px){.primary__value{font-size:clamp(64px,6vw,84px)}.primary__icon{width:64px;height:64px}}.primary__value sup{color:var(--text-secondary);margin-top:.25em;margin-left:.05em;font-size:.4em;font-weight:300}.primary__icon{width:64px;height:64px;color:var(--text-primary);flex-shrink:0;margin-bottom:4px}.grid{column-gap:var(--s-4);row-gap:var(--s-4);grid-template-columns:1fr 1fr;display:grid}@media (width>=720px){.grid{column-gap:var(--s-4);row-gap:var(--s-5);grid-template-columns:repeat(4,1fr)}}@media (width>=1100px){.grid{column-gap:var(--s-5);row-gap:var(--s-4)}}.metric{flex-direction:column;min-width:0;display:flex}.panel__header.fade-in{animation-delay:.3s}.primary.fade-in{animation-delay:.36s}.panel .grid.fade-in{animation-delay:.42s}.panel .metric{animation:forecast-row-in .46s var(--easing) both}.panel .metric:first-child{animation-delay:.46s}.panel .metric:nth-child(2){animation-delay:.505s}.panel .metric:nth-child(3){animation-delay:.55s}.panel .metric:nth-child(4){animation-delay:.595s}.panel .metric:nth-child(5){animation-delay:.64s}.panel .metric:nth-child(6){animation-delay:.685s}.panel .metric:nth-child(7){animation-delay:.73s}.panel .metric:nth-child(8){animation-delay:.775s}.visbar.fade-in{animation-delay:.82s}.metric__value{font-size:var(--t-value-md);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;color:var(--text-primary);font-weight:300;line-height:1;overflow:hidden}@media (width>=720px){.metric__value{font-size:32px}}@media (width>=1100px){.metric__value{font-size:28px}}.metric__value sup{color:var(--text-secondary);margin-left:1px;font-size:.5em;font-weight:300}.metric[data-variant=text] .metric__value{letter-spacing:-.01em;white-space:normal;text-overflow:clip;font-size:20px;font-weight:400;line-height:1.15;overflow:visible}@media (width>=720px){.metric[data-variant=text] .metric__value{font-size:22px}}@media (width>=1100px){.metric[data-variant=text] .metric__value{font-size:19px}}.metric__label{font-size:var(--t-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary);margin-top:4px;font-weight:700;line-height:1.2;display:block}@media (width>=720px){.metric__label{margin-top:10px}}.visbar{margin-top:var(--s-2);flex-direction:column;gap:6px;display:flex}.visbar__track{border-radius:var(--radius-pill);background:linear-gradient(90deg,#e8c8c8 0%,#c8b0d0 35%,#a8b0d8 70%,#88a0d0 100%);align-items:center;height:34px;padding:0 16px;display:flex;position:relative;overflow:hidden}.visbar__track:after{content:"";pointer-events:none;mix-blend-mode:overlay;opacity:.22;background-image:url(/grain.svg);background-repeat:repeat;background-size:120px 120px;position:absolute;inset:0}.visbar__fade{display:none}.visbar__value{z-index:1;letter-spacing:-.02em;color:var(--text-primary);font-size:22px;font-weight:300;position:relative}.visbar__value sup{color:var(--text-secondary);margin-left:1px;font-size:.55em}.credit{text-align:center;padding:var(--s-3) var(--s-4) calc(var(--s-3) + env(safe-area-inset-bottom));letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary);background:var(--panel);opacity:.55;transition:opacity .24s var(--easing);animation:page-element-in-muted .56s var(--easing) .42s backwards;font-size:10px;font-weight:400}.credit:hover,.credit:focus-within{opacity:1}.credit a{color:var(--text-primary);transition:border-color .2s var(--easing);border-bottom:1px solid #0000}.credit a:hover{border-bottom-color:var(--text-primary)}.credit__sep{opacity:.5;margin:0 8px}@media (width<=719px){.panel{padding:var(--s-3) var(--s-4) var(--s-2);gap:var(--s-2)}.grid{row-gap:var(--s-3)}.visbar{margin-top:0}.credit{padding:var(--s-2) var(--s-4) calc(var(--s-2) + env(safe-area-inset-bottom))}}.placeholder{padding:var(--s-4);text-align:center;letter-spacing:.04em;color:var(--text-secondary);text-transform:uppercase;animation:page-element-in .52s var(--easing) .32s both;flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.placeholder strong{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.toast{left:var(--s-3);right:var(--s-3);z-index:5;color:#fff;letter-spacing:.06em;text-transform:uppercase;animation:drop .22s var(--easing);background:#e8503af2;border-radius:12px;padding:10px 14px;font-size:12px;position:absolute;top:60px;box-shadow:0 8px 24px -8px #0000004d}.fade-in{animation:fade-in .4s var(--easing) both}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes card-intro{0%{opacity:0;transform:translateY(18px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes sky-intro{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes page-element-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes page-element-in-muted{0%{opacity:0;transform:translateY(10px)}to{opacity:.55;transform:translateY(0)}}::view-transition-old(hero){animation-duration:.36s;animation-timing-function:var(--easing)}::view-transition-new(hero){animation-duration:.36s;animation-timing-function:var(--easing)}::view-transition-old(view-content){animation:view-fade-out .22s var(--easing) both}::view-transition-new(view-content){animation:view-fade-in .32s var(--easing) 60ms both}@keyframes view-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes view-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){::view-transition-old(hero){animation-duration:1ms}::view-transition-new(hero){animation-duration:1ms}::view-transition-old(view-content){animation-duration:1ms}::view-transition-new(view-content){animation-duration:1ms}}.icon-btn--view-toggle{display:none}@media (width>=720px){.icon-btn--view-toggle{display:inline-flex}}@media (width<=719px){.card{cursor:pointer}.card .controls,.card .search,.card .panel,.card button,.card a,.card input{cursor:auto}}.card[data-view=forecast] .hero{flex:none;height:32dvh;min-height:0;max-height:32dvh}@media (width>=720px){.card[data-view=forecast] .hero{height:36dvh;max-height:36dvh}}@media (width>=1100px){.card[data-view=forecast] .hero{flex:0 0 55dvh;height:55dvh;max-height:55dvh}}.forecast{background:var(--panel);padding:var(--s-4) var(--s-4) var(--s-3);gap:var(--s-3);min-height:0;animation:page-element-in .56s var(--easing) .26s both;flex-direction:column;flex:auto;display:flex;overflow:hidden}@media (width>=720px){.forecast{padding:var(--s-4) var(--s-5);gap:var(--s-3)}}@media (width>=1100px){.forecast{padding:var(--s-4) var(--s-6);gap:var(--s-3)}}.forecast__header{justify-content:space-between;align-items:flex-start;gap:var(--s-3);display:flex}.forecast__list{margin:0 calc(var(--s-4) * -1) 0 0;padding:0 calc(var(--s-4) + 12px) 0 0;overscroll-behavior-y:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#0003 transparent;flex-direction:column;flex:auto;min-height:0;list-style:none;display:flex;overflow-y:auto}@media (width>=720px){.forecast__list{margin:0;padding:0}}.forecast__list::-webkit-scrollbar{width:6px}.forecast__list::-webkit-scrollbar-thumb{background:#0000001f;border-radius:3px}.forecast__row{align-items:center;gap:var(--s-3);animation:forecast-row-in .46s var(--easing) both;border-bottom:1px solid #0000000f;grid-template-columns:minmax(72px,auto) 24px 1fr;padding:10px 0;display:grid}.forecast__row:last-child{border-bottom:none}.forecast__row:first-child{animation-delay:.34s}.forecast__row:nth-child(2){animation-delay:.385s}.forecast__row:nth-child(3){animation-delay:.43s}.forecast__row:nth-child(4){animation-delay:.475s}.forecast__row:nth-child(5){animation-delay:.52s}.forecast__row:nth-child(6){animation-delay:.565s}.forecast__row:nth-child(7){animation-delay:.61s}.forecast__row:nth-child(8){animation-delay:.655s}.forecast__row:nth-child(9){animation-delay:.7s}.forecast__row:nth-child(10){animation-delay:.745s}@keyframes forecast-row-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.forecast__condition,.forecast__rain{display:none}@media (width>=720px){.forecast__row{gap:var(--s-4);grid-template-columns:minmax(110px,1.2fr) 28px 1.6fr 56px 1.4fr;padding:12px 0}.forecast__condition,.forecast__rain{display:inline-flex}}@media (width>=1100px){.forecast__row{grid-template-columns:minmax(140px,1.2fr) 28px 1.8fr 64px 1.4fr;padding:11px 0}.forecast__list{align-items:stretch;gap:var(--s-2);flex-direction:row;overflow:visible}.forecast__row{text-align:center;border-bottom:none;border-right:1px solid #0000000f;flex:1 1 0;grid-template-columns:1fr;grid-auto-rows:min-content;justify-items:center;gap:6px;min-width:0;padding:10px 6px}.forecast__row:last-child{border-right:none}.forecast__day{align-items:center}.forecast__icon{width:32px;height:32px}.forecast__condition{white-space:normal;text-overflow:clip;color:var(--text-secondary);font-size:12px;line-height:1.25;overflow:visible}.forecast__rain{text-align:center}.forecast__temps{justify-content:center}}.forecast__day{flex-direction:column;gap:2px;display:flex}.forecast__day-name{color:var(--text-primary);letter-spacing:-.01em;font-size:15px;font-weight:500}.forecast__day-date{letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);font-size:10px}.forecast__icon{width:24px;height:24px;color:var(--text-primary);justify-self:center}@media (width>=720px){.forecast__icon{width:28px;height:28px}}.forecast__condition{letter-spacing:-.01em;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.forecast__rain{letter-spacing:.04em;color:var(--text-secondary);text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.forecast__temps{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-primary);justify-content:flex-end;align-items:baseline;gap:6px;font-weight:300;display:inline-flex}.forecast__hi{letter-spacing:-.01em;font-size:18px}.forecast__lo{color:var(--text-secondary);font-size:16px}.forecast__sep{color:var(--text-secondary);opacity:.5;font-size:14px}.forecast__unit{color:var(--text-secondary);margin-left:1px;font-size:.55em}.spinner{border:2px solid #0000001f;border-top-color:var(--text-primary);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes sun-spin{0%{transform:rotate(0)}62%{transform:rotate(300deg)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.card,.hero__sky,.controls,.panel,.forecast,.panel .metric,.forecast__row,.placeholder,.credit,.pull-refresh__sun,.hero__bloom,.hero__grain,.fade-in{animation:none}*{transition:none!important}}
