:root{--bg: #000000;--fg: #55ffff;--accent: #ffff55;--danger: #ff5555;--wash: .3;--bezel: #1a1a1a;--room: #0b0a09;--chassis: #c9b79a;--chassis-mid: #b5a486;--chassis-dark: #8f7f66;--chassis-light: #ddd0b6;--slot: #1c1b19;font-family:Courier New,Courier,monospace}*{box-sizing:border-box}html,body{margin:0;height:100%;background:radial-gradient(ellipse at 50% 28%,#1a1714 0%,var(--room) 62%,#050504 100%);color:var(--fg)}.boot-loop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:.42;transition:opacity .65s ease;background:#050505}.boot-loop.is-faded{opacity:0}.boot-loop-video{width:min(520px,72vw);height:auto;aspect-ratio:1 / 1;object-fit:cover;border-radius:10px;filter:saturate(.9) contrast(1.05);box-shadow:0 0 60px #000000d9}button{font:inherit;color:inherit;background:transparent;border:none;padding:0;cursor:pointer}#app{position:relative;z-index:1;min-height:100%;display:flex;align-items:center;justify-content:center;padding:1.25rem .85rem 1.75rem}.chassis{position:relative;z-index:2;width:min(760px,100%);filter:drop-shadow(0 18px 40px rgba(0,0,0,.72))}.chassis-face{background:linear-gradient(165deg,var(--chassis-light) 0%,var(--chassis) 38%,var(--chassis-mid) 78%,var(--chassis-dark) 100%);border-radius:28px;padding:1.1rem 1.15rem .85rem;border:1px solid color-mix(in srgb,var(--chassis-light) 70%,#fff);box-shadow:inset 0 2px color-mix(in srgb,#fff 35%,transparent),inset 0 -3px 8px color-mix(in srgb,var(--chassis-dark) 45%,transparent),0 0 0 2px color-mix(in srgb,var(--chassis-dark) 55%,#000)}.screen-bezel{background:linear-gradient(180deg,#6a6256,#3d3a34 40%,#2a2824);border-radius:18px;padding:.7rem .75rem .8rem;box-shadow:inset 0 3px 10px #0000008c,inset 0 -1px color-mix(in srgb,#fff 12%,transparent),0 1px color-mix(in srgb,var(--chassis-light) 40%,transparent)}.crt{position:relative;width:100%;min-height:min(72vh,640px);margin:0 auto;background:var(--bg);color:var(--fg);border:none;border-radius:14px/18px;outline:none;box-shadow:inset 0 0 90px #000000eb,inset 0 0 3px color-mix(in srgb,var(--fg) 28%,transparent),0 0 28px color-mix(in srgb,var(--fg) 12%,transparent);display:flex;flex-direction:column;overflow:hidden;transform:perspective(900px) rotateX(2.2deg);transform-origin:center top}.crt.flash{box-shadow:inset 0 0 0 10px var(--fg),0 0 0 3px var(--accent),0 0 36px color-mix(in srgb,var(--fg) 35%,transparent)}.crt.washing{background:color-mix(in srgb,var(--bg) 65%,var(--fg) calc(var(--wash) * 100%));box-shadow:inset 0 0 100px color-mix(in srgb,var(--accent) calc(var(--wash) * 85%),transparent),inset 0 0 0 5px color-mix(in srgb,var(--fg) calc(var(--wash) * 55%),transparent),0 0 40px color-mix(in srgb,var(--accent) calc(var(--wash) * 40%),transparent)}.scanlines{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.22) 3px,rgba(0,0,0,.22) 4px);z-index:5;mix-blend-mode:multiply;border-radius:inherit}.crt-vignette{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;border-radius:inherit;background:radial-gradient(ellipse at 50% 45%,transparent 42%,rgba(0,0,0,.38) 78%,rgba(0,0,0,.72) 100%);box-shadow:inset 0 0 40px #00000073}.crt-inner{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;padding:1.35rem 1.6rem .6rem;gap:.85rem}.stage{flex:1}.term{margin:0;font-size:18px;line-height:1.5;white-space:pre-wrap;color:var(--fg);text-shadow:0 0 2px color-mix(in srgb,var(--fg) 90%,transparent),0 0 8px color-mix(in srgb,var(--fg) 55%,transparent),0 0 18px color-mix(in srgb,var(--fg) 30%,transparent)}.cassette-bay{margin-top:.85rem;padding:.55rem .35rem .15rem}.cassette-slot{position:relative;height:3.1rem;background:linear-gradient(180deg,#0e0d0c 0%,var(--slot) 40%,#2a2723 100%);border-radius:6px;border:2px solid #3a362f;box-shadow:inset 0 6px 14px #000000d9,inset 0 -1px color-mix(in srgb,#fff 8%,transparent),0 1px color-mix(in srgb,var(--chassis-light) 35%,transparent);overflow:hidden}.cassette-slot:before{content:"";position:absolute;left:.55rem;top:50%;width:.45rem;height:.45rem;border-radius:50%;background:#3a2018;box-shadow:0 0 0 1px #1a100c;transform:translateY(-50%);z-index:2}.cassette-slot.is-whirring:before{background:#f53;box-shadow:0 0 6px #f53,0 0 14px color-mix(in srgb,#ff5533 60%,transparent)}.cassette-tape{position:absolute;left:12%;right:12%;top:.35rem;bottom:.35rem;display:flex;align-items:center;justify-content:space-between;gap:.55rem;padding:0 .55rem;background:linear-gradient(180deg,#3a3a3a,#1e1e1e 45%,#141414);border:1px solid #555;border-radius:3px;box-shadow:0 2px 4px #0000008c;transform:translateY(120%);opacity:0;pointer-events:none}.cassette-tape.is-inserting{animation:cassette-insert 1.05s cubic-bezier(.2,.75,.25,1) forwards}.cassette-tape.is-seated{transform:translateY(0);opacity:1}.cassette-tape.is-pulse{animation:cassette-pulse .7s ease-in-out}.cassette-label{flex:1;min-width:0;text-align:center;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#1a1a1a;background:#f2ead6;border:1px solid #cfc4a8;padding:.22rem .4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Courier New,Courier,monospace;font-weight:700}.cassette-spool{width:.85rem;height:.85rem;border-radius:50%;background:radial-gradient(circle at 40% 35%,#777,#333 55%,#111);border:1px solid #666;flex:0 0 auto}.cassette-slot.is-whirring .cassette-spool{animation:spool-spin .45s linear infinite}.cassette-ledge{height:.45rem;margin:.35rem .15rem 0;border-radius:2px;background:linear-gradient(180deg,var(--chassis-dark),var(--chassis-mid));box-shadow:inset 0 1px color-mix(in srgb,#fff 15%,transparent)}@keyframes cassette-insert{0%{transform:translateY(130%);opacity:.15}55%{opacity:1}to{transform:translateY(0);opacity:1}}@keyframes cassette-pulse{0%,to{filter:brightness(1)}40%{filter:brightness(1.35)}70%{filter:brightness(.9)}}@keyframes spool-spin{to{transform:rotate(360deg)}}.ready{opacity:.85;letter-spacing:.06em}.ready-dim{opacity:.45;font-size:.9em}.cursor-block{animation:blink 1s step-end infinite;color:var(--accent)}@keyframes blink{50%{opacity:0}}.hint{margin-top:1.75rem;font-size:14px;opacity:.8;cursor:pointer;-webkit-user-select:none;user-select:none}.hint kbd{border:3px solid var(--fg);padding:.2em .5em;font:inherit;color:var(--accent);box-shadow:3px 3px color-mix(in srgb,var(--fg) 40%,transparent)}.cassette,.bytes{color:var(--accent)}.run-line{color:var(--accent);font-weight:700;letter-spacing:.15em}.title-block{margin-top:1.5rem;text-align:left}.tape-title{font-size:30px;font-weight:700;letter-spacing:.1em;color:var(--accent);text-transform:uppercase;margin-bottom:.85rem;text-shadow:0 0 2px color-mix(in srgb,var(--accent) 90%,transparent),0 0 12px color-mix(in srgb,var(--accent) 55%,transparent),0 0 22px color-mix(in srgb,var(--accent) 30%,transparent)}.author-chip{display:inline-flex;flex-wrap:wrap;gap:.5rem .9rem;align-items:baseline;border:3px solid var(--fg);padding:.45rem .85rem;margin-bottom:.55rem;box-shadow:4px 4px color-mix(in srgb,var(--fg) 35%,transparent)}.author-name{color:var(--fg);font-weight:700;letter-spacing:.04em}.author-handle{color:var(--accent);opacity:.95;font-size:.9em}.traits-drip{display:flex;flex-wrap:wrap;gap:.35rem;margin:.35rem 0 .85rem;opacity:.65;font-size:12px;letter-spacing:.05em}.trait{border:1px solid color-mix(in srgb,var(--fg) 40%,transparent);padding:.12rem .45rem;text-transform:lowercase}.run-banner{margin-top:.85rem;font-size:16px;letter-spacing:.14em;color:var(--fg)}.rb-verb{color:var(--accent)}.rb-win{color:var(--fg);font-weight:700;font-size:1.12em;text-decoration:underline;text-underline-offset:.22em;text-decoration-thickness:2px}.rb-enemy{color:var(--danger)}.rb-sep{opacity:.45;margin:0 .35rem}.owned-beat{margin:1rem 0 0;font-size:13px;letter-spacing:.12em;text-transform:lowercase;color:var(--accent);opacity:.85}.menu-gp{display:flex;gap:1rem;flex-wrap:wrap;border-top:2px solid color-mix(in srgb,var(--fg) 35%,transparent);padding-top:.75rem}.gp-key{border:3px solid var(--fg);padding:.55rem 1rem;letter-spacing:.08em;box-shadow:3px 3px color-mix(in srgb,var(--fg) 30%,transparent);transition:none}.gp-key:hover,.gp-key:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.gp-letter{display:inline-block;min-width:1.2em;font-weight:700;color:var(--accent);margin-right:.4rem}#playfield{display:block;width:100%;max-width:640px;height:auto;aspect-ratio:1 / 1;background:var(--bg);border:1px solid #fff;image-rendering:pixelated;outline:none;align-self:center}#playfield:focus{border-color:var(--accent)}.status-line{font-size:13px;letter-spacing:.07em;opacity:.9;text-align:center}.accent-text{color:var(--accent)}.danger-text{color:var(--danger)}.shell-footer{position:relative;z-index:2;margin-top:auto;padding:.55rem 1rem .85rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;border-top:2px solid color-mix(in srgb,var(--fg) 28%,transparent)}.token-count{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);opacity:.75;font-family:Courier New,Courier,monospace;-webkit-user-select:none;user-select:none;pointer-events:none}.engine-stamp{font-size:11px;letter-spacing:.22em;text-align:right;color:var(--fg);opacity:.5;margin-left:auto}.fatal{color:#f55;padding:2rem}.boot-blank{min-height:42vh}.crt.kudos-flash{box-shadow:inset 0 0 0 6px var(--accent),0 0 0 3px var(--accent)}.from-gallery{margin:.15rem 0 0;font-size:12px;letter-spacing:.1em;text-transform:lowercase;color:var(--fg);opacity:.5}.p-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;border-bottom:2px solid color-mix(in srgb,var(--fg) 28%,transparent);padding-bottom:.6rem}.p-strip .author-chip{margin-bottom:0}.kudos-stamp{font-size:12px;letter-spacing:.14em;color:var(--accent);opacity:.6}.p-keys{display:flex;gap:.6rem;margin-left:auto}.p-keys .gp-key{padding:.35rem .7rem;font-size:13px}.gp-key.is-dim,.gp-key:disabled{opacity:.4;cursor:default;border-color:color-mix(in srgb,var(--fg) 45%,transparent);box-shadow:none}.p-strip{border-bottom-width:3px;padding:.55rem 0 .7rem}.p-strip .author-chip{box-shadow:3px 3px color-mix(in srgb,var(--fg) 30%,transparent)}.kudos-stamp{font-family:Courier New,Courier,monospace;text-transform:uppercase}.p-keys .gp-key .gp-letter{letter-spacing:0}.p-strip .traits-drip{margin:0;flex:1 1 auto;opacity:.7}.p-strip #btn-regen .gp-letter{letter-spacing:0}.lineage-chip{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;margin-bottom:.55rem}.lineage-chip .author-chip.is-prior{opacity:.55;border-width:2px;box-shadow:none;font-size:.92em}.lineage-chip .author-chip.is-current{opacity:1}.shelf-count{font-family:inherit;letter-spacing:.04em;opacity:.85;white-space:nowrap}.shelf-count.is-full{color:var(--danger, #d62828);opacity:1}.shelf-list{text-align:left;max-width:42rem;margin:0 auto;line-height:1.45}.shelf-list .shelf-hint{opacity:.7;font-size:.92em}.menu-gp{flex-wrap:wrap}.catalog-drip{margin:.35rem 0 .25rem;opacity:.55;font-size:12px;letter-spacing:.06em;color:var(--fg);text-transform:uppercase}.p-strip .catalog-drip{margin:.2rem 0 .15rem;max-width:36rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.again-hint{color:var(--accent);letter-spacing:.08em}#btn-again.is-dim{opacity:.35}.gate-hint,.seek-hint{margin:.35rem 0 0;opacity:.6;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.gate-hint{color:var(--danger, #d62828)}.seek-hint,.run-banner[data-gate=key] .rb-win{color:var(--accent)}.stage:has(.play-hud){flex:0 0 auto}.play-hud{display:flex;justify-content:center;align-items:center;margin:.15rem 0 .45rem;text-align:center}.win-glyph{font-size:28px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:#fff;text-shadow:0 0 8px color-mix(in srgb,#fff 28%,transparent)}.win-glyph.is-got,.play-hud[data-has-key="1"] .win-glyph{color:var(--accent);text-shadow:0 0 10px color-mix(in srgb,var(--accent) 40%,transparent)}.chassis.chassis-ab{width:min(980px,100%)}.chassis .crt.ab-mode{width:100%;min-height:min(70vh,620px);transform:perspective(900px) rotateX(1.5deg)}.crt.ab-mode:not(.chassis .crt){width:min(960px,100vw);min-height:100vh;border-radius:0;transform:none;border:16px solid var(--bezel);outline:3px solid #0a0a0a}.ab-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;letter-spacing:.14em;margin-bottom:.15rem}.ab-title{color:var(--accent);font-weight:700;font-size:22px;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 0 2px color-mix(in srgb,var(--accent) 90%,transparent),0 0 10px color-mix(in srgb,var(--accent) 50%,transparent),0 0 20px color-mix(in srgb,var(--accent) 28%,transparent)}.ab-meta{opacity:.65;font-size:12px;letter-spacing:.08em;text-shadow:0 0 6px color-mix(in srgb,var(--fg) 35%,transparent)}.ab-row{display:flex;gap:.85rem;flex:1;min-height:0}.ab-pane{flex:1;display:flex;flex-direction:column;gap:.35rem;border:3px solid color-mix(in srgb,var(--fg) 45%,transparent);padding:.5rem;cursor:pointer;min-width:0;background:transparent;border-radius:0;box-shadow:4px 4px color-mix(in srgb,var(--fg) 22%,transparent)}.ab-pane.is-active{border-color:var(--accent);box-shadow:4px 4px color-mix(in srgb,var(--accent) 40%,transparent),inset 0 0 18px color-mix(in srgb,var(--accent) 12%,transparent)}.ab-pane-head{display:flex;flex-direction:column;gap:.15rem;min-height:2.6rem}.ab-side{font-size:12px;letter-spacing:.18em;color:var(--accent);opacity:.95;text-shadow:0 0 8px color-mix(in srgb,var(--accent) 40%,transparent)}.ab-chip{font-size:13px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 6px color-mix(in srgb,var(--fg) 40%,transparent)}.ab-handle{opacity:.55;font-size:.9em;color:var(--accent)}.ab-pane canvas{width:100%;height:auto;image-rendering:pixelated;background:#000;border:2px solid color-mix(in srgb,var(--fg) 30%,#111);display:block;border-radius:0;box-shadow:inset 0 0 24px #000000a6}.ab-pane-status{font-size:12px;letter-spacing:.1em;opacity:.8;text-transform:uppercase;min-height:1.35em}.ab-pane-status kbd,.ab-status kbd,.ab-btn kbd{display:inline-block;border:3px solid var(--fg);padding:.05em .4em;font:inherit;font-size:.95em;color:var(--accent);letter-spacing:.06em;box-shadow:3px 3px color-mix(in srgb,var(--fg) 40%,transparent);margin:0 .15em;vertical-align:baseline;background:transparent;border-radius:0}.ab-btn kbd{margin-right:.35em;margin-left:0}.ab-controls{display:flex;flex-wrap:wrap;gap:.5rem .7rem;margin-top:.25rem}.ab-btn{border:3px solid var(--fg);padding:.3rem .6rem;font:inherit;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg);background:transparent;border-radius:0;box-shadow:3px 3px color-mix(in srgb,var(--fg) 35%,transparent)}.ab-btn:hover,.ab-btn:focus-visible{color:var(--accent);border-color:var(--accent);box-shadow:3px 3px color-mix(in srgb,var(--accent) 40%,transparent);outline:none}.ab-btn.accent{color:var(--accent);border-color:var(--accent);box-shadow:3px 3px color-mix(in srgb,var(--accent) 35%,transparent)}.ab-status{text-shadow:0 0 8px color-mix(in srgb,var(--fg) 30%,transparent)}.crt.ab-mode .crt-inner{padding:1.1rem 1.25rem .5rem;gap:.7rem}@media (max-width: 640px){.ab-row{flex-direction:column}.chassis.chassis-ab{width:100%}.chassis-face{border-radius:20px;padding:.75rem .7rem .65rem}.screen-bezel{border-radius:14px;padding:.45rem}.crt{min-height:min(68vh,560px);border-radius:10px/12px;transform:perspective(700px) rotateX(1.4deg)}.chassis .crt.ab-mode{min-height:min(78vh,720px);transform:perspective(700px) rotateX(1.1deg)}.cassette-label{font-size:10px;letter-spacing:.1em}.ab-title{font-size:18px}}
