:root{color:#d9eee2;font-synthesis:none;text-rendering:optimizelegibility;--ink:#d9eee2;--muted:#91aca4;--deep:#071d23;--panel:#0d2931;--panel-light:#143841;--river:#1c6073;--sea:#48a78e;--leaf:#72955f;--yellow:#f7cf3f;--line:#b4ddcb2e;background:#071d23;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#app{width:100%;min-width:320px;min-height:100%;margin:0}body{background:var(--deep);overflow:hidden}body[data-experience=lab]{overflow:auto}button,select{font:inherit}button{color:inherit}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.game-experience{background:radial-gradient(circle at 20% 15%,#48a78e2e,#0000 34rem),#071d23;position:fixed;inset:0;overflow:hidden}.game-stage,#game-canvas{position:absolute;inset:0}#game-canvas{background:#0a252d}#game-canvas canvas{max-width:100%;max-height:100%;display:block}.game-vignette{z-index:5;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 10vw #020e127a}.game-menu-button{z-index:40;top:max(18px, env(safe-area-inset-top));right:max(18px, env(safe-area-inset-right));min-height:42px;color:var(--ink);letter-spacing:.04em;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;background:#071d23c7;border:1px solid #d9eee247;border-radius:999px;padding:9px 15px;font-size:13px;font-weight:800;position:absolute}.game-menu-button span{color:var(--yellow);margin-right:6px}.game-overlay{z-index:50;padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:linear-gradient(90deg,#05161bf5 0%,#05161bdb 38%,#05161b33 78%),#0411152e;place-items:center start;display:grid;position:absolute;inset:0;overflow:auto}.game-panel{background:linear-gradient(145deg,#0f3139f5,#071c22fa);border:1px solid #bee3d333;border-radius:24px;width:min(480px,100%);max-height:calc(100dvh - 36px);margin-left:clamp(0px,5vw,74px);padding:clamp(22px,4vh,42px);overflow:auto;box-shadow:0 30px 90px #0000006b}.compact-panel,.results-panel{width:min(440px,100%)}.title-lockup{align-items:center;gap:18px;display:flex}.title-mark{aspect-ratio:1;width:74px;color:var(--yellow);background:linear-gradient(145deg,#225f5b,#132d34);border:1px solid #f7cf3fb8;border-radius:50% 50% 43% 57%;flex:none;place-items:center;font-family:Georgia,serif;font-size:42px;display:grid;box-shadow:inset 0 0 26px #48a78e2e}.eyebrow{color:var(--yellow);letter-spacing:.16em;text-transform:uppercase;margin:0 0 9px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:800}h1,h2,p{margin-top:0}h1,h2{color:#f0f7f2;font-family:Georgia,Times New Roman,serif;font-weight:400}.title-lockup h1{letter-spacing:-.055em;margin:-5px 0 0;font-size:clamp(54px,8vw,78px);line-height:.9}.game-subtitle{color:var(--sea);letter-spacing:.2em;text-transform:uppercase;margin:8px 0 0;font-size:13px;font-weight:800;line-height:1}.menu-intro{color:#b9d4c9;margin:24px 0 18px;font-family:Georgia,serif;font-size:20px;line-height:1.35}.course-card{background:#061a20ad;border:1px solid #48a78e57;border-radius:14px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;padding:15px 16px;display:flex}.course-card strong,.course-card small,.course-number{display:block}.course-card strong{color:var(--ink);margin:3px 0}.course-card small{color:var(--muted);font-size:11px}.course-number,.course-status{color:var(--yellow);letter-spacing:.1em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.course-status{border:1px solid #f7cf3f40;border-radius:999px;padding:7px 9px}.menu-button{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);cursor:pointer;background:#143841c2;border-radius:11px;padding:11px 16px;font-weight:800}.menu-button:hover{background:#19444d;border-color:#f7cf3f7a}.menu-button:disabled{cursor:wait;opacity:.65}.primary-button{background:var(--yellow);color:#102d34;border-color:#f7cf3f99}.primary-button:hover{background:#ffe16d}.menu-button+.menu-button,.results-panel .menu-button+.menu-button{margin-top:10px}.menu-button-row{grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;display:grid}.menu-button-row .menu-button{margin:0}.record-strip{border-block:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin:18px 0 12px;padding:12px 0;display:grid}.record-strip div{border-right:1px solid var(--line);padding:0 11px}.record-strip div:first-child{padding-left:0}.record-strip div:last-child{border-right:0;padding-right:0}.record-strip dt{color:var(--muted);text-transform:uppercase;font-size:10px}.record-strip dd{color:var(--ink);margin:4px 0 0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:14px;font-weight:800}.minor-menu-link{color:var(--muted);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:6px 0;font-size:12px;text-decoration:underline}.minor-menu-link:hover{color:var(--yellow)}.compact-panel h2,.results-panel h2{margin-bottom:22px;font-size:clamp(30px,5vw,42px);line-height:1.05}.instruction-grid{gap:9px;margin-bottom:20px;display:grid}.instruction-grid>div{border:1px solid var(--line);background:#061a208c;border-radius:10px;align-items:center;gap:8px;min-height:46px;padding:9px 11px;display:flex}.instruction-grid span{color:#bed4ca;margin-left:4px;font-size:13px}kbd{min-width:29px;color:var(--ink);text-align:center;background:#071d23e6;border:1px solid #d9eee247;border-bottom-width:2px;border-radius:5px;padding:4px 7px;font-family:ui-monospace,Consolas,monospace;font-size:11px;display:inline-block}.touch-note,.settings-note{color:var(--muted);font-size:12px;line-height:1.55}.setting-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:18px;padding:14px 0;display:grid}.setting-row span,.setting-row strong,.setting-row small{display:block}.setting-row strong{color:var(--ink)}.setting-row small{color:var(--muted);margin-top:4px;font-size:11px}select{border:1px solid var(--line);color:var(--ink);background:#0a252c;border-radius:8px;padding:9px 32px 9px 11px}.result-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;display:grid}.result-grid>div{background:#061a20a6;border:1px solid #48a78e66;border-radius:14px;align-content:center;place-items:center;min-height:118px;padding:16px;display:grid}.result-grid span{color:var(--muted);text-transform:uppercase;font-size:11px}.result-grid strong{color:var(--ink);margin-top:5px;font-family:Georgia,serif;font-size:30px}.result-grid em{color:var(--yellow);letter-spacing:.08em;text-transform:uppercase;margin-top:7px;font-size:10px;font-style:normal;font-weight:800}.result-message{color:var(--muted);margin-bottom:18px;line-height:1.5}.touch-controls{z-index:35;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;display:none;position:absolute;inset:0}.touch-direction,.touch-actions{bottom:max(20px, env(safe-area-inset-bottom));pointer-events:auto;align-items:end;gap:12px;display:flex;position:absolute}.touch-direction{left:max(20px, env(safe-area-inset-left))}.touch-actions{right:max(20px, env(safe-area-inset-right))}.touch-controls button{width:74px;height:74px;color:var(--ink);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#071d23b3;border:2px solid #d9eee273;border-radius:50%;place-items:center;padding:0;font-size:30px;font-weight:900;display:grid;box-shadow:0 10px 28px #00000047}.touch-actions button{width:82px;height:82px}.touch-jump{border-color:#f7cf3fad!important}.touch-sense{color:#bdeee3!important;width:66px!important;height:66px!important}.touch-controls small{letter-spacing:.05em;text-transform:uppercase;margin-top:-17px;font-size:9px;display:block}.touch-controls button.is-pressed{border-color:var(--yellow);background:#1c6073eb;transform:scale(.94)}body[data-control-size=large] .touch-controls button{width:88px;height:88px}body[data-control-size=large] .touch-actions button{width:98px;height:98px}body[data-control-size=large] .touch-sense{width:78px!important;height:78px!important}body[data-touch-controls=always] .game-experience.is-playing .touch-controls{display:block}.orientation-hint{z-index:32;left:50%;bottom:max(18px, env(safe-area-inset-bottom));color:var(--muted);background:#071d23d1;border-radius:999px;margin:0;padding:8px 12px;font-size:11px;display:none;position:absolute;transform:translate(-50%)}.lab-view{background:radial-gradient(circle at 18% 8%, #48a78e29, transparent 32rem), radial-gradient(circle at 86% 18%, #1c607333, transparent 38rem), var(--deep);min-height:100vh}.lab-header{z-index:100;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#071d23e6;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;min-height:68px;padding:11px clamp(18px,4vw,60px);display:grid;position:sticky;top:0}.back-to-game{border:1px solid var(--line);background:var(--panel);width:fit-content;color:var(--ink);cursor:pointer;border-radius:999px;padding:8px 12px}.lab-brand{align-items:center;gap:9px;display:flex}.lab-brand span{aspect-ratio:1;width:34px;color:var(--yellow);border:1px solid #f7cf3f8c;border-radius:50%;place-items:center;font-family:Georgia,serif;display:grid}.build-badge{color:var(--yellow);letter-spacing:.08em;text-transform:uppercase;border:1px solid #f7cf3f4d;border-radius:6px;justify-self:end;padding:7px 10px;font-family:ui-monospace,Consolas,monospace;font-size:10px}.lab-main{width:min(1400px,100%);margin:0 auto;padding:clamp(42px,6vw,82px) clamp(18px,4vw,60px) 76px}.hero-copy{width:min(880px,100%);margin-bottom:32px}.hero-copy h1{letter-spacing:-.04em;margin-bottom:16px;font-size:clamp(46px,7vw,76px);line-height:.98}.hero-copy p,.lab-card p,.pipeline-status p,.pipeline-section p,.reference-section p{color:var(--muted);line-height:1.65}.lab-grid{grid-template-columns:minmax(320px,.85fr) minmax(420px,1.15fr);gap:24px;display:grid}.lab-card,.pipeline-status,.pipeline-section,.reference-section{border:1px solid var(--line);background:linear-gradient(145deg,#143841f0,#092229f5);border-radius:20px;box-shadow:0 28px 80px #00000038}.lab-card{padding:clamp(22px,3vw,34px);overflow:hidden}.lab-card h2,.pipeline-status h2,.pipeline-section h2,.reference-section h2{margin-bottom:14px;font-size:clamp(25px,3vw,35px)}.card-heading,.pipeline-status-heading,.reference-section{justify-content:space-between;align-items:start;gap:24px;display:flex}.card-heading h2,.pipeline-status-heading h2{margin-bottom:0}.sprite-stage{background-color:#0a2229;background-image:linear-gradient(45deg,#ffffff06 25%,#0000 25%),linear-gradient(-45deg,#ffffff06 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#ffffff06 75%),linear-gradient(-45deg,#0000 75%,#ffffff06 75%);background-size:24px 24px;border:1px solid #d9eee21a;border-radius:14px;place-items:center;min-height:330px;margin-top:24px;display:grid}#sprite-preview{width:192px;height:208px}.direction-sheet{object-fit:contain;border:1px solid var(--line);background:#0a2229;border-radius:12px;width:100%;max-height:320px;margin:8px 0 22px;display:block}.asset-note{margin:20px 0 0;font-size:12px}.pipeline-status,.pipeline-section,.reference-section{margin-top:24px;padding:clamp(24px,4vw,42px)}.pipeline-count{color:var(--yellow);border:1px solid #f7cf3f4d;border-radius:999px;flex:none;padding:10px 14px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.sprite-job-list,.pipeline-list{margin:24px 0;padding:0;list-style:none;display:grid}.sprite-job-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.sprite-job-list li,.pipeline-list li{border:1px solid var(--line);background:#071d2373;border-radius:11px;padding:15px}.sprite-job-list li{gap:5px;display:grid}.sprite-job-list strong,.pipeline-list strong{color:var(--ink);text-transform:capitalize}.sprite-job-list span{color:var(--muted);font-size:12px}.sprite-job-list li[data-status=approved]{border-color:#48a78ea6}.pipeline-list{grid-template-columns:repeat(3,1fr);gap:12px}.pipeline-list li{gap:12px;min-height:135px;display:flex}.pipeline-list li>span{color:var(--yellow);font-family:ui-monospace,Consolas,monospace;font-size:11px}.pipeline-list p{margin-top:7px;font-size:13px;line-height:1.5}.reference-section{align-items:center}.reference-section>div{max-width:760px}.text-link{color:var(--yellow);text-underline-offset:5px;flex:none}footer{border-top:1px solid var(--line);color:#708b84;letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;gap:24px;padding:24px clamp(18px,4vw,60px);font-family:ui-monospace,Consolas,monospace;font-size:10px;display:flex}@media (pointer:coarse){body[data-touch-controls=auto] .game-experience.is-playing .touch-controls{display:block}.game-menu-button{min-width:48px;min-height:48px}}@media (pointer:coarse) and (orientation:portrait){.game-experience.is-playing .orientation-hint{top:max(76px, calc(env(safe-area-inset-top) + 62px));display:block;bottom:auto}}@media (width<=900px){.game-overlay{background:#05161bc7;place-items:center}.game-panel{margin-left:0}.lab-grid{grid-template-columns:1fr}.pipeline-list,.sprite-job-list{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.game-panel{border-radius:18px;padding:22px}.title-mark{width:60px;font-size:34px}.title-lockup h1{font-size:52px}.menu-intro{margin-block:18px 14px;font-size:17px}.course-card{padding:12px}.record-strip dd{font-size:12px}.touch-direction,.touch-actions{bottom:max(14px, env(safe-area-inset-bottom));gap:8px}.touch-direction{left:max(12px, env(safe-area-inset-left))}.touch-actions{right:max(12px, env(safe-area-inset-right))}.touch-controls button{width:64px;height:64px}.touch-actions button{width:72px;height:72px}.touch-sense{width:58px!important;height:58px!important}.lab-header{grid-template-columns:1fr auto}.lab-brand{display:none}.pipeline-list,.sprite-job-list{grid-template-columns:1fr}.pipeline-status-heading,.card-heading,.reference-section,footer{flex-direction:column}.card-heading select{width:100%}}@media (height<=520px) and (orientation:landscape){.game-overlay{place-items:start center}.game-panel{max-height:none;padding:13px 18px}.menu-panel{width:min(700px,100%)}.title-mark{width:46px;font-size:27px}.title-lockup h1{font-size:42px}.game-subtitle{margin-top:4px;font-size:11px}.menu-intro{margin:7px 0;font-size:14px}.course-card{margin-bottom:6px;padding:7px 10px}.menu-button{min-height:36px;padding-block:5px}.menu-button-row{margin-top:6px}.record-strip{margin:6px 0 2px;padding:5px 0}.minor-menu-link{padding-block:2px}.touch-controls button{opacity:.88}}
