:root{--bg:#02040a;--glass:#0a101c85;--glass-strong:#0a101cdb;--line:#a0c8ff24;--text:#e9f0fb;--muted:#8d9bb3;--accent:#7fd3ff;--warm:#ffb46b;--font:"Manrope", -apple-system, "SF Pro Display", "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none}button{font:inherit;color:inherit}a{color:var(--accent)}canvas#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{opacity:0;pointer-events:none!important}#labels{pointer-events:none;z-index:5;position:fixed;inset:0}.label3d{white-space:nowrap;color:#cbd6e6;text-shadow:0 1px 10px #000000e6;will-change:transform, opacity;align-items:center;gap:8px;font-size:12px;display:flex;position:absolute;top:0;left:0;transform:translate(-9999px)}.label3d:before{content:"";opacity:.5;background:currentColor;width:18px;height:1px}.label3d b{font-family:var(--mono);color:var(--text);font-weight:600}@media (width<=720px){.label3d{font-size:10.5px}.label3d span{display:none}}#loader{z-index:50;background:radial-gradient(at 50% 40%,#0c1830 0%,#02040a 70%);place-items:center;transition:opacity .9s;display:grid;position:fixed;inset:0}.loader-inner{text-align:center;width:min(440px,86vw)}.loader-mark{width:84px;height:84px;margin:0 auto 26px;animation:2.4s ease-in-out infinite pulse;position:relative}.loader-mark:before,.loader-mark:after{content:"";background:linear-gradient(#9be3ff,#4fa8ff);border-radius:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loader-mark:before{width:14px;height:84px}.loader-mark:after{width:84px;height:14px}@keyframes pulse{50%{filter:drop-shadow(0 0 22px #78c8ffcc)}}#loader h1{letter-spacing:.02em;margin:0 0 8px;font-size:30px;font-weight:800}.loader-sub{color:var(--muted);margin:0;font-size:13.5px;line-height:1.5}.tip{cursor:help;pointer-events:auto;text-underline-offset:3px;outline:none;-webkit-text-decoration:underline dotted #ffffff59;text-decoration:underline dotted #ffffff59;position:relative}.tip:after{content:attr(data-tip);z-index:30;border:1px solid var(--line);width:max-content;max-width:260px;color:var(--text);font:400 12px/1.45 var(--font);letter-spacing:0;text-transform:none;text-align:left;white-space:normal;text-shadow:none;opacity:0;pointer-events:none;background:#0a0e16f0;border-radius:8px;padding:6px 10px;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:0;transform:translateY(4px)}.tip:hover:after,.tip:focus-visible:after,.tip:active:after{opacity:1;transform:none}#card-facts .tip:after{left:auto;right:0}#scale-unit.tip:after{font-size:12px;top:calc(100% + 8px);bottom:auto}#hud{z-index:10;pointer-events:none;text-shadow:0 2px 18px #000000b3;transition:opacity .8s;position:fixed;top:26px;left:30px}.brand{letter-spacing:.22em;text-transform:uppercase;color:#cfe3ff;font-size:13px;font-weight:700}.brand span:not(.brand-title){letter-spacing:.08em;text-transform:none;color:var(--muted);margin-top:4px;font-size:13px;font-weight:400;display:block}.scale{align-items:baseline;gap:12px;margin-top:22px;display:flex}#scale-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:76px;font-weight:800;line-height:.9}.scale .unit{color:#b9c7dc;font-size:28px;font-weight:600}.scale-caption{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:8px;font-size:11px}#card{z-index:10;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px)saturate(1.2);-webkit-user-select:text;user-select:text;border-radius:16px;width:min(380px,40vw);max-height:calc(100vh - 140px);padding:18px 20px;transition:opacity .5s,transform .5s;position:fixed;bottom:96px;right:30px;overflow-y:auto}#card.swap{opacity:0;transform:translateY(8px)}.card-level{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:11px}#card h2{margin:6px 0 8px;font-size:21px;font-weight:700}#card p{color:#cbd6e6;margin:0;font-size:14px;line-height:1.55}.card-k{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:10.5px;display:block}#card-fab{border-left:2px solid var(--warm);margin-top:14px;padding-left:12px}#card-fab.none{display:none}.facts-title{margin:14px 0 -6px}.facts-title.none{display:none}#card-facts{grid-template-columns:1fr auto;gap:6px 14px;margin:14px 0 0;font-size:13px;display:grid}#card-facts dt{color:var(--muted)}#card-facts dd{font-family:var(--mono);text-align:right;white-space:nowrap;margin:0;font-weight:600}.card-sources{margin-top:14px;font-size:12px;line-height:1.6}#card-sources a{text-decoration:none;display:block}#card-sources a:hover{text-decoration:underline}.fab-btn{color:var(--warm);cursor:pointer;background:#ffb46b1f;border:1px solid #ffb46b73;border-radius:999px;align-items:center;gap:8px;margin-top:10px;padding:7px 14px 7px 11px;font-size:12.5px;font-weight:600;transition:opacity .3s;display:inline-flex}.fab-btn:hover{background:#ffb46b38}.fab-btn.hidden{display:none}#fab-caption{z-index:11;background:var(--glass-strong);-webkit-backdrop-filter:blur(14px);border:1px solid #ffb46b4d;border-radius:14px;width:min(560px,100vw - 32px);padding:12px 16px;transition:opacity .4s;position:fixed;bottom:84px;left:50%;transform:translate(-50%)}body.fab-on #card{opacity:0;pointer-events:none}.fab-head{justify-content:space-between;align-items:center;display:flex}.fab-head .text-btn{padding:0}.fab-step{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--warm);font-size:11px}#fab-text{margin:4px 0 10px;font-size:14px;line-height:1.45}.fab-bar{background:#ffffff14;border-radius:3px;height:3px;overflow:hidden}.fab-bar i{background:linear-gradient(90deg,#ffb46b,#ffd9a8);width:0;height:100%;display:block}#ruler{z-index:9;height:40vh;transition:opacity .8s;position:fixed;top:50%;left:30px;transform:translateY(-30%)}#ruler-track{background:var(--line);width:2px;position:absolute;top:0;bottom:0;left:0}#ruler-head{background:var(--accent);width:12px;height:12px;box-shadow:0 0 16px var(--accent);border-radius:50%;margin-top:-6px;position:absolute;left:-5px}.tick{cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:4px 0;display:flex;position:absolute;left:0;transform:translateY(-50%)}.tick i{background:var(--muted);width:8px;height:2px}.tick span{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:11px;transition:color .3s}.tick.on span{color:var(--text)}.tick.on i{background:var(--accent)}#nav{z-index:10;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);border-radius:999px;align-items:center;gap:12px;padding:8px 10px;transition:opacity .8s;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.icon-btn{border:1px solid var(--line);cursor:pointer;background:#ffffff0a;border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.icon-btn:hover{background:#ffffff1a}.icon-btn:disabled{opacity:.35;cursor:default}.text-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 8px;font-size:12.5px}.text-btn:hover{color:var(--text)}.hint{color:var(--muted);white-space:nowrap;font-size:12.5px}.lang{z-index:20;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);border-radius:999px;gap:2px;padding:3px;display:flex;position:fixed;top:22px;right:26px}.lang button{letter-spacing:.06em;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 9px;font-size:11.5px;font-weight:700}.lang button.on{color:var(--text);background:#7fd3ff29}#credits{z-index:40;background:#02040a99;place-items:center;transition:opacity .3s;display:grid;position:fixed;inset:0}.credits-panel{background:var(--glass-strong);border:1px solid var(--line);-webkit-user-select:text;user-select:text;border-radius:18px;width:min(620px,100vw - 32px);max-height:calc(100vh - 64px);padding:24px 26px;position:relative;overflow-y:auto}.credits-panel h2{margin:0 0 10px;font-size:20px}.credits-panel p{color:#cbd6e6;font-size:14px;line-height:1.55}#credits-list{padding-left:18px;font-size:13.5px;line-height:1.8}#credits-close{position:absolute;top:16px;right:16px}.credits-tools{color:var(--muted)!important;font-size:12.5px!important}@media (height<=700px) and (width>=721px){#ruler{height:32vh;top:56%}}@media (width<=720px){#hud{top:18px;left:16px}#scale-value{font-size:52px}.scale{margin-top:14px}.scale .unit{font-size:20px}.brand span:not(.brand-title){display:none}.lang{top:14px;right:12px}#ruler{display:none}#card{width:auto;max-height:42vh;padding:14px 16px;bottom:80px;left:16px;right:16px}#card h2{font-size:18px}#card p{font-size:13px}#nav{max-width:calc(100vw - 32px);bottom:14px}.hint{display:none}#fab-caption{z-index:12;bottom:80px}#fab-text{font-size:13px}}
