:root{color-scheme:dark;--bg:#0B0E10;--text:#D9E2DC;--muted:#84958A;--accent:#A8DDB8;--line:#29332e;font-family:"IBM Plex Mono","Cascadia Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:14px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.7}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}::selection{background:var(--accent);color:var(--bg)}.console{max-width:1040px;margin:auto;padding:36px 40px 24px;min-height:100svh;display:flex;flex-direction:column}.system-bar{display:flex;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.separator{margin:0 10px;color:var(--line)}.status{color:var(--accent);white-space:nowrap;font-size:11px;letter-spacing:.1em}.status span{font-size:9px;margin-right:7px}.intro{padding:70px 0 46px}.welcome{margin:0 0 24px;color:var(--muted)}.accent{color:var(--accent)}.welcome .accent{margin-right:10px}h1{font-size:clamp(40px,7.5vw,76px);font-weight:500;line-height:1.15;letter-spacing:-.06em;margin:0 0 15px}.cursor{color:var(--accent);animation:blink 1.4s steps(1,end) infinite}.subtitle{font-size:12px;letter-spacing:.24em;color:var(--accent);margin:0}.description{margin:28px 0 0;color:var(--muted);max-width:580px}.terminal{border-top:1px solid var(--line);padding:22px 0}.terminal-heading{display:flex;justify-content:space-between;gap:16px;font-size:12px}.muted{color:var(--muted)}.hint{margin:24px 0 12px;color:var(--muted)}.commands{display:flex;flex-wrap:wrap;gap:6px 10px;margin-bottom:22px}.commands button{border:1px solid var(--line);background:transparent;color:var(--text);padding:4px 10px;border-radius:3px;cursor:pointer}.commands button:hover{border-color:var(--accent);color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,.output:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.output{max-height:360px;overflow:auto;overflow-wrap:anywhere;scrollbar-color:var(--line) var(--bg)}.entry{padding-bottom:20px}.echo{color:var(--accent);margin:0 0 8px}.response{white-space:pre-wrap;margin:0;color:var(--text);line-height:1.8}.response.error{color:var(--muted)}#terminal-form{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.prompt{color:var(--accent);white-space:nowrap}#command{width:100%;min-width:0;border:0;background:transparent;color:var(--text);caret-color:var(--accent);padding:4px 2px;outline-offset:2px}#command::placeholder{color:var(--muted);opacity:.7}.execute{color:var(--accent);background:transparent;border:1px solid var(--line);border-radius:3px;padding:4px 11px;cursor:pointer}.execute:hover{border-color:var(--accent)}.keyboard-help{font-size:11px;color:var(--muted);margin:12px 0 0}.keyboard-help span{padding:0 9px}footer{margin-top:auto;padding-top:48px;display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:11px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:20px;top:-100px;padding:8px;background:var(--bg);color:var(--accent)}.skip-link:focus{top:10px}@keyframes blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.cursor{animation:none}}@media(max-width:600px){.console{padding:22px 22px 20px}.system-bar{font-size:10px;gap:8px}.separator{margin:0 5px}.intro{padding:48px 0 36px}.subtitle{font-size:10px;letter-spacing:.18em}.description{font-size:13px}.terminal-heading{font-size:11px}.commands{gap:8px}.commands button{padding:7px 10px}.prompt-name{display:none}#command{font-size:16px}.execute{min-height:40px;min-width:40px}.keyboard-help{line-height:2}.keyboard-help span{padding:0 4px}footer{flex-direction:column;gap:4px;padding-top:32px}.output{max-height:320px}}
/* Terminal window revision: all page content is rendered as terminal text. */
body{background:#080a0c;padding:48px 24px}.console{max-width:1040px;min-height:0;margin:0 auto;padding:0;border:1px solid #3b4941;border-radius:9px;overflow:hidden;background:var(--bg);box-shadow:0 24px 80px #0006}.window-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;padding:0 18px;border-bottom:1px solid #344038;background:#151b18;color:var(--muted);font-size:12px}.window-controls{display:flex;gap:7px}.window-controls i{display:block;width:9px;height:9px;border-radius:50%;border:1px solid #66766b;background:#26332b}.window-mark{color:var(--accent)}.window-body{padding:30px 32px 24px}.intro{padding:0 0 22px}.banner{font:inherit;font-size:clamp(9px,1.8vw,20px);line-height:1.2;letter-spacing:0;white-space:pre;margin:18px 0 16px;color:var(--text);max-width:100%;overflow-x:auto}.subtitle{font-size:inherit;letter-spacing:0;color:var(--accent);margin:0 0 20px}.welcome{margin:0}.description{margin:0;max-width:none;color:var(--text)}.intro>.muted{margin:12px 0 0}.terminal{border:0;padding:0}.hint{margin:0;color:var(--text)}.command-label{margin:12px 0 0}.commands{gap:0 12px;margin:0 0 22px}.commands button{border:0;border-radius:0;padding:4px 0;color:var(--accent)}.commands button:hover{text-decoration:underline}#terminal-form{border:0;padding:4px 0}.execute{border:0;border-radius:0}.keyboard-help{margin:12px 0 0}.output{max-height:360px}footer{margin:0;padding-top:26px;display:flex;flex-direction:column;gap:0}.window-controls{flex-shrink:0}@media(max-width:600px){body{padding:16px 10px}.console{border-radius:6px}.window-bar{padding:0 12px;font-size:10px;gap:8px}.window-body{padding:22px 16px 18px}.banner{font-size:clamp(7px,1.7vw,10px)}.subtitle{font-size:12px}.description{font-size:13px}.commands{gap:0 15px}.commands button{min-height:44px;padding:8px 0}.keyboard-help{font-size:10px}footer{padding-top:22px}.window-mark{display:none}}
/* 0.0.2: viewport-sized terminal with one internal scrolling surface. */
body{height:100vh;height:100dvh;padding:5vh 24px;padding:5dvh 24px;overflow:hidden}.console{height:90vh;height:90dvh;min-height:0;display:flex;flex-direction:column}.window-bar{flex:0 0 44px}.window-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-color:var(--line) var(--bg);scrollbar-width:thin}.output{max-height:none;overflow:visible}.banner{flex-shrink:0}@media(max-width:600px){body{padding:5vh 10px;padding:5dvh 10px}.console{height:90vh;height:90dvh}.window-body{padding:22px 16px 18px}.output{max-height:none}}
/* 0.1.0: fixed input dock, external copyright; current palette pending selection. */
body{padding:3vh 24px 0;padding:3dvh 24px 0;display:flex;flex-direction:column;align-items:center;gap:0}.console{width:100%;flex:0 0 90vh;flex-basis:90dvh}.input-dock{flex-shrink:0;padding:14px 32px 12px;border-top:1px solid var(--line);background:var(--bg)}.input-dock #terminal-form{padding:0}.input-dock .keyboard-help{margin:6px 0 0}.site-footer{padding:0;margin:0;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;text-align:center;width:100%;font-size:11px;color:var(--muted)}.banner-response{margin:0;line-height:1.2}@media(max-width:600px){body{padding:3vh 10px 0;padding:3dvh 10px 0}.input-dock{padding:10px 16px}.site-footer{font-size:10px}}
/* 0.1.1: selected Midnight Cyan palette; typography remains unchanged. */
:root{--page:#080D16;--bg:#101827;--bar:#172236;--text:#E6EDF7;--muted:#96A8C1;--accent:#62DBF5;--line:#30415B}body{background:var(--page)}.console{border-color:var(--line)}.window-bar{background:var(--bar);border-color:var(--line)}.window-controls i{background:var(--bg);border-color:var(--muted)}.site-footer{max-width:1040px;flex-direction:row;justify-content:space-between;gap:12px;text-align:left}.site-footer .keyboard-help,.site-footer .copyright{margin:0;font-size:11px;line-height:1.5}.copyright{flex-shrink:0;text-align:right}.keyboard-help{min-width:0}.site-footer .keyboard-help span{padding:0 5px}@media(max-width:600px){.site-footer{flex-direction:row;gap:8px;padding:0}.site-footer .keyboard-help,.site-footer .copyright{font-size:9px}.site-footer .keyboard-help span{padding:0 2px}}
/* 0.1.2: persistent pointer focus and cyber window chrome. */
#command,#command:focus,#command:focus-visible{border:0;outline:none;box-shadow:none}.window-status{color:var(--accent);white-space:nowrap;font-size:11px;letter-spacing:.04em}.window-controls i{border:0;box-shadow:0 0 7px currentColor}.window-controls i:nth-child(1){color:#FF4F78;background:#FF4F78}.window-controls i:nth-child(2){color:#FFAA45;background:#FFAA45}.window-controls i:nth-child(3){color:#4DE6AA;background:#4DE6AA}@media(max-width:600px){.window-status{font-size:9px}.window-bar{gap:6px}.window-controls{gap:5px}.window-bar>span:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
/* 0.1.3: static vector scanlines across the entire viewport. */
body::after{content:"";position:fixed;inset:0;z-index:10;background-image:url("../icons/scanlines.svg");background-repeat:repeat;background-size:4px 4px;pointer-events:none;user-select:none}.skip-link:focus{z-index:11}
/* 0.2.0: SnakeEat module. */
.window-body{position:relative}.snake-panel{position:absolute;inset:0;padding:20px 26px;background:var(--bg);display:flex;flex-direction:column;align-items:center;overflow:auto;z-index:2}.snake-panel[hidden]{display:none}.game-active .input-dock{display:none}.game-active .window-body{overflow:hidden}.game-active .intro,.game-active .terminal{visibility:hidden}.snake-hud{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--accent);font-size:12px;flex-shrink:0}.snake-exit{background:none;border:1px solid var(--line);color:var(--muted);padding:4px 8px;cursor:pointer}.snake-board{position:relative;flex:1;min-height:120px;aspect-ratio:1;max-width:100%;max-height:660px;margin:12px auto;display:flex;align-items:center;justify-content:center}.snake-board canvas{display:block;width:100%;height:100%;object-fit:contain}.snake-message{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#101827e8;text-align:center}.snake-message[hidden]{display:none}.snake-message h2{font-size:clamp(32px,7vw,72px);letter-spacing:-.05em;color:var(--accent);margin:0 0 70px;font-weight:500}.snake-start{font-size:clamp(12px,2vw,18px);animation:breathe 2.4s ease-in-out infinite;margin:0}.snake-guide{font-size:11px;color:var(--muted);margin:0;flex-shrink:0}.snake-controls{display:none;gap:10px;margin-top:8px;flex-shrink:0}.snake-controls button{background:var(--bar);border:1px solid var(--line);color:var(--accent);width:44px;height:40px;touch-action:manipulation}@keyframes breathe{0%,100%{opacity:.25}50%{opacity:1}}@media(pointer:coarse){.snake-controls{display:flex}}@media(max-width:600px){.snake-panel{padding:12px}.snake-hud{font-size:10px}.snake-message h2{margin-bottom:45px}.snake-guide{font-size:9px}}@media(prefers-reduced-motion:reduce){.snake-start{animation:none}}
/* 0.2.1: four-cell map clearance and bottom status row. */
.snake-panel{display:block;padding:0;overflow:hidden}.snake-board{position:absolute;width:var(--board-size,60%);height:var(--board-size,60%);max-width:none;max-height:none;min-height:0;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;aspect-ratio:1;border:2px solid #4AA3FF;box-shadow:0 0 5px #4AA3FF;box-sizing:content-box}.snake-hud{position:absolute;top:12px;left:16px;right:16px;width:auto}.snake-bottom{position:absolute;bottom:14px;left:16px;right:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--accent)}.snake-guide{text-align:right;margin:0}.snake-controls{position:absolute;right:16px;bottom:40px}.snake-score{white-space:nowrap}@media(max-width:600px){.snake-panel{padding:0}.snake-bottom{left:10px;right:10px;font-size:10px;gap:8px}.snake-guide{font-size:8px}.snake-hud{left:10px;right:10px}.snake-controls{right:10px;gap:4px}.snake-controls button{width:32px;height:32px}}
/* 0.2.2: rectangular board and map-aligned footer. */
.snake-board{width:var(--board-width,60%);height:var(--board-height,50%);aspect-ratio:26/22}.snake-bottom{width:calc(var(--board-width,60%) + 4px);left:50%;right:auto;transform:translateX(-50%);box-sizing:border-box}.snake-bottom .snake-guide{min-width:0;overflow-wrap:anywhere}@media(max-width:600px){.snake-bottom{left:50%;right:auto;gap:6px}}
/* 0.2.3: board-attached score/help and automatic status lamp. */
.snake-board{aspect-ratio:38/24}.snake-bottom{top:calc(50% + var(--board-half-height,25%) + 10px);bottom:auto;align-items:flex-start}.snake-mode{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:3px;padding:4px 9px;color:var(--text)}.snake-auto-light{display:inline-block;width:7px;height:7px;border-radius:50%;background:#263b31;box-shadow:none}.snake-mode[data-state="AUTO"] .snake-auto-light{background:#4DFF91;box-shadow:0 0 5px #4DFF91,0 0 10px #4DFF9180}.snake-controls{bottom:12px}@media(max-width:600px){.snake-bottom{top:calc(50% + var(--board-half-height,25%) + 10px);bottom:auto}.snake-mode{padding:3px 7px}}

/* 0.3.2: mouse-independent game rendering. */
.snake-panel{pointer-events:none;contain:layout paint}.snake-board canvas{pointer-events:none;transform:translateZ(0);backface-visibility:hidden}.snake-panel .snake-controls,.snake-panel .snake-exit{display:none}body:has(.game-active)::after{display:none}.snake-panel{background-image:url("../icons/scanlines.svg")}

/* 0.3.3: SVG map rendering */
.snake-map{display:block;width:100%;height:100%;pointer-events:none}.snake-exit-hint{color:var(--muted);font-size:11px}.snake-board{isolation:isolate}
/* 0.3.4: restore the requested Esc button only. */
.snake-panel .snake-exit{display:inline-block;pointer-events:auto}
/* 0.3.7: swap only the requested status and footer positions. */
.snake-hud .snake-exit{order:0}.snake-hud .snake-mode{order:1}.snake-bottom .snake-guide{order:0;text-align:left}.snake-bottom .snake-score{order:1;text-align:right}
/* 0.3.8: uppercase game text; lamp before AUTO label. */
.snake-panel{text-transform:uppercase}.snake-mode{flex-direction:row-reverse}
/* 0.3.9: logo preserves its own letter case. */
.snake-message h2{text-transform:none}
