@font-face{font-family:Pixelify;src:url(../fonts/pixelify-latin.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}:root{--bg: #13131c;--surface: #1c1c27;--surface-raised: #242431;--surface-hover: #2c2b39;--line: #353441;--text: #f3ece3;--muted: #b1aabd;--subtle: #928a9e;--accent: #efb679;--accent-hover: #f8cb99;--accent-ink: #302018;--success: #9ccfb5;--danger: #f19a9e;--energy: #b6a1e5;--focus: #f9d69f;--font-body: Arial, Helvetica, sans-serif;--font-game: Pixelify, Arial, sans-serif;--text-sm: .875rem;--text-body: 1rem;--text-lg: 1.25rem;--text-title: 1.5rem;--text-display: 2.5rem;--text-hero: 4rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;font-family:var(--font-body);font-size:16px;color:var(--text);background:var(--bg);color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-width:280px}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-underline-offset:4px}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:4px}main:focus{outline:none}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}h1,h2{font-family:var(--font-game);font-weight:600;line-height:1.1}h3{font-size:var(--text-body);font-weight:600;line-height:1.4}p{line-height:1.6;text-wrap:pretty}strong{font-weight:600}svg{flex-shrink:0}img{max-width:100%}fieldset{margin:0;padding:0;border:0}progress{display:block;border:0;appearance:none;-webkit-appearance:none;background:var(--line);overflow:hidden;width:100%;border-radius:1px}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent)}progress::-moz-progress-bar{background:var(--accent)}button,a{transition:background-color .15s,color .15s,border-color .15s}button:disabled{opacity:.5}.muted{color:var(--muted)}.small{font-size:var(--text-sm);line-height:1.5}.app{max-width:1280px;padding:0 48px;margin:auto}.skip-link{position:fixed;inset:8px auto auto 8px;background:var(--accent);color:var(--accent-ink);padding:12px 20px;z-index:100;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.button{min-height:48px;padding:12px 22px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border-radius:5px;font-size:var(--text-sm);font-weight:600;line-height:1.4;text-decoration:none}.primary{background:var(--accent);color:var(--accent-ink)}.secondary{background:var(--surface-raised);color:var(--text);border:1px solid var(--line)}.text-button{background:transparent;color:var(--muted);padding-inline:12px}.icon-button{width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border-radius:4px;color:var(--muted)}.inline-link{display:inline-flex;gap:8px;align-items:center;color:var(--accent)}.header{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;gap:12px;align-items:center;background:transparent;padding:0;text-align:start}.brand img{image-rendering:pixelated;flex-shrink:0}.brand>span{display:flex;flex-direction:column;gap:4px}.brand strong{font-size:var(--text-lg);font-family:var(--font-game);font-weight:700;line-height:1.1}.brand>span>span{font-size:var(--text-sm);color:var(--muted)}.header-utilities{display:flex;align-items:center;gap:4px}.utility-divider{height:22px;width:1px;background:var(--line);margin:0 12px}.wallet-button{min-height:42px;display:flex;align-items:center;gap:9px;background:var(--surface-raised);border:1px solid var(--line);border-radius:5px;padding:8px 14px;font-size:var(--text-sm)}.main-nav{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);min-height:56px;gap:12px}.nav-links{display:flex;align-self:stretch;gap:28px}.nav-links button{display:flex;align-items:center;gap:9px;font-size:var(--text-sm);color:var(--muted);background:transparent;padding:0 4px;position:relative;min-height:50px}.nav-links .active{color:var(--accent)}.nav-links .active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent)}.local-save{display:flex;gap:6px;align-items:center;color:var(--muted)}.local-save svg{color:var(--success)}main{padding-top:28px}.save-warning{padding:12px 16px;background:#3a2931;border:1px solid #805057;border-radius:4px;font-size:var(--text-sm);display:flex;align-items:center;gap:12px;margin-bottom:20px}.save-warning .icon-button{flex-shrink:0;margin-inline-start:auto}.sprite{display:block;object-fit:contain;image-rendering:pixelated;user-select:none}.menu-arena{position:relative;isolation:isolate;min-height:436px;display:flex;align-items:center;background-color:#271f2e;background-image:url(../art/arena.svg);background-size:cover;background-position:center;border:1px solid #51414e;border-radius:5px}.arena-shade{position:absolute;inset:0;background:linear-gradient(90deg,#19171f,#19171ff5 29%,#19171f93 48%,#19171f18 74%);z-index:-1;border-radius:4px}.menu-copy{padding:36px 48px 64px;position:relative;z-index:2}.menu-copy h1{font-size:var(--text-hero);line-height:1;letter-spacing:-.035em}.menu-copy h1 span{color:var(--accent)}.menu-copy p{font-size:var(--text-body);line-height:1.65;color:#d3c8d6;margin-top:20px}.play-now{margin-top:28px;min-width:211px;font-size:var(--text-body)}.play-now>svg:last-child{margin-inline-start:auto}.play-note{display:flex;align-items:center;gap:7px;font-size:var(--text-sm);color:var(--muted);margin-top:14px}.status-dot{display:inline-block;width:6px;height:6px;background:var(--success);border-radius:50%;flex-shrink:0}.menu-fighters{position:absolute;inset:70px 4% 55px 45%;display:flex;align-items:center;justify-content:center;gap:16px}.preview-fighter{position:relative;flex:1;max-width:220px;align-self:center;display:flex;flex-direction:column;align-items:center}.preview-fighter .sprite{position:relative;z-index:1;width:230px;height:auto;max-width:140%;filter:drop-shadow(0 10px 0 #16101b60)}.preview-nyx .sprite{transform:scaleX(-1)}.fighter-flair{position:absolute;width:80%;height:15%;bottom:16%;background:#bc765d24;border-radius:50%;filter:blur(10px)}.preview-nyx .fighter-flair{background:#a079db40}.preview-name{font-family:var(--font-game);font-size:var(--text-title);color:#f8dcc2;background:#241d29d9;line-height:1.2;padding:4px 12px;border-radius:2px;z-index:2}.versus{font-family:var(--font-game);color:#e9b48b;font-size:var(--text-display);font-weight:600;transform:rotate(-10deg);margin-top:-34px}.arena-caption{position:absolute;inset:auto 22px 16px;display:flex;align-items:center;justify-content:space-between;color:#c5b5c7;font-size:var(--text-sm);gap:12px}.arena-caption>span{display:flex;align-items:center;gap:7px}.arena-caption button{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:var(--text-sm);background:#211b28;padding:6px 9px;min-height:32px;border-radius:3px}.scene-corner{position:absolute;width:9px;height:9px;border-color:#b48770;border-style:solid;pointer-events:none}.top-left{inset:5px auto auto 5px;border-width:2px 0 0 2px}.top-right{inset:5px 5px auto auto;border-width:2px 2px 0 0}.bottom-left{inset:auto auto 5px 5px;border-width:0 0 2px 2px}.bottom-right{inset:auto 5px 5px auto;border-width:0 2px 2px 0}.warrior-preview{margin-top:32px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-heading h2{font-size:var(--text-title)}.section-heading p{margin-top:5px}.warrior-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.preview-card{display:flex;align-items:center;text-align:start;padding:12px 18px 12px 8px;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:5px;min-width:0;position:relative}.preview-card>.sprite{width:88px;height:88px;flex-shrink:0}.preview-card>svg:last-child{color:var(--subtle);margin-inline-start:auto}.preview-details{display:flex;flex-direction:column;gap:5px}.preview-details>strong{font-family:var(--font-game);font-size:var(--text-title);color:var(--accent)}.mochi .preview-details>strong{color:var(--success)}.nyx .preview-details>strong{color:var(--energy)}.character-category{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-sm);color:#d2c5b6;margin-top:3px}.progress-strip{display:flex;align-items:center;gap:18px;padding:24px 0;margin-top:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.level-emblem{color:var(--accent);position:relative;display:flex;align-items:center;justify-content:center;width:42px;height:44px;flex-shrink:0}.level-emblem>svg{position:absolute;width:44px;height:44px;stroke-width:1}.level-emblem>span{font-family:var(--font-game);font-size:var(--text-lg);margin-top:-3px}.level-progress{max-width:440px;flex:1;min-width:0}.level-progress>div{display:flex;justify-content:space-between;gap:12px;font-size:var(--text-sm);margin-bottom:9px}.level-progress strong{font-weight:600}.level-progress strong>span{font-weight:400}.xp-progress{height:5px}.career-stat{display:flex;align-items:center;flex-direction:column;min-width:72px;gap:4px;margin-inline-start:auto}.career-stat strong{font-family:var(--font-game);font-size:var(--text-title);line-height:1.1;font-variant-numeric:tabular-nums}.career-stat>span{font-size:var(--text-sm);color:var(--muted);white-space:nowrap}.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:88px;font-size:var(--text-sm);color:var(--subtle)}.footer>div{display:flex;align-items:center;gap:28px}.footer button{display:flex;align-items:center;gap:7px;background:transparent;color:var(--muted);padding:12px 0;min-height:44px;font-size:var(--text-sm)}.view-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:8px 0 28px}.view-heading h1{font-size:var(--text-display);letter-spacing:-.025em}.view-heading p{margin-top:8px}.selection-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(240px,1fr);gap:28px}.warrior-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.warrior-choice{text-align:start;background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:0 18px 20px;min-width:0;position:relative}.warrior-choice.selected{border:2px solid var(--accent);padding:0 17px 19px;background:#2a2327}.warrior-choice.selected.mochi{border-color:var(--success);background:#202b29}.warrior-choice.selected.nyx{border-color:var(--energy);background:#282333}.choice-art{display:flex;align-items:center;justify-content:center;min-height:195px;background:radial-gradient(ellipse at center,#b4734c20,transparent 70%)}.mochi .choice-art{background:radial-gradient(ellipse at center,#85b6a324,transparent 70%)}.nyx .choice-art{background:radial-gradient(ellipse at center,#9c79d32e,transparent 70%)}.choice-art>.sprite{width:180px;height:auto;max-width:130%}.choice-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.choice-title h2{font-size:var(--text-title)}.choice-check{display:flex;width:21px;height:21px;color:var(--accent)}.mochi .choice-check{color:var(--success)}.nyx .choice-check{color:var(--energy)}.warrior-choice>p{margin-top:16px;line-height:1.5;min-height:42px;color:var(--muted)}.warrior-detail{padding:18px 0 0;min-width:0}.detail-title{display:flex;align-items:center;gap:10px;margin-bottom:24px}.detail-title>svg{color:var(--character)}.detail-title h2{font-size:var(--text-title)}.stats-list{margin:0;display:flex;flex-direction:column;gap:14px}.stats-list>div{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-sm)}.stats-list dt{display:flex;align-items:center;gap:9px;color:var(--muted)}.stats-list dd{margin:0;font-variant-numeric:tabular-nums}.ability-detail{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.ability-detail h3{margin-top:7px;color:var(--character)}.ability-detail p{color:var(--muted);margin-top:9px}.match-setup{display:flex;justify-content:space-between;gap:32px;margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}.difficulty{flex:1}.difficulty legend{font-size:var(--text-body);font-weight:600;margin-bottom:16px}.difficulty>div{display:flex;gap:10px}.difficulty label{display:flex;align-items:center;gap:10px;cursor:pointer;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:4px;flex:1;min-height:70px}.difficulty label.active{border-color:var(--accent);background:#2a2428}.difficulty input{margin:0;accent-color:var(--accent);width:16px;height:16px;flex-shrink:0}.difficulty label>span{display:flex;flex-direction:column;gap:3px}.difficulty strong{font-size:var(--text-sm)}.start-match{display:flex;flex-direction:column;align-items:end;justify-content:end;gap:12px;min-width:216px}.start-match .button{width:100%}.start-match .button>svg{margin-inline-start:auto}.battle-view .view-heading{margin-bottom:20px}.battle-view .view-heading h1{font-size:var(--text-display)}.battle-arena{position:relative;isolation:isolate;overflow:clip;min-height:408px;border:1px solid #51414e;border-radius:5px;background-color:#211d2a;background-image:linear-gradient(0deg,#17121f50,transparent 50%,#17121f85),url(../art/arena.svg);background-size:cover;background-position:center}.battle-hud{padding:22px 28px;display:grid;grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);align-items:start;gap:40px;position:relative;z-index:2}.fighter-health{max-width:310px;background:#191620ed;padding:12px 14px 13px;border-radius:3px}.fighter-health.enemy{justify-self:end;width:100%}.fighter-label{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.fighter-label>strong{display:flex;align-items:center;gap:10px;font-family:var(--font-game);font-size:var(--text-lg)}.fighter-label .muted{font-family:var(--font-body);font-weight:400}.guard-label{font-size:var(--text-sm);color:var(--success);display:flex;align-items:center;gap:3px}.health-label,.energy-label{display:flex;justify-content:space-between;gap:8px;font-variant-numeric:tabular-nums}.health-label>span:first-child,.energy-label>span:first-child{display:flex;align-items:center;gap:5px;color:var(--muted)}.health-label{margin-bottom:5px}.energy-label{margin-top:9px;margin-bottom:5px}.health-progress{height:9px}.health-progress::-webkit-progress-value{background:var(--success)}.health-progress::-moz-progress-bar{background:var(--success)}.health-progress.low::-webkit-progress-value{background:var(--danger)}.health-progress.low::-moz-progress-bar{background:var(--danger)}.energy-progress{height:5px}.energy-progress::-webkit-progress-value{background:var(--energy)}.energy-progress::-moz-progress-bar{background:var(--energy)}.battle-versus{text-align:center;margin-top:14px;font-family:var(--font-game);font-size:var(--text-display);color:#e8c49e}.battle-stage{position:absolute;inset:128px 7% 30px;display:flex;align-items:end;justify-content:space-around}.battle-character{position:relative;width:220px;max-width:38%;flex-shrink:0;z-index:1}.battle-character>.sprite{width:100%;height:auto;filter:drop-shadow(0 10px 0 #16101b60)}.battle-character.enemy>.sprite{transform:scaleX(-1)}.battle-character.knocked-out>.sprite{opacity:.3;filter:grayscale(.8)}.character-effects{position:absolute;inset:0;z-index:3;pointer-events:none}.damage-number,.heal-number{position:absolute;top:4%;left:50%;font-family:var(--font-game);font-size:var(--text-display);font-weight:700;line-height:1;color:#ffe9d1;text-shadow:2px 2px #21131f,-2px -2px #21131f;z-index:4}.special-damage{color:#e6c4ff}.heal-number{color:#a9f5c4;left:24%;top:-5%}.shield-effect{position:absolute;inset:25% 10% 0;display:flex;align-items:center;justify-content:center;color:#b7efdb;filter:drop-shadow(0 0 8px #9bdbbf60)}.shield-effect:after{content:"";position:absolute;inset:10%;background:#8ed8c22e;border:2px solid #a4e1c585;border-radius:30% 30% 50% 50%}.impact{position:absolute;top:30%;left:45%;height:70px;width:18px;background:#f9dcaa;transform:rotate(35deg);opacity:.7}.special-impact{background:#c29ae9;width:65px;clip-path:polygon(50% 0,65% 35%,100% 50%,65% 65%,50% 100%,35% 65%,0 50%,35% 35%)}.turn-indicator{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:#1b1623ef;border:1px solid #4e3e51;border-radius:3px;padding:9px 14px;font-size:var(--text-sm);white-space:nowrap;z-index:3}.enemy-dot{background:var(--accent)}.battle-controls{padding-top:20px}.action-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.battle-action{display:flex;align-items:center;text-align:start;min-height:84px;padding:16px 20px;gap:14px;border-radius:5px;background:var(--surface-raised);border:1px solid var(--line);position:relative}.battle-action.attack{background:var(--accent);color:var(--accent-ink);border-color:transparent}.battle-action>span{display:flex;flex-direction:column;gap:6px}.battle-action strong{font-size:var(--text-body)}.battle-action .small{color:var(--muted)}.battle-action.attack .small{color:#553b2b}.battle-action>svg{color:var(--accent)}.battle-action.attack>svg{color:var(--accent-ink)}.battle-action.special>svg{color:var(--energy)}kbd{display:flex;align-items:center;justify-content:center;min-width:23px;height:25px;margin-inline-start:auto;align-self:start;border:1px solid currentColor;border-radius:3px;font:var(--text-sm) var(--font-body);opacity:.6}.battle-hints{display:flex;justify-content:space-between;gap:12px;margin-top:12px}.battle-log{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}.battle-log h2{font-size:var(--text-lg);margin-bottom:10px}.live-action{font-size:var(--text-sm);min-height:24px}.battle-log details{margin-top:12px;font-size:var(--text-sm);color:var(--muted)}summary{cursor:pointer;padding-block:10px;min-height:40px}.battle-log ol{padding-inline-start:20px;display:flex;flex-direction:column;gap:10px}.battle-log li>span:first-child{display:block;color:var(--subtle);margin-bottom:2px}.battle-result{position:absolute;inset:60px 20% 32px;z-index:5;background:#1b1724f5;border:1px solid #5a455e;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:12px}.battle-result.won{border-color:#987250}.result-symbol{display:flex;color:var(--accent);margin-bottom:4px}.battle-result h2{font-size:var(--text-display)}.battle-result>p{font-size:var(--text-sm);max-width:340px;color:var(--muted)}.xp-earned{font-family:var(--font-game);font-size:var(--text-title);color:var(--accent)}.replay-actions{display:flex;justify-content:center;gap:14px}.separator-dot{margin-inline:8px}.modal{color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:24px 28px 28px;width:min(100% - 32px,500px);max-height:min(88dvh,900px);overflow:auto;overscroll-behavior:contain;line-height:1.5}.modal::backdrop{background:#080910c9;backdrop-filter:blur(5px)}.modal-wide{width:min(100% - 32px,660px)}.modal:has(.wallet-list),.modal:has(.wallet-connected){max-width:420px;padding:16px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.modal-head h2{font-size:var(--text-title)}.modal-head .icon-button{margin:-8px -12px -8px 0;flex-shrink:0}.modal>p,.modal>div>p{margin-bottom:18px}.modal p{max-width:65ch}.dialog-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.help-content>p{margin-bottom:24px}.help-content h3{margin-bottom:10px}.help-actions{display:flex;flex-direction:column;gap:20px;margin-block:24px}.help-actions>div{display:flex;gap:14px}.help-actions svg{color:var(--accent);margin-top:2px}.help-actions h3{margin-bottom:4px}.help-actions p{font-size:var(--text-sm);color:var(--muted)}.help-warriors{list-style:none;display:flex;flex-direction:column;gap:14px;padding:0;margin:12px 0 24px}.help-warriors li{display:flex;align-items:center;gap:12px}.help-warriors .sprite{width:55px;height:55px;flex-shrink:0}.help-warriors li>span{display:flex;flex-direction:column;gap:5px}.help-warriors strong{font-size:var(--text-sm)}.leaderboard-content>p{margin-bottom:20px}.local-scope{display:flex;gap:8px;color:var(--success);padding-bottom:18px;border-bottom:1px solid var(--line)}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:36px 12px;gap:16px}.empty-state>svg{color:var(--accent)}.empty-state h3{font-family:var(--font-game);font-size:var(--text-title)}.empty-state p{font-size:var(--text-sm);max-width:280px}.leaderboard-table{overflow:auto;max-width:100%;margin:18px 0 24px}table{width:100%;border-collapse:collapse;font-size:var(--text-sm);text-align:start;font-variant-numeric:tabular-nums}th{font-weight:400;color:var(--muted);padding:12px 8px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:start}td{padding:8px;border-bottom:1px solid var(--line)}.table-warrior{display:flex;align-items:center;gap:6px}.table-warrior .sprite{width:36px;height:36px;flex-shrink:0}.first-place{color:var(--accent);font-weight:600}.leaderboard-content>.button{margin-bottom:24px}.wallet-list{display:flex;flex-direction:column;gap:10px;margin-block:24px}.wallet-row{display:flex;align-items:center;min-height:54px;width:100%;padding:12px;background:var(--surface-raised);border:1px solid var(--line);border-radius:5px;gap:14px;text-decoration:none;font-size:var(--text-sm);text-align:start}.wallet-row>img{flex-shrink:0;border-radius:4px;object-fit:contain}.wallet-row>svg:last-child{margin-inline-start:auto}.wallet-row>span{flex:1}.wallet-connected{display:flex;flex-direction:column;align-items:start;gap:18px;margin-block:24px}.full-address{overflow-wrap:anywhere;font-size:var(--text-sm)}.wallet-connected>p{margin:0}.error{font-size:var(--text-sm);color:var(--danger);background:#42282f;padding:12px;border-radius:3px}.network-info{display:flex;flex-direction:column;gap:16px;margin-block:24px;padding-block:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.network-info h3{margin-bottom:8px}.network-response{display:flex;flex-direction:column;gap:6px}.network-info .button{align-self:start}.fatal-error{max-width:600px;margin:10vh auto;padding:24px}.fatal-error p{margin-block:20px}@media(hover:hover){.primary:hover{background:var(--accent-hover)}.secondary:hover,.wallet-row:hover,.icon-button:hover,.wallet-button:hover{background:var(--surface-hover)}.text-button:hover,.nav-links button:hover,.footer button:hover{color:var(--text)}.preview-card:hover{background:var(--surface-raised);border-color:#736071}.warrior-choice:hover{border-color:#9d899a}.battle-action:not(:disabled):hover{filter:brightness(1.1)}.arena-caption button:hover{background:#33293d}.inline-link:hover{color:var(--accent-hover)}}@media(prefers-reduced-motion:no-preference){button:active:not(:disabled){transform:scale(.96)}.preview-fighter>.sprite{animation:bob 3s steps(2,end) infinite}.preview-nyx>.sprite{animation-name:bob-flip;animation-delay:.8s}.battle-character.attacking.player>.sprite{animation:lunge .38s ease-out}.battle-character.attacking.enemy>.sprite{animation:lunge-enemy .38s ease-out}.battle-character.hit>.sprite{animation:hit .32s steps(2,end)}.damage-number,.heal-number{animation:damage .7s ease-out both}.impact{animation:impact .45s steps(3,end) both}.battle-result{animation:result .25s ease-out}.modal[open]{animation:result .15s ease-out}@keyframes bob{50%{transform:translateY(-5px)}}@keyframes bob-flip{50%{transform:scaleX(-1) translateY(-5px)}}@keyframes lunge{50%{transform:translate(46px) rotate(-7deg)}}@keyframes lunge-enemy{0%,to{transform:scaleX(-1)}50%{transform:scaleX(-1) translate(46px) rotate(-7deg)}}@keyframes hit{50%{filter:brightness(1.7) drop-shadow(0 0 8px #edbd82)}}@keyframes damage{0%{transform:translate(-50%,12px);opacity:0}25%{opacity:1}to{transform:translate(-50%,-20px);opacity:1}}@keyframes impact{to{opacity:0;transform:rotate(35deg) scale(1.5)}}@keyframes result{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}}.no-motion *,.no-motion *:before,.no-motion *:after{animation:none!important;transition:none!important}.no-motion button:active{transform:none}.no-motion .impact{display:none}@media(min-width:1500px){.app{padding-inline:48px}.menu-arena{min-height:456px}}@media(max-width:1100px){.app,.menu-copy{padding-inline:32px}.menu-fighters{left:47%;right:2%;gap:5px}.preview-card{gap:6px;padding-inline:4px 12px}.preview-card>.sprite{width:72px;height:72px}.selection-layout{grid-template-columns:minmax(0,1fr);gap:24px}.warrior-detail{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;padding-top:0}.detail-title{grid-column:1;margin-bottom:18px}.stats-list{grid-column:1}.ability-detail{grid-column:2;grid-row:1/3;margin:0;padding:0 0 0 28px;border-top:0;border-inline-start:1px solid var(--line);align-self:center}.match-setup{gap:20px}.difficulty label{padding:12px}.battle-hud{gap:12px;grid-template-columns:minmax(0,1fr) 60px minmax(0,1fr)}.battle-action{padding:16px 14px;gap:10px}.battle-action kbd{display:none}}@media(max-width:760px){.app{padding-inline:20px}.header{min-height:84px}.brand strong{font-size:var(--text-body)}.brand>span>span{font-size:var(--text-sm)}.brand{gap:8px}.brand img{width:38px;height:38px}.utility-divider{margin:0 8px}.nav-links{gap:18px}.local-save{display:none}.main-nav{justify-content:center}.menu-arena{min-height:430px}.menu-copy{padding:32px 24px 100px}.menu-copy h1{font-size:var(--text-display)}.menu-copy p{font-size:var(--text-sm);max-width:230px}.menu-fighters{inset:140px 1% 60px 46%;gap:0}.preview-fighter .sprite{width:160px}.preview-name{font-size:var(--text-lg)}.versus{font-size:var(--text-title)}.arena-caption button{display:none}.arena-caption{inset-inline:24px}.warrior-preview-grid{gap:10px}.preview-card{padding:10px 8px;flex-direction:column;text-align:center;gap:4px}.preview-card>.sprite{width:92px;height:92px}.preview-details{align-items:center;gap:6px}.preview-details>strong{font-size:var(--text-lg)}.preview-card>svg:last-child{display:none}.preview-details>.small{font-size:var(--text-sm)}.character-category{display:none}.progress-strip{gap:12px;flex-wrap:wrap;padding:22px 0}.level-progress{max-width:none;flex:1 0 calc(100% - 54px)}.career-stat{flex:1;min-width:70px;margin-top:12px;margin-inline-start:0}.career-stat:nth-of-type(3){margin-inline-start:54px}.footer{padding-block:20px;min-height:88px}.footer>div{gap:8px}.footer>span{max-width:160px;line-height:1.6}.footer>div>.small{display:none}.desktop-only{display:none!important}.view-heading h1{font-size:var(--text-display)}.warrior-choice{padding-inline:12px}.warrior-choice.selected{padding-inline:11px}.choice-art{min-height:166px}.choice-art>.sprite{width:150px}.match-setup{flex-direction:column}.start-match{flex-direction:row;align-items:center;justify-content:space-between}.start-match .button{width:auto;min-width:220px}.battle-arena{min-height:400px}.battle-hud{padding:14px 12px;gap:10px;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr)}.fighter-health{padding:10px;width:100%}.fighter-label>strong{flex-wrap:wrap;gap:4px;font-size:var(--text-lg)}.fighter-label>strong>span{width:100%}.battle-versus{font-size:var(--text-lg);margin-top:22px}.guard-label{position:absolute;top:164px;background:#203a30e8;padding:3px 5px;border-radius:2px}.fighter-health.enemy .guard-label{inset-inline-end:25px}.battle-stage{inset:175px 2% 38px}.battle-character{width:200px;max-width:43%}.battle-result{inset:100px 10% 24px;padding:20px}.battle-result h2{font-size:var(--text-title)}.action-buttons{gap:10px}.battle-action{flex-direction:column;align-items:center;text-align:center;padding:14px 8px;gap:10px;min-height:100px}.battle-action>span{gap:6px}.battle-action .small{font-size:var(--text-sm);line-height:1.4}.battle-action strong{font-size:var(--text-body)}.battle-view .view-heading h1{font-size:var(--text-display)}.battle-hints{justify-content:center}.battle-log{margin-top:24px}.table-warrior .sprite{display:none}}@media(max-width:520px){.header:has(.wrong-chain){flex-wrap:wrap;padding-block:12px}.header:has(.wrong-chain) .header-utilities{margin-inline-start:auto}.app{padding-inline:16px}.header{min-height:80px;gap:8px}.brand img{width:32px;height:32px}.brand strong{font-size:var(--text-body)}.brand>span{gap:3px}.brand>span>span{font-size:var(--text-sm)}.header-utilities{gap:0}.header-utilities>.icon-button{width:40px;min-height:40px}.utility-divider{display:none}.wallet-button{padding:8px;min-height:40px;gap:5px;margin-inline-start:6px;font-size:var(--text-sm)}.wallet-button>svg{display:none}.main-nav{min-height:54px;justify-content:start}.nav-links{gap:22px;justify-content:space-between;width:100%}.nav-links button{font-size:var(--text-sm);gap:6px;padding-inline:0;min-height:54px}.nav-links button>svg{width:16px;height:16px}main{padding-top:18px}.menu-arena{min-height:480px;align-items:start;background-size:auto 340px;background-position:54% bottom;background-repeat:no-repeat;background-color:#1c1823}.arena-shade{background:linear-gradient(180deg,#1c1823 0% 36%,#1c1823a1 56%,#19141f05 85%)}.menu-copy{padding:24px 24px 0;width:100%}.menu-copy h1{font-size:var(--text-display);line-height:1.03;letter-spacing:-.025em}.menu-copy p{margin-top:12px;max-width:none;line-height:1.5}.play-now{margin-top:20px;min-height:46px;min-width:190px;font-size:var(--text-sm)}.play-note{margin-top:10px;font-size:var(--text-sm)}.menu-fighters{inset:262px 4% 32px;gap:8px;align-items:center}.preview-fighter{max-width:132px}.preview-fighter>.sprite{width:140px;max-width:140%}.preview-name{font-size:var(--text-body);padding:2px 8px}.versus{margin-top:-18px;font-size:var(--text-title)}.arena-caption{inset:auto 16px 12px;justify-content:center;font-size:var(--text-sm)}.arena-caption .status-dot{display:none}.warrior-preview{margin-top:26px}.section-heading{margin-bottom:14px}.section-heading h2{font-size:var(--text-title)}.section-heading p{font-size:var(--text-sm);margin-top:5px}.warrior-preview-grid{gap:8px}.preview-card{padding:6px 4px 12px;min-height:156px}.preview-card>.sprite{width:82px;height:82px}.preview-details{gap:5px}.preview-details>.small{font-size:var(--text-sm);max-width:90px;line-height:1.35}.preview-details>strong{font-size:var(--text-lg)}.progress-strip{margin-top:24px;gap:10px}.level-progress>div{gap:6px}.level-progress>div>strong>span{display:none}.level-progress>div>span{white-space:nowrap}.level-emblem{width:36px}.career-stat:nth-of-type(3){margin-inline-start:0}.footer{align-items:start;gap:12px;font-size:var(--text-sm)}.footer>span{max-width:150px}.footer button{font-size:var(--text-sm);padding-block:0;min-height:44px}.view-heading{margin-top:6px;margin-bottom:20px;align-items:start;gap:8px}.view-heading h1{font-size:var(--text-title);line-height:1.2}.view-heading p{font-size:var(--text-sm);margin-top:5px}.view-heading .button{padding:2px 0 2px 8px;min-height:36px}.selection-layout{gap:22px}.warrior-choices{gap:8px}.warrior-choice{padding:0 9px 12px}.warrior-choice.selected{padding:0 8px 11px}.choice-art{min-height:114px}.choice-art>.sprite{width:112px;max-width:145%}.choice-title{margin-bottom:6px}.choice-title h2{font-size:var(--text-lg)}.choice-check{width:16px;height:16px}.choice-check>svg{width:16px;height:16px}.warrior-choice>.small{display:block;font-size:var(--text-sm);line-height:1.4;min-height:39px}.warrior-choice>p{display:none}.warrior-detail{grid-template-columns:1fr 1.2fr;gap:0 16px}.detail-title{gap:6px;margin-bottom:14px}.detail-title h2{font-size:var(--text-lg)}.detail-title>svg{width:18px;height:18px}.stats-list{gap:10px}.ability-detail{padding-inline-start:16px}.ability-detail>.small{font-size:var(--text-sm)}.ability-detail h3{font-size:var(--text-sm);margin-top:5px}.ability-detail p{font-size:var(--text-sm);line-height:1.5}.match-setup{margin-top:24px;padding-top:22px;gap:20px}.difficulty legend{font-size:var(--text-sm);margin-bottom:12px}.difficulty>div{gap:8px}.difficulty label{padding:10px 8px;gap:5px;flex-direction:column;align-items:start;min-height:86px}.difficulty input{width:14px;height:14px;margin-bottom:3px}.difficulty label>span{gap:3px}.difficulty .small{display:none}.start-match{flex-direction:column;gap:10px;align-items:stretch}.start-match>.small{text-align:center}.start-match .button{width:100%;min-height:48px}.battle-view .view-heading h1{font-size:var(--text-title)}.battle-view .view-heading{margin-bottom:16px}.battle-arena{min-height:364px;background-size:auto 364px}.battle-hud{gap:7px;padding:12px 8px;grid-template-columns:minmax(0,1fr) 15px minmax(0,1fr)}.fighter-health{padding:8px}.fighter-label{margin-bottom:8px}.fighter-label>strong{font-size:var(--text-body)}.fighter-label>strong>.small{font-size:var(--text-sm)}.health-label,.energy-label{font-size:var(--text-sm)}.health-label>span:first-child>svg,.energy-label>span:first-child>svg{display:none}.health-progress{height:7px}.energy-label{margin-top:8px}.battle-stage{inset:159px 0 38px}.battle-character{width:152px;max-width:44%}.turn-indicator{font-size:var(--text-sm);padding:8px 10px;bottom:12px;max-width:calc(100% - 12px);white-space:normal;text-align:center;justify-content:center;width:max-content}.battle-controls{padding-top:14px}.action-buttons{gap:8px}.battle-action{padding:12px 5px;min-height:100px;gap:8px}.battle-action>svg{width:22px;height:22px}.battle-action>span{gap:6px}.battle-action .small{font-size:var(--text-sm);max-width:112px}.battle-hints .small{font-size:var(--text-sm);text-align:center}.guard-label{top:153px;font-size:var(--text-sm)}.damage-number,.heal-number{font-size:var(--text-title)}.battle-result{inset:112px 12px 24px;padding:14px;gap:8px}.battle-result h2{font-size:var(--text-title)}.battle-result>p{font-size:var(--text-sm)}.result-symbol{margin:0}.battle-result .small{font-size:var(--text-sm)}.replay-actions{gap:10px}.replay-actions>.button{padding-inline:14px;flex:1;gap:8px}.battle-log{margin-top:20px;padding-top:20px}.modal{width:calc(100% - 24px);max-height:90dvh;padding:20px;border-radius:8px}.modal-head{margin-bottom:18px}.modal-head h2{font-size:var(--text-title)}.modal .wallet-row{min-height:50px}.leaderboard-table{margin-inline:-6px;max-width:calc(100% + 12px)}th,td{padding:10px 6px;font-size:var(--text-sm)}.local-scope{align-items:start}.dialog-actions>.button{flex:1;padding-inline:14px}}@media(max-width:640px){.modal:has(.wallet-list),.modal:has(.wallet-connected){margin:auto 0 0;width:100%;max-width:100%;border-radius:12px 12px 0 0;padding-bottom:max(24px,env(safe-area-inset-bottom))}}@media(max-width:350px){.app{padding-inline:12px}.brand>span>span{font-size:var(--text-sm)}.brand strong{font-size:var(--text-sm)}.brand img{width:27px;height:27px}.brand{gap:6px}.header-utilities>.icon-button{width:28px}.wallet-button{margin-inline-start:3px;padding-inline:6px}.nav-links{gap:14px}.nav-links button{gap:4px}.menu-copy{padding-inline:20px}.menu-fighters{inset-inline:2%}.warrior-preview-grid{gap:6px}.preview-card>.sprite{width:72px;height:72px}.preview-card{min-height:148px}.preview-details>.small{font-size:var(--text-sm);max-width:78px}.career-stat{min-width:62px}.warrior-choices{gap:6px}.warrior-choice{padding-inline:6px}.warrior-choice.selected{padding-inline:5px}.choice-art{min-height:100px}.choice-art>.sprite{width:100px}.warrior-detail{gap:0 12px}.detail-title h2{font-size:var(--text-body)}.ability-detail{padding-inline-start:12px}.stats-list dt{gap:5px}.battle-hud{gap:5px;padding-inline:5px;grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr)}.fighter-health{padding:7px 6px}.battle-action .small{font-size:var(--text-sm)}.modal{padding:18px 16px}.modal-head h2{font-size:var(--text-title)}th,td{padding:10px 4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.impact{display:none}button:active:not(:disabled){transform:none}}@media(forced-colors:active){button,a,input,summary{forced-color-adjust:auto}.primary,.selected{outline:1px solid ButtonText}.status-dot{background:Highlight}progress{border:1px solid CanvasText}}
