@font-face{font-family:Kizi404;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Kizi404-typo-Regular.otf) format("opentype")}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:local("VT323"),url(https://fonts.gstatic.com/s/vt323/v17/pxiKyp0ihIEF2isfFJU.woff2) format("woff2")}:root{--void: #01063a;--deep: #020a78;--hull: #0414a7;--bulkhead: #1a25b5;--grid: #2a3acc;--terminal: #e0e2f4;--terminal-dim: #aaaaaa;--fog: #8a92c5;--amber: #ffb454;--magenta: #ff1d5e;--caret: #0400ff;--waner: #ff1d5e;--rayleigh: #ffb454;--neutral: #8a92c5;--font: "Kizi404", "VT323", "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:radial-gradient(ellipse at 50% 0%,#1a25b5,#0414a7 30%,#02085f 80%,#01063a);background-attachment:fixed;color:var(--terminal);min-height:100dvh;font-family:var(--font);font-size:18px;line-height:1.35;-webkit-font-smoothing:antialiased;letter-spacing:.01em}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.018) 0,rgba(255,255,255,.018) 1px,transparent 1px,transparent 3px);z-index:50;mix-blend-mode:overlay}#root{min-height:100dvh;display:flex;flex-direction:column}button{font-family:var(--font);font-size:1rem;background:var(--bulkhead);color:var(--terminal);border:1px solid color-mix(in srgb,var(--terminal) 35%,transparent);padding:8px 18px;cursor:pointer;letter-spacing:.04em;transition:background .12s,transform .06s}button:hover:not(:disabled){background:var(--grid)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--terminal);color:var(--hull);font-weight:700}button.primary:hover:not(:disabled){background:#fff}button.danger{border-color:var(--magenta);color:var(--magenta)}.neg{background:var(--terminal-dim);color:var(--hull);padding:0 9px 2px;display:inline-block}.frame{position:relative;border:1px solid color-mix(in srgb,var(--terminal) 30%,transparent);background:linear-gradient(180deg,#1a25b58c,#020a788c);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.corner-cut{clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}@keyframes glitch-x{0%,to{transform:translate(0)}20%{transform:translate(-1px,1px)}40%{transform:translate(1px,-1px)}60%{transform:translate(-1px,1px)}80%{transform:translate(1px,-1px)}}.glitch{position:relative}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.glitch:before{left:2px;text-shadow:-2px 0 var(--magenta);clip-path:polygon(0 0,100% 0,100% 45%,0 45%);animation:glitch-x 2.5s infinite linear alternate-reverse}.glitch:after{left:-2px;text-shadow:2px 0 var(--caret);clip-path:polygon(0 55%,100% 55%,100% 100%,0 100%);animation:glitch-x 3.5s infinite linear alternate-reverse}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.cursor:after{content:"▮";margin-left:.25rem;color:var(--terminal);animation:blink 1s steps(2,start) infinite}.starfield{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:radial-gradient(1px 1px at 20% 30%,rgba(224,226,244,.7) 50%,transparent 100%),radial-gradient(1px 1px at 70% 50%,rgba(224,226,244,.5) 50%,transparent 100%),radial-gradient(2px 2px at 40% 80%,rgba(255,255,255,.6) 50%,transparent 100%),radial-gradient(1px 1px at 85% 15%,rgba(224,226,244,.5) 50%,transparent 100%),radial-gradient(1px 1px at 10% 70%,rgba(255,255,255,.4) 50%,transparent 100%),radial-gradient(1px 1px at 60% 25%,rgba(255,180,84,.55) 50%,transparent 100%);background-size:350px 350px,250px 250px,400px 400px,200px 200px,300px 300px,500px 500px;opacity:.4}.screen{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px;max-width:1180px;width:100%;margin:0 auto}.topbar{width:100%;display:flex;align-items:center;gap:14px;padding:8px 14px;font-size:.95rem;border-bottom:1px solid color-mix(in srgb,var(--terminal) 20%,transparent);flex-wrap:wrap}.topbar .spacer{flex:1}.stat{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.stat .v{color:var(--terminal)}.stat.hp .v{color:var(--magenta)}.stat.pvc .v{color:var(--amber)}.title-screen{justify-content:center;text-align:center;gap:18px}.title-glyph{font-size:clamp(2.4rem,7vw,5rem);letter-spacing:.06em;line-height:1}.title-sub{color:var(--fog);max-width:560px}.bootlines{text-align:left;font-size:.92rem;color:var(--terminal-dim);min-height:7.5em;width:min(560px,90vw)}.bootlines .ok{color:var(--terminal)}.bootlines .warn{color:var(--amber)}.map-wrap{width:100%;display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.map-svg{flex:1;min-width:320px;max-width:640px}.map-side{flex:1;min-width:280px;display:flex;flex-direction:column;gap:12px}.map-node{cursor:pointer}.map-node.locked{cursor:default;opacity:.35}.map-node.cleared{opacity:.45}.kar-box{padding:12px 14px;font-size:.95rem}.kar-box .who{color:var(--amber);font-size:.85rem;letter-spacing:.1em}.combat{width:100%;display:flex;flex-direction:column;gap:10px}.enemies-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;min-height:180px;align-items:stretch}.enemy{padding:10px 12px;width:178px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:outline .1s,transform .1s;outline:2px solid transparent}.enemy.big{width:220px}.enemy.dead{opacity:.18;pointer-events:none;filter:grayscale(1)}.enemy.targetable{outline:2px dashed var(--amber)}.enemy.targetable:hover{outline:2px solid var(--amber);transform:translateY(-2px)}.enemy .e-name{font-size:.95rem;text-align:center;line-height:1.15}.enemy .e-epithet{font-size:.72rem;color:var(--fog);text-align:center;line-height:1.2}.enemy .intent{font-size:.95rem;color:var(--amber)}.enemy .intent .mv{color:var(--fog);font-size:.78rem}.hpbar{width:100%;height:10px;background:#00000073;border:1px solid color-mix(in srgb,var(--terminal) 25%,transparent);position:relative}.hpbar .fill{height:100%;background:var(--magenta);transition:width .25s}.hpbar.player .fill{background:var(--terminal)}.hpbar .txt{position:absolute;top:-1px;right:0;bottom:0;left:0;text-align:center;font-size:.7rem;line-height:11px;color:#fff;text-shadow:0 0 3px #000}.status-chips{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;min-height:18px}.chip{font-size:.7rem;padding:0 6px;border:1px solid color-mix(in srgb,var(--terminal) 35%,transparent);background:#0000004d;white-space:nowrap}.chip.buff{color:var(--amber)}.chip.debuff{color:var(--magenta)}.chip.block{color:var(--terminal);border-color:var(--terminal)}.console{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;padding:10px 14px}.console .col{display:flex;flex-direction:column;gap:4px;justify-content:center}.console .label{font-size:.7rem;letter-spacing:.12em;color:var(--fog)}.tempo-display{display:flex;align-items:baseline;gap:8px}.tempo-display .bpm{font-size:1.9rem;line-height:1}.tempo-display .band{font-size:.8rem;padding:1px 8px}.band-warmup{background:var(--grid);color:var(--terminal)}.band-peak{background:var(--amber);color:var(--hull)}.band-closer{background:var(--magenta);color:#fff}.beatseq{display:flex;gap:6px}.beatseq .b{width:22px;height:22px;border:1px solid color-mix(in srgb,var(--terminal) 40%,transparent);display:grid;place-items:center;font-size:.75rem;color:var(--fog)}.beatseq .b.on{background:var(--terminal);color:var(--hull);font-weight:700}.beatseq .b.one{border-color:var(--magenta)}.heatbar{display:flex;gap:3px}.heatbar .h{width:14px;height:18px;border:1px solid color-mix(in srgb,var(--terminal) 30%,transparent)}.heatbar .h.lit{background:var(--amber)}.heatbar .h.danger{background:var(--magenta)}.resbar{display:flex;gap:3px;align-items:center}.resbar .r{width:10px;height:10px;border-radius:50%;border:1px solid var(--fog)}.resbar .r.lit{background:var(--terminal);box-shadow:0 0 6px var(--terminal)}.energy-orb{font-size:1.9rem;line-height:1}.energy-orb .max{font-size:1rem;color:var(--fog)}.dominance{font-size:.8rem}.dominance .waner{color:var(--waner)}.dominance .rayleigh{color:var(--rayleigh)}.hand{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;min-height:215px;align-items:flex-end;width:100%}.card{width:152px;min-height:205px;padding:8px 9px;display:flex;flex-direction:column;gap:5px;cursor:pointer;position:relative;transition:transform .1s,box-shadow .1s;border:1px solid color-mix(in srgb,var(--terminal) 35%,transparent);background:linear-gradient(180deg,#1a25b5d9,#02085feb)}.card:hover:not(.disabled){transform:translateY(-10px);box-shadow:0 8px 24px -6px #000000b3;z-index:5}.card.disabled{opacity:.55;cursor:not-allowed}.card.selected{outline:2px solid var(--amber);transform:translateY(-10px)}.card.amped{border-color:var(--amber);box-shadow:0 0 14px -4px var(--amber)}.card .c-top{display:flex;justify-content:space-between;align-items:center;gap:4px}.card .c-cost{min-width:24px;height:24px;display:grid;place-items:center;background:var(--terminal);color:var(--hull);font-weight:700;font-size:1rem}.card .c-cost.gouged{background:var(--magenta);color:#fff}.card .c-crew{font-size:.62rem;letter-spacing:.08em;padding:1px 5px;border:1px solid currentColor}.card .c-crew.waner{color:var(--waner)}.card .c-crew.rayleigh{color:var(--rayleigh)}.card .c-crew.neutral{color:var(--neutral)}.card .c-name{font-size:.92rem;line-height:1.1;min-height:2.1em}.card .c-type{font-size:.62rem;color:var(--fog);letter-spacing:.14em}.card .c-text{font-size:.78rem;line-height:1.25;flex:1;color:var(--terminal)}.card .c-text .amp{color:var(--amber)}.card .c-text .drop{color:var(--magenta)}.card .c-flavor{font-size:.62rem;color:var(--fog);font-style:italic;line-height:1.15}.card.rarity-rare{border-color:var(--magenta)}.card.rarity-uncommon{border-color:color-mix(in srgb,var(--amber) 60%,transparent)}.card.curse{background:linear-gradient(180deg,#2a0a18,#14051c);border-color:var(--magenta)}.card.mini{width:132px;min-height:180px}.card.mini:hover:not(.disabled){transform:translateY(-4px)}.combat-footer{display:flex;align-items:center;gap:14px;width:100%;justify-content:center;flex-wrap:wrap}.pile-count{font-size:.85rem;color:var(--fog)}.logbox{width:100%;max-height:92px;overflow-y:auto;font-size:.8rem;padding:6px 10px;color:var(--terminal-dim);display:flex;flex-direction:column-reverse}.logbox .kar{color:var(--amber)}.logbox .dmg{color:var(--magenta)}.logbox .good{color:var(--terminal)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#01063ad1;display:grid;place-items:center;z-index:100;padding:18px}.overlay-panel{max-width:760px;width:100%;padding:22px;display:flex;flex-direction:column;gap:14px;max-height:92dvh;overflow-y:auto}.overlay-panel h2{margin:0;font-size:1.5rem;letter-spacing:.04em}.choice-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.shop-grid{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.shop-item{display:flex;flex-direction:column;gap:6px;align-items:center}.price{color:var(--amber);font-size:.9rem}.relic-item{width:220px;padding:10px;display:flex;flex-direction:column;gap:4px;font-size:.85rem}.relic-item .r-name{color:var(--amber)}.relic-item .r-desc{font-size:.78rem}.relic-item .r-flavor{font-size:.68rem;color:var(--fog);font-style:italic}.relic-strip{display:flex;gap:6px;flex-wrap:wrap}.relic-chip{font-size:.72rem;border:1px solid color-mix(in srgb,var(--amber) 55%,transparent);color:var(--amber);padding:1px 7px;cursor:help}.deck-grid{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-height:60dvh;overflow-y:auto;padding:4px}.event-body{line-height:1.45;color:var(--terminal)}.event-options{display:flex;flex-direction:column;gap:8px}.event-options button{text-align:left;display:flex;flex-direction:column;gap:2px;padding:10px 14px}.event-options .hint{font-size:.78rem;color:var(--fog)}.crewline{display:flex;gap:16px;align-items:center;justify-content:center;flex-wrap:wrap}.crew-portrait{width:120px;height:120px;object-fit:cover;border:1px solid color-mix(in srgb,var(--terminal) 35%,transparent);image-rendering:pixelated}.crew-card{display:flex;flex-direction:column;gap:4px;align-items:center;max-width:220px;text-align:center;font-size:.85rem}.crew-card .cname{font-size:1.05rem}.crew-card.waner .cname{color:var(--waner)}.crew-card.rayleigh .cname{color:var(--rayleigh)}.crew-card .crole{color:var(--fog);font-size:.75rem}.float-dmg{position:absolute;font-size:1.3rem;color:var(--magenta);font-weight:700;pointer-events:none;animation:float-up .8s ease-out forwards;text-shadow:0 0 6px #000;z-index:20}@keyframes float-up{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-34px)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px,1px)}50%{transform:translate(3px,-1px)}75%{transform:translate(-2px)}}.shake{animation:shake .25s linear}.victory-art{font-size:3rem;text-align:center}.smallnote{font-size:.75rem;color:var(--fog)}a{color:var(--amber)}@media(max-width:700px){body{font-size:16px}.card{width:128px;min-height:186px}.enemy{width:150px}}
