:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f4f1ea;background:#0f1115;font-family:IBM Plex Sans,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root,.app-shell{width:100%;height:100%;margin:0;overflow:hidden}.app-shell{position:relative}canvas{display:block}.muted{color:#8a97a8}.dock{left:50%;bottom:max(.85rem, env(safe-area-inset-bottom));z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0c0e14b8;border:1px solid #ffffff17;border-radius:999px;align-items:center;gap:.3rem;padding:.4rem;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 32px #0000006b}.dock-btn{color:#c7d2e0;cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;padding:0;transition:background .15s,color .15s,transform .1s;display:inline-flex}.dock-btn svg{width:1.25rem;height:1.25rem}.dock-btn:disabled{opacity:.35;cursor:default;pointer-events:none}.dock-btn:hover{color:#f2f6fb;background:#ffffff1a}.dock-btn:active{transform:scale(.92)}.dock-btn-active{color:#ffd766;background:#ffba0833}.dock-btn-active:hover{color:#ffe08a;background:#ffba0847}.dock-divider{background:#ffffff1f;width:1px;height:1.4rem;margin:0 .15rem}.dock-fab{left:50%;bottom:max(.85rem, env(safe-area-inset-bottom));z-index:20;color:#c7d2e0;cursor:pointer;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0c0e14b8;border:1px solid #ffffff1f;border-radius:999px;justify-content:center;align-items:center;width:2.6rem;height:2.6rem;display:inline-flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 32px #0000006b}.dock-fab svg{width:1.25rem;height:1.25rem}.dock-fab:hover{color:#f2f6fb;background:#ffffff1f}.dock-popover{left:50%;bottom:calc(max(.85rem, env(safe-area-inset-bottom)) + 3.6rem);z-index:19;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0c0e14d1;border:1px solid #ffffff17;border-radius:1rem;width:min(19rem,100vw - 1.2rem);max-height:min(60vh,30rem);padding:.35rem .9rem .85rem;font-size:.84rem;animation:.16s popover-in;position:absolute;overflow-y:auto;transform:translate(-50%);box-shadow:0 14px 40px #00000073}@keyframes popover-in{0%{opacity:0;transform:translate(-50%)translateY(.4rem)}to{opacity:1;transform:translate(-50%)translateY(0)}}.dock-section{border-top:1px solid #ffffff12;margin-top:.7rem;padding-top:.6rem}.dock-section:first-child{border-top:0}.dock-section-title{letter-spacing:.06em;text-transform:uppercase;color:#8a97a8;margin:0 0 .4rem;font-size:.66rem}.dock-help{color:#b9c4d3;margin:.25rem 0 0;font-size:.78rem;line-height:1.5}.dock-help.muted-source{opacity:.75;margin-bottom:.45rem}.dock-stats{flex-direction:column;gap:.28rem;display:flex}.dock-stat-row{color:#b9c4d3;justify-content:space-between;gap:.75rem;margin:0;font-size:.78rem;line-height:1.4;display:flex}.dock-stat-label{color:#8a97a8;flex:0 auto}.dock-stat-value{text-align:right;color:#e4ebf4;font-variant-numeric:tabular-nums;flex:auto}.dock-zone-bars{flex-direction:column;gap:.35rem;margin-top:.45rem;display:flex}.dock-zone-row{grid-template-rows:auto auto;grid-template-columns:.55rem minmax(0,1fr) auto;align-items:center;gap:.12rem .4rem;display:grid}.dock-zone-swatch{border-radius:.12rem;grid-area:1/1;width:.55rem;height:.55rem}.dock-zone-name{color:#b9c4d3;text-overflow:ellipsis;white-space:nowrap;grid-area:1/2;font-size:.74rem;overflow:hidden}.dock-zone-pct{color:#e4ebf4;font-variant-numeric:tabular-nums;grid-area:1/3;font-size:.74rem}.dock-zone-track{background:#ffffff14;border-radius:999px;grid-area:2/2/auto/4;height:.22rem;overflow:hidden}.dock-zone-fill{border-radius:inherit;opacity:.85;height:100%}.dock-help a{color:inherit;text-underline-offset:.12em;text-decoration:underline}.dock-search{color:#eef2f7;width:100%;font:inherit;background:#00000040;border:1px solid #ffffff1f;border-radius:.55rem;padding:.45rem .6rem;font-size:.8rem}.chip-row{flex-wrap:wrap;gap:.35rem;display:flex}.chip{color:#dde5f0;cursor:pointer;font:inherit;background:#ffffff14;border:0;border-radius:999px;padding:.3rem .6rem;font-size:.74rem}.chip:hover{background:#ffffff26}.chip-active{color:#fff8e8;background:#ffba0847}.toggle,.slider{justify-content:space-between;align-items:center;gap:.75rem;margin-top:.45rem;font-size:.83rem;display:flex}.toggle input[type=checkbox]{accent-color:#ffba08}.slider{flex-direction:column;align-items:stretch;gap:.25rem}.slider span{color:#b9c4d3;font-size:.78rem}.slider input[type=range]{accent-color:#ffba08;width:100%}.year-legend{flex-direction:column;gap:.3rem;margin-top:.5rem;display:flex}.year-legend-ticks{color:#9aa8ba;justify-content:space-between;font-size:.62rem;display:flex}.year-legend-bar{border:1px solid #ffffff1f;border-radius:999px;width:100%;height:.55rem}.pick-card{right:.85rem;bottom:calc(max(.85rem, env(safe-area-inset-bottom)) + 3.6rem);z-index:18;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0c121ad1;border:1px solid #ffffff17;border-radius:.8rem;width:min(16rem,100vw - 1.7rem);padding:.65rem .8rem;font-size:.78rem;line-height:1.45;position:absolute;box-shadow:0 12px 34px #0006}.pick-title{color:#eef4fb;margin:0;padding-right:1.4rem;font-weight:600}.pick-card p{color:#c5d0de;margin:.2rem 0 0}.pick-energy{border-top:1px solid #ffffff17;margin-top:.45rem;padding-top:.4rem}.energy-band{color:#10161f;text-align:center;border-radius:.25rem;min-width:1.15rem;margin-right:.35rem;padding:0 .25rem;font-weight:700;display:inline-block}.pick-card .muted{color:#8a97a8}.pick-close{color:#8a97a8;cursor:pointer;background:0 0;border:0;padding:.15rem;font-size:1.05rem;line-height:1;position:absolute;top:.3rem;right:.45rem}.pick-close:hover{color:#eef2f7}.measure-float{left:50%;bottom:calc(max(.85rem, env(safe-area-inset-bottom)) + 3.6rem);z-index:18;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#ffd9a0;font-variant-numeric:tabular-nums;white-space:nowrap;background:#ffb34729;border:1px solid #ffb3474d;border-radius:999px;align-items:center;gap:.6rem;padding:.4rem .75rem;font-size:.78rem;display:flex;position:absolute;transform:translate(-50%)}.fly-float{left:50%;bottom:calc(max(.85rem, env(safe-area-inset-bottom)) + 3.6rem);z-index:18;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0c0e14c7;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .55rem;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 28px #00000059}.fly-label{color:#a8b0bc;letter-spacing:.02em;margin:0 .25rem 0 .15rem;font-size:.72rem}.fly-speed{font-variant-numeric:tabular-nums;color:#e8ecf2;letter-spacing:.01em;min-width:4.6rem;margin:0 .15rem 0 .2rem;font-size:.78rem}.fly-speed-slider{align-items:center;margin:0 .15rem 0 .25rem;display:flex}.fly-speed-slider input[type=range]{accent-color:#d8dee8;cursor:pointer;width:5.5rem;height:.28rem}.dock-popover~.measure-float,.dock-popover~.fly-float{display:none}.load-screen{z-index:40;opacity:1;background:#0c0c0c;justify-content:center;align-items:center;padding:1.5rem 1.2rem;transition:opacity .55s;display:flex;position:absolute;inset:0}.load-screen-leave{opacity:0;pointer-events:none}.load-inner{flex-direction:column;gap:1.35rem;width:min(38rem,100%);max-height:100%;display:flex}.load-head{text-align:left}.load-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.load-kicker{letter-spacing:-.01em;color:#a8a29e;margin:0;font-size:.92rem;font-weight:500}.lang-toggle{letter-spacing:.04em;color:#a8a29e;-webkit-user-select:none;user-select:none;align-items:center;gap:.2rem;font-size:.72rem;font-weight:500;display:inline-flex}.lang-toggle button{color:inherit;cursor:pointer;font:inherit;letter-spacing:inherit;background:0 0;border:0;border-radius:999px;padding:.2rem .4rem}.lang-toggle button:hover{color:#e7e5e4;background:#ffffff0f}.lang-toggle .lang-active{color:#fafaf9;background:#ffffff1a}.lang-sep{opacity:.45;font-weight:400}.lang-toggle-dock{color:#c4cdd8;margin-top:.35rem}.lang-toggle-dock .lang-active{color:#fff8e8;background:#ffffff1f}.load-city{letter-spacing:-.03em;color:#fafaf9;margin:.15rem 0 0;font-size:clamp(2.4rem,7vw,3.25rem);font-weight:600;line-height:1.05}.load-progress{background:#ffffff1a;border-radius:0;height:2px;margin-top:1.1rem;overflow:hidden}.load-progress-bar{background:#fafaf9;border-radius:0;height:100%;transition:width .3s}.load-percent{color:#78716c;font-variant-numeric:tabular-nums;margin:.45rem 0 0;font-size:.8rem}.load-story{scrollbar-width:thin;scrollbar-color:#ffffff2e transparent;background:0 0;border:0;flex:1;min-height:0;padding:0;animation:.45s story-in;overflow-y:auto}@keyframes story-in{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translateY(0)}}.load-story-title{letter-spacing:-.02em;color:#fafaf9;margin:0 0 .7rem;font-size:1.15rem;font-weight:600;line-height:1.3}.load-story-text{color:#d6d3d1;white-space:pre-line;max-width:38rem;margin:0;font-size:.95rem;line-height:1.7}.load-story-nav{justify-content:flex-start;align-items:center;gap:.75rem;padding-top:.15rem;display:flex}.load-story-nav button{color:#a8a29e;cursor:pointer;width:auto;height:auto;font:inherit;background:0 0;border:0;border-radius:0;padding:.2rem .35rem;font-size:1.05rem;line-height:1}.load-story-nav button:hover{color:#fafaf9;background:0 0}.load-dots{align-items:center;gap:.3rem;display:flex}.load-dots span{background:#ffffff2e;border-radius:999px;width:.28rem;height:.28rem}.load-dots .load-dot-active{background:#fafaf9}.touch-controls{z-index:9;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.joy-base{touch-action:none;pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-tap-highlight-color:transparent;background:#0a0c108c;border:1px solid #ffffff29;border-radius:999px;position:absolute;box-shadow:0 8px 28px #00000047}.joy-base-active{background:#10141cad;border-color:#ffffff47}.joy-base-move{left:max(.75rem, env(safe-area-inset-left));bottom:max(1.25rem, env(safe-area-inset-bottom));width:9.5rem;height:9.5rem}.joy-base-look{right:max(.75rem, env(safe-area-inset-right));bottom:max(1.25rem, env(safe-area-inset-bottom));width:9rem;height:9rem}.joy-boost{left:max(calc(.75rem + 10rem), calc(env(safe-area-inset-left) + 10rem));bottom:max(1.35rem, env(safe-area-inset-bottom));z-index:1;color:#eef2f7b8;pointer-events:auto;touch-action:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-tap-highlight-color:transparent;cursor:pointer;background:#0a0c108c;border:1px solid #ffffff2e;border-radius:999px;width:3.25rem;min-width:48px;height:3.25rem;min-height:48px;font-size:1.05rem;font-weight:600;line-height:1;position:absolute;box-shadow:0 6px 20px #00000047}.joy-boost-active{color:#ffe08a;background:#ffba0847;border-color:#ffd76673}.joy-ring{pointer-events:none;border:1px dashed #ffffff24;border-radius:999px;position:absolute;inset:1.25rem}.joy-cross{pointer-events:none;background:#ffffff1a;position:absolute}.joy-cross-h{height:1px;top:50%;left:1.45rem;right:1.45rem;transform:translateY(-50%)}.joy-cross-v{width:1px;top:1.45rem;bottom:1.45rem;left:50%;transform:translate(-50%)}.joy-hint{color:#eef2f76b;pointer-events:none;width:1.05rem;height:1.05rem;position:absolute}.joy-hint-up{margin-left:-.525rem;top:.6rem;left:50%}.joy-hint-down{margin-left:-.525rem;bottom:.6rem;left:50%}.joy-hint-left{margin-top:-.525rem;top:50%;left:.6rem}.joy-hint-right{margin-top:-.525rem;top:50%;right:.6rem}.joy-knob{pointer-events:none;background:radial-gradient(circle at 35% 30%,#fff6,#ffffff29);border:1px solid #ffffff57;border-radius:999px;width:3.85rem;height:3.85rem;margin-top:-1.925rem;margin-left:-1.925rem;transition:box-shadow .12s;position:absolute;top:50%;left:50%;box-shadow:0 4px 18px #00000052,inset 0 1px #ffffff40}.joy-base-active .joy-knob{box-shadow:0 6px 22px #00000061,0 0 0 2px #ffffff14,inset 0 1px #ffffff4d}@media (width<=720px){.dock{bottom:max(.55rem, env(safe-area-inset-bottom));gap:.2rem;padding:.35rem}.dock-btn{width:3rem;min-width:48px;height:3rem;min-height:48px}.dock-btn svg{width:1.4rem;height:1.4rem}.dock-fab{width:3.1rem;min-width:48px;height:3.1rem;min-height:48px;bottom:max(.55rem, env(safe-area-inset-bottom))}.dock-popover{width:calc(100vw - .9rem);max-height:52vh;bottom:calc(max(.55rem, env(safe-area-inset-bottom)) + 4rem)}.pick-card{right:.45rem;bottom:calc(max(.55rem, env(safe-area-inset-bottom)) + 4rem)}.measure-float{bottom:calc(max(.55rem, env(safe-area-inset-bottom)) + 4rem)}.fly-float{bottom:calc(max(.55rem, env(safe-area-inset-bottom)) + 4rem);flex-wrap:wrap;justify-content:center;max-width:calc(100vw - .9rem)}.joy-base-move,.joy-base-look{bottom:calc(max(.55rem, env(safe-area-inset-bottom)) + 5.1rem)}.joy-base-move{width:10.25rem;height:10.25rem}.joy-base-look{width:9.75rem;height:9.75rem}.joy-knob{width:4.15rem;height:4.15rem;margin-top:-2.075rem;margin-left:-2.075rem}.joy-boost{left:max(calc(.4rem + 10.6rem), calc(env(safe-area-inset-left) + 10.6rem));bottom:calc(max(.55rem, env(safe-area-inset-bottom)) + 5.35rem);width:3.5rem;height:3.5rem}.load-city{font-size:2.1rem}.load-story-text{font-size:.9rem}}@media (width<=420px){.joy-base-move{width:9.25rem;height:9.25rem;left:max(.4rem, env(safe-area-inset-left))}.joy-base-look{width:8.75rem;height:8.75rem;right:max(.4rem, env(safe-area-inset-right))}.joy-boost{left:max(.55rem, env(safe-area-inset-left));bottom:calc(max(.55rem, env(safe-area-inset-bottom)) + 15.5rem)}}
