:root{--bg:#16161a;--bg-image:none;--surface:#1e1e24;--surface-raised:#26262e;--surface-sunken:#141418;--overlay:none;--overlay-size:auto;--overlay-opacity:0;--overlay-blend:normal;--ink:#d8d8e0;--ink-strong:#fff;--ink-dim:#a0a0ac;--ink-faint:#6e6e7a;--accent:#8b7dd1;--accent-ink:#16161a;--accent-soft:#8b7dd11f;--accent-line:#8b7dd152;--accent-2:#7fa8c9;--ok:#7fc98f;--warn:#d9b26a;--danger:#d98080;--rule:#ffffff1a;--rule-strong:#ffffff2e;--border-width:1px;--radius:8px;--radius-sm:5px;--shadow-container:0 24px 64px -24px #000000b3;--glow:none;--focus-ring:var(--accent);--caret:var(--accent);--font-display:"Palatino","Book Antiqua",serif;--font-terminal:ui-monospace,"SF Mono",Menlo,monospace;--font-ui:var(--font-terminal);--display-transform:none;--display-tracking:.02em;--display-weight:700;--terminal-size:.9375rem;--terminal-leading:1.65;--measure:76ch;--glyph-prompt:">";--glyph-bullet:"•";--glyph-system:"*";--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--speed:.16s;--ease:cubic-bezier(.2,.6,.35,1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--bg);background-image:var(--bg-image);min-height:100vh;color:var(--ink);font-family:var(--font-terminal);font-size:var(--terminal-size);line-height:var(--terminal-leading);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;margin:0;padding:0}body:after{content:"";z-index:9999;pointer-events:none;background-image:var(--overlay);background-size:var(--overlay-size);opacity:var(--overlay-opacity);mix-blend-mode:var(--overlay-blend);position:fixed;inset:0}#terminal-container{background-color:var(--surface);border-left:var(--border-width)solid var(--rule-strong);border-right:var(--border-width)solid var(--rule-strong);max-width:68rem;height:100dvh;box-shadow:var(--shadow-container);isolation:isolate;flex-direction:column;margin:0 auto;display:flex;position:relative}#terminal-header{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-3)var(--sp-5);background-color:var(--surface-raised);border-bottom:var(--border-width)solid var(--rule);flex-wrap:wrap;display:flex}.terminal-title{font-family:var(--font-display);font-size:1.125rem;font-weight:var(--display-weight);letter-spacing:var(--display-tracking);text-transform:var(--display-transform);color:var(--accent);text-shadow:var(--glow);flex-shrink:0}.header-controls{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.header-links{gap:var(--sp-2);display:flex}.header-links a{align-items:center;gap:var(--sp-2);padding:var(--sp-1)var(--sp-3);border:var(--border-width)solid var(--accent-line);border-radius:var(--radius-sm);color:var(--ink-dim);font-family:var(--font-ui);transition:color var(--speed)var(--ease),background-color var(--speed)var(--ease),border-color var(--speed)var(--ease);background-color:#0000;font-size:.75rem;text-decoration:none;display:inline-flex}.header-links a:hover{background-color:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.header-links a svg{flex-shrink:0;width:14px;height:14px}.notification-status{padding:var(--sp-1)var(--sp-2);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--speed)var(--ease);align-items:center;font-size:.9375rem;line-height:1;display:flex}.notification-status:hover{background-color:var(--accent-soft)}.notification-status.disabled{opacity:.4;cursor:default}.notification-status.disabled:hover{background-color:#0000}.theme-selector{align-items:center;gap:var(--sp-2);display:flex}.theme-selector label{color:var(--ink-faint);font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:.6875rem}.theme-selector select{padding:var(--sp-1)var(--sp-2);border:var(--border-width)solid var(--accent-line);border-radius:var(--radius-sm);max-width:11rem;color:var(--ink);font-family:var(--font-ui);cursor:pointer;transition:border-color var(--speed)var(--ease),background-color var(--speed)var(--ease);background-color:#0000;font-size:.75rem}.theme-selector select:hover{background-color:var(--accent-soft);border-color:var(--accent)}.theme-selector select option,.theme-selector select optgroup{background-color:var(--surface-raised);color:var(--ink)}.theme-selector select optgroup{color:var(--ink-faint);font-style:normal}#command-toolbar{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-3)var(--sp-5);background-color:var(--surface-raised);border-bottom:var(--border-width)solid var(--rule);flex-wrap:wrap;display:flex}.toolbar-btn{padding:var(--sp-2)var(--sp-4);border:var(--border-width)solid var(--accent-line);border-radius:var(--radius-sm);min-width:4.5rem;color:var(--ink-dim);font-family:var(--font-ui);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:color var(--speed)var(--ease),background-color var(--speed)var(--ease),border-color var(--speed)var(--ease);background-color:#0000;font-size:.6875rem;font-weight:600}.toolbar-btn:hover{background-color:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.toolbar-btn:active,.toolbar-btn.clicked,.toolbar-btn.touch-active{background-color:var(--accent);border-color:var(--accent);color:var(--accent-ink)}#terminal-output{min-height:0;padding:var(--sp-5);scrollbar-width:thin;scrollbar-color:var(--rule-strong)transparent;overscroll-behavior:contain;flex-direction:column;flex:1;display:flex;overflow:hidden auto}#terminal-output:before{content:"";flex-grow:1}#terminal-output>*{max-width:var(--measure);width:100%}#terminal-output::-webkit-scrollbar{width:10px}#terminal-output::-webkit-scrollbar-track{background:0 0}#terminal-output::-webkit-scrollbar-thumb{background:var(--rule-strong);background-clip:content-box;border:3px solid #0000;border-radius:999px}#terminal-output::-webkit-scrollbar-thumb:hover{background:var(--accent-line);background-clip:content-box}.output-line{margin:var(--sp-2)0;white-space:pre-wrap;word-wrap:break-word;animation:line-in var(--speed)var(--ease)both}@keyframes line-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}.command-echo{margin-top:var(--sp-5);color:var(--ink-faint)}.command-echo:before{content:var(--glyph-prompt)" ";color:var(--accent);opacity:.6}.system-message{margin:var(--sp-4)0;padding-left:var(--sp-5);color:var(--accent-2);font-style:italic;position:relative}.system-message:before{content:var(--glyph-system);color:var(--accent);text-shadow:var(--glow);font-style:normal;position:absolute;left:0}.error-message{color:var(--danger)}.success-message{color:var(--ok)}.output-line strong{color:var(--ink-strong);font-weight:700}.output-line em{color:var(--accent-2);font-style:italic}.output-line code{background-color:var(--accent-soft);color:var(--accent-2);font-family:var(--font-terminal);border-radius:3px;padding:.1em .35em;font-size:.9em}.output-line .code-block{margin:var(--sp-4)0;padding:var(--sp-4);white-space:pre;border:var(--border-width)solid var(--rule);border-left:2px solid var(--accent);border-radius:var(--radius-sm);background-color:var(--surface-sunken);color:var(--ink);font-family:var(--font-terminal);font-size:.875em;line-height:1.55;overflow-x:auto}.output-line .code-block code{color:inherit;font-size:inherit;background:0 0;padding:0}.output-line .header-1,.output-line .header-2,.output-line .header-3{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);line-height:1.2}.output-line .header-1{margin:var(--sp-5)0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:2px solid var(--accent);color:var(--accent);text-transform:var(--display-transform);text-shadow:var(--glow);font-size:1.75rem}.output-line .header-2{margin:var(--sp-5)0 var(--sp-2);padding-bottom:var(--sp-1);border-bottom:var(--border-width)solid var(--rule);color:var(--ink-strong);font-size:1.25rem}.output-line .header-3{margin:var(--sp-4)0 var(--sp-1);color:var(--accent-2);letter-spacing:.06em;text-transform:uppercase;font-size:1rem}.welcome-message{margin:var(--sp-5)0;padding:var(--sp-5);border:var(--border-width)solid var(--accent-line);border-radius:var(--radius);background-color:var(--accent-soft);text-align:center}.activity-list{margin:var(--sp-3)0;padding:0;list-style:none}.activity-list li{margin:var(--sp-2)0;padding-left:var(--sp-5);color:var(--ink-dim);position:relative}.activity-list li:before{content:var(--glyph-bullet);color:var(--accent);text-shadow:var(--glow);position:absolute;left:0}#terminal-input-line{align-items:center;gap:var(--sp-3);padding:var(--sp-4)var(--sp-5);background-color:var(--surface-raised);border-top:var(--border-width)solid var(--rule);display:flex}.prompt{color:var(--accent);text-shadow:var(--glow);flex-shrink:0;font-size:0;font-weight:700}.prompt:before{content:var(--glyph-prompt);font-size:var(--terminal-size)}#terminal-form{flex:1;min-width:0;display:flex}#terminal-input{min-width:0;color:var(--ink-strong);caret-color:var(--caret);font-family:var(--font-terminal);font-size:var(--terminal-size);background:0 0;border:none;outline:none;flex:1;padding:0}#terminal-input::placeholder{color:var(--ink-faint)}.component-container{margin:var(--sp-4)0;width:100%}.action-row{gap:var(--sp-2);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.game-button{min-height:2.25rem;padding:var(--sp-2)var(--sp-4);border:var(--border-width)solid var(--accent-line);border-radius:var(--radius-sm);color:var(--ink);font-family:var(--font-ui);cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:color var(--speed)var(--ease),background-color var(--speed)var(--ease),border-color var(--speed)var(--ease);background-color:#0000;flex:0 auto;font-size:.8125rem;position:relative}.game-button:hover{background-color:var(--accent-soft);border-color:var(--accent)}.game-button:active,.game-button.clicked,.game-button.touch-active{background-color:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.game-button:disabled,.game-button.disabled,.game-button.processing{opacity:.45;cursor:not-allowed}.game-button.processing{color:#0000}.game-button.processing:after{content:"";border:2px solid var(--accent-line);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;animation:.7s linear infinite button-spinner;position:absolute;top:50%;left:50%}@keyframes button-spinner{to{transform:rotate(360deg)}}.game-button.style-primary{background-color:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.game-button.style-primary:hover{filter:brightness(1.12)}.game-button.style-secondary{color:var(--ink-dim)}.game-button.style-success{border-color:var(--ok);color:var(--ok)}.game-button.style-success:hover,.game-button.style-success:active{background-color:var(--ok);color:var(--accent-ink)}.game-button.style-danger{border-color:var(--danger);color:var(--danger)}.game-button.style-danger:hover,.game-button.style-danger:active{background-color:var(--danger);color:var(--accent-ink)}:where(a,button,select,input):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}[data-shell=margin] #terminal-output{padding-left:15rem;display:block}[data-shell=margin] #terminal-output:before{content:none}[data-shell=margin] #terminal-output>.command-echo,[data-shell=margin] #terminal-output>.system-message{float:left;clear:left;text-align:right;width:11rem;max-width:11rem;margin-left:-13.5rem;padding-left:0;font-size:.8125em;line-height:1.5}[data-shell=margin] .system-message:before{margin-right:.35em;position:static}[data-shell=slip] #terminal-container{max-width:42rem}[data-shell=sheet] #terminal-header{right:var(--sp-5);z-index:6;align-items:flex-start;gap:var(--sp-2);width:auto;max-width:22rem;padding:var(--sp-3)var(--sp-4);border:var(--border-width)solid var(--rule-strong);background-color:var(--surface-raised);flex-direction:column;position:absolute;bottom:5.5rem}[data-shell=sheet] .terminal-title{padding-bottom:var(--sp-2);border-bottom:var(--border-width)solid var(--rule);width:100%}[data-shell=sheet] #command-toolbar{justify-content:flex-start}[data-shell=sheet] #terminal-output{padding-bottom:11rem}[data-shell=slab] #terminal-header{align-items:center;gap:var(--sp-3);padding-top:var(--sp-6);padding-bottom:var(--sp-4);background-color:#0000;border-bottom:none;flex-direction:column}[data-shell=slab] .terminal-title{font-size:2.25rem}[data-shell=slab] #terminal-input-line{order:3}[data-shell=slab] #command-toolbar{border-bottom:none;border-top:var(--border-width)solid var(--rule);background-color:#0000;order:4}@media (width<=48rem){:root{--terminal-size:.875rem;--sp-5:1rem}#terminal-container{border-left:none;border-right:none}#terminal-header{padding:var(--sp-3)var(--sp-4);gap:var(--sp-2)}.terminal-title{font-size:1rem}.header-controls{justify-content:space-between;width:100%}.theme-selector label{white-space:nowrap;clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#command-toolbar{padding:var(--sp-2)var(--sp-3);gap:var(--sp-1)}.toolbar-btn{min-width:0;padding:var(--sp-2)var(--sp-2);letter-spacing:.05em;flex:1;font-size:.625rem}#terminal-output,#terminal-input-line{padding-left:var(--sp-4);padding-right:var(--sp-4)}.output-line .header-1{font-size:1.375rem}.output-line .header-2{font-size:1.125rem}[data-shell=margin] #terminal-output{padding-left:var(--sp-4);display:flex}[data-shell=margin] #terminal-output:before{content:""}[data-shell=margin] #terminal-output>.command-echo,[data-shell=margin] #terminal-output>.system-message{float:none;width:100%;max-width:var(--measure);text-align:left;margin-left:0;font-size:1em}[data-shell=margin] #terminal-output>.system-message{padding-left:var(--sp-5)}[data-shell=margin] .system-message:before{margin-right:0;position:absolute}[data-shell=slip] #terminal-container{max-width:none}[data-shell=slip] #terminal-container:before,[data-shell=slip] #terminal-container:after{content:none}[data-shell=sheet] #terminal-header{width:auto;max-width:none;padding:var(--sp-3)var(--sp-4);border:none;border-bottom:var(--border-width)solid var(--rule);flex-direction:row;align-items:center;position:static}[data-shell=sheet] .terminal-title{border-bottom:none;width:auto;padding-bottom:0}[data-shell=sheet] #terminal-output{padding-bottom:var(--sp-5)}[data-shell=slab] .terminal-title{font-size:1.25rem}[data-shell=slab] #terminal-header{padding-top:var(--sp-4)}}@media (prefers-contrast:more){:root{--rule:var(--rule-strong);--accent-line:var(--accent)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}