html,body{background:#111;width:100%;height:100%;margin:0;overflow:hidden}#game{width:100%;height:100%;display:block}#game:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:-2px}#hero-hud{left:50%;bottom:max(var(--space-8), env(safe-area-inset-bottom));align-items:center;gap:var(--space-3);width:max-content;max-width:calc(100% - var(--space-8));color:#f0e8dc;font:var(--font-size-sm)/var(--line-height-normal) var(--font-family-body);text-align:center;text-shadow:0 1px 8px #000000b3;flex-direction:column;transition:opacity .4s;display:flex;position:fixed;transform:translate(-50%)}body.playing #hero-hud{opacity:0;pointer-events:none}@media (prefers-reduced-motion:reduce){#hero-hud{transition:none}}#hero-hud p{margin:0}.hud-keys{color:#f0e8dccc}.hud-keys kbd{margin:0 var(--space-1) 0 var(--space-3);padding:2px var(--space-2);font:var(--font-size-xs)/1.4 var(--font-family-body);letter-spacing:var(--letter-spacing-wide);border-radius:var(--radius-xs);border:1px solid #f0e8dc59}.hud-keys kbd:first-child{margin-left:0}.hud-status:empty{display:none}#hero-hud button{min-height:var(--target-min-height);min-width:var(--target-min-width);padding:var(--space-3) var(--space-8);font:var(--font-weight-bold) var(--font-size-lg)/1 var(--font-family-display);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:#f6eee2;border-radius:var(--radius-xs);cursor:pointer;background:#14100d8c;border:1px solid #d6aa6e99;transition:background .15s,border-color .15s}#hero-hud button:hover{background:#281e16b3;border-color:#e8be80}#hero-hud button:active{background:#0c0a08cc}#hero-hud button:disabled{opacity:.6;cursor:wait}#hero-hud button:focus-visible{outline-offset:3px;outline:2px solid #f6eee2}#fight-hud{pointer-events:none;position:fixed;inset:0}.round-tracker{top:max(var(--space-6), env(safe-area-inset-top));border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-align:center;background:#0e0c0ad9;border:1px solid #d6aa6e73;flex-direction:column;align-items:center;gap:2px;padding:8px 24px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #000000b3}.round-tracker.intermission{border-color:#ffd040;box-shadow:0 0 16px #ffd04059}.round-tracker.victory{border-color:#2e8;box-shadow:0 0 24px #2e86}.round-title{font:var(--font-weight-bold) var(--font-size-base)/1 var(--font-family-display);letter-spacing:var(--letter-spacing-widest);color:#f6eee2;text-transform:uppercase}.round-tracker.intermission .round-title{color:#ffd040}.round-tracker.victory .round-title{color:#2e8}.round-sub{font:var(--font-size-xs)/1 var(--font-family-body);letter-spacing:var(--letter-spacing-wide);color:#c8b9aa;text-transform:uppercase}.combat-status{gap:var(--space-2);font:var(--font-size-xs)/1 var(--font-family-body);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;align-items:center;display:flex}.mode-badge,.stance-badge,.perk-badge{padding:3px var(--space-2);border-radius:var(--radius-xs);color:#dcd2c4;background:#100e0cb3;border:1px solid #d6aa6e59}.hud-purse{top:max(var(--space-6), env(safe-area-inset-top));right:max(var(--space-8), env(safe-area-inset-right));align-items:center;gap:var(--space-4);font:600 15px/1 var(--font-family-body);color:#f0e2c8;text-shadow:0 1px 3px #000c;display:flex;position:absolute}.hud-purse[hidden],.purse-coin[hidden]{display:none}.purse-coin,.purse-flags{align-items:center;gap:var(--space-2);display:flex}.purse-coin img{width:30px;height:30px}.purse-flags img{width:26px;height:26px;margin-left:-8px}.purse-flags img:first-child{margin-left:0}.purse-flags span{color:#ff9682;text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);font-size:13px}.hud-vitals{left:max(var(--space-8), env(safe-area-inset-left));bottom:max(var(--space-8), env(safe-area-inset-bottom));gap:var(--space-2);flex-direction:column;transition:opacity .35s;display:flex;position:absolute}.vital{align-items:center;gap:var(--space-2);display:flex}.vital-art{filter:drop-shadow(0 1px 2px #000000b3);flex:none;width:24px;height:24px}.hud-vitals .combat-status{margin-left:32px}#fight-hud.calm .hud-vitals,#fight-hud.calm .ability-tray{opacity:0}#fight-hud:not(.debug) .ability-slot.basic-slot,#fight-hud:not(.debug) .perk-badge,#fight-hud:not(.debug) .ability-slot.locked{display:none}#fight-hud.debug .ability-slot.locked{opacity:.35;border-style:dashed}@media (prefers-reduced-motion:reduce){.hud-vitals,.ability-tray{transition:none}}.mode-badge.lit{border-color:var(--color-ignis-glow);color:#f52;box-shadow:0 0 10px #e62a0566}.perk-badge{color:#a0968c;font-size:10px}.perk-badge.lit{color:#fb4;background:#281208d9;border-color:#fa2;font-weight:600;box-shadow:0 0 12px #ffaa2259}.ability-tray{right:max(var(--space-8), env(safe-area-inset-right));bottom:max(var(--space-8), env(safe-area-inset-bottom));gap:var(--space-2);transition:opacity .35s;display:flex;position:absolute}.ability-slot{border-radius:var(--radius-xs);background:#100d0bbf;border:1px solid #d6aa6e66;flex-direction:column;justify-content:center;align-items:center;width:64px;height:44px;transition:border-color .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #0009}.ability-slot.basic-slot{background:#0c0a09b3;border-color:#d6aa6e40}.damage-number{pointer-events:none;font:var(--font-weight-bold) 22px/1 var(--font-family-display);color:#fc3;text-shadow:0 2px 6px #000000f2,0 0 10px #ff781480;-webkit-user-select:none;user-select:none;z-index:100;letter-spacing:.04em;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.damage-number.crit{color:#ff3a10;text-shadow:0 2px 8px #000000f2,0 0 16px #ff3c00e6;font-size:28px}.ability-slot.on-cooldown{opacity:.8;border-color:#d6aa6e33}.ability-slot .cd-fill{transform-origin:bottom;pointer-events:none;background:#000000a6;position:absolute;inset:0;transform:scaleY(0)}.ability-slot .slot-key{z-index:1;font:var(--font-weight-bold) var(--font-size-xs)/1 var(--font-family-display);color:#f6eee2;letter-spacing:var(--letter-spacing-wide);position:relative}.ability-slot .slot-name{z-index:1;font:10px/1 var(--font-family-body);letter-spacing:.02em;color:#c8b9aacc;text-transform:uppercase;margin-top:3px;position:relative}.ability-slot .slot-timer{z-index:2;font:var(--font-weight-bold) var(--font-size-sm)/1 var(--font-family-display);color:#ffdcb4;text-shadow:0 1px 4px #000000e6;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.lock-reticle{pointer-events:none;border:2px solid #f41;width:14px;height:14px;display:none;position:absolute;top:0;left:0;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 0 8px #f41}.hero-health{border-radius:var(--radius-xs);background:#0c0a0899;border:1px solid #d6aa6e59;flex:none;width:min(280px,40vw);height:8px;position:relative;overflow:hidden}.hero-health .fill,.hero-health .trail,.enemy-health .fill{transform-origin:0;position:absolute;inset:0}.hero-health .trail{background:#f0dcbe59}.hero-health .scars{z-index:2;background:repeating-linear-gradient(45deg,#141010e6,#141010e6 3px,#441c1ce6 3px 6px);border-left:1px solid #8c282899;width:0%;position:absolute;top:0;bottom:0;right:0}.hero-meter{border-radius:var(--radius-xs);background:#0c0a0899;border:1px solid #d6aa6e40;flex:none;width:min(280px,40vw);height:5px;position:relative;overflow:hidden}.hero-meter .meter-fill{transform-origin:0;background:var(--meter-colour,#f0d6a0);transition:transform var(--duration-fast,.12s) linear;position:absolute;inset:0;transform:scaleX(0)}.hero-meter.weak .meter-fill{opacity:.55}.hero-meter .meter-line{background:#f6eee299;width:1px;position:absolute;top:0;bottom:0}#fight-hud[data-element=ignis]{--meter-colour:var(--color-ignis-glow)}#fight-hud[data-element=aques]{--meter-colour:var(--color-aques-glow-bright)}#fight-hud[data-element=terra]{--meter-colour:var(--color-terra-glow)}#fight-hud[data-element=aura]{--meter-colour:var(--color-aura-glow,#e8ecf0)}.hero-supply{font:12px/1 var(--font-family-body);color:#e6d6bed9;letter-spacing:.02em}@media (prefers-reduced-motion:reduce){.hero-meter .meter-fill{transition:none}}.hero-health .fill{background:linear-gradient(90deg, var(--color-ignis-ember), var(--color-ignis-crimson))}#fight-hud.low .hero-health{border-color:var(--color-ignis-glow)}.enemy-health{border-radius:var(--radius-xs);background:#0c0a08a6;width:64px;height:4px;position:absolute;top:0;left:0;overflow:hidden}.enemy-health .fill{background:#e2d6c4}.fight-banner{color:#f6eee2;font:var(--font-weight-bold) var(--font-size-3xl)/1 var(--font-family-display);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;text-shadow:0 2px 16px #000c;margin:0;position:absolute;top:38%;left:50%;transform:translate(-50%)}.fight-banner:empty{display:none}#consent-banner{z-index:999;padding:var(--space-2) var(--space-6);font:var(--font-size-xs)/var(--line-height-normal) var(--font-family-body);color:#dccdbe;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e0c0af2;border-bottom:1px solid #d6aa6e66;position:fixed;top:0;left:0;right:0}.consent-content{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;max-width:960px;margin:0 auto;display:flex}.consent-content p{flex:1;min-width:260px;margin:0}.consent-actions{align-items:center;gap:var(--space-3);display:flex}.consent-actions a{color:#d6aa6e;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.consent-actions a:hover{color:#faf0e1;text-decoration:underline}.consent-btn{min-height:44px;padding:var(--space-1) var(--space-4);border-radius:var(--radius-xs);color:#faf0e1;font-family:var(--font-family-display);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wide);cursor:pointer;text-transform:uppercase;background:#231c16cc;border:1px solid #d6aa6e99}.consent-btn:hover{background:#372a1e;border-color:#f0c382}.context-prompt{z-index:30;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);border-radius:var(--radius-full);font:500 13px/1.2 var(--font-family-body);color:#f0e6d6;white-space:nowrap;pointer-events:none;background:#120e0eb8;border:1px solid #d6aa6e73;display:flex;position:fixed;top:0;left:0}.context-prompt[hidden]{display:none}.context-prompt kbd{width:22px;height:22px;font:700 12px/1 var(--font-family-body);color:#ffd696;border:1px solid #f0c88ccc;border-radius:50%;place-items:center;display:grid}#opening-overlay{z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#f6eee2;font-family:var(--font-family-body);background:#0a0908f0;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:fixed;inset:0}#opening-overlay.fade-out{opacity:0;pointer-events:none}.opening-modal{border-radius:var(--radius-sm);width:min(560px,92vw);padding:var(--space-8);text-align:center;background:#14110ef2;border:1px solid #d6aa6e73;box-shadow:0 12px 48px #000000d9}.opening-modal h1,.opening-modal h2{font-family:var(--font-family-display);font-size:var(--font-size-2xl);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;margin:0 0 var(--space-3);color:#faf2e8}.opening-subtitle{color:#c8b9aa;font-size:var(--font-size-sm);margin:0 0 var(--space-6)}.opening-form{gap:var(--space-4);flex-direction:column;align-items:center;display:flex}.form-group{gap:var(--space-2);text-align:left;flex-direction:column;width:100%;max-width:280px;display:flex}.form-group label{font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:#c8b9aa}.form-group input{padding:var(--space-3);border-radius:var(--radius-xs);color:#f6eee2;font-family:var(--font-family-mono);font-size:var(--font-size-base);background:#0c0a08e6;border:1px solid #d6aa6e66}.opening-button{min-height:var(--target-min-height);padding:var(--space-3) var(--space-8);font-family:var(--font-family-display);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:#f6eee2;border-radius:var(--radius-xs);cursor:pointer;margin-top:var(--space-2);background:#1e1812bf;border:1px solid #d6aa6e99;transition:all .15s}.opening-button:hover{background:#32261cd9;border-color:#f0c88c}.opening-button.primary{border-color:var(--color-ignis-glow);background:linear-gradient(#b43214 0%,#781c08 100%)}.opening-button.primary:hover{background:linear-gradient(#d24119 0%,#91230c 100%);box-shadow:0 0 16px #dc320f80}.opening-error{color:#f53;font-size:var(--font-size-xs);margin:var(--space-2) 0 0}.opening-footer{margin-top:var(--space-6);padding-top:var(--space-4);justify-content:center;gap:var(--space-4);font-size:var(--font-size-xs);border-top:1px solid #d6aa6e33;display:flex}.opening-footer a{color:#c8af8c;text-decoration:none}.opening-footer a:hover{color:#f6eee2;text-decoration:underline}.store-badge,.ceremony-badge{padding:2px var(--space-3);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;border-radius:var(--radius-xs);color:#e6c391;margin-bottom:var(--space-3);background:#d6aa6e26;border:1px solid #d6aa6e59;display:inline-block}.store-title{font-size:var(--font-size-4xl);letter-spacing:var(--letter-spacing-widest)}.store-tagline{color:#c8b9aa;font-size:var(--font-size-sm);margin-bottom:var(--space-6)}.store-card{border-radius:var(--radius-xs);padding:var(--space-6);margin-bottom:var(--space-4);background:#0e0c0ad9;border:1px solid #d6aa6e4d}.store-edition{font-family:var(--font-family-display);font-size:var(--font-size-lg);color:#faf0e1;margin-bottom:var(--space-2)}.store-price{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:#fa3;margin-bottom:var(--space-4)}.store-price span{font-size:var(--font-size-xs);color:#b4a596;font-weight:400}.store-perks{margin:0 0 var(--space-6);text-align:left;gap:var(--space-2);font-size:var(--font-size-sm);color:#dccdbe;flex-direction:column;padding:0;list-style:none;display:flex}.store-perks li:before{content:"•";color:#d6aa6e;margin-right:var(--space-2)}.glitch-screen{background:#000;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.glitch-text{font-family:var(--font-family-mono);font-size:var(--font-size-xl);color:#f32;letter-spacing:var(--letter-spacing-widest);text-shadow:2px 0 #0ff,-2px 0 #f0f;animation:.2s infinite glitch-anim}@keyframes glitch-anim{0%{transform:translate(0)}20%{transform:translate(-3px,2px)}40%{transform:translate(-2px,-3px)}60%{transform:translate(3px,1px)}80%{transform:translate(1px,-2px)}to{transform:translate(0)}}.ceremony-result{font-size:var(--font-size-3xl);margin:var(--space-4) 0}.ceremony-result.ignis{color:#f41;text-shadow:0 0 16px #f416}.ceremony-result.aques{color:#1af;text-shadow:0 0 16px #1af6}.ceremony-result.terra{color:#e6a844;text-shadow:0 0 16px #e6a84466}.ceremony-result.aura{color:#eee;text-shadow:0 0 16px #eee6}.ceremony-result.hush{color:#aaa}.ceremony-desc{font-size:var(--font-size-sm);color:#d2c3b4;line-height:var(--line-height-relaxed);margin-bottom:var(--space-8)}.creator-modal{border-radius:var(--radius-sm);width:min(1040px,94vw);max-height:92vh;padding:var(--space-6);background:#120f0cfa;border:1px solid #d6aa6e73;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 16px 56px #000000e6}.creator-layout{gap:var(--space-6);align-items:stretch;display:flex;overflow:hidden}@media (width<=860px){.creator-layout{flex-direction:column;overflow-y:auto}}.creator-viewport-card{border-radius:var(--radius-xs);background:radial-gradient(circle at 50% 30%,#1c1712 0%,#0a0908 85%);border:1px solid #d6aa6e4d;flex-direction:column;flex:480px;align-items:center;min-height:520px;display:flex;position:relative}.viewport-header{top:var(--space-4);left:var(--space-4);right:var(--space-4);z-index:10;pointer-events:none;text-align:left;position:absolute}.creator-badge{padding:2px var(--space-3);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;border-radius:var(--radius-xs);color:#e6c391;margin-bottom:var(--space-1);background:#d6aa6e26;border:1px solid #d6aa6e59;display:inline-block}.creator-title{font-family:var(--font-family-display);font-size:var(--font-size-xl);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:#f6eee2;margin:0}.creator-canvas-container{cursor:grab;touch-action:none;outline:none;flex:1;width:100%;height:100%;position:relative}.creator-canvas-container:active{cursor:grabbing}.viewport-hint{bottom:var(--space-3);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wide);color:#aa9682;padding:4px var(--space-3);border-radius:var(--radius-xs);pointer-events:none;background:#0a0908b3;position:absolute}.creator-panel{max-height:580px;padding-right:var(--space-2);gap:var(--space-5);text-align:left;flex-direction:column;flex:440px;display:flex;overflow-y:auto}.creator-panel::-webkit-scrollbar{width:6px}.creator-panel::-webkit-scrollbar-track{background:#0c0a08cc}.creator-panel::-webkit-scrollbar-thumb{border-radius:var(--radius-xs);background:#d6aa6e66}.control-section{gap:var(--space-2);flex-direction:column;display:flex}.section-label{font-family:var(--font-family-display);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:#d6aa6e}.section-header-row{justify-content:space-between;align-items:baseline;display:flex}.selection-name{font-size:var(--font-size-xs);color:#c8b9aa;font-family:var(--font-family-mono)}.heritage-note{padding:var(--space-2) var(--space-3);border-radius:0 var(--radius-xs) var(--radius-xs) 0;background:#191410cc;border-left:2px solid #d6aa6e99}.heritage-label{font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:#e6c391;font-weight:var(--font-weight-semibold);margin-bottom:2px;display:block}.heritage-desc{font-size:.72rem;line-height:var(--line-height-normal);color:#b4a596;margin:0}.pill-group{gap:var(--space-2);width:100%;display:flex}.pill-group.grid-2x2{gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.creator-pill{min-height:var(--target-min-height);padding:var(--space-2) var(--space-4);border-radius:var(--radius-xs);color:#e6d7c8;font-family:var(--font-family-display);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;cursor:pointer;background:#1c1611d9;border:1px solid #d6aa6e59;flex:1;justify-content:center;align-items:center;transition:all .12s;display:inline-flex}.creator-pill:hover{color:linen;background:#2c2219f2;border-color:#d6aa6eb3}.creator-pill.active{color:#fff5eb;background:linear-gradient(#3c2d20 0%,#281e14 100%);border-color:#ebc387;box-shadow:inset 0 0 10px #d6aa6e40,0 0 10px #d6aa6e33}.hair-style-list{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.style-pill{padding:var(--space-2) var(--space-2);font-size:.7rem}.swatch-grid{gap:6px;display:grid}.skin-grid,.hair-color-grid{grid-template-columns:repeat(6,1fr)}.color-swatch{width:100%;min-width:var(--target-min-width);min-height:var(--target-min-height);border-radius:var(--radius-xs);cursor:pointer;box-sizing:border-box;border:2px solid #0f0c0a;outline:none;padding:0;transition:transform .12s,box-shadow .12s,border-color .12s}.color-swatch:hover{z-index:2;border-color:#d6aa6ecc;transform:scale(1.08);box-shadow:0 0 8px #000c}.color-swatch.active{z-index:3;border-color:#f5d296;transform:scale(1.06);box-shadow:0 0 12px #d6aa6eb3,inset 0 0 4px #fff9}.color-swatch:focus-visible{outline-offset:2px;outline:2px solid #f5d296}.creator-actions{gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-4);border-top:1px solid #d6aa6e33;display:flex}.creator-actions .action-btn{min-height:var(--target-min-height);flex:1;margin-top:0}.opening-button.secondary{color:#dcc8b4;background:#1c1611d9;border:1px solid #d6aa6e80}.drawing-character-card{align-items:center;gap:var(--space-4);border-radius:var(--radius-xs);padding:var(--space-3) var(--space-4);margin:var(--space-4) auto var(--space-5);text-align:left;background:#1c1611b3;border:1px solid #d6aa6e66;max-width:420px;display:flex}.drawing-char-avatar{background:#0f0c0a;border:3px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;box-shadow:0 0 8px #000c}.drawing-avatar-sex{font-family:var(--font-family-display);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:#e6d7c8}.drawing-char-meta{flex-direction:column;gap:2px;display:flex}.drawing-char-archetype{font-family:var(--font-family-display);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-wide);color:#f6eee2;text-transform:uppercase}.drawing-char-traits{font-size:var(--font-size-xs);color:#beafa0;font-family:var(--font-family-mono)}.login-modal{max-width:480px}.login-actions{gap:var(--space-3);margin:var(--space-6) 0 var(--space-4);flex-direction:column;width:100%;display:flex}.login-actions .opening-button{width:100%;min-height:44px}.opening-button.secondary{color:#c8b9aa;background:0 0;border-color:#d6aa6e4d}.opening-button.secondary:hover{color:#f6eee2;background:#1e181280;border-color:#d6aa6e99}.login-offline-notice{font-size:var(--font-size-xs);color:#b4a08cbf;margin:0 0 var(--space-4);line-height:1.4}.ceremony-offline-note{font-size:var(--font-size-xs);color:#d6aa6ed9;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;margin:var(--space-2) 0 var(--space-4);font-family:var(--font-family-mono)}.login-loading-spinner{width:32px;height:32px;margin:var(--space-8) auto;border:3px solid #d6aa6e33;border-top-color:#d6aa6e;border-radius:50%;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#fighter-select{--fs-accent:var(--color-ignis-glow-bright);z-index:50;gap:var(--space-6) var(--space-8);padding:var(--space-8) var(--space-10);color:#f0e8dc;font:var(--font-size-sm)/var(--line-height-normal) var(--font-family-body);animation:fs-in var(--duration-moderate) var(--ease-out);background:linear-gradient(90deg,#0a0807d9 0%,#0a080733 24%,#0a080700 40% 50%,#0a0807bf 62%,#0a0807eb 100%),linear-gradient(#0a080700 78%,#0a0807cc 100%);grid-template:"title.sheet""roster.sheet"minmax(0,1fr)"footer footer footer"/minmax(11rem,14rem) 1fr minmax(26rem,42rem);display:grid;position:fixed;inset:0}#fighter-select[data-fighter=AQUES]{--fs-accent:var(--color-aques-glow-bright)}#fighter-select[data-fighter=TERRA]{--fs-accent:var(--color-terra-glow-bright)}#fighter-select[data-fighter=AURA]{--fs-accent:var(--color-aura-silver)}#fighter-select[data-fighter=HUSH]{--fs-accent:var(--color-hush-undyed)}body.selecting #hero-hud,body.selecting #fight-hud{opacity:0;pointer-events:none}@keyframes fs-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){#fighter-select{animation:none}}#fighter-select h1{font:var(--font-weight-bold) var(--font-size-lg)/1.2 var(--font-family-display);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:#f0e8dcb3;grid-area:title;margin:0}.fs-left{gap:var(--space-8);flex-direction:column;grid-area:roster;min-height:0;display:flex}.fs-roster{gap:var(--space-1);flex-direction:column;align-self:start;display:flex}.fs-roster button{justify-content:space-between;align-items:baseline;gap:var(--space-4);min-height:var(--target-min-height);padding:var(--space-3) var(--space-4);color:#f0e8dc99;text-align:left;cursor:pointer;transition:color var(--duration-normal) var(--ease-default), border-color var(--duration-normal) var(--ease-default), background var(--duration-normal) var(--ease-default);background:0 0;border:0;border-left:2px solid #f0e8dc1f;display:flex}.fs-roster button:hover{color:#f0e8dce6;background:#f0e8dc0a}.fs-roster button[aria-checked=true]{color:#faf4ec;border-left-color:var(--fs-accent);background:linear-gradient(90deg, color-mix(in srgb, var(--fs-accent) 16%, transparent), transparent)}.fs-roster button:focus-visible{outline:2px solid var(--fs-accent);outline-offset:-2px}.fs-opt-name{font:var(--font-weight-bold) var(--font-size-xl)/1 var(--font-family-display);letter-spacing:var(--letter-spacing-wider)}.fs-opt-kind{font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:#f0e8dc80}.fs-sheet{contain:size;flex-direction:column;grid-area:sheet;justify-content:safe center;min-height:0;display:flex}.fs-card{max-height:100%;padding:var(--space-6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:2px solid var(--fs-accent);border-radius:var(--radius-sm);background:#0c0a09cc;overflow-y:auto}.fs-kicker{font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:var(--fs-accent);margin:0}.fs-sheet h2{margin:var(--space-1) 0 var(--space-2);font:var(--font-weight-bold) var(--font-size-4xl)/1 var(--font-family-display);letter-spacing:var(--letter-spacing-wider);color:#faf4ec}.fs-feel{margin:0 0 var(--space-4);max-width:34rem;font-size:var(--font-size-base);color:#f0e8dcd9}.fs-facts{gap:var(--space-2);margin:0 0 var(--space-4);display:grid}.fs-facts div{gap:var(--space-3);grid-template-columns:6.5rem 1fr;display:grid}.fs-facts dt{font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:#f0e8dc80;padding-top:2px}.fs-facts dd{color:#f0e8dce6;margin:0}.fs-moves{border-collapse:collapse;width:100%}.fs-moves caption{padding-bottom:var(--space-2);text-align:left;font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:var(--fs-accent)}.fs-moves thead th{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);color:#f0e8dc73;text-align:left;border-bottom:1px solid #f0e8dc26}.fs-moves td,.fs-moves tbody th{padding:var(--space-2) var(--space-2) calc(var(--space-2) - 1px);vertical-align:top;text-align:left;font-weight:var(--font-weight-regular);border-bottom:1px solid #f0e8dc12}.fs-moves td:first-child{white-space:nowrap;padding-left:0}.fs-move{color:#faf4ec;font-weight:var(--font-weight-semibold);white-space:nowrap;display:block}.fs-slot{font-size:var(--font-size-xs);color:#f0e8dc73;display:block}.fs-num{font-variant-numeric:tabular-nums;white-space:nowrap;color:#f0e8dcd9}.fs-what{color:#f0e8dcbf;min-width:13rem}.fs-note{margin:var(--space-3) 0 0;font-size:var(--font-size-xs);color:#f0e8dc99}#fighter-select kbd{padding:1px var(--space-2);font:var(--font-size-xs)/1.4 var(--font-family-body);letter-spacing:var(--letter-spacing-wide);border-radius:var(--radius-xs);border:1px solid #f0e8dc59;display:inline-block}.fs-footer{align-items:center;gap:var(--space-3);flex-direction:column;grid-area:footer;display:flex}.fs-enter{min-height:var(--target-min-height);min-width:var(--target-min-width);padding:var(--space-3) var(--space-8);font:var(--font-weight-bold) var(--font-size-lg)/1 var(--font-family-display);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:#f6eee2;border:1px solid var(--fs-accent);border-radius:var(--radius-xs);cursor:pointer;transition:background var(--duration-fast) var(--ease-default);background:#14100d99}.fs-enter:hover{background:color-mix(in srgb, var(--fs-accent) 18%, #14100db3)}.fs-enter:focus-visible{outline-offset:3px;outline:2px solid #f6eee2}.fs-hint{font-size:var(--font-size-xs);color:#f0e8dc8c;margin:0}@media (width<=900px){#fighter-select{padding:var(--space-6);background:#0a0807e0;grid-template:"title""roster""sheet"1fr"footer"/1fr}.fs-roster{flex-flow:wrap}.fs-left{gap:var(--space-4)}.fs-sheet{contain:none;justify-content:start}}#hero-hud button.hud-secondary{min-height:var(--target-min-height);padding:var(--space-2) var(--space-4);font:var(--font-size-xs)/1 var(--font-family-body);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:#f0e8dcbf;background:0 0;border:0}#hero-hud button.hud-secondary:hover{color:#faf4ec;background:0 0}#hero-hud button.hud-secondary[hidden]{display:none}@media (height<=800px){#fighter-select{padding-top:var(--space-6);padding-bottom:var(--space-4);row-gap:var(--space-4)}.fs-card{padding:var(--space-4) var(--space-5)}.fs-sheet h2{font-size:var(--font-size-3xl)}.fs-feel{margin-bottom:var(--space-3)}.fs-facts{gap:var(--space-1);margin-bottom:var(--space-3)}.fs-moves td,.fs-moves tbody th{padding-top:var(--space-1);padding-bottom:var(--space-1)}}.fs-character h3{margin:0 0 var(--space-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:#f0e8dc80}.fs-character-summary{margin:0 0 var(--space-2);color:#f0e8dcd9}.fs-character-change{min-height:var(--target-min-height);padding:var(--space-2) var(--space-4);font:var(--font-weight-semibold) var(--font-size-sm)/1 var(--font-family-body);color:#f6eee2;border-radius:var(--radius-xs);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-default);background:#14100d99;border:1px solid #f0e8dc4d}.fs-character-change:hover{border-color:var(--fs-accent)}.fs-character-change:focus-visible{outline:2px solid var(--fs-accent);outline-offset:2px}#opening-overlay.fs-creator{z-index:60}.fs-creator-back{top:var(--space-6);left:var(--space-6);z-index:1;min-height:var(--target-min-height);min-width:var(--target-min-width);padding:var(--space-2) var(--space-5);font:var(--font-weight-semibold) var(--font-size-sm)/1 var(--font-family-body);color:#f6eee2;border-radius:var(--radius-xs);cursor:pointer;background:#14100db3;border:1px solid #f0e8dc4d;position:fixed}.fs-creator-back:focus-visible{outline-offset:2px;outline:2px solid #f6eee2}.shop-window{z-index:40;padding:var(--space-6);font-family:var(--font-family-body);color:var(--color-text-primary);background:linear-gradient(90deg,#0000 35%,#0a08088c);place-items:center end;display:grid;position:fixed;inset:0}.shop-window[hidden]{display:none}.shop-panel{width:min(30rem,100%);max-height:calc(100vh - var(--space-12));background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:shop-in var(--duration-normal) var(--ease-out);flex-direction:column;display:flex;overflow:hidden}@keyframes shop-in{0%{opacity:0;transform:translateX(var(--space-4))}}.shop-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-5) var(--space-5) var(--space-4);border-bottom:1px solid var(--color-border-subtle);display:flex}.shop-title{font-family:var(--font-family-display);font-size:var(--font-size-xl);letter-spacing:var(--letter-spacing-wide);margin:0}.shop-money{gap:var(--space-4);margin-top:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.shop-money strong{color:var(--color-text-primary);font-variant-numeric:tabular-nums}.shop-close,.shop-act{min-width:var(--target-min-width);min-height:var(--target-min-height);padding:0 var(--space-4);border-radius:var(--radius-md);font:inherit;font-size:var(--font-size-sm);cursor:pointer}.shop-close{border:1px solid var(--color-border-default);color:var(--color-text-secondary);background:0 0}.shop-act{background:var(--color-ignis-ember);border:1px solid var(--color-ignis-crimson);color:var(--color-text-primary)}.shop-act:hover:not(:disabled){background:var(--color-ignis-crimson)}.shop-act:disabled{border-color:var(--color-border-subtle);color:var(--color-text-muted);cursor:not-allowed;background:0 0}.shop-close:focus-visible,.shop-act:focus-visible,.shop-price:focus-visible{outline:2px solid var(--color-ignis-glow-bright);outline-offset:2px}.shop-body{padding:var(--space-4) var(--space-5);overflow-y:auto}.shop-personality{margin:0 0 var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic;line-height:var(--line-height-snug)}.shop-status{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border-left:2px solid var(--color-ignis-crimson);font-size:var(--font-size-sm)}.shop-heading{margin:var(--space-4) 0 var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:var(--color-text-muted)}.shop-row{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border-subtle);grid-template-columns:1fr auto auto;display:grid}.shop-item{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.shop-item-name{font-weight:var(--font-weight-medium)}.shop-item-detail{font-size:var(--font-size-xs);color:var(--color-text-muted)}.shop-stock{background:var(--color-bg-subtle);border-radius:var(--radius-full);width:7rem;height:3px;display:block;overflow:hidden}.shop-stock span{background:var(--color-terra-gold);height:100%;display:block}.shop-price{align-items:baseline;gap:var(--space-1);min-height:var(--target-min-height);padding:0 var(--space-2);border-radius:var(--radius-sm);cursor:help;display:flex;position:relative}.shop-price-value{font-size:var(--font-size-lg);font-variant-numeric:tabular-nums;line-height:var(--target-min-height)}.shop-price-unit{font-size:var(--font-size-xs);color:var(--color-text-muted)}.shop-why{right:0;bottom:calc(100% + var(--space-2));width:18rem;padding:var(--space-3);background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--font-size-sm);line-height:var(--line-height-snug);opacity:0;visibility:hidden;transition:opacity var(--duration-fast) var(--ease-out);z-index:1;position:absolute}.shop-why p{margin:0}.shop-why ul{margin:var(--space-2) 0 0;padding-left:var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.shop-price:hover .shop-why,.shop-price:focus-visible .shop-why{opacity:1;visibility:visible}.shop-empty,.shop-note{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.shop-note{margin:var(--space-4) 0 0;color:var(--color-text-primary)}.shop-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border-subtle);font-size:var(--font-size-xs);color:var(--color-text-muted)}@media (prefers-reduced-motion:reduce){.shop-panel{animation:none}.shop-why{transition:none}}@media (width<=40rem){.shop-window{padding:var(--space-3);place-items:end stretch}}#home-hud-button{top:max(var(--space-4), env(safe-area-inset-top));left:max(var(--space-4), env(safe-area-inset-left));z-index:100;min-height:var(--target-min-height);min-width:var(--target-min-width);padding:var(--space-2) var(--space-4);justify-content:center;align-items:center;gap:var(--space-2);font:var(--font-weight-bold) var(--font-size-sm) var(--font-family-display);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:#f6eee2;border-radius:var(--radius-xs);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-user-select:none;user-select:none;background:#14100dd9;border:1px solid #d6aa6e80;transition:background .15s,border-color .15s,transform .15s,opacity .25s;display:flex;position:fixed;box-shadow:0 4px 16px #0009}#home-hud-button:hover{background:#281e16f2;border-color:#e8be80;transform:translateY(-1px)}#home-hud-button:active{background:#0c0a08f2;transform:translateY(0)}#home-hud-button:focus-visible{outline-offset:2px;outline:2px solid #e8be80}body.playing #home-hud-button{opacity:.45}body.playing #home-hud-button:hover{opacity:1}body.selecting #home-hud-button{opacity:0;pointer-events:none}.home-menu-overlay{z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:var(--space-6);opacity:0;pointer-events:none;background:#080707e0;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:fixed;inset:0}.home-menu-overlay.open{opacity:1;pointer-events:auto}.home-menu-dialog{border-radius:var(--radius-sm);color:#f0e8dc;background:#120f0e;border:1px solid #d6aa6e73;flex-direction:column;width:960px;max-width:96vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 16px 48px #000c,0 0 24px #d6aa6e26}.home-menu-header{padding:var(--space-4) var(--space-6);background:#181412;border-bottom:1px solid #d6aa6e40;justify-content:space-between;align-items:center;display:flex}.home-menu-title-group{align-items:baseline;gap:var(--space-3);display:flex}.home-menu-title{font:var(--font-weight-bold) var(--font-size-2xl)/1 var(--font-family-display);letter-spacing:var(--letter-spacing-widest);color:#f6eee2;margin:0}.home-menu-badge{font:var(--font-weight-medium) var(--font-size-xs) var(--font-family-body);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:#ffa0a0;border-radius:var(--radius-xs);background:#e6394633;border:1px solid #e6394666;padding:2px 8px}.home-menu-close{min-width:36px;min-height:36px;font:var(--font-weight-bold) var(--font-size-sm) var(--font-family-body);color:#d6aa6e;border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:1px solid #d6aa6e66;padding:4px 12px;transition:background .15s,border-color .15s}.home-menu-close:hover{background:#d6aa6e26;border-color:#e8be80}.home-menu-nav{gap:var(--space-2);padding:var(--space-3) var(--space-6);background:#0e0b0a;border-bottom:1px solid #d6aa6e26;display:flex;overflow-x:auto}.home-nav-tab{min-height:40px;padding:var(--space-2) var(--space-4);font:var(--font-weight-semibold) var(--font-size-xs) var(--font-family-display);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:#b4aaa0;border-radius:var(--radius-xs);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;transition:color .15s,background .15s,border-color .15s}.home-nav-tab:hover{color:#f6eee2;background:#1e191699}.home-nav-tab.active{color:#f6eee2;background:#28201a;border-color:#d6aa6e99}.home-menu-body{padding:var(--space-6);flex:1;overflow-y:auto}.home-tab-pane{gap:var(--space-6);flex-direction:column;display:none}.home-tab-pane.active{display:flex}.home-grid-2{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(360px,1fr));display:grid}.home-card{padding:var(--space-5);border-radius:var(--radius-xs);justify-content:space-between;gap:var(--space-4);background:#181412d9;border:1px solid #d6aa6e40;flex-direction:column;display:flex}.home-card-header h3{margin:0 0 var(--space-1) 0;font:var(--font-weight-bold) var(--font-size-lg) var(--font-family-display);color:#f6eee2;letter-spacing:var(--letter-spacing-wide)}.home-card-header p{font:var(--font-size-sm)/1.5 var(--font-family-body);color:#beb4aa;margin:0}.home-card-actions{gap:var(--space-3);align-items:center;display:flex}.home-btn{min-height:var(--target-min-height);padding:var(--space-2) var(--space-5);font:var(--font-weight-semibold) var(--font-size-sm) var(--font-family-display);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:#f6eee2;border-radius:var(--radius-xs);cursor:pointer;background:#221a16;border:1px solid #d6aa6e80;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:inline-flex}.home-btn:hover{background:#342820;border-color:#e8be80}.home-btn.primary{background:#b42828;border-color:#ff7878b3}.home-btn.primary:hover{background:#d23232;border-color:#ffa0a0}.home-btn:disabled{opacity:.5;cursor:not-allowed}.ref-gallery{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.ref-item{border-radius:var(--radius-xs);background:#0e0b0a;border:1px solid #d6aa6e40;flex-direction:column;display:flex;overflow:hidden}.ref-item img{object-fit:cover;cursor:zoom-in;border-bottom:1px solid #d6aa6e26;width:100%;height:180px;transition:transform .2s;display:block}.ref-item img:hover{transform:scale(1.02)}.ref-caption{padding:var(--space-3);font:var(--font-size-xs)/1.4 var(--font-family-body);color:#beb4aa}.ref-caption strong{color:#f6eee2;font-family:var(--font-family-display);font-size:var(--font-size-sm);margin-bottom:2px;display:block}.progress-list{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin:0;padding:0;list-style:none;display:grid}.progress-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-xs);background:#181412b3;border:1px solid #d6aa6e33;display:flex}.progress-tag{font:var(--font-weight-bold) 10px/1 var(--font-family-mono);letter-spacing:.05em;text-transform:uppercase;color:#50dc8c;white-space:nowrap;background:#143c2899;border:1px solid #50dc8c66;border-radius:2px;padding:2px 6px}.progress-text{font:var(--font-size-xs)/1.5 var(--font-family-body);color:#c8beb4}.progress-text strong{color:#f6eee2;font-size:var(--font-size-sm);display:block}.ref-lightbox{z-index:2000;padding:var(--space-4);background:#040303f0;flex-direction:column;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.ref-lightbox.open{display:flex}.ref-lightbox img{object-fit:contain;border:1px solid #d6aa6e66;max-width:90vw;max-height:80vh;box-shadow:0 0 40px #000000e6}.ref-lightbox-caption{margin-top:var(--space-3);font:var(--font-size-sm)/1.5 var(--font-family-body);color:#f6eee2;text-align:center}.ref-lightbox-close{top:var(--space-4);right:var(--space-6);min-height:44px;padding:var(--space-2) var(--space-4);font:var(--font-weight-bold) var(--font-size-sm) var(--font-family-display);letter-spacing:var(--letter-spacing-widest);text-transform:uppercase;color:#f6eee2;border-radius:var(--radius-xs);cursor:pointer;background:#221a16;border:1px solid #d6aa6e80;position:absolute}.home-menu-footer{padding:var(--space-4) var(--space-6);background:#181412;border-top:1px solid #d6aa6e40;justify-content:space-between;align-items:center;display:flex}.home-menu-hint{font:var(--font-size-xs)/1 var(--font-family-body);color:#a0968c}
