:root{color-scheme:dark;font-family:Segoe UI,Arial,sans-serif;color:#e4f1fa;background:#040a12}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;color:#d6f2ff;background:#0b1d2b;border:1px solid #3e6378;padding:11px 18px;border-radius:2px}button:hover:not(:disabled){background:#183348;border-color:#76eeff}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #b1faff;outline-offset:3px}.primary{background:#9cecf7;color:#05202d;font-weight:750;border-color:#c7faff}.primary:hover:not(:disabled){background:#fff;color:#051a28}.eyebrow{font:10px Consolas,monospace;letter-spacing:2.5px;color:#82e9fa}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}footer{height:42px;background:#070f19;border-top:1px solid #254355;display:flex;align-items:center;gap:20px;padding:0 24px;font:10px Consolas,monospace;color:#92b4c9}.text-button{background:none;border:none;text-decoration:underline;font-size:10px;padding:4px}#save-status{margin-left:auto}.title-screen{height:calc(100svh - 42px);min-height:640px;position:relative;overflow:hidden;background:#010912}.title-art{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.title-shade{position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#01091299 65%,#010912dd)}.menu-box{position:absolute;left:7vw;bottom:5vh;width:320px}.menu-box nav{display:grid;gap:9px}.menu-box nav button{text-align:left;background:#05121ceb;border:1px solid #4c7389;border-left:3px solid #81dcec;display:flex;justify-content:space-between;align-items:center;padding:14px 22px;font-size:18px;font-weight:650}.menu-box nav button span{font:10px Consolas,monospace;color:#91bbce}.menu-box nav button:first-child{background:#8ae4f2;color:#071b29}.menu-note{font-size:10px;color:#a1bacd;line-height:1.7}.storage-note{font-size:12px;color:#ffb188}.hud{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#07111ded;border-bottom:1px solid #31566b}.hud h1{font-size:23px;margin:5px 0}.hud h1 span{font-size:12px;font-weight:400;color:#a1bdd1;margin-left:15px}.hud-actions{display:flex;gap:9px}.hud-actions button{font-size:11px;padding:10px 14px}.viewport{height:calc(100svh - 130px);min-height:480px;position:relative;overflow:hidden}canvas{width:100%;height:100%;display:block;touch-action:none;outline:none}.objectives{position:absolute;left:24px;top:22px;width:260px;background:#05111dda;border-left:2px solid #6ce2f6;padding:15px 18px;pointer-events:none}.objectives h2{font-size:16px;line-height:1.4;margin:10px 0}.objectives p{font:11px Consolas,monospace;color:#a9c5d8;line-height:1.6;margin:6px 0}#position{font-size:9px;color:#91acc2}.interact{position:absolute;bottom:65px;left:50%;transform:translateX(-50%);text-align:center;min-width:280px}.interact p{font-size:12px;background:#020c17cf;padding:9px 18px;border-radius:4px}.interact button{min-width:200px}.floor-controls{position:absolute;bottom:16px;left:24px;right:24px;display:flex;justify-content:center;gap:24px;font:9px Consolas,monospace;color:#a3c2d6;pointer-events:none}.touch-controls{position:absolute;right:20px;bottom:55px;display:grid;grid-template-columns:repeat(3,36px);gap:4px}.touch-controls button{padding:8px 0;background:#071727bd}.touch-controls button:hover{background:#245365}#toast{position:absolute;bottom:185px;left:50%;transform:translateX(-50%);max-width:500px;background:#071420eb;color:#ffdeaa;font-size:13px;line-height:1.6;text-align:center}#toast:not(:empty){padding:12px 20px;border:1px solid #9f8246}dialog{max-width:760px;width:calc(100% - 40px);max-height:calc(100svh - 40px);overflow:auto;background:#0b1725;color:#ddecf7;border:1px solid #6091ac;padding:32px;box-shadow:0 0 100px #0009}dialog::backdrop{background:#010711c9;backdrop-filter:blur(5px)}dialog h2{font-size:28px;line-height:1.2;margin-top:12px}dialog p{line-height:1.8;font-size:15px}.panel-head,.terminal-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.panel-head h2{margin:0 0 15px}.simulation-note{color:#c3b2ef;font:11px/1.8 Consolas,monospace!important;background:#27213980;padding:10px 14px;border-left:2px solid #a48ad9}.dialogue-panel{max-width:970px}.dialogue{display:grid;grid-template-columns:240px 1fr;gap:38px;align-items:center}.portrait{display:flex;flex-direction:column;align-items:center;gap:20px;background:radial-gradient(ellipse,#174953,#071422 70%);padding:25px 0}.portrait img{width:210px;max-height:310px;object-fit:contain}.portrait span{font:10px Consolas,monospace;letter-spacing:2px;color:#8ae9ee}dl{display:grid;grid-template-columns:170px 1fr;gap:15px;font-size:14px;line-height:1.7}dt{color:#85e5f4;font-weight:700}dd{margin:0;color:#b5cddd}.volume{display:block;margin:25px 0}.volume input{display:block;width:100%;margin-top:15px;accent-color:#8ae4f2}.volume output{margin-left:15px;color:#8ae4f2}.actions{display:flex;gap:10px;flex-wrap:wrap}.terminal-panel{max-width:1500px;width:calc(100% - 48px);padding:24px 28px}.terminal-head h2{font-size:26px;margin:6px 0 10px}.terminal-head .eyebrow{margin:0}.terminal-head>button{font-size:12px}.ide-layout{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(420px,1.8fr);gap:30px}.lesson{border-right:1px solid #294154;padding-right:28px}.lesson h3{font-size:16px;line-height:1.6;margin-top:12px}.lesson ol{padding-left:20px;font-size:13px;line-height:1.8;color:#bdd0df}.lesson li{padding:4px 0}.lesson h4,.coding h4{font:11px Consolas,monospace;letter-spacing:1px;color:#8eacbf;text-transform:uppercase;margin:20px 0 10px}.example,.expected{background:#06101b;border:1px solid #264354;padding:15px;white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.8 Consolas,monospace;color:#d9e7f3}.expected{color:#a8eeba}.hint{font-size:12px!important;color:#a9bed1;line-height:1.7!important}.file-tab{font:12px Consolas,monospace;background:#172c3d;padding:12px 15px;border:1px solid #345365}.file-tab span{float:right;font-size:9px;color:#a88cd7}.editor-shell{height:270px;display:flex;border:1px solid #3b6076;border-top:0;background:#050e1a}.editor-stack{position:relative;flex:1;min-width:0}.editor-stack textarea,.editor-stack pre{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:15px 15px 50px;white-space:pre;overflow:auto;tab-size:4;font:18px/1.75 Consolas,'Courier New',monospace;border:0;letter-spacing:0;box-sizing:border-box}.editor-stack pre{pointer-events:none;color:#e0ecf6;scrollbar-width:none}.editor-stack textarea{background:transparent;color:transparent;caret-color:#fff;resize:none;-webkit-text-fill-color:transparent}.editor-stack textarea::placeholder{color:#678094;-webkit-text-fill-color:#678094}.editor-stack textarea::selection{background:#34749f80}#line-numbers{width:43px;text-align:right;flex-shrink:0;white-space:pre;overflow:hidden;padding:15px 10px 50px 0;font:18px/1.75 Consolas,monospace;color:#526e86;border-right:1px solid #1e3449}#editor-help{font-size:11px;line-height:1.7;color:#9bb8cd}.keyword{color:#bc9dff}.string{color:#9fe3b4}.number{color:#ffbd86}#output{min-height:95px;background:#020a12;border:1px solid #284356;padding:14px;font:14px/1.65 Consolas,monospace;white-space:pre-wrap;color:#abeebc}#feedback{min-height:42px;font-size:13px;line-height:1.7;color:#b7e7fb}#next-terminal[hidden]{display:none}@media(max-width:800px){.title-screen{min-height:680px}.title-art{object-position:50% top}.menu-box{left:24px;width:280px}.hud{height:110px;padding:12px;flex-wrap:wrap;gap:10px}.hud h1{font-size:18px}.hud-actions button{padding:7px;font-size:10px}.viewport{height:calc(100svh - 152px)}.objectives{width:210px;left:10px;top:10px;padding:10px}.floor-controls{font-size:8px;gap:10px;left:8px;right:8px}.touch-controls{right:10px;bottom:50px}.interact{left:40%;min-width:200px}.interact button{min-width:155px}.dialogue{grid-template-columns:1fr}.portrait{padding:0}.portrait img{height:140px}.portrait span{display:none}.ide-layout{grid-template-columns:1fr}.lesson{border:0;padding-right:0}.terminal-panel{width:calc(100% - 16px);padding:18px}.terminal-head h2{font-size:19px}.editor-shell{height:300px}.editor-stack textarea,.editor-stack pre,#line-numbers{font-size:15px}.file-tab span{display:none}dl{grid-template-columns:1fr;gap:5px}dd{margin-bottom:12px}footer{gap:8px;padding:0 8px;font-size:8px}.text-button{font-size:8px}#save-status{max-width:120px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.volume-buttons{display:flex;gap:10px;margin-top:15px}.volume-buttons button{font-size:12px}
@media(max-width:800px){}

/* Full composition, no footer; retain the original artwork and logo pixels. */
.title-screen{height:100svh;min-height:0}
.title-art{object-fit:contain;object-position:center}


.viewport{height:calc(100svh - 88px)}
@media(max-width:800px){.title-screen{height:100svh;min-height:0}.title-art{object-fit:contain;object-position:center}.viewport{height:calc(100svh - 110px)}}

/* Keep the preferred cover unobscured. */
.title-shade{display:none}

/* Approved title.png includes the only logo; no masking or overlaid plaque. */
.cover-frame{position:absolute;width:min(100vw,calc(100svh * 1672 / 941));aspect-ratio:1672/941;left:50%;top:50%;transform:translate(-50%,-50%)}
.cover-frame .title-art{inset:0}



.briefing-panel{width:min(1080px,calc(100% - 40px));max-width:1080px;height:min(720px,calc(100svh - 32px));max-height:calc(100svh - 32px);padding:0;overflow:hidden;border-color:#58d8e9;background:#07121e}
.briefing{display:grid;grid-template-columns:minmax(260px,39%) 1fr;height:100%;min-height:0;cursor:pointer}
.briefing-portrait{position:relative;overflow:hidden;background:linear-gradient(135deg,#063c48,#18080e);border-right:1px solid #3f7c8b}
.briefing-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block}
.briefing-portrait span{position:absolute;left:18px;bottom:16px;padding:7px 10px;background:#03101bd9;border-left:2px solid #66e7f5;font:10px Consolas,monospace;letter-spacing:1.6px}
.briefing-portrait.cache-portrait img{object-fit:contain;padding:50px;background:radial-gradient(circle,#14515a,#07121e 68%)}
.briefing-copy{display:flex;min-height:0;overflow:hidden;flex-direction:column;padding:38px 48px 26px}
.briefing-copy h2{color:#8cecf7;letter-spacing:.08em;margin:12px 0 22px}
#briefing-text{font-size:18px;line-height:1.75;min-height:0;overflow:auto;margin:0 0 18px;padding-right:8px;cursor:pointer}
.briefing-footer{display:flex;flex:0 0 auto;justify-content:space-between;align-items:center;gap:20px;margin-top:auto;padding-top:18px;border-top:1px solid #244656;background:#07121e}
#briefing-progress{font:11px Consolas,monospace;color:#8aaebe;letter-spacing:1px}
#briefing-progress+small{display:block;margin-top:6px;font:9px Consolas,monospace;color:#7597a9;white-space:nowrap}
#briefing-next{min-width:180px;min-height:48px;flex:0 0 auto}
@media(max-width:720px){.briefing-panel{width:calc(100% - 18px);height:calc(100svh - 18px);max-height:calc(100svh - 18px)}.briefing{grid-template-columns:1fr;grid-template-rows:minmax(120px,30svh) minmax(0,1fr)}.briefing-portrait{height:auto;border-right:0;border-bottom:1px solid #3f7c8b}.briefing-copy{padding:18px 20px 14px}.briefing-copy .eyebrow{margin:0}.briefing-copy h2{font-size:20px;margin:8px 0 12px}#briefing-text{font-size:14px;line-height:1.55;margin-bottom:10px}.briefing-footer{padding-top:10px;gap:10px}#briefing-next{min-width:132px;min-height:44px;padding:9px 12px}#briefing-progress+small{white-space:normal}}
@media(max-height:760px) and (min-width:721px){.briefing-panel{height:calc(100svh - 20px);max-height:calc(100svh - 20px)}.briefing{grid-template-columns:minmax(220px,34%) 1fr}.briefing-copy{padding:24px 34px 18px}.briefing-copy h2{font-size:23px;margin:8px 0 14px}#briefing-text{font-size:15px;line-height:1.55;margin-bottom:10px}.briefing-footer{padding-top:10px}}

/* Keep the terminal editor, output, and feedback together in the viewport. */
.terminal-panel{height:min(900px,calc(100svh - 32px));max-height:calc(100svh - 32px);padding:20px 28px;overflow:hidden;display:flex;flex-direction:column}
.terminal-head,.terminal-panel>.simulation-note{flex:0 0 auto}
.terminal-panel>.simulation-note{margin:6px 0 14px;padding:7px 12px}
.terminal-panel .ide-layout{flex:1 1 auto;min-height:0}
.terminal-panel .lesson{min-height:0;overflow:auto}
.terminal-panel .coding{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.terminal-panel .lesson h3{line-height:1.45;margin:6px 0}
.terminal-panel .lesson ol{line-height:1.55;margin:8px 0}
.terminal-panel .lesson li{padding:2px 0}
.terminal-panel .lesson h4,.terminal-panel .coding h4{margin:12px 0 7px}
.terminal-panel .example,.terminal-panel .expected{padding:10px 12px;font-size:13px;line-height:1.5;margin:0}
.terminal-panel .hint{line-height:1.5!important;margin:8px 0}
.terminal-panel .file-tab{flex:0 0 auto;padding:10px 15px}
.terminal-panel .editor-shell{height:clamp(180px,32vh,270px);flex:1 1 220px;min-height:150px}
.terminal-panel .editor-stack textarea,.terminal-panel .editor-stack pre{padding:12px 15px 28px;font-size:17px;line-height:1.55}
.terminal-panel #line-numbers{padding:12px 10px 28px 0;font-size:17px;line-height:1.55}
.terminal-panel #editor-help{flex:0 0 auto;font-size:10px;line-height:1.45;margin:7px 0}
.terminal-panel .coding>.actions,.terminal-panel .result-area{flex:0 0 auto}
.terminal-panel .result-area h4{margin:8px 0 5px}
.terminal-panel #output{height:72px;min-height:72px;max-height:72px;overflow:auto;margin:0;padding:9px 12px;font-size:13px;line-height:1.45}
.terminal-panel #feedback{min-height:36px;margin:5px 0 0;font-size:12px;line-height:1.45}
.terminal-panel #feedback.success{color:#9affc3;font-weight:700}
.terminal-panel #feedback.retry{color:#ffd09c}
.builder-label{margin:16px 0 7px;color:#82e9fa;font:700 10px Consolas,monospace;letter-spacing:2px}.builder-tasks{margin:0 0 14px;padding:10px 12px 10px 30px!important;background:#071724;border:1px solid #34566c;border-left:3px solid #82e9fa}.builder-tasks li{padding:3px 3px!important;color:#e2edf5}.builder-tasks code,.attempt-guide code{color:#ffd36b;background:#172638;padding:1px 4px}.attempt-guide{margin:12px 0;padding:10px 12px;border-left:3px solid #b78cff;background:#17182a;color:#d4caef;font-size:12px!important;line-height:1.55!important}.terminal-panel #feedback strong,.lesson .hint strong{color:#ffd36b}
.cache-exercise-panel{width:min(1450px,calc(100% - 36px));padding:22px 28px}.cache-exercise header{display:flex;align-items:center;justify-content:space-between;gap:20px}.cache-exercise-id{display:flex;align-items:center;gap:16px}.cache-exercise-id img{width:68px;height:68px;object-fit:contain;border:1px solid #4fbfce;background:#071723}.cache-exercise-id h2{margin:3px 0;font-size:25px}.cache-exercise-grid{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(520px,1.7fr);gap:28px;min-height:0}.cache-exercise-grid>.lesson{height:min(520px,calc(100vh - 330px));min-height:330px;overflow-y:auto;padding-right:14px;scrollbar-gutter:stable;scrollbar-color:#397184 #07131f}.cache-why{margin:14px 0;padding:11px 13px;background:#102536;border-left:3px solid #ffd36b;color:#c8dce8;font-size:12px;line-height:1.55}.cache-why strong{display:block;color:#ffd36b;font:10px Consolas,monospace;letter-spacing:1.5px}.cache-why p{margin:7px 0}.cache-exercise .editor-shell{height:330px}@media(max-width:850px){.cache-exercise-grid{grid-template-columns:1fr}.cache-exercise-panel{padding:14px}.cache-exercise .lesson{max-height:280px;overflow:auto}.cache-exercise .editor-shell{height:280px}}
.terminal-panel .coding button:disabled{opacity:.65}
@media(max-width:800px){.terminal-panel{width:calc(100% - 16px);padding:14px}.terminal-panel .ide-layout{overflow:auto}.terminal-panel .lesson{overflow:visible}.terminal-panel .coding{min-height:540px;overflow:visible}.terminal-panel .editor-shell{height:230px;flex:0 0 230px}.terminal-panel .result-area{position:sticky;bottom:0;background:#0b1725;padding-top:4px}}

/* Cache Bot's compact, informational Level 1 review. */
.cache-review-panel{width:min(1040px,calc(100% - 32px));max-width:1040px;height:min(650px,calc(100svh - 24px));max-height:calc(100svh - 24px);padding:0;overflow:hidden;border-color:#58d8e9;background:#07121e}
.cache-review{display:grid;grid-template-columns:minmax(220px,30%) minmax(0,1fr);height:100%;min-height:0}
.cache-review-guide{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px;background:radial-gradient(circle,#14515a,#07121e 70%);border-right:1px solid #3f7c8b}
.cache-review-guide img{display:block;width:min(210px,90%);max-height:310px;object-fit:contain}
.cache-review-guide span{font:10px Consolas,monospace;letter-spacing:1.6px;color:#8ae9ee;text-align:center}
.cache-review-content{display:flex;min-width:0;min-height:0;flex-direction:column;padding:30px 36px 24px}
.cache-review-content>header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #244656;padding-bottom:12px}
.cache-review-content>header .eyebrow{margin:0}
#review-progress{font:11px Consolas,monospace;color:#8aaebe;letter-spacing:1px;white-space:nowrap}
#review-card{flex:1 1 auto;min-height:0;overflow:auto;padding:16px 8px 10px 0;cursor:pointer;outline:none}
#review-card h2{font-size:27px;color:#8cecf7;margin:0 0 12px}
#review-card p{font-size:15px;line-height:1.6;margin:10px 0}
#review-card code{color:#b8f5ff;background:#102534;padding:1px 4px;border-radius:3px}
#review-card pre{margin:12px 0;padding:14px 16px;border:1px solid #315a70;background:#030c16;color:#dceaf5;white-space:pre-wrap;font:14px/1.55 Consolas,monospace}
.cache-review-nav{display:flex;flex:0 0 auto;height:auto;min-height:64px;align-items:center;justify-content:space-between;gap:16px;margin:0;padding:14px 0 0;background:#07121e;border-top:1px solid #244656}
.cache-review-nav button{min-width:150px;min-height:44px}
@media(max-width:800px){.cache-review-panel{width:calc(100% - 12px);height:calc(100svh - 12px);max-height:calc(100svh - 12px)}.cache-review{grid-template-columns:1fr;grid-template-rows:118px minmax(0,1fr)}.cache-review-guide{flex-direction:row;justify-content:flex-start;padding:12px 20px;border-right:0;border-bottom:1px solid #3f7c8b}.cache-review-guide img{width:86px;height:86px}.cache-review-content{padding:16px 18px 12px}#review-card{padding-top:10px}#review-card h2{font-size:21px}#review-card p{font-size:13px;line-height:1.45}#review-card pre{font-size:12px;line-height:1.4;padding:10px}.cache-review-nav{min-height:54px;padding-top:8px}.cache-review-nav button{min-width:120px;min-height:40px;padding:8px 12px}}
#walk-progress{font:11px Consolas,monospace;color:#8aaebe;letter-spacing:1px;white-space:nowrap}
#walk-card{flex:1 1 auto;min-height:0;overflow:auto;padding:16px 8px 10px 0;cursor:pointer;outline:none}
#walk-card h2{font-size:27px;color:#8cecf7;margin:0 0 12px}
#walk-card p{font-size:15px;line-height:1.6;margin:10px 0}
#walk-card code{color:#b8f5ff;background:#102534;padding:1px 4px;border-radius:3px}
#walk-card pre{margin:12px 0;padding:14px 16px;border:1px solid #315a70;background:#030c16;color:#dceaf5;white-space:pre-wrap;font:14px/1.55 Consolas,monospace}
.walkthrough-panel .cache-review-guide img{filter:drop-shadow(0 0 14px #55d9ed88)}
@media(max-width:800px){#walk-card{padding-top:10px}#walk-card h2{font-size:21px}#walk-card p{font-size:13px;line-height:1.45}#walk-card pre{font-size:12px;line-height:1.4;padding:10px}.walkthrough-panel .cache-review-nav{gap:7px}.walkthrough-panel .cache-review-nav button{min-width:0;flex:1;padding:8px 7px;font-size:12px}}
.elevator-panel{max-width:760px;border-color:#e7bb55;background:linear-gradient(145deg,#071522,#101d28)}.elevator-status{text-align:center}.elevator-status strong,.elevator-status.ready h2{color:#ffd36b}.elevator-door-mini{height:190px;max-width:330px;margin:18px auto;display:grid;place-items:center;border:2px solid #547487;background:linear-gradient(90deg,#102532 49%,#020b12 50%,#152d3a 51%);box-shadow:inset 0 0 30px #000,0 0 24px #52d7ef33}.ready .elevator-door-mini{border-color:#ffd36b;box-shadow:inset 0 0 30px #000,0 0 28px #ffd36b55}.elevator-door-mini span{background:#020a11dd;padding:8px 16px;color:#ffd36b;font:11px Consolas,monospace;letter-spacing:2px}.elevator-loading{text-align:center;padding:44px 20px}.elevator-loading span{display:block;width:70%;height:5px;margin:20px auto;background:linear-gradient(90deg,#ffd36b,#65e9f5,#ffd36b);animation:transit 1s linear infinite;background-size:200% 100%}@keyframes transit{to{background-position:200% 0}}
.floor-two{height:100svh;overflow:hidden;background:#040b14;color:#e7f4fb}.floor-two-hud{height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#07131f;border-bottom:1px solid #9a7136}.floor-two-hud h1{margin:5px 0;font-size:24px}.floor-two-hud h1 span{font-size:12px;color:#ffd36b;margin-left:15px}.floor-two-room{position:relative;height:calc(100svh - 90px);overflow:hidden;background:radial-gradient(circle at 50% 25%,#193b48 0,#0b2030 35%,#050c16 78%)}.floor-two-room:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.7%,#ffd36b24 50%,transparent 50.3%),linear-gradient(#69e7fa10 1px,transparent 1px);background-size:100% 100%,100% 64px}.gold-grid{position:absolute;left:0;right:0;bottom:0;height:48%;background:repeating-linear-gradient(90deg,#ffd36b26 0 2px,transparent 2px 110px),repeating-linear-gradient(0deg,#ffd36b20 0 2px,transparent 2px 72px);transform:perspective(450px) rotateX(57deg);transform-origin:bottom}.f2-wall-panels{position:absolute;inset:8% 7% 48%;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.f2-wall-panels i{border:1px solid #325e70;background:linear-gradient(155deg,#102b3b,#07131f);box-shadow:inset 0 -5px #d59f3c55}.f2-editor-station{position:absolute;left:50%;top:15%;transform:translateX(-50%);width:min(470px,42vw);padding:18px;border:1px solid #efc45d;background:#071522eF;box-shadow:0 0 40px #f0b83b2b;z-index:2}.station-tag{font:10px Consolas,monospace;color:#ffd36b;letter-spacing:2px}.station-screen{margin:12px 0;padding:22px;text-align:center;border:1px solid #3e8491;background:radial-gradient(circle,#173c48,#020912);color:#70edff}.station-screen b,.station-screen small{display:block;letter-spacing:2px}.station-screen small{font:9px Consolas,monospace;color:#ffd36b;margin-top:6px}.mini-ships{font-size:25px;margin-top:18px;color:#fff}.f2-editor-station button{width:100%}.f2-info{position:absolute;left:4%;top:14%;width:260px;padding:18px;border-left:3px solid #ffd36b;background:#06121ed9;z-index:2}.f2-info h2{font-size:18px}.f2-info p{font-size:13px;line-height:1.6}.f2-elevator{position:absolute;right:4%;top:14%;width:220px;text-align:center;z-index:2}.f2-door{height:260px;display:grid;place-items:end center;border:2px solid #62d9e9;background:linear-gradient(90deg,#17303e 49%,#ffd36b 49.5% 50.5%,#102532 51%);box-shadow:0 0 30px #ffd36b2e}.f2-door span{margin-bottom:18px;background:#020a12dd;padding:8px;color:#ffd36b;font:10px Consolas,monospace}.f2-elevator button{width:100%;margin-top:10px}.guidance-strip{position:absolute;left:18%;right:18%;bottom:10%;display:flex;align-items:center;gap:15px;color:#ffd36b;font:10px Consolas,monospace;letter-spacing:2px}.guidance-strip i{flex:1;height:5px;background:linear-gradient(90deg,#ffd36b,#60dfef);box-shadow:0 0 16px #ffd36b}
.shooter-panel{width:calc(100% - 32px);max-width:1320px;height:min(760px,calc(100svh - 24px));max-height:calc(100svh - 24px);padding:22px;background:#07131f;border-color:#e8bd58;overflow:hidden}.shooter-editor{height:100%;display:flex;flex-direction:column;min-height:0}.shooter-editor>header{display:flex;justify-content:space-between;align-items:center;gap:18px}.shooter-editor h2{font-size:24px;margin:4px 0 14px}.shooter-layout{display:grid;grid-template-columns:minmax(280px,1.1fr) 150px minmax(300px,1fr);gap:18px;flex:1;min-height:0}.shooter-preview{position:relative;overflow:hidden;min-height:360px;border:1px solid #50c8dc;background:radial-gradient(circle at 50% 110%,#17556a,#06101e 55%,#020712);box-shadow:inset 0 0 40px #000}.preview-hud{display:flex;justify-content:space-between;padding:12px;color:#ffd36b;font:11px Consolas,monospace}.shooter-preview small{position:absolute;bottom:10px;left:12px;color:#70e7f5;font:9px Consolas,monospace}.player-ship,.enemy,.bullet{position:absolute;text-shadow:0 0 12px currentColor}.player-ship{left:48%;bottom:18%;font-size:38px;color:#70efff}.enemy{font-size:28px;color:#ffbd56}.e1{left:20%;top:24%}.e2{left:50%;top:14%}.e3{right:18%;top:32%}.bullet{font-size:25px;color:#fff}.b1{left:49%;bottom:40%}.b2{left:28%;bottom:56%}.systems-list{display:flex;flex-direction:column;gap:9px;padding:14px;background:#0b2230;border:1px solid #325b6d;font:10px Consolas,monospace}.systems-list b{color:#ffd36b}.systems-list span{padding:8px;background:#06131e;color:#8ee9f5;border-left:2px solid #e3b64e}.shooter-layout article{min-height:0;overflow:auto;padding:10px 14px;border-left:1px solid #345668}.shooter-layout article h3{font-size:21px;color:#ffd36b}.shooter-layout article p{font-size:14px;line-height:1.65}.shooter-layout pre{font-size:13px;line-height:1.55}.shooter-nav{height:auto;min-height:58px;padding:10px 0 0;background:transparent;justify-content:space-between}.shooter-nav strong{font:10px Consolas,monospace;color:#ffd36b}
@media(max-width:900px){.f2-info{left:2%;width:220px}.f2-elevator{right:2%;width:185px}.f2-editor-station{width:42vw}.shooter-layout{grid-template-columns:1fr 115px 1fr}.shooter-panel{padding:16px}.shooter-editor h2{font-size:20px}.shooter-layout article p{font-size:13px}}
@media(max-width:720px){.floor-two-hud{height:110px;padding:12px}.floor-two-room{height:calc(100svh - 110px)}.floor-two-hud h1{font-size:19px}.floor-two-hud h1 span{display:block;margin:3px 0}.f2-info{top:3%;left:3%;width:44%}.f2-editor-station{top:38%;left:3%;transform:none;width:60%}.f2-elevator{top:38%;right:3%;width:30%}.f2-door{height:190px}.shooter-layout{grid-template-columns:1fr;overflow:auto}.systems-list{display:grid;grid-template-columns:repeat(3,1fr)}.shooter-preview{min-height:260px}.shooter-layout article{overflow:visible}.shooter-editor>header h2{font-size:17px}.shooter-editor>header button{padding:8px}.shooter-nav{position:sticky;bottom:0;background:#07131f}}
/* Floor 2 three-terminal expansion */
.floor-two-room{background:radial-gradient(circle at 50% 16%,#5a3d1855 0,#173546 28%,#081725 62%,#030913 100%)}.warm-panels i{background:linear-gradient(155deg,#68481755,#153548 48%,#07131f);border-color:#ad7f38;box-shadow:inset 0 -7px #f2bd4c88,0 0 20px #ffbd4230}.cyber-marble{height:55%;opacity:.95;background:linear-gradient(118deg,transparent 0 27%,#e8b84d70 27.3% 27.7%,transparent 28% 63%,#55d9e957 63.3% 63.7%,transparent 64%),linear-gradient(40deg,transparent 0 42%,#f5cc6b42 42.3% 42.8%,transparent 43%),repeating-linear-gradient(90deg,#08111b 0 112px,#142531 113px 116px),repeating-linear-gradient(0deg,#101f2a 0 74px,#02070e 75px 78px);transform:perspective(480px) rotateX(57deg);box-shadow:inset 0 40px 60px #52e5ef18}.cyber-marble:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#fff2 48%,transparent 56%)}.f2-stations{position:absolute;z-index:3;left:15%;right:15%;top:16%;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.f2-terminal{min-height:305px;padding:16px;display:flex;flex-direction:column;border:1px solid #4c6470;background:linear-gradient(160deg,#0a1c29f2,#07121df2);box-shadow:0 14px 40px #0008}.f2-terminal.available{border-color:#e8b84f;box-shadow:0 0 24px #e9b23e2b,0 14px 40px #0008}.f2-terminal.locked{filter:saturate(.5);opacity:.82}.f2-terminal span{font:9px Consolas,monospace;letter-spacing:1.6px;color:#ffd36b}.f2-terminal b{font-size:17px;line-height:1.3;margin:22px 0 12px;color:#f1f7fb}.f2-terminal small{font:9px/1.5 Consolas,monospace;color:#7fe8f5;margin-bottom:auto}.f2-terminal:before{content:"";height:105px;margin:12px 0;background:radial-gradient(circle,#1c5966,#06101a 70%);border:1px solid #326777;box-shadow:inset 0 -4px #d5a13d66}.f2-terminal:nth-child(2):before{background:repeating-linear-gradient(0deg,#091721 0 9px,#102a37 10px 11px)}.f2-terminal:nth-child(3):before{background:repeating-linear-gradient(0deg,#091721 0 7px,#183b49 8px 9px)}.f2-terminal:nth-child(4):before{background:radial-gradient(circle at 50% 80%,#55d6e8 0 3%,transparent 4%),radial-gradient(circle at 30% 30%,#eeb94a 0 3%,transparent 4%),#06101a}.f2-terminal button{margin-top:15px}.f2-info{width:205px}.f2-elevator{width:180px}.f2-door{height:230px}.guidance-strip{left:20%;right:20%;bottom:8%}.guidance-strip i{min-width:35px}
.launch-panel{width:min(980px,calc(100% - 24px));max-width:980px;height:min(690px,calc(100svh - 20px));max-height:calc(100svh - 20px);padding:20px;border-color:#e8b84f;background:#06111c;overflow:hidden}.launch-bay{height:100%;display:flex;flex-direction:column}.launch-bay header{display:flex;justify-content:space-between;align-items:center}.launch-bay h2{font-size:24px;margin:4px 0}.launch-help{font:11px/1.5 Consolas,monospace!important;color:#ffd36b;margin:7px 0!important}.launch-frame{position:relative;flex:1;min-height:0;display:grid;place-items:center;background:#020710;border:1px solid #315c6e;overflow:hidden}.launch-frame canvas{width:100%;height:100%;object-fit:contain;outline:none}.launch-bay footer{height:44px;padding:0 14px;background:#091b28;justify-content:space-between;color:#ffd36b}.launch-frame #launch-result{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:#030914dd;z-index:3}.launch-frame #launch-result[hidden]{display:none}.launch-frame #launch-result h3{font-size:29px;color:#ffd36b;margin:0}.launch-frame #launch-result p{max-width:460px}.launch-frame #launch-result button{justify-self:center}.terminal-panel textarea[aria-label="Shooter builder code"]{font-size:15px}
@media(max-width:1050px){.f2-stations{left:10%;right:10%;gap:8px}.f2-terminal{padding:11px}.f2-terminal b{font-size:14px}.f2-info{left:2%;width:190px}.f2-elevator{right:2%;width:155px}}
@media(max-width:720px){.f2-stations{left:3%;right:34%;top:26%;grid-template-columns:1fr;gap:7px}.f2-terminal{min-height:0;display:grid;grid-template-columns:1fr auto;align-items:center}.f2-terminal:before{display:none}.f2-terminal b{margin:8px 0}.f2-terminal small{grid-column:1}.f2-terminal button{grid-column:2;grid-row:1/3;margin:0}.f2-info{top:2%;width:60%;}.f2-elevator{top:26%;}.guidance-strip{display:none}.launch-panel{padding:12px}.launch-bay h2{font-size:18px}.launch-help{font-size:9px!important}}

/* Keep the transparent input plane pixel-aligned with its painted syntax plane. */
.terminal-panel .editor-stack textarea,
.terminal-panel .editor-stack pre,
.terminal-panel #line-numbers{
  font-family:Consolas,'Courier New',monospace;
  font-size:16px;
  line-height:24px;
  font-weight:400;
  font-style:normal;
  font-variant-ligatures:none;
  font-feature-settings:'liga' 0,'calt' 0;
  letter-spacing:0;
  word-spacing:0;
  tab-size:4;
  text-indent:0;
  text-align:left;
  white-space:pre;
  overflow-wrap:normal;
  box-sizing:border-box;
}
.terminal-panel .editor-stack textarea,
.terminal-panel .editor-stack pre{padding:12px 15px 28px}
.terminal-panel .editor-stack pre{overflow:hidden}
.terminal-panel .editor-stack textarea{overflow:auto;resize:none}
.terminal-panel #line-numbers{padding:12px 10px 28px 0;text-align:right}
.terminal-panel .keyword{color:#c7a4ff}
.terminal-panel .function-name{color:#63e6ff}
.terminal-panel .function-call{color:#66ddc5}
.terminal-panel .variable{color:#f4d77b}
.terminal-panel .operator{color:#ff91ad}
.terminal-panel .punctuation{color:#91aabd}
.terminal-panel .string{color:#9fe3b4}
.terminal-panel .dict-key{color:#efa6d2}
.terminal-panel .number{color:#ffbd86}
.terminal-panel .comment{color:#6f91a6}

/* Floor 1 Terminal 3: compact playable output of the RPS-with-HP build. */
.rps-game-panel{width:min(900px,calc(100% - 28px));max-width:900px;max-height:calc(100svh - 24px);padding:22px;border-color:#58d8e9;background:linear-gradient(155deg,#071522,#0c1f2e);overflow:auto}
.rps-mock{display:flex;min-height:540px;flex-direction:column;gap:16px}.rps-mock header,.rps-mock footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.rps-mock h2{margin:3px 0;font-size:27px}.rps-mock>p{margin:0;max-width:760px;color:#b8ceda;line-height:1.55}.rps-scoreboard{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:16px;border:1px solid #315f73;background:#03101a}.rps-scoreboard>div:not(.rps-versus){display:flex;flex-direction:column;gap:8px;text-align:center}.rps-scoreboard span{font:10px Consolas,monospace;letter-spacing:2px;color:#8fddea}.rps-scoreboard strong{font:25px Consolas,monospace;color:#ffd36b;text-shadow:0 0 14px #ffba4977}.rps-versus{font:800 18px Consolas,monospace;color:#ff668d}.rps-stage{display:grid;grid-template-columns:150px 1fr 150px;align-items:center;gap:18px;min-height:170px;padding:18px;border:1px solid #284e62;background:radial-gradient(circle at 50% 50%,#12364a,#020912 72%)}.rps-hand{display:grid;place-items:center;box-sizing:border-box;height:126px;min-width:0;padding:8px;border:1px solid #4cb7c9;background:#071c29;font:700 clamp(18px,2vw,28px) Arial,sans-serif;letter-spacing:.5px;white-space:nowrap;overflow:hidden;box-shadow:inset 0 0 28px #41cbe829}.rps-stage [role=status]{text-align:center;font-size:16px;line-height:1.5;color:#eefaff}.rps-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.rps-choices button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:13px 16px;text-align:left}.rps-choices b{font-size:25px}.rps-choices kbd{border:1px solid #587487;padding:2px 6px;background:#03101a;color:#9defff}.rps-mock footer{margin-top:auto;padding-top:10px;border-top:1px solid #284655}.rps-mock footer span{font:10px Consolas,monospace;letter-spacing:1px;color:#79cbd9}
@media(max-width:720px){.rps-game-panel{padding:14px}.rps-mock{min-height:0;gap:10px}.rps-mock h2{font-size:20px}.rps-stage{grid-template-columns:90px 1fr 90px;min-height:125px;padding:10px}.rps-hand{height:90px;font-size:clamp(13px,3.2vw,20px);letter-spacing:0}.rps-choices button{grid-template-columns:1fr;text-align:center;padding:9px}.rps-choices kbd{display:none}}
.rps-accuracy-note{padding:11px 14px;border-left:3px solid #ffd36b;background:#122333;color:#a9c4d1;font-size:12px;line-height:1.5}.rps-accuracy-note strong{color:#ffd36b;font:10px Consolas,monospace;letter-spacing:1px}
.floor-three{min-height:100svh;background:#070410;color:#f6f0ff}.floor-three-hud{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid #895ec8;background:linear-gradient(90deg,#120923,#23103b,#07131f)}.floor-three-hud h1{margin:2px 0;font-size:25px}.floor-three-hud h1 span{font-size:13px;color:#c9a9f5}.floor-three-room{position:relative;min-height:calc(100svh - 88px);overflow:auto;background:radial-gradient(circle at 50% 20%,#68359755,#15142c 38%,#070410 75%),repeating-linear-gradient(90deg,transparent 0 79px,#b78cff14 80px 81px)}.f3-info{max-width:720px;margin:0 auto;padding:26px 20px 12px;text-align:center}.f3-info h2{margin:5px}.f3-info p{margin:6px;color:#c5b5d5}.f3-stations{width:min(1120px,calc(100% - 40px));margin:20px auto;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.f3-terminal{min-height:310px;padding:16px;display:flex;flex-direction:column;border:1px solid #5b4775;background:linear-gradient(155deg,#24133af0,#0a1422f2);box-shadow:0 16px 40px #0009}.f3-terminal.available{border-color:#b78cff;box-shadow:0 0 22px #a66cff33,0 16px 40px #0009}.f3-terminal.locked{opacity:.58}.f3-terminal:before{content:"";height:105px;margin:13px 0;border:1px solid #74539c;background:radial-gradient(circle,#73efff 0 3%,#5f2f8b55 4% 24%,#080511 70%)}.f3-terminal:nth-child(2):before{background:repeating-linear-gradient(0deg,#090512 0 8px,#38214c 9px 10px)}.f3-terminal:nth-child(3):before{background:linear-gradient(90deg,#0a0711 0 47%,#b78cff33 48% 52%,#0a0711 53%)}.f3-terminal:nth-child(4):before{background:radial-gradient(circle,#ffd36b 0 5%,#73efff33 6% 28%,#090512 70%)}.f3-terminal span{font:9px Consolas,monospace;letter-spacing:1.4px;color:#cdaaff}.f3-terminal b{margin:8px 0;font-size:17px;line-height:1.35}.f3-terminal small{margin-bottom:auto;color:#73efff;font:9px/1.5 Consolas,monospace}.f3-terminal button{margin-top:16px}.f3-elevator{text-align:center;padding:12px 0 30px}.guess-lesson-card{min-height:390px;padding:24px;border:1px solid #5e4780;background:#160d27}.guess-lesson-card h3{font-size:24px}.guess-lesson-card p{font-size:15px;line-height:1.65;color:#d8cce5}.guess-game-panel{width:min(720px,calc(100% - 24px));padding:24px;border-color:#b78cff;background:linear-gradient(155deg,#10081d,#081725)}.guess-game header{display:flex;justify-content:space-between;align-items:center}.guess-game h2{font-size:27px}.guess-display{margin-top:22px;min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;border:1px solid #7653a2;background:radial-gradient(circle,#30204d,#090512 70%)}.guess-display p{min-height:48px;max-width:520px;text-align:center;font-size:18px;line-height:1.5}.guess-display input{width:120px;padding:12px;text-align:center;border:2px solid #73efff;background:#080511;color:#ffd36b;font:700 30px Consolas,monospace}.guess-display strong{color:#ffd36b;font:11px Consolas,monospace;letter-spacing:2px}.guess-display [hidden]{display:none}
@media(max-width:850px){.f3-stations{grid-template-columns:repeat(2,1fr)}.f3-terminal{min-height:240px}.f3-terminal:before{height:70px}}@media(max-width:520px){.f3-stations{grid-template-columns:1fr}.floor-three-hud{padding:0 14px}.floor-three-hud h1{font-size:18px}.guess-game-panel{padding:14px}.guess-display{min-height:300px}}
.floor-four{min-height:100svh;background:#040b12;color:#edf8ff}.floor-four-hud{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid #38c7d5;background:linear-gradient(90deg,#061622,#0e2631,#1d1327)}.floor-four-hud h1{margin:2px 0;font-size:25px}.floor-four-hud h1 span{font-size:13px;color:#ffc96b}.floor-four-room{min-height:calc(100svh - 88px);overflow:auto;background:radial-gradient(circle at 50% 10%,#1f718344,#07121c 43%,#03080d 80%),repeating-linear-gradient(90deg,transparent 0 89px,#65efff10 90px 91px)}.f4-info{max-width:800px;margin:auto;padding:30px 20px 12px;text-align:center}.f4-info h2{margin:6px}.f4-info p{color:#bcd3df}.f4-stations{width:min(1050px,calc(100% - 40px));margin:24px auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.f4-terminal{min-height:330px;padding:18px;display:flex;flex-direction:column;border:1px solid #31576a;background:linear-gradient(160deg,#102536f5,#07111df5);box-shadow:0 16px 42px #0009}.f4-terminal.available{border-color:#65eafa;box-shadow:0 0 24px #44d9e533,0 16px 42px #0009}.f4-terminal.locked{opacity:.55}.f4-terminal:before{content:"♪";height:125px;margin:12px 0;display:grid;place-items:center;color:#6fefff;font-size:55px;border:1px solid #275468;background:radial-gradient(circle,#15869a44,#03101a 70%)}.f4-terminal:nth-child(2):before{content:"</>";color:#ffc857;font:700 34px Consolas,monospace}.f4-terminal:nth-child(3):before{content:"▲  •  ▼";font-size:30px;color:#8cf4ff}.f4-terminal span{font:9px Consolas,monospace;letter-spacing:1.5px;color:#77efff}.f4-terminal b{font-size:19px;margin:8px 0}.f4-terminal small{margin-bottom:auto;color:#ffc857;font:9px/1.6 Consolas,monospace}.f4-terminal button{margin-top:18px}.f4-elevator{padding:10px 20px 35px;display:flex;justify-content:center;align-items:center;gap:24px}.f4-elevator span{font:9px Consolas,monospace;letter-spacing:2px;color:#8198a7}.audio-lesson-panel{width:min(1260px,calc(100% - 30px));padding:24px;border-color:#58ddea}.audio-lesson header{display:flex;justify-content:space-between;align-items:center}.audio-lesson h2{margin:5px 0 18px}.audio-lesson-grid{display:grid;grid-template-columns:minmax(230px,.65fr) minmax(480px,1.6fr);gap:24px;min-height:500px}.project-tree{padding:20px;border:1px solid #31566b;background:#06101a}.project-tree b{font:10px Consolas,monospace;letter-spacing:2px;color:#ffc857}.project-tree pre{font:14px/1.8 Consolas,monospace;color:#bfefff;white-space:pre-wrap}.terminal-note{display:flex;flex-direction:column;gap:8px;margin-top:46px;padding:14px;border-left:3px solid #ffc857;background:#102536;color:#c9dce7;font-size:12px;line-height:1.5}.terminal-note strong{color:#ffc857;font:700 10px Consolas,monospace;letter-spacing:1.5px}.terminal-note code{display:block;padding:7px 8px;border:1px solid #31566b;background:#020912;color:#7df3ff;font:11px/1.4 Consolas,monospace;overflow-wrap:anywhere}.audio-lesson article{padding:20px;border:1px solid #31566b;background:#0e2230}.audio-lesson-grid.full-code-card{display:block;min-height:0}.full-code-card .project-tree{display:none}.full-code-card article{width:100%;min-width:0;padding:24px}.full-code-card article .example{width:100%;max-height:58vh;min-height:440px;box-sizing:border-box;overflow:auto;white-space:pre;font-size:14px;line-height:1.6;scrollbar-color:#397184 #07131f}.full-code-card .audio-explain{margin-top:22px;padding:18px 20px;border-top:1px solid #31566b;background:#091925}.audio-lesson article h3{font-size:23px}.audio-explain{font-size:15px;line-height:1.7;color:#cfdee8}.audio-explain code{color:#ffc857}.audio-launch{border-color:#66edff}.audio-launch .launch-frame{box-shadow:0 0 30px #40d9e522}@media(max-width:800px){.f4-stations{grid-template-columns:1fr}.f4-terminal{min-height:230px}.f4-terminal:before{height:70px}.audio-lesson-grid{grid-template-columns:1fr;min-height:0}.project-tree{max-height:180px;overflow:auto}.audio-lesson-panel{padding:14px}.audio-lesson article{padding:14px}.floor-four-hud{padding:0 14px}.floor-four-hud h1{font-size:18px}}

/* Floor 1 Terminal 4: whole-program code map with one teaching block active. */
.full-code-map-panel{width:min(1180px,calc(100% - 24px));max-width:1180px;height:min(720px,calc(100svh - 20px));max-height:calc(100svh - 20px);padding:20px;border-color:#7bdce8;background:#07131f;overflow:hidden}.full-code-map{height:100%;display:flex;flex-direction:column;gap:10px}.full-code-map>header{display:flex;align-items:center;justify-content:space-between;gap:16px}.full-code-map h2{margin:2px 0;font-size:25px}.map-intro{margin:0;color:#9cb8c8;font-size:12px}.code-map-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.8fr);gap:16px;min-height:0;flex:1}.full-code{overflow:auto;padding:10px 0;border:1px solid #31566a;background:#020912;scrollbar-color:#397184 #07131f}.code-map-line{display:grid;grid-template-columns:42px 1fr;min-width:max-content;padding:1px 16px 1px 0;border-left:3px solid transparent;font:13px/19px Consolas,'Courier New',monospace;white-space:pre;color:#bdd1dc}.code-map-line i{padding-right:10px;text-align:right;color:#4f7488;font-style:normal;user-select:none}.code-map-line.active{border-left-color:#ffd36b;background:linear-gradient(90deg,#ffd36b24,#4ae7f010 78%,transparent);box-shadow:inset 0 1px #ffd36b19,inset 0 -1px #ffd36b19}.code-map-line.active i{color:#ffd36b}.code-map-layout article{overflow:auto;padding:20px;border:1px solid #355d70;background:linear-gradient(155deg,#102536,#08141f)}.code-map-layout article h3{margin:5px 0 16px;font-size:21px;color:#eefaff}.code-map-layout article p{font-size:14px;line-height:1.65;color:#bdd0da}.code-map-layout article code{color:#ffd889}.code-map-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}.code-map-nav strong{text-align:center;font:10px Consolas,monospace;letter-spacing:1.5px;color:#85dce7}.code-map-nav button:last-child{justify-self:end}
@media(max-width:760px){.full-code-map-panel{padding:12px;overflow:auto}.full-code-map{height:auto;min-height:620px}.code-map-layout{grid-template-columns:1fr;overflow:visible}.full-code{height:310px}.code-map-layout article{min-height:220px;overflow:visible}.code-map-nav{position:sticky;bottom:0;padding:8px;background:#07131f}.code-map-line{font-size:11px;line-height:17px}}
.code-map-layout article strong code{display:inline-block;padding:1px 5px;border:1px solid #ffd36b80;border-radius:4px;background:#ffd36b1c;color:#fff0a8;box-shadow:0 0 12px #ffd36b22}
.code-map-layout article a{color:#7cecff;text-underline-offset:3px}.code-map-layout article a:hover,.code-map-layout article a:focus{color:#fff0a8}
.upgrade-code{margin:10px 0 0;padding:13px;overflow:auto;border:1px solid #a87934;background:#030b12;color:#cbdbe3;font:12px/1.55 Consolas,'Courier New',monospace;white-space:pre}
.code-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px;min-width:620px}.code-compare section{padding:14px;border:1px solid #355d70;background:#07131f}.code-compare b{display:block;margin-bottom:10px;color:#7cecff;font:11px Consolas,monospace;letter-spacing:1.5px}.code-compare pre{margin:0;white-space:pre-wrap;color:#d7e7ee;font:12px/1.6 Consolas,'Courier New',monospace}

/* Floor 1 Terminal 3: faithful IDE console output from the Terminal 2 program. */
.ide-output-panel{width:min(980px,calc(100% - 24px));max-width:980px;height:min(700px,calc(100svh - 20px));max-height:calc(100svh - 20px);padding:18px;border-color:#667078;background:#202124;overflow:hidden}.ide-output-mock{height:100%;display:flex;flex-direction:column;color:#d7d9dc}.ide-output-mock header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 3px 12px}.ide-output-mock h2{margin:3px 0;font-size:22px;color:#edf0f2}.ide-tabs{display:flex;gap:8px;align-items:end;height:38px;padding:7px 10px 0;border:1px solid #3b4146;border-bottom:0;background:#2b2e31}.ide-tabs span,.ide-tabs i{padding:7px 14px;border-bottom:2px solid #60b8d0;font:11px Consolas,monospace;font-style:normal}.ide-tabs i{margin-left:auto;border:0;color:#8d959b}.ide-console{flex:1;min-height:260px;overflow:auto;padding:15px;border:1px solid #444b50;background:#1e1f22;color:#d6d9dd;font:14px/1.55 Consolas,'Courier New',monospace;white-space:pre-wrap}.ide-console .command-line{color:#87929a}.ide-console .hp-line{color:#d7e5ed}.ide-console .prompt-line{color:#d7d9dc}.ide-console .prompt-line::first-line{color:#d7d9dc}.ide-console .draw-line{color:#d7d9dc}.ide-console .win-line,.ide-console .winner-line{color:#6fd08c}.ide-console .loss-line{color:#f1a07e}.ide-console .exit-line{margin-top:8px;color:#b8c5ce}.console-choice-bar{display:grid;grid-template-columns:1fr repeat(3,auto);align-items:center;gap:8px;padding:10px;border:1px solid #444b50;border-top:0;background:#292c2f}.console-choice-bar>span{font:10px Consolas,monospace;letter-spacing:1.2px;color:#9ea7ad}.console-choice-bar button{padding:9px 13px;background:#343a3f}.console-choice-bar kbd{margin-left:7px;color:#77d3e7}.console-explain{margin:10px 0;padding:10px 13px;border-left:3px solid #e5b85c;background:#292d30;color:#c6cbce;font-size:12px;line-height:1.5}.console-explain strong{color:#f1c66f}.ide-output-mock footer{display:flex;align-items:center;gap:14px}.ide-output-mock footer span{color:#9ba4aa;font-size:11px;line-height:1.4}
@media(max-width:680px){.ide-output-panel{padding:10px}.ide-output-mock header h2{font-size:17px}.ide-console{font-size:11px;min-height:230px}.console-choice-bar{grid-template-columns:repeat(3,1fr)}.console-choice-bar>span{grid-column:1/-1}.console-choice-bar button{padding:8px}.ide-output-mock footer{align-items:flex-start;flex-direction:column}}


