:root{color:#edf4f7;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;background:#02050b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45}*{box-sizing:border-box}body{-webkit-tap-highlight-color:#ffd16638;min-width:320px;min-height:100svh;margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit}.eclipse-app{background:#02050b;width:100vw;height:100svh;min-height:620px;position:relative;overflow:hidden}.eclipse-app:before,.eclipse-app:after{z-index:1;pointer-events:none;content:"";position:absolute;inset:0}.eclipse-app:before{mix-blend-mode:screen;background:radial-gradient(at 58% 43%,#02050b00 0 38%,#02050b29 68%,#000000b8 100%),radial-gradient(circle at 18% 12%,#8bd3dd14 0 6%,#02050b00 24%)}.eclipse-app:after{background:linear-gradient(#00000047 0%,#00000003 36%,#00000061 100%),radial-gradient(#0000 0 60%,#0000007a 100%)}#eclipse-canvas{cursor:grab;filter:contrast(1.08)saturate(1.08);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:absolute;inset:0}#eclipse-canvas:active,#eclipse-canvas.is-surface-dragging{cursor:grabbing}.city-label-layer{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.city-label{--label-x:0px;--label-y:0px;--label-offset-x:0px;--label-offset-y:0px;--label-intensity:0;--connector-angle:0deg;--connector-length:11px;--eclipse-coverage:0;--eclipse-phase:-1;left:var(--label-x);top:var(--label-y);border:1px solid rgba(255, 209, 102, calc(.24 + var(--label-intensity) * .54));background:radial-gradient(circle at 12% 50%, rgba(255, 209, 102, calc(.16 + var(--label-intensity) * .2)), #ffd16600 34%), linear-gradient(180deg, #09121cd1, #02050bb3);max-width:min(206px,100vw - 32px);min-height:29px;box-shadow:0 0 18px rgba(255, 209, 102, calc(var(--label-intensity) * .22)), 0 14px 34px #00000061, 0 0 0 1px #ffffff0a inset;color:#f8fbfbf0;opacity:calc(.08 + var(--label-intensity) * .92);text-shadow:0 2px 12px #000000d1;transform:translate3d(calc(-50% + var(--label-offset-x)), calc(-100% - 13px + var(--label-offset-y)), 0) scale(calc(.94 + var(--label-intensity) * .08));transform-origin:bottom;-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);border-radius:999px;align-items:center;gap:7px;padding:5px 9px 5px 6px;font-size:.72rem;font-weight:760;line-height:1;transition:border-color .16s,box-shadow .16s,opacity .16s,transform .16s;display:inline-flex;position:absolute}.city-label:after{width:1px;height:var(--connector-length);background:linear-gradient(180deg, rgba(255, 209, 102, calc(.62 + var(--label-intensity) * .3)), #ffd16600);content:"";opacity:0;transform:translateX(-50%) rotate(var(--connector-angle));transform-origin:50% 0;transition:opacity .16s;position:absolute;bottom:-4px;left:50%}.city-label.is-offset:after{opacity:calc(.22 + var(--label-intensity) * .62)}.city-label-marker{width:7px;height:7px;box-shadow:0 0 0 4px rgba(255, 209, 102, calc(.08 + var(--label-intensity) * .1)), 0 0 14px rgba(255, 209, 102, calc(.42 + var(--label-intensity) * .36));background:#ffd166;border-radius:50%;flex:none}.city-label-name{color:#f8fbfbf5;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.city-eclipse-icon{--eclipse-coverage:inherit;--eclipse-phase:inherit;width:20px;height:20px;box-shadow:0 0 calc(7px + var(--eclipse-coverage) * 14px) rgba(255, 209, 102, calc(.22 + var(--eclipse-coverage) * .24)), 0 0 0 1px #ffefbc3d inset;background:radial-gradient(circle at 36% 32%,#fff7c9 0 12%,#ffd166 36%,#ce8228 62%,#573312 100%);border-radius:50%;flex:none;position:relative;overflow:hidden}.city-eclipse-icon:before{box-shadow:-2px 0 8px #000000b8, 0 0 calc(var(--eclipse-coverage) * 12px) rgba(255, 229, 158, calc(var(--eclipse-coverage) * .22));content:"";opacity:calc(.18 + var(--eclipse-coverage) * .82);transform:translateX(calc(var(--eclipse-phase) * 17px));background:radial-gradient(circle at 40% 36%,#0a1119d1,#010409 62%,#000 100%);border-radius:50%;position:absolute;inset:-1px}.city-eclipse-icon:after{border:1px solid rgba(255, 245, 196, calc(var(--eclipse-coverage) * .44));box-shadow:0 0 calc(var(--eclipse-coverage) * 13px) rgba(255, 223, 135, calc(var(--eclipse-coverage) * .34));content:"";opacity:var(--eclipse-coverage);border-radius:50%;position:absolute;inset:1px}.city-label-percent{color:#ffd166;font-variant-numeric:tabular-nums;flex:none}.city-label.is-peak{border-color:#ffe08ce0;box-shadow:0 0 26px #ffd16652,0 18px 40px #00000070,inset 0 0 0 1px #fff5c424}.control-panel,.fallback-message{z-index:2;-webkit-backdrop-filter:blur(22px)saturate(1.16);backdrop-filter:blur(22px)saturate(1.16);background:linear-gradient(#08101cdb,#02050bd1),#030810c7;border:1px solid #e0eff429;border-radius:8px;position:absolute;box-shadow:0 26px 90px #0000008a,inset 0 0 0 1px #ffd1660a}.brand-panel{z-index:2;isolation:isolate;text-shadow:0 2px 28px #000000e6,0 0 42px #8bd3dd29;width:min(430px,100vw - 56px);padding:4px 0 0;position:absolute;top:28px;left:28px}.brand-panel:before{z-index:-1;pointer-events:none;content:"";background:linear-gradient(112deg,#02050bf0 0 28%,#02050b2e 52%,#02050b00 70%),linear-gradient(104deg,#8bd3dd29,#ffd16617 42%,#02050b00 68%);position:absolute;inset:-20px -72px -34px -28px;-webkit-mask-image:linear-gradient(90deg,#000 0 72%,#0000 100%);mask-image:linear-gradient(90deg,#000 0 72%,#0000 100%)}.brand{color:#8bd3dd;letter-spacing:0;text-shadow:0 0 28px #8bd3dd73;margin:0 0 16px;font-size:.84rem;font-weight:700}h1{color:#0000;letter-spacing:0;background:linear-gradient(108deg,#f8fbfb 0%,#d9f8ff 24%,#fff 42%,#ffd166 55%,#f7e5b3 66%,#90dbe6 100%) 0 0/180% 100%;text-wrap:balance;filter:drop-shadow(0 0 34px #edf4f71a)drop-shadow(0 16px 42px #0000009e);-webkit-background-clip:text;background-clip:text;max-width:11ch;margin:0;font-size:4.85rem;line-height:.91;position:relative}h1:before{color:#0000;background:linear-gradient(101deg,#fff0 0 35%,#fff5c4fa 46%,#8bd3dd9e 52%,#fff0 64%) 0 0/260% 100%,linear-gradient(108deg,#fff 0%,#ffd166 48%,#8bd3dd 100%) 0 0/100% 100%;content:attr(data-title);opacity:0;pointer-events:none;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}h1:after{content:"";opacity:0;transform-origin:100%;background:linear-gradient(90deg,#ffd16600,#ffd166e0,#8bd3dd00);border-radius:999px;width:.72em;height:.08em;position:absolute;bottom:.04em;right:-.18em;transform:translate(-.32em)scaleX(.18);box-shadow:0 0 26px #ffd16652,0 0 54px #8bd3dd29}.lede{color:#edf4f7c2;max-width:22rem;margin:18px 0 0;font-size:.98rem}.control-panel{border-color:#8bd3dd33;width:min(520px,100vw - 56px);padding:16px;bottom:28px;right:28px}.timeline-row,.status-row{align-items:center;gap:12px;display:flex}.timeline-row{align-items:stretch}.timeline-shell{flex:1;gap:9px;min-width:0;display:grid}.time-readout{grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:10px;min-width:0;display:grid}.time-control{flex:1;min-width:0;display:grid}.time-primary{color:#ffd166;font-variant-numeric:tabular-nums;letter-spacing:0;text-shadow:0 0 24px #ffd16638;font-size:1.5rem;font-weight:800;line-height:1}.time-zone{color:#edf4f7ad;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.timeline-scale{color:#edf4f785;font-variant-numeric:tabular-nums;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;font-size:.72rem;display:grid}.timeline-scale span:first-child{justify-self:start}.timeline-scale span:nth-child(2){color:#ffd166b8;text-overflow:ellipsis;white-space:nowrap;max-width:12rem;overflow:hidden}.timeline-scale span:last-child{justify-self:end}input[type=range]{--timeline-progress:95.7%;appearance:none;cursor:pointer;background:0 0;width:100%;height:22px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, #ffd166fa 0 var(--timeline-progress), #edf4f72e var(--timeline-progress) 100%), linear-gradient(180deg, #ffffff29, #ffffff05);border:1px solid #ffd16633;border-radius:999px;height:8px;box-shadow:0 0 24px #ffd16624,inset 0 0 0 1px #00000042}input[type=range]::-webkit-slider-thumb{appearance:none;background:radial-gradient(circle at 36% 34%,#fff8dc 0 22%,#ffd166 46%,#b97a26 100%);border:1px solid #fff2cad1;border-radius:50%;width:18px;height:18px;margin-top:-6px;box-shadow:0 0 0 5px #ffd16614,0 0 28px #ffd1666b}input[type=range]::-moz-range-track{background:#edf4f72e;border:1px solid #ffd16633;border-radius:999px;height:8px}input[type=range]::-moz-range-progress{background:#ffd166fa;border-radius:999px;height:8px}input[type=range]::-moz-range-thumb{background:#ffd166;border:1px solid #fff2cad1;border-radius:50%;width:18px;height:18px;box-shadow:0 0 20px #ffd1666b}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.icon-button,.location-tab{cursor:pointer;touch-action:manipulation;background:linear-gradient(#ffffff17,#ffffff09);border:1px solid #e0eff424;border-radius:8px;transition:border-color .16s,background .16s,transform .16s}.icon-button{flex:none;place-items:center;width:42px;height:42px;display:inline-grid}.icon-button:hover,.location-tab:hover{background:linear-gradient(#ffd16621,#ffffff0f);border-color:#ffd16685}.icon-button:active,.location-tab:active{transform:translateY(1px)}.icon-button:focus-visible,.location-tab:focus-visible,.source-footer a:focus-visible,input[type=range]:focus-visible,input[type=checkbox]:focus-visible{outline-offset:3px;outline:2px solid #ffd166}.location-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.location-tab{color:#edf4f7d6;text-overflow:ellipsis;white-space:nowrap;height:38px;padding:0 8px;overflow:hidden}.location-tab.active{color:#f8fbfb;background:linear-gradient(#8bd3dd42,#8bd3dd1a);border-color:#8bd3ddc2;box-shadow:0 0 28px #8bd3dd1f}.layer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.layer-grid[hidden]{display:none!important}.layer-grid label{color:#edf4f7c2;white-space:nowrap;align-items:center;gap:7px;min-width:0;font-size:.84rem;display:flex}.status-row{justify-content:flex-start;margin-top:14px}.badge{color:#8bd3dd;border:1px solid #8bd3dd5c;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:.76rem;font-weight:700;display:inline-flex}.badge[data-mode=webgpu]{color:#ffd166;border-color:#ffd1667a;box-shadow:0 0 24px #ffd1661f}.fallback-message[hidden]{display:none}.source-footer{z-index:2;color:#edf4f794;text-shadow:0 2px 18px #000000eb,0 0 20px #02050be0;max-width:min(540px,100vw - 604px);font-size:.76rem;line-height:1.45;position:absolute;bottom:28px;left:28px}.source-footer-label,.source-footnote{color:#edf4f7ad}.source-footer a{color:#edf4f7d1;border-bottom:1px solid #8bd3dd66;text-decoration:none}.source-footer a:hover{color:#ffd166;border-bottom-color:#ffd166b8}.city-tooltip{z-index:4;color:#edf4f7db;pointer-events:none;text-shadow:0 2px 16px #000000b3;-webkit-backdrop-filter:blur(20px)saturate(1.14);backdrop-filter:blur(20px)saturate(1.14);background:radial-gradient(circle at 88% 12%,#ffd1661a,#ffd16600 28%),linear-gradient(#08101cf0,#02050be0),#030810db;border:1px solid #ffd16633;border-radius:8px;width:min(316px,100vw - 32px);padding:14px;font-size:.78rem;position:fixed;transform:translate(0,0);box-shadow:0 24px 70px #00000080,0 0 28px #8bd3dd14,inset 0 0 0 1px #ffd16614}.city-tooltip[hidden]{display:none}.city-tooltip-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.city-tooltip-title-block{min-width:0}.city-tooltip-title{color:#f8fbfb;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:780;line-height:1.12;display:block;overflow:hidden}.city-tooltip-province{color:#8bd3ddd1;margin-top:2px;font-size:.72rem;display:block}.city-tooltip-percent{--eclipse-coverage:0;--eclipse-phase:-1;color:#ffd166;font-variant-numeric:tabular-nums;background:radial-gradient(circle at 42% 32%,#fff5c438,#ffd16614 44%,#ffd16600 76%),#ffd16614;border:1px solid #ffd1663d;border-radius:999px;align-items:center;gap:8px;min-width:78px;min-height:38px;padding:0 10px 0 7px;font-size:.96rem;font-weight:820;display:inline-flex;box-shadow:0 0 22px #ffd1661f}.city-tooltip-percent .city-eclipse-icon{width:24px;height:24px}.city-tooltip-percent-value{text-align:right;min-width:34px}.city-tooltip-grid{grid-template-columns:minmax(70px,auto) 1fr;gap:5px 14px;margin:12px 0 0;display:grid}.city-tooltip-grid dt{color:#edf4f785;margin:0}.city-tooltip-grid dd{color:#edf4f7e0;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;margin:0}.city-tooltip-weather{color:#ffd166db;border-top:1px solid #e0eff41f;gap:3px;margin-top:11px;padding-top:9px;display:grid}.city-tooltip-weather small{color:#edf4f79e;font-size:.7rem}.city-tooltip-weather.unavailable,.city-tooltip-weather.error{color:#edf4f79e}.fallback-message{color:#ffd166;max-width:420px;padding:14px 16px;bottom:76px;left:28px}.lucide{stroke-width:2px;width:18px;height:18px}@media (width<=1040px){h1{font-size:4.2rem}.lede{max-width:20rem}}@media (width<=760px){body{overflow:auto}.eclipse-app{min-height:720px}.eclipse-app:before{background:radial-gradient(at 58% 38%,#02050b00 0 36%,#02050b14 68%,#0000008f 100%),radial-gradient(circle at 18% 10%,#8bd3dd14 0 6%,#02050b00 24%)}.eclipse-app:after{background:linear-gradient(#00000047 0%,#0000 34%,#0000006b 100%),radial-gradient(#0000 0 64%,#00000094 100%)}#eclipse-canvas{filter:brightness(1.2)contrast(1.08)saturate(1.12)}.brand-panel{width:calc(100vw - 28px);padding:0;top:14px;left:14px}.brand-panel:before{inset:-16px -48px -22px -20px}.brand{margin-bottom:12px;font-size:.78rem}h1{max-width:10ch;font-size:clamp(2.55rem,12.6vw,3.05rem);line-height:.94}.lede{max-width:20rem;margin-top:12px;font-size:.86rem}.control-panel{width:calc(100vw - 24px);padding:12px;bottom:12px;right:12px}.source-footer{max-width:none;font-size:.68rem;line-height:1.34;inset:198px 14px auto}.fallback-message{bottom:422px;left:16px;right:16px}.location-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.layer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-row{gap:10px}.timeline-shell{gap:7px}.icon-button{width:38px;height:38px}.time-primary{font-size:1.36rem}.time-zone{font-size:.7rem}.timeline-scale{font-size:.68rem}.location-tabs{gap:7px;margin-top:11px}.location-tab{height:34px}.layer-grid{gap:8px 10px;margin-top:11px}.status-row{margin-top:10px}}@media (width<=380px){h1{font-size:2.42rem}}@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 (prefers-reduced-motion:no-preference){.brand-panel{animation:.98s cubic-bezier(.2,.75,.18,1) both title-stage-in}.brand{animation:.78s .14s both fade-in}h1{animation:1.18s cubic-bezier(.16,.78,.18,1) .12s both title-reveal,4.6s cubic-bezier(.45,0,.25,1) .92s both title-gradient-drift}h1:before{animation:1.38s cubic-bezier(.16,.78,.18,1) .65s both title-light-sweep}h1:after{animation:1.18s cubic-bezier(.16,.78,.18,1) .78s both title-rim-flare}.lede{animation:.78s cubic-bezier(.2,.75,.18,1) .52s both rise-in}.control-panel{animation:.78s cubic-bezier(.2,.75,.18,1) .12s both rise-in}.source-footer{animation:.82s .22s both fade-in}}@keyframes title-stage-in{0%{opacity:0;transform:translate(-10px,12px)}to{opacity:1;transform:translate(0,0)}}@keyframes title-reveal{0%{opacity:0;filter:blur(8px)drop-shadow(0 0 #edf4f700)drop-shadow(0 22px 52px #000000b3);transform:translateY(18px)scale(.985)}62%{opacity:1;filter:blur()drop-shadow(0 0 42px #ffd16629)drop-shadow(0 18px 48px #000000a8);transform:translate(0,0)scale(1)}to{opacity:1;filter:drop-shadow(0 0 34px #edf4f71a)drop-shadow(0 16px 42px #0000009e);transform:translate(0,0)scale(1)}}@keyframes title-gradient-drift{0%{background-position:0%}to{background-position:76%}}@keyframes title-light-sweep{0%{opacity:0;background-position:145%,0 0}16%{opacity:.92}78%{opacity:.62}to{opacity:0;background-position:-42%,0 0}}@keyframes title-rim-flare{0%{opacity:0;transform:translate(-.46em)scaleX(.12)}42%{opacity:.92;transform:translate(0,0)scaleX(1)}to{opacity:0;transform:translate(.18em)scaleX(.22)}}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translate(0,0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}
