@font-face{font-family:PS2P;src:url(ps2p.woff2) format('woff2');font-display:swap}
:root{--bg:#0b0b1a;--ink:#f4f1de;--dim:#9a98b0;--blue:#2b4bd8;--red:#e23b3b;--gold:#ffcc33;--green:#47c96b;--panel:#15153a}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:PS2P,ui-monospace,monospace;-webkit-tap-highlight-color:transparent}
body{min-height:100vh;display:flex;justify-content:center}
#app{width:100%;max-width:720px;padding:10px 10px 90px;position:relative}
.flag{height:6px;background:linear-gradient(90deg,var(--blue) 33%,var(--ink) 33% 66%,var(--red) 66%);margin-bottom:8px}
canvas#scene{width:100%;aspect-ratio:16/9;image-rendering:pixelated;display:block;border:4px solid var(--ink);background:#000}
.hud{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:8px 0;font-size:9px;text-align:center}
.hud div{background:var(--panel);border:2px solid #34346a;padding:6px 2px;line-height:1.6}
.hud b{display:block;color:var(--gold);font-size:11px;font-weight:normal}
.hud .low b{color:var(--red);animation:blink .6s steps(2) infinite}
@keyframes blink{50%{opacity:.3}}
#text{background:var(--panel);border:4px solid var(--ink);padding:14px;font-size:12px;line-height:1.9;min-height:120px;white-space:pre-wrap}
#text h1{font-size:22px;line-height:1.4;margin:0 0 6px;color:var(--gold);text-shadow:3px 3px 0 var(--red)}
#text h2{font-size:14px;margin:0 0 8px;color:var(--gold)}
#text .bad{color:var(--red)}#text .good{color:var(--green)}#text .dim{color:var(--dim);font-size:10px}
#choices{display:flex;flex-direction:column;gap:8px;margin-top:10px}
button,.btn{font:inherit;font-size:12px;color:var(--ink);background:var(--blue);border:0;padding:14px 12px;text-align:left;cursor:pointer;box-shadow:0 4px 0 #142670,inset 0 0 0 2px #6f86ff;line-height:1.5;text-decoration:none;display:block}
button:active,.btn:active{transform:translateY(3px);box-shadow:0 1px 0 #142670}
button .k{color:var(--gold);margin-right:8px}
button.alt{background:#2c2c55;box-shadow:0 4px 0 #111130,inset 0 0 0 2px #55558a}
/* Tip button: big, gold, pixel */
.tip{display:block;text-align:center;background:var(--gold);color:#1a1200;font-size:15px;padding:16px 10px 14px;margin:14px 0 4px;text-decoration:none;
  box-shadow:0 6px 0 #a87a00,inset 0 0 0 3px #fff3b0,inset -6px -6px 0 #e0a800;animation:pulse 1.4s steps(2) infinite;letter-spacing:1px}
.tip small{display:block;font-size:8px;margin-top:8px;letter-spacing:0;color:#3b2c00;line-height:1.6}
.tip:active{transform:translateY(4px);box-shadow:0 2px 0 #a87a00}
@keyframes pulse{50%{box-shadow:0 6px 0 #a87a00,inset 0 0 0 3px #fff,inset -6px -6px 0 #ffb700,0 0 18px #ffcc33}}
.tipmini{position:fixed;right:10px;bottom:10px;z-index:5;background:var(--gold);color:#1a1200;font-size:10px;padding:10px 12px;text-decoration:none;box-shadow:0 4px 0 #a87a00,inset 0 0 0 2px #fff3b0}
.topbar{display:flex;justify-content:space-between;align-items:center;font-size:9px;margin-bottom:6px;gap:6px}
.topbar a,.topbar button{color:var(--dim);background:none;box-shadow:none;padding:4px;font-size:9px}
.note{font-size:8px;color:var(--dim);line-height:1.8;margin-top:8px}
.card{border:4px solid var(--gold);background:#1d1030;padding:14px;margin:10px 0;text-align:center;font-size:13px;line-height:1.9}
.links{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.links>*{flex:1 1 45%}
[hidden]{display:none!important}
@media (max-width:480px){#text{font-size:11px;padding:10px}button{font-size:11px;padding:12px 10px}.hud{font-size:7px}.hud b{font-size:9px}#text h1{font-size:17px}.tip{font-size:13px}}
.about{font-size:11px;line-height:1.9}.about a{color:var(--gold)}.about li{margin-bottom:10px}
.hud .wide{grid-column:1/-1;font-size:8px;padding:5px 2px}
canvas.aim{cursor:crosshair;touch-action:none}
.store{margin:8px 0;font-size:10px;line-height:1.5}
.srow{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;border-bottom:1px dashed #34346a;padding:6px 0}
.srow .dim{font-size:8px}.sp{color:var(--gold)}
.sq{display:flex;align-items:center;gap:6px}.sq b{min-width:22px;text-align:center;color:var(--gold);font-weight:normal}
.sq button{padding:8px 11px;font-size:12px;text-align:center;box-shadow:0 3px 0 #142670}
.stot{margin-top:6px;font-size:11px}.stot b{color:var(--gold);font-weight:normal}
table.score{width:100%;border-collapse:collapse;font-size:10px;margin:8px 0}table.score td{padding:5px 2px;border-bottom:1px dashed #34346a}table.score td:last-child{text-align:right;color:var(--gold)}
table.score tr.tot td{font-size:13px;color:var(--gold);border-top:2px solid var(--ink)}table.score tr.me td{background:#3a2a00;color:var(--gold)}
#nm{font:inherit;font-size:13px;background:#000;color:var(--gold);border:3px solid var(--ink);padding:10px;width:100%;margin-top:6px}
@media (max-width:480px){.store{font-size:9px}.srow .dim{font-size:7px}.sq button{padding:8px 9px}}
/* ===== Oregon-Trail-style art direction ===== */
body{background:#000}
#app{max-width:760px}
.stage{position:relative;border:0;background:#000;line-height:0}
canvas#scene{aspect-ratio:16/10;border:0;image-rendering:pixelated;image-rendering:crisp-edges}
.cap{position:absolute;left:50%;transform:translateX(-50%);bottom:9%;width:62%;background:#fff;color:#000;border:2px solid #000;outline:2px solid #fff;text-align:center;
 font-family:"Times New Roman",Times,Georgia,serif;line-height:1.15;padding:.35em .5em .3em;font-size:clamp(11px,2.6vw,19px)}
.cap b{display:block;font-weight:bold;letter-spacing:.02em}.cap span{display:block;font-size:.88em}
.cap.status{width:78%;text-align:left;font-family:PS2P,monospace;font-size:clamp(7px,1.5vw,11px);line-height:1.7;bottom:9%;padding:.6em .9em}
.cap.status .row{display:flex;justify-content:space-between}
.bar{position:absolute;left:0;right:0;bottom:0;height:8%;background:#000;color:#fff;font-family:"Times New Roman",Times,serif;font-weight:bold;font-size:clamp(10px,2.3vw,17px);
 display:flex;align-items:center;justify-content:center;line-height:1;cursor:pointer;letter-spacing:.03em}
.bar.blink{animation:blink 1.1s steps(2) infinite}
#text{background:#000;border:0;color:#fff;padding:12px 4px;min-height:0}
#text h2{color:#fff;text-transform:none}
#text h1{color:#fff;text-shadow:none}
.hud div{background:#000;border:1px solid #444}
#choices button{background:#000;color:#fff;box-shadow:none;border:0;padding:9px 6px;font-size:12px}
#choices button:hover,#choices button:focus-visible{background:#fff;color:#000;outline:0}
#choices button:hover .k,#choices button:focus-visible .k{color:#000}
#choices button.alt{background:#000;box-shadow:none}
#choices button .k{color:#fff}
#choices{gap:2px;border-top:1px dashed #444;padding-top:6px}
#choices.only-continue{display:none}
.flag{display:none}
.topbar{color:#aaa}
#ep,.pname{font:inherit;font-size:13px;background:#000;color:var(--gold);border:3px solid var(--ink);padding:10px;width:100%;margin-top:6px;display:block}
.pname::placeholder,#ep::placeholder{color:#666}
