html,body{margin:0;height:100%;overflow:hidden;background:#000}canvas#view{position:fixed;inset:0;width:100%;height:100%;display:block}#hud{position:fixed;inset:0;pointer-events:none;font-family:Pixelify Sans,monospace;color:#f2efe6}.crosshair{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;background:#ffffffb3;box-shadow:0 0 0 1px #00000080;transition:transform .15s}.crosshair.on{transform:scale(2.2);background:#ffd76a}@font-face{font-family:IBM3270;src:url(/fonts/game/3270/3270-Regular.ttf) format("truetype");font-display:swap}#hud{--lc: #ff5a1f;--lc2: #ffb08a;font-family:IBM3270,ui-monospace,monospace}#hud .prompt,#hud .objective,#hud .sub,#hud #wp,#hud .toast{text-shadow:0 0 6px rgba(255,90,31,.45),0 1px 0 rgba(0,0,0,.9)}.prompt{position:absolute;left:50%;top:calc(50% + 34px);transform:translate(-50%);margin:0;font-size:20px;color:#f6e9e2;white-space:nowrap;letter-spacing:.02em}.prompt b{font-weight:400;color:var(--lc)}.prompt .gap{display:inline-block;width:26px}.objective{position:absolute;left:34px;top:64px;margin:0;display:grid;gap:4px;color:var(--lc);font-size:21px;letter-spacing:.02em;transition:opacity .3s}.objective .lab{font-size:15px;opacity:.85}.objective.done .t{text-decoration:line-through;opacity:.55}.objective:empty{display:none}#wp{position:fixed;left:0;top:0;color:var(--lc);font-size:19px;text-shadow:0 0 8px rgba(255,90,31,.6),0 1px 2px #000!important;letter-spacing:.04em;white-space:nowrap;pointer-events:none}#wp:after{content:"";display:block;width:7px;height:7px;margin:5px auto 0;border:1.5px solid var(--lc);transform:rotate(45deg)}#wp.edge{opacity:.8}#toasts{position:absolute;right:34px;bottom:120px;display:grid;gap:8px;justify-items:end}.toast{display:grid;gap:3px;justify-items:end;padding:6px 10px 5px;border:1.5px solid var(--lc);color:var(--lc);background:#14060273;animation:toastIn .18s steps(3) both;transition:opacity .6s}.toast b{font-weight:400;font-size:18px;letter-spacing:.04em}.toast span{font-size:14px;color:var(--lc2)}#tip{position:absolute;right:34px;top:38%;width:min(430px,40vw);display:grid;justify-items:end;gap:3px;opacity:0;transform:translate(14px);transition:opacity .25s steps(4),transform .25s steps(4)}#tip.on{opacity:1;transform:none}#tip .h{padding:5px 12px 4px;background:#1c0802db;color:var(--lc);font-size:19px;letter-spacing:.06em;text-transform:uppercase;border-left:3px solid var(--lc)}#tip .b{width:100%;min-height:1.4em;padding:9px 12px 8px;background:#1c0802b3;color:var(--lc2);font-size:17px;line-height:1.4}#tip.warn .h{background:#8f0f05;color:#fff;animation:warnBlink .5s steps(1) 4}#tip.warn .b{color:#ffd2c4}@keyframes warnBlink{50%{opacity:.35}}.toast.out{opacity:0}@keyframes toastIn{0%{opacity:0;transform:translate(10px)}}.box{position:absolute;left:50%;bottom:36px;transform:translate(-50%);width:min(760px,90vw);padding:18px 26px;background:#faf9f4f5;color:#2b2a2f;font-size:24px;box-shadow:0 0 0 4px #2b2a2f,inset 0 0 0 4px #faf9f4,inset 0 0 0 8px #b8b6c0}.box p{margin:0}.box .next{position:absolute;right:16px;bottom:8px;color:#e71419;font-size:16px}.start{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:radial-gradient(circle,#00000059,#000000d9);pointer-events:auto;cursor:pointer}.start h1{margin:0 0 12px;font-size:64px;letter-spacing:.08em}.start p{margin:4px;font-size:18px;color:#c9c6bd}.start .load{color:#ffd76a}.start.hidden{display:none}.sub{position:absolute;left:50%;bottom:108px;transform:translate(-50%);margin:0;max-width:min(900px,86vw);text-align:center;font:400 21px/1.4 IBM3270,ui-monospace,monospace;color:#f6e9e2;opacity:0;transition:opacity .35s}.sub .who{color:var(--lc)}.sub.on{opacity:1}.bench{position:absolute;left:50%;bottom:26px;transform:translate(-50%);display:flex;gap:14px;align-items:baseline;padding:10px 18px;background:#0c0c0eb8;border:1px solid rgba(255,255,255,.08);font-size:16px;max-width:92vw}.bench .n{color:#ffd76a;white-space:nowrap}.bench .keys{color:#9c9a93;white-space:nowrap;font-size:14px}.bench .keys b,.play b{color:#f2efe6;font-weight:600}.play{position:absolute;left:50%;bottom:26px;transform:translate(-50%);font-size:14px;color:#9c9a93;background:#0c0c0e99;padding:8px 14px}.title{position:absolute;left:0;right:0;top:34%;text-align:center;animation:title 6s ease forwards}.title h1,.title p.h1{margin:0;font-size:56px;letter-spacing:.12em}.title p{margin:6px 0 0;color:#c9c6bd;font-size:18px;letter-spacing:.06em}@keyframes title{0%{opacity:0}15%{opacity:1}75%{opacity:1}to{opacity:0}}.notebook{position:absolute;inset:0;display:grid;place-items:center;background:#00000073}.notebook .page{width:min(560px,88vw);min-height:560px;padding:34px 40px 40px 70px;background:#f4efe2 repeating-linear-gradient(#f4efe2 0 31px,#b8c7d9 31px 32px);background-position:0 70px;box-shadow:0 20px 60px #0009,inset 52px 0 0 -50px #e48b8b;color:#23315a;font:500 25px/32px Caveat,cursive;transform:rotate(-1.2deg)}.notebook h3{margin:0 0 6px;font:700 30px Caveat,cursive}.notebook .item{position:relative}.notebook .item.done{color:#6b7590}.notebook .item.done:after{content:"";position:absolute;left:-4px;right:8px;top:55%;height:2px;background:#3a3f55;transform:rotate(-.6deg)}.notebook .note{color:#8a3b2c}.notebook .hint{position:absolute;bottom:18px;color:#c9c6bd;font-size:14px}.term{position:fixed;inset:0;display:grid;place-items:center;background:#000;transition:opacity .8s;z-index:5}.term canvas{width:min(100vw,133vh);height:auto;aspect-ratio:4 / 3;filter:blur(.3px) contrast(1.1);border-radius:22px/18px;box-shadow:0 0 120px #3cff8c14 inset}.term.out{opacity:0;pointer-events:none}.term.dive canvas,.term.dive .clickme{opacity:0}.term.dive:after{content:"";position:absolute;left:50%;top:50%;width:8px;height:14px;margin:-7px 0 0 -4px;background:#58f08a;box-shadow:0 0 10px #50ff8cb3;animation:dive-blink 1s steps(1) infinite}@keyframes dive-blink{50%{opacity:0}}.clickme{position:absolute;bottom:8%;left:50%;transform:translate(-50%);margin:0;font:22px VT323,monospace;color:#58f08a;letter-spacing:.2em;animation:blink 1.4s steps(2) infinite;cursor:pointer}@keyframes blink{50%{opacity:.2}}.fade{position:fixed;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity 1.6s;z-index:6}.fade.on{opacity:1}.card{position:fixed;inset:0;display:grid;place-items:center;z-index:7;background:#050507;color:#f2efe6;font-family:Pixelify Sans,monospace;animation:cardin 2s ease}@keyframes cardin{0%{opacity:0}}.card .inner{width:min(640px,88vw);text-align:center}.card .kicker{margin:0;color:#9c9a93;letter-spacing:.14em;text-transform:uppercase;font-size:14px}.card h2{margin:6px 0 26px;font-size:44px}.card hr{border:0;height:1px;background:#2a2a30;margin:26px 0}.card .real{font-size:22px}.card .links{display:flex;gap:14px;justify-content:center;margin:22px 0}.card .links a{color:#15161b;background:#f2efe6;padding:8px 14px;text-decoration:none;box-shadow:0 3px #8b8a86}.card .credits{color:#7d7b75;font-size:12px;line-height:1.6}[hidden]{display:none!important}.back{position:fixed;z-index:96;left:14px;bottom:14px;padding:9px 13px 8px;border-radius:3px;background:#0c0a09a8;box-shadow:inset 0 0 0 1px #ff5a1f73;color:#ff5a1f;font:400 15px/1 IBM3270,ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;text-shadow:0 0 6px rgba(255,90,31,.45),0 1px 0 rgba(0,0,0,.9);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.back:hover{background:#ff5a1f;color:#140804;text-shadow:none}
