@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=DM+Sans:wght@400;500;600;700;800&display=swap');
:root{--bg:#07111e;--white:#f1f4f8;--dim:#94a6ba;--mint:#72edcf;--amber:#ffd18a;--red:#ff7c94;--panel:rgba(9,19,34,.88);--stroke:rgba(163,202,230,.17)}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font-family:'DM Sans',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--white);user-select:none;-webkit-user-select:none}button{cursor:pointer;font:inherit;touch-action:manipulation}button:focus-visible{outline:2px solid var(--mint);outline-offset:3px}canvas#world{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}#grain{position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 50% 48%,transparent 35%,rgba(3,7,16,.3) 100%);opacity:.92}#topbar{position:fixed;top:0;left:0;right:0;z-index:6;display:flex;justify-content:space-between;align-items:center;padding:23px clamp(18px,3.5vw,56px);pointer-events:none}.brand,.top-actions{pointer-events:auto}.brand{display:flex;align-items:center;gap:12px}.brand-icon{width:46px;height:46px;border:1px solid var(--mint);display:grid;place-items:center;font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:800;letter-spacing:-3px;color:var(--mint);transform:skew(-6deg)}.brand-icon span{color:var(--white)}.brand strong{display:block;font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:22px;letter-spacing:1.2px;line-height:1}.brand-sub{display:block;font-size:10px;letter-spacing:2.1px;color:var(--dim);font-weight:700;margin-top:5px}.brand-sub b{color:var(--mint)}.top-actions{display:flex;gap:8px}.icon-button{width:39px;height:39px;border:1px solid var(--stroke);border-radius:11px;background:rgba(9,19,34,.72);color:var(--white);font-size:17px;backdrop-filter:blur(10px)}.icon-button:hover{border-color:var(--mint);color:var(--mint)}.hud-panel{z-index:3;position:fixed;background:var(--panel);border:1px solid var(--stroke);box-shadow:0 20px 50px rgba(0,0,0,.12);backdrop-filter:blur(16px);border-radius:12px}#quest{top:112px;left:clamp(18px,3.5vw,56px);width:min(330px,calc(100vw - 36px));padding:19px 21px}.eyebrow,.tiny-label{font-size:10px;font-weight:800;letter-spacing:2px;color:var(--mint)}.pulse-dot,.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 10px var(--mint);margin-right:7px;animation:blink 2s infinite}.live-dot{margin:0 0 0 9px}.eyebrow #quest-count{float:right;color:#62798f}#quest h2{font-family:'Barlow Condensed',sans-serif;font-size:28px;line-height:1;margin:13px 0 5px;letter-spacing:.1px}#quest p{color:var(--dim);font-size:12px;line-height:1.55;margin:0 0 18px}.progress-track{height:4px;background:#1d3044;border-radius:4px;overflow:hidden}#progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--mint),#d7ffe8);transition:width .4s ease}#locator{top:112px;right:clamp(18px,3.5vw,56px);padding:16px 19px;min-width:180px}.locator-main{display:flex;align-items:center;gap:12px;margin-top:8px}.locator-arrow{font-size:31px;display:inline-block;color:var(--amber);transform:rotate(90deg);transition:transform .12s}.locator-main strong{display:block;font-family:'Barlow Condensed',sans-serif;letter-spacing:1px;font-size:19px}.locator-main small{display:block;font-size:10px;color:var(--dim);margin-top:2px}#screen-label{position:fixed;z-index:2;top:0;left:0;transform:translate(-50%,-100%);white-space:nowrap;pointer-events:none;text-align:center;color:#e1fff8;font-family:'Barlow Condensed',sans-serif;font-size:17px;font-weight:800;letter-spacing:1.5px;text-shadow:0 1px 6px #04141a,0 0 18px #0be7bb;display:none}#screen-label::before{content:'✦';display:block;color:var(--mint);font-size:25px;animation:float 2s ease-in-out infinite}#toast{position:fixed;top:30%;left:50%;transform:translate(-50%,-10px);z-index:25;opacity:0;pointer-events:none;border:1px solid rgba(114,237,207,.3);border-radius:12px;background:rgba(8,22,33,.95);padding:12px 20px;text-align:center;max-width:min(440px,90vw);font-size:13px;font-weight:700;box-shadow:0 16px 44px #0008;transition:.25s}#toast.show{opacity:1;transform:translate(-50%,0)}#interact-prompt{position:fixed;bottom:98px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:11px;z-index:5;background:rgba(8,22,32,.92);padding:10px 17px;border-radius:11px;border:1px solid rgba(114,237,207,.45);font-size:13px;font-weight:700;white-space:nowrap;box-shadow:0 10px 25px #0007}.keycap,kbd{border:1px solid rgba(255,255,255,.36);background:#263b4e;color:#fff;border-radius:5px;padding:5px 9px;font:700 12px 'DM Sans',sans-serif}#controls-hint{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:24px;z-index:3;color:#93a8b8;font-size:11px;white-space:nowrap}#controls-hint>span{display:flex;gap:4px;align-items:center}.mouse-icon{font-size:23px;padding-right:5px}.hidden{display:none!important}@keyframes blink{50%{opacity:.3}}@keyframes float{50%{transform:translateY(-6px)}}
/* MODALS */
.modal-screen{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:rgba(3,10,20,.86);backdrop-filter:blur(15px);padding:22px;overflow:auto}.start-backdrop{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 52% 43%,rgba(18,97,107,.16),transparent 60%),linear-gradient(130deg,transparent 50%,rgba(255,171,98,.05) 100%)}.intro-card{position:relative;z-index:1;max-width:670px;width:100%;text-align:left;padding:16px 14px}.overline{font-size:11px;color:var(--mint);font-weight:800;letter-spacing:2.2px;display:flex;align-items:center;gap:12px}.overline .line{height:1px;background:#6deec488;flex:1;max-width:60px}.intro-symbol{font-size:48px;color:var(--mint);margin-top:27px;text-shadow:0 0 24px #23ffc177}.intro-card h1{font-family:'Barlow Condensed',Impact,sans-serif;font-weight:900;letter-spacing:-1.2px;line-height:.88;font-size:clamp(58px,8vw,115px);margin:10px 0 30px}.intro-card h1 em,.preview-caption h2 em,.ending h2 em{font-style:normal;color:var(--mint)}.intro-card p{font-size:15px;line-height:1.8;color:#b2c2cf;max-width:540px;margin:0}.intro-card p strong{color:#fff}.intro-chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}.intro-chips span{border:1px solid var(--stroke);background:rgba(16,38,52,.45);padding:9px 11px;border-radius:4px;font-size:10px;color:#b9d6db;font-weight:800;letter-spacing:1px}.primary-btn{display:flex;align-items:center;justify-content:space-between;gap:30px;width:100%;border:none;border-radius:7px;background:var(--mint);color:#07251f;padding:17px 21px;font-size:13px;font-weight:900;letter-spacing:1px;box-shadow:0 10px 27px #13e7c21c;transition:transform .18s,filter .18s}.primary-btn:hover{transform:translateY(-1px);filter:brightness(1.08)}.primary-btn:disabled{opacity:.5;cursor:wait}.primary-btn span{font-size:20px}.intro-card>.primary-btn{max-width:335px;margin-top:34px}.fine-print{font-size:10px;color:#678091;letter-spacing:.3px;margin-top:17px}.chapter-stamp{position:absolute;bottom:30px;right:clamp(20px,5vw,80px);color:#5c7284;font-family:monospace;font-size:11px;text-align:right;line-height:1.8;letter-spacing:2px;transform:rotate(-4deg)}.chapter-stamp b{color:#c96d86}.small-modal{width:min(430px,100%);border:1px solid var(--stroke);background:#0e1a2b;border-radius:15px;padding:28px;box-shadow:0 25px 100px #0007}.small-modal h2{font-size:43px;line-height:.98;font-weight:900;font-family:'Barlow Condensed',sans-serif;margin:11px 0 20px}.small-modal p{font-size:13px;line-height:1.7;color:#afc2d1;margin-bottom:20px}.small-modal p b{color:#fff}.small-modal .primary-btn{margin-top:13px}.secondary-btn{padding:12px 16px;border:1px solid var(--stroke);background:rgba(80,112,131,.09);color:var(--white);border-radius:7px;font-size:11px;letter-spacing:.5px;font-weight:800}.secondary-btn:hover{border-color:var(--mint);color:var(--mint)}.secondary-btn.full{width:100%;margin-top:12px}.ending .intro-symbol{margin:0 0 10px}.ending h2{font-size:55px}.secret-message{padding:18px;background:#091425;border-left:3px solid var(--amber);font-family:monospace;line-height:1.65;letter-spacing:1px;color:var(--amber);font-size:13px}.small-modal p.teaser{font-size:11px;margin:20px 0}.teaser b{color:var(--mint)}
/* WORKSHOP / PUZZLE */
.mode-overlay{position:fixed;inset:0;z-index:10;pointer-events:none;background:linear-gradient(90deg,rgba(5,12,23,.25) 0%,transparent 40%,rgba(5,12,23,.48) 100%)}.mode-overlay>*{pointer-events:auto}.mode-top{position:absolute;top:28px;left:clamp(18px,3.8vw,60px);right:clamp(18px,3.8vw,60px);display:flex;justify-content:space-between;align-items:center}.back-btn{color:#dce8ef;border:1px solid var(--stroke);background:#102036cb;padding:13px 17px;border-radius:8px;font-size:11px;font-weight:900;letter-spacing:1px}.back-btn:hover{color:var(--mint);border-color:var(--mint)}.mode-status{font-family:monospace;color:#8ca9b9;font-size:11px;letter-spacing:1.3px}.mode-body{position:absolute;top:94px;bottom:28px;left:clamp(18px,3.8vw,60px);right:clamp(18px,3.8vw,60px);display:flex;justify-content:space-between;align-items:flex-start;gap:24px;pointer-events:none}.preview-caption{max-width:min(380px,33vw);pointer-events:none;margin-top:23px}.preview-caption h2{font-family:'Barlow Condensed',sans-serif;font-size:clamp(44px,4.15vw,69px);font-weight:900;margin:8px 0 15px;line-height:.88}.preview-caption p{font-size:13px;line-height:1.75;color:#a6bac8;max-width:330px}.preview-caption p strong{color:var(--mint)}.preview-drag{margin-top:34px;font-size:10px;letter-spacing:1.5px;color:#8baebe;font-weight:800}.builder-panel{pointer-events:auto;overflow:auto;max-height:100%;width:min(377px,39vw);flex-shrink:0;background:rgba(7,19,32,.92);border:1px solid rgba(106,151,181,.25);padding:24px;border-radius:12px;box-shadow:0 18px 65px #0007;backdrop-filter:blur(18px)}.builder-heading{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--stroke);padding-bottom:17px}.builder-heading h3{font-family:'Barlow Condensed',sans-serif;font-size:31px;margin:4px 0 0}.build-version{font-family:monospace;color:#6c8398;font-size:11px}.part-group{margin-top:20px}.part-group h4{font-size:11px;letter-spacing:1.4px;margin:0 0 9px;color:#e2eaf0}.part-group h4 span{color:var(--mint);margin-right:8px}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.choice{border:1px solid #284052;background:#102239;text-align:left;color:#ebf1f7;border-radius:6px;padding:11px;min-height:66px;transition:background .18s,border-color .18s}.choice:hover,.choice.active{border-color:var(--mint);background:#133e40}.choice strong{display:block;font-size:12px;letter-spacing:.6px}.choice small{display:block;color:#849fb0;margin-top:6px;font-size:10px}.choice.active small{color:#b4e6dc}.spec-line{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:21px 0 8px;border-top:1px solid var(--stroke);padding-top:17px;font-size:9px;font-weight:900;letter-spacing:1px;color:#92a6b9}.spec-line strong{color:var(--mint);font-size:10px}#build-feedback,#puzzle-feedback{min-height:40px;font-size:11px;line-height:1.55;color:#aec1ce;margin:8px 0 18px}#build-feedback.bad,#puzzle-feedback.bad{color:#ff9bae}#build-btn,#run-btn{width:100%}.mini-copy{font-size:12px;line-height:1.6;color:#9eb7c7;margin:18px 0}.legend{display:flex;gap:14px;margin-top:24px}.legend span{font-family:monospace;font-size:10px;color:#a7baca;display:flex;align-items:center;gap:6px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%}.command-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0 20px}.command-btn{min-height:60px;background:#102238;border:1px solid #2e475a;color:var(--mint);border-radius:7px;font-weight:900;font-size:22px}.command-btn strong{font-size:10px;letter-spacing:.5px;margin-left:7px;color:#e2eaf0}.command-btn.scan{color:var(--amber)}.command-btn:hover{background:#163d42;border-color:var(--mint)}.command-btn:disabled{opacity:.4}#command-sequence{min-height:74px;display:flex;gap:6px;flex-wrap:wrap;align-content:flex-start;padding:10px;background:#091725;border:1px solid #233849;border-radius:7px;margin:10px 0}.sequence-empty{color:#668096;font-size:11px;align-self:center}.seq-chip{background:#284054;border:1px solid #426279;color:#e2ffff;padding:7px 9px;border-radius:5px;font-size:12px;font-weight:900}.seq-chip.scan{background:#4b3929;color:#ffd18a}.program-actions{display:flex;gap:8px}.program-actions button{flex:1}#puzzle-feedback{margin:16px 0 12px}.puzzle-panel{max-height:100%}
/* Mobile */
#mobile-controls{position:fixed;z-index:6;bottom:26px;left:24px;right:24px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}#joystick{width:130px;height:130px;border-radius:50%;border:1px solid #afd8e94d;background:#0c263d8c;pointer-events:auto;position:relative;touch-action:none;box-shadow:inset 0 0 35px #0f2847}#joystick:after{content:'';position:absolute;inset:35px;border:1px dashed #78a7bc55;border-radius:50%;pointer-events:none}#joystick-nub{width:57px;height:57px;background:#73edcf9a;border:2px solid #b9fff3;border-radius:50%;position:absolute;left:36px;top:36px;box-shadow:0 0 28px #72edcf49;pointer-events:none}#touch-actions{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:9px}#touch-actions button{border:2px solid #d7fff6;background:#6ae8c8;color:#06291e;padding:16px;border-radius:50%;width:100px;height:100px;font-size:11px;font-weight:900}#touch-actions button span{display:block;font-size:26px}#touch-actions span{font-size:10px;color:#c3ced7;background:#091e34b0;padding:7px;border-radius:5px}#touch-actions button:disabled{opacity:.25}body.touch #controls-hint{display:none}body.touch #interact-prompt{bottom:175px}body.touch .mode-overlay #mobile-controls{display:none}
@media(max-width:950px){#locator{top:252px;right:18px;min-width:150px;padding:12px}#quest{top:92px;left:18px;width:280px}#topbar{padding:16px 18px}.mode-body{left:20px;right:20px;gap:14px}.builder-panel{width:min(380px,48vw)}.preview-caption{max-width:40vw}.preview-caption h2{font-size:57px}}
@media(max-width:680px){#quest{width:calc(100vw - 36px);top:74px;padding:12px 15px}#quest h2{font-size:24px;margin:6px 0 2px}#quest p{margin-bottom:9px}#locator{top:202px;right:18px;min-width:130px;padding:10px 13px}.locator-main{gap:5px;margin-top:3px}.locator-main strong{font-size:16px}.locator-arrow{font-size:23px}.brand-icon{width:38px;height:38px;font-size:21px}.brand strong{font-size:17px}.brand-sub{font-size:8px;letter-spacing:1px}.icon-button{width:34px;height:34px}.top-actions{gap:5px}#mobile-controls{bottom:18px;left:14px;right:14px}#joystick{width:112px;height:112px}#joystick-nub{left:27px;top:27px}#touch-actions button{width:84px;height:84px;padding:10px}#touch-actions>span{font-size:9px}.intro-card h1{font-size:clamp(53px,13vw,90px)}.intro-card p{font-size:13px}.overline{font-size:9px}.chapter-stamp{display:none}.mode-overlay{overflow:auto;background:rgba(5,12,23,.6)}.mode-top{top:12px;left:12px;right:12px}.mode-status{font-size:8px}.mode-body{top:65px;bottom:0;left:12px;right:12px;display:block;overflow-y:auto;padding-bottom:15px;scrollbar-width:thin}.preview-caption{max-width:none;margin:0 0 12px;background:#081727c4;border:1px solid var(--stroke);padding:10px 14px;border-radius:8px}.preview-caption h2{font-size:37px;margin:4px 0 5px}.preview-caption p{font-size:11px;line-height:1.5;margin:0;max-width:none}.preview-drag{display:none}.builder-panel{width:100%;max-height:none;padding:15px;background:rgba(7,19,32,.94)}.builder-heading h3{font-size:27px}.part-group{margin-top:13px}.part-group h4{margin-bottom:6px}.choice{min-height:54px;padding:9px}.choice small{margin-top:3px}.spec-line{margin:13px 0 6px;padding-top:12px}.command-grid{margin:12px 0}.command-btn{min-height:46px}#command-sequence{min-height:54px}.legend{margin-top:10px}.legend span{font-size:8px}.preview-caption .tiny-label{font-size:8px}#screen-label{font-size:13px}.small-modal{padding:22px}}
@media(max-height:660px) and (min-width:681px){.mode-body{top:77px;bottom:10px}.preview-caption{margin-top:0}.builder-panel{padding:14px}.part-group{margin-top:10px}.choice{min-height:54px}.spec-line{margin-top:10px;padding-top:10px}.choice small{margin-top:2px}#build-feedback{min-height:22px;margin:5px 0 8px}.command-btn{min-height:43px}#command-sequence{min-height:45px}.mini-copy{margin:8px 0}.intro-card h1{font-size:80px}}
/* Preserve a clear 3D viewport on tablets and phones. */
@media(min-width:681px) and (max-width:1100px){.preview-caption{max-width:min(245px,28vw)}.preview-caption h2{font-size:clamp(38px,4.6vw,55px)}.builder-panel{width:min(350px,42vw)}}
@media(max-width:680px){.builder-panel{margin-top:clamp(155px,25vh,220px)}}
