:root{--bg:#15131a;--stone-0:#0e0d12;--stone-1:#24212b;--stone-2:#302c38;--stone-3:#484252;--stone-4:#5d5669;--gold:#e2b23c;--gold-light:#f6d77a;--gold-dark:#8f6218;--steel:#aab4bf;--text:#ece6d6;--muted:#a8a090;--red:#d8463b;--red-dark:#7d1f1a;--blue:#5aa2e8;--green:#6fcf57;--purple:#b57ce0;--attack:#b8453a;--skill:#3f7fbf;--buff:#8b5cc4;--px:6px;--tpx:3.2px;--card-w:140px;--card-h:226px;--font:"VT323", ui-monospace, "Courier New", monospace;--font-ui:"Pixelify Sans", ui-monospace, "Courier New", monospace;--font-title:"Press Start 2P", "Pixelify Sans", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:none;font-size:21px;line-height:1.15}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;margin:0}#root{min-height:100vh}button{font-family:inherit;font-size:inherit;color:inherit}h1,h2,h3{margin:0;font-weight:700}p{margin:.4em 0}b{color:var(--gold-light)}.muted{color:var(--muted)}.gold{color:var(--gold)!important}.danger{color:var(--red)!important}svg.pixel{image-rendering:pixelated;vertical-align:middle;flex-shrink:0;display:inline-block}.screen{flex-direction:column;min-height:100vh;display:flex}.theme-caves{background-color:#1b1720;background-image:radial-gradient(at 20% 0,#78503c40,#0000 55%),radial-gradient(at 90% 30%,#5a3c6e38,#0000 50%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' shape-rendering='crispEdges'%3E%3Cg fill='%23000' fill-opacity='.22'%3E%3Crect x='8' y='10' width='6' height='4'/%3E%3Crect x='52' y='30' width='8' height='4'/%3E%3Crect x='30' y='64' width='4' height='4'/%3E%3Crect x='76' y='80' width='6' height='6'/%3E%3C/g%3E%3Cg fill='%23fff' fill-opacity='.04'%3E%3Crect x='14' y='44' width='4' height='4'/%3E%3Crect x='70' y='8' width='4' height='2'/%3E%3Crect x='40' y='88' width='6' height='2'/%3E%3C/g%3E%3C/svg%3E")}.theme-tombs{background-color:#241d16;background-image:radial-gradient(at 50% 0,#e2b23c29,#0000 60%),radial-gradient(at 10% 90%,#5aa03c1a,#0000 50%)}.theme-fortress{background-color:#23222a;background-image:radial-gradient(at 50% 0,#c850282e,#0000 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='32' shape-rendering='crispEdges'%3E%3Cg fill='%23000' fill-opacity='.35'%3E%3Crect width='64' height='2'/%3E%3Crect y='16' width='64' height='2'/%3E%3Crect width='2' height='16'/%3E%3Crect x='32' y='16' width='2' height='16'/%3E%3C/g%3E%3Cg fill='%23fff' fill-opacity='.04'%3E%3Crect y='2' width='64' height='2'/%3E%3Crect y='18' width='64' height='2'/%3E%3C/g%3E%3C/svg%3E")}.screen-title,.screen-end{background-color:#17141c;background-image:radial-gradient(at 50% 35%,#e2b23c29,#0000 55%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='32' shape-rendering='crispEdges'%3E%3Cg fill='%23000' fill-opacity='.35'%3E%3Crect width='64' height='2'/%3E%3Crect y='16' width='64' height='2'/%3E%3Crect width='2' height='16'/%3E%3Crect x='32' y='16' width='2' height='16'/%3E%3C/g%3E%3C/svg%3E");justify-content:center;align-items:center;padding:24px 16px}.panel{background:linear-gradient(180deg, var(--stone-2), var(--stone-1));border:3px solid var(--stone-0);box-shadow:inset 0 0 0 2px var(--stone-3), inset 0 -4px 0 2px #0000004d, 0 4px 0 #00000073;padding:14px 16px}.panel-title{font-family:var(--font-title);color:var(--gold);letter-spacing:1px;text-shadow:2px 2px #000;margin-bottom:10px;font-size:13px}.section-title{color:var(--gold-light);text-align:center;margin:18px 0 6px;font-size:18px}.btn{background:linear-gradient(180deg, var(--stone-4), var(--stone-3));border:3px solid var(--stone-0);cursor:pointer;text-shadow:1px 1px #000;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:700;transition:filter .1s;display:inline-flex;box-shadow:inset 0 2px #ffffff26,inset 0 -3px #00000059,0 3px #00000080}.btn:hover:not(:disabled){filter:brightness(1.18)}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px #ffffff1a,inset 0 -1px #00000059}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,.option-card:focus-visible,.equip-card:focus-visible,.card:focus-visible,.pile-btn:focus-visible{outline:3px solid var(--gold-light);outline-offset:2px}.btn--primary{background:linear-gradient(180deg, var(--gold-light), var(--gold) 55%, var(--gold-dark));color:#2a1a05;text-shadow:1px 1px #ffffff59}.btn--big{padding:14px 28px;font-size:20px}.btn--small{padding:6px 12px;font-size:15px}.tag{border:2px solid var(--stone-0);margin-right:8px;padding:4px 6px;font-size:14px}.tag--elite{background:#6a2a8a}.tag--boss{background:var(--red-dark);color:var(--gold-light)}.tip-anchor{display:inline-flex}.tooltip{z-index:1000;background:var(--stone-0);border:2px solid var(--gold-dark);pointer-events:none;max-width:300px;padding:8px 10px;font-size:19px;line-height:1.3;position:fixed;box-shadow:0 4px #00000080}.tooltip-line+.tooltip-line{margin-top:4px}.topbar{border-bottom:3px solid var(--stone-0);box-shadow:inset 0 -2px 0 var(--gold-dark);z-index:5;background:linear-gradient(#2c2833,#1d1a22);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;padding:8px 16px;display:flex;position:relative}.topbar-group{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.topbar-title{font-family:var(--font-title);color:var(--gold);font-size:12px}.topbar-stat{align-items:center;gap:6px;font-size:25px;font-weight:700;display:inline-flex}.stat-hp{color:#ff8a80}.stat-gold{color:var(--gold-light)}.topbar-location{gap:10px}.equip-bar{flex-wrap:wrap;gap:6px;display:flex}.equip-empty{font-size:17px}.equip-slot{background:var(--stone-0);border:2px solid var(--gold-dark);cursor:help;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex;box-shadow:inset 0 0 0 2px #2e2a35}.equip-list{gap:6px;margin-bottom:14px;display:grid}.equip-list-item{background:var(--stone-0);align-items:center;gap:10px;padding:6px 10px;display:flex}.title-card{text-align:center;width:100%;max-width:600px;padding:28px 24px}.title-card--wide{max-width:900px}.vocation-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:10px 0 22px;display:grid}.vocation-card{background:linear-gradient(180deg, var(--stone-3), var(--stone-2));border:3px solid var(--stone-0);box-shadow:inset 0 0 0 2px var(--stone-4), 0 4px 0 #00000080;cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:12px 8px 14px;transition:transform .12s;display:flex;position:relative}.vocation-card:hover:not(:disabled):not(.is-locked){transform:translateY(-3px)}.vocation-card.is-selected{box-shadow:inset 0 0 0 3px var(--gold-light), 0 0 18px #e2b23c73, 0 4px 0 #00000080}.vocation-card:focus-visible{outline:3px solid var(--gold-light);outline-offset:2px}.vocation-card.is-locked{cursor:not-allowed}.vocation-card.is-locked .vocation-portrait,.vocation-card.is-locked .vocation-name,.vocation-card.is-locked .vocation-desc{filter:grayscale()brightness(.6)}.vocation-portrait{border:2px solid var(--stone-0);--tpx:2.1px;background:#0000004d;justify-content:center;align-items:flex-end;width:100%;height:120px;padding-bottom:6px;display:flex;overflow:hidden}.vocation-name{font-family:var(--font-ui);color:var(--gold-light);font-size:17px;font-weight:700}.vocation-desc{color:var(--text);font-size:17px;line-height:1.05}.vocation-soon{background:var(--red-dark);border:2px solid var(--stone-0);font-family:var(--font-ui);color:var(--gold-light);white-space:nowrap;padding:1px 10px;font-size:14px;font-weight:700;box-shadow:0 3px #00000080}@media (width<=760px){.vocation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vocation-grid>:first-child{grid-column:1/-1}}.title-sprites{justify-content:center;align-items:flex-end;gap:24px;margin-bottom:18px;display:flex}.game-title{font-family:var(--font-title);color:var(--gold);text-shadow:3px 3px 0 var(--red-dark), 6px 6px 0 #000;margin-bottom:12px;font-size:clamp(22px,6vw,38px);line-height:1.3}.title-sub{margin-bottom:20px;font-size:23px}.title-howto{text-align:left;background:#00000040;margin-top:24px;padding:12px 16px}.title-howto ul{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.title-howto li{align-items:center;gap:10px;display:flex}.stats-list{gap:4px;margin:12px auto;padding:0;font-size:22px;list-style:none;display:grid}.end-equip{justify-content:center;margin:10px 0}.is-fallen{filter:grayscale(.7)brightness(.7);transform:rotate(90deg)}.map-layout{flex:1;grid-template-columns:minmax(300px,540px) minmax(240px,320px);justify-content:center;align-items:start;gap:20px;padding:20px 16px;display:grid}.map-board{background:radial-gradient(#ffffff0a,#0000 70%),linear-gradient(#2a2631,#1c1a21);padding:8px}.map-svg{width:100%;height:auto;max-height:calc(100vh - 110px);display:block}.map-edge{stroke:#5d5669;stroke-width:3px;stroke-dasharray:6 7}.map-edge.is-path{stroke:var(--gold);stroke-width:5px;stroke-dasharray:none}.map-edge.is-next{stroke:var(--gold-light);stroke-width:4px;stroke-dasharray:8 6;animation:1s linear infinite dash}@keyframes dash{to{stroke-dashoffset:-28px}}.map-node-base{fill:#2a2730;stroke:var(--stone-0);stroke-width:4px}.map-node{outline:none}.map-node:not(.is-available):not(.is-visited){opacity:.5}.map-node.node-boss:not(.is-available){opacity:.85}.map-node.node-boss .map-node-base{fill:#3a1b1b;stroke:var(--red-dark)}.map-node.node-elite .map-node-base{fill:#33223d}.map-node.is-visited .map-node-base{fill:#3b3223;stroke:var(--gold-dark)}.map-node.is-current .map-node-base{stroke:var(--gold)}.map-node.is-available{cursor:pointer}.map-node.is-available .map-node-base{fill:#403847;stroke:var(--gold)}.map-node.is-available:hover .map-node-base,.map-node.is-available:focus-visible .map-node-base{fill:#5a4d3a;stroke:#fff}.map-node-glow{fill:none;stroke:var(--gold-light);stroke-width:3px;transform-box:fill-box;transform-origin:50%;animation:1.3s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.25;transform:scale(.92)}50%{opacity:.95;transform:scale(1.05)}}.map-knight--tibia{image-rendering:pixelated;pointer-events:none}.map-start{fill:#e2b23c2e;stroke:#e2b23c73;stroke-width:2px;stroke-dasharray:4 4}.map-node-check{fill:var(--gold);stroke:var(--stone-0);stroke-width:2px}.map-side{gap:14px;display:grid}.map-hover{min-height:150px}.map-hover-title{color:var(--gold-light);align-items:center;gap:10px;margin-bottom:6px;font-size:19px;display:flex}.legend{grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;list-style:none;display:grid}.legend li{align-items:center;gap:8px;display:flex}.battle{flex-direction:column;flex:1;min-height:0;display:flex}.battlefield{flex:1;grid-template-columns:minmax(170px,1fr) minmax(0,2.2fr);align-items:end;gap:16px;min-height:360px;padding:64px 28px 26px;display:grid;position:relative;overflow:hidden}.battlefield:before{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#00000040 0 2px,#0000 2px 40px),linear-gradient(#0000,#00000073);border-top:3px solid #00000059;height:90px;position:absolute;bottom:0;left:0;right:0}.theme-caves .battlefield:before{background-color:#46322873}.theme-fortress .battlefield:before{background-color:#50505a66}.theme-tombs .battlefield:before{background-color:#5a462866}.encounter-name{color:var(--gold-light);text-shadow:2px 2px #000;align-items:center;font-size:18px;display:flex;position:absolute;top:14px;left:20px}.combat-log{width:min(360px,40%);color:var(--muted);z-index:2;background:#0e0d12d1;padding:8px 10px;font-size:18px;line-height:1.3;position:absolute;top:12px;right:14px}.combat-log.is-behind{z-index:0;opacity:.55;cursor:pointer}.combat-log .log-latest{color:var(--text)}.side{z-index:1;pointer-events:none;align-items:flex-end;display:flex;position:relative}.side>*{pointer-events:auto}.side-player{justify-content:center}.side-enemies{flex-wrap:wrap;justify-content:space-evenly;gap:12px;padding-top:90px}.unit{flex-direction:column;align-items:center;gap:6px;min-width:130px;transition:opacity .4s,filter .4s;display:flex;position:relative}.unit-sprite-wrap{justify-content:center;align-items:flex-end;min-height:70px;display:flex;position:relative}.unit-sprite{width:calc(var(--sw) * var(--px));filter:drop-shadow(0 6px #00000059);height:auto}.tibia-sprite{--u:calc(var(--tpx) * var(--k,1));width:calc(var(--bw) * var(--u));height:calc(var(--bh) * var(--u));display:block;position:relative}.tibia-sprite img{left:calc(var(--bx) * var(--u) * -1);top:calc(var(--by) * var(--u) * -1);width:calc(var(--iw) * var(--u));height:calc(var(--ih) * var(--u));max-width:none;image-rendering:pixelated;filter:drop-shadow(0 6px #00000059);-webkit-user-select:none;user-select:none;position:absolute}.unit-sprite-anim.is-hit{animation:.38s ease-out hit}@keyframes hit{0%{filter:brightness(3)saturate(0);transform:translate(0)}25%{transform:translate(-7px)}50%{filter:brightness(1.4);transform:translate(6px)}to{filter:none;transform:translate(0)}}.unit-name{text-shadow:2px 2px #000;font-size:17px;font-weight:700}.unit-bars{align-items:center;gap:6px;display:flex}.hpbar{border:3px solid var(--stone-0);background:#3a1210;width:132px;height:22px;position:relative;box-shadow:inset 0 0 0 1px #000}.hpbar--block{border-color:var(--blue)}.hpbar-fill{background:linear-gradient(180deg, #ff6b5b, var(--red) 55%, #9e2a22);height:100%;transition:width .3s steps(6,end)}.hpbar-text{text-shadow:1px 1px #000,-1px -1px #000;justify-content:center;align-items:center;font-size:19px;font-weight:700;display:flex;position:absolute;inset:0}.block-badge{border:2px solid var(--blue);color:#cfe6ff;cursor:help;background:#1b3a5c;align-items:center;gap:3px;padding:1px 5px 1px 3px;font-weight:700;display:inline-flex}.status-row{gap:6px;min-height:24px;display:flex}.status{border:2px solid var(--stone-0);cursor:help;align-items:center;gap:3px;padding:1px 5px;font-size:19px;font-weight:700;display:inline-flex}.status--bad{color:#e5c8ff;background:#3d2350}.status--good{color:var(--gold-light);background:#4a3614}.incoming{border:2px solid var(--stone-0);cursor:help;background:#0e0d12bf;padding:2px 8px;font-size:18px}.incoming.is-danger b{color:#ff8a80}.incoming.is-safe b{color:#9fe0ff}.intent{border:2px solid var(--stone-4);white-space:nowrap;cursor:help;background:#0e0d12e6;align-items:center;gap:4px;padding:3px 8px;animation:1.6s ease-in-out infinite bob;display:inline-flex;position:absolute;top:-44px}.unit--enemy>.tip-anchor:first-child{z-index:3;position:absolute;top:-44px;left:50%;transform:translate(-50%)}.unit--enemy>.tip-anchor:first-child .intent{position:static}.intent--empty{display:none}.intent-value{font-family:var(--font-title);font-size:15px}.intent-name{color:var(--muted);font-size:17px}.intent--attack{border-color:var(--red)}.intent--attack .intent-value{color:#ff8a80}.intent--defend .intent-value{color:#9fd0ff}.intent--heal .intent-value{color:var(--green)}.intent--buff .intent-value{color:var(--gold-light)}.intent--debuff .intent-value{color:var(--purple)}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.unit--enemy.is-targetable{cursor:crosshair}.unit--enemy.is-targetable :is(.unit-sprite,.tibia-sprite img){filter:drop-shadow(0 0 0 var(--gold-light)) drop-shadow(0 0 6px var(--gold));animation:.9s ease-in-out infinite target-glow}.unit--enemy.is-targetable:hover :is(.unit-sprite,.tibia-sprite img),.unit--enemy.is-targetable:focus-visible :is(.unit-sprite,.tibia-sprite img){filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 10px var(--gold-light));animation:none}.unit--enemy.is-targetable .unit-name{color:var(--gold-light)}.unit--enemy:focus-visible{outline:3px dashed var(--gold-light);outline-offset:4px}@keyframes target-glow{50%{filter:drop-shadow(0 0 0 var(--gold-light)) drop-shadow(0 0 12px var(--gold))}}.unit.is-dead{opacity:.3;filter:grayscale()}.unit.is-dead .unit-sprite-anim{transition:transform .4s;transform:rotate(80deg)translate(20%)}.unit-dead-label{color:var(--muted);font-size:17px}.floaters{pointer-events:none;z-index:4;position:absolute;inset:0}.floater{margin-left:calc((var(--i) - 1) * 30px);font-family:var(--font-title);white-space:nowrap;text-shadow:2px 2px #000,-1px -1px #000;opacity:0;font-size:15px;animation:1.1s ease-out forwards float-up;position:absolute;top:25%;left:50%}.floater--damage{color:#ff6b5b;font-size:20px}.floater--blocked{color:#9fb8d0;font-size:11px}.floater--block{color:#7fc4ff;font-size:12px}.floater--heal{color:var(--green);font-size:13px}.floater--debuff{color:var(--purple);font-size:11px}.floater--buff{color:var(--gold-light);font-size:11px}@keyframes float-up{0%{opacity:0;transform:translate(-50%,12px)scale(.8)}15%{opacity:1;transform:translate(-50%)scale(1.2)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-52px)scale(1)}}.combat-overlay{z-index:10;background:#0a080c8c;justify-content:center;align-items:center;animation:.3s ease-out fade-in;display:flex;position:absolute;inset:0}.combat-overlay--lost{background:#3c050599}.overlay-panel{text-align:center;min-width:280px;padding:20px 28px}.overlay-title{font-family:var(--font-title);text-shadow:3px 3px #000;margin-bottom:12px;font-size:22px}.summary-list{gap:6px;margin:0 0 16px;padding:0;font-size:22px;list-style:none;display:grid}.summary-list li{justify-content:center;align-items:center;gap:8px;display:flex}@keyframes fade-in{0%{opacity:0}}.hand-area{border-top:3px solid var(--stone-0);box-shadow:inset 0 2px 0 var(--gold-dark);background:linear-gradient(#1f1c25,#141218);grid-template-columns:170px minmax(0,1fr) 210px;align-items:end;gap:12px;padding:10px 16px 6px;display:grid}.hand-side{flex-direction:column;align-items:center;gap:10px;padding-bottom:8px;display:flex}.pile-row{gap:8px;display:flex}.energy-orb{background:radial-gradient(circle at 35% 30%, #fff1b0, var(--gold) 45%, #a3530f 100%);border:4px solid var(--stone-0);width:76px;height:76px;box-shadow:0 0 0 3px var(--gold-dark), 0 0 18px #f6aa3c8c;color:#2a1400;cursor:help;border-radius:50%;justify-content:center;align-items:center;display:flex}.energy-orb.is-empty{box-shadow:0 0 0 3px var(--stone-3);color:#ddd;background:radial-gradient(circle at 35% 30%,#777,#444 60%,#222)}.energy-value{font-family:var(--font-title);font-size:24px}.energy-max{font-family:var(--font-title);margin-top:8px;font-size:11px}.pile-btn{background:var(--stone-1);border:3px solid var(--stone-0);box-shadow:inset 0 0 0 2px var(--stone-3);cursor:pointer;flex-direction:column;align-items:center;gap:2px;min-width:70px;padding:6px 10px;font-size:17px;display:inline-flex}.pile-btn:hover{background:var(--stone-2)}.pile-btn b{font-size:22px}.btn--end{color:#fff3e0;background:linear-gradient(#c9573e,#9b2f22 60%,#6a1c14);width:100%;padding:14px 10px;font-size:18px}.btn--end:disabled{background:var(--stone-3)}.hand{min-height:calc(var(--card-h) + 26px);justify-content:center;align-items:flex-end;padding:22px 8px 6px;display:flex}.hand>*+*{margin-left:var(--overlap)}.hand-empty{align-self:center}.combat-hint{text-align:center;color:var(--muted);background:#141218;min-height:26px;padding:4px 12px 10px;font-size:18px}.card-tip{display:inline-flex}.card{--frame:var(--skill);width:var(--card-w);height:var(--card-h);border:3px solid var(--stone-0);box-shadow:inset 0 0 0 3px var(--frame), inset 0 0 0 5px #00000059, 0 4px 0 #00000080;text-align:center;cursor:default;background:linear-gradient(#ffffff0f,#0000 40%),#26222d;flex-direction:column;flex-shrink:0;align-items:center;gap:4px;padding:10px 8px 8px;transition:transform .12s,filter .12s,box-shadow .12s;display:flex;position:relative}.card--attack{--frame:var(--attack)}.card--buff{--frame:var(--buff)}.card--small{--card-w:124px;--card-h:208px}.card.is-playable{cursor:pointer}.card.is-playable:hover{z-index:3;box-shadow:inset 0 0 0 3px var(--frame), inset 0 0 0 5px #00000059, 0 0 0 3px var(--gold), 0 8px 0 #00000080;transform:translateY(-14px)}.hand .card.is-playable{box-shadow:inset 0 0 0 3px var(--frame), inset 0 0 0 5px #00000059, 0 0 0 2px var(--gold-dark), 0 4px 0 #00000080}.hand .card.is-playable:hover{box-shadow:inset 0 0 0 3px var(--frame), inset 0 0 0 5px #00000059, 0 0 0 3px var(--gold-light), 0 8px 0 #00000080}.card.is-selected,.card.is-selected:hover{z-index:4;box-shadow:inset 0 0 0 3px var(--frame), inset 0 0 0 5px #00000059, 0 0 0 3px var(--gold-light), 0 0 20px var(--gold);transform:translateY(-24px)}.card.is-unplayable,.card.is-dimmed{filter:grayscale(.75)brightness(.65)}.card:disabled{cursor:not-allowed}.card-cost{background:radial-gradient(circle at 35% 30%, #fff1b0, var(--gold) 50%, #a3530f);border:3px solid var(--stone-0);width:30px;height:30px;font-family:var(--font-title);color:#2a1400;border-radius:50%;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;top:-10px;left:-10px}.card-cost.is-reduced{background:radial-gradient(circle at 35% 30%,#e6ffd6,#8fe07a 50%,#3f7a2a)}.card-hotkey{color:var(--muted);font-size:14px;position:absolute;bottom:4px;right:6px}.rarity-basic,.rarity-common,.rarity-token{--rarity:#4e4958;--rarity-light:#6f6a7b;--rarity-text:#b3adbf}.rarity-uncommon{--rarity:#2f6485;--rarity-light:#5a9cc2;--rarity-text:#7cc3ea}.rarity-rare{--rarity:#8a6116;--rarity-light:#d6a53a;--rarity-text:#ecbd4f}.card-name{text-align:center;height:calc(2.2em + 8px);color:var(--text);text-shadow:1px 1px #000,-1px 0 #000,0 -1px #000;background:linear-gradient(180deg, var(--rarity-light), var(--rarity));border-top:2px solid var(--stone-0);border-bottom:2px solid var(--stone-0);flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;margin:0 -3px;padding:2px 6px;font-size:15px;font-weight:700;line-height:1.1;display:flex}.card--small .card-name{padding-left:12px;font-size:13px}.tooltip-rarity{color:var(--rarity-text);font-weight:700}.card.is-upgraded .card-name{color:#9ef07e}.card.is-upgraded{background:linear-gradient(#9ef07e14,#0000 45%),#26222d}.card-words{min-height:14px;color:var(--gold);margin-top:-4px;font-size:14px;font-style:italic;line-height:1}.card-spell-icon{width:48px;height:48px;image-rendering:pixelated;border:1px solid var(--stone-0)}.card-spell-fallback{box-sizing:border-box;box-shadow:inset 0 0 0 2px var(--spell-frame), inset 0 0 0 3px #0000008c, inset 0 0 10px #0009;background:radial-gradient(circle at 50% 40%, var(--spell-glow), #121014 75%);justify-content:center;align-items:center;display:inline-flex}.card-spell-fallback.is-attack{--spell-frame:#c0562e;--spell-glow:#6a2a1c}.card-spell-fallback.is-support{--spell-frame:#3aa8a0;--spell-glow:#1c4d4a}.card--small .card-spell-icon,.card.is-long .card-spell-icon{width:38px;height:38px}.card-art{border:2px solid var(--stone-0);background:#00000059;justify-content:center;align-items:center;width:100%;height:56px;display:flex}.card--small .card-art,.card.is-long .card-art{height:44px}.card.is-long .card-art svg{transform:scale(.8)}.card.is-long .card-desc{font-size:15px;line-height:1.05}.card--small.is-long .card-desc{font-size:14px;line-height:1}.card-type{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:14px}.card-desc{color:var(--text);font-size:17px;line-height:1.2}.card--small .card-desc{font-size:15px;line-height:1.05}.card-grid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr));justify-items:center;gap:18px 12px;padding:14px 4px 4px;display:grid}.modal-backdrop{z-index:500;background:#050408bf;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{width:min(980px,100%);max-height:calc(100vh - 32px);overflow:auto}.modal-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-header .panel-title{margin:0}.modal-note{font-size:18px}.modal-empty{text-align:center;padding:24px}.modal-footer{border-top:3px solid var(--stone-0);background:#1a171f;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin:12px -16px -14px;padding:12px 16px;display:flex;position:sticky;bottom:-14px}.upgrade-preview{align-items:center;gap:10px;display:flex}.upgrade-arrow{color:var(--gold);font-size:24px}.node-layout{flex:1;justify-content:center;align-items:flex-start;padding:24px 16px;display:flex}.node-panel{text-align:center;width:min(920px,100%)}.node-hero{justify-content:center;margin:6px 0 12px;display:flex}.node-hero--fire .icon{animation:.8s steps(2,end) infinite flicker}@keyframes flicker{50%{filter:brightness(1.2);transform:scaleY(1.06)translateY(-2px)}}.reward-line{justify-content:center;align-items:center;gap:8px;font-size:22px;display:flex}.choice-row{flex-wrap:wrap;justify-content:center;gap:18px;margin:18px 0 12px;display:flex}.node-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:22px;display:flex}.equip-card,.option-card{background:linear-gradient(180deg, var(--stone-3), var(--stone-2));border:3px solid var(--stone-0);width:210px;box-shadow:inset 0 0 0 2px var(--gold-dark), 0 4px 0 #00000080;cursor:pointer;flex-direction:column;align-items:center;gap:8px;padding:14px 12px;transition:transform .12s;display:flex;position:relative}.equip-card:hover:not(:disabled),.option-card:hover:not(:disabled){box-shadow:inset 0 0 0 2px var(--gold-light), 0 8px 0 #00000080;transform:translateY(-4px)}.equip-card:disabled,.option-card:disabled{cursor:not-allowed;opacity:.55}.equip-card.is-picked{opacity:1;box-shadow:inset 0 0 0 3px var(--gold-light), 0 0 18px #e2b23c80}.equip-card-icon{background:var(--stone-0);border:2px solid var(--gold-dark);justify-content:center;align-items:center;width:64px;height:64px;display:flex}.equip-card-name,.option-card b{color:var(--gold-light);font-size:18px;font-weight:700}.equip-card-desc{font-size:19px}.equip-card-tag{background:var(--gold);color:#2a1a05;padding:1px 6px;font-size:12px;font-weight:700;position:absolute;top:6px;right:6px}.option-row{flex-wrap:wrap;justify-content:center;gap:18px;margin:14px 0;display:flex}.merchant-head{justify-content:center;align-items:center;gap:18px;font-size:22px;font-style:italic;display:flex}.shop-item{flex-direction:column;align-items:center;gap:8px;display:flex}.price{background:var(--stone-0);border:2px solid var(--gold-dark);color:var(--gold-light);align-items:center;gap:4px;padding:2px 10px;font-weight:700;display:inline-flex}.price.is-expensive{color:#ff8a80;border-color:var(--red-dark)}.price.is-sold{color:var(--muted);border-color:var(--stone-3)}.shop-item.is-sold .card{opacity:.4;filter:grayscale(.8)}@media (width<=980px),(height<=760px){:root{--px:4.4px;--tpx:2.6px;--card-w:126px;--card-h:212px}.hand-area{grid-template-columns:130px minmax(0,1fr) 150px}.combat-log{width:min(300px,44%)}.battlefield{min-height:240px;padding:44px 20px 12px}.side-enemies{padding-top:64px}.hand{min-height:calc(var(--card-h) + 18px);padding-top:16px}.hand-area{padding-top:6px}.combat-hint{min-height:20px;padding:2px 12px 4px}.card-name{padding-left:12px;font-size:13px}.card-art,.card.is-long .card-art{height:44px}.card-spell-icon,.card.is-long .card-spell-icon{width:38px;height:38px}.card-desc{font-size:15px;line-height:1.05}.card.is-long .card-desc{font-size:14px;line-height:1}}@media (width<=760px){.card-name,.card-words,.card-type{font-size:12px}.card-art,.card.is-long .card-art{height:38px}.card-spell-icon,.card.is-long .card-spell-icon{width:32px;height:32px}.card-desc,.card.is-long .card-desc{font-size:13px;line-height:1}:root{--px:3px;--tpx:1.9px;--card-w:112px;--card-h:196px;font-size:19px}.map-layout{grid-template-columns:1fr}.map-svg{max-height:none}.battlefield{grid-template-columns:1fr 1.6fr;min-height:280px;padding:44px 10px 18px}.combat-log{order:3;grid-column:1/-1;width:auto;max-height:110px;position:static;overflow:auto}.unit{min-width:96px}.hpbar{width:92px}.intent-name{display:none}.side-enemies{gap:6px;padding-top:60px}.hand-area{grid-template-columns:1fr 1fr;grid-template-areas:"left right""hand hand";padding:8px}.hand-side--left{flex-direction:row;grid-area:left;justify-content:flex-start}.hand-side--right{grid-area:right}.hand{grid-area:hand;justify-content:flex-start;padding-top:28px;overflow-x:auto}.hand>*+*{margin-left:6px}.energy-orb{width:58px;height:58px}.energy-value{font-size:18px}.card-desc{font-size:15px}.topbar{padding:6px 10px}}.btn,.card-name,.unit-name,.topbar-location,.equip-card-name,.option-card b,.encounter-name,.section-title,.map-hover-title,.tag{font-family:var(--font-ui)}.title-secondary{margin-top:12px}.screen-compendium{background-color:#17141c;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='32' shape-rendering='crispEdges'%3E%3Cg fill='%23000' fill-opacity='.35'%3E%3Crect width='64' height='2'/%3E%3Crect y='16' width='64' height='2'/%3E%3Crect width='2' height='16'/%3E%3Crect x='32' y='16' width='2' height='16'/%3E%3C/g%3E%3C/svg%3E");align-items:center;padding:24px 16px}.compendium{width:min(1100px,100%);padding:18px 20px 24px}.compendium-header{align-items:center;gap:16px;margin-bottom:16px;display:flex}.compendium-title{font-family:var(--font-title);color:var(--gold);text-shadow:3px 3px #000;font-size:clamp(16px,3vw,24px)}.compendium-option .icon{margin-bottom:4px}.compendium-filters{background:#00000040;gap:12px;padding:12px 14px;display:grid}.compendium-search input{width:100%;font-family:var(--font);color:var(--text);background:var(--stone-0);border:3px solid var(--stone-3);outline:none;padding:8px 12px;font-size:21px}.compendium-search input:focus{border-color:var(--gold)}.filter-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-label{font-family:var(--font-ui);color:var(--gold-light);min-width:84px;font-weight:700}.chip{font-family:var(--font-ui);background:var(--stone-2);border:2px solid var(--stone-0);box-shadow:inset 0 0 0 1px var(--stone-4);cursor:pointer;align-items:center;gap:6px;padding:3px 10px;font-size:15px;display:inline-flex}.chip:hover:not(:disabled){background:var(--stone-3)}.chip.is-active,.chip.is-active:hover:not(:disabled){background:linear-gradient(180deg, var(--gold-light), var(--gold));color:#2a1a05;box-shadow:none}.chip:disabled{opacity:.45;cursor:not-allowed}.chip-count{font-family:var(--font);opacity:.8;font-size:16px}.chip:focus-visible,.check:focus-within{outline:2px solid var(--gold-light);outline-offset:2px}.check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:2px 8px;display:inline-flex}.check input{width:18px;height:18px;accent-color:var(--gold);cursor:pointer;margin:0}.check-rarity{color:var(--rarity-text)}.check--upgrade{color:#9ef07e;margin-left:auto}.compendium-count{margin:12px 0 4px}.compendium-intro{margin-bottom:16px}.compendium-empty{text-align:center;padding:40px 0}.compendium-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));justify-items:center;gap:22px 12px;padding-top:14px;display:grid}.compendium-grid--equip{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.equip-card.is-static{cursor:default}.equip-card.is-static:hover{transform:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=760px){.compendium{padding:14px 10px 18px}.filter-label{min-width:100%}.check--upgrade{margin-left:0}.compendium-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}}.btn--icon{padding:6px 9px}.btn--danger{color:#fff3e0;background:linear-gradient(#c9573e,#9b2f22 60%,#6a1c14)}.settings-modal{text-align:center;width:min(420px,100%)}.settings-modal .panel-title{justify-content:center;align-items:center;gap:10px;display:flex}.settings-actions{justify-content:center;gap:12px;margin-top:18px;display:flex}.settings-actions--column{flex-direction:column;align-items:stretch}.card.is-long-name .card-name{letter-spacing:-.3px;font-size:12px}.card--small.is-long-name .card-name{font-size:11px}@media (width<=980px),(height<=760px){.card.is-long-name .card-name{font-size:11px}}@media (width<=760px){.card.is-long-name .card-name{font-size:10px}}.event-panel{text-align:left;max-width:760px}.event-panel .panel-title{text-align:center}.event-art{border:3px solid var(--stone-0);height:190px;box-shadow:inset 0 0 0 2px var(--stone-3);margin:4px 0 14px;position:relative;overflow:hidden}.event-art-image{object-fit:cover;width:100%;height:100%;image-rendering:pixelated}.event-figures{--tpx:2.6px;justify-content:center;align-items:flex-end;gap:18px;display:flex;position:absolute;bottom:18px;left:0;right:0}.scene-desert{background:radial-gradient(circle at 80% 22%,#fff1b8 0 22px,#0000 23px),radial-gradient(60% 40% at 20% 100%,#d9a654 0 60%,#0000 61%),radial-gradient(70% 45% at 85% 105%,#c48f42 0 60%,#0000 61%),linear-gradient(#f2b66a 0%,#e89a58 45%,#d4a35a 70%,#b98439 100%)}.scene-cave{background:radial-gradient(50% 30% at 50% 110%,#3a3140 0 60%,#0000 61%),linear-gradient(#1b1720 0%,#2c2433 60%,#3a3140 100%)}.scene-holy{background:linear-gradient(100deg,#0000 38%,#ffeca059 45%,#0000 52%),linear-gradient(80deg,#0000 50%,#ffdc8240 56%,#0000 62%),radial-gradient(45% 70% at 50% 0,#f6d77a 0%,#e2b23c59 45%,#0000 70%),linear-gradient(#3a3024 0%,#2a2430 60%,#3a3140 100%)}.scene-fortress{background:linear-gradient(#3a2a2a 0%,#4a4552 55%,#5d5669 100%)}.scene-forest{background:radial-gradient(30% 50% at 15% 60%,#2f5a2a 0 60%,#0000 61%),radial-gradient(35% 55% at 85% 55%,#2a4f26 0 60%,#0000 61%),linear-gradient(#7fb3d9 0%,#9cc9a0 55%,#4d7a3a 100%)}.event-text{font-size:21px;line-height:1.2}.event-final{color:var(--gold-light);font-size:21px}.event-results{border-left:3px solid var(--gold-dark);color:var(--gold-light);background:#0000004d;margin:10px 0;padding:8px 12px;font-size:20px;list-style:none}.event-options{gap:10px;margin-top:14px;display:grid}.event-option{text-align:left;background:linear-gradient(180deg, var(--stone-3), var(--stone-2));border:3px solid var(--stone-0);box-shadow:inset 0 0 0 2px var(--gold-dark), 0 3px 0 #00000080;cursor:pointer;gap:2px;padding:10px 14px;display:grid}.event-option b{font-family:var(--font-ui);font-size:17px}.event-option-hint{color:var(--muted);font-size:18px}.event-option:hover:not(:disabled){box-shadow:inset 0 0 0 2px var(--gold-light), 0 3px 0 #00000080;transform:translate(4px)}.event-option:focus-visible{outline:3px solid var(--gold-light);outline-offset:2px}.event-option:disabled{opacity:.5;cursor:not-allowed}@media (width<=760px){.event-art{height:150px}.event-figures{--tpx:1.8px;gap:8px}}.event-option-blocked{color:#ff8a80}.sound-controls{font-family:var(--font-ui);justify-content:center;align-items:center;gap:10px;margin:12px 0 4px;display:inline-flex}.sound-volume input{width:140px;accent-color:var(--gold)}.title-secondary{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.title-secondary .sound-controls{margin:0}.map-minimap{image-rendering:pixelated}.map-minimap-shade{fill:#08060c61}.has-minimap .map-edge{stroke:#fff4d6cc;filter:drop-shadow(0 0 1.5px #000)drop-shadow(0 0 1.5px #000)}.has-minimap .map-edge.is-path{stroke:var(--gold)}.has-minimap .map-edge.is-next{stroke:var(--gold-light)}.map-marker,.map-node-boss-sprite{image-rendering:pixelated;filter:drop-shadow(0 2px #000000b3)drop-shadow(0 0 2px #000c)}.has-minimap .map-node:not(.is-available):not(.is-visited){opacity:.72}.has-minimap .map-node.is-visited:not(.is-current) .map-marker:first-of-type{filter:grayscale(.6)brightness(.8)drop-shadow(0 2px #000000b3)}.has-minimap .map-node.is-available .map-marker{filter:drop-shadow(0 0 4px var(--gold-light)) drop-shadow(0 2px 0 #000000b3)}.has-minimap .map-node-glow{stroke-width:4px}.map-node.node-boss .map-node-base{fill:#5a1414d9}.battle-scenery{z-index:0;image-rendering:pixelated;pointer-events:none;background-repeat:repeat;position:absolute;inset:0}.battle-prop{transform-origin:0 0;image-rendering:pixelated;position:absolute}.battle-scenery-shade{background:radial-gradient(75% 70% at 50% 60%,#0000 35%,#06040ab3 100%),#08060c47;position:absolute;inset:0}.battlefield.has-scenery:before{display:none}.legend-marker{width:22px;height:22px;image-rendering:pixelated}.map-board{justify-self:center;width:fit-content;max-width:100%}.map-svg{aspect-ratio:440/940;width:auto;max-width:100%;height:min(100vh - 130px,940px)}@media (width<=760px){.map-board{width:100%}.map-svg{width:100%;height:auto}}.item-sprite{image-rendering:pixelated;display:block}.equip-card-style{color:var(--gold);letter-spacing:.5px;text-transform:uppercase;font-size:11px}.compendium-equip-group+.compendium-equip-group{margin-top:18px}.player-allies{pointer-events:auto;flex-direction:column;gap:2px;display:flex;position:absolute;bottom:0;left:-58px}.ally-sprite{width:56px;height:56px;image-rendering:pixelated;object-fit:contain;filter:drop-shadow(1px 1px #0009)}.account-panel{flex-direction:column;gap:8px;width:min(640px,100%);margin:14px auto 0;padding:12px 16px;font-size:18px;display:flex}.account-panel--logged{flex-flow:wrap;justify-content:space-between;align-items:center}.account-row{flex-wrap:wrap;gap:8px;display:flex}.account-row input{background:var(--stone-0);border:2px solid var(--stone-3);min-width:200px;color:var(--text);font-family:var(--font);flex:1;padding:6px 10px;font-size:20px}.account-row input:focus{border-color:var(--gold);outline:none}.account-note{font-size:16px}.account-message{color:var(--green)}.account-error{color:#ff8a80}.account-badge{border:2px solid var(--blue);color:var(--blue);text-transform:uppercase;margin-left:8px;padding:0 8px;font-size:14px;display:inline-block}.account-badge--founder{border-color:var(--gold);color:var(--gold-light)}.run-registration{text-align:center;margin:6px 0}.run-unlocked{color:var(--gold-light);font-size:22px}.profile{text-align:left;position:relative}.profile .compendium-header{align-items:center;margin-bottom:4px}.profile .section-title{text-align:left}.profile-email{margin:0}.profile-vocations{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}@media (width<=640px){.profile-vocations{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}}.profile-vocation{background:var(--stone-1);border:2px solid var(--stone-3);text-align:center;flex-direction:column;align-items:center;gap:4px;padding:8px;font-size:16px;display:flex}.profile-vocation-sprite{flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.profile-vocation.is-locked{opacity:.4;filter:grayscale()}.profile-runs{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.profile-run{background:var(--stone-1);border:2px solid var(--stone-3)}.profile-run.is-won{border-color:var(--gold-dark)}.profile-run-summary{width:100%;color:var(--text);font-family:var(--font);text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:90px 90px 120px 130px 1fr;align-items:center;gap:8px;padding:6px 10px;font-size:18px;display:grid}.profile-run-status.is-won{color:var(--gold-light)}.profile-run-status.is-lost,.profile-run-status.is-invalid{color:#ff8a80}.profile-run-detail{padding:4px 12px 10px;font-size:17px}.profile-run-detail p{margin:4px 0}@media (width<=700px){.profile-run-summary{grid-template-columns:1fr 1fr}}.vocation-tip{display:flex}.vocation-tip>.vocation-card{cursor:help;flex:1}.auth-card{flex-direction:column;align-items:stretch;gap:12px;width:min(480px,100vw - 32px);display:flex}.auth-guest{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.auth-divider{color:var(--muted);align-items:center;gap:10px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--stone-3);flex:1;height:2px}.auth-tabs{justify-content:center;gap:8px;display:flex}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-field{color:var(--muted);flex-direction:column;gap:4px;font-size:18px;display:flex}.auth-field input,.profile-danger input{background:var(--stone-0);border:2px solid var(--stone-3);color:var(--text);font-family:var(--font);padding:8px 10px;font-size:20px}.auth-field input:focus,.profile-danger input:focus{border-color:var(--gold);outline:none}.auth-link{color:var(--blue);font-family:var(--font);cursor:pointer;background:0 0;border:none;align-self:center;font-size:18px;text-decoration:underline}.auth-modal{flex-direction:column;gap:10px;width:min(460px,100vw - 32px);display:flex}.account-badge--guest{border-color:var(--muted);color:var(--muted)}.account-panel-note{flex-basis:100%}.guest-cta{border-color:var(--gold-dark);text-align:center;flex-direction:column;align-items:center;gap:6px;margin:8px 0;padding:12px 16px;display:flex}.guest-cta p{margin:0}.profile-danger{flex-direction:column;gap:8px;margin-top:20px;display:flex}.profile-danger:not(.panel){align-items:flex-end;margin-top:12px}.profile-danger-link{color:var(--red);font-family:var(--font);opacity:.6;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.profile-danger-link:hover,.profile-danger-link:focus-visible{opacity:1;text-decoration:underline}
