:root{--bg:#17142b;--bg2:#1e1a38;--panel:#2a2550;--panel2:#352e63;--inset:#120f24;--frame:#08060f;--edge:#4d4494;--cream:#fff4d6;--muted:#b9b0e0;--dim:#8a82b5;--gold:#ffcd4a;--gold-d:#b87a12;--pink:#ff5e8a;--mint:#4fe0a0;--mint-d:#1f8a5a;--sky:#5ec8ff;--red:#ff4b5c;--red-d:#a3203a;--purple:#b26bff;--r-common:#c8c4dc;--r-uncommon:#5fe08a;--r-rare:#5ec8ff;--r-epic:#c77dff;--r-legendary:#ffab3d;--display:"Press Start 2P",monospace;--body:"Pixelify Sans",system-ui,sans-serif;color-scheme:dark}*{box-sizing:border-box;border-radius:0}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--cream);font-family:var(--body);font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0;-webkit-font-smoothing:none}body{background-image:radial-gradient(#ffffff60 1px,transparent 1.6px),radial-gradient(#ffd36b45 1px,transparent 1.6px);background-size:64px 64px,112px 112px;background-position:0 0,40px 56px}button,input{font:inherit;color:inherit}button{cursor:pointer}img{image-rendering:pixelated}[hidden]{display:none!important}.screen{min-height:100vh}.panel{border:4px solid var(--frame);background:var(--panel);box-shadow:inset 0 0 0 3px var(--edge),5px 5px #0008;padding:14px}.panel-title{display:flex;justify-content:space-between;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--gold);margin-bottom:8px}.bar{position:relative;height:14px;border:3px solid var(--frame);background:var(--inset)}.bar>i{display:block;height:100%;width:0;transition:width .15s steps(3)}.bar span{position:absolute;inset:0;display:grid;place-items:center;font-size:10px;font-weight:700;text-shadow:1px 1px 0 var(--frame)}.bar.hp>i{background:repeating-linear-gradient(90deg,var(--mint) 0 8px,var(--mint-d) 8px 10px)}.bar.hp.enemy>i{background:repeating-linear-gradient(90deg,var(--red) 0 8px,var(--red-d) 8px 10px)}.bar.xp>i{background:repeating-linear-gradient(90deg,var(--purple) 0 8px,#6b3fa0 8px 10px)}.bar.quest-bar>i{background:repeating-linear-gradient(90deg,var(--gold) 0 8px,var(--gold-d) 8px 10px)}.bar.quest-bar{height:20px}button.px,.class-go,.boss-button,.item-actions button,.bag-head button,.menu-card button,.menu-link,.end-actions>*,.resume button{border:3px solid var(--frame);background:var(--panel2);color:var(--cream);font-weight:700;letter-spacing:.04em;padding:8px 12px;box-shadow:inset -3px -4px #0005,inset 3px 3px #ffffff30,3px 3px #0008;text-decoration:none;display:inline-block}button:active:not(:disabled){transform:translateY(2px)}button:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.5)}.start{max-width:1200px;margin:0 auto;padding:40px 20px 60px;text-align:center}.back-link{display:inline-block;color:var(--muted);text-decoration:none;font-size:14px;margin-bottom:26px}.kicker{font-size:13px;letter-spacing:.14em;color:var(--gold);margin:0}.start h1,.end h1{font-family:var(--display);font-weight:400;font-size:clamp(28px,6vw,64px);line-height:1.25;margin:18px 0;text-shadow:5px 5px 0 var(--frame)}.start h1 span,.end h1 span{color:var(--gold)}.lede{max-width:760px;margin:0 auto 26px;font-size:18px;line-height:1.6;color:var(--muted)}.lede.quiet{font-size:15px;color:var(--dim)}.resume{display:flex;flex-direction:column;align-items:center;gap:8px;margin:0 0 24px;color:var(--dim);font-size:13px}.resume button{background:var(--gold);color:var(--frame);font-size:16px;padding:12px 18px}.resume small{display:block;font-size:12px;font-weight:500;margin-top:4px;color:#5a3b00}.name-field{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--gold);letter-spacing:.08em;margin-bottom:22px}.name-field input{background:var(--inset);border:3px solid var(--frame);box-shadow:inset 0 0 0 2px var(--edge);padding:8px 10px;font-size:16px;width:200px}.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;text-align:left}.class-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:18px;border:4px solid var(--frame);background:var(--panel);box-shadow:inset 0 0 0 3px var(--edge),6px 6px #0008;transition:transform .08s steps(2)}.class-card:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 3px var(--gold),6px 10px #0008}.class-card img{width:96px;height:96px;align-self:center;filter:drop-shadow(4px 4px 0 #00000088);animation:bob 1.2s steps(2) infinite}.class-card b{font-family:var(--display);font-weight:400;font-size:14px;margin-top:8px}.class-card small{color:var(--mint);font-size:13px}.class-card p{margin:4px 0 8px;font-size:15px;line-height:1.5;color:var(--muted)}.class-bars{width:100%;display:grid;gap:5px;margin-bottom:12px}.class-bars div{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:8px;font-size:11px;color:var(--dim)}.class-bars i{height:10px;border:2px solid var(--frame);background:linear-gradient(90deg,var(--gold) calc(var(--v)*100%),var(--inset) 0)}.class-go{margin-top:auto;width:100%;text-align:center;background:var(--gold);color:var(--frame);font-size:13px}.fine{margin-top:26px;color:var(--dim);font-size:13px}@keyframes bob{50%{transform:translateY(-4px)}}.hud{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:8px 14px;background:#0d0b1af2;border-bottom:4px solid var(--frame)}.hud-brand{font-family:var(--display);font-size:10px;color:var(--gold);text-decoration:none;white-space:nowrap}.hud-hero{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.hud-hero img{width:40px;height:40px;border:3px solid var(--frame);background:var(--inset);box-shadow:inset 0 0 0 2px var(--edge)}.hud-hero>div{display:flex;flex-direction:column;gap:3px;min-width:0;max-width:300px;flex:1}.hud-hero b{font-size:15px}.hud-hero small{font-size:12px;color:var(--muted)}.hud-hero .bar{height:10px;border-width:2px}.hud-stat{display:flex;flex-direction:column;align-items:flex-end;font-size:10px;color:var(--dim);letter-spacing:.08em}.hud-stat b{font-family:var(--display);font-weight:400;font-size:13px;color:var(--gold);margin-top:3px}.hud-menu{border:3px solid var(--frame);background:var(--panel2);font-size:18px;width:40px;height:40px;box-shadow:inset -2px -3px #0005}.play-grid{display:grid;grid-template-columns:260px minmax(0,1fr) 340px;grid-template-areas:"left center right";gap:14px;padding:14px;max-width:1500px;margin:0 auto;align-items:start}.center{grid-area:center;display:flex;flex-direction:column;gap:10px}.left{grid-area:left;display:flex;flex-direction:column;gap:14px}.right{grid-area:right}.scene{position:relative;height:340px;border:4px solid var(--frame);box-shadow:inset 0 0 0 3px var(--edge),6px 6px #0008;overflow:hidden;--sky1:#2b2550;--sky2:#4d3b5c;--ground:#4a5a3a}.scene[data-zone=inkwood]{--sky1:#14203a;--sky2:#26406a;--ground:#23384a}.scene[data-zone=vaults]{--sky1:#2a1a2a;--sky2:#4a2c3a;--ground:#4a3a30}.scene[data-zone=tower]{--sky1:#120f24;--sky2:#3a1f3f;--ground:#2a2440}.scene-sky{position:absolute;inset:0;background:linear-gradient(var(--sky1) 0 20%,color-mix(in srgb,var(--sky1),var(--sky2)) 20% 45%,var(--sky2) 45%)}.scene-sky:after{content:"";position:absolute;inset:0;background-image:radial-gradient(#ffffff70 1px,transparent 1.6px);background-size:48px 40px;opacity:.6}.scene-ground{position:absolute;left:0;right:0;bottom:0;height:30%;background:repeating-linear-gradient(90deg,var(--ground) 0 32px,color-mix(in srgb,var(--ground),#000 15%) 32px 64px);border-top:4px solid color-mix(in srgb,var(--ground),#fff 18%)}.zone-tag{position:absolute;top:10px;left:50%;transform:translate(-50%);font-family:var(--display);font-size:9px;color:var(--cream);background:#08060fcc;padding:6px 9px;white-space:nowrap}.combatant{position:absolute;bottom:16%;display:flex;flex-direction:column;align-items:center;gap:6px}.hero-side{left:7%;width:min(240px,40%)}.hero-side .bar{width:100%;height:18px}.figures{display:flex;align-items:flex-end;gap:2px}.figures .hero{width:112px;height:112px;filter:drop-shadow(4px 4px 0 #00000099);animation:bob 1s steps(2) infinite}.figures .crumb{width:64px;height:64px;filter:drop-shadow(3px 3px 0 #00000099);animation:bob 1s steps(2) infinite .5s}.hero.lunge{animation:lunge .3s steps(4)}.hero.hurt{animation:hurtflash .35s steps(3)}@keyframes lunge{50%{transform:translate(26px)}}@keyframes hurtflash{33%{filter:brightness(2.5) saturate(0)}66%{transform:translate(-6px)}}.mob-side{right:6%;width:min(260px,44%);border:0;background:none;padding:0;cursor:crosshair;color:inherit}.mob-side img{width:128px;height:128px;filter:drop-shadow(4px 4px 0 #00000099);animation:bob 1.1s steps(2) infinite .2s}.mob-side.boss img{width:200px;height:200px}.mob-side.empty img{opacity:0}.mob-side img.hit{animation:mobhit .25s steps(2)}.mob-side img.enter{animation:enter .4s steps(4)}@keyframes mobhit{50%{filter:brightness(2.4);transform:translate(6px)}}@keyframes enter{0%{opacity:0;transform:translate(40px)}}.mob-name{font-size:13px;font-weight:700;background:#08060fcc;padding:4px 8px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.mob-side .bar{width:100%;height:16px}.mob-side.boss .mob-name{color:var(--gold)}.cast{position:relative;width:100%;height:20px;border:3px solid var(--frame);background:var(--inset);animation:pulse .5s steps(2) infinite}.cast i{display:block;height:100%;background:var(--purple)}.cast b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-weight:400;font-size:8px;text-shadow:1px 1px 0 var(--frame)}@keyframes pulse{50%{box-shadow:0 0 0 3px var(--purple)}}.scene.shake{animation:shake .35s steps(4)}@keyframes shake{25%{transform:translate(-6px,2px)}50%{transform:translate(6px,-2px)}75%{transform:translate(-3px,1px)}}.banner{position:absolute;top:44px;left:50%;transform:translate(-50%);z-index:6;font-family:var(--display);font-size:12px;padding:10px 14px;background:var(--frame);border:3px solid var(--cream);box-shadow:4px 4px #0009;white-space:nowrap;animation:drop .3s steps(3)}.banner.good{color:var(--gold);border-color:var(--gold)}.banner.boss{color:var(--red);border-color:var(--red)}.banner.zone{color:var(--sky);border-color:var(--sky)}@keyframes drop{0%{transform:translate(-50%,-16px);opacity:0}}.overlay{position:absolute;inset:0;z-index:7;display:grid;place-items:center;background:#08060fcc;font-family:var(--display);font-size:12px;color:var(--red);text-align:center;padding:20px}.crumb-bubble{position:absolute;left:12px;top:42px;z-index:5;max-width:min(360px,70%);background:var(--cream);color:var(--frame);border:3px solid var(--frame);padding:9px 11px;font-size:14px;line-height:1.35;box-shadow:4px 4px #0009;animation:drop .3s steps(3)}.crumb-bubble:before{content:"SIR CRUMB";display:block;font-family:var(--display);font-size:7px;color:#b8430f;margin-bottom:4px}.pop{position:absolute;z-index:8;pointer-events:none;font-family:var(--display);font-size:12px;color:#fff;text-shadow:2px 2px 0 var(--frame),-2px -2px 0 var(--frame),2px -2px 0 var(--frame),-2px 2px 0 var(--frame);animation:popup .9s steps(9) forwards;white-space:nowrap}.pop.skill{color:var(--gold);font-size:14px}.pop.crit{color:var(--pink);font-size:17px}.pop.dot{color:var(--purple);font-size:10px}.pop.crumb{color:#ffb070;font-size:10px}.pop.tap{color:#fff;font-size:10px}.pop.echo{color:var(--r-legendary)}.pop.hurt{color:var(--red)}.pop.hurt.big{font-size:18px}.pop.heal{color:var(--mint)}.pop.reward{color:var(--gold);font-size:9px}@keyframes popup{0%{transform:translateY(0) scale(.7);opacity:1}25%{transform:translateY(-14px) scale(1.1)}to{transform:translateY(-60px);opacity:0}}.actionbar{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.skill{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:68px;padding:8px 9px;text-align:left;border:3px solid var(--frame);background:var(--panel2);box-shadow:inset -3px -4px #0005,inset 3px 3px #ffffff30,3px 3px #0008;--cd:0}.skill:after{content:"";position:absolute;left:0;right:0;bottom:0;height:calc(var(--cd)*100%);background:#08060fb0;pointer-events:none}.skill kbd{font-family:var(--display);font-size:8px;color:var(--gold)}.skill b{font-size:13px;line-height:1.15}.skill small{font-size:10px;color:var(--dim)}.skill .cd{position:absolute;right:8px;bottom:6px;z-index:1;font-family:var(--display);font-size:12px}.skill.ult{background:#5a3b8a}.skill.potion{background:#1f6a4a}.skill.skill-stun{background:#3d5bb0}.skill.fired{animation:fired .3s steps(3)}.skill.urgent{animation:urgent .4s steps(2) infinite;box-shadow:0 0 0 3px var(--gold),3px 3px #0008}@keyframes fired{50%{filter:brightness(1.8)}}@keyframes urgent{50%{filter:brightness(1.6);transform:translateY(-2px)}}.toggles{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--muted)}.toggles label{display:flex;align-items:center;gap:6px}.toggles label.locked{opacity:.5}.toggles small{color:var(--dim)}.toggles input{accent-color:var(--gold);width:16px;height:16px}.quest h2{font-family:var(--display);font-weight:400;font-size:12px;line-height:1.6;margin:0 0 8px}.quest p{margin:0 0 10px;font-size:14px;line-height:1.45;color:var(--muted)}.boss-button{width:100%;margin-top:10px;background:var(--red-d);font-size:13px}.boss-button.ready{background:var(--red);animation:urgent .6s steps(2) infinite}.boss-hint{display:block;margin-top:8px;font-size:12px;line-height:1.4;color:var(--dim)}.zones ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.zone{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:3px solid var(--frame);background:var(--panel2)}.zone b{font-size:14px}.zone small{font-size:11px;color:var(--dim)}.zone.here{background:#3d3270;box-shadow:inset 0 0 0 2px var(--gold)}.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:-4px}.tabs button{position:relative;padding:9px 4px;font-size:12px;font-weight:700;border:4px solid var(--frame);border-bottom:0;background:var(--inset);color:var(--dim)}.tabs button[aria-selected=true]{background:var(--panel);color:var(--gold)}.tabs i{font-style:normal;color:var(--mint);margin-left:3px}#talent-badge{color:var(--pink)}.tab{max-height:calc(100vh - 140px);overflow:auto;scrollbar-width:thin}.stat-list{display:grid;gap:4px;margin-bottom:14px}.stat-list div{display:flex;justify-content:space-between;font-size:14px;padding:3px 0;border-bottom:2px dotted #ffffff14}.stat-list span{color:var(--muted)}.item-list{display:grid;gap:6px}.item{display:grid;grid-template-columns:36px 1fr;gap:4px 10px;align-items:center;padding:8px;border:3px solid var(--frame);border-left:6px solid var(--r-common);background:var(--panel2)}.item.empty{display:block;color:var(--dim);font-size:13px;border-left-color:var(--edge);border-style:dashed;background:transparent}.item-icon{width:36px;height:36px;grid-row:span 2;background:var(--inset);border:2px solid var(--frame)}.item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.item-info b{font-size:14px}.item-info small{font-size:11px;color:var(--dim)}.item-info .stats{color:var(--cream);font-size:12px}.item-info .echo{color:var(--r-legendary)}.item-actions{grid-column:2;display:flex;gap:5px;flex-wrap:wrap}.item-actions button{padding:5px 8px;font-size:11px}.item-actions .better{background:var(--mint-d)}.item-actions .upgrade{background:var(--gold-d)}.item.upgrade-available{box-shadow:inset 0 0 0 2px var(--mint)}.r-common{--rc:var(--r-common)}.r-uncommon{--rc:var(--r-uncommon)}.r-rare{--rc:var(--r-rare)}.r-epic{--rc:var(--r-epic)}.r-legendary{--rc:var(--r-legendary)}.item[class*=r-]{border-left-color:var(--rc)}.item[class*=r-] .item-info b{color:var(--rc)}.bag-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;color:var(--muted)}.bag-head button{padding:6px 10px;font-size:11px}.empty-note{color:var(--dim);font-size:14px;line-height:1.5}.talent-row{margin-bottom:14px}.talent-row.locked{opacity:.5}.talent-opts{display:grid;grid-template-columns:1fr 1fr;gap:6px}.talent{display:flex;flex-direction:column;gap:3px;text-align:left;padding:9px;border:3px solid var(--frame);background:var(--panel2);min-height:70px}.talent b{font-size:14px;color:var(--cream)}.talent small{font-size:12px;color:var(--muted);line-height:1.3}.talent.chosen{background:#3d3270;box-shadow:inset 0 0 0 3px var(--gold)}.talent.chosen b{color:var(--gold)}.talent:not(:disabled):not(.chosen){box-shadow:inset 0 0 0 2px var(--mint);animation:fired 1.2s steps(2) infinite}.log{list-style:none;margin:0;padding:0;font-size:13px;color:var(--muted)}.log li{padding:5px 0;border-bottom:2px dotted #ffffff12}.toasts{position:fixed;right:14px;bottom:14px;z-index:40;display:flex;flex-direction:column;gap:6px;max-width:min(380px,calc(100% - 28px))}.toast{border:3px solid var(--frame);border-left:6px solid var(--rc,var(--gold));background:var(--panel);padding:9px 12px;font-size:14px;box-shadow:4px 4px #0009;animation:drop .3s steps(3)}.toast[class*=r-]{color:var(--rc)}.menu{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#08060fcc;padding:20px}.menu-card{max-width:360px;width:100%;display:flex;flex-direction:column;gap:10px;text-align:center;border:4px solid var(--frame);background:var(--panel);box-shadow:inset 0 0 0 3px var(--edge),8px 8px #0009;padding:22px}.menu-card h2{font-family:var(--display);font-weight:400;font-size:16px;margin:0}.menu-card p{color:var(--muted);font-size:14px;line-height:1.5;margin:0 0 6px}.menu-card button:first-of-type{background:var(--gold);color:var(--frame)}.menu-card .danger{background:var(--red-d)}.end{max-width:860px;margin:0 auto;padding:60px 20px;text-align:center}.end-art{display:flex;justify-content:center;align-items:flex-end;gap:10px;margin:10px 0 24px}.end-art img{width:160px;height:160px;animation:bob 1s steps(2) infinite;filter:drop-shadow(5px 5px 0 #00000099)}.end-art img+img{width:96px;height:96px}.end-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;text-align:left;max-width:560px;margin:26px auto;border:4px solid var(--frame);background:var(--panel);box-shadow:inset 0 0 0 3px var(--edge),6px 6px #0008;padding:18px}.end-stats div{display:flex;justify-content:space-between;gap:10px;font-size:14px;border-bottom:2px dotted #ffffff14;padding:3px 0}.end-stats span{color:var(--muted)}.end-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.end-actions .cta{background:var(--gold);color:var(--frame)}@media(max-width:1180px){.play-grid{grid-template-columns:240px minmax(0,1fr);grid-template-areas:"left center" "right right"}}@media(max-width:760px){.play-grid{grid-template-columns:1fr;grid-template-areas:"center" "left" "right";padding:8px;gap:10px}.hud{gap:8px;padding:6px 8px}.hud-brand span,.hud-stat:nth-of-type(3){display:none}.hud-hero img{width:34px;height:34px}.hud-stat b{font-size:11px}.scene{height:290px}.figures .hero{width:80px;height:80px}.figures .crumb{width:44px;height:44px}.mob-side img{width:96px;height:96px}.mob-side.boss img{width:136px;height:136px}.hero-side{left:3%}.mob-side{right:3%}.actionbar{grid-template-columns:repeat(5,1fr);gap:5px}.skill{min-height:60px;padding:6px}.skill b{font-size:11px}.skill small{display:none}.skill .cd{top:5px;bottom:auto;right:5px;font-size:10px}.class-grid{grid-template-columns:1fr}.crumb-bubble{font-size:12px}.banner{font-size:9px;white-space:normal;text-align:center;max-width:90%}.tab{max-height:none}.end-stats{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01s!important;animation-iteration-count:1!important}}
