@font-face{font-family:Pixelify Sans;src:url(./pixelify-sans-latin-Cbhn5ptY.woff2)format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:"Press Start 2P";src:url(./press-start-2p-latin-_wFEWmAB.woff2)format("woff2");font-weight:400;font-display:swap}:root{--ink:#0d0a14;--bg:#1a1426;--bg2:#241c36;--panel:#2b2140;--panel-hi:#463a63;--panel-lo:#1c1529;--text:#f4ecd8;--muted:#a99fc8;--accent:#ffd83c;--accent-lo:#b88a1c;--good:#5ad84a;--bad:#e8323c;--armor:#3a9aff;--mana:#c07aff;--px:3px;--font:"Pixelify Sans", "Courier New", monospace;--font-title:"Press Start 2P", "Courier New", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{min-height:100%;color:var(--text);font-family:var(--font);overscroll-behavior:none;-webkit-font-smoothing:none;font-smooth:never;background-color:var(--bg);background-image:linear-gradient(45deg,#ffffff06 25%,#0000 25% 75%,#ffffff06 75%),linear-gradient(45deg,#ffffff06 25%,#0000 25% 75%,#ffffff06 75%);background-position:0 0,4px 4px;background-size:8px 8px;font-size:16px}img.px,.gem-icon{image-rendering:pixelated;image-rendering:crisp-edges;vertical-align:middle;pointer-events:none;flex-shrink:0;display:inline-block}.ic{vertical-align:middle;align-items:center;gap:5px;display:inline-flex}#app{max-width:480px;min-height:100dvh;padding:10px 12px calc(12px + env(safe-area-inset-bottom));margin:0 auto}.screen{flex-direction:column;gap:10px;animation:.3s steps(3,end) appear;display:flex}.screen.center{text-align:center;align-items:center;gap:12px;padding-top:6vh}@keyframes appear{0%{opacity:0;transform:translateY(6px)}}h1,h2,h3{font-family:var(--font-title);font-weight:400;line-height:1.4}h1{font-size:1.3rem}h2{text-align:center;flex:1;justify-content:center;font-size:.72rem;display:flex}h3{font-size:.7rem}p{line-height:1.3}.panel{background:var(--panel);border:var(--px) solid var(--ink);box-shadow:inset var(--px) var(--px) 0 var(--panel-hi), inset calc(-1 * var(--px)) calc(-1 * var(--px)) 0 var(--panel-lo), 0 var(--px) 0 var(--ink);padding:10px 12px}.btn{font:inherit;color:var(--text);background:var(--panel-hi);border:var(--px) solid var(--ink);cursor:pointer;box-shadow:inset var(--px) var(--px) 0 #6b5a94, inset calc(-1 * var(--px)) calc(-1 * var(--px)) 0 var(--panel), 0 var(--px) 0 var(--ink);border-radius:0;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-size:1rem;display:inline-flex}.btn:active:not(:disabled){transform:translateY(var(--px));box-shadow:inset var(--px) var(--px) 0 var(--panel), inset calc(-1 * var(--px)) calc(-1 * var(--px)) 0 #6b5a94}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);color:#2a1a00;box-shadow:inset var(--px) var(--px) 0 #fff0a0, inset calc(-1 * var(--px)) calc(-1 * var(--px)) 0 var(--accent-lo), 0 var(--px) 0 var(--ink);font-weight:700}.btn.primary:active:not(:disabled){box-shadow:inset var(--px) var(--px) 0 var(--accent-lo), inset calc(-1 * var(--px)) calc(-1 * var(--px)) 0 #fff0a0}.btn.big{width:100%;padding:13px;font-size:1.15rem}.btn.small{padding:5px 10px;font-size:.95rem}.btn.link{box-shadow:none;color:var(--muted);background:0 0;border:none;font-size:.9rem;text-decoration:underline}.topbar{align-items:center;gap:8px;min-height:38px;display:flex}.souls,.moves,.zone{background:var(--panel-lo);border:var(--px) solid var(--ink);white-space:nowrap;align-items:center;gap:4px;padding:3px 8px;font-size:1rem;display:inline-flex;position:relative}.moves b{color:var(--accent);font-family:var(--font-title);font-size:.8rem}.chip{background:var(--panel-lo);border:2px solid var(--ink);align-items:center;margin:2px 4px 2px 0;padding:1px 5px;font-size:.9rem;display:inline-flex}.chip.poison{color:var(--good)}.chip.stun{color:var(--accent)}.hint-text{color:var(--muted);font-size:.95rem}.title{text-align:center;color:var(--accent);text-shadow:3px 3px 0 var(--accent-lo), 6px 6px 0 var(--ink);flex-direction:column;align-items:center;gap:6px;margin-top:4vh;font-size:1.55rem;display:flex}.title span{color:var(--muted);text-shadow:3px 3px 0 var(--ink);font-size:.9rem}.subtitle{text-align:center;color:var(--muted)}.hero-row{justify-content:center;gap:14px;margin:4px 0 6px;display:flex}.hero-row .px{animation:1.2s steps(2,end) infinite idle}.hero-row .px:nth-child(2n){animation-delay:.6s}.px.shadow{filter:brightness(0)opacity(.45)}@keyframes idle{50%{transform:translateY(-3px)}}.hub-stats{text-align:center;justify-content:space-around;display:flex}.hub-stats b{font-size:1.3rem;display:block}.hub-stats small{color:var(--muted)}.howto h3{margin-bottom:8px}.howto p{color:var(--muted);margin-bottom:5px;font-size:.95rem}.class-card{grid-template-columns:56px 1fr;align-items:start;gap:8px 10px;display:grid}.class-card>.btn{grid-column:1/-1}.class-card.locked .class-icon .px{filter:brightness(0)opacity(.5)}.class-icon,.up-icon{justify-content:center;display:flex}.class-body h3{color:var(--accent)}.class-body p{color:var(--muted);margin:4px 0;font-size:.95rem}.skill-list{flex-direction:column;grid-column:1/-1;gap:5px;display:flex}.skill-row{background:var(--panel-lo);border:2px solid var(--ink);grid-template-columns:36px 1fr auto;align-items:center;gap:8px;padding:5px 8px;display:grid}.skill-row.locked{opacity:.65}.skill-text b{font-size:1rem}.skill-text small{color:var(--mana);margin-left:6px;font-size:.9rem}.skill-text p{color:var(--muted);font-size:.88rem}.lock{color:var(--muted);white-space:nowrap;align-items:center;gap:4px;font-size:.9rem;display:inline-flex}.upgrade{grid-template-columns:40px 1fr auto;align-items:center;gap:10px;display:grid}.up-body h3{margin-bottom:3px;font-size:.62rem}.up-body p{color:var(--muted);font-size:.9rem}.pips{gap:3px;margin-top:5px;display:flex}.pip{background:var(--panel-lo);border:2px solid var(--ink);width:10px;height:8px}.pip.on{background:var(--accent)}.maxed{color:var(--accent);font-family:var(--font-title);font-size:.7rem}.section{color:var(--accent);margin-top:8px;font-size:.6rem}.board{--size:min(100%, 440px, calc(100dvh - 330px));width:var(--size);aspect-ratio:1;background-color:var(--panel-lo);background-image:conic-gradient(#ffffff0a 25%,#0000 25% 50%,#ffffff0a 50% 75%,#0000 75%);background-size:calc(200% / var(--cols)) calc(200% / var(--rows));border:var(--px) solid var(--ink);min-width:260px;box-shadow:inset 0 0 0 var(--px) var(--panel-hi), 0 var(--px) 0 var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;margin:0 auto;position:relative;overflow:hidden}.board.locked .gem{filter:saturate(.3)brightness(.7)}.gem{--c:#888;--hi:#bbb;--lo:#555;width:calc(100% / var(--cols));height:calc(100% / var(--rows));cursor:pointer;padding:3px;transition:transform .22s steps(6,end);position:absolute;top:0;left:0}.gem.no-anim{transition:none}.gem:before{content:"";background:var(--c);border:2px solid var(--ink);box-shadow:inset 3px 3px 0 var(--hi), inset -3px -3px 0 var(--lo);position:absolute;inset:3px}.gem-icon{filter:drop-shadow(2px 2px #00000059);width:72%;height:72%;margin:14%;display:block;position:relative}.gem.red{--c:#e8323c;--hi:#ff8a9a;--lo:#8e1c2e}.gem.blue{--c:#3a9aff;--hi:#8ae8ff;--lo:#1f4aa8}.gem.green{--c:#2a9a3a;--hi:#5ad84a;--lo:#1a5a2a}.gem.purple{--c:#7a3ab8;--hi:#c07aff;--lo:#3e1e6a}.gem.yellow{--c:#e8a82a;--hi:#ffd83c;--lo:#a8501c}.gem.cyan{--c:#1aa8b8;--hi:#8ae8ff;--lo:#0e5a78}.gem.rainbow:before{background:linear-gradient(135deg,#e8323c 0 20%,#ffd83c 20% 40%,#5ad84a 40% 60%,#3a9aff 60% 80%,#c07aff 80%);box-shadow:inset 3px 3px #ffffff80,inset -3px -3px #0000004d}.gem.rainbow .gem-icon{animation:.6s steps(2,end) infinite twinkle}.gem.sp-lineH:after,.gem.sp-lineV:after,.gem.sp-bomb:after{content:"";pointer-events:none;position:absolute;inset:5px}.gem.sp-lineH:after{background:linear-gradient(#0000 0 38%,#ffffffbf 38% 50%,#0000 50% 62%,#ffffffbf 62% 74%,#0000 74%)}.gem.sp-lineV:after{background:linear-gradient(90deg,#0000 0 38%,#ffffffbf 38% 50%,#0000 50% 62%,#ffffffbf 62% 74%,#0000 74%)}.gem.sp-bomb:after{border:3px dashed #fff;animation:.5s step-end infinite blink}.gem.selected:before{box-shadow:inset 3px 3px 0 var(--hi), inset -3px -3px 0 var(--lo), 0 0 0 2px #fff;border-color:#fff}.gem.selected{z-index:2}.gem.selected .gem-icon,.gem.hint .gem-icon{animation:.5s steps(2,end) infinite hop}.gem.pop{z-index:3;animation:.23s steps(4,end) forwards pop}.gem.born{animation:.36s steps(4,end) born}.gem.shake{animation:.16s steps(4,end) shake}.board.shuffling .gem{opacity:0;transition:opacity .3s steps(3,end)}@keyframes pop{50%{filter:brightness(3)}to{opacity:0;filter:brightness(3);scale:1.4}}@keyframes born{0%{filter:brightness(3);scale:.3}60%{scale:1.2}}@keyframes hop{50%{transform:translateY(-12%)}}@keyframes shake{25%{translate:-4px}75%{translate:4px}}@keyframes blink{50%{opacity:.2}}@keyframes twinkle{50%{filter:brightness(1.5)drop-shadow(0 0 #fff)}}.blast{pointer-events:none;z-index:4;box-shadow:0 0 0 3px var(--accent);background:#fff;animation:.45s steps(4,end) forwards blast;position:absolute}.blast-lineH{left:0;right:0;top:calc(100% / var(--rows) * (var(--r) + .35));height:calc(100% / var(--rows) * .3)}.blast-lineV{top:0;bottom:0;left:calc(100% / var(--cols) * (var(--c) + .35));width:calc(100% / var(--cols) * .3)}.blast-bomb{left:calc(100% / var(--cols) * (var(--c) - 1));top:calc(100% / var(--rows) * (var(--r) - 1));width:calc(300% / var(--cols));height:calc(300% / var(--rows));background:#ffffffb3}.blast-star{box-shadow:none;background:#ffffff80;inset:0}@keyframes blast{to{opacity:0}}.combo{text-align:center;font-family:var(--font-title);color:var(--accent);text-shadow:3px 3px 0 var(--accent-lo), -3px 0 0 var(--ink), 3px 0 0 var(--ink), 0 -3px 0 var(--ink), 0 6px 0 var(--ink);pointer-events:none;z-index:5;font-size:1.2rem;animation:.9s steps(6,end) forwards combo;position:absolute;top:42%;left:0;right:0}@keyframes combo{0%{opacity:0;transform:scale(.5)}25%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:translateY(-30px)}}.town-stats{grid-template-columns:repeat(6,1fr);gap:2px;padding:8px 4px;display:grid}.stat{flex-direction:column;align-items:center;padding:3px 0;display:flex;position:relative}.stat.flash{animation:.6s steps(3,end) flash}@keyframes flash{0%{background:#ffd83c59}}.stat-val{font-family:var(--font-title);margin-top:4px;font-size:.72rem}.stat-name{color:var(--muted);font-size:.78rem}.stat-gain{color:var(--good);font-size:.8rem}.footer{flex-direction:column;align-items:center;gap:8px;display:flex}.legend{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:6px 10px;font-size:.9rem;display:flex}.legend-item{align-items:center;gap:4px;display:inline-flex}.dot{border:2px solid var(--ink);justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.dot.red{background:#e8323c}.dot.blue{background:#3a9aff}.dot.green{background:#2a9a3a}.dot.purple{background:#7a3ab8}.dot.yellow{background:#e8a82a}.dot.cyan{background:#1aa8b8}.done-text{color:var(--accent);font-family:var(--font-title);font-size:.7rem}.combat .board{--size:min(100%, 440px, calc(100dvh - 420px))}.combat .topbar h2{font-size:.62rem}.combat .zone{font-size:.85rem}.enemy,.hero{grid-template-columns:84px 1fr;align-items:center;gap:10px;padding:8px 10px;display:grid;position:relative}.enemy.zone-tree{background:linear-gradient(#1f3a4a 0 55%,#1a5a2a 55% 62%,#12401e 62% 100%)}.enemy.zone-coffin{background:linear-gradient(#241c3a 0 55%,#4a3f5e 55% 62%,#2e2640 62% 100%)}.enemy.zone-volcano{background:linear-gradient(#3a1420 0 55%,#a8501c 55% 60%,#4e1a14 60% 100%)}.enemy.kind-elite{box-shadow:inset var(--px) var(--px) 0 #f58a24, inset calc(-1 * var(--px)) calc(-1 * var(--px)) 0 #a8501c, 0 var(--px) 0 var(--ink)}.enemy.kind-boss{box-shadow:inset var(--px) var(--px) 0 var(--bad), inset calc(-1 * var(--px)) calc(-1 * var(--px)) 0 #8e1c2e, 0 var(--px) 0 var(--ink)}.enemy-icon{justify-content:center;align-items:flex-end;min-height:80px;display:flex}.enemy-icon .px{filter:drop-shadow(0 4px #00000073);animation:1s steps(2,end) infinite idle}.hero-icon{justify-content:center;display:flex;position:relative}.hero-icon .px{animation:1.4s steps(2,end) infinite idle}.enemy.hit .enemy-icon .px{filter:brightness(0)invert();animation:.3s steps(4,end) shake}.enemy.act .enemy-icon .px{animation:none;transform:translateY(12px)scale(1.15)}.enemy.dead .enemy-icon .px{animation:.6s steps(5,end) forwards die}@keyframes die{to{opacity:0;filter:brightness(3);transform:translateY(20px)scaleY(.2)}}.hero.hurt{box-shadow:inset var(--px) var(--px) 0 var(--bad), inset calc(-1 * var(--px)) calc(-1 * var(--px)) 0 var(--bad), 0 var(--px) 0 var(--ink);animation:.3s steps(4,end) shake}.hero.cast{box-shadow:inset var(--px) var(--px) 0 var(--mana), inset calc(-1 * var(--px)) calc(-1 * var(--px)) 0 var(--mana), 0 var(--px) 0 var(--ink)}.hero.dead .px{filter:grayscale()brightness(.5)}.hero{grid-template-columns:56px 1fr;row-gap:6px}.hero-status{position:absolute;top:-6px;right:-4px}.enemy-name{font-family:var(--font-title);text-shadow:2px 2px 0 var(--ink);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;font-size:.62rem;display:flex}.badge{border:2px solid var(--ink);color:var(--ink);text-shadow:none;background:#f58a24;padding:3px 5px;font-size:.5rem}.badge.boss{background:var(--bad);color:#fff}.intent{text-shadow:1px 1px 0 var(--ink);margin-top:2px;font-size:.95rem}.intent-label{color:var(--muted)}.rotation{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.rot{background:var(--panel-lo);border:2px solid var(--ink);opacity:.6;padding:1px 4px;font-size:.85rem}.rot.current{opacity:1;border-color:var(--accent)}.hero-body{flex-direction:column;gap:4px;display:flex}.bar{background:var(--ink);border:2px solid var(--ink);height:22px;position:relative;overflow:hidden}.bar-fill{background:var(--bad);height:100%;transition:width .3s steps(5,end);box-shadow:inset 0 3px #ffffff59,inset 0 -3px #0000004d}.bar.armor .bar-fill{background:var(--armor)}.bar.mana .bar-fill{background:var(--mana)}.bar:after{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 10px,#0d0a1459 10px 12px);position:absolute;inset:0}.bar-label{z-index:1;text-shadow:1px 1px 0 var(--ink), -1px -1px 0 var(--ink), 1px -1px 0 var(--ink), -1px 1px 0 var(--ink);justify-content:center;align-items:center;gap:4px;font-size:.9rem;display:flex;position:absolute;inset:0}.bar .tick{z-index:1;background:#fff;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.skills{grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.btn.skill{min-height:70px;box-shadow:inset var(--px) var(--px) 0 #c07aff, inset calc(-1 * var(--px)) calc(-1 * var(--px)) 0 #3e1e6a, 0 var(--px) 0 var(--ink);background:#7a3ab8;flex-direction:column;gap:2px;padding:5px 4px}.btn.skill.locked{background:var(--panel-lo);box-shadow:0 var(--px) 0 var(--ink)}.btn.skill:not(:disabled){animation:.8s steps(2,end) infinite ready}@keyframes ready{50%{border-color:var(--accent)}}.btn.skill .skill-name{text-align:center;font-size:.78rem;line-height:1.05}.btn.skill .skill-cost{font-size:.8rem;font-weight:700}.btn.skill .skill-cost.bad{color:#ff8a9a}.float-text{font-family:var(--font-title);white-space:nowrap;pointer-events:none;z-index:10;text-shadow:2px 2px 0 var(--ink), -2px -2px 0 var(--ink), 2px -2px 0 var(--ink), -2px 2px 0 var(--ink);align-items:center;gap:4px;font-size:.8rem;animation:1.2s steps(8,end) forwards float-up;display:flex;position:absolute;top:30%;transform:translate(-50%)}.float-text.big{font-size:1.1rem}.float-text.dmg{color:var(--bad)}.float-text.good{color:var(--good)}.float-text.armor{color:#8ae8ff}.float-text.armor-loss{color:var(--muted)}.float-text.poison{color:#a3e635}.float-text.soul{color:var(--accent)}@keyframes float-up{0%{opacity:0;translate:0 10px}15%{opacity:1}to{opacity:0;translate:0 -40px}}.big-icon .px{animation:1s steps(2,end) infinite idle}.gain{color:var(--accent);font-size:1.1rem}.boons{flex-direction:column;gap:10px;width:100%;display:flex}.boon{font:inherit;color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:12px;padding:12px 14px;font-size:1.1rem;display:flex}.boon:hover,.boon:focus-visible{outline:var(--px) solid var(--accent)}.boon:active{transform:translateY(var(--px))}.next{color:var(--muted)}.next.elite{color:#f58a24}.next.boss{color:var(--bad)}
