*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark;--void: #08080c;--arena-stone: #111117;--arena-stone-raised: #18171d;--arena-stone-soft: #201e25;--felt: #251318;--felt-bright: #351920;--brass: #d7a94d;--brass-bright: #f2cf77;--brass-dark: #745220;--ember: #d95c48;--ember-bright: #ff8267;--aether: #6fc9c2;--aether-bright: #a5eee4;--vital: #76be81;--bone: #eee6d3;--bone-dim: #a69d8b;--ink: #171317;--line: rgba(231, 211, 169, .14);--line-strong: rgba(231, 211, 169, .3);--shadow: rgba(0, 0, 0, .42);--font-display: Georgia, "Times New Roman", serif;--font-ui: "Trebuchet MS", "Avenir Next", Avenir, sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace}html{min-width:320px;min-height:100%;background:var(--void)}body{min-height:100vh;min-height:100svh;background:radial-gradient(circle at 50% 18%,rgba(111,201,194,.08),transparent 31rem),radial-gradient(circle at 50% 110%,rgba(172,54,50,.16),transparent 35rem),linear-gradient(145deg,#0d0c11 0%,var(--void) 58%,#100b0d 100%);color:var(--bone);font-family:var(--font-ui);font-size:14px;overflow-x:hidden}body:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);background-size:32px 32px;content:"";-webkit-mask-image:radial-gradient(circle at center,black,transparent 78%);mask-image:radial-gradient(circle at center,black,transparent 78%)}button{font:inherit}button:focus-visible{outline:2px solid var(--aether-bright);outline-offset:3px}#app{display:grid;min-height:100vh;min-height:100svh;place-items:center;padding:clamp(18px,3vw,34px)}.screen{position:relative;display:flex;width:min(100%,720px);flex-direction:column;align-items:center;gap:14px;animation:screen-in .36s cubic-bezier(.2,.8,.2,1) both}.screen.hidden{display:none}.screen:after{position:absolute;top:-24px;right:-24px;bottom:-24px;left:-24px;z-index:-1;border:1px solid rgba(215,169,77,.05);border-radius:30px;content:"";pointer-events:none}.panel{position:relative;width:100%;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.032),transparent 38%),linear-gradient(180deg,var(--arena-stone-raised),var(--arena-stone));box-shadow:0 18px 40px -28px var(--shadow),inset 0 1px #ffffff09}.panel:before{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(90deg,transparent,rgba(215,169,77,.035),transparent);content:"";pointer-events:none}.eyebrow{color:var(--brass);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.muted{color:var(--bone-dim)}.menu-screen{width:min(100%,520px);gap:0;padding:clamp(26px,6vw,46px);border:1px solid var(--line-strong);border-radius:24px;background:radial-gradient(circle at 50% 8%,rgba(215,169,77,.13),transparent 17rem),linear-gradient(155deg,#251318f0,#111117fa 55%);box-shadow:0 28px 70px -38px #000,inset 0 1px #ffffff0d}.menu-screen:before,.result-screen:before{position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1px solid rgba(215,169,77,.12);border-radius:16px;content:"";pointer-events:none}.brand-lockup{display:flex;flex-direction:column;align-items:center;margin:12px 0 28px;text-align:center}.brand-lockup h1{margin-top:12px;color:var(--bone);font-family:var(--font-display);font-size:clamp(34px,9vw,56px);font-weight:700;letter-spacing:-.045em;line-height:.95;text-shadow:0 2px 20px rgba(215,169,77,.13)}.brand-lockup h1 span{color:var(--brass-bright);font-style:italic;font-weight:400}.brand-lockup p{max-width:340px;margin-top:14px;color:var(--bone-dim);font-size:13px;line-height:1.6}.brand-die,.result-sigil{position:relative;display:grid;width:76px;height:76px;place-items:center;transform:rotate(45deg);border:1px solid var(--brass-dark);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.08),transparent 45%),var(--arena-stone-soft);box-shadow:0 16px 32px -20px #000,inset 0 0 0 5px #d7a94d09}.brand-die-grid{display:grid;width:42px;height:42px;grid-template-columns:repeat(2,1fr);gap:15px;transform:rotate(-45deg)}.brand-die-grid i{width:9px;height:9px;align-self:center;justify-self:center;border-radius:50%;background:var(--brass-bright);box-shadow:0 0 10px #f2cf776b}.menu-actions{display:grid;width:100%;gap:10px}.menu-rule{display:flex;width:100%;align-items:center;gap:12px;margin:24px 0 15px;color:var(--bone-dim);font-family:var(--font-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase}.menu-rule:before,.menu-rule:after{height:1px;flex:1;background:var(--line);content:""}.menu-stats{display:grid;width:100%;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--line)}.stat{display:flex;min-height:58px;flex-direction:column;align-items:center;justify-content:center;background:#08080cad}.stat strong{color:var(--brass-bright);font-family:var(--font-display);font-size:20px;font-weight:400}.stat span{margin-top:3px;color:var(--bone-dim);font-family:var(--font-mono);font-size:8px;letter-spacing:.12em;text-transform:uppercase}.btn{min-height:44px;padding:10px 18px;border:1px solid var(--line-strong);border-radius:10px;background:#ffffff06;color:var(--bone);cursor:pointer;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;transition:transform .14s ease,border-color .14s ease,background .14s ease,color .14s ease}.btn:hover:not(:disabled){transform:translateY(-1px);border-color:#f2cf7794;background:#d7a94d14}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{border-color:var(--brass-dark);background:linear-gradient(180deg,var(--brass-bright),var(--brass));box-shadow:inset 0 1px #ffffff47;color:var(--ink)}.btn.primary:hover:not(:disabled){border-color:var(--brass-bright);background:linear-gradient(180deg,#ffe399,var(--brass))}.btn:disabled{opacity:.35;cursor:not-allowed}.btn .btn-mark{display:inline-block;margin-right:8px;color:currentColor;font-size:14px}.btn-wide{width:100%}.battle-screen{width:min(100%,980px);gap:10px}.arena-heading{display:flex;width:100%;align-items:center;justify-content:space-between;gap:18px;padding:0 3px 3px}.arena-title{min-width:112px}.arena-heading strong{color:var(--bone);font-family:var(--font-display);font-size:16px;font-weight:400}.arena-tools{display:flex;align-items:center;gap:7px}.arena-help{display:grid;width:27px;height:27px;place-items:center;border:1px solid var(--line);border-radius:50%;background:#ffffff06;color:var(--brass);cursor:pointer;font-family:var(--font-mono);font-size:11px;font-weight:800;transition:border-color .14s ease,background .14s ease,transform .14s ease}.arena-help:hover{transform:translateY(-1px);border-color:var(--brass-dark);background:#d7a94d14}.run-progress{position:relative;display:grid;width:min(42vw,270px);grid-template-columns:repeat(6,1fr);align-items:center}.run-progress:before{position:absolute;right:7%;left:7%;height:1px;background:linear-gradient(90deg,var(--brass-dark),var(--line-strong));content:""}.run-node{position:relative;z-index:1;width:9px;height:9px;justify-self:center;transform:rotate(45deg);border:1px solid var(--line-strong);background:var(--arena-stone);transition:background .18s ease,box-shadow .18s ease,transform .18s ease}.run-node.complete{border-color:var(--brass-dark);background:var(--brass)}.run-node.active{transform:rotate(45deg) scale(1.45);border-color:var(--brass-bright);background:var(--brass-bright);box-shadow:0 0 12px #f2cf777a}.run-node.boss-node{border-color:#d95c4899}.run-node.boss-node.active{border-color:var(--ember-bright);background:var(--ember-bright);box-shadow:0 0 14px #ff826780}.fight-counter{padding:5px 9px;border:1px solid var(--line);border-radius:999px;color:var(--bone-dim);font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase}.fight-counter.boss{border-color:#f2cf7780;color:var(--brass-bright)}.enemy-panel{--enemy-accent: #d7a94d;--enemy-glow: rgba(215, 169, 77, .16);min-height:142px;padding:17px 20px;background:radial-gradient(circle at 10% 52%,var(--enemy-glow),transparent 15rem),linear-gradient(145deg,rgba(255,255,255,.025),transparent 35%),linear-gradient(100deg,#19151a,#111117);transition:border-color .18s ease,background .18s ease}.enemy-panel[data-enemy=slime]{--enemy-accent: #a8df55;--enemy-glow: rgba(132, 196, 66, .15)}.enemy-panel[data-enemy=cultist]{--enemy-accent: #b16ce0;--enemy-glow: rgba(128, 67, 172, .17)}.enemy-panel[data-enemy=rust-knight]{--enemy-accent: #db7f45;--enemy-glow: rgba(190, 83, 43, .17)}.enemy-panel[data-enemy=viper]{--enemy-accent: #62c97b;--enemy-glow: rgba(61, 154, 84, .16)}.enemy-panel[data-enemy=dice-golem]{--enemy-accent: #62d8df;--enemy-glow: rgba(64, 172, 182, .18)}.enemy-panel[data-enemy=gambler]{--enemy-accent: #f0bc55;--enemy-glow: rgba(215, 147, 51, .2)}.enemy-area{display:grid;grid-template-columns:112px 1fr auto;align-items:center;gap:18px}.enemy-portrait{position:relative;display:grid;width:108px;height:108px;place-items:center;isolation:isolate}.enemy-portrait-art{position:relative;z-index:2;display:grid;width:92px;height:92px;place-items:center;overflow:hidden;clip-path:polygon(50% 1%,99% 50%,50% 99%,1% 50%)}.enemy-portrait:before,.enemy-portrait:after{position:absolute;top:7px;right:7px;bottom:7px;left:7px;transform:rotate(45deg);border:1px solid color-mix(in srgb,var(--enemy-accent) 48%,transparent);border-radius:21px;background:linear-gradient(145deg,color-mix(in srgb,var(--enemy-accent) 12%,transparent),transparent 50%),#08080cb3;box-shadow:0 0 28px -14px var(--enemy-accent),inset 0 0 24px #00000073;content:""}.enemy-portrait:after{top:14px;right:14px;bottom:14px;left:14px;z-index:-1;border-color:color-mix(in srgb,var(--enemy-accent) 28%,transparent);border-radius:15px;background:radial-gradient(circle,var(--enemy-glow),transparent 68%),#08080ce6}.enemy-portrait-mark{position:absolute;right:0;bottom:8px;z-index:3;display:grid;width:22px;height:22px;place-items:center;transform:rotate(45deg);border:1px solid color-mix(in srgb,var(--enemy-accent) 72%,#fff 10%);border-radius:5px;background:#141219;color:var(--enemy-accent);font-size:8px;box-shadow:0 5px 16px #00000080}.enemy-sprite{width:94px;height:94px;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 12px 8px rgba(0,0,0,.5)) saturate(1.04);animation:enemy-breathe 3.8s ease-in-out infinite alternate}.enemy-info{min-width:0}.enemy-meta{display:flex;align-items:center;gap:9px;margin-bottom:6px}.enemy-kicker{color:var(--bone-dim);font-family:var(--font-mono);font-size:8px;letter-spacing:.16em;text-transform:uppercase}.enemy-tier{padding:3px 6px;border:1px solid color-mix(in srgb,var(--enemy-accent) 38%,transparent);border-radius:999px;background:color-mix(in srgb,var(--enemy-accent) 7%,transparent);color:var(--enemy-accent);font-family:var(--font-mono);font-size:7px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.enemy-tier.elite{box-shadow:0 0 12px #62d8df1f}.enemy-tier.boss{box-shadow:0 0 14px #f0bc552e}.enemy-name{overflow:hidden;margin-bottom:13px;color:var(--bone);font-family:var(--font-display);font-size:clamp(20px,4vw,28px);line-height:1;text-overflow:ellipsis;white-space:nowrap}.enemy-name.elite{color:var(--aether-bright)}.enemy-name.boss{color:var(--brass-bright)}#enemy-panel .bar{position:relative;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),rgba(8,8,12,.52) calc(20% - 1px),rgba(8,8,12,.52) 20%),#ffffff12}#enemy-hp-bar{background:linear-gradient(90deg,color-mix(in srgb,var(--enemy-accent) 64%,#6c2c30),var(--enemy-accent));box-shadow:0 0 12px color-mix(in srgb,var(--enemy-accent) 24%,transparent)}.intent-card{display:flex;min-width:100px;flex-direction:column;align-items:center;justify-content:center;padding:11px 14px;border-left:1px solid var(--line);border-radius:0 10px 10px 0;background:#d95c4806;transition:background .18s ease,border-color .18s ease}.intent-card span:first-child{color:var(--bone-dim);font-family:var(--font-mono);font-size:8px;letter-spacing:.14em;text-transform:uppercase}.intent{margin-top:3px;color:var(--ember-bright);font-family:var(--font-display);font-size:clamp(17px,3vw,23px);font-weight:700;line-height:1.08;text-align:center}.intent-card[data-intent=block]{border-color:#6fc9c247;background:#6fc9c20b}.intent-card[data-intent=block] .intent{color:var(--aether-bright)}.intent-card[data-intent=buff],.intent-card[data-intent=curse],.intent-card[data-intent=steal]{border-color:#d7a94d47;background:#d7a94d0b}.intent-card[data-intent=buff] .intent,.intent-card[data-intent=curse] .intent,.intent-card[data-intent=steal] .intent{color:var(--brass-bright)}#enemy-panel.boss-fight{border-color:#f2cf7780;background:radial-gradient(circle at 10% 52%,var(--enemy-glow),transparent 17rem),linear-gradient(100deg,#211910,#111117);box-shadow:0 18px 50px -30px #d7a94dcc}@keyframes enemy-breathe{0%{transform:translateY(1px) scale(.985)}to{transform:translateY(-2px) scale(1.015)}}.dice-panel{padding:18px 20px 16px;border-color:#9340415c;background:linear-gradient(135deg,rgba(255,255,255,.025),transparent 36%),radial-gradient(circle at center,rgba(115,37,45,.2),transparent 70%),linear-gradient(180deg,var(--felt-bright),var(--felt))}.dice-stage{position:relative;width:100%;min-width:0}.dice-panel:after{position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:1px solid rgba(215,169,77,.09);border-radius:11px;content:"";pointer-events:none}.section-label{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;color:#eee6d394;font-family:var(--font-mono);font-size:8px;letter-spacing:.16em;text-transform:uppercase}.section-label:after{width:42px;height:1px;background:#d7a94d47;content:""}.section-label>span:first-child{flex:0 0 auto}.selection-readout,.turn-state{margin-left:auto;color:#eee6d36b;font-size:8px;letter-spacing:.08em;transition:color .16s ease}.selection-readout.active{color:var(--brass-bright)}.turn-state.ready{color:var(--aether-bright)}.section-label:has(.selection-readout):after,.section-label:has(.turn-state):after{display:none}.roll-metrics{position:relative;z-index:1;display:flex;justify-content:center;gap:18px;margin-top:7px;color:#eee6d375;font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase}.roll-metrics span{display:inline-flex;align-items:baseline;gap:4px}.roll-metrics span+span:before{margin-right:13px;color:#d7a94d61;content:"◆";font-size:5px}.roll-metrics b{color:var(--brass-bright);font-size:9px}.dice-tray{position:relative;z-index:1;display:flex;min-height:84px;align-items:center;justify-content:center;gap:clamp(9px,2.4vw,16px);padding:10px 0 6px}.die{position:relative;display:grid;width:clamp(54px,9vw,66px);height:clamp(54px,9vw,66px);flex:0 0 auto;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:10px;border:1px solid #d8d0bd;border-radius:15px;background:linear-gradient(145deg,#ffffffeb,#ddd3bdf5);box-shadow:0 10px 16px -10px #000,inset 0 1px #ffffffe6,inset 0 -2px #513c281f;color:var(--ink);cursor:pointer;transition:transform .15s cubic-bezier(.2,.8,.2,1),border-color .15s ease,box-shadow .15s ease,opacity .15s ease}.die:hover:not(.placed){transform:translateY(-3px) rotate(-1deg)}.pip{width:clamp(6px,1.1vw,8px);height:clamp(6px,1.1vw,8px);align-self:center;justify-self:center;border-radius:50%;background:#2a2021;box-shadow:inset 0 1px 1px #0006}.pip-0{grid-area:1 / 1}.pip-1{grid-area:1 / 2}.pip-2{grid-area:1 / 3}.pip-3{grid-area:2 / 1}.pip-4{grid-area:2 / 2}.pip-5{grid-area:2 / 3}.pip-6{grid-area:3 / 1}.pip-7{grid-area:3 / 2}.pip-8{grid-area:3 / 3}.die.selected{transform:translateY(-9px) rotate(2deg);border-color:var(--brass-bright);box-shadow:0 15px 22px -12px #000,0 0 0 3px #d7a94d47,0 0 22px #d7a94d2e}.die.selected:after{position:absolute;top:-8px;right:-8px;display:grid;width:19px;height:19px;place-items:center;border:1px solid #ffe7a2;border-radius:50%;background:var(--brass);box-shadow:0 5px 12px #0006;color:var(--ink);content:"✓";font-family:var(--font-mono);font-size:10px;font-weight:900}.die.combo-glow{border-color:var(--aether-bright);box-shadow:0 12px 20px -12px #000,0 0 0 3px #6fc9c240,0 0 24px #6fc9c238}.die.cursed{border-color:var(--ember);background:linear-gradient(145deg,#eed4ce,#c8a19c)}.die.cursed .pip{background:#802d2d;box-shadow:0 0 6px #d95c486b}.die.placed{transform:scale(.88);opacity:.16;pointer-events:none}.dice-controls{position:relative;z-index:1;display:flex;justify-content:center;margin-top:1px}@keyframes shake{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-4px,2px) rotate(-5deg)}40%{transform:translate(4px,-2px) rotate(5deg)}60%{transform:translate(-3px,1px) rotate(-3deg)}80%{transform:translate(3px,-1px) rotate(3deg)}}.die.rolling{animation:shake .35s ease}.actions-panel{padding:12px;background:linear-gradient(145deg,rgba(255,255,255,.025),transparent 36%),linear-gradient(180deg,#19181e,#111117)}.tactical-console{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:12px}.action-deck{display:grid;min-width:0;grid-template-rows:auto 1fr;padding:7px 13px 7px 7px;border-right:1px solid var(--line)}.slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:8px;margin-top:10px}.slots.has-spell{grid-template-columns:repeat(5,minmax(0,1fr))}.slot{--slot-accent: var(--brass-bright);--slot-glow: rgba(215, 169, 77, .08);position:relative;display:grid;min-width:0;min-height:0;grid-template-rows:auto 1fr auto;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,rgba(255,255,255,.025),transparent 54%),#08080c42;color:var(--bone);cursor:pointer;text-align:left;transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}.slot[data-slot-id=attack]{--slot-accent: var(--ember-bright);--slot-glow: rgba(217, 92, 72, .09)}.slot[data-slot-id=block]{--slot-accent: var(--aether-bright);--slot-glow: rgba(111, 201, 194, .09)}.slot[data-slot-id=heal]{--slot-accent: #9ee1a7;--slot-glow: rgba(118, 190, 129, .09)}.slot[data-slot-id=spell]{--slot-accent: #c69bf0;--slot-glow: rgba(166, 111, 211, .11)}.slot:hover{border-color:var(--line-strong);background:var(--slot-glow)}.slot.valid{transform:translateY(-1px);border-color:color-mix(in srgb,var(--slot-accent) 68%,transparent);background:var(--slot-glow);box-shadow:inset 0 0 18px var(--slot-glow)}.slot.valid:after{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--slot-accent);border-radius:inherit;content:"";animation:slot-pulse 1.1s ease-in-out infinite alternate}.slot.combo-ready{box-shadow:inset 0 0 22px var(--slot-glow),0 0 18px -12px var(--slot-accent)}.slot.combo-ready .slot-well{border-style:solid;box-shadow:inset 0 0 20px var(--slot-glow)}.slot.locked{opacity:.35;cursor:not-allowed}.slot-heading{display:grid;grid-template-columns:25px minmax(0,1fr) 18px;align-items:center;gap:7px}.slot-help{display:grid;width:18px;height:18px;place-items:center;border:1px solid color-mix(in srgb,var(--slot-accent) 28%,transparent);border-radius:50%;color:color-mix(in srgb,var(--slot-accent) 68%,var(--bone-dim));font-family:var(--font-mono);font-size:8px;cursor:help}.slot-help:hover,.slot-help:focus-visible{border-color:var(--slot-accent);color:var(--slot-accent);outline:none}.rules-reference-btn{min-height:28px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:#ffffff05;color:var(--brass-bright);font-family:var(--font-mono);font-size:7px;letter-spacing:.08em;text-transform:uppercase}.rules-reference-btn:hover{border-color:#d7a94d80;background:#d7a94d0f}.rules-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;display:grid;place-items:center;padding:24px;background:#050508c2;opacity:0;transition:opacity .16s ease}.rules-overlay[hidden]{display:none}.rules-overlay.open{opacity:1}.rules-dialog{position:relative;width:min(920px,100%);max-height:min(760px,calc(100vh - 48px));padding:24px;overflow:auto;transform:translateY(8px) scale(.985);border:1px solid rgba(215,169,77,.32);border-radius:17px;background:linear-gradient(145deg,rgba(215,169,77,.045),transparent 34%),#111016;box-shadow:0 30px 90px #0000008c;transition:transform .18s cubic-bezier(.2,.8,.2,1)}.rules-overlay.open .rules-dialog{transform:translateY(0) scale(1)}.rules-dialog h2{margin:5px 0 18px;font-family:var(--font-display);font-size:30px;font-weight:400}.rules-overlay-close{position:absolute;top:14px;right:14px;display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--bone-dim);font-size:17px}.slot-help-content p{max-width:620px;color:var(--bone-dim);line-height:1.55}.slot-help-content dl{display:grid;gap:8px;margin:18px 0 0}.slot-help-content dl>div{display:grid;grid-template-columns:105px 1fr;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.slot-help-content dt,.rules-reference-grid h3{color:var(--brass-bright);font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase}.slot-help-content dd{margin:0;color:var(--bone);font-size:13px}.rules-reference-grid{display:grid;grid-template-columns:1.15fr .85fr 1fr;gap:18px}.rules-reference-grid section{min-width:0}.reference-list{display:grid;gap:7px}.reference-entry{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#ffffff05}.reference-entry strong{color:var(--bone);font-family:var(--font-display);font-size:15px;font-weight:400}.reference-entry span,.reference-empty{color:var(--bone-dim);font-size:11px;line-height:1.45}@media (max-width: 760px){.rules-reference-grid{grid-template-columns:1fr}}.slot-icon{display:grid;width:25px;height:25px;place-items:center;border:1px solid color-mix(in srgb,var(--slot-accent) 28%,transparent);border-radius:7px;background:color-mix(in srgb,var(--slot-accent) 6%,transparent);color:var(--slot-accent);font-family:var(--font-display);font-size:16px;line-height:1}.slot-copy{display:block;min-width:0}.slot-label{display:block;overflow:hidden;color:var(--bone);font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.slot-preview{display:block;overflow:hidden;margin-top:2px;color:color-mix(in srgb,var(--slot-accent) 78%,var(--bone-dim));font-family:var(--font-mono);font-size:7px;letter-spacing:.04em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.slot-well{position:relative;display:grid;min-height:46px;place-items:center;overflow:hidden;border:1px dashed color-mix(in srgb,var(--slot-accent) 25%,transparent);border-radius:8px;background:radial-gradient(circle at center,var(--slot-glow),transparent 75%),#08080c61}.slot.valid .slot-well{border-color:color-mix(in srgb,var(--slot-accent) 58%,transparent)}.slot-empty{color:#eee6d34d;font-family:var(--font-mono);font-size:7px;letter-spacing:.12em;text-transform:uppercase}.slot.occupied .slot-empty,.slot.valid .slot-empty{display:none}.slot-dice{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;padding:5px}.mini-die{display:grid;width:30px;height:30px;flex:0 0 auto;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:5px;border:1px solid #d8d0bd;border-radius:8px;background:linear-gradient(145deg,#f4eee1,#cfc4ad);box-shadow:0 6px 10px -7px #000,inset 0 1px #ffffffe6;animation:die-slot-in .22s cubic-bezier(.2,.8,.2,1) both}.mini-die .pip{width:4px;height:4px;background:#2a2021}.mini-die.preview{border-color:var(--slot-accent);opacity:.62;box-shadow:0 0 0 2px color-mix(in srgb,var(--slot-accent) 18%,transparent),0 6px 10px -7px #000;animation:preview-die .9s ease-in-out infinite alternate}.mini-die.cursed{border-color:var(--ember);background:linear-gradient(145deg,#eed4ce,#c8a19c)}.mini-die.cursed .pip{background:#802d2d}.slot-combos{display:flex;min-height:16px;flex-wrap:wrap;justify-content:center;gap:3px}.slot-combo{padding:3px 5px;border:1px solid color-mix(in srgb,var(--slot-accent) 48%,transparent);border-radius:999px;background:color-mix(in srgb,var(--slot-accent) 8%,transparent);color:var(--slot-accent);font-family:var(--font-mono);font-size:7px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;animation:combo-chip-in .22s ease both}.slot-relic{padding:3px 5px;border:1px solid rgba(198,155,240,.42);border-radius:999px;background:#a66fd317;color:#d8b8f7;font-family:var(--font-mono);font-size:7px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;animation:combo-chip-in .22s ease both}.planning-tools{display:flex;align-items:center;gap:6px}.planning-tools button{padding:4px 7px;border:1px solid var(--line);border-radius:7px;background:#ffffff05;color:var(--bone-dim);font-family:var(--font-mono);font-size:7px;letter-spacing:.05em;text-transform:uppercase}.planning-tools button:not(:disabled):hover{border-color:var(--line-strong);color:var(--bone)}.planning-tools button:disabled{opacity:.35}.mini-die[data-placed-die-id]{cursor:pointer;transition:transform .14s ease,filter .14s ease}.mini-die[data-placed-die-id]:hover{transform:translateY(-3px);filter:brightness(1.08)}.mini-die[data-placed-die-id]:focus-visible{outline:2px solid var(--slot-accent);outline-offset:2px}.player-status{display:flex;min-width:0;flex-direction:column;gap:8px;padding:7px 7px 7px 0}.player-status-head{display:flex;min-height:17px;align-items:center;justify-content:space-between;color:var(--bone-dim);font-family:var(--font-mono);font-size:8px;letter-spacing:.14em;text-transform:uppercase}.status-seal{padding:3px 6px;border:1px solid rgba(118,190,129,.28);border-radius:999px;background:#76be810d;color:#9ee1a7;font-size:7px;font-weight:700;letter-spacing:.09em}.status-seal.wounded{border-color:#d7a94d57;background:#d7a94d0f;color:var(--brass-bright)}.status-seal.critical{border-color:#d95c4875;background:#d95c4814;color:var(--ember-bright)}.status-vitals{display:grid;gap:7px}.vital-card{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#08080c61}.vital-heading{display:grid;grid-template-columns:21px 1fr auto;align-items:center;gap:6px}.vital-icon{color:var(--vital);font-family:var(--font-display);font-size:15px;text-align:center}.charge-vital .vital-icon{color:var(--aether-bright)}.vital-name{color:var(--bone-dim);font-family:var(--font-mono);font-size:8px;letter-spacing:.08em;text-transform:uppercase}.vital-heading strong{color:var(--bone);font-family:var(--font-mono);font-size:12px;font-weight:700;text-align:right}.vital-track{height:6px;margin-top:7px}.charge-state{display:block;margin-top:5px;color:#6fc9c294;font-family:var(--font-mono);font-size:7px;letter-spacing:.07em;text-align:right;text-transform:uppercase}.charge-vital.ready{border-color:#a6eee46b;box-shadow:inset 0 0 18px #6fc9c20f}.charge-vital.ready .charge-state{color:var(--aether-bright)}.status-effects{display:flex;flex-wrap:wrap;gap:5px;min-height:23px}.effect-chip[hidden]{display:none}.effect-chip{padding:4px 7px;border:1px solid var(--line);border-radius:999px;font-family:var(--font-mono);font-size:7px;letter-spacing:.06em;text-transform:uppercase}.effect-chip.guard{border-color:#6fc9c24d;color:var(--aether-bright)}.effect-chip.poison{border-color:#a8df5552;color:#bce56f}.bar-row{display:grid;grid-template-columns:65px 1fr 48px;align-items:center;gap:9px;color:var(--bone-dim);font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase}.bar-row>span:last-child{color:var(--bone);text-align:right}.bar{height:7px;overflow:hidden;border-radius:999px;background:#ffffff12}.bar-fill{height:100%;border-radius:999px;transition:width .3s ease}.bar-fill.hp{background:linear-gradient(90deg,#4d8559,var(--vital));box-shadow:0 0 10px #76be812e}.bar-fill.hp.critical{background:linear-gradient(90deg,#8b2f32,var(--ember-bright));box-shadow:0 0 12px #ff82674d}.bar-fill.charge{background:linear-gradient(90deg,#397c78,var(--aether));box-shadow:0 0 10px #6fc9c233}.end-turn-btn{width:100%;min-width:0;margin-top:auto;filter:saturate(.66);opacity:.78}.end-turn-btn.ready{filter:none;opacity:1;box-shadow:inset 0 1px #ffffff47,0 10px 24px -16px #f2cf77cc}.actions-panel.player-critical{border-color:#d95c486b;box-shadow:0 18px 40px -28px var(--shadow),inset 0 0 30px #d95c4809}.battle-screen.resolving{cursor:wait}.battle-screen.resolving .dice-panel,.battle-screen.resolving .actions-panel{pointer-events:none}.battle-screen.resolving .end-turn-btn{filter:saturate(.35);opacity:.54}.resolution-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:grid;width:100%;min-width:0;min-height:0;place-items:center;overflow:visible;border:1px solid var(--line);border-radius:15px;background:radial-gradient(circle at center,rgba(217,92,72,.08),transparent 52%),#08080cd1;box-shadow:inset 0 1px #ffffff06;opacity:0;pointer-events:none;transition:opacity .16s ease,border-color .18s ease}.resolution-stage[hidden]{display:none}.resolution-stage.visible{border-color:#d95c4857;opacity:1;pointer-events:auto}.resolution-stage-title{position:absolute;top:12px;left:14px;color:var(--bone-dim);font-family:var(--font-mono);font-size:8px;letter-spacing:.14em;text-transform:uppercase}.resolution-stage-hint{position:absolute;right:14px;bottom:10px;color:#eee6d359;font-family:var(--font-mono);font-size:7px;letter-spacing:.08em;text-transform:uppercase}.resolution-formula{display:flex;width:100%;max-width:calc(100% - 48px);flex-wrap:wrap;align-items:center;justify-content:center;gap:11px;padding:32px 16px 26px}.resolution-scene-dice{display:flex;gap:7px}.resolution-die{display:grid;width:42px;height:42px;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:7px;border:1px solid #d8d0bd;border-radius:10px;background:linear-gradient(145deg,#f4eee1,#cfc4ad);box-shadow:0 10px 18px -12px #000;animation:resolution-die-arrive .3s cubic-bezier(.2,.8,.2,1) both}.resolution-die .pip{width:5px;height:5px;background:#2a2021}.resolution-operator{color:#eee6d352;font-family:var(--font-display);font-size:18px}.resolution-base{color:var(--bone);font-family:var(--font-display);font-size:32px;font-weight:400;animation:resolution-number-in .3s ease both}.resolution-combo-stamp{padding:7px 10px;transform:rotate(-3deg);border:2px solid var(--ember-bright);border-radius:7px;color:#ff9d87;font-family:var(--font-mono);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;box-shadow:0 0 22px #d95c4824;animation:resolution-stamp-in .36s cubic-bezier(.15,.8,.25,1.15) both}.resolution-relic-trigger{padding:8px 10px;border:1px solid rgba(198,155,240,.54);border-radius:8px;background:#a66fd317;color:#d8b8f7;font-family:var(--font-mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 0 20px #a66fd31a;animation:resolution-relic-in .36s cubic-bezier(.2,.8,.2,1) both}.resolution-final-token{--token-edge: var(--ember-bright);--token-text: #ff9b81;--token-bg: #5b211e;--token-glow: rgba(217, 92, 72, .32);display:grid;flex:0 0 76px;width:76px;height:76px;min-width:76px;min-height:76px;aspect-ratio:1;place-items:center;border:1px solid var(--token-edge);border-radius:50%;background:radial-gradient(circle,var(--token-bg),#171016 68%);color:var(--token-text);font-family:var(--font-display);font-size:34px;box-shadow:0 0 34px var(--token-glow);animation:resolution-collapse .34s cubic-bezier(.2,.8,.2,1.1) both,resolution-final-pulse .36s ease-out both}.resolution-stage[data-target=guard] .resolution-final-token{--token-edge: var(--aether-bright);--token-text: #c6f5ee;--token-bg: #16403d;--token-glow: rgba(111, 201, 194, .32)}.resolution-stage[data-target=health] .resolution-final-token{--token-edge: #9ee1a7;--token-text: #c2eecb;--token-bg: #1c3a22;--token-glow: rgba(120, 200, 135, .32)}.resolution-stage[data-target=charge] .resolution-final-token{--token-edge: #a6eee4;--token-text: #caf6ef;--token-bg: #163b3a;--token-glow: rgba(120, 210, 200, .3)}@media (max-width: 620px){.resolution-stage-title{top:9px;left:10px}.resolution-stage-hint{right:10px;bottom:7px}.resolution-formula{max-width:calc(100% - 20px);gap:7px;padding:27px 8px 22px}.resolution-die{width:36px;height:36px;padding:6px}.resolution-final-token{flex-basis:64px;width:64px;height:64px;min-width:64px;min-height:64px;font-size:29px}}.resolution-stage[data-step=impact][data-target=enemy] .resolution-final-token{animation:resolution-impact-enemy .56s cubic-bezier(.3,.75,.25,1) both}.resolution-stage[data-step=impact][data-target=guard] .resolution-final-token,.resolution-stage[data-step=impact][data-target=health] .resolution-final-token,.resolution-stage[data-step=impact][data-target=charge] .resolution-final-token{animation:resolution-impact-player .56s cubic-bezier(.3,.75,.25,1) both}@keyframes resolution-die-arrive{0%{transform:translateY(24px) scale(.82) rotate(8deg);opacity:0}70%{transform:translateY(-3px) scale(1.03) rotate(-2deg);opacity:1}to{transform:translateY(0) scale(1) rotate(0);opacity:1}}@keyframes resolution-number-in{0%{transform:scale(.72);opacity:0}70%{transform:scale(1.12);opacity:1}to{transform:scale(1);opacity:1}}@keyframes resolution-stamp-in{0%{transform:translateY(-24px) rotate(-10deg) scale(1.2);opacity:0}68%{transform:translateY(2px) rotate(-2deg) scale(.96);opacity:1}to{transform:translateY(0) rotate(-3deg) scale(1);opacity:1}}@keyframes resolution-relic-in{0%{transform:translate(-10px) scale(.9);filter:brightness(1.8);opacity:0}to{transform:translate(0) scale(1);filter:brightness(1);opacity:1}}@keyframes resolution-collapse{0%{transform:scale(.35) rotate(-8deg);filter:brightness(2);opacity:0}72%{transform:scale(1.12) rotate(2deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes resolution-final-pulse{0%{box-shadow:0 0 0 0 var(--token-glow),0 0 28px var(--token-glow)}55%{box-shadow:0 0 0 13px #0000,0 0 46px var(--token-glow)}to{box-shadow:0 0 0 17px #0000,0 0 34px var(--token-glow)}}@keyframes resolution-impact-enemy{0%{transform:translate(0) scale(1);opacity:1}55%{transform:translateY(-55px) scale(.84);opacity:1}to{transform:translateY(-105px) scale(.3);filter:brightness(2);opacity:0}}@keyframes resolution-impact-player{0%{transform:translate(0) scale(1);opacity:1}55%{transform:translate(42vw,30px) scale(.84);opacity:1}to{transform:translate(48vw,55px) scale(.3);filter:brightness(2);opacity:0}}@media (prefers-reduced-motion: reduce){.resolution-die,.resolution-base,.resolution-combo-stamp,.resolution-relic-trigger,.resolution-final-token,.resolution-stage[data-step=impact] .resolution-final-token{animation-duration:1ms;transform:none}}.combat-beat{position:fixed;top:50%;left:50%;z-index:80;display:grid;min-width:210px;gap:4px;padding:11px 18px 12px;transform:translate(-50%,-44%) scale(.94);border:1px solid rgba(215,169,77,.36);border-radius:11px;background:linear-gradient(145deg,rgba(255,255,255,.035),transparent 45%),#0c0c11f0;box-shadow:0 18px 46px -22px #000,inset 0 1px #ffffff0a;opacity:0;pointer-events:none;text-align:center;transition:opacity .15s ease,transform .22s cubic-bezier(.2,.8,.2,1),border-color .18s ease}.combat-beat.visible{transform:translate(-50%,-50%) scale(1);opacity:1}.combat-beat span{color:var(--brass);font-family:var(--font-mono);font-size:7px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.combat-beat strong{color:var(--bone);font-family:var(--font-display);font-size:18px;font-weight:400}.combat-beat[data-tone=player]{border-color:#f2cf7794}.combat-beat[data-tone=player] span,.combat-beat[data-tone=player] strong{color:var(--brass-bright)}.combat-beat[data-tone=enemy]{border-color:#d95c4894}.combat-beat[data-tone=enemy] span,.combat-beat[data-tone=enemy] strong{color:var(--ember-bright)}.combat-beat[data-tone=ready]{border-color:#6fc9c280}.combat-beat[data-tone=ready] span,.combat-beat[data-tone=ready] strong{color:var(--aether-bright)}.slots.combat-commit .slot.occupied{animation:combat-slot-commit .43s cubic-bezier(.2,.8,.2,1)}.intent-card.combat-windup{animation:enemy-intent-windup .43s cubic-bezier(.3,.8,.3,1)}.enemy-panel.combat-hit{animation:enemy-panel-hit .48s cubic-bezier(.2,.8,.2,1)}.enemy-panel.combat-hit .enemy-sprite{animation:enemy-sprite-hit .48s cubic-bezier(.2,.8,.2,1)}.actions-panel.combat-hit{animation:player-panel-hit .48s cubic-bezier(.2,.8,.2,1)}.combat-hit-heavy{--impact-distance: 10px;--impact-flash: .22}.battle-screen:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:transparent;content:"";opacity:0;pointer-events:none}.battle-screen.combat-impact-enemy:before{background:radial-gradient(circle at 35% 24%,rgba(242,207,119,.2),transparent 28rem);animation:combat-screen-flash .42s ease}.battle-screen.combat-impact-player:before{background:radial-gradient(circle at 78% 78%,rgba(255,76,64,.2),transparent 30rem);animation:combat-screen-flash .42s ease}@keyframes combat-slot-commit{0%{transform:translateY(0);filter:brightness(1)}42%{transform:translateY(-5px);filter:brightness(1.45)}to{transform:translateY(0);filter:brightness(1)}}@keyframes enemy-intent-windup{0%{transform:scale(1);box-shadow:none}52%{transform:scale(1.075);border-color:#ff8267b8;background:#d95c4824;box-shadow:0 0 28px #d95c4838}to{transform:scale(1);box-shadow:none}}@keyframes enemy-panel-hit{0%{transform:translate(0);filter:brightness(1)}18%{transform:translate(var(--impact-distance, 6px));filter:brightness(1.5)}36%{transform:translate(calc(var(--impact-distance, 6px) * -.7))}58%{transform:translate(calc(var(--impact-distance, 6px) * .35))}to{transform:translate(0);filter:brightness(1)}}@keyframes enemy-sprite-hit{0%{transform:translate(0) rotate(0);filter:drop-shadow(0 12px 8px rgba(0,0,0,.5))}22%{transform:translate(10px) rotate(3deg) scale(.94);filter:brightness(1.7) saturate(.7) drop-shadow(0 0 14px rgba(255,130,103,.7))}52%{transform:translate(-4px) rotate(-1deg) scale(1.02)}to{transform:translate(0) rotate(0) scale(1)}}@keyframes player-panel-hit{0%{transform:translate(0);filter:brightness(1)}16%{transform:translate(calc(var(--impact-distance, 6px) * -1));filter:brightness(1.5)}34%{transform:translate(calc(var(--impact-distance, 6px) * .75))}58%{transform:translate(calc(var(--impact-distance, 6px) * -.35))}to{transform:translate(0);filter:brightness(1)}}@keyframes combat-screen-flash{0%,to{opacity:0}18%{opacity:var(--impact-flash, .15)}}.battle-screen.fight-cleared{pointer-events:none;animation:fight-clear-out .42s cubic-bezier(.4,0,.8,.2) forwards}.battle-screen.fight-cleared .enemy-panel{border-color:#f2cf779e;box-shadow:0 0 0 1px #f2cf771f,0 0 36px #d7a94d29}.route-screen{width:min(100%,840px);gap:14px}.route-header{display:flex;width:100%;align-items:end;justify-content:space-between;gap:20px;padding:0 4px}.route-header h2{margin-top:5px;color:var(--bone);font-family:var(--font-display);font-size:clamp(27px,5vw,38px);font-weight:400;line-height:1}.route-run-status{display:flex;gap:7px}.route-run-status span{padding:6px 9px;border:1px solid var(--line);border-radius:999px;color:var(--bone-dim);font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase}.route-run-status b{color:var(--brass-bright)}.route-panel{padding:18px;border-color:#d7a94d3d;background:radial-gradient(circle at 52% 25%,rgba(111,201,194,.07),transparent 24rem),radial-gradient(circle at 14% 85%,rgba(126,55,52,.13),transparent 19rem),linear-gradient(155deg,#19171d,#0e0e13)}.route-map{position:relative;height:290px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.01) 1px,transparent 1px),radial-gradient(circle at center,rgba(111,201,194,.035),transparent 65%),#08080c8c;background-size:24px 24px,24px 24px,auto,auto}.route-map:before{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(8,8,12,.72),transparent 12%,transparent 88%,rgba(8,8,12,.72)),radial-gradient(circle at 50% 50%,transparent,rgba(8,8,12,.38));content:"";pointer-events:none}.route-path{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.route-path path{fill:none;stroke:#d7a94d45;stroke-dasharray:1.5 1.4;stroke-linecap:round;stroke-width:.7;vector-effect:non-scaling-stroke}.route-node{position:absolute;z-index:2;left:var(--node-x);top:var(--node-y);display:grid;place-items:center;transform:translate(-50%,-50%)}.route-node-icon{display:grid;width:40px;height:40px;place-items:center;border:1px solid var(--line-strong);border-radius:10px;background:#141319;color:var(--bone-dim);font-family:var(--font-display);font-size:15px;box-shadow:0 9px 22px -14px #000,inset 0 0 18px #00000059}.route-node.cleared .route-node-icon{border-color:#76be8175;background:#3052377a;color:#a9e4b1}.route-node.destination .route-node-icon{border-color:var(--brass-bright);background:#5a3f1ab8;color:#ffe39a;box-shadow:0 0 0 4px #d7a94d14,0 0 28px #d7a94d33;animation:destination-pulse .85s ease-in-out infinite alternate}.route-node.elite .route-node-icon{border-color:#6fc9c280}.route-node.boss .route-node-icon{border-color:#d95c48a6;color:var(--ember-bright)}.route-node.locked{opacity:.46}.route-node-copy{position:absolute;top:calc(100% + 9px);display:block;width:116px;color:var(--bone-dim);text-align:center}.route-node-copy strong{display:block;color:var(--bone);font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase}.route-node-copy span{display:block;margin-top:2px;font-size:9px}.route-node-reward{position:absolute;top:-11px;right:-18px;display:grid;width:19px;height:19px;place-items:center;border:1px solid rgba(198,155,240,.55);border-radius:50%;background:#17121d;color:#d6adfa;font-size:8px;box-shadow:0 0 12px #a66fd338}.route-marker{position:absolute;z-index:5;left:var(--from-x);top:var(--from-y);display:grid;width:29px;height:29px;place-items:center;transform:translate(-50%,-145%);border:1px solid var(--brass-bright);border-radius:50%;background:linear-gradient(145deg,#f6d77f,#a8752d);box-shadow:0 8px 18px -9px #000,0 0 20px #f2cf776b;color:var(--ink);animation:route-travel 1.2s cubic-bezier(.55,0,.18,1) forwards}.route-marker span{font-size:10px;animation:marker-turn 1.2s ease-in-out}.route-footer{display:grid;grid-template-columns:.8fr 1fr 1.45fr;align-items:stretch;gap:10px;margin-top:12px}.route-next,.route-relics,.route-arrival{min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:#08080c70}.route-next h3{overflow:hidden;margin-top:4px;color:var(--bone);font-family:var(--font-display);font-size:20px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.route-next p{margin-top:3px;color:var(--bone-dim);font-size:10px}.route-relics>span{color:var(--bone-dim);font-family:var(--font-mono);font-size:7px;letter-spacing:.12em;text-transform:uppercase}.route-relics>div{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.route-relics>div span{padding:4px 6px;border:1px solid rgba(198,155,240,.22);border-radius:999px;color:#d0b7e8;font-family:var(--font-mono);font-size:7px}.route-relics>div .empty{border-color:var(--line);color:#eee6d357}.route-arrival{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;opacity:.32;transform:translateY(5px);transition:opacity .26s ease,transform .26s ease,border-color .26s ease}.route-panel.arrived .route-arrival{transform:translateY(0);border-color:#d7a94d52;opacity:1}.route-discovery{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:8px}.route-discovery-icon{display:grid;width:28px;height:28px;place-items:center;transform:rotate(45deg);border:1px solid var(--brass-dark);border-radius:7px;color:var(--brass-bright)}.route-discovery.reward .route-discovery-icon{border-color:#c69bf08c;color:#d6adfa}.route-discovery>span:last-child{color:var(--bone-dim);font-size:9px;line-height:1.35}.route-discovery strong{display:block;margin-bottom:2px;color:var(--bone);font-family:var(--font-mono);font-size:8px;letter-spacing:.07em;text-transform:uppercase}.route-action{min-width:155px;white-space:nowrap}@keyframes fight-clear-out{0%{opacity:1;transform:scale(1)}45%{opacity:1;transform:scale(1.01);filter:brightness(1.25)}to{opacity:0;transform:translateY(-10px) scale(.985);filter:brightness(.8)}}@keyframes route-travel{0%{left:var(--from-x);top:var(--from-y);opacity:.7}14%{opacity:1}to{left:var(--to-x);top:var(--to-y);opacity:1}}@keyframes marker-turn{0%{transform:rotate(0)}to{transform:rotate(405deg)}}@keyframes destination-pulse{0%{transform:scale(.96)}to{transform:scale(1.06)}}.choice-screen{width:min(100%,620px);align-items:stretch}.choice-header{margin-bottom:8px;text-align:center}.choice-header h2,.result-screen h2{margin-top:6px;color:var(--bone);font-family:var(--font-display);font-size:clamp(28px,7vw,42px);font-weight:400}.relic-list{display:grid;gap:9px}.relic-card{position:relative;display:grid;width:100%;min-height:82px;grid-template-columns:42px 1fr auto;align-items:center;gap:13px;padding:13px 16px;border-color:var(--line);text-align:left;text-transform:none}.relic-card:before{display:grid;width:36px;height:36px;place-items:center;transform:rotate(45deg);border:1px solid var(--brass-dark);border-radius:8px;color:var(--brass-bright);content:"◆"}.relic-card:after{color:var(--bone-dim);content:"›";font-family:var(--font-display);font-size:28px}.relic-copy strong{color:var(--brass-bright);font-family:var(--font-display);font-size:18px;font-weight:400;letter-spacing:0}.relic-copy span{display:block;margin-top:4px;color:var(--bone-dim);font-family:var(--font-ui);font-size:12px;font-weight:400;letter-spacing:0;line-height:1.4}.result-screen{isolation:isolate;width:min(100%,790px);align-items:stretch;gap:16px;overflow:hidden;padding:clamp(22px,5vw,40px);border:1px solid rgba(215,169,77,.34);border-radius:26px;background:radial-gradient(circle at 84% 0%,rgba(215,169,77,.2),transparent 22rem),radial-gradient(circle at 0% 100%,rgba(111,201,194,.08),transparent 24rem),linear-gradient(145deg,#2a191bfa,#0d0d12fc 58%);box-shadow:0 38px 90px -42px #000,inset 0 1px #ffffff0f}.result-screen.defeat{border-color:#d95c4857;background:radial-gradient(circle at 84% 0%,rgba(217,92,72,.2),transparent 22rem),radial-gradient(circle at 0% 100%,rgba(108,44,48,.17),transparent 25rem),linear-gradient(145deg,#2a1417fa,#0c0c11fc 58%)}.result-screen:before{top:11px;right:11px;bottom:11px;left:11px;z-index:-1;border-radius:18px;background:linear-gradient(90deg,transparent 49.8%,rgba(215,169,77,.035) 50%,transparent 50.2%),linear-gradient(transparent 49.8%,rgba(215,169,77,.03) 50%,transparent 50.2%);background-size:54px 54px}.result-screen.defeat:before{border-color:#d95c481f;background:linear-gradient(90deg,transparent 49.8%,rgba(217,92,72,.03) 50%,transparent 50.2%),linear-gradient(transparent 49.8%,rgba(217,92,72,.026) 50%,transparent 50.2%);background-size:54px 54px}.result-hero{position:relative;z-index:2;display:grid;grid-template-columns:108px minmax(0,1fr);align-items:center;gap:24px;min-height:118px;padding:2px 8px 4px}.result-sigil{width:92px;height:92px;border-color:#f2cf779e;border-radius:22px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.12),transparent 28%),linear-gradient(145deg,#d7a94d30,#121116f5);color:var(--brass-bright);box-shadow:0 22px 36px -23px #f2cf778f,inset 0 0 0 7px #d7a94d0b}.result-sigil span{transform:rotate(-45deg);font-family:var(--font-display);font-size:36px;line-height:1}.result-sigil b{position:absolute;right:-12px;bottom:-8px;min-width:44px;padding:5px 7px;transform:rotate(-45deg);border:1px solid var(--brass-dark);border-radius:5px;background:#171319;color:var(--brass-bright);font-family:var(--font-mono);font-size:8px;letter-spacing:.16em;text-align:center}.result-screen.defeat .result-sigil{border-color:#d95c488c;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.08),transparent 28%),linear-gradient(145deg,#d95c4829,#120f14f5);color:var(--ember-bright);box-shadow:0 22px 36px -23px #d95c4880,inset 0 0 0 7px #d95c4809}.result-screen.defeat .result-sigil b{border-color:#d95c4880;color:var(--ember-bright)}.result-copy{min-width:0}.result-copy h2{margin-top:6px;font-size:clamp(34px,6vw,52px);line-height:.98}.result-copy p{max-width:520px;margin-top:11px;color:var(--bone-dim);font-size:13px;line-height:1.55}.score-card{position:relative;z-index:2;width:100%;padding:7px 18px 17px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.025),transparent 42%),#07070bb8;box-shadow:inset 0 1px #ffffff06}.score-card-head{display:flex;align-items:center;justify-content:space-between;min-height:35px;border-bottom:1px solid var(--line);color:var(--bone-dim);font-family:var(--font-mono);font-size:8px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.score-row{position:relative;display:grid;min-height:47px;grid-template-columns:28px minmax(0,1fr) auto;grid-template-rows:1fr 3px;align-items:center;gap:0 10px;border-bottom:1px solid rgba(231,211,169,.07);opacity:0;transform:translateY(6px)}.result-ready .score-row{animation:ledger-row-in .36s cubic-bezier(.2,.8,.2,1) var(--row-delay) both}.result-reduced-motion .score-row{opacity:1;transform:none}.score-icon{display:grid;width:23px;height:23px;place-items:center;border:1px solid rgba(215,169,77,.2);border-radius:6px;background:#d7a94d0a;color:var(--brass);font-size:11px}.defeat .score-icon{border-color:#d95c482e;background:#d95c4809;color:var(--ember)}.score-label{color:var(--bone-dim);font-size:12px}.score-value{min-width:78px;color:var(--bone);font-family:var(--font-mono);font-size:14px;font-variant-numeric:tabular-nums;text-align:right}.score-value.modifier{color:var(--aether-bright)}.score-meter{grid-column:2 / 4;align-self:start;height:2px;overflow:hidden;border-radius:99px;background:#ffffff0b}.score-meter i{display:block;width:var(--score-share);height:100%;transform:scaleX(0);transform-origin:left;border-radius:inherit;background:linear-gradient(90deg,var(--brass-dark),var(--brass-bright));box-shadow:0 0 9px #d7a94d4d}.defeat .score-meter i{background:linear-gradient(90deg,#642e34,var(--ember));box-shadow:0 0 9px #d95c4840}.result-ready .score-meter i{animation:ledger-meter-in .62s cubic-bezier(.2,.8,.2,1) calc(var(--row-delay) + .1s) both}.result-reduced-motion .score-meter i{transform:scaleX(1)}.score-total{display:flex;min-height:79px;align-items:center;justify-content:space-between;gap:20px;padding-top:14px;font-family:var(--font-display);font-size:20px}.score-total span{display:flex;flex-direction:column;gap:3px}.score-total small{color:var(--bone-dim);font-family:var(--font-mono);font-size:7px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.score-total strong{display:grid;min-width:168px;min-height:54px;place-items:center end;padding:6px 14px;border:1px solid rgba(215,169,77,.22);border-radius:9px;background:repeating-linear-gradient(90deg,transparent 0 31px,rgba(215,169,77,.045) 31px 32px),#d7a94d0b;color:var(--brass-bright);font-family:var(--font-mono);font-size:31px;font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:.04em;line-height:1;box-shadow:inset 0 0 18px #d7a94d09}.defeat .score-total strong{border-color:#d95c4838;background:repeating-linear-gradient(90deg,transparent 0 31px,rgba(217,92,72,.04) 31px 32px),#d95c4809;color:var(--ember-bright)}.score-total strong.settled{animation:total-settle .34s cubic-bezier(.2,.8,.2,1)}.result-relics{position:relative;z-index:2;display:flex;align-items:center;gap:12px;min-height:27px;padding:0 3px}.result-relics>span{flex:0 0 auto;color:var(--bone-dim);font-family:var(--font-mono);font-size:7px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.result-relics>div{display:flex;flex-wrap:wrap;gap:6px}.result-relics i{padding:4px 8px;border:1px solid rgba(215,169,77,.16);border-radius:999px;background:#d7a94d09;color:var(--bone);font-family:var(--font-mono);font-size:8px;font-style:normal}.result-relics.empty i{color:var(--bone-dim)}.result-actions{position:relative;z-index:2;display:flex;justify-content:flex-end;gap:8px}.result-actions .btn{min-width:150px}.result-atmosphere{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;pointer-events:none}.result-atmosphere i{position:absolute;left:var(--particle-x);bottom:-34px;width:var(--particle-size);height:var(--particle-size);transform:rotate(45deg);border:1px solid rgba(242,207,119,.58);border-radius:4px;background:#d7a94d1f;opacity:0}.result-atmosphere i:nth-child(1){--particle-x: 4%;--particle-size: 10px;--particle-delay: 80ms}.result-atmosphere i:nth-child(2){--particle-x: 13%;--particle-size: 16px;--particle-delay: .42s}.result-atmosphere i:nth-child(3){--particle-x: 26%;--particle-size: 8px;--particle-delay: .7s}.result-atmosphere i:nth-child(4){--particle-x: 42%;--particle-size: 13px;--particle-delay: .24s}.result-atmosphere i:nth-child(5){--particle-x: 57%;--particle-size: 7px;--particle-delay: .82s}.result-atmosphere i:nth-child(6){--particle-x: 69%;--particle-size: 15px;--particle-delay: .52s}.result-atmosphere i:nth-child(7){--particle-x: 79%;--particle-size: 9px;--particle-delay: .14s}.result-atmosphere i:nth-child(8){--particle-x: 89%;--particle-size: 12px;--particle-delay: .66s}.result-atmosphere i:nth-child(9){--particle-x: 96%;--particle-size: 7px;--particle-delay: .33s}.victory.result-ready .result-atmosphere i{animation:result-token-rise 1.9s cubic-bezier(.2,.8,.2,1) var(--particle-delay) both}.defeat .result-atmosphere i{top:-28px;bottom:auto;border-color:#ff826780;border-radius:1px;background:#d95c481a}.defeat.result-ready .result-atmosphere i{animation:result-shard-fall 1.8s cubic-bezier(.3,.65,.4,1) var(--particle-delay) both}@keyframes ledger-row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes ledger-meter-in{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes total-settle{0%{transform:scale(1)}45%{transform:scale(1.045)}to{transform:scale(1)}}@keyframes result-token-rise{0%{opacity:0;transform:translateY(0) rotate(45deg) scale(.6)}18%{opacity:.7}to{opacity:0;transform:translateY(-620px) rotate(240deg) scale(1)}}@keyframes result-shard-fall{0%{opacity:0;transform:translateY(0) rotate(45deg) scale(.7)}18%{opacity:.65}to{opacity:0;transform:translateY(620px) rotate(260deg) scale(1)}}.tutorial-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:grid;padding:20px;place-items:center;background:radial-gradient(circle at center,rgba(79,45,37,.25),transparent 48%),#050508d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .18s ease}.tutorial-overlay.open{opacity:1}.tutorial-overlay.closing{animation:tutorial-overlay-out .18s ease forwards}.tutorial-dialog{position:relative;display:grid;width:min(100%,760px);max-height:min(720px,calc(100vh - 32px));grid-template-rows:auto auto minmax(250px,1fr) auto;gap:17px;overflow:auto;padding:26px;border:1px solid rgba(215,169,77,.34);border-radius:22px;background:radial-gradient(circle at 50% 0%,rgba(215,169,77,.1),transparent 22rem),linear-gradient(155deg,#20191bfa,#0e0e13fc 62%);box-shadow:0 36px 100px -34px #000,inset 0 1px #ffffff0a;transform:translateY(14px) scale(.985);transition:transform .24s cubic-bezier(.2,.8,.2,1)}.tutorial-overlay.open .tutorial-dialog{transform:translateY(0) scale(1)}.tutorial-dialog:before{position:absolute;top:9px;right:9px;bottom:9px;left:9px;border:1px solid rgba(215,169,77,.08);border-radius:15px;content:"";pointer-events:none}.tutorial-close{position:absolute;top:15px;right:15px;z-index:2;display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--line);border-radius:50%;background:#08080cad;color:var(--bone-dim);cursor:pointer;font-size:20px;line-height:1}.tutorial-close:hover{border-color:var(--brass-dark);color:var(--bone)}.tutorial-progress{display:grid;width:min(240px,44vw);grid-template-columns:repeat(4,1fr);gap:7px}.tutorial-progress span{height:3px;border-radius:999px;background:#ffffff17;transition:background .18s ease,box-shadow .18s ease}.tutorial-progress span.complete{background:var(--brass-dark)}.tutorial-progress span.active{background:var(--brass-bright);box-shadow:0 0 10px #f2cf7759}.tutorial-copy{max-width:610px}.tutorial-copy h2{margin-top:7px;color:var(--bone);font-family:var(--font-display);font-size:clamp(29px,5vw,42px);font-weight:400}.tutorial-copy p{max-width:570px;margin-top:8px;color:var(--bone-dim);font-size:14px;line-height:1.55}.tutorial-stage{position:relative;display:grid;min-height:250px;place-items:center;overflow:hidden;padding:24px;border:1px solid var(--line);border-radius:16px;background:radial-gradient(circle at center,rgba(91,35,42,.19),transparent 66%),linear-gradient(145deg,#30191ec2,#0c0c11e6)}.tutorial-stage:before{position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:1px solid rgba(215,169,77,.07);border-radius:11px;content:"";pointer-events:none}.tutorial-stage.changing>*{animation:tutorial-stage-in .28s cubic-bezier(.2,.8,.2,1) both}.tutorial-dice-row{display:flex;align-items:center;justify-content:center;gap:15px}.tutorial-die{width:68px;height:68px;cursor:default;pointer-events:none}.tutorial-demo-caption{align-self:start;margin-top:-12px;color:var(--bone-dim);font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-align:center;text-transform:uppercase}.tutorial-pointer{display:block;margin-bottom:4px;color:var(--brass-bright);font-size:20px;animation:tutorial-pointer .85s ease-in-out infinite alternate}.tutorial-flow{display:flex;align-items:center;justify-content:center;gap:25px}.tutorial-arrow{color:var(--brass-bright);font-family:var(--font-display);font-size:40px;animation:tutorial-arrow .85s ease-in-out infinite alternate}.tutorial-slot{width:210px;min-height:132px;pointer-events:none}.tutorial-combo-slot{width:min(100%,310px);min-height:150px;pointer-events:none}.tutorial-combo-slot .slot-well{min-height:64px}.tutorial-mini-die{width:38px;height:38px;padding:6px}.tutorial-mini-die .pip{width:5px;height:5px}.tutorial-combo-notes{display:grid;align-self:stretch;gap:7px;margin-left:20px}.tutorial-combo-notes span{padding:8px 10px;border-left:2px solid var(--brass-dark);background:#08080c4d;color:var(--bone-dim);font-size:11px}.tutorial-combo-notes b{color:var(--brass-bright);font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase}.tutorial-planning-tools{display:flex;justify-content:center;gap:7px;margin-top:10px}.tutorial-planning-tools span{padding:6px 9px;border:1px solid var(--line);border-radius:7px;color:var(--bone-dim);font-family:var(--font-mono);font-size:8px;text-transform:uppercase}.tutorial-help-layout{display:grid;width:min(100%,560px);grid-template-columns:.8fr 1.2fr;align-items:stretch;gap:12px}.tutorial-help-card{display:grid;align-content:center;gap:7px;padding:14px;border:1px solid rgba(118,190,129,.35);border-radius:11px;background:#76be810b}.tutorial-help-card b{color:#9ee1a7;font-family:var(--font-display);font-size:20px;font-weight:400}.tutorial-help-card span,.tutorial-help-card small{color:var(--bone-dim);font-size:10px}.tutorial-resolution-scene{display:grid;width:min(100%,700px);min-height:170px;place-items:center;gap:12px;padding:20px;border:1px solid rgba(217,92,72,.3);border-radius:13px;background:radial-gradient(circle,rgba(217,92,72,.07),transparent 60%),#08080c80}.tutorial-formula{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}.tutorial-formula>i{color:#eee6d357;font-style:normal}.tutorial-formula>strong{font-family:var(--font-display);font-size:30px;font-weight:400}.tutorial-resolution-scene>small{color:var(--bone-dim);font-family:var(--font-mono);font-size:8px;letter-spacing:.05em;text-transform:uppercase}.tutorial-threat{display:flex;width:100%;align-items:center;justify-content:center;gap:22px}.tutorial-threat .intent-card{min-width:150px;min-height:110px;border:1px solid rgba(217,92,72,.24);border-radius:12px}.tutorial-versus{color:var(--bone-dim);font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.tutorial-vital{width:230px}.tutorial-vital .effect-chip{display:inline-block;margin-top:10px}.tutorial-actions{display:grid;grid-template-columns:120px 1fr 170px;align-items:center;gap:10px}.tutorial-count{color:var(--bone-dim);font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-align:center}@keyframes tutorial-stage-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tutorial-overlay-out{to{opacity:0}}@keyframes tutorial-pointer{to{transform:translateY(-4px)}}@keyframes tutorial-arrow{to{transform:translate(5px)}}.combo-toast{position:fixed;top:max(18px,env(safe-area-inset-top));left:50%;z-index:50;padding:9px 18px;transform:translate(-50%);border:1px solid rgba(242,207,119,.6);border-radius:999px;background:#111117f0;box-shadow:0 14px 34px -20px #000;color:var(--brass-bright);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;opacity:0;pointer-events:none;text-transform:uppercase;transition:opacity .18s ease,transform .18s ease}.float-number{position:fixed;z-index:100;font-family:var(--font-display);font-size:22px;font-weight:700;pointer-events:none;text-shadow:0 2px 8px #000;animation:float-up .9s ease forwards}.float-number.damage{color:var(--ember-bright)}.float-number.heal{color:#9ee1a7}.float-number.block{color:var(--aether-bright)}.float-number.charge{color:#a6eee4}.float-number.combo{color:var(--brass-bright);font-size:26px}@keyframes screen-in{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes float-up{0%{opacity:1;transform:translateY(0) scale(.9)}to{opacity:0;transform:translateY(-46px) scale(1.08)}}@keyframes slot-pulse{0%{opacity:.2}to{opacity:.75}}@keyframes die-slot-in{0%{opacity:0;transform:translateY(-8px) scale(.82) rotate(-5deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes preview-die{0%{transform:translateY(0) scale(.96)}to{transform:translateY(-2px) scale(1)}}@keyframes combo-chip-in{0%{opacity:0;transform:translateY(3px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@media (min-width: 900px){body{font-size:15px}.menu-screen{width:min(100%,590px)}.brand-lockup p{max-width:410px;font-size:15px}.menu-rule,.stat span{font-size:9px}.battle-screen{width:min(100%,1100px)}.route-screen{width:min(100%,960px)}.route-header h2{font-size:42px}.route-run-status span{font-size:10px}.choice-screen{width:min(100%,700px)}.relic-copy strong{font-size:21px}.relic-copy span{font-size:14px}.tutorial-dialog{width:min(100%,850px)}.arena-heading strong{font-size:21px}.eyebrow,.section-label,.selection-readout,.turn-state,.fight-counter,.enemy-kicker,.bar-row,.roll-metrics,.slot-label,.vital-name,.player-status-head{font-size:11px}.enemy-tier,.slot-preview,.charge-state,.status-seal,.effect-chip{font-size:9px}.enemy-name{font-size:34px}.intent-card span:first-child{font-size:10px}.intent{font-size:27px}.btn{min-height:47px;font-size:12px}.slot-icon{width:32px;height:32px;font-size:20px}.vital-heading strong{font-size:15px}.score-card-head{font-size:9px}.score-label{font-size:14px}.score-value{font-size:16px}.result-copy p{font-size:15px}.result-relics>span,.score-total small{font-size:8px}.result-relics i{font-size:9px}}@media (min-width: 1440px) and (min-height: 850px){body{font-size:17px}#app{padding:34px 42px}.menu-screen{width:min(100%,680px);padding:54px}.brand-lockup h1{font-size:64px}.brand-lockup p{max-width:470px;font-size:17px}.battle-screen{width:min(100%,1380px);gap:14px}.arena-heading strong{font-size:25px}.eyebrow,.section-label,.selection-readout,.turn-state,.fight-counter,.enemy-kicker,.bar-row,.roll-metrics,.slot-label,.vital-name,.player-status-head{font-size:13px}.enemy-tier,.slot-preview,.charge-state,.status-seal,.effect-chip,.slot-combo{font-size:10px}.enemy-panel{min-height:176px;padding:21px 27px}.enemy-area{grid-template-columns:138px 1fr auto;gap:24px}.enemy-portrait{width:132px;height:132px}.enemy-portrait-art{width:113px;height:113px}.enemy-sprite{width:117px;height:117px}.enemy-name{font-size:41px}.intent-card{min-width:132px;padding:15px 20px}.intent-card span:first-child{font-size:11px}.intent{font-size:32px}.dice-panel{padding:22px 27px 20px}.dice-tray{min-height:108px;gap:20px;padding:13px 0 8px}.die{width:78px;height:78px;padding:12px;border-radius:17px}.pip{width:9px;height:9px}.btn{min-height:52px;padding:12px 22px;font-size:13px}.actions-panel{padding:16px}.tactical-console{grid-template-columns:minmax(0,1fr) 300px;gap:16px}.action-deck{padding:10px 17px 10px 9px}.slots{gap:11px;margin-top:13px}.slot{gap:10px;padding:13px;border-radius:14px}.slot-heading{grid-template-columns:36px minmax(0,1fr);gap:9px}.slot-icon{width:36px;height:36px;font-size:22px}.slot-well{min-height:60px}.mini-die{width:29px;height:29px}.player-status{gap:11px;padding:10px 10px 10px 0}.vital-card{padding:12px 13px}.vital-heading strong{font-size:17px}.combat-beat{min-width:260px;padding:14px 22px 15px}.combat-beat span{font-size:9px}.combat-beat strong{font-size:22px}.route-screen{width:min(100%,1180px)}.choice-screen{width:min(100%,820px)}.tutorial-dialog{width:min(100%,980px)}.result-screen{width:min(100%,920px)}}@media (min-width: 2200px) and (min-height: 1200px){body{font-size:18px}.battle-screen{width:min(100%,1640px);gap:17px}.arena-heading strong{font-size:28px}.eyebrow,.section-label,.selection-readout,.turn-state,.fight-counter,.enemy-kicker,.bar-row,.roll-metrics,.slot-label,.vital-name,.player-status-head{font-size:14px}.enemy-panel{min-height:198px;padding:24px 32px}.enemy-area{grid-template-columns:154px 1fr auto;gap:28px}.enemy-portrait{width:148px;height:148px}.enemy-portrait-art{width:126px;height:126px}.enemy-sprite{width:130px;height:130px}.enemy-name{font-size:46px}.intent-card{min-width:150px}.intent{font-size:36px}.dice-panel{padding:25px 32px 23px}.dice-tray{min-height:124px;gap:24px}.die{width:88px;height:88px;padding:14px}.pip{width:10px;height:10px}.actions-panel{padding:19px}.tactical-console{grid-template-columns:minmax(0,1fr) 340px;gap:19px}.slot{padding:15px}.slot-well{min-height:70px}.menu-screen{width:min(100%,760px)}.route-screen{width:min(100%,1380px)}.choice-screen{width:min(100%,920px)}.tutorial-dialog{width:min(100%,1100px)}.result-screen{width:min(100%,1040px)}}@media (max-width: 620px){#app{padding:14px 12px}.screen:after{display:none}.enemy-panel,.dice-panel,.actions-panel{padding-right:14px;padding-left:14px}.enemy-area{grid-template-columns:76px 1fr auto;gap:10px}.arena-heading{flex-wrap:wrap;gap:9px}.run-progress{order:3;width:100%}.enemy-portrait{width:82px;height:82px}.enemy-portrait-art{width:70px;height:70px}.enemy-sprite{width:72px;height:72px}.enemy-portrait-mark{right:-2px;bottom:3px;width:18px;height:18px}.intent-card{min-width:68px;padding:8px}.intent{max-width:82px;font-size:15px}.slots,.slots.has-spell{grid-template-columns:repeat(4,minmax(0,1fr))}.slots.has-spell .slot:last-child{grid-column:2 / span 2}.tactical-console{grid-template-columns:1fr;gap:9px}.action-deck{padding:4px 3px 10px;border-right:0;border-bottom:1px solid var(--line)}.player-status{display:grid;grid-template-columns:1fr;gap:8px;padding:0 3px 3px}.status-vitals{grid-template-columns:repeat(2,minmax(0,1fr))}.end-turn-btn{width:100%}.route-header{align-items:center}.route-run-status{flex-direction:column;gap:4px}.route-run-status span{padding:4px 7px;text-align:right}.route-panel{padding:12px}.route-map{height:235px}.route-node-icon{width:34px;height:34px;border-radius:9px;font-size:13px}.route-node-copy{display:none}.route-node-reward{right:-14px}.route-marker{width:25px;height:25px}.route-footer{grid-template-columns:repeat(2,minmax(0,1fr))}.route-arrival{grid-column:1 / -1}.tutorial-overlay{padding:10px}.tutorial-dialog{max-height:calc(100vh - 20px);gap:12px;padding:22px 16px 16px;border-radius:17px}.tutorial-copy h2{font-size:28px}.tutorial-copy p{font-size:12px}.tutorial-stage{min-height:235px;padding:16px 10px}.tutorial-dice-row{gap:8px}.tutorial-die{width:53px;height:53px}.tutorial-flow{gap:10px}.tutorial-slot{width:160px}.tutorial-combo-slot{width:190px}.tutorial-combo-notes{gap:4px;margin-left:8px}.tutorial-combo-notes span{padding:5px 7px;font-size:9px}.tutorial-threat{gap:8px}.tutorial-threat .intent-card{min-width:105px;min-height:94px}.tutorial-vital{width:170px}.tutorial-actions{grid-template-columns:88px 1fr 140px}}@media (max-width: 430px){.menu-screen,.result-screen{padding:25px 18px}.brand-die{width:66px;height:66px}.brand-lockup{margin-bottom:22px}.enemy-kicker{display:none}.enemy-meta{margin-bottom:5px}.enemy-name{margin-bottom:8px;font-size:18px}.bar-row{grid-template-columns:52px 1fr 42px}.dice-tray{gap:7px}.roll-metrics{gap:8px}.roll-metrics span+span:before{margin-right:4px}.die{width:min(14vw,56px);height:min(14vw,56px);padding:8px;border-radius:12px}.slots{gap:5px}.slot{min-height:91px;gap:5px;padding:6px 4px}.slot-heading{grid-template-columns:1fr;gap:3px;text-align:center}.slot-icon{width:23px;height:23px;justify-self:center;font-size:15px}.slot-label{font-size:7px}.slot-preview{font-size:6px}.slot-well{min-height:27px}.slot-empty{font-size:6px}.mini-die{width:24px;height:24px;padding:4px;border-radius:6px}.mini-die .pip{width:3px;height:3px}.slot-dice{gap:3px;padding:3px}.slot-combo{padding:2px 3px;font-size:5px}.vital-card{padding:7px 8px}.vital-heading{grid-template-columns:18px 1fr auto;gap:4px}.vital-name{font-size:7px}.vital-heading strong{font-size:10px}.charge-state{font-size:6px}.route-screen{gap:10px}.route-header{align-items:flex-start}.route-header h2{font-size:26px}.route-run-status{flex:0 0 auto}.route-map{height:205px}.route-node-icon{width:30px;height:30px;font-size:12px}.route-node-reward{top:-9px;right:-12px;width:16px;height:16px;font-size:7px}.route-footer{grid-template-columns:1fr;gap:7px;margin-top:8px}.route-next,.route-relics,.route-arrival{padding:9px 10px}.route-next,.route-relics{display:flex;align-items:center;justify-content:space-between;gap:10px}.route-next .eyebrow,.route-next p{display:none}.route-next h3{margin:0;font-size:17px}.route-relics>div{justify-content:flex-end;margin-top:0}.route-arrival{grid-column:auto;grid-template-columns:1fr}.route-action{width:100%}.result-actions{width:100%;flex-direction:column-reverse}.result-screen{gap:13px;padding:20px 16px;border-radius:20px}.result-hero{grid-template-columns:74px minmax(0,1fr);gap:15px;min-height:88px;padding-right:4px;padding-left:4px}.result-sigil{width:66px;height:66px;border-radius:16px}.result-sigil span{font-size:27px}.result-sigil b{right:-9px;bottom:-7px;min-width:39px;font-size:7px}.result-copy h2{font-size:clamp(29px,9vw,38px)}.result-copy p{margin-top:7px;font-size:11px}.score-card{padding-right:12px;padding-left:12px}.score-row{grid-template-columns:26px minmax(0,1fr) auto;column-gap:7px}.score-label{font-size:10px}.score-value{min-width:52px;font-size:12px}.score-total{min-height:68px;font-size:17px}.score-total strong{min-width:126px;min-height:48px;font-size:25px}.result-relics{align-items:flex-start;flex-direction:column;gap:6px}.result-actions .btn{width:100%}}@media (max-height: 720px) and (min-width: 621px){#app{padding-top:12px;padding-bottom:12px}.battle-screen{gap:7px}.enemy-panel{min-height:118px;padding-top:10px;padding-bottom:10px}.enemy-portrait{width:96px;height:96px}.enemy-portrait-art{width:82px;height:82px}.enemy-sprite{width:84px;height:84px}.dice-panel{padding-top:12px;padding-bottom:10px}.dice-tray{min-height:68px;padding:5px 0 2px}.die{width:62px;height:62px;padding:9px}.actions-panel{padding-top:12px;padding-bottom:12px}.slot{min-height:88px}.tactical-console{grid-template-columns:minmax(0,1fr) 246px}.vital-card{padding-top:7px;padding-bottom:7px}.player-status{gap:6px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
