:root {
 --game-bg: #101b24;
 --game-surface: #1b2b34;
 --game-surface-raised: #263b44;
 --game-text: #f3ead4;
 --game-text-muted: #bec9bd;
 --game-accent: #e1be7e;
 --game-border: #5d736f;
 --game-danger: #f3b6a2;
 --game-focus: #ffe3a4;
 --game-radius: 0;
 --game-space-unit: .5rem;
 --game-max-width: 1280px;
 --game-gap: 20px;
 --game-mono: Consolas, "Courier New", monospace;
}
* {box-sizing:border-box}
body {margin:0;background:var(--game-bg);color:var(--game-text);font:15px/1.55 "Segoe UI",system-ui,sans-serif}
button {font:700 12px/1.5 var(--game-mono);background:var(--game-accent);color:var(--game-bg);border:1px solid var(--game-accent);padding:12px 16px;min-height:44px;border-radius:0;cursor:pointer;overflow-wrap:anywhere}
button:hover:not(:disabled) {filter:brightness(1.13)}
button:disabled {opacity:.45;cursor:default}
button.secondary {background:transparent;color:var(--game-text);border-color:var(--game-border)}
:focus-visible {outline:3px solid var(--game-focus);outline-offset:4px}
h2[tabindex="-1"]:focus {outline:2px solid var(--game-focus);outline-offset:4px}
h1,h2,h3,p {margin-top:0}
.masthead {max-width:var(--game-max-width);margin:auto;padding:24px 24px 20px;display:flex;align-items:center;gap:16px}
.brand-mark {padding:10px 8px;border:2px solid var(--game-accent);color:var(--game-accent);font:bold 16px var(--game-mono);box-shadow:4px 4px 0 #070f16}
.masthead h1 {font:700 16px/1.4 var(--game-mono);letter-spacing:2px;margin:0}
.masthead p {font-size:12px;color:var(--game-text-muted);margin:3px 0 0}
.episode-label {margin-left:auto;font:11px var(--game-mono);color:var(--game-accent)}
#app {max-width:var(--game-max-width);margin:auto;padding:0 24px 32px}
.stats {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.stat {position:relative;min-width:0;display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:12px 16px;background:var(--game-surface);border:1px solid var(--game-border)}
.stat-label {font-size:11px;color:var(--game-text-muted);align-self:center;overflow-wrap:anywhere}
.stat-value {font:22px/1.3 var(--game-mono);color:var(--game-accent)}
.stat-value.symbolic {font-size:12px;align-self:center}
meter {grid-column:1/-1;width:100%;height:4px;border:0;background:var(--game-border)}
meter::-webkit-meter-bar {background:var(--game-border);border:0;border-radius:0}
meter::-webkit-meter-optimum-value {background:var(--game-accent)}
.game-layout {display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px;align-items:start}
.world-card {background:#0c1720;border:2px solid var(--game-border);box-shadow:6px 6px 0 #070f16;min-width:0}
.world-topline {padding:10px 14px;display:flex;justify-content:space-between;gap:12px;color:var(--game-accent);font:11px var(--game-mono);border-bottom:1px solid var(--game-border);letter-spacing:1px}
canvas {display:block;width:100%;height:auto;aspect-ratio:3/2;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:manipulation;cursor:crosshair}
canvas:focus-visible {outline-offset:-4px}
.interaction-bar {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid var(--game-border);background:var(--game-surface)}
#near-label {font-size:12px;color:var(--game-text-muted)}
#interact {white-space:nowrap;padding:10px 12px}
kbd {display:inline-block;border:1px solid currentColor;padding:0 4px;font:inherit}
.world-controls {padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.world-controls p {font:10px/1.8 var(--game-mono);color:var(--game-text-muted);margin:0}
.dpad {display:grid;grid-template-columns:repeat(4,44px);gap:5px}
.dpad button {padding:4px;font-size:20px;color:var(--game-text);background:var(--game-surface);border-color:var(--game-border);touch-action:none;user-select:none}
.side-panel {display:grid;gap:16px;min-width:0}
.objective {padding:18px;background:var(--game-surface);border:1px solid var(--game-border)}
.eyebrow {font:9px/1.5 var(--game-mono);color:var(--game-accent);letter-spacing:1px}
.objective h2 {font:24px/1.3 Georgia,serif;margin:8px 0 12px}
.objective p {font-size:13px;color:var(--game-text-muted)}
#counters {padding-top:10px;border-top:1px solid var(--game-border)}
.counter-row {display:flex;gap:10px;justify-content:space-between;font-size:11px;margin-top:7px}
.counter-row strong {font-family:var(--game-mono);color:var(--game-accent)}
.side-panel details {border:1px solid var(--game-border);background:var(--game-surface);padding:0 12px 8px}
summary {cursor:pointer;min-height:44px;padding:12px 0;font:12px var(--game-mono)}
#location-list {display:grid;gap:4px}
.location-button {display:flex;gap:10px;align-items:center;width:100%;text-align:left;background:transparent;color:var(--game-text);border:0;font-size:12px;padding:7px 4px}
.location-indicator {color:var(--game-accent);font-size:14px;min-width:12px}
.profile {font-size:12px}
.profile ul {list-style:none;padding:0}
.profile li {margin-bottom:10px}
.profile strong {color:var(--game-accent)}
.utility {display:flex;flex-wrap:wrap;gap:8px}
.utility button {flex:1;font-size:10px;padding:8px}
footer {color:var(--game-text-muted);font-size:11px;max-width:760px;margin-top:26px}
footer blockquote {margin:0;padding:0;border:0}
footer p {margin-bottom:6px}
footer details {margin-top:10px}
footer h3 {font-size:13px}
dialog {background:var(--game-surface);color:var(--game-text);border:2px solid var(--game-accent);border-radius:0;padding:24px;max-width:min(90vw,680px);max-height:85dvh;box-shadow:8px 8px 0 #070f16}
dialog::backdrop {background:#060d1477}
#story-dialog {width:680px}
.dialog-top {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
#scene-eyebrow {font:11px var(--game-mono);color:var(--game-accent);text-transform:uppercase;letter-spacing:1px}
.close-button {font-size:24px;background:transparent;border-color:var(--game-border);color:var(--game-text);padding:0 10px;line-height:1}
[hidden] {display:none!important}
dialog h2 {font:28px/1.2 Georgia,serif;margin-bottom:16px;overflow-wrap:anywhere}
#story-body {max-height:47dvh;overflow-y:auto;padding:0 8px 0 0;scrollbar-color:var(--game-border) var(--game-surface)}
.prose {overflow-wrap:anywhere}
.prose p {margin:0 0 12px}
.prose ul,.prose ol {padding-left:22px}
.prose h3 {font:700 14px var(--game-mono);margin:20px 0 10px}
blockquote {margin:16px 0;padding:8px 0 8px 16px;border-left:2px solid var(--game-accent)}
blockquote p:last-child {margin:0}
.choices {display:grid;gap:8px;margin-top:18px}
.choices button {width:100%;text-align:left}
.effects {display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.effects span {font:11px var(--game-mono);color:var(--game-accent);border:1px solid var(--game-border);padding:6px}
.no-js {padding:24px}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:1000px) {.game-layout{grid-template-columns:minmax(0,1fr)}.side-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.episode-label{display:none}.world-controls{justify-content:flex-start}.world-controls p{margin-left:auto}}
@media(max-width:600px) {.masthead{padding:16px 12px;gap:10px}.masthead h1{font-size:12px;letter-spacing:1px}.masthead p{font-size:10px}#app{padding:0 12px 24px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{padding:10px}.stat-label{font-size:10px}.stat-value{font-size:18px}.stat-value.symbolic{font-size:10px}.side-panel{grid-template-columns:minmax(0,1fr)}.interaction-bar{flex-wrap:wrap;padding:8px}.world-controls{flex-wrap:wrap;padding:8px}.world-controls p{margin:0}.world-topline{padding:8px;font-size:10px}dialog{padding:16px;max-width:94vw;max-height:90dvh}dialog h2{font-size:24px}#story-body{max-height:45dvh}.dpad{grid-template-columns:repeat(4,44px)}}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(max-width:800px) {.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-label{grid-column:1/-1;min-height:2.8em}.stat-value{justify-self:start}.stat-value.symbolic{grid-column:1/-1;min-height:1.8em}}

.release-badge{font:10px/1.5 var(--game-mono);color:#d6c49b;border:1px solid #697b70;border-radius:0;padding:5px 8px;white-space:nowrap}.release-note{border-top:1px solid var(--game-border);padding-top:12px;margin-top:16px;font-size:11px;color:var(--game-text-muted)}.journal-ready{border-color:#a5d1bb!important;color:#c9ebda!important}
