.category-power{--cat:var(--foe)}.category-vitality{--cat:#6ee07a}.category-crit{--cat:var(--legendary)}.category-tempo{--cat:var(--accent)}.category-elements{--cat:#b48cff}.category-arcana{--cat:var(--rare)}.cat-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--cat);border:1px solid var(--cat);flex:none;margin-left:auto;padding:0 4px;font-size:9px;line-height:14px}.chip{align-items:center;display:inline-flex}.chip .cat-badge{margin:0 6px 0 0}.act-banner{border-color:var(--act-accent);box-shadow:inset 0 0 0 2px #1b173499, 0 0 0 1px var(--act-accent);padding:10px 20px 8px}.act-head{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.act-title{color:var(--act-accent);text-shadow:2px 2px 0 var(--bg);margin:0;font-size:20px}.act-progress{color:var(--act-accent);text-transform:uppercase;border:1px solid var(--act-accent);padding:0 8px;font-size:12px}.act-theme{color:var(--muted);margin:2px 0 6px;font-size:12px}.map-track-wrap{position:relative}.map-track{background:repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 10px);height:2px;position:absolute;top:15px;left:5%;right:5%}.map-nodes{grid-template-columns:repeat(10,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid;position:relative}.map-cell{flex-direction:column;align-items:center;gap:3px;min-width:0;display:flex}.map-node{cursor:pointer;width:32px;height:32px;font:inherit;color:var(--muted);background:var(--bg);border:2px solid var(--line);place-items:center;padding:0;display:grid;position:relative}.map-node:hover,.map-node:focus{border-color:var(--text);color:var(--text);outline:none}.map-node.state-done{opacity:var(--dim-opacity)}.map-node.state-next{color:var(--act-accent);border-color:var(--act-accent);animation:1.2s steps(4,end) infinite node-pulse}.map-node.state-ahead{opacity:var(--dim-opacity)}@keyframes node-pulse{0%,to{box-shadow:0 0 0 0 var(--act-accent)}50%{box-shadow:0 0 0 4px var(--act-accent)}}.map-node.state-done:after{content:"";border:solid var(--accent);border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:-6px;right:-5px;transform:rotate(45deg)}.node-glyph{width:18px;height:18px;display:block;position:relative}.node-glyph:before,.node-glyph:after{content:"";position:absolute}.node-duel .node-glyph:before{background:currentColor;width:6px;height:6px;top:6px;left:6px}.node-elite .node-glyph:before{border:2px solid;inset:0}.node-elite .node-glyph:after{border:2px solid;inset:5px}.node-boss .node-glyph:before{clip-path:polygon(0 100%,0 17%,25% 58%,50% 0,75% 58%,100% 17%,100% 100%);background:currentColor;width:16px;height:12px;top:3px;left:1px}.node-marks{align-items:center;gap:4px;height:10px;display:flex}.chest-mark{background:var(--common);border-top:3px solid var(--muted);opacity:.8;width:10px;height:8px}.chest-mark.chest-rarePick{background:var(--rare);opacity:1;border-top-color:#3a6aa0}.chest-mark.chest-legendaryPick{background:var(--legendary);opacity:1;border-top-color:#a07a10}.star-mark{background:var(--text);clip-path:polygon(50% 0,63% 35%,100% 38%,72% 60%,80% 100%,50% 78%,20% 100%,28% 60%,0 38%,37% 35%);width:10px;height:10px}.node-arena,.node-foe{text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;line-height:1.2;overflow:hidden}.node-arena{color:var(--act-accent)}.node-foe{color:var(--foe)}.map-tip{min-height:1.5em;color:var(--text);text-align:center;border-top:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;margin:6px 0 0;padding-top:4px;font-size:12px;overflow:hidden}.foe-top{align-items:flex-start;gap:14px;display:flex}.foe-portrait{width:144px;height:168px;image-rendering:pixelated;image-rendering:crisp-edges;background:radial-gradient(at 50% 92%,#ffae352e 0 30%,#0000 31%);flex:none}.foe-info{min-width:0}.foe.boss{box-shadow:0 0 0 2px var(--legendary);border-color:var(--legendary)}.boss-badge{background:var(--legendary);color:var(--bg)}.affix-chip{border-color:var(--foe);color:var(--text);margin-top:4px;line-height:1.35;display:inline-block}.affix-chip b{color:var(--foe);font-weight:400}.portal-screen{justify-content:center}.portal-sub{color:var(--legendary);text-shadow:2px 2px 0 var(--bg)}.portals{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.portal{width:230px;font:inherit;color:var(--text);background:var(--surface);border:2px solid var(--line);cursor:pointer;flex-direction:column;align-items:center;gap:8px;padding:14px 12px 16px;animation:.24s steps(5,end) both portal-in;display:flex;position:relative}.portal:nth-child(2){animation-delay:70ms}.portal:nth-child(3){animation-delay:.14s}@keyframes portal-in{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}.portal:hover,.portal:focus{border-color:var(--cat);box-shadow:0 0 0 1px var(--cat), 0 0 18px -4px var(--cat);outline:none;transform:translateY(-2px)}.portal .key-hint{position:absolute;top:8px;left:8px}.portal-arch{background:var(--bg);border:4px solid var(--cat);width:120px;height:156px;box-shadow:inset 0 0 0 2px var(--bg), 0 0 0 2px var(--panel-hi);border-bottom-width:6px;border-radius:60px 60px 0 0;display:block;position:relative;overflow:hidden}.portal-swirl{background:radial-gradient(circle at 50% 50%, #fff 0 4%, transparent 5%), radial-gradient(circle at 31% 36%, var(--cat) 0 7%, transparent 8%), radial-gradient(circle at 70% 66%, var(--cat) 0 5%, transparent 6%), radial-gradient(circle at 64% 28%, #fff 0 2%, transparent 3%), radial-gradient(circle at 50% 50%, transparent 0 12%, var(--cat) 13% 15%, transparent 16% 24%, var(--cat) 25% 26%, transparent 27%), radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--cat) 40%, var(--bg)) 0 30%, var(--bg) 62%);animation:2.4s steps(12,end) infinite swirl;position:absolute;inset:-30%}.portal:hover .portal-swirl,.portal:focus .portal-swirl{animation-duration:1.2s}@keyframes swirl{to{transform:rotate(360deg)}}.portal-name{color:var(--cat);text-shadow:2px 2px 0 var(--bg);font-size:20px}.portal-desc{color:var(--muted);flex-direction:column;align-items:center;font-size:12px;line-height:1.35;display:flex}.portal-keys{font-size:12px}.pick-panel .row[hidden]{display:none}.reveal-stage{justify-content:center;margin:-6px 0 4px;display:flex;position:relative}.reveal-canvas{width:640px;max-width:100%;height:240px;image-rendering:pixelated;image-rendering:crisp-edges}.reveal-stage.static .reveal-canvas{width:320px;height:120px}.reveal-hint{color:var(--act-accent);text-shadow:2px 2px 0 var(--bg);margin:0;display:none;position:absolute;bottom:4px;left:0;right:0}.reveal-stage[data-phase=closed] .reveal-hint,.reveal-stage[data-phase=opening] .reveal-hint{animation:1s steps(4,end) infinite pulse;display:block}.reveal-flash{z-index:60;opacity:0;pointer-events:none;background:#fff;position:fixed;inset:0}.reveal-flash.flashing{animation:.22s steps(3,end) both white-flash}@keyframes white-flash{0%{opacity:.85}to{opacity:0}}.pick-cards .card-btn{position:relative}.card-btn.face-down{visibility:hidden}.card-btn.rising{animation:.16s steps(4,end) both card-rise}@keyframes card-rise{0%{transform:translateY(32px)scaleX(1)}50%{transform:translateY(12px)scaleX(.05)}to{transform:none}}.card-btn.rising:after{content:"";border:2px solid var(--line);background:repeating-linear-gradient(45deg, var(--panel-hi) 0 4px, var(--panel) 4px 8px);animation:.16s step-end both card-back;position:absolute;inset:-2px}@keyframes card-back{0%,49%{opacity:1}50%,to{opacity:0}}.card-btn.reveal-rare{border-color:var(--rare);box-shadow:0 0 0 1px var(--rare), 0 0 14px -2px var(--rare)}.card-btn.reveal-legendary{border-color:var(--legendary);box-shadow:0 0 0 1px var(--legendary), 0 0 20px 0 var(--legendary)}.card-btn.reveal-cursed{border-color:var(--cursed)}.card-btn.rising.reveal-legendary{animation:.16s steps(4,end) both card-rise,.9s steps(6,end) .16s legend-glow}@keyframes legend-glow{0%{box-shadow:0 0 0 6px #fff, 0 0 32px 4px var(--legendary)}to{box-shadow:0 0 0 1px var(--legendary), 0 0 20px 0 var(--legendary)}}.card-btn.rising.reveal-cursed{animation:.16s steps(4,end) both card-rise,.6s step-end .16s cursed-flicker}@keyframes cursed-flicker{0%,30%,60%{box-shadow:0 0 0 2px var(--cursed), 0 0 16px var(--cursed);filter:none}15%,45%{box-shadow:none;filter:brightness(.6)}to{box-shadow:none;filter:none}}.reward-line{text-align:center}.reward-line.tier-elite{color:var(--rare)}.reward-line.tier-boss{color:var(--legendary)}.act-change{text-align:center;border:2px solid var(--act-accent);background:var(--surface);max-width:560px;box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--act-accent);margin:10px auto;padding:10px 20px;animation:.42s steps(6,end) .2s both achieve-pop;position:relative;overflow:hidden}.act-change:after{content:"";background:linear-gradient(90deg,#0000,#ffffff59,#0000);width:40px;animation:.9s steps(9,end) .7s both sheen;position:absolute;top:0;bottom:0;left:-60px}@keyframes achieve-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:none}}@keyframes sheen{0%{left:-60px}to{left:110%}}.act-change-kicker{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:11px}.act-change-title{color:var(--act-accent);text-shadow:2px 2px 0 var(--bg);font-size:26px}.act-change-theme{color:var(--text);font-size:12px}@media (prefers-reduced-motion:reduce){.map-node.state-next,.portal,.portal-swirl,.reveal-hint,.reveal-flash.flashing,.card-btn.rising,.card-btn.rising:after,.card-btn.rising.reveal-legendary,.card-btn.rising.reveal-cursed,.act-change,.act-change:after{animation:none}.map-node.state-next{box-shadow:0 0 0 3px var(--act-accent)}.portal:hover,.portal:focus{transform:none}}@media (max-width:1100px),(max-height:640px){.act-banner{padding:6px 14px 4px}.act-title{font-size:16px}.act-theme{display:none}.map-node{width:26px;height:26px}.map-track{top:12px}.foe-portrait{width:96px;height:112px}.portal{width:200px;padding:10px}.portal-arch{width:96px;height:120px}.reveal-canvas{width:480px;height:180px}.pick-panel .pick-cards .card-btn{min-height:120px}}@font-face{font-family:Silkscreen;src:url(/fonts/Silkscreen-Regular.ttf)format("truetype");font-display:swap}:root{--bg:#0d0b14;--panel:#1b1734;--panel-hi:#2f2956;--line:#3d3670;--text:#e4e6ec;--muted:#9a9cab;--accent:#4ce8d8;--foe:#ffae35;--danger:#ff7083;--common:#b6b9c3;--rare:#7cc8ff;--legendary:#ffd84a;--cursed:#f53cd1;--font:"Silkscreen", ui-monospace, monospace;--surface:#131026;--rim:#2f2956;--ink:#0e0c14;--page:#2a2433;--dim-opacity:.7;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0}body{font:15px/1.5 var(--font);-webkit-font-smoothing:none;overflow:hidden}#app{z-index:1;position:fixed;inset:0;overflow:auto}h1,h2,h3{letter-spacing:.04em;margin:.4em 0;font-weight:400}h2{text-shadow:2px 2px 0 var(--bg);border-bottom:2px solid var(--line);padding-bottom:4px;font-size:26px}h3{color:var(--accent);font-size:16px}p{margin:.4em 0}.muted{color:var(--muted)}.menu-backdrop{z-index:0;background:var(--bg);pointer-events:none;position:fixed;inset:0;overflow:hidden}.menu-backdrop[hidden]{display:none}.backdrop-canvas{image-rendering:pixelated;image-rendering:crisp-edges}.screen-enter{animation:.16s steps(4,end) both screen-in}@keyframes screen-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.screen{flex-direction:column;align-items:center;gap:14px;min-height:100%;padding:24px 32px;display:flex}.menu-screen{justify-content:center}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.row.spread{justify-content:space-between;width:min(1100px,100%)}.col{flex-direction:column;align-items:stretch;gap:10px;display:flex}.panel{background:var(--surface);border:1px solid var(--rim);box-shadow:0 0 0 2px var(--ink), 4px 4px 0 2px var(--ink);width:min(1100px,100%);padding:16px 20px}.btn,.card-btn,select,input[type=text]{font:inherit;color:var(--text);background:var(--panel);border:2px solid var(--line);cursor:pointer;min-height:44px;padding:8px 18px}.btn:hover,.btn:focus-visible,.btn:focus{border-color:var(--accent);background:var(--panel-hi);outline:none}.btn.primary{border-color:var(--accent);color:var(--accent)}.btn.danger{color:var(--danger)}.btn.danger:focus{border-color:var(--danger)}.btn:disabled,.card-btn:disabled{opacity:var(--dim-opacity);cursor:default;border-style:dashed}select:focus,input:focus,.card-btn:focus{border-color:var(--accent);outline:none}input[type=text]{cursor:text}input[type=range]{accent-color:var(--accent);width:220px}input[type=range]:focus{outline:2px solid var(--accent)}.menu .btn{min-width:320px;font-size:18px}.field{grid-template-columns:120px 1fr auto;align-items:center;gap:12px;display:grid}.settings{max-width:560px}.title-screen{cursor:pointer;justify-content:center}.logo{color:var(--accent);text-shadow:6px 6px 0 var(--panel-hi);border:0;margin:0;font-size:clamp(56px,12vw,128px)}.logo.small{font-size:64px}.logo-letter{animation:.42s steps(6,end) both letter-in;display:inline-block}.logo-letter:nth-child(2){animation-delay:90ms}.logo-letter:nth-child(3){animation-delay:.18s}.logo-letter:nth-child(4){animation-delay:.27s}.logo-letter:nth-child(5){animation-delay:.36s}.logo-letter:nth-child(6){animation-delay:.45s}@keyframes letter-in{0%{opacity:0;color:#fff;text-shadow:0 0 12px var(--accent), 0 0 2px #fff;transform:translateY(-12px)}50%{opacity:1;color:#fff;text-shadow:0 0 16px var(--accent), 6px 6px 0 var(--panel-hi);transform:translateY(2px)}to{opacity:1;color:var(--accent);text-shadow:6px 6px 0 var(--panel-hi);transform:none}}.tagline{color:var(--foe);text-shadow:2px 2px 0 var(--bg);font-size:18px;animation:.4s steps(4,end) .65s both fade-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.press-key{text-shadow:2px 2px 0 var(--bg);margin-top:18px;animation:.3s steps(3,end) .9s both fade-in,1.4s steps(4,end) 1.2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.key-hints{color:var(--muted);background:var(--surface);border:1px solid var(--rim);box-shadow:0 0 0 2px var(--ink);gap:18px;margin-top:8px;padding:2px 12px;font-size:12px;display:flex}.key-hints kbd{font:inherit;color:var(--text);border:1px solid var(--line);background:var(--panel);padding:0 5px}.menu .menu-item{text-align:left;animation:.22s steps(5,end) both slide-in}.menu .menu-item:nth-child(2){animation-delay:50ms}.menu .menu-item:nth-child(3){animation-delay:.1s}.menu .menu-item:nth-child(4){animation-delay:.15s}.menu .menu-item:nth-child(5){animation-delay:.2s}@keyframes slide-in{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:none}}.menu-item{background:var(--surface);border-color:var(--rim);box-shadow:0 0 0 2px var(--ink)}.menu-item:hover,.menu-item:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);color:var(--accent);transform:translateY(-1px)}.menu-item.activated{color:var(--bg);background:#fff;border-color:#fff}.stat-scrolls{gap:10px;display:flex}.stat-scroll{background:var(--surface);border:1px solid var(--rim);min-width:96px;box-shadow:0 0 0 2px var(--ink);flex-direction:column;align-items:center;padding:4px 12px;display:flex}.stat-label{color:var(--muted);text-transform:uppercase;font-size:10px}.stat-value{color:var(--text);font-size:18px}.card{text-align:left;flex-direction:column;gap:4px;display:flex}.card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-name{align-items:center;gap:6px;display:inline-flex}.symbol-icon{flex:none}.word{font-size:18px}.card-sub{color:var(--muted);text-transform:uppercase;font-size:12px}.card-nums{color:var(--text);font-size:12px}.card-desc{color:var(--muted);font-size:12px;line-height:1.35}.card.compact .word{font-size:15px}.card.locked{opacity:var(--dim-opacity)}.lock{color:var(--foe);font-size:12px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;width:min(1100px,100%);display:grid}.card-btn{text-align:left;padding:10px 12px}.card-btn.in-kit{border-color:var(--accent);background:var(--panel-hi)}.card-btn.locked{background:var(--bg);border:2px dashed var(--line);min-height:44px;padding:10px 12px}.kit-row{flex-wrap:wrap;gap:8px;display:flex}.kit-row>.card{background:var(--bg);border:2px solid var(--line);min-width:120px;padding:6px 10px}.glyph{width:26px;height:14px;display:inline-block;position:relative}.glyph:before,.glyph:after{content:"";background:currentColor;position:absolute}.glyph-quick:before{width:5px;height:5px;top:5px;left:10px}.glyph-heavy:before{width:13px;height:13px;top:0;left:6px}.glyph-barrage:before{width:5px;height:5px;top:5px;left:1px;box-shadow:9px 0,18px 0}.role-tag{text-transform:uppercase;border:1px solid var(--line);color:var(--muted);padding:0 4px;font-size:10px}.book{--side:var(--accent);--book-ear:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 5' shape-rendering='crispEdges'%3E%3Crect x='0' y='0' width='1' height='1' fill='%234a4258'/%3E%3Crect x='1' y='0' width='1' height='1' fill='%23110e22'/%3E%3Crect x='2' y='0' width='1' height='1' fill='%23110e22'/%3E%3Crect x='3' y='0' width='1' height='1' fill='%23110e22'/%3E%3Crect x='4' y='0' width='1' height='1' fill='%23110e22'/%3E%3Crect x='0' y='1' width='1' height='1' fill='%231e1927'/%3E%3Crect x='1' y='1' width='1' height='1' fill='%234a4258'/%3E%3Crect x='2' y='1' width='1' height='1' fill='%23110e22'/%3E%3Crect x='3' y='1' width='1' height='1' fill='%23110e22'/%3E%3Crect x='4' y='1' width='1' height='1' fill='%23110e22'/%3E%3Crect x='0' y='2' width='1' height='1' fill='%231e1927'/%3E%3Crect x='1' y='2' width='1' height='1' fill='%233b3346'/%3E%3Crect x='2' y='2' width='1' height='1' fill='%234a4258'/%3E%3Crect x='3' y='2' width='1' height='1' fill='%23110e22'/%3E%3Crect x='4' y='2' width='1' height='1' fill='%23110e22'/%3E%3Crect x='0' y='3' width='1' height='1' fill='%231e1927'/%3E%3Crect x='1' y='3' width='1' height='1' fill='%233b3346'/%3E%3Crect x='2' y='3' width='1' height='1' fill='%233b3346'/%3E%3Crect x='3' y='3' width='1' height='1' fill='%234a4258'/%3E%3Crect x='4' y='3' width='1' height='1' fill='%23110e22'/%3E%3Crect x='0' y='4' width='1' height='1' fill='%231e1927'/%3E%3Crect x='1' y='4' width='1' height='1' fill='%231e1927'/%3E%3Crect x='2' y='4' width='1' height='1' fill='%231e1927'/%3E%3Crect x='3' y='4' width='1' height='1' fill='%231e1927'/%3E%3Crect x='4' y='4' width='1' height='1' fill='%234a4258'/%3E%3C/svg%3E");--book-cap-top:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 5' shape-rendering='crispEdges'%3E%3Crect x='0' y='0' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='1' y='0' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='2' y='0' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='3' y='0' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='4' y='0' width='1' height='1' fill='%233a2c1c'/%3E%3Crect x='0' y='1' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='1' y='1' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='2' y='1' width='1' height='1' fill='%236e5636'/%3E%3Crect x='3' y='1' width='1' height='1' fill='%233a2c1c'/%3E%3Crect x='0' y='2' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='1' y='2' width='1' height='1' fill='%236e5636'/%3E%3Crect x='2' y='2' width='1' height='1' fill='%233a2c1c'/%3E%3Crect x='0' y='3' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='1' y='3' width='1' height='1' fill='%233a2c1c'/%3E%3Crect x='0' y='4' width='1' height='1' fill='%233a2c1c'/%3E%3C/svg%3E");--book-cap-bottom:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 5' shape-rendering='crispEdges'%3E%3Crect x='0' y='4' width='1' height='1' fill='%233a2c1c'/%3E%3Crect x='1' y='4' width='1' height='1' fill='%233a2c1c'/%3E%3Crect x='2' y='4' width='1' height='1' fill='%233a2c1c'/%3E%3Crect x='3' y='4' width='1' height='1' fill='%233a2c1c'/%3E%3Crect x='4' y='4' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='0' y='3' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='1' y='3' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='2' y='3' width='1' height='1' fill='%236e5636'/%3E%3Crect x='3' y='3' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='0' y='2' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='1' y='2' width='1' height='1' fill='%236e5636'/%3E%3Crect x='2' y='2' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='0' y='1' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='1' y='1' width='1' height='1' fill='%23a2814c'/%3E%3Crect x='0' y='0' width='1' height='1' fill='%23a2814c'/%3E%3C/svg%3E");--book-speckle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' shape-rendering='crispEdges'%3E%3Crect x='1' y='2' width='1' height='1' fill='%23272130'/%3E%3Crect x='2' y='2' width='1' height='1' fill='%23272130'/%3E%3Crect x='7' y='1' width='1' height='1' fill='%23272130'/%3E%3Crect x='10' y='4' width='1' height='1' fill='%23272130'/%3E%3Crect x='4' y='6' width='1' height='1' fill='%23272130'/%3E%3Crect x='5' y='6' width='1' height='1' fill='%23272130'/%3E%3Crect x='9' y='8' width='1' height='1' fill='%23272130'/%3E%3Crect x='0' y='10' width='1' height='1' fill='%23272130'/%3E%3Crect x='6' y='10' width='1' height='1' fill='%23272130'/%3E%3Crect x='11' y='11' width='1' height='1' fill='%23272130'/%3E%3Crect x='3' y='9' width='1' height='1' fill='%23352e3f'/%3E%3Crect x='8' y='5' width='1' height='1' fill='%23352e3f'/%3E%3C/svg%3E");background:#1b1734;border:2px solid #0e0c14;grid-template-columns:minmax(0,1fr) 10px minmax(0,1fr);width:100%;padding:10px;display:grid;position:relative;box-shadow:inset 2px 2px #2f2956,inset -2px -2px #110e22}.book:before{content:"";pointer-events:none;border:2px dashed #4a4263;position:absolute;inset:4px}.book-foe{--side:var(--foe)}.book-cap{background:var(--book-cap-top) center / 100% 100% no-repeat;pointer-events:none;width:10px;height:10px;position:absolute}.book-cap.tl{top:-2px;left:-2px}.book-cap.tr{top:-2px;right:-2px;transform:scaleX(-1)}.book-cap.bl{background-image:var(--book-cap-bottom);bottom:-2px;left:-2px}.book-cap.br{background-image:var(--book-cap-bottom);bottom:-2px;right:-2px;transform:scaleX(-1)}.book-page{z-index:1;background-color:#2e2737;background-image:var(--book-speckle);background-size:24px 24px;border-top:2px solid #3b3346;border-bottom:2px solid #4a4258;flex-direction:column;min-width:0;padding:4px 8px 2px;display:flex;position:relative}.book-page:after{content:"";background:repeating-linear-gradient(90deg,#4a4258 0 2px,#2f2939 2px 6px);height:2px;position:absolute;bottom:-4px;left:0;right:0}.book-left{background-image:linear-gradient(to left, #1e1927 0 2px, #251f2e 2px 6px, transparent 6px), linear-gradient(to right, #29232f 0 2px, transparent 2px), var(--book-speckle);background-size:auto,auto,24px 24px;border-left:2px solid #4a4258}.book-right{background-image:linear-gradient(to right, #1e1927 0 2px, #251f2e 2px 6px, transparent 6px), linear-gradient(to left, #29232f 0 2px, transparent 2px), var(--book-speckle);background-size:auto,auto,24px 24px;border-right:2px solid #2f2939}.book-ear{background:var(--book-ear) center / 100% 100% no-repeat;pointer-events:none;width:10px;height:10px;position:absolute;top:0;right:0}.book-left .book-ear{left:0;right:auto;transform:scaleX(-1)}.book-spine{z-index:2;background:#141019;position:relative}.book-spine:after{content:"";background:linear-gradient(to right, color-mix(in srgb, var(--side) 90%, #0e0c14) 0 2px, color-mix(in srgb, var(--side) 62%, #0e0c14) 2px 4px, color-mix(in srgb, var(--side) 34%, #0e0c14) 4px 6px);clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 4px),0 100%);width:6px;position:absolute;top:-10px;bottom:-14px;left:2px}.book-row{text-align:left;min-height:44px;font:inherit;color:var(--text);background:0 0;border:0;border-bottom:2px solid #221c2a;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;padding:3px 4px;display:grid;position:relative}.book-row:last-child{border-bottom:0}.book-row:has(.book-key){grid-template-columns:12px 30px minmax(0,1fr)}button.book-row{cursor:pointer}button.book-row:hover,button.book-row:focus{outline:2px solid var(--side);outline-offset:-2px;background:#3a3146}.book-key{color:var(--muted);font-size:10px}.book-shape{justify-content:center;align-items:center;display:flex}.book-shape .symbol-icon{image-rendering:pixelated}.book-row.empty .book-shape{opacity:.75}.book-text{flex-direction:column;min-width:0;line-height:1.15;display:flex;position:relative}.book-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.book-name{white-space:nowrap;font-size:16px}.book-empty{color:var(--muted);text-transform:uppercase;font-size:11px}.book-row.locked{opacity:var(--dim-opacity);cursor:default}.book.compact{padding:8px}.book.compact .book-row{grid-template-columns:26px minmax(0,1fr);gap:6px;min-height:32px;padding:1px 2px}.book.compact .book-name{font-size:13px}.book.compact .book-label{font-size:9px}.engrave-letter{animation:.26s steps(4,end) both engrave;display:inline-block}@keyframes engrave{0%{opacity:0;transform:translateY(-2px)}35%{opacity:1;color:#fff;text-shadow:0 0 6px #fff,0 0 12px #ffd8a0;transform:none}to{opacity:1;transform:none}}.book-row.engraved .book-shape{animation:shape-ink .3s steps(3, end) var(--engrave-wait,0s) both}@keyframes shape-ink{0%{opacity:.2;filter:brightness(3)}to{opacity:1;filter:none}}.book-name.erasing{pointer-events:none;animation:.26s steps(4,end) both erase;position:absolute;bottom:0;left:0}@keyframes erase{0%{opacity:1;letter-spacing:0}to{opacity:0;letter-spacing:5px}}.kit-layout{grid-template-columns:minmax(0,1fr) 280px;grid-template-areas:"book side""cards detail";align-items:start;gap:14px;width:min(1280px,100%);display:grid}.kit-layout .panel{width:auto;padding:10px 12px}.kit-book{grid-area:book}.kit-side{grid-area:side;gap:8px}.kit-cards{grid-area:cards;min-width:0}.kit-detail{grid-area:detail;min-height:260px}.kit-side .validation{margin:0;font-size:12px;line-height:1.3}.kit-tools{flex-wrap:nowrap;gap:6px}.kit-tools .btn{white-space:nowrap;flex:1;padding:6px 8px;font-size:12px}.grid-heading{color:var(--text);border-bottom:1px solid var(--line);align-items:center;gap:8px;margin:0 0 6px;padding-bottom:2px;font-size:14px;font-weight:400;display:flex}.grid-hint{color:var(--muted);text-transform:uppercase;font-size:11px}.chips{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.chip{background:var(--surface);min-height:32px;padding:3px 10px;font-size:13px}.chip.active{border-color:var(--accent);color:var(--accent);background:var(--panel-hi)}.kit-list-head{color:var(--muted);text-transform:uppercase;margin:0 0 6px;font-size:12px}.kit-list{overscroll-behavior:contain;border:2px solid var(--line);scrollbar-color:var(--line) transparent;scrollbar-width:thin;background:#0d0b1459;height:clamp(220px,100vh - 430px,560px);padding:6px 8px 8px 2px;scroll-padding:8px;overflow-y:auto}.kit-list .grid-group+.grid-group{margin-top:12px}.book-row.selected{box-shadow:inset 3px 0 0 var(--side);background:#3a3146}.book-row.selected .book-label{color:var(--side)}.char-sub{color:var(--muted);text-transform:uppercase;margin:10px 0 4px;font-size:12px;font-weight:400}.mod-chip{font:inherit;background:var(--surface);cursor:pointer;min-height:28px;font-size:12px;position:relative}.mod-chip:hover,.mod-chip:focus,.mod-chip.pinned{background:var(--panel-hi);border-color:currentColor;outline:none}.mod-tip{z-index:20;text-align:left;white-space:normal;background:var(--panel);width:250px;box-shadow:4px 4px 0 var(--bg);border:2px solid;flex-direction:column;gap:2px;padding:6px 8px;display:none;position:absolute;top:calc(100% + 6px);left:0}.mod-chip:hover .mod-tip,.mod-chip:focus .mod-tip,.mod-chip.pinned .mod-tip{display:flex}.mod-tip-name{font-size:14px}.mod-tip-meta{color:var(--muted);text-transform:uppercase;font-size:10px}.mod-tip-desc{color:var(--text);font-size:12px;line-height:1.35}.stat-head,.stat-line,.stat-spell{grid-template-columns:minmax(0,1.4fr) 58px 14px 58px 64px minmax(0,1.3fr);align-items:center;gap:4px;display:grid}.stat-head{color:var(--muted);text-transform:uppercase;font-size:10px}.stat-line{cursor:default;border-bottom:1px solid var(--line);padding:3px 2px;font-size:13px;list-style:none}.stat-line::-webkit-details-marker{display:none}.stat:not(.flat)>.stat-line{cursor:pointer}.stat:not(.flat)>.stat-line .stat-label:before{content:"▸ ";color:var(--muted)}.stat[open]:not(.flat)>.stat-line .stat-label:before{content:"▾ "}.stat-line:focus{outline:2px solid var(--accent);outline-offset:-2px}.stat-spell{color:var(--muted);padding:1px 2px 1px 16px;font-size:11px}.stat-base{color:var(--muted);text-align:right}.stat-arrow{color:var(--line);text-align:center}.stat-now{text-align:right}.stat-now.changed{color:var(--text)}.stat-delta{text-align:right;font-size:11px}.stat-delta.good{color:var(--accent)}.stat-delta.bad{color:var(--danger)}.stat-from{flex-wrap:wrap;gap:3px;display:flex}.from-mod{border:1px solid;padding:0 3px;font-size:9px;line-height:13px}.stat-note{margin-top:6px;font-size:10px}.result-kits{grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;display:grid}.result-kit h3{margin:0 0 4px}.result-kit:last-child h3{color:var(--foe)}.kit-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;width:100%}.kit-card{background:var(--surface)}.kit-card:hover,.kit-card:focus{border-color:var(--accent);transform:translateY(-1px)}.kit-card.locked{cursor:default;border-style:dashed}.detail-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.detail-word{font-size:24px}.detail-desc{color:var(--text);font-size:12px;line-height:1.4}.detail-line{color:var(--muted);font-size:12px}.validation{color:var(--foe);min-height:1.5em}.validation.ok{color:var(--accent)}.mod-name{font-size:16px}.key-hint{border:2px solid var(--line);color:var(--accent);padding:0 6px}.rarity-common .mod-name,.chip.rarity-common{color:var(--common)}.rarity-rare .mod-name,.chip.rarity-rare{color:var(--rare)}.rarity-legendary .mod-name,.chip.rarity-legendary{color:var(--legendary)}.rarity-cursed .mod-name,.chip.rarity-cursed{color:var(--cursed)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);padding:2px 8px;font-size:12px}.pick-panel{text-align:center;width:min(960px,100%)}.pick-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:12px 0;display:grid}.pick-cards .card-btn{min-height:160px}.cursed-slot{border-color:var(--cursed)}.pick-screen{justify-content:center}.run-head{align-items:center;gap:24px;width:min(1100px,100%);display:flex}.hp{flex:1;align-items:center;gap:12px;display:flex}.bar{background:var(--bg);border:2px solid var(--line);flex:1;height:14px}.bar .fill{background:var(--accent);height:100%}.run-body{grid-template-columns:1fr 1fr;gap:14px;width:min(1100px,100%);display:grid}.run-body .panel{width:auto}.foe{border-color:var(--foe)}.foe h3{color:var(--foe)}.foe-name{align-items:center;gap:12px;font-size:22px;display:flex}.badge{padding:2px 8px;font-size:12px}.elite-badge{background:var(--foe);color:var(--bg)}.foe.elite{box-shadow:0 0 0 2px var(--foe)}.results-screen{justify-content:center}.results-screen .panel{max-width:820px}.result{text-align:center;font-size:48px}.result.win{color:var(--accent)}.result.loss{color:var(--foe)}.score{text-align:center;font-size:28px}.stats{grid-template-columns:auto auto;justify-content:center;gap:4px 24px;display:grid}.stats dt{color:var(--muted)}.stats dd{margin:0}.rounds{border-collapse:collapse;margin:8px auto}.rounds th,.rounds td{border:1px solid var(--line);padding:2px 12px}.credits{grid-template-columns:auto 1fr;gap:8px 24px;max-width:820px;display:grid}.credits dt{color:var(--accent)}.credits dt.credit-lead,.credits dd.credit-lead{font-size:18px}.credits dd.credit-lead{color:var(--text)}.credits dd{margin:0}.lobby-body{grid-template-columns:1fr 1fr;gap:14px;width:min(1100px,100%);display:grid}.lobby-body .panel{width:auto}.code-input{text-transform:uppercase;letter-spacing:.2em;width:8ch;font-size:22px}.room-code{letter-spacing:.25em;color:var(--accent);text-align:center;font-size:64px}.share{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.share code{background:var(--bg);-webkit-user-select:all;user-select:all;padding:4px 8px}.seat{border-top:1px solid var(--line);gap:12px;padding:6px 0;display:flex}.seat-label{color:var(--accent);min-width:48px}.rtt.good{color:var(--accent)}.rtt.ok{color:var(--legendary)}.rtt.bad{color:var(--danger)}.match-screen{height:100%;padding:0;display:block}.match-stage{background:var(--bg);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:relative;overflow:hidden}.game-canvas{image-rendering:pixelated;image-rendering:crisp-edges}.overlays{pointer-events:none;position:absolute;inset:0}.overlays>*{pointer-events:auto}.notice{background:var(--panel);border:2px solid var(--foe);color:var(--foe);padding:6px 16px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.banner{text-align:center;border:2px solid var(--line);pointer-events:none;background:#0d0b14d9;padding:12px 32px;position:absolute;top:36%;left:50%;transform:translate(-50%,-50%)}.banner-title{color:var(--accent);font-size:32px}.match-stage .pick-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.shade{z-index:10;background:#0d0b14bf;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#app>.screen>.shade,.screen .shade{position:fixed}.dialog,.pause-menu{text-align:center;width:auto;min-width:360px}.frame-data{border:1px solid var(--line);pointer-events:none;background:#0d0b14cc;width:min(560px,60%);padding:4px 8px;font-size:11px;position:absolute;left:50%;transform:translate(-50%)}.fd-legend{color:var(--muted)}.fd-row{grid-template-columns:34px 170px 1fr;align-items:center;gap:6px;height:18px;display:grid}.fd-who{color:var(--accent)}.fd-row+.fd-row .fd-who{color:var(--foe)}.fd-track{background:var(--bg);height:8px;display:flex;position:relative}.fd-seg{height:100%}.fd-startup{background:var(--legendary)}.fd-active{background:var(--accent)}.fd-recovery{background:var(--muted)}.fd-stagger{background:var(--danger)}.fd-cursor{background:var(--text);width:2px;height:12px;position:absolute;top:-2px}.fd-cd-row{align-items:center;gap:10px;height:16px;display:flex}.fd-cd-row .fd-who{width:40px}.fd-cd{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.fd-cd-track{background:var(--bg);width:36px;height:4px;display:inline-block}.fd-cd-fill{background:var(--accent);height:100%;display:block}.toasts{z-index:100;pointer-events:none;flex-direction:column;gap:6px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}.toast{background:var(--panel);border:2px solid var(--line);padding:8px 18px}.toast-unlock{border-color:var(--legendary);color:var(--legendary)}.toast-error{border-color:var(--danger);color:var(--danger)}@media (prefers-reduced-motion:reduce){.screen-enter,.logo-letter,.tagline,.press-key,.menu .menu-item,.engrave-letter,.book-row.engraved .book-shape,.book-name.erasing{animation:none}.menu-item:hover,.menu-item:focus,.kit-card:hover,.kit-card:focus{transform:none}}@media (max-width:1100px),(max-height:640px){.screen{gap:10px;padding:14px 18px}.kit-layout{grid-template-columns:minmax(0,1fr) 230px;gap:10px}.book-row{min-height:36px}.result-kits{grid-template-columns:1fr}.kit-detail{min-height:0}.kit-list{height:clamp(180px,100vh - 330px,420px)}.detail-word{font-size:20px}.run-body,.lobby-body{grid-template-columns:1fr}.logo.small,.room-code{font-size:44px}}.profile-layout{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:16px;width:min(1100px,100%);display:flex}.profile-preview{justify-content:center;align-items:center;width:auto;padding:12px;display:flex}.profile-canvas{width:192px;height:240px;image-rendering:pixelated;display:block}.profile-controls{flex:520px;gap:8px;max-width:720px;max-height:70vh;overflow-y:auto}.profile-field{grid-template-columns:120px 1fr}.name-row,.seg-row,.swatch-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.profile-name{width:16ch}.name-status.ok{color:var(--accent)}.name-status.bad{color:var(--danger)}.btn.seg{padding:4px 12px}.btn.seg.on{border-color:var(--accent);color:var(--accent);background:var(--panel-hi)}.color-input{border:2px solid var(--line);background:var(--panel);cursor:pointer;width:44px;height:30px;padding:0 2px}.color-input:focus{border-color:var(--accent);outline:none}.swatch{border:2px solid var(--line);cursor:pointer;width:22px;height:22px;padding:0}.swatch:hover,.swatch:focus{border-color:var(--text);outline:none}
