:root{color-scheme:dark;font:14px/1.5 Inter,ui-sans-serif,system-ui,Arial,sans-serif;color:#eaf8ff;--line:rgba(154,222,243,.25);--soft:#a5c3d0}*{box-sizing:border-box}html,body{height:100%;margin:0;background:#06131c;overflow:hidden}#sim{height:100dvh;position:relative;overflow:hidden}#viewport{width:100%;height:100%;display:block;outline:0}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#03101a8c,transparent 28%,transparent 72%,#03101a5c),linear-gradient(0deg,#03101bc9,transparent 28%,transparent 75%,#03101a66)}#reticle{position:absolute;top:50%;left:50%;width:11px;height:11px;border:1px solid #c0f1f6aa;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}header{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:start;padding:25px 32px;pointer-events:none}.brand{display:flex;gap:17px;align-items:center}.logo{width:29px;height:29px;background:linear-gradient(140deg,#ffdb9e,#74bbdc);border:6px solid #193e53;outline:1px solid #9ddce2;border-radius:6px;transform:rotate(45deg)}small{display:block;font-size:10px;letter-spacing:2px;font-weight:700;color:#9bd3dc}.brand h1{margin:3px 0;font-size:21px;letter-spacing:2.4px;line-height:1.1}.brand h1 span{font-weight:350;color:#e2bd91}.stamp{font-size:10px;letter-spacing:1.6px;border:1px solid var(--line);padding:10px 16px;border-radius:40px;background:#071c2ab0;color:#bad9e3}#left{position:absolute;top:139px;left:34px;max-width:330px}#left h2{font-size:30px;line-height:1.16;font-weight:480;margin:10px 0}#left p{color:#b8d3dd;font-size:12px}.keyguide{font-size:10px;line-height:2.8;color:#b8d3dd;margin-top:23px;letter-spacing:.6px}kbd{font:600 10px ui-monospace,monospace;border:1px solid #617e8c;border-radius:4px;padding:5px 7px;color:#f2fbff}#right{position:absolute;right:27px;top:124px;width:288px;border:1px solid var(--line);border-radius:12px;padding:24px;background:linear-gradient(135deg,#091f30ec,#05101ccf);backdrop-filter:blur(22px);box-shadow:0 24px 55px #0009}#right h2{font-size:24px;font-weight:480;line-height:1.2;margin:10px 0}#right p{font-size:12px;line-height:1.8;color:var(--soft)}#right .formula{color:#ffdfa4;font:12px/1.8 ui-monospace,monospace;overflow-wrap:anywhere}#right .meta{font-size:10px;color:#8babb9;line-height:1.7}#right hr{border:0;border-top:1px solid var(--line);margin:22px 0}.tour{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.tour strong,.tour span{display:block;text-align:center}.tour strong{font-size:20px;letter-spacing:2px}.tour span{font-size:9px;letter-spacing:1.1px;color:var(--soft)}button{border:1px solid var(--line);background:#0b283bab;border-radius:6px;color:#edfaff;cursor:pointer;font-family:inherit}button:hover{border-color:#a5eafd;background:#16516c}.tour button{width:38px;height:38px;font-size:21px}.floorheader{display:flex;justify-content:space-between;align-items:center}.floorheader h3{font-size:17px;margin:5px 0;font-weight:500;letter-spacing:1px}.floorheader button{font-size:20px;width:31px;height:32px}.floors{display:flex;gap:5px;margin-top:17px;flex-wrap:wrap}.floors button{font-size:9px;padding:8px 7px;letter-spacing:.5px}#plan-panel{position:absolute;left:34px;bottom:67px;width:274px;border:1px solid var(--line);border-radius:10px;background:#081e2bc9;backdrop-filter:blur(18px);padding:12px}#plan-toggle{background:transparent;border:0;font-size:11px;font-weight:750;letter-spacing:1.4px;text-align:left;padding:2px 0 10px;color:#acdfef;width:100%}#plan-panel img{width:100%;display:block;border-radius:3px;opacity:.92}#plan-panel.expanded{width:min(560px,90vw)}#bottom{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:10px;padding:8px 23px;min-height:48px;background:#06151fe8;border-top:1px solid var(--line);font-size:11px;letter-spacing:.5px;color:#abcad2}#hud-status{flex:1}.statuslight{width:8px;height:8px;border-radius:50%;background:#98debd;box-shadow:0 0 10px #98debd}#interact{padding:7px 12px;letter-spacing:1px;font-size:10px}#mobile-controls{display:none}@media(max-width:1000px){header{padding:20px}.stamp{display:none}#left{left:20px;top:111px}#left h2{font-size:23px}#right{right:15px;top:108px;width:238px;padding:18px}#right h2{font-size:20px}#plan-panel{left:15px;width:215px}}@media(max-width:650px){.brand h1{font-size:14px}.logo{width:23px;height:23px}.brand{gap:12px}small{font-size:8px;letter-spacing:1.1px}#left{top:85px;left:14px}#left h2{font-size:20px;margin:5px 0}#left p{font-size:10px}.keyguide{display:none}#right{top:auto;bottom:96px;right:10px;width:204px;padding:12px;max-height:36vh;overflow:auto}#right h2{font-size:17px}#right p{font-size:10px;line-height:1.5}#right hr{margin:11px 0}#right .tour{margin-top:8px}#right .tour button{height:31px;width:34px}#right .tour strong{font-size:16px}#right .floors{margin-top:7px}#right .floors button{font-size:8px;padding:5px}#plan-panel{left:10px;bottom:96px;width:120px;padding:7px}#plan-toggle{font-size:9px}#bottom{font-size:9px;padding:5px 9px}#mobile-controls{display:flex;position:absolute;bottom:52px;left:10px;right:10px;justify-content:space-between;pointer-events:none}#mobile-controls button,#mobile-controls div{pointer-events:auto;background:#0b3049dd;border:1px solid #79abbc;border-radius:5px;padding:8px 12px;font-size:10px;touch-action:none}}

/* Canvas2D fallback shares the existing science HUD but without the WebGL reticle. */
.canvas-fallback #reticle{display:none}.science summary{font-size:10px;letter-spacing:1.4px;font-weight:750;color:#addde8;margin:12px 0;cursor:pointer}.science p{margin:7px 0}.canvas-fallback #viewport{cursor:crosshair}.floors button[aria-pressed="true"]{background:#28566a;border-color:#bcecf3}.canvas-fallback #left{pointer-events:none}
