:root{--paper: #e8e0c4;--dim: #9a8f6a;--bg: #171207;--accent: #c9b45a;--blood: #a33b2e}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;background:var(--bg)}body{font-family:Courier New,ui-monospace,monospace;color:var(--paper)}canvas.game{position:fixed;top:0;right:0;bottom:0;left:0;display:block}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}#ui .screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:auto}#title{background:radial-gradient(ellipse at 50% 30%,#5346198c,#0a0803f7 75%),repeating-linear-gradient(0deg,rgba(255,240,170,.028) 0 2px,transparent 2px 4px),var(--bg)}#title h1{font-size:clamp(42px,9vw,110px);letter-spacing:.18em;font-weight:700;color:var(--paper);text-shadow:0 0 24px rgba(220,190,90,.35),0 0 3px rgba(230,210,130,.8);animation:flick 7s infinite}#title .sub{color:var(--dim);letter-spacing:.5em;margin:8px 0 46px;font-size:clamp(10px,1.6vw,15px);animation:flick 11s infinite reverse}@keyframes flick{0%,to{opacity:1}3%{opacity:.55}4%{opacity:1}38%{opacity:1}39%{opacity:.25}40%{opacity:.9}41%{opacity:.4}42%{opacity:1}71%{opacity:.75}72%{opacity:1}}.panel{display:flex;flex-direction:column;gap:14px;width:min(420px,88vw)}.row{display:flex;gap:10px;align-items:center}input[type=text]{background:#141006d9;border:1px solid #4a4022;color:var(--paper);font:inherit;font-size:16px;padding:12px 14px;flex:1;letter-spacing:.12em;outline:none}input[type=text]:focus{border-color:var(--accent)}button{background:#2a2310;border:1px solid #5a4e26;color:var(--paper);font:inherit;font-size:15px;letter-spacing:.2em;padding:13px 18px;cursor:pointer;transition:background .15s,border-color .15s}button:hover{background:#3d3316;border-color:var(--accent)}button.primary{background:#4a3d15}button:disabled{opacity:.4;cursor:default}.swatches{display:flex;gap:8px}.swatch{width:30px;height:30px;cursor:pointer;border:2px solid transparent;border-radius:3px}.swatch.sel{border-color:var(--paper)}.hint{color:var(--dim);font-size:12px;letter-spacing:.08em;line-height:1.7}.errmsg{color:var(--blood);font-size:13px;min-height:18px;letter-spacing:.05em}label.chk{display:flex;gap:8px;align-items:center;color:var(--dim);font-size:13px;cursor:pointer}#hud{position:absolute;top:0;right:0;bottom:0;left:0;display:none}#stamina{position:absolute;bottom:34px;left:50%;transform:translate(-50%);width:180px;height:4px;background:#00000080;opacity:0;transition:opacity .4s}#stamina .fill{height:100%;background:var(--paper);width:100%}#crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:3px;height:3px;border-radius:50%;background:#e8e0c480}#ptt{position:absolute;bottom:30px;right:36px;color:var(--dim);font-size:12px;letter-spacing:.15em}#ptt.on{color:#b6e0a8}#toast{position:absolute;top:16%;left:50%;transform:translate(-50%);color:var(--paper);letter-spacing:.25em;font-size:15px;text-shadow:0 0 12px rgba(0,0,0,.9);text-align:center;opacity:0;transition:opacity .6s}#objective{position:absolute;top:26px;left:50%;transform:translate(-50%);color:#d6caa08c;font-size:11px;letter-spacing:.3em}#hint{position:absolute;top:58%;left:50%;transform:translate(-50%);color:#ffb347e6;font-size:14px;letter-spacing:.2em;text-shadow:0 0 10px rgba(0,0,0,.9)}#pips{position:absolute;top:62px;left:50%;transform:translate(-50%);display:flex;gap:7px}#pips .pip{width:11px;height:11px;border:1px solid rgba(255,179,71,.6);transform:rotate(45deg);background:transparent;transition:background .4s,border-color .4s}#pips .pip.on{background:#4dff88;border-color:#4dff88;box-shadow:0 0 8px #4dff8899}#rtimer{position:absolute;top:24px;right:36px;color:#d6caa066;font-size:13px;letter-spacing:.2em}#team{position:absolute;top:24px;left:36px;display:flex;flex-direction:column;gap:5px}#team .tm{color:#e8e0c4bf;font-size:12px;letter-spacing:.1em;display:flex;align-items:center;gap:7px;text-shadow:0 1px 3px #000}#team .tm .dot{width:8px;height:8px;border-radius:50%;display:inline-block}#team .tm.down{color:#ff6b5a;animation:flick 1.2s infinite}#team .tm.echo{color:#96918280}#sanitybar{position:absolute;bottom:46px;left:50%;transform:translate(-50%);width:120px;height:3px;background:#00000080;opacity:0;transition:opacity .6s}#sanitybar .fill{height:100%;background:#9a8f6ae6}#bleed{display:none;position:absolute;bottom:18%;left:50%;transform:translate(-50%);color:#ff6b5a;font-size:15px;letter-spacing:.25em;text-align:center;text-shadow:0 0 14px rgba(0,0,0,1);animation:flick 1.6s infinite}#revivebar{display:none;position:absolute;bottom:24%;left:50%;transform:translate(-50%);text-align:center}#revivebar .label{color:var(--paper);font-size:13px;letter-spacing:.2em;margin-bottom:7px;text-shadow:0 0 10px #000}#revivebar .track{width:220px;height:6px;background:#0009;border:1px solid #4a4022}#revivebar .fill{height:100%;background:#b6e0a8;width:0}#downarrow{display:none;position:absolute;top:30%;left:50%;transform:translate(-50%);flex-direction:column;align-items:center;gap:5px}#downarrow .tri{width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:15px solid #ff6b5a;filter:drop-shadow(0 0 6px rgba(0,0,0,.9))}#downarrow .dlabel{color:#ff6b5a;font-size:12px;letter-spacing:.2em;text-shadow:0 0 10px #000}#bottles{position:absolute;bottom:30px;left:36px;color:#cfe3d8;font-size:14px;letter-spacing:.2em;text-shadow:0 0 8px #000}#bottles .q{color:var(--dim);font-size:11px}#chatlog{position:absolute;bottom:90px;left:36px;width:340px;display:flex;flex-direction:column;gap:3px;font-size:13px}#chatlog .line{color:#e8e0c4d9;text-shadow:0 1px 3px #000}#chatlog .line .who{color:var(--accent)}#chatinput{position:absolute;bottom:56px;left:36px;width:340px;display:none;pointer-events:auto}#compass{position:absolute;top:50%;left:50%;width:340px;height:340px;transform:translate(-50%,-50%);pointer-events:none}#mentalmap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:none;border:1px solid rgba(200,190,150,.25);box-shadow:0 0 60px #000c}#radial{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:260px;height:260px;display:none}#radial .sym{position:absolute;width:52px;height:52px;margin:-26px;display:flex;align-items:center;justify-content:center;font-size:30px;color:#f0f0eb8c;border-radius:50%;background:#0a08038c;transition:transform .08s,color .08s}#radial .sym.sel{color:#fff;transform:scale(1.35);background:#3c3212cc}.overlay{background:#080602e0;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.overlay h2{font-size:clamp(30px,5vw,54px);letter-spacing:.3em;margin-bottom:18px}.overlay .big-death{color:var(--blood);text-shadow:0 0 30px rgba(163,59,46,.6);animation:flick 4s infinite}.overlay .big-win{color:#bfe8ff;text-shadow:0 0 30px rgba(191,232,255,.5)}.overlay p{color:var(--dim);margin-bottom:26px;letter-spacing:.1em;text-align:center;line-height:1.9;max-width:520px}.codechip{font-size:22px;letter-spacing:.35em;color:var(--accent);border:1px dashed #5a4e26;padding:10px 22px;margin-bottom:22px;cursor:pointer;-webkit-user-select:all;user-select:all}kbd{border:1px solid #4a4022;padding:1px 6px;border-radius:3px;font-size:11px;background:#241d0c;color:var(--paper)}#loading{color:var(--dim);letter-spacing:.4em;font-size:13px;animation:flick 3s infinite}
