@font-face{font-family:Nunito;src:url(/fonts/nunito-latin.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-latin.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}:root{--sky: #05080f;--surface: #091522;--surface-2: #0d1b2c;--surface-3: #12233a;--line: #22304a;--text: #eef2f8;--dim: #a3aec2;--accent: #22d3ee;--aurora: linear-gradient(96deg, #a78bfa 0%, #22d3ee 100%);--ok: #4ade80;--bad: #f87171;--partial: #f59e0b;--star: #facc15;--glass-tint: rgba(9, 21, 34, .62);--glass-hairline: rgba(255, 255, 255, .09);--glass-highlight: rgba(255, 255, 255, .16);--scrim: rgba(3, 6, 12, .55);--font-display: "Nunito", ui-rounded, system-ui, -apple-system, sans-serif;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--weight-display: 800;--pad: 16px;--radius: 14px;--radius-lg: 20px;--radius-pill: 999px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--tap-min: 44px;--ease: cubic-bezier(.2, .9, .25, 1);--t-fast: .14s;--t-med: .24s;--t-slow: .42s;color-scheme:dark}html{background:var(--surface);-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.45;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left);overflow-x:hidden}h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-display);letter-spacing:.01em}.caption{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--dim)}.wordmark{font-family:var(--font-display);font-weight:650;letter-spacing:.14em;text-transform:uppercase;font-size:14px}.home-brand{display:inline-flex;align-items:center;gap:9px;white-space:nowrap;min-width:0}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.95em}button{font:inherit;font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);padding:8px 18px;cursor:pointer;min-height:44px;white-space:nowrap;flex-shrink:0;transition:transform var(--t-fast) var(--ease),background var(--t-med) var(--ease),border-color var(--t-med) var(--ease),color var(--t-med) var(--ease)}button:hover{border-color:var(--dim)}button:active{transform:scale(.97);background:var(--surface-3)}button:disabled{opacity:.45;cursor:not-allowed}button[aria-pressed=true],button[aria-expanded=true]{border-color:var(--accent);color:var(--accent);background:#22d3ee1f}input,select,textarea{font:inherit;font-size:16px;color:var(--text);background:var(--sky);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;min-height:40px;box-sizing:border-box}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:20px;padding-left:16px;padding-right:24px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23eef2f8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 7px center;background-size:9px 5.4px}input[type=number]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}input[aria-invalid=true]{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}input[type=checkbox],input[type=radio]{accent-color:var(--accent);min-height:0;width:16px;height:16px}input[type=range]{accent-color:var(--accent);border:none;background:none;padding:0;min-height:0}@supports (font: -apple-system-body){input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:22px;background:transparent}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:#a3aec266}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;margin-top:-6px;border-radius:50%;border:none;background:var(--accent);box-shadow:0 1px 4px #00000073}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[role=dialog][tabindex="-1"]:focus{outline:none}a{color:var(--accent)}.app-shell{min-height:100vh;background:var(--surface);color:var(--text)}.app-shell:before{content:"";position:fixed;top:-14px;right:-14px;bottom:-14px;left:-14px;z-index:0;pointer-events:none;background:linear-gradient(#09152247,#09152280 55%,#091522b8),url(/bg-nebula.webp) center / cover no-repeat,var(--surface);filter:blur(1px)}.app-shell>*{position:relative}.top-bar{display:flex;align-items:center;gap:12px;padding:8px var(--pad);border-bottom:1px solid var(--line);flex-wrap:wrap}.panel{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:inset 0 1px #ffffff0d,0 4px 16px #00000059}.glass{background:var(--glass-tint);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border:1px solid var(--glass-hairline);box-shadow:inset 0 1px 0 var(--glass-highlight),0 8px 28px #00000073}@supports not (backdrop-filter: blur(1px)){.glass{background:#091522eb}}.tab-bar{position:fixed;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom) + 12px);z-index:40;display:flex;gap:4px;padding:6px;border-radius:var(--radius-pill);transition:opacity var(--t-med) var(--ease)}.tab-bar button{border:none;background:none;color:var(--dim);font-size:14px;min-height:44px;padding:8px 18px}@media (hover: hover){.tab-bar button:hover{color:var(--text)}}.tab-bar button[aria-current=page]{background:#22d3ee24;color:var(--accent);font-weight:600}.tab-bar.tab-bar-hidden{opacity:0;pointer-events:none}@media (max-width: 389.98px){.tab-bar{gap:2px;padding:4px}.tab-bar button{padding:8px 10px}}.with-tabs{padding-bottom:calc(env(safe-area-inset-bottom) + 88px)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:50;animation:scrim-in var(--t-med) var(--ease)}@keyframes scrim-in{0%{opacity:0}}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:51;background:var(--surface-2);border:1px solid var(--line);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:inset 0 1px #ffffff0d,0 -12px 40px #00000080;padding:10px var(--pad) calc(env(safe-area-inset-bottom) + 16px);max-height:78vh;overflow-y:auto;animation:sheet-up var(--t-slow) var(--ease)}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}}.sheet-handle{width:44px;height:5px;border-radius:3px;background:var(--line);margin:0 auto 12px}.sheet-close{position:absolute;top:10px;right:10px;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;border-radius:50%;background:#ffffff0f;border:none;font-size:16px;line-height:1;color:var(--dim)}.sheet-close:hover{color:var(--text);border:none}.sheet{box-sizing:border-box}.sheet>*{max-width:100%;box-sizing:border-box}@media (min-width: 700px){.sheet{left:50%;right:auto;bottom:auto;top:50%;transform:translate(-50%,-50%);width:min(560px,92vw);max-height:min(78vh,calc(100dvh - 24px));border-radius:var(--radius-lg);border-bottom:1px solid var(--line);animation:scrim-in var(--t-med) var(--ease)}.sheet-handle{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.explore-root{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.stage{position:relative;flex:1;min-height:0}.explore-top{position:absolute;top:calc(env(safe-area-inset-top) + 10px);left:12px;right:12px;z-index:20;display:flex}.explore-search{position:relative;display:flex;align-items:center;gap:6px;flex:1;max-width:420px;border-radius:var(--radius-pill);padding:2px 12px 2px 6px;background:#2c3c56a8;border:1px solid rgba(255,255,255,.14)}.explore-search input[type=search]{flex:1;min-width:0;background:none;border:none;min-height:40px;font-size:15px;color:var(--text)}.explore-search input[type=search]::placeholder{color:#e2e8f0cc}.explore-search input[type=search]:focus-visible{outline:none}.explore-suggest{position:absolute;z-index:50;top:calc(100% + 6px);left:0;right:0;margin:0;padding:4px 0;list-style:none;border-radius:var(--radius);max-height:50vh;overflow-y:auto}.sky-loader{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;opacity:0;animation:loader-in .3s ease-out .25s forwards}@keyframes loader-in{to{opacity:1}}.sky-loader-trace{stroke-dasharray:260;animation:dipper-trace 3.4s ease-in-out infinite}@keyframes dipper-trace{0%{stroke-dashoffset:260}45%{stroke-dashoffset:0}62%{stroke-dashoffset:0}to{stroke-dashoffset:-260}}.sky-loader-polaris{transform-box:fill-box;transform-origin:center;animation:polaris-pulse 3.4s ease-in-out infinite}@keyframes polaris-pulse{0%,20%{opacity:.35;transform:scale(.8)}45%,62%{opacity:1;transform:scale(1.12)}to{opacity:.35;transform:scale(.8)}}@media (prefers-reduced-motion: reduce){.sky-loader-trace,.sky-loader-polaris{animation:none}.sky-loader{animation-delay:0ms;opacity:1}}.lag-tip{position:absolute;right:16px;bottom:var(--card-bottom, calc(var(--safe-bottom) + 136px));z-index:21;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-radius:14px;font-size:14px;max-width:min(480px,calc(100% - 32px))}.explore-bar{position:absolute;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom) + 76px);z-index:20;display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--radius-pill);max-width:calc(100% - 16px);white-space:nowrap}.explore-bar .explore-chip{background:none;border:none;min-height:40px;padding:6px 10px;font-size:14px;color:var(--text)}@media (hover: hover){.explore-bar .explore-chip:hover{color:var(--accent)}}.explore-clock{font-size:14px;color:var(--dim);padding:0 6px}@media (max-width: 699.98px){.explore-bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;grid-template-areas:"loc loc clock play" "fov gyro ruler gear";align-items:center;gap:0 2px;width:min(440px,calc(100% - 16px - var(--safe-left) - var(--safe-right)));max-width:none;box-sizing:border-box;padding:2px 6px;border-radius:22px}.explore-bar .explore-loc{grid-area:loc;justify-self:start;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}.explore-bar .explore-clock{grid-area:clock;justify-self:center}.explore-bar .explore-play{grid-area:play}.explore-bar .explore-fov{grid-area:fov;justify-self:start}.explore-bar .explore-gyro{grid-area:gyro}.explore-bar .explore-ruler{grid-area:ruler;justify-self:center}.explore-bar .explore-gear{grid-area:gear}}@media (min-width: 700px) and (max-width: 959.98px) and (min-height: 500px){.explore-search{max-width:520px}}.explore-search input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.explore-clear{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;padding:0;background:none;border:none;color:var(--dim);font-size:13px}@media (hover: hover){.explore-clear:hover{color:var(--text)}}.explore-suggest button{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;background:none;border:none;border-radius:0;color:inherit;cursor:pointer;padding:8px 12px;font:inherit;min-height:var(--tap-min)}.lag-dismiss{background:none;border:none;color:var(--dim);font-size:16px;min-height:0;padding:2px 6px}.info-sheet{position:absolute;left:8px;bottom:var(--card-bottom, calc(var(--safe-bottom) + 136px));width:min(420px,calc(100% - 16px));max-height:44%;overflow-y:auto;box-sizing:border-box;padding:14px;font-size:14px;color:var(--text);border-radius:16px;z-index:20;font-variant-numeric:tabular-nums}.info-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 10px;padding:3px 0}.info-row>:last-child{margin-left:auto}.info-toggle{background:none;border:none;color:inherit;cursor:pointer;padding:0;min-height:0;font:inherit;text-align:right;white-space:nowrap;text-decoration:underline dotted rgba(238,242,248,.45);text-underline-offset:3px}.info-sheet .info-close{background:none;border:none;color:inherit;cursor:pointer;font-size:18px;min-height:0;padding:0 4px}.info-sheet .info-star{position:absolute;top:10px;right:40px;background:none;border:none;font-size:18px;min-height:0;padding:0 6px}.loc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:var(--scrim);padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);box-sizing:border-box}.loc-panel{width:min(480px,calc(100% - 24px));max-height:calc(100dvh - 24px - var(--safe-top) - var(--safe-bottom));overflow-y:auto;padding:14px;box-sizing:border-box}.loc-map{width:100%;height:min(320px,max(160px,calc(100dvh - 380px)))}.location-picker .leaflet-bottom.leaflet-right{left:0}.location-picker .leaflet-control-attribution{max-width:100%;box-sizing:border-box;white-space:normal;text-align:right}@media (orientation: landscape) and (max-height: 499.98px){.info-sheet{left:auto;right:calc(12px + var(--safe-right));width:min(380px,46%);max-height:calc(100% - var(--card-bottom, 136px) - var(--safe-top) - 10px)}.sky-options-sheet{left:50%;right:auto;bottom:auto;top:50%;transform:translate(-50%,-50%);width:min(720px,calc(100vw - 32px - var(--safe-left) - var(--safe-right)));max-height:calc(100dvh - 16px - var(--safe-top) - var(--safe-bottom));border-radius:var(--radius-lg);border-bottom:1px solid var(--line);animation:scrim-in var(--t-med) var(--ease)}.sky-options-sheet .sheet-handle{display:none}.sky-options-sheet .vc-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}}.sheet-foot{position:sticky;z-index:1;margin-top:8px;padding-top:10px;background:var(--surface-2);bottom:calc(-1 * (var(--safe-bottom) + 16px));padding-bottom:calc(var(--safe-bottom) + 16px);margin-bottom:calc(-1 * (var(--safe-bottom) + 16px))}.quiet-link{background:none;border:none;color:var(--accent);padding:0 2px;min-height:0;font-size:13px}.quiet-link:hover{border:none;text-decoration:underline}.page{padding:0 var(--pad) 8px;max-width:760px;margin:0 auto}.page.with-tabs{padding-bottom:calc(env(safe-area-inset-bottom) + 88px)}.page-head{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:30;margin:calc(-1*env(safe-area-inset-top)) calc(-1 * var(--pad)) 4px;padding:calc(env(safe-area-inset-top) + 2px) var(--pad) 4px;background:var(--glass-tint);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4)}@supports not (backdrop-filter: blur(1px)){.page-head{background:#091522eb}}.page-head h1{font-size:22px;margin:0}.pane-head{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:12px;row-gap:2px;min-width:0}.pane-title{flex:1 1 auto;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pane-meta{flex:0 0 auto;white-space:nowrap;color:var(--dim)}.two-up{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}@media (min-width: 700px){.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}}.back-btn{width:44px;min-width:44px;height:44px;padding:0;border-radius:50%;background:#0d1b2c8c;border:1px solid var(--glass-hairline);font-size:18px;line-height:1}.back-btn:hover{border-color:var(--accent);color:var(--accent)}.card{background:#0d1b2c8c;-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);box-shadow:inset 0 1px #ffffff12,0 8px 28px #0006;padding:14px;margin:10px 0}@supports not (backdrop-filter: blur(1px)){.card{background:#0d1b2ceb}}.card>strong:first-child,.card>div:first-child>strong:first-child{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--dim)}@media (hover: hover){button.card:hover{border-color:var(--accent)}}button.card>strong:first-child{font-family:var(--font-display);font-size:15px;font-weight:var(--weight-display);text-transform:none;letter-spacing:0;color:var(--text)}.stat-strip{display:flex;gap:28px;flex-wrap:wrap}.stat b{display:block;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.stat b{white-space:nowrap}.stat-strip .stat b span.stat-num{font-size:1em;letter-spacing:normal;text-transform:none;color:inherit;white-space:nowrap}.stat-strip .stat b span.stat-num-long{font-size:.82em;letter-spacing:-.02em}.stat span{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--dim)}.accent-btn{background:#22d3ee14;border:1px solid rgba(34,211,238,.35);border-radius:var(--radius-pill);color:var(--accent);font-size:13px;min-height:40px;padding:6px 16px;box-sizing:border-box}.accent-btn:hover{background:#22d3ee29;border-color:var(--accent)}.pill{font-size:13px;padding:6px 14px;min-height:36px;background:var(--sky)}.pill[aria-pressed=true]{background:#22d3ee24}.meter{height:8px;background:var(--sky);border-radius:4px;overflow:hidden;margin-top:3px}.meter>i{display:block;height:100%;background:var(--ok)}.seg-meter{display:flex}.seg-meter>i{flex:0 0 auto}.flame-svg{overflow:visible;vertical-align:-.18em;margin-right:5px;filter:drop-shadow(0 0 5px rgba(255,138,48,.45))}.flame-svg .flame-body,.flame-svg .flame-core{transform-box:fill-box}.flame-svg .flame-body{transform-origin:50% 92%;animation:flame-sway 2.2s ease-in-out infinite}.flame-svg .flame-core{transform-origin:50% 96%;animation:flame-lick 1.3s ease-in-out infinite}@keyframes flame-sway{0%,to{transform:rotate(-1.8deg) scaleY(1)}35%{transform:rotate(2deg) scaleY(1.05)}70%{transform:rotate(-.8deg) scaleY(.97)}}@keyframes flame-lick{0%,to{transform:scaleY(1) scaleX(1)}50%{transform:scaleY(1.16) scaleX(.92)}}@media (prefers-reduced-motion: reduce){.flame-svg .flame-body,.flame-svg .flame-core{animation:none}}.freeze-svg{overflow:visible;vertical-align:-.18em;margin-right:5px;filter:drop-shadow(0 0 5px rgba(96,189,255,.45));animation:freeze-shiver 3.4s ease-in-out infinite}.freeze-svg .freeze-body,.freeze-svg .freeze-core{transform-box:fill-box}.freeze-svg .freeze-body{transform-origin:50% 92%;animation:freeze-breathe 3.6s ease-in-out infinite}.freeze-svg .freeze-core{transform-origin:50% 60%;animation:freeze-glint 3.6s ease-in-out infinite}@keyframes freeze-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes freeze-glint{0%,to{opacity:.75}50%{opacity:1}}@keyframes freeze-shiver{0%,82%,to{transform:rotate(0) translate(0)}85%{transform:rotate(-3.5deg) translate(-.6px)}88%{transform:rotate(3deg) translate(.6px)}91%{transform:rotate(-2deg) translate(-.4px)}94%{transform:rotate(1.2deg) translate(.3px)}97%{transform:rotate(0) translate(0)}}@media (prefers-reduced-motion: reduce){.freeze-svg,.freeze-svg .freeze-body,.freeze-svg .freeze-core{animation:none}}.xp-svg{overflow:visible;vertical-align:-.18em;margin-right:5px;filter:drop-shadow(0 0 5px rgba(255,196,77,.4));animation:xp-zap 2.8s ease-in-out infinite}.xp-svg .xp-body,.xp-svg .xp-core{transform-box:fill-box}.xp-svg .xp-core{animation:xp-crackle 2.8s ease-in-out infinite}@keyframes xp-crackle{0%,82%,to{opacity:.7}88%{opacity:1}94%{opacity:.85}}@keyframes xp-zap{0%,84%,to{transform:scale(1) rotate(0)}87%{transform:scale(1.14) rotate(-7deg)}90%{transform:scale(.97) rotate(4deg)}93%{transform:scale(1.07) rotate(-2deg)}96%{transform:scale(1) rotate(0)}}@media (prefers-reduced-motion: reduce){.xp-svg,.xp-svg .xp-core{animation:none}}.row-list{list-style:none;padding:0;margin:0}.row-list>li{padding:10px 4px;border-bottom:1px solid var(--line)}.about-row{display:flex;align-items:center;width:100%;background:none;border:none;border-radius:0;padding:10px 4px;font-family:var(--font-body);font-weight:400;font-size:15px;text-align:left}@media (hover: hover){.about-row:hover{border:none;color:var(--accent)}}.dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.lib-kind-row{display:flex;gap:6px;flex-wrap:wrap}.lib-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lib-kinds .pill{width:100%;padding-left:8px;padding-right:8px}@media (min-width: 560px){.lib-kinds{grid-template-columns:repeat(4,minmax(0,1fr))}}.lib-filter-btn{gap:10px;min-height:48px;margin:8px 0 0;padding:8px 14px;border-radius:var(--radius);background:#0d1b2c8c;border:1px solid rgba(255,255,255,.08)}.lib-filter-btn:hover{border:1px solid rgba(255,255,255,.08)}.lib-filter-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;line-height:1.3}.lib-filter-summary{color:var(--dim);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-sort-head{margin:16px 2px 6px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--dim)}.lib-sort-list{padding:0 14px;margin:0}.lib-sort-list .about-row{min-height:48px;color:var(--text)}.lib-sort-list .about-row+.about-row{border-top:1px solid var(--line)}.lib-sort-list .about-row[aria-pressed=true]{color:var(--accent);background:none}.lib-sort-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.lib-vis-form{padding:6px 12px 8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px}.lib-vis-field{display:flex;flex-direction:column;gap:1px;min-width:0;font-size:13px;line-height:16px;color:var(--dim)}.lib-vis-field input{width:100%;min-width:0;box-sizing:border-box}.lib-vis-time{display:flex;align-items:center;gap:4px}.lib-vis-time input{flex:1 1 0}.lib-vis-form input[aria-invalid=true]{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}.lib-vis-hint{grid-column:1 / -1;margin:2px 0 0;font-size:13px;color:var(--bad)}.lib-list-two-up{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}.lib-list-two-up .lib-empty{grid-column:1 / -1}.lib-list{container-type:inline-size}.lib-legend{display:grid;grid-template-columns:repeat(2,auto);justify-content:center;gap:6px 22px;padding:11px 0 10px;border-bottom:1px solid rgba(255,255,255,.07);font-size:13px;color:var(--dim);list-style:none}@container (min-width: 400px){.lib-legend{grid-template-columns:repeat(4,auto);gap:6px 16px}}.lib-legend-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.lib-legend .dot{width:8px;height:8px}.lib-list-two-up .lib-legend{grid-column:1 / -1}.lib-detail-head{flex:1 1 auto;align-items:center}.lib-detail-head .pane-title{flex:0 1 auto}.lib-detail-head .pane-title{white-space:normal;overflow-wrap:anywhere;line-height:1.2}.lib-detail-page .fig-canvas{width:min(100%,calc(max(260px,100dvh - 260px) * var(--fig-ar, 1.333)))}.info-toggle{padding:0;min-height:0}.lib-info .info-row{flex-wrap:wrap;row-gap:0}.lib-info .info-row>:last-child{margin-left:auto}.badge-grid{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:8px}.badge-row{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#ffffff08;opacity:.72}.badge-row .badge-blurb{color:var(--dim)}.badge-row[data-earned]{opacity:1;border-color:#22d3eebf;background:linear-gradient(130deg,#22d3ee2e,#a78bfa1f);box-shadow:0 0 16px #22d3ee38,inset 0 1px #ffffff1f}.badge-row[data-earned] strong{color:#fff}.badge-row[data-earned] .badge-blurb{color:var(--text)}.badge-earned{margin-left:auto;width:19px;height:19px;border-radius:50%;background:var(--ok);color:#06121d;font-size:13px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.badge-xp{font-size:12.5px;color:#f2c14e}.week-strip{display:flex;gap:6px;margin-top:2px}.week-day{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0}.week-label{font-size:12.5px;font-weight:700;letter-spacing:.05em;color:var(--dim)}.week-day[data-today] .week-label{color:var(--accent)}.week-dot{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:2px solid transparent}.week-day[data-kind=practiced] .week-dot{background:linear-gradient(180deg,#ffc566,#f08c1a);box-shadow:0 2px 10px #f08c1a59,inset 0 1px #ffffff59}.week-day[data-kind=frozen] .week-dot{background:linear-gradient(180deg,#a8dcff,#3ba7e8);box-shadow:0 2px 10px #3ba7e859,inset 0 1px #ffffff59}.week-day[data-kind=missed] .week-dot{border-color:#a3aec280;background:#ffffff08}.week-day[data-kind=future] .week-dot{border:2px dashed rgba(163,174,194,.22)}.week-day[data-today] .week-dot{outline:2px solid var(--accent);outline-offset:3px}.week-day[data-today][data-kind=missed] .week-dot{border-color:#22d3ee99}.progress-strips .progress-stats{display:grid;grid-template-columns:repeat(3,minmax(min-content,1fr));gap:12px}.progress-strips .stat>span{display:block;text-wrap:balance}.progress-page .drill-list{max-height:min(460px,60vh);overflow-y:auto}.sort-pills{display:flex;flex-wrap:wrap;gap:8px}@media (max-width: 379px){.sort-pills{gap:6px}.sort-pills .pill{padding-left:8px;padding-right:8px}}@media (min-width: 700px){.progress-strips{display:grid;grid-template-columns:3fr 2fr;gap:12px;margin:10px 0}.progress-strips>.card{margin:0}.progress-strips>.card+.card{grid-template-columns:repeat(2,minmax(0,1fr))}}button.row-star{background:none;border:none;padding:2px 4px;min-height:0;font-size:16px;line-height:1;color:var(--dim)}button.row-star[aria-pressed=true]{color:var(--star);background:none}button.row-star:active{background:none}.primary-btn{background:var(--aurora);border:none;color:#06121f;font-weight:650;box-shadow:0 0 24px #22d3ee59}.primary-btn:hover{filter:brightness(1.08)}.primary-btn:active{transform:scale(.97);filter:brightness(.96)}.home-page{max-width:640px}.home-greeting{font-family:var(--font-display);font-size:30px;font-weight:var(--weight-display);margin:10px 0 14px;letter-spacing:-.01em}.home-hero{display:block;width:100%;padding:0;margin:0 0 12px;background:var(--sky);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;position:relative;cursor:pointer;text-align:left}@media (hover: hover){.home-hero:hover{border-color:var(--accent)}}.home-hero:active{transform:scale(.99)}.mini-sky{width:100%}.home-hero-caption{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:baseline;gap:10px;padding:26px 14px 10px;background:linear-gradient(#05080f00,#05080ff0 65%)}.home-hero-sub{text-transform:none;letter-spacing:0;color:var(--dim)}.home-hero-cta{margin-left:auto;color:var(--accent);font-size:13px;font-weight:600}.home-hero-caption{flex-wrap:wrap;row-gap:2px}.home-page .mini-sky{aspect-ratio:1.7;min-height:170px;max-height:min(460px,45vh)}@media (max-width: 359.98px){.home-page .home-hero-caption{position:static;gap:8px;padding:4px 12px 10px;background:#04050a}}@media (min-width: 700px){.home-page{max-width:760px}.home-touch-split{margin:12px 0}.home-touch-split .tile-grid{grid-template-columns:minmax(0,1fr);margin:0}.home-touch-progress{margin:0}}.home-touch-progress{display:flex;flex-direction:column;justify-content:space-between;gap:12px}.home-touch-progress .stat-strip{gap:8px;justify-content:space-around;flex-wrap:nowrap}.home-touch-progress .stat{text-align:center;min-width:0}.home-touch-progress .stat b{font-size:26px;display:flex;justify-content:center;align-items:center;gap:2px}.home-touch-progress .stat b svg{width:26px;height:auto}.home-touch-progress .stat span{white-space:nowrap;font-size:12px}.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}@media (max-width: 340px){.tile-grid{grid-template-columns:1fr}}@media (min-width: 700px){.tile-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}.tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;min-height:72px;text-align:left;white-space:normal;background:#0d1b2c8c;-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);box-shadow:inset 0 1px #ffffff12,0 8px 28px #0006}@supports not (backdrop-filter: blur(1px)){.tile{background:#0d1b2ceb}}.tile>strong{font-family:var(--font-display);font-weight:var(--weight-display);font-size:16px}@media (hover: hover){.tile:hover{border-color:var(--accent)}}.tile:active{transform:scale(.98)}.tile .caption{text-transform:none;letter-spacing:0}.tile-row{flex-direction:row;align-items:center;justify-content:space-between;gap:8px;min-height:54px}.tile-arrow{color:var(--dim);font-size:19px;line-height:1}.tile-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.tile-text>strong{font-family:var(--font-display);font-weight:var(--weight-display);font-size:16px}.home-links{display:flex;gap:18px;margin-top:16px;flex-wrap:wrap}.session-root{display:flex;flex-direction:column;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}.session-head{display:flex;align-items:center;gap:14px;padding:12px 14px}.session-main{flex:1;min-width:0;width:100%;max-width:860px;margin:0 auto;box-sizing:border-box}.session-main-wide{max-width:1000px}.session-actions{display:flex;align-items:center;gap:12px;padding:8px 12px;flex-wrap:wrap}.sky-stage{width:100%;max-width:800px;height:min(72vw,560px);margin:0 auto}@supports (height: 100dvh){.sky-stage{height:clamp(min(72vw,560px),calc(100dvh - 400px),max(560px,100vw))}}@media (orientation: portrait) and (max-width: 599.98px){.constellation-surface>.surface-head{min-height:91px;align-content:flex-start;box-sizing:border-box}}.fig-canvas{display:block;width:100%;height:auto;margin:0 auto;border-radius:12px}.chart-canvas{width:100%;max-width:700px;aspect-ratio:1 / 1;height:auto}@media (orientation: landscape) and (max-height: 499.98px){.session-main{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,360px);grid-template-rows:auto auto 1fr;column-gap:12px;align-content:start}.session-main>:only-child{grid-column:1 / -1}.surface-split{display:contents}.surface-head{grid-column:2;grid-row:1;padding-top:8px}.surface-canvas{grid-column:1;grid-row:1 / span 3;min-width:0}.surface-side{grid-column:2;grid-row:2;min-width:0}.session-actions{grid-column:2;grid-row:3;align-items:flex-start;align-content:flex-start}.sky-stage{height:calc(100dvh - 86px);max-width:none;margin:0}.surface-split .surface-canvas>*{width:100%;min-width:0}.surface-split .fig-canvas{--fig-h: min(320px, calc(100dvh - 160px) );width:min(100%,calc(var(--fig-h) * var(--fig-ar, 1.333)));height:auto;max-width:100%}.chart-canvas{max-width:min(700px,calc(100dvh - 150px))}}@media (min-width: 960px) and (min-height: 500px){:root{--sidebar-w: 184px;--font-display: "Space Grotesk", "Nunito", system-ui, -apple-system, sans-serif;--weight-display: 600;--radius: 10px;--radius-lg: 14px;--squeeze: max(0px, 1280px - 100vw);--gutter: clamp(24px, calc(36px - var(--squeeze) * .0375), 36px);--pane-gap: clamp(16px, calc(24px - var(--squeeze) * .025), 24px);--session-side-w: clamp(300px, calc(420px - var(--squeeze) * .375), 420px)}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);z-index:35;display:flex;flex-direction:column;gap:2px;padding:20px 12px 16px;box-sizing:border-box;background:#070e1899;-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border-right:1px solid rgba(255,255,255,.08)}@supports not (backdrop-filter: blur(1px)){.sidebar{background:#070e18f0}}.side-brand{display:flex;align-items:center;gap:10px;padding:2px 12px 20px}.side-brand svg{color:var(--accent)}.side-item{display:flex;align-items:center;gap:12px;width:100%;padding:0 12px;min-height:44px;border-radius:12px;background:none;border:none;color:var(--dim);font-size:15px;text-align:left}.side-item svg{flex:0 0 auto}@media (hover: hover){.side-item:hover{color:var(--text);background:#ffffff0a;border:none}}.side-item[aria-current=page]{color:var(--accent);background:#22d3ee1f}.side-sep{height:1px;background:#ffffff14;margin:10px 12px}.side-spacer{flex:1}.app-main{margin-left:var(--sidebar-w);min-width:0}.app-main .with-tabs{padding-bottom:24px}.app-main .explore-root{left:var(--sidebar-w)}.app-main .explore-bar{bottom:20px;left:auto;right:20px;transform:none}.app-main .lag-tip{right:20px;bottom:76px}.app-main .info-sheet{left:16px;bottom:16px}@media (max-width: 1179.98px){.app-main .info-sheet{bottom:var(--card-bottom, 78px)}}@media (max-width: 1279.98px) and (pointer: coarse){.app-main .info-sheet{bottom:var(--card-bottom, 78px)}}.app-main .page-head{position:static;margin:0 0 6px;padding:18px 0 4px;background:none;-webkit-backdrop-filter:none;backdrop-filter:none}.app-main .page-head h1{font-size:28px}.app-main>.page{margin:0;padding-left:var(--gutter);padding-right:var(--gutter);box-sizing:content-box}.main-wide{padding:26px var(--gutter) 32px;max-width:1480px;margin:0 auto;box-sizing:border-box}.main-head{display:flex;align-items:baseline;gap:14px;margin:0 0 18px}.main-head h1{font-size:28px;margin:0}.panes{display:flex;gap:var(--pane-gap);align-items:flex-start}.pane-list{--pane-list-w: clamp(var(--pane-list-min, 272px), calc(var(--pane-list-max, 432px) - var(--squeeze) * .45), var(--pane-list-max, 432px));display:flex;flex-direction:column;gap:10px;width:var(--pane-list-w);flex:0 0 var(--pane-list-w);min-width:0}.pane-detail{flex:1 1 0;min-width:var(--pane-detail-min, 320px)}.home-desktop-grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,calc(360px - var(--squeeze) * .1875),360px);gap:var(--pane-gap);grid-template-rows:minmax(max(480px,calc(100vh - 140px)),auto)}.home-hero-desktop{height:100%;margin:0}.home-hero-desktop .mini-sky{position:absolute;top:0;right:0;bottom:0;left:0}.home-col{display:flex;flex-direction:column;gap:16px;min-height:0}.home-col-card{margin:0;padding:14px 16px}.home-progress-card{flex:1;display:flex;flex-direction:column}.home-progress-card .stat-strip{flex:1;align-content:center}.stat-strip-lg{gap:14px 12px}.stat-strip-lg .stat{flex:1 1 28%;text-align:center}.stat-strip-lg .stat b{font-size:30px}.stat-strip-lg .stat span{font-size:13px;white-space:nowrap}.home-rows{display:flex;flex-direction:column;margin-top:4px}.home-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:none;border:none;border-radius:0;padding:9px 2px;min-height:54px;border-bottom:1px solid var(--line);text-align:left;white-space:normal}.home-row:last-child{border-bottom:none}@media (hover: hover){.home-row:hover{border-color:var(--line);color:var(--accent)}}.home-row strong{display:block;font-family:var(--font-display);font-weight:var(--weight-display);font-size:15px;color:var(--text)}.home-row-sub{display:block;font-size:12.5px;color:var(--dim);margin-top:1px}.home-progress-stats{margin-top:10px}.home-progress-btn{width:100%;margin-top:14px}@media (max-height: 740px){.home-main{padding-top:14px;padding-bottom:14px}.home-main>.main-head{margin-bottom:10px}.home-main>.main-head h1{font-size:24px}.home-desktop-grid{grid-template-rows:minmax(max(400px,calc(100vh - 76px)),auto)}.home-col{gap:10px}.home-col-card{padding:10px 16px}.home-row{padding:5px 2px;min-height:44px}.home-row-sub{line-height:1.3}.home-progress-card .stat-strip-lg .stat b{font-size:26px}.home-progress-stats{margin-top:6px}.home-progress-btn{margin-top:10px}}.practice-list{--pane-list-max: 372px}.pane-caption{margin:6px 2px 0}.pane-caption:first-child{margin-top:0}.practice-list+.pane-detail{margin-top:28px}.progress-list+.pane-detail{margin-top:10px}.mode-item{display:flex;align-items:center;gap:10px;width:100%;margin:0;padding:13px 16px;min-height:64px;text-align:left;white-space:normal;border-radius:var(--radius)}.mode-item strong{font-family:var(--font-display);font-weight:var(--weight-display);font-size:15px;color:var(--text);display:block}.mode-sub{display:block;font-weight:400;font-size:12.5px;color:var(--dim);font-family:var(--font-body);margin-top:2px}button.mode-item[aria-pressed=true]{color:var(--text)}.detail-cols{display:flex;gap:24px;align-items:flex-start}.options-card{min-width:0;margin:0;padding:20px 24px 24px}.options-sub{color:var(--dim);font-size:13px;margin:2px 0 0}.aside-col{width:300px;flex:0 0 300px;display:flex;flex-direction:column;gap:16px}.library-page{display:flex;flex-direction:column;height:calc(100vh - var(--safe-top));height:calc(100dvh - var(--safe-top));padding-bottom:0}.library-page>.main-head{flex:0 0 auto}.library-page>.panes{flex:1 1 0;min-height:0}.library-list{--pane-list-max: 432px;align-self:stretch;min-height:0;container-type:inline-size}@container (max-width: 409.98px){.lib-kind-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.lib-kind-row .pill{width:100%;padding-left:8px;padding-right:8px}.lib-sort-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px}.lib-sort-row .lib-sort-label{display:none}.lib-sort-row .pill{padding-left:4px;padding-right:4px}}.library-list>*{flex-shrink:0}.library-list .lib-list{flex:0 1 auto;margin:0 0 calc(34.4px + var(--safe-bottom));overflow-y:auto;min-height:200px}.lib-row{border-radius:10px;padding:8px;margin:2px -8px;width:calc(100% + 16px)}@media (hover: hover){.lib-row:hover{color:var(--text);background:#ffffff0a}}.lib-row-selected,.lib-row-selected:hover{background:#22d3ee1a}.library-detail{margin:0;max-width:640px;padding:20px 22px 22px;max-height:calc(100vh - 140px);overflow-y:auto;box-sizing:border-box}.pill{font-size:14px}.settings-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:51;width:min(920px,94vw);height:min(720px,92vh);border-radius:18px;display:flex;overflow:hidden}.settings-modal-body .card{margin:0 0 10px;padding:12px 16px 14px}.settings-modal-nav{width:190px;flex:0 0 190px;display:flex;flex-direction:column;gap:2px;padding:18px 10px 14px;border-right:1px solid rgba(255,255,255,.08);background:#070e1873}.settings-modal-tab{background:none;border:none;border-radius:10px;text-align:left;padding:0 12px;min-height:38px;font-size:15px;color:var(--dim)}@media (hover: hover){.settings-modal-tab:hover{color:var(--text);background:#ffffff0d}}.settings-modal-tab[aria-pressed=true]{color:var(--accent);background:#22d3ee1f}.settings-modal-body{position:relative;flex:1;min-width:0;overflow-y:auto;padding:46px 22px 22px}.settings-modal-close{position:absolute;top:8px;right:10px;z-index:2;background:none;border:none;color:var(--dim);font-size:22px;min-height:0;padding:4px 8px}@media (hover: hover){.settings-modal-close:hover{color:var(--text)}}.progress-list{--pane-list-max: 432px;--pane-list-min: 320px}.progress-list+.pane-detail{position:sticky;top:16px}.progress-list .stat-strip-lg{column-gap:clamp(8px,calc(12px - var(--squeeze) * .0125),12px);flex-wrap:nowrap}.progress-list .stat-strip-lg .stat b{font-size:clamp(24px,calc(30px - var(--squeeze) * .01875),30px)}.progress-list .stat-strip-lg .stat span{font-size:clamp(11px,calc(13px - var(--squeeze) * .00625),13px)}.progress-list .stat-strip-lg .stat b svg{width:clamp(24px,calc(30px - var(--squeeze) * .01875),30px);height:auto}.progress-detail{margin:0;padding:20px 22px 14px;max-height:calc(100vh - 140px);box-sizing:border-box;display:flex;flex-direction:column}.progress-detail .row-list{overflow-y:auto;min-height:0}.progress-detail .badges-body{display:flex;flex-direction:column;flex:1;min-height:0}.progress-detail .badge-grid{overflow-y:auto;min-height:0;padding-right:4px;padding-bottom:4px}.skill-row{display:block;background:none;border:none;border-radius:10px;padding:10px;margin:2px -10px;width:calc(100% + 20px);text-align:left;min-height:44px;white-space:normal}@media (hover: hover){.skill-row:hover{background:#ffffff0a}}.skill-row[aria-pressed=true],.skill-row[aria-pressed=true]:hover{background:#22d3ee1a}.session-main{display:grid;grid-template-columns:minmax(0,1.6fr) var(--session-side-w);grid-template-rows:auto auto 1fr;column-gap:20px;align-content:start;max-width:1360px;padding:0 24px 16px;box-sizing:border-box}.session-main>:only-child{grid-column:1 / -1}.surface-split{display:contents}.surface-head{grid-column:2;grid-row:1;padding-top:8px}.surface-canvas{grid-column:1;grid-row:1 / span 3;min-width:0;display:flex;justify-content:center;align-items:flex-start;container-type:inline-size}.surface-side{grid-column:2;grid-row:2;min-width:0;background:#0d1b2c8c;-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);box-shadow:inset 0 1px #ffffff12,0 8px 28px #0006;padding:18px;font-size:15px}.surface-side .pill{font-size:15px}.session-actions{grid-column:2;grid-row:3;align-items:flex-start;align-content:flex-start;padding:12px 0 8px 18px}.session-main .sky-stage{height:clamp(320px,calc(100dvh - 150px),760px);height:clamp(320px,min(calc(100dvh - 150px),115cqw),760px);max-width:none;margin:0}.surface-split .surface-canvas>*{width:100%;min-width:0}.surface-split .fig-canvas{--fig-h: min(560px, calc(100dvh - 210px) );width:min(100%,calc(var(--fig-h) * var(--fig-ar, 1.3077)));height:auto;max-width:100%}.chart-canvas{max-width:min(700px,calc(100dvh - 170px))}.charts-list{--pane-list-max: 420px}.charts-page .chart-paper{max-width:min(620px,calc((100vh - 160px)*.843))}}.time-field{padding:8px 4px;text-align:center;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.time-field::-webkit-outer-spin-button,.time-field::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.charts-lat,.charts-lon{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.charts-lat::-webkit-outer-spin-button,.charts-lat::-webkit-inner-spin-button,.charts-lon::-webkit-outer-spin-button,.charts-lon::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.charts-settings{margin:0;padding:16px 18px 18px;display:flex;flex-direction:column;gap:14px}.charts-sec{display:flex;flex-direction:column;gap:8px}.charts-field{display:inline-flex;align-items:center;gap:6px;font-size:14px}.charts-coords{display:flex;flex-wrap:wrap;gap:8px 16px}.charts-lat{width:92px}.charts-lon{width:96px}.charts-row{display:flex;flex-wrap:wrap;gap:8px}.charts-place{font-size:13px;color:var(--dim)}.charts-when{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.charts-clock{display:inline-flex;align-items:center;gap:4px;font-size:14px}.charts-clock .time-field{width:46px}.charts-clock .charts-minute{margin-left:4px}.charts-unit{color:var(--dim);font-size:13px}.charts-mag{display:flex;align-items:center;gap:10px}.charts-mag input{flex:1}.charts-mag-value{font-size:14px;min-width:74px;text-align:right}.charts-save{flex:1;min-width:120px}.charts-print{flex:1;min-width:100px}@media screen{.charts-compact .charts-body{display:flex;flex-direction:column;gap:18px}.charts-compact .charts-stage{display:flex;flex-direction:column;gap:12px;width:100%;max-width:max(min(100%,360px),calc((100dvh - 230px)*.843));margin:0 auto}.charts-compact .charts-side{flex-wrap:nowrap}.charts-compact .charts-side .pill{flex:1 1 0;min-width:0}.charts-compact .charts-actions{flex-wrap:nowrap}.charts-compact .charts-save,.charts-compact .charts-print{min-width:0}.charts-compact .charts-settings{gap:18px}.charts-zoom{position:relative}.charts-zoom-view{aspect-ratio:700 / 830;overflow:hidden;background:#fff;border-radius:var(--radius-lg);box-shadow:0 12px 34px #00000073}.charts-zoom-view .chart-paper{border-radius:0;box-shadow:none}.charts-zoom-view.is-zoomed{overflow:auto;overscroll-behavior:contain}.charts-zoom-view.is-zoomed .charts-paper-stack{width:200%}.charts-zoom-btn{position:absolute;right:10px;bottom:10px;width:44px;min-width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#0d1b2cdb;border:1px solid rgba(255,255,255,.16);box-shadow:0 4px 14px #00000059}.charts-zoom-wide{max-width:min(620px,calc((100vh - 160px)*.843))}.charts-page .charts-zoom-wide .chart-paper{max-width:none}.charts-compact .charts-search{scroll-margin-top:calc(env(safe-area-inset-top) + 72px)}.charts-compact .charts-coords{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.charts-compact .charts-field{flex-direction:column;align-items:stretch;gap:4px;font-size:13px;color:var(--dim)}.charts-compact .charts-lat,.charts-compact .charts-lon{width:100%;color:var(--text)}.charts-compact .charts-row>.pill{flex:1 1 0}.charts-compact .charts-date{flex:1 1 100%;min-width:0}.charts-compact .charts-clock .time-field{width:56px}.charts-compact .charts-when>.pill{margin-left:auto}.charts-compact .charts-mag-value{min-width:0;white-space:nowrap}@media (min-width: 700px){.charts-compact .charts-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;align-items:start}.charts-compact .charts-settings>:first-child{grid-row:span 2}}@media (orientation: landscape) and (max-height: 499.98px){.charts-compact .charts-body{display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);gap:16px;align-items:start}.charts-compact .charts-stage{max-width:none;margin:0}.charts-compact .charts-settings{display:flex;align-items:stretch}}}.chart-paper{background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 12px 34px #00000073}.chart-paper svg{display:block;width:100%;height:auto}.chart-paper-hidden{display:none}.charts-suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:10;margin:0;padding:4px;list-style:none;max-height:260px;overflow-y:auto;background:var(--surface);border:1px solid rgba(255,255,255,.12)}.charts-suggest li{padding:0}.charts-suggest button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;border-radius:8px;color:inherit;font:inherit;padding:8px 10px;min-height:0}@media (hover: hover){.charts-suggest button:hover{background:#ffffff0f}}.charts-suggest button:has(>.charts-suggest-coords){flex-wrap:wrap;row-gap:0}.charts-suggest-name{min-width:0;white-space:normal}.charts-suggest-coords{margin-left:auto;flex:none;white-space:nowrap;color:var(--dim);font-size:13px}.streak-chip{display:inline-flex;align-items:center;gap:5px;font-size:15px;animation:streak-pop .42s cubic-bezier(.34,1.56,.64,1)}.streak-chip b{font-weight:700;color:#facc15}@keyframes streak-pop{0%{transform:scale(.4)}60%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes flame-flicker{0%{transform:scale(1) rotate(-4deg)}to{transform:scale(1.14) rotate(4deg)}}@media (prefers-reduced-motion: reduce){.streak-chip{animation:none}}.explore-bar .explore-chip[aria-pressed=true]{color:var(--accent)}.explore-bar .explore-gyro{display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:var(--radius-pill)}.explore-bar .explore-gyro .gyro-icon{flex:none}.explore-bar .explore-gyro.gyro-tracking{background:#22d3ee29}.explore-bar .explore-gyro.gyro-requesting .gyro-icon{animation:gyro-pulse .9s ease-in-out infinite alternate}.explore-bar .explore-gyro.gyro-denied,.explore-bar .explore-gyro.gyro-unavailable{opacity:.55}@keyframes gyro-pulse{0%{opacity:.35}to{opacity:1}}.lag-tip.gyro-notice{right:auto;left:50%;transform:translate(-50%);width:min(440px,calc(100% - 32px));max-width:none;box-sizing:border-box}@media (prefers-reduced-motion: reduce){.explore-bar .explore-gyro.gyro-requesting .gyro-icon{animation:none}}@media (hover: hover) and (pointer: fine){:root{--tap-min: 36px}button{min-height:36px;padding:6px 16px;font-weight:600}.primary-btn{min-height:44px;font-weight:650}input,select,textarea{min-height:36px;font-size:15px}.side-item{min-height:38px}.tile-arrow{transition:transform var(--t-fast) var(--ease)}.home-row:hover,.mode-item:hover,.about-row:hover{background:#ffffff0a}.home-row:hover .tile-arrow,.about-row:hover .tile-arrow,.tile:hover .tile-arrow{transform:translate(3px)}}@media not all and (hover: hover) and (pointer: fine){.pill{min-height:44px;min-width:44px}.step-chips>.caption{flex-basis:100%}.step-submit{position:sticky;bottom:0;z-index:2;padding-bottom:calc(8px + var(--safe-bottom, 0px))!important;pointer-events:none}.step-submit>*{pointer-events:auto}.accent-btn{min-height:44px}.sheet-close{width:44px;min-width:44px;height:44px;min-height:44px}.explore-bar .explore-chip{min-height:44px;min-width:44px}.explore-bar .explore-gear{font-size:20px}.explore-go{min-width:44px}.explore-search{padding-top:0;padding-bottom:0}.explore-search input[type=search]{min-height:44px}.explore-suggest button{align-items:center}.explore-clear{min-width:44px;min-height:44px;font-size:15px}.lag-dismiss{min-width:44px;min-height:44px}.info-row-toggle{padding:0}.info-toggle{min-height:44px}.info-sheet .info-close{min-width:44px;min-height:44px;margin:-12px -12px -12px 0;padding:0}.info-sheet .info-star{min-width:44px;min-height:44px;top:2px;right:50px;padding:0}.location-picker .leaflet-container .leaflet-bar a{width:44px;height:44px;line-height:44px}.quiet-link{min-height:44px}button.row-star{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.drill-list>li{padding-top:2px;padding-bottom:2px}.tour-row .tour-skip,.tour-row .tour-next{min-height:44px}.settings-modal-close{min-width:44px;min-height:44px}.settings-modal-tab{min-height:44px}.settings-modal-body{padding-top:58px}.hit-slop{position:relative}.hit-slop:after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}.charts-suggest button{min-height:44px}.lib-info .info-row{align-items:center}.lib-info .info-toggle,input,select{min-height:44px}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0}input[type=range]{min-height:44px}label:has(>input[type=checkbox]),label:has(>input[type=radio]){min-height:44px}}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70}.tour-catcher{position:absolute;top:0;right:0;bottom:0;left:0}.tour-dim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0408129e;pointer-events:none}.tour-hole{position:absolute;border-radius:12px;pointer-events:none;box-shadow:0 0 0 9999px #0408129e;outline:1.5px solid rgba(34,211,238,.65);transition:left .3s ease,top .3s ease,width .3s ease,height .3s ease}.tour-card{position:absolute;box-sizing:border-box;margin:0;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;padding:16px 18px;background:#0d1b2cf5;box-shadow:0 18px 50px #00000080}.tour-card p{margin:8px 0 14px;color:var(--dim);font-size:14.5px;line-height:1.5}.tour-row{display:flex;align-items:center;gap:12px}.tour-skip{background:none;border:none;color:var(--dim);font-size:13.5px;padding:6px 0;min-height:0}.tour-count{margin-left:auto;color:var(--dim);font-size:12.5px}.tour-next{padding:8px 22px;min-height:36px}@media (prefers-reduced-motion: reduce){.tour-hole{transition:none}}.sky-load-error{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px var(--pad);text-align:center;color:var(--text)}.sky-load-error p{margin:0;font-size:16px}.storage-notice{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 84px);left:50%;transform:translate(-50%);width:min(560px,calc(100vw - 2 * var(--pad)));box-sizing:border-box;z-index:90;display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:var(--radius);background:var(--surface-3);border:1px solid var(--line);box-shadow:0 8px 28px #00000073;color:var(--text);font-size:14px;line-height:1.45}.storage-notice p{margin:0;flex:1}.storage-notice button{flex:none;background:none;border:0;color:var(--dim);font-size:18px;line-height:1;padding:2px 4px;min-height:0;cursor:pointer}.storage-notice button:hover{color:var(--text)}@media (min-width: 960px) and (hover: hover) and (pointer: fine){.storage-notice{bottom:24px;left:calc(var(--sidebar-w, 184px) + (100vw - var(--sidebar-w, 184px)) / 2)}}.charts-pdf-error{margin:6px 0 0;font-size:13px;color:var(--bad)}@media print{.sidebar,.tab-bar,.charts-chrome{display:none!important}.app-main{margin-left:0!important}body{background:#fff!important}.charts-page{padding:0!important;max-width:none!important}.charts-page .panes{display:block!important}.chart-paper,.chart-paper-hidden{display:block!important;max-width:none!important;border-radius:0;box-shadow:none;overflow:visible}.chart-paper-blank{page-break-after:always;break-after:page}}
