.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}:root{--bg:#07131f;--panel:#091827e0;--panel-strong:#06121ef5;--text:#f2e8be;--muted:#b8c7c5;--amber:#ffb300;--teal:#46d9c4;--purple:#7b2d8b;--danger:#ff6f61;--border:#ffb30040;--shadow:0 18px 50px #00000059}*{box-sizing:border-box}body{min-height:100dvh;color:var(--text);background:radial-gradient(circle at top,#46d9c414,#0000 35%),linear-gradient(#0c2034 0%,#07131f 60%,#040b12 100%);margin:0;font-family:Share Tech Mono,monospace}.masthead{padding:2rem 2rem 1rem}.eyebrow,.panel-label{color:var(--teal);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .5rem;font-size:.8rem}h1,h2{margin:0;font-family:"Press Start 2P",cursive;line-height:1.3}.lede{max-width:52rem;color:var(--muted)}.layout{grid-template-columns:minmax(0,1.8fr) minmax(320px,.9fr);align-items:start;gap:1.5rem;padding:0 2rem 2rem;display:grid}.viewport-panel{aspect-ratio:4/3;border:1px solid var(--border);width:100%;max-width:960px;min-height:0;box-shadow:var(--shadow);background:linear-gradient(#050e17e6,#050a11);border-radius:12px;justify-self:center;position:relative;overflow:hidden}.game-root{width:100%;height:100%;min-height:0}.game-root canvas{max-width:100%;max-height:100%;display:block}.sidebar{align-content:start;gap:1rem;display:grid}.panel{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;padding:1rem 1.1rem}.terminal-root,.dialogue-root,.review-root,.completion-root{z-index:3;background:#040c14f0;position:absolute;inset:0}.terminal-restart-btn{z-index:10;color:var(--teal);cursor:pointer;opacity:.65;background:#0a1628e6;border:1px solid #46d9c459;border-radius:6px;padding:.25rem .65rem;font-family:Share Tech Mono,monospace;font-size:.75rem;position:absolute;top:.5rem;right:.5rem}.terminal-restart-btn:hover{opacity:1;border-color:var(--teal)}.dialogue-root,.review-root,.completion-root{background:linear-gradient(#03080e26,#03080ee0);align-items:end;padding:1.5rem;display:flex}.dialogue-card{background:var(--panel-strong);width:min(100%,860px);box-shadow:var(--shadow);border:1px solid #46d9c459;border-radius:18px;padding:1.25rem}.completion-root{justify-content:center;align-items:center}.completion-card,.review-card{background:var(--panel-strong);width:min(100%,520px);box-shadow:var(--shadow);border:1px solid #ffb30059;border-radius:18px;padding:1.5rem}.completion-title{color:var(--amber);margin:0 0 1rem;font-family:"Press Start 2P",cursive;font-size:1rem;line-height:1.4}.completion-stats,.completion-next,.score-total,.progress-text{margin:0 0 .85rem;line-height:1.5}.review-actions{flex-wrap:wrap;gap:.65rem;display:flex}.review-choice-list{gap:.65rem;margin:0 0 1rem;display:grid}.review-button{color:var(--teal);cursor:pointer;background:#ffffff08;border:1px solid #46d9c452;border-radius:10px;min-height:44px;padding:.65rem .8rem;font-family:Share Tech Mono,monospace;font-size:.9rem}.review-button.selected{border-color:var(--amber);color:var(--amber);background:#ffb30014}.review-button:disabled{opacity:.45;cursor:default}.review-stats{color:var(--muted);margin:0 0 1rem}.dialogue-speaker{color:var(--amber);margin:0 0 .75rem;font-family:"Press Start 2P",cursive;font-size:.9rem}.dialogue-text{min-height:5rem;margin:0 0 1rem;line-height:1.55}.dialogue-actions{align-items:center;gap:.75rem;display:flex}.dialogue-button{background:linear-gradient(135deg, var(--amber), #ff8a00);color:#101218;cursor:pointer;border:0;border-radius:999px;min-height:44px;padding:.75rem 1rem;font-family:"Press Start 2P",cursive;font-size:.7rem}.dialogue-hint{color:var(--muted)}.codex-list,.session-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.codex-item,.session-item{background:#ffffff05;border:1px solid #ffffff14;border-radius:12px;padding:.7rem .8rem}.codex-item.locked{color:#f2e8be73}.codex-item.unlocked{color:var(--teal);border-color:#46d9c452}.toast-root{z-index:4;position:absolute;top:1rem;left:50%;transform:translate(-50%)}.toast{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffb3001f;border:1px solid #ffb30059;border-radius:999px;padding:.8rem 1rem}.hidden{display:none}@media (width<=980px){.masthead{padding:max(1rem, env(safe-area-inset-top)) 1rem .75rem}h1{font-size:clamp(1.1rem,5vw,1.6rem)}.lede{margin:.75rem 0 0}.layout{padding:0 1rem max(1rem, env(safe-area-inset-bottom));grid-template-columns:1fr;gap:1rem}.sidebar{gap:.75rem}.panel{padding:.85rem}}@media (width<=540px){.masthead,.layout{padding-inline:.75rem}.dialogue-root,.review-root,.completion-root{padding:.75rem}.dialogue-card,.completion-card,.review-card{border-radius:8px;padding:1rem}.dialogue-actions,.review-actions{flex-direction:column;align-items:stretch}}
