:root{--bg-deep: #050a14;--bg-mid: #0b1a33;--panel: rgba(10, 22, 44, .74);--panel-border: rgba(120, 180, 255, .22);--text: #eaf2ff;--text-dim: #9db4d4;--day: #ffd75e;--dusk: #ff9a4a;--night: #14305c;--accent: #ffc93c;--radius: 16px;--topbar-h: 60px;--timebar-h: 76px;--panel-h: 44px}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg-deep);color:var(--text);font-family:PingFang SC,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;-webkit-font-smoothing:antialiased}#app{display:grid;grid-template-rows:var(--topbar-h) 1fr var(--timebar-h);height:100dvh}#topbar{display:flex;align-items:center;gap:12px;padding:0 16px;background:linear-gradient(180deg,#0a162ceb,#0a162c8c);border-bottom:1px solid rgba(120,180,255,.14);z-index:20}.topbar-left,.topbar-mid,.topbar-right{display:flex;align-items:center;gap:10px}.topbar-mid{flex:1;justify-content:center;color:var(--text-dim);font-size:13px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.brand{font-size:15px;font-weight:700;letter-spacing:.5px;color:#cfe4ff}.hud-date{font-variant-numeric:tabular-nums;color:#bcd4f5;font-size:14px}.hud-date-short{display:none}.hud-clock{padding:2px 12px;border-radius:999px;border:1px solid rgba(120,180,255,.24);background:#182e5299;font-variant-numeric:tabular-nums;font-size:19px;font-weight:700;color:#fff;letter-spacing:1px;line-height:1.35;font-family:inherit;appearance:none;cursor:pointer}.hud-clock[aria-pressed=true]{background:#ffc93c2e;border-color:#ffc93c99;color:var(--accent)}.badge{font-size:11px;padding:2px 7px;border-radius:999px;border:1px solid rgba(120,180,255,.4);color:#9ec6ff}.hud-state{padding:2px 8px;border-radius:999px;background:#78b4ff1f;color:#a8c8f0;font-size:12px}.hud-state.is-playing{background:#ffc93c29;color:var(--accent)}.btn{font:inherit;font-size:13px;color:var(--text);background:#78b4ff1a;border:1px solid rgba(120,180,255,.28);border-radius:10px;padding:8px 12px;min-height:36px;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .1s ease;white-space:nowrap}.btn:hover{background:#78b4ff33}.btn:active{transform:scale(.97)}.btn.is-active,.btn-toggle[aria-pressed=true]{background:#ffc93c2e;border-color:#ffc93c99;color:var(--accent);box-shadow:inset 0 0 0 1px #ffc93c40}#stage{position:relative;overflow:hidden;background:radial-gradient(120% 120% at 50% 0%,var(--bg-mid) 0%,var(--bg-deep) 62%)}#canvas-wrap{position:absolute;inset:0;isolation:isolate;z-index:0}@media(min-width:821px){#canvas-wrap{inset:0 356px 0 0}}#globe{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#globe.is-dragging{cursor:grabbing}.big-clock{position:absolute;top:0;left:50%;transform:translate(-50%);z-index:2;padding:3px 16px 5px;border-radius:0 0 12px 12px;border:1px solid rgba(255,201,60,.38);background:#0b1a33;text-align:center;white-space:nowrap;pointer-events:none}.big-clock[hidden]{display:none}.view-switch{position:absolute;top:12px;right:12px;z-index:3;display:flex;gap:4px;padding:4px;border-radius:12px;background:#0a162cd1;border:1px solid var(--panel-border)}.view-btn{min-height:30px;padding:5px 10px;font-size:12px;border-radius:8px}#btn-lock:disabled{opacity:.45;cursor:not-allowed}body.mode-learn #view-switch{display:none}@media(max-width:820px){.view-switch{flex-direction:column;top:10px;right:10px;gap:3px;padding:3px}.view-btn{min-height:30px;padding:4px 8px;font-size:11.5px}}.big-clock-date{font-size:11px;color:var(--text-dim);letter-spacing:.5px;margin-bottom:1px}.big-clock-time{font-size:48px;line-height:1.05;font-weight:700;letter-spacing:1px;color:#f0c957;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}@media(min-width:821px){.big-clock{display:flex;align-items:center;gap:12px}.big-clock-date{margin-bottom:0}.big-clock-time{font-size:40px}}.label-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}.province-label{--label-scale: 1;font-size:clamp(12px,1.22vw,16px);font-weight:800;line-height:1;white-space:nowrap;color:#fff;letter-spacing:.5px;padding:2px 6px;border-radius:6px;background:#060e1e80;border:1px solid rgba(150,190,255,.28);transform-origin:center;text-shadow:0 1px 3px rgba(0,0,0,.95);transition:opacity .18s ease,color .16s ease,background .16s ease;pointer-events:none;will-change:opacity}.province-label.is-full{font-size:clamp(11px,1.02vw,14px);font-weight:700;color:#eaf4ff;background:#060e1e6b}.province-label.is-selected{color:#ffe9a8;font-weight:900;background:#3a2808d1;border-color:#ffc93cd9;box-shadow:0 0 0 1px #ffc93c59,0 2px 10px #00000080;text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 10px rgba(255,201,60,.7)}.polar-label{display:inline-flex;align-items:center;padding:1px 9px;border-radius:999px;white-space:nowrap;pointer-events:none;background:#08162885;border:1px dashed rgba(130,180,220,.45);transition:opacity .18s ease}.polar-label-name{font-size:clamp(10px,.92vw,12px);font-weight:700;letter-spacing:1.5px;color:#a8cde8;text-shadow:0 1px 3px rgba(0,0,0,.95)}.water-label{white-space:nowrap;pointer-events:none;transition:opacity .18s ease}.ocean-label{font-size:clamp(10px,.88vw,11.5px);font-weight:600;letter-spacing:.4em;text-indent:.4em;color:#addeffc7;text-shadow:0 1px 2px rgba(0,0,0,.85),0 0 8px rgba(20,80,150,.4)}.sea-label{font-size:clamp(9px,.76vw,10.5px);font-weight:600;letter-spacing:.06em;color:#a5d2f599;text-shadow:0 1px 2px rgba(0,0,0,.85)}.terminator-label{font-size:11px;font-weight:700;letter-spacing:1.5px;white-space:nowrap;padding:2px 8px;border-radius:999px;pointer-events:none;color:#241703;background:#ffd696f2;box-shadow:0 0 12px #ffd08aa6}#panel{position:absolute;top:14px;right:14px;width:340px;max-height:calc(100% - 28px);display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding-right:2px;z-index:10;scrollbar-width:thin}.card{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:10px 12px;backdrop-filter:blur(10px);flex:0 0 auto}.card-title{margin:0 0 8px;font-size:13px;font-weight:700;color:#c8dcf7;letter-spacing:.6px;display:flex;align-items:baseline;gap:8px}.card-note{font-size:11px;font-weight:400;color:var(--text-dim)}.card-hint{margin:8px 0 0;font-size:11px;line-height:1.5;color:var(--text-dim)}.card-bar{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-close{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid rgba(150,190,255,.25);background:#78b4ff14;color:#c8dcf7;font-size:18px;line-height:1;cursor:pointer;padding:0}.card-close:hover{background:#78b4ff2e}.country-kids,.province-kids{margin-top:10px;padding:10px 12px;background:#ffc93c14;border:1px solid rgba(255,201,60,.22);border-radius:12px}.province-kids-pending{display:none}.kids-title{font-size:12px;font-weight:700;color:#ffd98a;margin-bottom:6px}.country-kids ul,.province-kids ul{margin:0;padding-left:18px}.country-kids li,.province-kids li{font-size:12px;line-height:1.7;color:#eaf1ff}.kids-fallback{margin:0;font-size:12px;line-height:1.7;color:#eaf1ff}.province-spots{margin-top:10px;padding:10px 12px;background:#78b4ff12;border:1px solid rgba(120,180,255,.2);border-radius:12px}.spot-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.spot-item{display:flex;align-items:flex-start;gap:8px}.spot-idx{flex:none;width:18px;height:18px;margin-top:1px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:#0a1628;background:linear-gradient(180deg,#ffe3a3,#ffc93c);box-shadow:0 0 8px #ffc93c47}.spot-body{display:flex;flex-direction:column;gap:1px;min-width:0}.spot-name{font-size:12.5px;font-weight:700;color:#fff;letter-spacing:.2px}.spot-note{font-size:11.5px;line-height:1.55;color:#c7d8f2}.extremes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.extreme{background:#78b4ff12;border-radius:12px;padding:8px 10px;border:1px solid rgba(120,180,255,.12)}.extreme-label{font-size:11px;color:var(--text-dim)}.extreme-time{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:.5px}.extreme-place{font-size:11px;line-height:1.45;color:#b9d0ee;word-break:break-all}.province-empty{font-size:12px;color:var(--text-dim);padding:4px 0 2px}.province-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.province-name{font-size:16px;font-weight:700}.province-abbr{display:inline-grid;place-items:center;width:22px;height:22px;margin-left:-2px;border-radius:6px;background:#78b4ff24;border:1px solid rgba(120,180,255,.34);color:#cfe4ff;font-size:12.5px;font-weight:700;line-height:1}.state-badge{font-size:11px;padding:2px 8px;border-radius:999px}.state-badge.day{background:#ffd75e2e;color:var(--day)}.state-badge.night{background:#3c6ec840;color:#a9c8ff}.state-badge.twilight{background:#ff9a4a33;color:var(--dusk)}.kv-grid{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;font-size:12.5px}.kv-grid dt{color:var(--text-dim)}.kv-grid dd{margin:0;font-variant-numeric:tabular-nums}#card-country[hidden]{display:none}.country-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.country-flag-wrap{flex:0 0 auto;width:66px;height:50px;border-radius:6px;overflow:hidden;background:#ffffff14;border:1px solid rgba(140,190,255,.35);display:flex;align-items:center;justify-content:center}.country-flag{width:100%;height:100%;object-fit:contain;display:block}.country-flag-wrap .country-flag[hidden],.country-flag-fallback[hidden]{display:none}.country-flag-fallback{font-size:18px;color:var(--text-dim)}.country-names{min-width:0}.country-name{font-size:17px;font-weight:700;line-height:1.25}.country-name-en{font-size:11.5px;color:var(--text-dim);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.country-now{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(140,190,255,.22)}.country-now-head{display:flex;align-items:center;gap:8px;margin-bottom:7px}.country-now-place{font-size:13px;font-weight:700;color:var(--accent)}#card-country .card-hint{margin-top:8px}#card-country{min-width:0}#country-facts dd,#country-now dd{min-width:0;overflow-wrap:anywhere}.tabs{display:flex;gap:6px;margin-bottom:8px}.tab{font:inherit;font-size:12px;padding:5px 12px;border-radius:999px;border:1px solid rgba(120,180,255,.25);background:transparent;color:var(--text-dim);cursor:pointer}.tab.is-active{background:#ffc93c29;border-color:#ffc93c80;color:var(--accent)}.ranking-list{list-style:none;margin:0;padding:0 12px 0 0;max-height:264px;overflow-y:auto;font-size:12px;scrollbar-width:thin;scrollbar-gutter:stable}.ranking-list li{display:grid;grid-template-columns:22px 1fr auto;gap:8px;padding:3px 15px 3px 2px;border-bottom:1px dashed rgba(120,180,255,.1);align-items:center}.ranking-list li.is-selected{color:var(--accent)}.ranking-list .rank{color:var(--text-dim);font-variant-numeric:tabular-nums;text-align:right;padding-right:4px}.ranking-list .rname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-list .rtime{font-variant-numeric:tabular-nums;color:#cfe2fb}#legend{position:absolute;left:16px;bottom:14px;display:flex;gap:14px;padding:8px 14px;border-radius:999px;background:#0a162cb3;border:1px solid rgba(120,180,255,.18);font-size:12px;color:#c6daf5;backdrop-filter:blur(8px);z-index:10}.legend-item{display:flex;align-items:center;gap:6px}.swatch{width:12px;height:12px;border-radius:4px;display:inline-block}.swatch.day{background:var(--day)}.swatch.terminator{background:#ffe9c2}.swatch.sunrise{background:#ffe000}.swatch.sunset{width:16px;height:0;border-radius:0;background:transparent;border-top:2px dashed #ff5a1f}.swatch.night{background:var(--night);border:1px solid rgba(120,180,255,.4)}#timebar{display:flex;align-items:center;gap:10px;padding:0 16px;background:linear-gradient(0deg,#0a162cf2,#0a162c99);border-top:1px solid rgba(120,180,255,.14);z-index:20}.btn-play{width:44px;height:44px;border-radius:50%;font-size:16px;padding:0;display:grid;place-items:center;background:#ffc93c2e;border-color:#ffc93c8c;color:var(--accent)}.speeds{display:flex;gap:4px}.speeds .btn{min-height:32px;padding:5px 9px;font-size:12px;border-radius:8px}.speeds .btn.is-active{background:#ffc93c2e;border-color:#ffc93c8c;color:var(--accent)}.slider-wrap{flex:1;min-width:140px;display:flex;flex-direction:column;gap:3px}.slider{width:100%;appearance:none;height:6px;border-radius:999px;background:linear-gradient(90deg,#1b3564,#3f6fa8);outline:none;cursor:pointer}.slider::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);border:2px solid #fff3d0;box-shadow:0 0 8px #ffc93cb3}.slider-label{font-variant-numeric:tabular-nums;font-size:14px;color:#d6e6ff;min-width:52px;text-align:center}.timebar-info{display:flex;flex-direction:column;justify-content:center;line-height:1.25;padding-right:4px;white-space:nowrap}.tb-date{width:11em;font-size:12px;color:#bcd4f5}.tb-clock{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700;color:#fff}.tb-time{display:inline-block;width:5ch;font-variant-numeric:tabular-nums}.tb-bj{font-style:normal;font-size:10px;font-weight:400;color:#9ec6ff;margin-left:5px;padding:1px 5px;border-radius:999px;border:1px solid rgba(120,180,255,.35)}.timeline-ticks{position:relative;height:13px}.timeline-ticks span{position:absolute;top:0;transform:translate(-50%);font-size:10px;color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap}.timeline-ticks span:nth-child(1){transform:translate(0)}.timeline-ticks span:nth-child(5){transform:translate(-100%)}.timeline-ticks span:before{content:"";position:absolute;top:-5px;width:1px;height:5px;background:#96beff80}.timeline-ticks span:nth-child(1):before{left:0}.timeline-ticks span:nth-child(2):before,.timeline-ticks span:nth-child(3):before,.timeline-ticks span:nth-child(4):before{left:50%}.timeline-ticks span:nth-child(5):before{right:0;left:auto}.loading{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(120% 120% at 50% 40%,#0d1e3a,#050a14 70%);z-index:50;transition:opacity .32s ease}.loading.is-hidden{opacity:0;pointer-events:none}.loading-inner{text-align:center;width:260px}.loading-title{font-size:15px;color:#cfe2fb;margin-bottom:12px;letter-spacing:1px}.loading-bar{height:6px;border-radius:999px;background:#78b4ff29;overflow:hidden}.loading-bar i{display:block;height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,#4a90d9,var(--accent));transition:width .22s ease}.loading-text{margin-top:8px;font-size:12px;color:var(--text-dim);font-variant-numeric:tabular-nums}.error-banner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:520px;padding:16px 20px;border-radius:12px;background:#460c0ceb;border:1px solid rgba(255,120,120,.5);color:#ffd9d9;font-size:13px;line-height:1.6;z-index:60}.date-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid rgba(120,180,255,.24);background:#182e5299;color:var(--text);font:inherit;font-size:13px;cursor:pointer;transition:background .15s,border-color .15s}.date-btn:hover{background:#28487cd1;border-color:#96c8ff73}.date-caret{font-size:10px;color:var(--text-dim)}.date-panel{position:fixed;top:calc(var(--topbar-h) + 8px);left:16px;width:288px;padding:14px;border-radius:14px;background:#0b1628;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(120,180,255,.3);box-shadow:0 18px 44px #0009;z-index:40;display:grid;gap:10px}.date-panel[hidden]{display:none}.date-panel-head{font-size:12px;color:var(--text-dim);letter-spacing:.04em}.date-field{display:flex;align-items:center;gap:10px;font-size:13px}.date-field span{color:var(--text-dim);flex:none}.date-field input{flex:1;min-width:0;padding:6px 8px;border-radius:8px;border:1px solid rgba(120,180,255,.28);background:#10203ae6;color:var(--text);font:inherit;font-size:13px;color-scheme:dark}.term-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.term-btn{display:grid;gap:2px;padding:8px 6px;border-radius:10px;border:1px solid rgba(120,180,255,.22);background:#142848b3;color:var(--text);font:inherit;cursor:pointer;transition:background .15s,border-color .15s}.term-btn:hover{background:#264676e6;border-color:#a0d2ff80}.term-btn.is-active{border-color:var(--accent);background:#78581473}.term-name{font-size:13px;font-weight:600}.term-date{font-size:11px;color:var(--text-dim)}.date-panel-hint{margin:0;font-size:11px;line-height:1.55;color:var(--text-dim)}.date-panel-actions{display:flex;gap:8px;justify-content:flex-end}.topbar-sep{width:1px;height:20px;background:#78b4ff33;flex:none}.hud-polar{color:#9fe0ff}.polar-note{position:absolute;left:16px;bottom:58px;min-width:172px;padding:9px 12px;border-radius:12px;background:#0a162cbd;border:1px solid rgba(143,216,255,.24);font-size:12px;backdrop-filter:blur(8px);z-index:10}.polar-row{display:flex;justify-content:space-between;gap:12px;line-height:1.7}.polar-key{color:var(--text-dim)}.polar-val{color:#cbe9ff;font-weight:600}.polar-val.is-day{color:#ffd75e}.polar-val.is-night{color:#8fb4e8}.polar-detail{margin-top:4px;padding-top:4px;border-top:1px solid rgba(143,216,255,.16);font-size:11px;color:var(--text-dim);line-height:1.5}.swatch.polar{background:transparent;border:1px dashed #8fd8ff;border-radius:2px}#card-polar{display:none}.polar-card-val{font-size:15px}.panel-handle{display:none}.world-label{font-size:11px;white-space:nowrap;pointer-events:none;transition:opacity .18s ease;text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 8px rgba(0,0,0,.6)}.country-label{color:#dbe8fb;letter-spacing:.03em}.country-label.is-selected{color:#ffe9a8;font-size:12.5px;font-weight:800;letter-spacing:.05em;text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 12px rgba(255,201,60,.85)}.capital-label.is-capital-selected{color:#fff3d0;font-weight:700}.capital-label{display:inline-flex;align-items:center;gap:3px;color:#ffcf6a;font-size:10px}.capital-dot{width:4px;height:4px;border-radius:50%;background:#ffcf6a;box-shadow:0 0 4px #ffcf6ae6;flex:none}@media(max-width:1100px){#panel{width:300px}#topbar,#timebar{gap:8px;padding:0 12px}.timebar-info{gap:1px}.tb-date{font-size:11px}.tb-clock{font-size:14px}}@media(max-width:820px){:root{--topbar-h: 56px;--timebar-h: 104px}.topbar-mid,.brand{display:none}.sea-label{display:none!important}.ocean-label{font-size:10px;letter-spacing:.22em;text-indent:.22em}#stage{padding-bottom:var(--panel-h)}#canvas-wrap{inset:0 0 var(--panel-h) 0}#panel{inset:auto 8px 0;width:auto;box-sizing:border-box;max-width:calc(100vw - 16px);max-height:42vh;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:0;background:#0b1628;border:1px solid var(--panel-border);border-radius:var(--radius);transition:max-height .24s ease}.polar-note{display:none}#card-polar{display:block}.panel-handle{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;flex:0 0 auto;font-size:13px;letter-spacing:.5px;color:#cfe2fb;background:#0b1628;border-bottom:1px solid rgba(120,180,255,.12)}.panel-handle:active{background:#78b4ff14}.panel-handle .panel-chev{color:var(--text-dim);font-size:12px;transition:transform .24s ease}#panel:not(.is-open) .card{display:none}#panel:not(.is-open){max-height:var(--panel-h)}#panel:not(.is-open) .panel-handle{border-bottom:none;height:100%}#panel.is-open .panel-chev{transform:rotate(180deg)}#panel .card{margin:10px;flex:0 0 auto;background:transparent;border-color:#78b4ff24}#legend{display:none}#app{grid-template-rows:auto 1fr auto}#topbar{flex-wrap:wrap;gap:6px 8px;padding:6px 10px;min-height:var(--topbar-h)}.topbar-left,.topbar-right{gap:6px}.topbar-left{flex:1 1 auto;gap:6px}.topbar-left .mode-switch{order:1;flex:0 0 auto}#hud-clock{order:2;flex:1 1 auto;min-width:max-content;text-align:center;font-size:18px;letter-spacing:.5px}.topbar-left .date-btn{order:3;flex:0 1 auto;min-width:0;overflow:hidden}#hud-date{display:none}.hud-date-short{display:inline}.topbar-right{flex:1 1 100%;width:100%;margin-left:0;justify-content:stretch;flex-wrap:nowrap}.topbar-right .btn{flex:1 1 0;min-width:0}.topbar-right .topbar-sep{flex:0 0 auto}#topbar .btn{padding:5px 6px;font-size:11px}.btn{padding:5px 9px;font-size:12px}.date-btn{font-size:12px;padding:4px 9px}.date-panel{left:8px;right:8px;width:auto}.polar-note{left:8px;bottom:auto;top:calc(var(--topbar-h) + 50px);padding:7px 10px;font-size:11px}.polar-detail{display:none}#timebar{flex-wrap:wrap;gap:6px 8px;padding:8px 12px;align-content:center}#timebar .slider-wrap{order:3;flex-basis:100%}.speeds .btn[data-rate="1"]{display:none}#timebar .speeds .btn{padding:5px 6px;font-size:11px}}@media(max-width:560px){#timebar .speeds,#timebar .speeds .btn{flex:1 1 auto}}.mode-switch{display:flex;gap:2px;padding:2px;border-radius:999px;background:#081222b8;border:1px solid rgba(120,180,255,.22);flex:none}.mode-btn{appearance:none;border:0;background:transparent;color:var(--text-dim);font-family:inherit;font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;transition:color .16s ease,background .16s ease}.mode-btn:hover{color:#dbeaff}.mode-btn.is-active{background:#ffc93c29;color:var(--accent);box-shadow:inset 0 0 0 1px #ffc93c73}body.mode-learn #panel,body.mode-learn #polar-note,body.mode-learn .topbar-right .btn-line,body.mode-learn #btn-world,body.mode-learn #btn-lock{display:none}.learn-panel{position:absolute;left:14px;top:14px;bottom:14px;width:358px;display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:22px;background:linear-gradient(180deg,#0d1c34f2,#081222f5);border:1px solid rgba(140,190,255,.24);box-shadow:0 18px 44px #00000080;backdrop-filter:blur(12px);z-index:12;overflow-y:auto;scrollbar-width:thin}.learn-panel[hidden]{display:none}.learn-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:none}.learn-head-title{font-size:16px;font-weight:800;letter-spacing:.5px;color:#eaf4ff}.learn-progress-pill{margin-left:auto;font-size:12px;font-weight:700;color:var(--accent);background:#ffc93c24;border:1px solid rgba(255,201,60,.35);border-radius:999px;padding:2px 10px;font-variant-numeric:tabular-nums}.learn-progress-bar{flex-basis:100%;height:5px;border-radius:999px;background:#78b4ff29;overflow:hidden}.learn-progress-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ffd75e,#ffb03a);transition:width .32s ease}.learn-list{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0}.learn-list[hidden]{display:none}.learn-card-btn{display:flex;align-items:center;gap:12px;width:100%;flex:1 1 0;min-height:62px;max-height:84px;padding:10px 12px;text-align:left;font-family:inherit;color:var(--text);background:#1428468c;border:1px solid rgba(130,180,255,.18);border-radius:16px;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .12s ease}.learn-card-btn:hover{background:#203c64b3;border-color:#a0cdff61}.learn-card-btn:active{transform:scale(.985)}.learn-card-btn.is-done{border-color:#ffc93c6b;background:#382c126b}.learn-card-icon{flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:14px;color:#9fd4ff;background:#1e467899;border:1px solid rgba(140,200,255,.22)}.learn-card-btn.is-done .learn-card-icon{color:var(--accent);background:#5a46148c;border-color:#ffc93c66}.learn-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}.learn-card-text b{font-size:14.5px;font-weight:700;color:#eef6ff}.learn-card-text small{font-size:11.5px;color:var(--text-dim)}.learn-card-check{margin-left:auto;color:var(--accent);display:grid;place-items:center;width:20px;flex:none}.learn-exp{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}.learn-exp-scroll{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;padding-right:2px}.learn-exp[hidden]{display:none}.learn-exp-head{display:flex;align-items:center;gap:10px;cursor:pointer}.learn-exp-head:hover .learn-exp-title{color:#fff}.learn-exp-icon{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:12px;color:var(--accent);background:#5a461480;border:1px solid rgba(255,201,60,.35)}.learn-exp-title{font-size:16px;font-weight:800;margin:0;color:#f2f8ff;transition:color .16s ease}.learn-exp-head:before{content:"‹";font-size:20px;line-height:1;color:var(--text-dim);margin-right:-4px}.learn-question{margin:0;font-size:15px;line-height:1.5;font-weight:700;color:#ffe9a8}.learn-hint{margin:0;font-size:12.5px;line-height:1.6;color:var(--text-dim)}.learn-actions{display:flex;flex-wrap:wrap;gap:8px}.learn-btn{appearance:none;font-family:inherit;min-height:40px;padding:8px 14px;font-size:13px;font-weight:700;color:#dbeaff;background:#1a3458b3;border:1px solid rgba(140,190,255,.28);border-radius:12px;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .12s ease}.learn-btn:hover{background:#284a7ad9;border-color:#aad2ff73}.learn-btn:active{transform:scale(.97)}.learn-btn.is-primary{color:#221a05;background:linear-gradient(180deg,#ffd75e,#ffb63a);border-color:#ffdc82e6;box-shadow:0 6px 16px #ffb43c38}.learn-btn.is-primary:hover{background:linear-gradient(180deg,#ffdf7e,#ffc154)}.learn-btn-season.is-active{color:var(--accent);border-color:#ffc93c99;background:#ffc93c29}.learn-body{display:flex;flex-direction:column;gap:10px}.learn-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.learn-stat{display:flex;flex-direction:column;gap:3px;padding:9px 11px;border-radius:14px;background:#12264299;border:1px solid rgba(120,180,255,.16)}.learn-stat-label{font-size:11px;color:var(--text-dim)}.learn-stat-value{font-size:15px;font-weight:800;color:#eaf4ff;font-variant-numeric:tabular-nums}.learn-stat-value small{font-size:11px;font-weight:600;color:var(--text-dim)}.learn-block{border-radius:14px;background:#12264280;border:1px solid rgba(120,180,255,.14);padding:8px 10px}.learn-block-head{display:flex;justify-content:space-between;font-size:11px;color:var(--text-dim);padding-bottom:4px;border-bottom:1px dashed rgba(120,180,255,.16);margin-bottom:4px}.learn-order{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.learn-order li{display:grid;grid-template-columns:34px 1fr auto;gap:6px;align-items:center;font-size:12px;color:#d8e8ff}.learn-order li i{font-style:normal;font-size:10.5px;color:var(--text-dim);text-align:center}.learn-order li b{font-variant-numeric:tabular-nums;color:#ffe9a8}.learn-order li.is-last{margin-top:3px;padding-top:4px;border-top:1px dashed rgba(120,180,255,.16)}.learn-row{display:grid;gap:4px;align-items:center;padding:5px 8px;border-radius:10px;font-size:12px;color:#d8e8ff;font-variant-numeric:tabular-nums}.learn-row:nth-child(2n){background:#142a486b}.learn-row-cities{grid-template-columns:1fr .9fr .75fr .75fr .9fr}.learn-row-points{grid-template-columns:1.25fr .8fr .8fr .9fr}.learn-row-head{font-size:11px;color:var(--text-dim);background:transparent!important;border-bottom:1px dashed rgba(120,180,255,.16);border-radius:0}.learn-city{color:#eef6ff}.is-day{color:#ffd75e}.is-twilight{color:#ff9a4a}.is-night{color:#8fb2dd}.learn-bars{display:flex;flex-direction:column;gap:7px}.learn-bar{display:grid;grid-template-columns:104px 1fr 46px;gap:8px;align-items:center;font-size:11.5px;color:#cfe0f7}.learn-bar-track{position:relative;height:10px;border-radius:999px;background:#0c1a30e6;border:1px solid rgba(120,180,255,.18);overflow:hidden}.learn-bar-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ffb63a,#ffd75e);transition:width .36s ease}.learn-bar-fill.is-south{background:linear-gradient(90deg,#4fa8ff,#8fd6ff)}.learn-bar-mid{position:absolute;top:-1px;bottom:-1px;left:50%;width:1px;background:#ffffff8c}.learn-bar-val{text-align:right;font-variant-numeric:tabular-nums;color:#ffe9a8;font-weight:700}.learn-tip{margin:0;font-size:11.5px;line-height:1.6;color:var(--text-dim)}.learn-tip b{color:#ffe9a8}.learn-explain{margin-top:auto;padding:10px 12px;border-radius:14px;background:#3c301057;border:1px solid rgba(255,201,60,.22)}.learn-explain-label{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:1px;color:var(--accent);margin-bottom:4px}.learn-explain-text{margin:0;font-size:12px;line-height:1.7;color:#e6efff}.learn-done-btn{appearance:none;flex:none;font-family:inherit;min-height:48px;border-radius:14px;font-size:15px;font-weight:800;color:#221a05;background:linear-gradient(180deg,#ffd75e,#ffb63a);border:1px solid rgba(255,220,130,.9);cursor:pointer;transition:filter .15s ease,transform .12s ease,background .2s ease}.learn-done-btn:hover:not(:disabled){filter:brightness(1.06)}.learn-done-btn:active:not(:disabled){transform:scale(.985)}.learn-done-btn:disabled{color:#dce8fa80;background:#1e3454b3;border-color:#78b4ff33;cursor:not-allowed}.learn-done-btn.is-done{color:#221a05}.learn-toast{position:fixed;left:50%;bottom:calc(var(--timebar-h) + 22px);transform:translate(-50%,12px);padding:12px 22px;border-radius:999px;font-size:14px;font-weight:800;color:#241a05;background:linear-gradient(180deg,#ffe08a,#ffc84a);box-shadow:0 14px 34px #ffb43c57;opacity:0;transition:opacity .24s ease,transform .24s ease;z-index:40;pointer-events:none}.learn-toast.is-show{opacity:1;transform:translate(-50%)}.learn-marker{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;color:#eaf6ff;white-space:nowrap;background:#081426cc;border:1px solid rgba(150,200,255,.45);transform:translateY(-4px);box-shadow:0 2px 10px #0006}.learn-marker-dot{width:6px;height:6px;border-radius:50%;background:#7fd4ff;box-shadow:0 0 6px #7fd4ffe6;flex:none}.learn-marker.is-day .learn-marker-dot{background:#ffd75e;box-shadow:0 0 9px #ffd75ef2}.learn-marker-val{color:#ffe9a8;font-weight:600}@media(max-width:1500px){#hud-polar{display:none}}@media(max-width:1200px){#hud-state{display:none}}@media(max-width:900px){.badge{display:none}}@media(min-width:821px)and (max-width:900px){#topbar{padding:0 10px;gap:10px}#hud-clock{font-size:18px;padding:2px 9px}}@media(max-width:1180px){.brand{display:none}}@media(max-width:1600px){#hud-sun{display:none}}@media(max-width:1440px){#hud-date{display:none}.hud-date-short{display:inline}}@media(min-width:821px)and (max-width:1060px){body:not(.mode-learn) .topbar-right .btn-line{display:none}}@media(min-width:1000px){body.mode-learn #canvas-wrap{left:388px;right:0}body.mode-learn #legend{left:400px}}@media(max-width:999px){body.mode-learn #canvas-wrap{inset:0 0 46vh}body.mode-learn #legend{display:none}.learn-panel{inset:auto 8px 8px;width:auto;max-height:45vh;padding:12px;border-radius:18px}.learn-question{font-size:14px}.learn-bar{grid-template-columns:84px 1fr 42px}}@media(max-width:820px){.mode-switch{padding:1px}#btn-now,.badge{display:none}.date-btn,.hud-date{white-space:nowrap}.hud-date{font-size:12.5px}#timebar{padding:7px 12px calc(9px + env(safe-area-inset-bottom,0px));gap:6px 8px}#timebar .btn-play{width:40px;height:40px;font-size:15px;flex:none}#timebar .slider{height:8px}#timebar .slider::-webkit-slider-thumb{width:22px;height:22px}#timebar .slider::-moz-range-thumb{width:22px;height:22px}#timebar .slider-label,#timebar .tb-date,#timebar .tb-bj{display:none}#timebar .tb-clock{font-size:13px}#timebar .timebar-info{padding-right:0}#timebar .slider-wrap{gap:1px}#timebar .slider-wrap{order:3;flex:1 1 auto;min-width:0}#timebar #btn-reset-day{order:4;padding:5px 8px;font-size:11.5px}.timeline-ticks{height:14px}.timeline-ticks span{font-size:10.5px}body.mode-learn #canvas-wrap{inset:0 0 50vh}body.mode-learn .learn-panel{max-height:49vh}.mode-btn{font-size:11.5px;padding:4px 9px}.learn-toast{left:12px;right:12px;transform:translateY(12px);text-align:center}.learn-toast.is-show{transform:translateY(0)}}.polar-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}.site-label{position:absolute;left:0;top:0;display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:clamp(10px,.78vw,11.5px);font-weight:600;line-height:1.3;letter-spacing:.2px;white-space:nowrap;padding:2px 7px;border-radius:999px;background:#060e1ebd;border:1px solid rgba(140,190,255,.34);color:#d9e9ff;cursor:pointer;pointer-events:auto;opacity:0;visibility:hidden;backdrop-filter:blur(4px);transition:opacity .18s ease,color .15s ease,background .15s ease,border-color .15s ease;text-shadow:0 1px 2px rgba(0,0,0,.9)}.site-label:hover{background:#142848e6;border-color:#b4dcff99}.site-label.is-station{border-color:#ffc93c73;color:#ffe6a8}.site-label.is-pole{border-color:#fff2c480;color:#fff3cd}.site-label.is-selected{background:#3a2808eb;border-color:#ffc93ce6;color:#ffedb0;font-weight:700;box-shadow:0 0 0 1px #ffc93c47,0 2px 10px #0000008c}.sl-name{flex:none}.sl-country{color:#bed7f5b8;font-weight:500}.sl-state{flex:none;padding:0 5px;border-radius:999px;font-size:.88em;font-weight:700;line-height:1.5;background:#a0bedc38;color:#d3e4f8}.site-label[data-state=polar-day]{border-color:#ffc93cb8}.site-label[data-state=polar-day] .sl-state{background:#ffd45e;color:#241a00}.site-label[data-state=polar-night] .sl-state{background:#3b6ea8;color:#eaf4ff}.polar-explore[hidden]{display:none}.polar-explore{padding:12px 12px 10px}.pe-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.pe-head .card-title{margin:0;flex-wrap:wrap}.pe-head .card-note{flex-basis:100%}.pe-resume{font:inherit;font-size:11.5px;padding:5px 10px;border-radius:999px;border:1px solid rgba(120,180,255,.3);background:#78b4ff1a;color:#cfe4ff;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}.pe-resume:hover{background:#78b4ff33}.pe-resume.is-attention{border-color:#ffc93ca6;background:#ffc93c29;color:#ffd97a}.pe-section{margin-top:12px;padding-top:10px;border-top:1px solid rgba(120,180,255,.12)}.pe-section[hidden]{display:none}.pe-section-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:12px;font-weight:700;color:#c8dcf7;margin-bottom:8px}.pe-section-title span{font-size:10.5px;font-weight:400;color:var(--text-dim)}.pe-chips{display:flex;flex-wrap:wrap;gap:5px}.pe-chip{font:inherit;font-size:11.5px;padding:4px 9px;border-radius:999px;border:1px solid rgba(120,180,255,.26);background:#78b4ff14;color:#d5e6ff;cursor:pointer}.pe-chip:hover{background:#78b4ff2e}.pe-chip.is-active{border-color:#ffc93c99;background:#ffc93c26;color:#ffd97a}.pe-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.pe-site{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;font:inherit;text-align:left;padding:6px 8px;border-radius:10px;border:1px solid transparent;background:#78b4ff0f;color:var(--text);cursor:pointer;transition:background .14s ease,border-color .14s ease}.pe-site:hover{background:#78b4ff24}.pe-site.is-selected{background:#ffc93c1f;border-color:#ffc93c73}.pe-site-main{display:flex;flex-direction:column;gap:1px;min-width:0}.pe-site-name{font-size:12.5px;font-weight:700;color:#eaf3ff}.pe-site-sub{font-size:10px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pe-state{flex:none;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.pe-state.is-polar-day{background:#ffc93c2e;border-color:#ffc93c73;color:#ffd97a}.pe-state.is-polar-night{background:#78aaeb29;border-color:#8cbeff66;color:#a9c8f2}.pe-state.is-normal{background:#c8dcf51a;border-color:#c8dcf53d;color:#cfdcee}.pe-detail{margin-top:12px;padding:10px;border-radius:12px;background:#081224b8;border:1px solid rgba(120,180,255,.18)}.pe-detail[hidden]{display:none}.pe-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.pe-detail-name{font-size:15px;font-weight:800;color:#fff;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.pe-detail-en{font-size:10.5px;font-weight:500;color:var(--text-dim);letter-spacing:.2px}.pe-detail-sub{margin-top:2px;font-size:10.5px;color:var(--text-dim)}.pe-facts{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:9px 0 0;font-size:11.5px}.pe-facts dt{color:var(--text-dim);white-space:nowrap}.pe-facts dd{margin:0;color:#e6f0ff;text-align:right}.pe-annual{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.pe-annual-item{display:flex;flex-direction:column;gap:1px;padding:7px 8px;border-radius:10px;border:1px solid rgba(120,180,255,.16);background:#0a162c99}.pe-annual-item.is-day{border-color:#ffc93c47}.pe-annual-item.is-night{border-color:#8cbeff47}.pe-annual-num{font-size:20px;font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums}.pe-annual-item.is-day .pe-annual-num{color:#ffd97a}.pe-annual-item.is-night .pe-annual-num{color:#a9c8f2}.pe-annual-label{font-size:10px;color:var(--text-dim)}.pe-annual-range{font-size:10px;color:#cbd9ec;line-height:1.35}.pe-near{margin-top:8px;display:grid;gap:3px;font-size:10.5px;color:#cbd9ec;line-height:1.5}.pe-near-key{display:inline-block;margin-right:5px;padding:0 5px;border-radius:4px;font-size:9.5px;font-weight:700}.pe-near-key.is-day{background:#ffc93c2e;color:#ffd97a}.pe-near-key.is-night{background:#8cbeff2e;color:#a9c8f2}.pe-near-year{color:var(--text-dim);font-size:9.5px}.pe-kids{margin:9px 0 0;padding:8px 9px;border-radius:10px;background:#ffc93c12;border-left:2px solid rgba(255,201,60,.5);font-size:11.5px;line-height:1.65;color:#f0e6cf}.pe-research,.pe-note{margin:7px 0 0;font-size:10.5px;line-height:1.55;color:var(--text-dim)}.pe-research b{color:#bcd4f5;margin-right:5px}.pe-detail-foot{display:flex;align-items:center;gap:8px;margin-top:9px;flex-wrap:wrap}.pe-compare-btn{font:inherit;font-size:11px;padding:5px 10px;border-radius:8px;border:1px solid rgba(120,180,255,.3);background:#78b4ff1a;color:#d5e6ff;cursor:pointer;white-space:nowrap}.pe-compare-btn.is-active{border-color:#ffc93c99;background:#ffc93c29;color:#ffd97a}.pe-foot-hint{font-size:9.5px;color:var(--text-dim);line-height:1.5;flex:1;min-width:120px}.pe-compare{margin-top:10px;padding:9px 10px;border-radius:12px;background:#081224b8;border:1px solid rgba(120,180,255,.18)}.pe-compare[hidden]{display:none}.pe-compare-head{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;font-weight:700;color:#c8dcf7;margin-bottom:6px}.pe-compare-clear{font:inherit;font-size:10px;padding:2px 7px;border-radius:6px;border:1px solid rgba(120,180,255,.26);background:transparent;color:var(--text-dim);cursor:pointer}.pe-compare-row{margin-bottom:7px}.pe-compare-name{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#eaf3ff;margin-bottom:3px}.pe-compare-name .pe-state{font-size:9px;padding:1px 5px;font-weight:600}.pe-bar{position:relative;height:15px;border-radius:4px;background:#78b4ff14;margin-bottom:3px;overflow:hidden}.pe-bar i{position:absolute;inset:0 auto 0 0;display:block;border-radius:4px}.pe-bar.is-day i{background:linear-gradient(90deg,#ffc93c59,#ffc93cb3)}.pe-bar.is-night i{background:linear-gradient(90deg,#8cbeff47,#8cbeff99)}.pe-bar b{position:relative;z-index:1;display:block;padding:0 6px;line-height:15px;font-size:9.5px;font-weight:600;color:#eaf3ff;text-shadow:0 1px 2px rgba(0,0,0,.8)}.pe-compare-hint{margin:4px 0 0;font-size:9.5px;color:var(--text-dim)}.pe-learn{margin-top:12px;padding-top:10px;border-top:1px solid rgba(120,180,255,.12)}.pe-seasons{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.pe-season{font:inherit;font-size:11px;padding:5px 2px;border-radius:8px;border:1px solid rgba(120,180,255,.26);background:#78b4ff14;color:#d5e6ff;cursor:pointer}.pe-season:hover{background:#78b4ff33;border-color:#a0c8ff80}.pe-learn-hint{margin:7px 0 8px;font-size:9.5px;line-height:1.55;color:var(--text-dim)}.pe-learn-list{display:grid;gap:4px}.pe-learn-item{border-radius:10px;background:#78b4ff0f;overflow:hidden}.pe-learn-item.is-open{background:#78b4ff1c}.pe-learn-title{display:flex;align-items:center;justify-content:space-between;width:100%;font:inherit;font-size:11.5px;font-weight:600;text-align:left;padding:7px 9px;background:none;border:0;color:#e2eeff;cursor:pointer}.pe-learn-caret{color:var(--text-dim);font-size:13px;line-height:1}.pe-learn-body{padding:0 9px 9px}.pe-learn-body p{margin:0 0 7px;font-size:10.5px;line-height:1.7;color:#cfdcee}.pe-demo{font:inherit;font-size:10.5px;padding:5px 9px;border-radius:8px;border:1px solid rgba(255,201,60,.35);background:#ffc93c1a;color:#ffd97a;cursor:pointer}.pe-demo:hover{background:#ffc93c33}.pe-demo-out{font-size:10px;line-height:1.6;color:var(--text-dim);margin-top:6px}.pe-speed{margin-top:10px;padding-top:9px;border-top:1px dashed rgba(120,180,255,.16)}.pe-speed p{margin:6px 0 0;font-size:9.5px;line-height:1.55;color:var(--text-dim)}.pe-rank{display:grid;gap:3px;margin-top:4px}.pe-rank-row{display:grid;grid-template-columns:72px 1fr 46px;align-items:center;gap:5px;font-size:10px;color:#cfdcee}.pe-rank-row i{display:block;height:7px;border-radius:4px;background:linear-gradient(90deg,#8cbeff4d,#8cbeffa6)}.pe-rank-row b{text-align:right;font-weight:600;font-size:9.5px;color:#a9c8f2}body.view-polar #card-extremes,body.view-polar #card-ranking,body.view-polar #card-province,body.view-polar #card-country{display:none}@media(max-width:820px){body.view-polar #card-polar{display:none}.polar-explore{padding:10px}.pe-annual{grid-template-columns:1fr 1fr}.site-label{font-size:10.5px;padding:2px 6px;gap:4px}.sl-state{padding:0 4px;font-size:9px}.sl-country{display:none}}
