.page-home .hero-section{min-height:60vh;display:flex;align-items:center;justify-content:center;position:relative;padding:var(--space-9) var(--space-4)}.page-home h1{font-family:var(--font-display);font-weight:400;color:var(--text-primary);letter-spacing:.01em;text-shadow:0 0 32px color-mix(in srgb,var(--accent-glow) 26%,transparent)}.page-home .subtitle{font-family:var(--font-body);color:var(--text-secondary);line-height:var(--lh-base)}.page-home .hero-divider{width:84px;height:2px;margin:var(--space-4) auto;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.page-home .feature-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:var(--space-4);max-width:1080px;margin:0 auto;padding:0 var(--space-4) var(--space-9)}.page-home .feature-card{position:relative;display:flex;flex-direction:column;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--elev-sm),inset 0 1px 0 var(--border-subtle);padding:var(--space-5);overflow:hidden;text-decoration:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.page-home .feature-card:hover{transform:translateY(-4px);border-color:var(--border-strong);box-shadow:var(--elev-lg),inset 0 1px 0 var(--border-subtle)}.page-home .feature-card-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:var(--text-2xl);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border-subtle);box-shadow:inset 0 1px 0 var(--border-subtle)}.page-home .feature-card h3{font-family:var(--font-display);font-weight:400;font-size:var(--text-2xl);line-height:var(--lh-2xl);color:var(--text-primary);margin:0 0 var(--space-2)}.page-home .feature-card p{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--text-secondary);margin:0 0 var(--space-4)}.page-home .feature-card-enter{margin-top:auto;display:inline-flex;align-items:center;gap:var(--space-1);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);transition:gap .15s ease,color .15s ease}.page-home .feature-card:hover .feature-card-enter{gap:var(--space-2);color:var(--accent-hover)}.page-home .coming-soon-badge{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;padding:2px var(--space-2);border-radius:var(--radius-pill);color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent);border:1px solid color-mix(in srgb,var(--gold) 30%,transparent)}.page-home .site-footer{border-top:1px solid var(--border-subtle);background:var(--surface);padding:var(--space-5) var(--space-4);margin-top:var(--space-8)}.page-home .footer-inner{max-width:1080px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-disabled)}.page-home .footer-inner a{color:var(--text-secondary);text-decoration:none;margin-left:var(--space-4);transition:color .15s ease}.page-home .footer-inner a:hover{color:var(--accent)}.page-home a:focus-visible,.page-home button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-home .feature-card:focus-visible{box-shadow:var(--focus-ring),var(--elev-sm),inset 0 1px 0 var(--border-subtle);border-color:var(--border-strong)}@media (max-width: 768px){.page-home .footer-inner{flex-direction:column;text-align:center}.page-home .footer-inner a{margin:0 var(--space-2)}}.page-arena .hero-page{text-align:center}.page-arena h1{font-family:var(--font-display);font-weight:400;font-size:var(--text-5xl);line-height:var(--lh-5xl);letter-spacing:.02em;color:var(--text-primary);text-shadow:0 0 28px color-mix(in srgb,var(--accent-glow) 30%,transparent);margin:0}.page-arena .subtitle{font-family:var(--font-body);font-size:var(--text-lg);line-height:var(--lh-lg);color:var(--text-secondary);max-width:52ch;margin:0 auto}.page-arena .hero-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.page-arena .btn-gold{font-family:var(--font-ui);font-weight:600;background:var(--gold);color:var(--tbt-ink);border:1px solid var(--gold);border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);box-shadow:var(--elev-sm),inset 0 1px 0 var(--border-subtle);cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .12s ease}.page-arena .btn-gold:hover:not(:disabled){background:var(--accent);border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--elev-md),0 0 22px -6px var(--accent-glow)}.page-arena .btn-gold:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-arena .btn-secondary{font-family:var(--font-ui);font-weight:500;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.page-arena .btn-secondary:hover{background:var(--surface-raised);color:var(--text-primary);border-color:var(--accent)}.page-arena .btn-primary{font-family:var(--font-ui);font-weight:600;background:var(--accent);color:var(--text-on-accent);border:1px solid var(--accent);border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .12s ease}.page-arena .btn-primary:hover{transform:translateY(-1px);box-shadow:var(--elev-md),0 0 22px -6px var(--accent-glow)}.page-arena .session-section-title{display:flex;align-items:center;gap:var(--space-3);font-family:var(--font-display);font-weight:400;font-size:var(--text-2xl);line-height:var(--lh-2xl);color:var(--text-primary);padding-left:var(--space-3);border-left:3px solid var(--accent);margin:0 0 var(--space-4)}.page-arena .session-list{display:flex;flex-direction:column;gap:var(--space-2)}.page-arena .session-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--border-subtle);border-left-width:3px;border-radius:var(--radius-md);box-shadow:var(--elev-sm),inset 0 1px 0 var(--border-subtle);transition:transform .12s ease,border-color .15s ease,box-shadow .15s ease}.page-arena .session-item:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--elev-md),inset 0 1px 0 var(--border-subtle)}.page-arena .session-item-waiting{border-left-color:var(--gold)}.page-arena .session-item-live{border-left-color:var(--accent);cursor:pointer}.page-arena .session-info{min-width:0}.page-arena .session-title{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-ui);font-weight:600;font-size:var(--text-lg);color:var(--text-primary);margin-bottom:var(--space-1)}.page-arena .session-host-class{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:1px var(--space-2);border-radius:var(--radius-sm);color:var(--text-secondary);background:var(--surface);border:1px solid var(--border-subtle)}.page-arena .session-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary)}.page-arena .session-time{color:var(--text-disabled)}.page-arena .session-action-btn{flex-shrink:0;padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.page-arena .badge,.page-arena .badge-mode-duel,.page-arena .badge-mode-encounter{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:2px var(--space-2);border-radius:var(--radius-sm)}.page-arena .badge-waiting{color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent);border:1px solid color-mix(in srgb,var(--gold) 32%,transparent)}.page-arena .badge-live{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);animation:arena-live-pulse 2s ease-in-out infinite}@keyframes arena-live-pulse{0%,to{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 10px -2px var(--accent-glow)}}.page-arena .badge-mode-duel{color:var(--status-info);background:color-mix(in srgb,var(--status-info) 14%,transparent)}.page-arena .badge-mode-encounter{color:var(--status-success);background:color-mix(in srgb,var(--status-success) 14%,transparent)}.page-arena .session-empty{text-align:center;font-family:var(--font-body);font-style:italic;color:var(--text-disabled);padding:var(--space-5);border:1px dashed var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 50%,transparent)}@media (max-width: 768px){.page-arena .session-item{flex-direction:column;align-items:stretch}.page-arena .session-action-btn{width:100%}}@media (prefers-reduced-motion: reduce){.page-arena .badge-live{animation:none}}.page-arena .btn-primary:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-arena .arena-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);align-items:start;margin:var(--space-5) 0}.page-arena .arena-panel{display:flex;flex-direction:column;background:color-mix(in srgb,var(--surface) 55%,transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4)}@media (max-width: 860px){.page-arena .arena-grid{grid-template-columns:1fr}}.page-builder{font-family:var(--font-body);color:var(--text-primary)}.page-builder .builder-progress{display:flex;gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap}.page-builder .builder-step-indicator{display:flex;align-items:center;gap:var(--space-2);flex:1 1 0;min-width:120px;padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--elev-sm);transition:border-color .15s ease,background .15s ease}.page-builder .builder-step-indicator .step-number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:var(--surface-raised);border:1px solid var(--border-strong);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;flex-shrink:0}.page-builder .builder-step-indicator .step-label{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-disabled)}.page-builder .builder-step-indicator.completed .step-number{background:color-mix(in srgb,var(--status-success) 22%,transparent);border-color:var(--status-success);color:var(--status-success)}.page-builder .builder-step-indicator.completed .step-label{color:var(--text-secondary)}.page-builder .builder-step-indicator.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));box-shadow:var(--elev-sm),0 0 18px -8px var(--accent-glow)}.page-builder .builder-step-indicator.active .step-number{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.page-builder .builder-step-indicator.active .step-label{color:var(--text-primary)}.page-builder .builder-section-title{font-family:var(--font-display);font-size:var(--text-3xl);line-height:var(--lh-3xl);font-weight:400;color:var(--text-primary);margin:0 0 var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.page-builder .builder-section-title .prep-counter{font-family:var(--font-mono);font-size:var(--text-lg);color:var(--gold)}.page-builder .btn-quick-deploy{padding:var(--space-3) var(--space-2);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--elev-sm),inset 0 1px 0 var(--border-subtle);color:var(--text-primary);cursor:pointer;transition:transform .12s ease,border-color .15s ease,box-shadow .15s ease}.page-builder .btn-quick-deploy:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--elev-md),0 0 18px -8px var(--accent-glow)}.page-builder .btn-quick-deploy span:nth-of-type(2){color:var(--text-secondary)}.page-builder .race-card,.page-builder .class-builder-card,.page-builder .subclass-card,.page-builder .spell-card{position:relative;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--elev-sm),inset 0 1px 0 var(--border-subtle);color:var(--text-primary);transition:transform .12s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease}.page-builder .race-card:hover,.page-builder .class-builder-card:hover,.page-builder .subclass-card:hover,.page-builder .spell-card.selectable:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--elev-md),inset 0 1px 0 var(--border-subtle)}.page-builder .race-card.selected,.page-builder .class-builder-card.selected,.page-builder .subclass-card.selected,.page-builder .spell-card.selectable.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface-raised));box-shadow:var(--elev-md),0 0 0 1px var(--accent),0 0 22px -6px var(--accent-glow)}.page-builder .race-card.selected:after,.page-builder .class-builder-card.selected:after,.page-builder .subclass-card.selected:after,.page-builder .spell-card.selectable.selected:after{content:"✓";position:absolute;top:-8px;right:-8px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--text-on-accent);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:700;border-radius:var(--radius-pill);box-shadow:var(--elev-sm)}.page-builder .race-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.page-builder .race-name{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-primary)}.page-builder .good-match-badge{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:2px var(--space-2);border-radius:var(--radius-pill);color:var(--status-success);background:color-mix(in srgb,var(--status-success) 16%,transparent);border:1px solid color-mix(in srgb,var(--status-success) 40%,transparent)}.page-builder .race-bonuses{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-2)}.page-builder .stat-badge{font-family:var(--font-mono);font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent);border:1px solid color-mix(in srgb,var(--gold) 30%,transparent)}.page-builder .race-speed{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);margin-bottom:var(--space-2)}.page-builder .race-traits{display:flex;flex-wrap:wrap;gap:var(--space-1)}.page-builder .trait-tag{font-family:var(--font-ui);font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);color:var(--text-secondary);background:var(--surface);border:1px solid var(--border-subtle)}.page-builder .class-card-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.page-builder .class-card-name{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-primary)}.page-builder .class-icon{font-size:var(--text-lg);margin-right:var(--space-1)}.page-builder .class-identity{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--text-secondary);margin-bottom:var(--space-3)}.page-builder .class-card-stats{display:flex;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-primary);padding-top:var(--space-2);border-top:1px solid var(--border-subtle)}.page-builder .subclass-card-header{display:flex;align-items:center;gap:var(--space-3)}.page-builder .subclass-card-name{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-primary)}.page-builder .subclass-card-desc{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--text-secondary)}.page-builder .spell-group{margin-bottom:var(--space-4)}.page-builder .spell-group-label{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--text-secondary);margin-bottom:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--border-subtle)}.page-builder .spell-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1)}.page-builder .spell-name{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.page-builder .spell-level-badge{font-family:var(--font-mono);font-size:var(--text-xs);padding:1px var(--space-2);border-radius:var(--radius-sm);color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent);white-space:nowrap}.page-builder .spell-desc{font-family:var(--font-body);font-size:var(--text-xs);line-height:var(--lh-xs);color:var(--text-secondary)}.page-builder .spell-meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-disabled);margin-top:var(--space-1)}.page-builder .spell-card.always-known{opacity:.9;border-style:dashed}.page-builder .spell-card.selectable.disabled{opacity:.4;cursor:not-allowed}.page-builder .summary-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:var(--space-4);align-items:start}.page-builder .summary-identity{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--elev-md),inset 0 1px 0 var(--border-subtle);padding:var(--space-4);text-align:center}.page-builder .summary-race-class{font-family:var(--font-display);font-size:var(--text-2xl);line-height:var(--lh-2xl);color:var(--accent)}.page-builder .summary-combat-id{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--text-secondary);margin-top:var(--space-2)}.page-builder .summary-icon{font-size:var(--text-2xl)}.page-builder .stat-block{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2);margin-bottom:var(--space-3)}.page-builder .stat-row{display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.page-builder .stat-label{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-disabled)}.page-builder .stat-value{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-left:auto}.page-builder .stat-mod{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary)}.page-builder .stat-bonus{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--status-success)}.page-builder .derived-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin-bottom:var(--space-3)}.page-builder .derived-stat{text-align:center;padding:var(--space-3) var(--space-2);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:inset 0 1px 0 var(--border-subtle)}.page-builder .derived-label{display:block;font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-disabled)}.page-builder .derived-value{display:block;font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:700;color:var(--accent);margin-top:var(--space-1)}.page-builder .summary-spells-label{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--text-secondary);margin-bottom:var(--space-2)}.page-builder .summary-spell-list{display:flex;flex-wrap:wrap;gap:var(--space-1)}.page-builder .summary-spell-tag{font-family:var(--font-ui);font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent);border:1px solid color-mix(in srgb,var(--gold) 30%,transparent)}.page-builder .form-group label{display:block;font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--text-secondary);margin-bottom:var(--space-2)}.page-builder .form-group input{width:100%;padding:var(--space-3);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);transition:border-color .15s ease,box-shadow .15s ease}.page-builder .form-group input::placeholder{color:var(--text-disabled)}.page-builder .form-group input:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.page-builder .builder-nav{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-5)}.page-builder .btn-gold{font-family:var(--font-ui);font-size:var(--text-base);font-weight:600;letter-spacing:.02em;padding:var(--space-3) var(--space-5);background:var(--gold);color:var(--tbt-ink);border:1px solid var(--gold);border-radius:var(--radius-md);box-shadow:var(--elev-sm),inset 0 1px 0 var(--border-subtle);cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .12s ease}.page-builder .btn-gold:hover:not(:disabled){background:var(--accent);border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--elev-md),0 0 22px -6px var(--accent-glow)}.page-builder .btn-gold:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-builder .btn-gold:disabled{background:var(--surface-raised);border-color:var(--border-subtle);color:var(--text-disabled);box-shadow:none;cursor:not-allowed}.page-builder .btn-secondary{font-family:var(--font-ui);font-size:var(--text-base);font-weight:500;padding:var(--space-3) var(--space-4);background:var(--surface);color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.page-builder .btn-secondary:hover{background:var(--surface-raised);color:var(--text-primary);border-color:var(--accent)}.page-builder .btn-secondary:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-builder .forge-mark{font-family:var(--font-display);font-style:italic;font-size:var(--text-sm);color:var(--text-disabled);text-align:center;margin-top:var(--space-4)}@media (max-width: 920px){.page-builder .builder-step-indicator .step-label{display:none}}@media (max-width: 768px){.page-builder .summary-layout,.page-builder .stat-block{grid-template-columns:1fr}.page-builder .builder-step-indicator{min-width:0;flex-basis:auto}.page-builder .builder-step-indicator .step-label{display:none}}.page-builder .race-card:focus-visible,.page-builder .class-builder-card:focus-visible,.page-builder .subclass-card:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-builder.builder-single{max-width:1180px;margin:0 auto}.page-builder .builder-grid{display:grid;grid-template-columns:380px minmax(0,1fr);gap:var(--space-5);align-items:start}.page-builder .hero-preview{position:sticky;top:var(--space-4);background:linear-gradient(165deg,var(--surface),var(--surface-base));border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--elev-lg);overflow:hidden}.page-builder .hero-portrait{position:relative;height:280px;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 80% at 50% 0%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 60%),linear-gradient(180deg,var(--surface-raised),var(--surface-base));box-shadow:inset 0 0 80px 22px #0000008c}.page-builder .hero-portrait-empty{font-family:var(--font-ui);font-size:var(--text-sm);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-disabled)}.page-builder .hero-speed-badge{position:absolute;right:var(--space-3);bottom:var(--space-3);padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--surface-overlay);border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary)}.page-builder .hero-preview-body{padding:var(--space-4) var(--space-5) var(--space-5)}.page-builder .hero-name-input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--border-strong);color:var(--text-primary);font-family:var(--font-display);font-size:var(--text-2xl);padding:2px 0 var(--space-2);outline:none}.page-builder .hero-name-input::placeholder{color:var(--text-disabled)}.page-builder .hero-name-input:focus{border-bottom-color:var(--accent)}.page-builder .hero-subtitle{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--gold);margin:var(--space-3) 0 var(--space-4)}.page-builder .hero-blurb{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--text-secondary);margin-top:var(--space-3)}.page-builder .hero-preview-body .derived-stats{margin-bottom:0}.page-builder .builder-options{display:flex;flex-direction:column;gap:var(--space-5)}.page-builder .builder-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--elev-sm),inset 0 1px 0 var(--border-subtle);padding:var(--space-5)}.page-builder .builder-eyebrow{display:flex;align-items:baseline;gap:var(--space-2);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--gold);margin-bottom:var(--space-4)}.page-builder .builder-eyebrow span{font-weight:var(--weight-regular);letter-spacing:0;text-transform:none;color:var(--text-disabled)}.page-builder .builder-eyebrow .prep-counter{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);text-transform:none;letter-spacing:0}.page-builder .builder-duo{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);align-items:start}.page-builder .builder-note{font-family:var(--font-body);font-size:var(--text-xs);color:var(--text-disabled);margin:var(--space-3) 0 0}.page-builder .quick-deploy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.page-builder .builder-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.page-builder .builder-footer .forge-mark{margin:0}.page-builder .builder-submit{white-space:nowrap}@media (max-width: 920px){.page-builder .builder-grid{grid-template-columns:1fr}.page-builder .hero-preview{position:static}.page-builder .builder-duo{grid-template-columns:1fr}.page-builder .quick-deploy-grid{grid-template-columns:repeat(2,1fr)}}.page-lobby .lobby-form{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--elev-md);padding:var(--space-6)}.page-lobby .form-group{margin-bottom:var(--space-5)}.page-lobby .form-group>label,.page-lobby .form-group>h3{font-family:var(--font-ui);font-weight:600;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary);display:block;margin-bottom:var(--space-3)}.page-lobby .map-picker{display:grid;gap:var(--space-3)}.page-lobby .map-option{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--elev-sm);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;cursor:pointer}.page-lobby .map-option:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--elev-md)}.page-lobby .map-option.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 6px 18px color-mix(in srgb,var(--accent) 28%,transparent)}.page-lobby .map-name{font-family:var(--font-ui);font-weight:600;font-size:var(--text-base);color:var(--text-primary)}.page-lobby .map-desc{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);margin-top:var(--space-1)}.page-lobby .btn-gold:focus-visible,.page-lobby .btn-secondary:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-lobby .hero-option{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--elev-sm);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;cursor:pointer}.page-lobby .hero-option:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--elev-md)}.page-lobby .hero-option.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold),0 6px 18px color-mix(in srgb,var(--gold) 28%,transparent)}.comp-action-panel.card{border-left:2px solid color-mix(in srgb,var(--accent) 55%,transparent)}.comp-action-panel button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.comp-combat-log.combat-log{background:var(--surface-base);border:1px solid var(--border-subtle);border-left:2px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:var(--radius-md);padding:var(--space-3);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.75;box-shadow:inset 0 1px var(--space-2) color-mix(in srgb,var(--border-strong) 35%,transparent)}.comp-combat-log.combat-log>div{padding:var(--space-1) var(--space-2);border-bottom:1px solid color-mix(in srgb,var(--border-subtle) 45%,transparent)}.comp-combat-log.combat-log>div:last-of-type{border-bottom:none}.comp-combat-log.combat-log::-webkit-scrollbar{width:var(--space-2)}.comp-combat-log.combat-log::-webkit-scrollbar-track{background:color-mix(in srgb,var(--surface-base) 70%,transparent)}.comp-combat-log.combat-log::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent) 40%,var(--surface-raised));border-radius:var(--radius-pill)}.comp-combat-log.combat-log::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 60%,var(--surface-raised))}.comp-combat-log.combat-log .event-damage{color:var(--status-danger)}.comp-combat-log.combat-log .event-healing{color:var(--status-success)}.comp-combat-log.combat-log .event-move{color:var(--text-muted)}.comp-combat-log.combat-log .event-spell{color:var(--purple)}.comp-combat-log.combat-log .event-turn{color:var(--accent);font-weight:600;text-shadow:0 0 var(--space-1) color-mix(in srgb,var(--accent) 50%,transparent)}.comp-combat-log.combat-log .event-defeat{color:var(--status-danger);font-weight:700;text-shadow:0 0 var(--space-1) color-mix(in srgb,var(--status-danger) 45%,transparent)}.comp-combat-log.combat-log .event-karma{color:var(--gold);font-weight:600;text-shadow:0 0 var(--space-1) color-mix(in srgb,var(--gold) 50%,transparent)}.comp-bard-panel.bard-panel::-webkit-scrollbar{width:var(--space-2)}.comp-bard-panel.bard-panel::-webkit-scrollbar-track{background:color-mix(in srgb,var(--surface-base) 70%,transparent)}.comp-bard-panel.bard-panel::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--gold) 40%,var(--surface-raised));border-radius:var(--radius-pill)}.comp-bard-panel .bard-empty,.comp-bard-panel .bard-turn-sep{color:var(--text-muted)}.comp-bard-panel .bard-line.bard-critical_hit,.comp-bard-panel .bard-line.bard-critical_hit .bard-text{color:color-mix(in srgb,var(--gold) 65%,var(--text-primary) 35%)}.comp-bard-panel .bard-line.bard-killing_blow,.comp-bard-panel .bard-line.bard-killing_blow .bard-text{color:var(--gold)}.comp-bard-panel .bard-line.bard-last_stand,.comp-bard-panel .bard-line.bard-last_stand .bard-text{color:color-mix(in srgb,var(--gold) 70%,var(--gold) 30%)}.comp-bard-panel .bard-line.bard-combat_end,.comp-bard-panel .bard-line.bard-combat_end .bard-text{color:color-mix(in srgb,var(--gold) 65%,var(--text-primary) 35%);font-weight:var(--weight-semibold)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--surface-overlay);z-index:200}.modal-card{max-width:400px;padding:var(--space-5);text-align:center;color:var(--text-primary);background:var(--surface);border-radius:var(--radius-lg)}.modal-card:focus{outline:none}.reaction-modal-card{border:1px solid var(--gold);box-shadow:0 8px 32px #00000073,0 0 24px -10px var(--gold)}.reaction-modal-icon{display:flex;justify-content:center;margin-bottom:var(--space-2)}.reaction-modal-title{margin:0;font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:.04em;color:var(--gold)}.reaction-modal-text{margin-top:var(--space-2);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--text-secondary)}.reaction-modal-timer{margin:var(--space-3) 0;font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:700;color:var(--gold)}.reaction-modal-bar{width:100%;height:4px;margin-bottom:var(--space-3);overflow:hidden;background:var(--surface-raised);border-radius:var(--radius-pill)}.reaction-modal-bar-fill{height:100%;background:var(--gold);border-radius:var(--radius-pill);transition:width .1s linear}.reaction-modal-bar-fill.low{background:var(--status-danger)}.reaction-modal-buttons{display:flex;gap:var(--space-3);justify-content:center;margin-top:var(--space-4)}.reaction-modal-overlay button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.death-save-card{border:1px solid var(--status-danger);box-shadow:0 8px 32px #00000073,0 0 24px -10px var(--status-danger)}.death-save-icon{display:flex;justify-content:center;margin-bottom:var(--space-2);filter:grayscale(60%) brightness(.8)}.death-save-title{margin:0;font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:.04em;color:var(--status-danger)}.death-save-text{margin-top:var(--space-2);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--text-secondary)}.death-save-saves{margin:var(--space-4) 0;display:flex;flex-direction:column;gap:var(--space-2)}.death-save-label{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}.death-save-label.success{color:var(--status-success)}.death-save-label.failure{color:var(--status-danger);margin-top:var(--space-1)}.death-save-pips{display:flex;gap:var(--space-2);justify-content:center}.death-save-pip{width:14px;height:14px;border-radius:var(--radius-pill);background:var(--surface-raised);border:2px solid var(--surface-raised);transition:background .3s}.death-save-pip.success{border-color:var(--status-success)}.death-save-pip.success.filled{background:var(--status-success)}.death-save-pip.failure{border-color:var(--status-danger)}.death-save-pip.failure.filled{background:var(--status-danger)}.death-save-timer{margin:var(--space-3) 0;font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:700;color:var(--status-danger)}.death-save-bar{width:100%;height:4px;margin-bottom:var(--space-4);overflow:hidden;background:var(--surface-raised);border-radius:var(--radius-pill)}.death-save-bar-fill{height:100%;background:var(--status-danger);border-radius:var(--radius-pill);transition:width .1s linear}.death-save-roll-btn{font-size:var(--text-lg);padding:var(--space-3) var(--space-6)}.death-save-waiting{font-size:var(--text-sm);font-style:italic;color:var(--text-secondary)}.death-save-overlay button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.comp-turn-timer{padding:var(--space-1) var(--space-3);text-align:center;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-bold);letter-spacing:var(--tracking-eyebrow);border-radius:var(--radius-sm);color:var(--gold);border:1px solid var(--gold);background:color-mix(in srgb,var(--gold) 15%,transparent)}.comp-turn-timer.is-urgent{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 20%,transparent);animation:turn-timer-flicker 1s ease-in-out infinite}@keyframes turn-timer-flicker{0%,to{box-shadow:0 0 var(--space-1) color-mix(in srgb,var(--accent) 40%,transparent)}50%{box-shadow:0 0 var(--space-3) color-mix(in srgb,var(--accent) 70%,transparent)}}@media (prefers-reduced-motion: reduce){.comp-turn-timer.is-urgent{animation:none}}.boss-hp-header{--boss-c1: color-mix(in srgb, var(--tbt-blue) 62%, var(--text-primary));--boss-c2: var(--tbt-blue);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);color:var(--text-primary);font-family:var(--font-ui);border-bottom:1px solid var(--boss-c1)}.boss-hp-header.phase-wrath{--boss-c1: var(--tbt-gold);--boss-c2: var(--tbt-gold-dim)}.boss-hp-header.phase-ruin{--boss-c1: var(--tbt-accent);--boss-c2: var(--ember-deep)}.boss-hp-header .boss-hp-phase-name{font-weight:var(--weight-bold);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--boss-c1)}.boss-hp-header .boss-hp-toprow{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.boss-hp-header .boss-hp-numbers{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums}.boss-hp-header .boss-hp-name{margin:0;font-family:var(--font-display);font-size:var(--text-2xl);line-height:var(--lh-2xl);color:var(--text-primary)}.boss-hp-header .boss-hp-bar{position:relative;height:14px;background:var(--tbt-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.boss-hp-header .boss-hp-bar-fill{height:100%;background:linear-gradient(90deg,var(--boss-c1),var(--boss-c2));box-shadow:0 0 12px -2px var(--boss-c1);transition:width .35s cubic-bezier(.22,1,.36,1)}.boss-hp-header .boss-hp-bar-ticks{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(100% / 12 - 1px),rgba(0,0,0,.7) calc(100% / 12 - 1px),rgba(0,0,0,.7) calc(100% / 12))}.boss-hp-header .boss-hp-notch-50,.boss-hp-header .boss-hp-notch-25{position:absolute;top:0;bottom:0;width:2px;pointer-events:none}.boss-hp-header .boss-hp-notch-50{left:50%;background:color-mix(in srgb,var(--text-primary) 25%,transparent)}.boss-hp-header .boss-hp-notch-25{left:25%;background:color-mix(in srgb,var(--text-primary) 18%,transparent)}.boss-hp-header .boss-hp-legend{position:relative;height:12px;font-family:var(--font-mono);font-size:9px;color:var(--text-disabled)}.boss-hp-header .boss-hp-legend>span{position:absolute;transform:translate(-50%);white-space:nowrap}.boss-encounter-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:var(--surface-overlay);z-index:250}.boss-encounter-panel{display:flex;gap:var(--space-6);width:100%;max-width:960px;max-height:90vh;padding:var(--space-6);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:0 24px 60px #0009,0 0 40px -16px var(--tbt-accent)}.boss-encounter-portrait{position:relative;flex:0 0 340px;align-self:stretch;min-height:420px;overflow:hidden;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:linear-gradient(180deg,color-mix(in srgb,var(--tbt-accent) 16%,var(--tbt-bg)),var(--tbt-bg))}.boss-encounter-portrait .boss-encounter-canvas{display:block;width:100%;height:100%}.boss-encounter-info{flex:1 1 auto;min-width:0;overflow-y:auto;color:var(--text-primary);font-family:var(--font-body)}.boss-encounter-info .boss-encounter-eyebrow{font-family:var(--font-ui);font-weight:var(--weight-semibold);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--tbt-accent)}.boss-encounter-info .boss-encounter-name{margin:var(--space-1) 0 0;font-family:var(--font-display);font-size:var(--text-5xl);line-height:var(--lh-5xl);color:var(--text-primary);text-shadow:0 6px 30px color-mix(in srgb,var(--accent) 28%,transparent)}.boss-encounter-info .boss-encounter-epithet{margin-top:var(--space-1);font-style:italic;font-size:var(--text-lg);color:var(--accent)}.boss-encounter-info .boss-encounter-lore{margin-top:var(--space-4);font-size:var(--text-base);line-height:var(--lh-base);color:var(--text-secondary)}.boss-encounter-info .boss-encounter-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-top:var(--space-5)}.boss-encounter-info .boss-encounter-stat{padding:var(--space-3);text-align:center;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.boss-encounter-info .boss-encounter-stat-label{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-disabled)}.boss-encounter-info .boss-encounter-stat-value{margin-top:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xl);color:var(--text-primary)}.boss-encounter-info .boss-encounter-phases{display:flex;gap:var(--space-3);margin-top:var(--space-5)}.boss-encounter-info .boss-encounter-phase{display:flex;align-items:center;gap:var(--space-2);flex:1 1 0;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary)}.boss-encounter-info .boss-encounter-phase:before{content:"";width:8px;height:8px;border-radius:var(--radius-pill);background:var(--text-disabled);box-shadow:0 0 8px -1px currentColor}.boss-encounter-info .boss-encounter-phase.phase-vigil:before{background:var(--tbt-blue)}.boss-encounter-info .boss-encounter-phase.phase-wrath:before{background:var(--tbt-gold)}.boss-encounter-info .boss-encounter-phase.phase-ruin:before{background:var(--tbt-accent)}.boss-encounter-info .boss-encounter-actions{display:flex;gap:var(--space-3);margin-top:var(--space-6)}.boss-encounter-info .boss-btn-primary{font-family:var(--font-ui);font-weight:var(--weight-bold);font-size:var(--text-sm);padding:var(--space-3) var(--space-5);color:var(--tbt-ink);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-md);box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 32%,transparent);cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .12s ease}.boss-encounter-info .boss-btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 10px 26px color-mix(in srgb,var(--accent) 42%,transparent)}.boss-encounter-info .boss-btn-primary:focus-visible{outline:none;box-shadow:var(--focus-ring)}.boss-encounter-info .boss-btn-secondary{font-family:var(--font-ui);font-weight:var(--weight-medium);font-size:var(--text-sm);padding:var(--space-3) var(--space-5);color:var(--text-secondary);background:transparent;border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.boss-encounter-info .boss-btn-secondary:hover{background:var(--surface-raised);color:var(--text-primary)}.boss-encounter-info .boss-btn-secondary:focus-visible{outline:none;box-shadow:var(--focus-ring)}@media (max-width: 720px){.boss-encounter-panel{flex-direction:column;gap:var(--space-4)}.boss-encounter-portrait{flex-basis:auto;min-height:260px}.boss-encounter-info .boss-encounter-stats{grid-template-columns:repeat(2,1fr)}.boss-encounter-info .boss-encounter-phases{flex-direction:column}}.matrix-overlay{position:relative;border:3px solid #00ff41;box-shadow:0 0 20px #00ff4126,inset 0 0 20px #00ff410d}.matrix-overlay:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1000;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,255,65,.03) 2px,rgba(0,255,65,.03) 4px)}.matrix-watermark{position:fixed;top:60px;right:16px;z-index:1001;font-family:monospace;pointer-events:none}.matrix-watermark-title{font-size:14px;font-weight:700;color:#00ff41;opacity:.7;letter-spacing:.2em;text-shadow:0 0 8px rgba(0,255,65,.4)}.matrix-watermark-desc{font-size:11px;color:#00ff41;opacity:.5;margin-top:4px;max-width:260px;text-align:right}.page-battle{background:var(--tbt-bg);color:var(--text-primary);font-family:var(--font-body);padding:var(--space-5) var(--space-4) var(--space-6)}.page-battle .top-strip{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.page-battle .arena-label{font-family:var(--font-ui);font-weight:var(--weight-bold);font-size:var(--text-xs);color:var(--text-primary);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}.page-battle .round-counter{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-disabled)}.page-battle .battle-grid-canvas-wrapper{border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--elev-lg);background:radial-gradient(120% 80% at 50% 0%,color-mix(in srgb,var(--tbt-blue) 10%,transparent),transparent 60%),var(--tbt-bg);overflow:hidden}.page-battle .turn-banner{font-family:var(--font-ui);font-weight:var(--weight-bold);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;text-align:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.page-battle .turn-banner.is-active{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 18%,transparent),color-mix(in srgb,var(--accent) 34%,transparent),color-mix(in srgb,var(--accent) 18%,transparent));border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:color-mix(in srgb,var(--text-primary) 86%,var(--tbt-accent-glow))}.page-battle .turn-banner.is-waiting{background:linear-gradient(90deg,color-mix(in srgb,var(--text-secondary) 8%,transparent),color-mix(in srgb,var(--text-secondary) 16%,transparent),color-mix(in srgb,var(--text-secondary) 8%,transparent));border-color:var(--border-subtle);color:var(--text-secondary)}.page-battle .action-panel-card,.page-battle .battle-log-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--elev-sm),inset 0 1px 0 var(--border-subtle);padding:var(--space-4)}.page-battle .action-panel-card .section-eyebrow{font-family:var(--font-ui);font-weight:var(--weight-semibold);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-secondary)}.page-battle .battle-log-card .log-line{font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--text-secondary)}.page-battle .btn-end-turn{font-family:var(--font-ui);font-weight:var(--weight-bold);font-size:var(--text-sm);background:var(--accent);color:var(--tbt-ink);border:1px solid var(--accent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 32%,transparent);cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .12s ease}.page-battle .btn-end-turn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 10px 26px color-mix(in srgb,var(--accent) 40%,transparent)}.page-battle .btn-end-turn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-battle .btn-end-turn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.page-battle .reconnect-banner{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-primary);background:color-mix(in srgb,var(--accent) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);box-shadow:var(--elev-md)}.page-battle .waiting-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--elev-sm);padding:var(--space-6);text-align:center;color:var(--text-secondary)}.page-battle .party-slot{background:var(--surface-raised);border:1px solid color-mix(in srgb,var(--tbt-gold) 35%,var(--border-subtle));border-radius:var(--radius-md);padding:var(--space-3);color:var(--text-primary)}.page-battle .victory-card{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--elev-lg);padding:var(--space-7) var(--space-6);text-align:center;margin:0 auto}.page-battle .atmosphere-btn{font-family:var(--font-ui);font-weight:var(--weight-medium);font-size:var(--text-sm);background:var(--surface);color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.page-battle .atmosphere-btn:hover{background:var(--surface-raised);color:var(--text-primary)}.page-battle .atmosphere-btn.is-active{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--text-primary)}.page-battle .targeting-tooltip{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--tbt-gold);background:var(--surface-overlay);border:1px solid color-mix(in srgb,var(--tbt-gold) 40%,transparent);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);box-shadow:var(--elev-md)}.page-battle .initiative-item{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.page-battle .initiative-item.is-active{color:var(--text-primary);border-color:color-mix(in srgb,var(--tbt-gold) 55%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--tbt-gold) 30%,transparent)}.page-battle .unit-info-overlay{font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-primary);background:var(--surface-overlay);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--elev-lg);padding:var(--space-3) var(--space-4)}.page-hall{padding:var(--space-6) var(--space-4);background-color:var(--surface-base);min-height:calc(100vh - 56px);color:var(--text-primary);font-family:var(--font-body)}.page-hall .hall-header{text-align:center;margin-bottom:var(--space-6)}.page-hall .hall-eyebrow{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--gold);margin-bottom:var(--space-3)}.page-hall .hall-headline{font-family:var(--font-display);font-size:var(--text-4xl);line-height:var(--lh-4xl);font-weight:400;color:var(--text-primary);margin:0 0 var(--space-3);letter-spacing:.01em}.page-hall .hall-subtitle{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--lh-base);color:var(--text-secondary);max-width:48ch;margin:0 auto}.page-hall .tabs-container{display:flex;gap:var(--space-2);justify-content:center;margin-bottom:var(--space-5)}.page-hall .tabs-container button{padding:var(--space-2) var(--space-4);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;background:transparent;border:1px solid var(--border-strong);color:var(--text-secondary)}.page-hall .tabs-container button:hover{color:var(--text-primary);border-color:var(--text-secondary)}.page-hall .tabs-container button.active-tab{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);box-shadow:0 0 12px color-mix(in srgb,var(--tbt-accent) 35%,transparent)}.page-hall .error-banner{text-align:center;color:var(--status-danger);margin-bottom:var(--space-3);font-size:var(--text-sm);font-family:var(--font-body);background:color-mix(in srgb,var(--tbt-red) 10%,transparent);border:1px solid color-mix(in srgb,var(--tbt-red) 20%,transparent);padding:var(--space-2);border-radius:var(--radius-sm);max-width:400px;margin-left:auto;margin-right:auto}.page-hall .card{background-color:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--elev-md);padding:var(--space-5);overflow-x:auto}.page-hall .leaderboard-table{width:100%;border-collapse:collapse}.page-hall .leaderboard-table th{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:2px solid var(--border-strong);background:var(--surface-raised);color:var(--accent);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-eyebrow)}.page-hall .leaderboard-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-size:var(--text-sm);vertical-align:middle}.page-hall .leaderboard-table tr:last-child td{border-bottom:none}.page-hall .leaderboard-table tr:nth-child(2n) td{background-color:color-mix(in srgb,var(--surface-raised) 55%,var(--surface))}.page-hall .leaderboard-table tr:hover td{background-color:var(--surface-raised)}.page-hall .rank-cell{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;width:50px;color:var(--text-secondary)}.page-hall .rank-1{color:var(--gold);text-shadow:0 0 8px color-mix(in srgb,var(--tbt-gold) 40%,transparent)}.page-hall .rank-2{color:var(--text-primary)}.page-hall .rank-3{color:var(--text-secondary)}.page-hall .username-cell{font-family:var(--font-ui);font-weight:600;color:var(--text-primary)}.page-hall .wins-cell{color:var(--status-success)!important;font-family:var(--font-mono);font-weight:600}.page-hall .losses-cell{color:var(--status-danger)!important;font-family:var(--font-mono);font-weight:600}.page-hall .mono-cell{font-family:var(--font-mono);color:var(--text-primary)}.page-hall .rate-cell{color:var(--gold);font-family:var(--font-mono);font-weight:600}.page-hall .match-cell{font-family:var(--font-body);font-weight:500}.page-hall .map-cell{text-transform:capitalize;color:var(--text-secondary)}.page-hall .empty-row{text-align:center;color:var(--text-secondary);padding:var(--space-6)!important}.page-hall .empty-icon{font-size:var(--text-3xl);margin-bottom:var(--space-3);opacity:.7}.page-hall .replay-link{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--status-info);text-decoration:none;border-bottom:1px solid transparent;transition:all .2s ease}.page-hall .replay-link:hover{color:var(--status-info);border-bottom-color:var(--status-info)}.page-hall .tale-btn{font-size:var(--text-xs);padding:var(--space-1) var(--space-3);border:1px solid var(--gold);background:transparent;color:var(--gold);cursor:pointer;text-transform:uppercase;font-family:var(--font-ui);font-weight:600;letter-spacing:.05em;transition:all .2s ease}.page-hall .tale-btn:hover:not(:disabled){background:var(--gold);color:var(--text-on-accent);box-shadow:0 0 10px color-mix(in srgb,var(--tbt-gold) 25%,transparent)}.page-hall .tale-btn:disabled{cursor:wait;opacity:.5}.page-hall .tabs-container button:focus-visible,.page-hall .replay-link:focus-visible,.page-hall .tale-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-replay{padding:var(--space-3)}.page-replay .replay-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-3)}.page-replay .replay-back{font-size:var(--text-sm)}.page-replay .replay-title{flex:1;margin:0;font-family:var(--font-display);font-weight:400;color:var(--gold)}.page-replay .replay-controls{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid var(--border-subtle);border-left:3px solid var(--accent);border-radius:var(--radius-md)}.page-replay .replay-controls input[type=range]{flex:1;accent-color:var(--accent);cursor:pointer}.page-replay .replay-controls select{background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.page-replay .replay-speed{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--text-secondary);white-space:nowrap}.page-replay .replay-stage{display:grid;grid-template-columns:1fr 350px;gap:var(--space-3)}.page-replay .replay-log{padding:0;max-height:70vh;overflow:hidden}.page-replay .replay-log-header{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;color:var(--gold)}.page-replay.replay-loading{padding:var(--space-5);text-align:center}@media (max-width: 860px){.page-replay .replay-stage{grid-template-columns:1fr}}.page-tales{padding:var(--space-6) var(--space-4);background-color:var(--surface-base);min-height:calc(100vh - 56px);color:var(--text-primary);font-family:var(--font-body)}.page-tales h1{font-family:var(--font-display);font-size:var(--text-3xl);line-height:var(--lh-3xl);font-weight:400;color:var(--gold);text-align:center;margin-bottom:var(--space-2);text-shadow:0 2px 10px color-mix(in srgb,var(--tbt-gold) 15%,transparent);letter-spacing:.02em}.page-tales .tales-subtitle{font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-secondary);text-align:center;margin-bottom:var(--space-5);max-width:600px;margin-left:auto;margin-right:auto}.page-tales .loading{color:var(--text-secondary);text-align:center;font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-5)}.page-tales .empty-card{background-color:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--elev-md);text-align:center;padding:var(--space-7) var(--space-5);max-width:500px;margin:var(--space-6) auto}.page-tales .empty-icon{font-size:var(--text-4xl);margin-bottom:var(--space-3);opacity:.7}.page-tales .empty-title{color:var(--gold);font-size:var(--text-lg);font-family:var(--font-display);font-weight:500;margin-bottom:var(--space-2);letter-spacing:.02em}.page-tales .empty-subtitle{color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--lh-sm)}.page-tales .tales-grid{display:flex;flex-direction:column;gap:var(--space-4);max-width:760px;margin:var(--space-5) auto 0}.page-tales .tale-card{background-color:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--elev-lg);padding:var(--space-5);display:flex;flex-direction:column;color:inherit;text-decoration:none;cursor:pointer;transition:all .2s ease-in-out}.page-tales .tale-card:hover{border-color:var(--accent);background-color:var(--surface-raised);transform:translateY(-3px);box-shadow:0 6px 20px color-mix(in srgb,var(--tbt-accent) 15%,transparent)}.page-tales .tale-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-2)}.page-tales .tale-type{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--accent);display:flex;align-items:center;gap:var(--space-1)}.page-tales .tale-date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-disabled)}.page-tales .tale-card h3{font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--lh-lg);font-weight:500;color:var(--text-primary);margin-bottom:var(--space-2);transition:color .2s ease}.page-tales .tale-card:hover h3{color:var(--gold)}.page-tales .tale-card p{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--lh-sm);color:var(--text-secondary);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.page-tales .tale-card:focus-visible{outline:none;box-shadow:var(--focus-ring),var(--elev-sm);border-color:var(--accent)}.page-contact h1{font-family:var(--font-display);font-weight:400;color:var(--text-primary);text-align:center;margin-bottom:var(--space-2)}.page-contact .contact-subtitle{font-family:var(--font-body);font-size:var(--text-lg);color:var(--text-secondary);text-align:center;max-width:48ch;margin:0 auto var(--space-6)}.page-contact .contact-form.card,.page-contact .contact-success.card{max-width:540px;margin:0 auto;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--elev-md),inset 0 1px 0 var(--border-subtle);padding:var(--space-6)}.page-contact .contact-success.card{text-align:center}.page-contact .contact-success.card h2{font-family:var(--font-display);font-weight:400;font-size:var(--text-3xl);color:var(--text-primary);margin-bottom:var(--space-3)}.page-contact .contact-success.card p{font-family:var(--font-body);color:var(--text-secondary);margin-bottom:var(--space-5)}.page-contact .form-group{margin-bottom:var(--space-4)}.page-contact .form-group label{display:block;font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--text-secondary);margin-bottom:var(--space-2)}.page-contact .form-group input,.page-contact .form-group textarea{width:100%;box-sizing:border-box;padding:var(--space-3);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);transition:border-color .15s ease,box-shadow .15s ease}.page-contact .form-group textarea{resize:vertical;min-height:120px}.page-contact .form-group input::placeholder,.page-contact .form-group textarea::placeholder{color:var(--text-disabled)}.page-contact .form-group input:focus,.page-contact .form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.page-contact .btn-gold{font-family:var(--font-ui);font-weight:600;letter-spacing:.02em;width:100%;padding:var(--space-3) var(--space-5);background:var(--gold);color:var(--text-on-accent);border:1px solid var(--gold);border-radius:var(--radius-md);box-shadow:var(--elev-sm),inset 0 1px 0 var(--border-subtle);cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .12s ease}.page-contact .btn-gold:hover:not(:disabled){background:var(--accent);border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--elev-md),0 0 22px -6px var(--accent-glow)}.page-contact .btn-gold:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-contact .btn-gold:disabled{background:var(--surface-raised);border-color:var(--border-subtle);color:var(--text-disabled);box-shadow:none;cursor:not-allowed}.page-contact .contact-success.card .btn-gold{width:auto}.page-contact .contact-error{color:var(--status-danger);font-family:var(--font-body);font-size:var(--text-sm);margin-bottom:var(--space-3)}.page-profile{max-width:980px;margin:0 auto;padding:var(--space-7) var(--space-6) var(--space-8);font-family:var(--font-body);color:var(--text-primary)}.page-profile .profile-header{display:flex;align-items:center;gap:var(--space-5);margin-bottom:var(--space-7)}.page-profile .profile-avatar{width:96px;height:96px;border-radius:var(--radius-xl);overflow:hidden;border:1px solid color-mix(in srgb,var(--status-info) 50%,transparent);box-shadow:var(--elev-lg);display:flex;align-items:center;justify-content:center;background:linear-gradient(var(--status-info),color-mix(in srgb,var(--status-info) 60%,var(--surface-base)));flex-shrink:0}.page-profile .profile-avatar img{width:64px;height:64px;image-rendering:pixelated}.page-profile .profile-avatar-empty{font-family:var(--font-ui);font-size:var(--text-3xl);color:var(--text-disabled)}.page-profile .profile-info{flex:1}.page-profile .profile-name-row{display:flex;align-items:center;gap:var(--space-3)}.page-profile .profile-name{font-family:var(--font-display);font-weight:400;font-size:var(--text-4xl);line-height:var(--lh-4xl);color:var(--text-primary);margin:0}.page-profile .profile-rank{font-family:var(--font-ui);font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent);border:1px solid color-mix(in srgb,var(--gold) 30%,transparent);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill)}.page-profile .profile-subtitle{font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-2)}.page-profile .stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-bottom:var(--space-7)}.page-profile .stat-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-4)}.page-profile .stat-card-value{font-family:var(--font-display);font-size:var(--text-3xl);line-height:1}.page-profile .stat-card-label{font-family:var(--font-ui);font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);margin-top:var(--space-2)}.page-profile .profile-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--space-5);align-items:start}.page-profile .section-eyebrow{font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--space-4)}.page-profile .hero-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-2)}.page-profile .hero-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--elev-sm);padding:var(--space-3);text-align:center;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.page-profile .hero-card:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--elev-md)}.page-profile .hero-card img{width:48px;height:48px;image-rendering:pixelated;display:block;margin:0 auto var(--space-2)}.page-profile .hero-card-name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--gold)}.page-profile .hero-card-class{font-size:11px;color:var(--text-secondary);text-transform:capitalize;margin-top:2px}.page-profile .hero-card-stats{font-family:var(--font-mono);font-size:11px;color:var(--text-disabled);margin-top:var(--space-1)}.page-profile .hero-card-abilities{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-subtle)}.page-profile .ability-label{font-size:9px;color:var(--text-disabled);letter-spacing:.5px}.page-profile .ability-value{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--gold)}.page-profile .ability-mod{font-family:var(--font-mono);font-size:10px;color:var(--text-disabled)}.page-profile .hero-card.fallen{opacity:.5;border-color:color-mix(in srgb,var(--status-danger) 35%,var(--border-subtle))}.page-profile .hero-card.fallen img{filter:grayscale(100%)}.page-profile .hero-card.fallen .hero-card-name{color:var(--status-danger)}.page-profile .match-list{display:flex;flex-direction:column;gap:var(--space-2)}.page-profile .match-row{display:flex;align-items:center;gap:var(--space-3);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);transition:background .12s ease}.page-profile .match-row:hover{background:var(--surface-raised)}.page-profile .match-result{width:44px;text-align:center;font-family:var(--font-ui);font-weight:700;font-size:var(--text-xs)}.page-profile .match-detail{flex:1}.page-profile .match-mode{font-family:var(--font-body);font-size:13px;color:var(--text-primary);text-transform:capitalize}.page-profile .match-meta{font-family:var(--font-mono);font-size:9px;color:var(--text-disabled)}.page-profile .match-when{font-family:var(--font-mono);font-size:10px;color:var(--text-disabled)}.page-profile .boss-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-2)}.page-profile .boss-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--elev-sm);padding:var(--space-3);text-align:center;transition:transform .12s ease,border-color .12s ease}.page-profile .boss-card:hover{transform:translateY(-2px);border-color:var(--border-strong)}.page-profile .boss-card-name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--gold)}.page-profile .boss-card-tier{font-size:10px;text-transform:uppercase;letter-spacing:1px;margin-top:var(--space-1)}.page-profile .boss-card-date{font-size:10px;color:var(--text-disabled);margin-top:var(--space-1)}.page-profile .stats-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.page-profile .stats-breakdown-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3)}.page-profile .stats-breakdown-label{font-size:11px;color:var(--text-disabled);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:1px}.page-profile .stats-breakdown-row{display:flex;justify-content:space-between;font-size:var(--text-xs);padding:2px 0}.page-profile .stats-breakdown-row span:first-child{text-transform:capitalize}.page-profile .stats-breakdown-row span:last-child{color:var(--status-success);font-family:var(--font-mono);font-weight:600}.page-profile .empty-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center}.page-profile .empty-card p{color:var(--text-disabled);font-size:13px;margin:0 0 var(--space-3)}.page-profile .btn-gold{display:inline-block;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;padding:var(--space-2) var(--space-5);background:var(--gold);color:var(--tbt-ink);border:1px solid var(--gold);border-radius:var(--radius-md);cursor:pointer;text-decoration:none;transition:background .15s ease,transform .12s ease}.page-profile .btn-gold:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.page-profile .btn-gold:focus-visible{outline:none;box-shadow:var(--focus-ring)}.page-profile .notification-toggle-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.page-profile .notification-toggle-title{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1)}.page-profile .notification-toggle-desc{font-size:var(--text-xs);color:var(--text-secondary);line-height:1.4}.page-profile .notification-toggle-btn{flex-shrink:0;position:relative;width:44px;height:24px;border:none;border-radius:12px;background:var(--surface-overlay);cursor:pointer;transition:background .2s ease;padding:0}.page-profile .notification-toggle-btn.active{background:var(--status-success)}.page-profile .notification-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.page-profile .notification-toggle-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--text-primary);transition:transform .2s ease}.page-profile .notification-toggle-btn.active .notification-toggle-knob{transform:translate(20px)}.page-profile .notification-toggle-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}@media (max-width: 768px){.page-profile{padding:var(--space-5) var(--space-4)}.page-profile .profile-header{flex-direction:column;text-align:center}.page-profile .profile-name{font-size:var(--text-2xl)}.page-profile .stat-strip{grid-template-columns:repeat(2,1fr)}.page-profile .profile-grid{grid-template-columns:1fr}}.page-onboarding.accent-ember{--step-accent: var(--accent)}.page-onboarding.accent-info{--step-accent: var(--status-info)}.page-onboarding.accent-gold{--step-accent: var(--gold)}.page-onboarding .onboarding-stage{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-7) var(--space-5);overflow:hidden;background:radial-gradient(120% 90% at 50% -5%,color-mix(in srgb,var(--accent) 12%,var(--surface-base)),var(--surface-base) 60%)}.page-onboarding .onboarding-vignette{position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 220px 70px #000000b3;pointer-events:none}.page-onboarding .onboarding-glow{position:absolute;left:50%;top:-10%;width:700px;height:520px;max-width:110vw;transform:translate(-50%);background:radial-gradient(closest-side,color-mix(in srgb,var(--step-accent) 16%,transparent),transparent 70%);pointer-events:none;animation:onboarding-glow-pulse 5s ease-in-out infinite}@keyframes onboarding-glow-pulse{0%,to{opacity:.4}50%{opacity:.85}}.page-onboarding .onboarding-skip{position:absolute;top:var(--space-5);right:var(--space-5);z-index:5;background:none;border:none;cursor:pointer;font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-disabled);transition:color .15s ease}.page-onboarding .onboarding-skip:hover{color:var(--text-secondary)}.page-onboarding .onboarding-skip:focus-visible{outline:none;border-radius:var(--radius-sm);box-shadow:var(--focus-ring)}.page-onboarding .onboarding-card{position:relative;z-index:2;width:100%;max-width:560px}.page-onboarding .onboarding-progress{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-6)}.page-onboarding .onboarding-dot{height:4px;width:18px;border-radius:3px;background:var(--border-strong);transition:width .3s ease,background .3s ease}.page-onboarding .onboarding-dot.is-current{width:30px;background:var(--step-accent)}.page-onboarding .onboarding-dot.is-done{background:var(--step-accent)}.page-onboarding .onboarding-body{text-align:center;min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.page-onboarding .onboarding-art{position:relative;width:120px;height:120px;margin-bottom:var(--space-6);display:flex;align-items:center;justify-content:center}.page-onboarding .onboarding-art-glow{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-pill);background:radial-gradient(closest-side,color-mix(in srgb,var(--step-accent) 22%,transparent),transparent 72%);animation:onboarding-art-breathe 4s ease-in-out infinite}@keyframes onboarding-art-breathe{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.06);opacity:1}}.page-onboarding .onboarding-art-glyph{position:relative;font-size:56px;line-height:1;filter:drop-shadow(0 4px 14px color-mix(in srgb,var(--step-accent) 45%,transparent));animation:onboarding-art-bob 3.2s ease-in-out infinite}@keyframes onboarding-art-bob{0%,to{transform:translateY(2px)}50%{transform:translateY(-3px)}}.page-onboarding .onboarding-copy{animation:onboarding-fade-up .42s cubic-bezier(.22,1,.36,1)}@keyframes onboarding-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-onboarding .onboarding-eyebrow{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--step-accent);margin-bottom:var(--space-4)}.page-onboarding .onboarding-title{font-family:var(--font-display);font-weight:400;font-size:var(--text-4xl);line-height:var(--lh-4xl);color:var(--text-primary);max-width:16ch;margin:0 auto var(--space-4)}.page-onboarding .onboarding-text{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--lh-base);color:var(--text-secondary);max-width:46ch;margin:0 auto}.page-onboarding .onboarding-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;margin-top:var(--space-5)}.page-onboarding .onboarding-chip{padding:var(--space-2) var(--space-3);background:color-mix(in srgb,var(--surface) 82%,transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-align:left}.page-onboarding .onboarding-chip-head{display:flex;align-items:center;gap:var(--space-2)}.page-onboarding .onboarding-chip-dot{width:7px;height:7px;border-radius:var(--radius-pill);flex-shrink:0}.page-onboarding .onboarding-chip-dot.dot-success{background:var(--status-success)}.page-onboarding .onboarding-chip-dot.dot-arcane{background:var(--tbt-purple)}.page-onboarding .onboarding-chip-dot.dot-info{background:var(--status-info)}.page-onboarding .onboarding-chip-name{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;color:var(--text-primary)}.page-onboarding .onboarding-chip-note{font-family:var(--font-body);font-size:var(--text-xs);color:var(--text-secondary);margin-top:var(--space-1)}.page-onboarding .onboarding-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-6)}.page-onboarding .onboarding-back{background:none;border:none;cursor:pointer;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);transition:color .15s ease,opacity .15s ease}.page-onboarding .onboarding-back:hover:not(:disabled){color:var(--text-primary)}.page-onboarding .onboarding-back:disabled{color:var(--text-disabled);opacity:.5;cursor:default}.page-onboarding .onboarding-back:focus-visible{outline:none;border-radius:var(--radius-sm);box-shadow:var(--focus-ring)}.page-onboarding .onboarding-counter{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-disabled)}.page-onboarding .onboarding-next{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--step-accent);color:var(--text-on-accent);border:1px solid var(--step-accent);border-radius:var(--radius-md);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:700;letter-spacing:.03em;cursor:pointer;box-shadow:var(--elev-md),0 10px 26px -8px color-mix(in srgb,var(--step-accent) 42%,transparent);transition:transform .12s ease,box-shadow .15s ease,filter .15s ease}.page-onboarding .onboarding-next:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:var(--elev-lg),0 12px 30px -8px color-mix(in srgb,var(--step-accent) 52%,transparent)}.page-onboarding .onboarding-next:focus-visible{outline:none;box-shadow:var(--focus-ring)}@media (max-width: 560px){.page-onboarding .onboarding-title{font-size:var(--text-3xl);line-height:var(--lh-3xl)}.page-onboarding .onboarding-body{min-height:300px}.page-onboarding .onboarding-chips{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion: reduce){.page-onboarding .onboarding-glow,.page-onboarding .onboarding-art-glow,.page-onboarding .onboarding-art-glyph,.page-onboarding .onboarding-copy{animation:none}}.page-tutorial-battle{min-height:100vh;padding:var(--space-5) var(--space-5) var(--space-7);background:var(--surface-base);color:var(--text-primary)}.page-tutorial-battle .tb-shell{max-width:1180px;margin:0 auto}.page-tutorial-battle .tb-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.page-tutorial-battle .tb-brand{display:flex;align-items:center;gap:var(--space-3)}.page-tutorial-battle .tb-sigil{position:relative;width:20px;height:20px;display:inline-block}.page-tutorial-battle .tb-sigil-outer,.page-tutorial-battle .tb-sigil-inner{position:absolute;clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%)}.page-tutorial-battle .tb-sigil-outer{top:0;right:0;bottom:0;left:0;background:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 60%,transparent)}.page-tutorial-battle .tb-sigil-inner{top:5px;right:5px;bottom:5px;left:5px;background:var(--surface-base)}.page-tutorial-battle .tb-brand-label{font-family:var(--font-ui);font-weight:var(--weight-bold);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-primary)}.page-tutorial-battle .tb-brand-sub{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-disabled)}.page-tutorial-battle .tb-skip{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--text-disabled);background:none;border:none;cursor:pointer;padding:var(--space-1) var(--space-2);transition:color .15s ease}.page-tutorial-battle .tb-skip:hover{color:var(--text-secondary)}.page-tutorial-battle .tb-grid{display:grid;grid-template-columns:1fr 360px;gap:var(--space-4);align-items:start}.page-tutorial-battle .tb-board{position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-subtle);box-shadow:var(--elev-lg);will-change:transform}.page-tutorial-battle .tb-board-banner{text-align:center;padding:var(--space-2);background:linear-gradient(90deg,color-mix(in srgb,var(--gold) 16%,transparent),color-mix(in srgb,var(--gold) 30%,transparent),color-mix(in srgb,var(--gold) 16%,transparent));border-bottom:1px solid color-mix(in srgb,var(--gold) 40%,transparent)}.page-tutorial-battle .tb-board-banner span{font-family:var(--font-ui);font-weight:var(--weight-bold);font-size:var(--text-xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--candle-bright)}.page-tutorial-battle .tb-board-canvas-wrap{position:relative;background:linear-gradient(165deg,var(--surface),var(--surface-base))}.page-tutorial-battle .tb-canvas{display:block;width:100%;height:auto;image-rendering:pixelated}.page-tutorial-battle .tb-sidebar{display:flex;flex-direction:column;gap:var(--space-4)}.page-tutorial-battle .tb-coach{background:linear-gradient(165deg,color-mix(in srgb,var(--ember) 14%,var(--surface-base)),color-mix(in srgb,var(--ember) 6%,var(--surface-base)));border:1px solid color-mix(in srgb,var(--gold) 35%,transparent);border-radius:var(--radius-lg);padding:var(--space-5);animation:tb-coach-in .4s cubic-bezier(.22,1,.36,1)}.page-tutorial-battle .tb-coach-head{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.page-tutorial-battle .tb-coach-avatar{width:34px;height:34px;border-radius:var(--radius-pill);background:linear-gradient(var(--candle),var(--candle-deep));display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--text-lg);color:var(--tbt-ink)}.page-tutorial-battle .tb-coach-name{font-family:var(--font-ui);font-weight:var(--weight-bold);font-size:var(--text-xs);color:var(--text-primary)}.page-tutorial-battle .tb-coach-counter{font-family:var(--font-mono);font-size:9px;color:var(--text-secondary)}.page-tutorial-battle .tb-coach-title{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.15;color:var(--text-primary);margin-bottom:var(--space-2)}.page-tutorial-battle .tb-coach-body{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--lh-base);color:var(--text-secondary)}.page-tutorial-battle .tb-actions-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--elev-sm),inset 0 1px 0 var(--border-subtle);padding:var(--space-4)}.page-tutorial-battle .tb-actions-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.page-tutorial-battle .tb-actor{font-family:var(--font-ui);font-weight:var(--weight-bold);font-size:var(--text-sm);color:var(--text-primary)}.page-tutorial-battle .tb-actor-sub{color:var(--text-secondary);font-weight:var(--weight-regular);font-size:var(--text-xs)}.page-tutorial-battle .tb-actor-hp{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary)}.page-tutorial-battle .tb-actor-hp-val{color:var(--status-success)}.page-tutorial-battle .tb-actions-label{font-family:var(--font-ui);font-size:9px;font-weight:var(--weight-semibold);letter-spacing:.16em;text-transform:uppercase;color:var(--status-success);margin-bottom:var(--space-2)}.page-tutorial-battle .tb-action-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.page-tutorial-battle .tb-action{padding:11px var(--space-4);background:var(--surface-raised);color:var(--text-secondary);font-family:var(--font-ui);font-weight:var(--weight-semibold);font-size:12.5px;border-radius:9px;border:1px solid var(--border-subtle);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.page-tutorial-battle .tb-action:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary)}.page-tutorial-battle .tb-action-dim{background:color-mix(in srgb,var(--surface-raised) 60%,var(--surface-base));color:var(--text-disabled);border-color:var(--border-subtle);cursor:default}.page-tutorial-battle .tb-action-dim:hover{color:var(--text-disabled);border-color:var(--border-subtle)}.page-tutorial-battle .tb-action-hot{background:var(--accent);color:var(--text-on-accent);border-color:color-mix(in srgb,var(--accent-hover) 50%,transparent);animation:tb-ring-pulse 1.4s ease-in-out infinite}.page-tutorial-battle .tb-action-hot:hover:not(:disabled){background:var(--accent-hover);color:var(--text-on-accent)}.page-tutorial-battle .tb-end{display:block;width:100%;padding:var(--space-3);background:var(--surface-raised);color:var(--text-secondary);font-family:var(--font-ui);font-weight:var(--weight-bold);font-size:var(--text-sm);border-radius:9px;text-align:center;border:1px solid var(--border-subtle);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .12s ease}.page-tutorial-battle .tb-end:hover{border-color:var(--border-strong);color:var(--text-primary)}.page-tutorial-battle .tb-end-hot{background:var(--accent);color:var(--text-on-accent);border-color:color-mix(in srgb,var(--accent-hover) 50%,transparent);animation:tb-ring-pulse 1.4s ease-in-out infinite}.page-tutorial-battle .tb-end-hot:hover{background:var(--accent-hover);color:var(--text-on-accent);transform:translateY(-1px)}.page-tutorial-battle .tb-end-done:hover{box-shadow:var(--elev-md),0 0 22px -6px var(--accent-glow)}.page-tutorial-battle .tb-progress{display:flex;gap:var(--space-2);padding:0 var(--space-1)}.page-tutorial-battle .tb-progress-pip{flex:1;height:4px;border-radius:2px;background:var(--border-strong);transition:background .25s ease}.page-tutorial-battle .tb-progress-pip-on{background:var(--gold)}.page-tutorial-battle .tb-nav{display:flex;gap:var(--space-2)}.page-tutorial-battle .tb-nav-btn{flex:1;padding:var(--space-3);font-family:var(--font-ui);font-weight:var(--weight-semibold);font-size:var(--text-sm);border-radius:var(--radius-md);background:var(--surface);color:var(--text-secondary);border:1px solid var(--border-strong);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .12s ease}.page-tutorial-battle .tb-nav-btn:hover:not(:disabled){background:var(--surface-raised);color:var(--text-primary);border-color:var(--accent)}.page-tutorial-battle .tb-nav-btn:disabled{color:var(--text-disabled);border-color:var(--border-subtle);cursor:not-allowed}.page-tutorial-battle .tb-nav-btn-primary{background:var(--gold);color:var(--tbt-ink);border-color:var(--gold)}.page-tutorial-battle .tb-nav-btn-primary:hover:not(:disabled){background:var(--accent);color:var(--text-on-accent);border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--elev-md),0 0 22px -6px var(--accent-glow)}.page-tutorial-battle button:focus-visible{outline:none;box-shadow:var(--focus-ring)}@keyframes tb-coach-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes tb-ring-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--gold) 50%,transparent)}50%{box-shadow:0 0 0 6px transparent}}@media (max-width: 920px){.page-tutorial-battle .tb-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.page-tutorial-battle .tb-coach,.page-tutorial-battle .tb-action-hot,.page-tutorial-battle .tb-end-hot{animation:none}}.page-long-road{max-width:760px;margin:0 auto;padding:var(--space-7) var(--space-6) var(--space-8);font-family:var(--font-body);color:var(--text-primary)}.lr-header{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-7)}.lr-title{font-family:var(--font-display, var(--font-body));font-size:var(--text-3xl, 2rem);font-weight:700;color:var(--text-primary);margin:0}.lr-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.lr-reset-btn{align-self:flex-start;margin-top:var(--space-2);padding:var(--space-1) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:border-color .15s,color .15s}.lr-reset-btn:hover{border-color:var(--status-danger, #e53);color:var(--status-danger, #e53)}.lr-status{text-align:center;color:var(--text-secondary);padding:var(--space-8) 0;font-size:var(--text-sm)}.lr-status--error{color:var(--status-warning, #c97)}.lr-token-display{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--status-info, #48f) 8%,transparent);font-size:var(--text-sm)}.lr-token-label{color:var(--text-secondary)}.lr-token-value{font-weight:600;color:var(--text-primary)}.lr-trail{display:flex;flex-direction:column;align-items:center;gap:0}.lr-trail-segment{display:flex;flex-direction:column;align-items:center;width:100%;max-width:520px}.lr-connector{width:2px;height:var(--space-5);background:var(--border-subtle)}.lr-node{width:100%;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);background:var(--surface-2, var(--surface));transition:border-color .15s,box-shadow .15s}.lr-node--current{border-color:var(--status-info, #48f);box-shadow:0 0 0 2px color-mix(in srgb,var(--status-info, #48f) 25%,transparent)}.lr-node--boss{border-color:var(--status-danger, #e53)}.lr-node--boss.lr-node--current{border-color:var(--status-danger, #e53);box-shadow:0 0 0 2px color-mix(in srgb,var(--status-danger, #e53) 25%,transparent)}.lr-node-header{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2)}.lr-node-label{font-weight:600;font-size:var(--text-base);color:var(--text-primary)}.lr-node-biome{font-size:var(--text-xs);color:var(--text-secondary);text-transform:capitalize}.lr-node-meta{display:flex;gap:var(--space-4);margin-bottom:var(--space-3);font-size:var(--text-xs)}.lr-hp-delta--neg{color:var(--status-danger, #e53)}.lr-hp-delta--pos{color:var(--status-success, #4c4)}.lr-relic{color:var(--text-secondary);font-style:italic}.lr-encounter-btn{padding:var(--space-2) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:transparent;color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;transition:background .15s,border-color .15s}.lr-encounter-btn:hover{background:color-mix(in srgb,var(--text-primary) 8%,transparent);border-color:var(--text-primary)}.lr-node--boss .lr-encounter-btn{border-color:var(--status-danger, #e53);color:var(--status-danger, #e53)}.lr-node--boss .lr-encounter-btn:hover{background:color-mix(in srgb,var(--status-danger, #e53) 12%,transparent)}.bp-root{min-height:100vh;background:var(--color-bg);color:var(--color-text);display:flex;flex-direction:column;padding:var(--space-4);gap:var(--space-4)}.bp-loading,.bp-error{text-align:center;padding:var(--space-8);color:var(--color-text-muted);font-size:var(--font-size-lg)}.bp-error{color:var(--color-danger, #e55)}.bp-header{display:flex;align-items:center;gap:var(--space-4);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-3)}.bp-title{flex:1;margin:0;font-size:var(--font-size-xl);font-weight:700;letter-spacing:.05em}.bp-actions{display:flex;gap:var(--space-2)}.bp-back,.bp-undo,.bp-save{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:var(--font-size-sm);transition:background .15s}.bp-back:hover,.bp-undo:hover:not(:disabled),.bp-save:hover:not(:disabled){background:var(--color-surface-hover, var(--color-surface));border-color:var(--color-accent)}.bp-save{background:var(--color-accent);color:var(--color-accent-text, #fff);border-color:var(--color-accent)}.bp-back:disabled,.bp-undo:disabled,.bp-save:disabled{opacity:.4;cursor:not-allowed}.bp-chosen-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);min-height:2rem;align-items:center}.bp-chosen-empty{color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic}.bp-chosen-chip{padding:var(--space-1) var(--space-2);border-radius:var(--radius-full, 999px);background:var(--color-accent);color:var(--color-accent-text, #fff);font-size:var(--font-size-xs);font-weight:600}.bp-tree{display:flex;flex-direction:column;gap:var(--space-6);flex:1}.bp-tier-row{display:flex;align-items:flex-start;gap:var(--space-4)}.bp-tier-label{width:3.5rem;flex-shrink:0;font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;padding-top:var(--space-2)}.bp-tier-nodes{display:flex;flex-wrap:wrap;gap:var(--space-3)}.bp-node{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:default;font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--space-1);transition:border-color .15s,background .15s,color .15s;min-width:7rem;text-align:left}.bp-node--available{border-color:var(--color-accent);color:var(--color-text);cursor:pointer}.bp-node--available:hover{background:color-mix(in srgb,var(--color-accent) 15%,var(--color-surface))}.bp-node--chosen{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 25%,var(--color-surface));color:var(--color-text);cursor:default}.bp-node--foreclosed{opacity:.3;cursor:not-allowed}.bp-node--previewed{outline:2px solid var(--color-accent);outline-offset:2px}.bp-node-check{color:var(--color-accent);font-weight:700}.bp-preview{position:fixed;bottom:var(--space-4);left:50%;transform:translate(-50%);background:var(--color-surface);border:1px solid var(--color-accent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);box-shadow:0 4px 24px #0000004d;max-width:90vw}.bp-preview-effect{color:var(--color-accent);font-weight:600}.bp-preview-tier{color:var(--color-text-muted);font-size:var(--font-size-xs)}.btn-ghost{background:transparent;color:var(--accent);border:1px solid var(--accent)}.btn-ghost:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 12%,transparent)}.btn-ghost:active:not(:disabled){transform:translateY(1px)}.btn-sm{padding:4px 10px;font-size:var(--text-sm)}.btn-md{padding:8px 16px;font-size:var(--text-base)}.modal-auth.auth-modal{background:var(--surface-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-auth .auth-form{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--elev-lg);padding:var(--space-6);max-width:420px;width:100%;margin:0 auto}.modal-auth .auth-context-blurb{font-size:var(--text-sm);color:var(--text-secondary);text-align:center;margin:0 0 var(--space-4)}.modal-auth .auth-form h2{font-family:var(--font-display);font-weight:400;font-size:var(--text-2xl);color:var(--text-primary);text-align:center;margin:0 auto var(--space-2)}.modal-auth .auth-form h2:after{content:"";display:block;width:36px;height:2px;margin:var(--space-3) auto 0;background:var(--accent)}.modal-auth .form-group label{font-family:var(--font-ui);font-weight:600;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary)}.modal-auth .form-group input{background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);transition:border-color .15s ease,box-shadow .15s ease}.modal-auth .form-group input::placeholder{color:var(--text-disabled)}.modal-auth .form-group input:focus{outline:none;border-color:var(--gold);box-shadow:var(--focus-ring)}.modal-auth .error{color:var(--status-danger);font-family:var(--font-body);font-size:var(--text-sm)}.modal-auth button[type=submit],.modal-auth .btn-gold{font-family:var(--font-ui);font-weight:700;letter-spacing:.04em;background:var(--gold);color:var(--tbt-ink);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease,transform .05s ease}.modal-auth button[type=submit]:hover:not(:disabled),.modal-auth .btn-gold:hover:not(:disabled){background:var(--gold-dim)}.modal-auth button[type=submit]:active:not(:disabled){transform:scale(.98)}.modal-auth button[type=submit]:disabled{opacity:.55;cursor:default}.modal-auth button[type=submit]:focus-visible,.modal-auth .btn-gold:focus-visible{outline:none;box-shadow:var(--focus-ring)}.modal-auth .auth-toggle{color:var(--text-secondary);font-family:var(--font-body);font-size:var(--text-sm)}.modal-auth .auth-toggle a{color:var(--gold);text-decoration:none}.modal-auth .auth-toggle a:hover{color:var(--accent)}nav.tbt-nav{background:color-mix(in srgb,var(--surface-base) 82%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-subtle);padding:var(--space-3) var(--space-6)}.tbt-nav .nav-title{font-family:var(--font-ui);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-primary);font-size:var(--text-sm)}.tbt-nav .nav-links a{font-family:var(--font-ui);font-weight:500;letter-spacing:.13em;text-transform:uppercase;font-size:11.5px;color:var(--text-secondary);transition:color .15s ease}.tbt-nav .nav-links a:hover{color:var(--text-primary)}.tbt-nav .nav-links a.active,.tbt-nav .nav-links a[aria-current=page]{color:var(--gold)}.tbt-nav .nav-audio{position:relative}.tbt-nav .nav-audio-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:var(--space-1) 6px;color:var(--text-secondary);opacity:.85}.tbt-nav .nav-audio-btn.is-muted{opacity:.4}.tbt-nav .nav-volume-pop{position:absolute;top:100%;right:0;z-index:200;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--elev-md);padding:var(--space-2) var(--space-3);min-width:120px}.tbt-nav .nav-volume-range{width:100%;accent-color:var(--accent)}.tbt-nav .nav-volume-pct{font-family:var(--font-mono);font-size:10px;color:var(--text-secondary);text-align:center;margin-top:var(--space-1)}.tbt-nav .nav-username{color:var(--text-secondary);font-size:var(--text-sm);text-decoration:none;font-family:var(--font-ui)}.tbt-nav .nav-username:hover{color:var(--text-primary)}.tbt-nav .nav-logout{font-size:12px;padding:var(--space-1) var(--space-3)}.tbt-nav .nav-login{font-family:var(--font-ui);font-weight:700;font-size:var(--text-sm);letter-spacing:.06em;padding:6px var(--space-4);background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius-md);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-glow) 35%,transparent),0 6px 18px color-mix(in srgb,var(--accent) 40%,transparent);cursor:pointer;transition:background .15s ease,transform .05s ease}.tbt-nav .nav-login:hover{background:var(--accent-hover)}.tbt-nav .nav-login:active{transform:scale(.98)}.tbt-nav a:focus-visible,.tbt-nav button:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.tbt-nav .nav-hamburger{display:none;background:none;border:none;cursor:pointer;font-size:22px;line-height:1;color:var(--text-primary);padding:var(--space-1) var(--space-2)}@media (max-width: 768px){.tbt-nav .nav-hamburger{display:flex;align-items:center}.tbt-nav .nav-collapsible{display:none}.tbt-nav .nav-collapsible.open{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);position:absolute;top:100%;left:0;right:0;background:var(--surface-base);border-bottom:1px solid var(--border-subtle);padding:var(--space-4) var(--space-6);z-index:300}.tbt-nav .nav-collapsible.open .nav-links,.tbt-nav .nav-collapsible.open .nav-user{flex-direction:column;align-items:flex-start;gap:var(--space-3);width:100%}}:root{--font-display: "Instrument Serif", Georgia, serif;--font-ui: "Sora", system-ui, sans-serif;--font-heading: "Sora", system-ui, sans-serif;--font-body: "Inter Tight", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--text-xs: 12px;--lh-xs: 1.4;--text-sm: 14px;--lh-sm: 1.5;--text-base: 16px;--lh-base: 1.6;--text-lg: 20px;--lh-lg: 1.4;--text-xl: 24px;--text-2xl: 30px;--lh-2xl: 1.25;--text-3xl: 38px;--lh-3xl: 1.18;--text-4xl: 48px;--lh-4xl: 1.12;--text-5xl: 64px;--lh-5xl: 1.05;--tracking-eyebrow: .18em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--radius-sm: 5px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--elev-sm: 0 2px 6px rgba(0,0,0,.45);--elev-md: 0 6px 18px rgba(0,0,0,.5);--elev-lg: 0 16px 40px rgba(0,0,0,.55);--tbt-bg: #0B0D12;--tbt-panel: #13161E;--tbt-panel2: #1C212C;--tbt-ink: #0B0D12;--tbt-text: #E4E7EC;--tbt-muted: #8F98A8;--tbt-dim: #7A8190;--tbt-border: rgba(180,195,220,.1);--tbt-border-strong: rgba(180,195,220,.18);--tbt-accent: #E2622C;--tbt-accent-hover: #F0824A;--tbt-accent-glow: #F0824A;--tbt-gold: #E0A23A;--tbt-gold-dim: #B9842B;--tbt-red: #E04A3A;--tbt-danger: #E04A3A;--tbt-orange: #E0A23A;--tbt-green: #4FB286;--tbt-blue: #5B8DD0;--tbt-purple: #9C6BD0;--surface: var(--tbt-panel);--surface-raised: var(--tbt-panel2);--surface-overlay: rgba(7,8,9,.72);--text-primary: var(--tbt-text);--text-secondary: var(--tbt-muted);--text-disabled: var(--tbt-dim);--border-subtle: var(--tbt-border);--border-strong: var(--tbt-border-strong);--accent: var(--tbt-accent);--accent-hover: var(--tbt-accent-hover);--status-success: var(--tbt-green);--status-danger: var(--tbt-red);--status-warning: var(--tbt-gold);--status-info: var(--tbt-blue);--focus-ring: 0 0 0 2px rgba(224,162,58,.55);--ember: #E2622C;--ember-deep: #C44E20;--candle-bright: #ECB256;--candle: #E0A23A;--candle-deep: #B9842B;--surface-base: var(--tbt-bg);--text-on-accent: var(--tbt-ink);--text-muted: var(--tbt-dim);--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--ease-standard: ease;--color-bg: var(--tbt-bg);--color-text: var(--tbt-text);--color-text-muted: var(--tbt-muted);--color-border: var(--tbt-border);--color-surface: var(--tbt-panel);--color-surface-hover: var(--tbt-panel2);--color-accent: var(--tbt-accent);--color-accent-text: var(--tbt-ink);--color-danger: var(--tbt-red);--font-size-xs: var(--text-xs);--font-size-sm: var(--text-sm);--font-size-lg: var(--text-lg);--font-size-xl: var(--text-xl);--radius-full: var(--radius-pill);--surface-2: var(--tbt-panel2)}[data-theme=light]{--tbt-bg: #E9EBEF;--tbt-panel: #F2F3F6;--tbt-panel2: #FBFCFD;--tbt-ink: #14181F;--tbt-text: #1C212C;--tbt-muted: #586173;--tbt-dim: #646E80;--tbt-border: rgba(28,33,44,.12);--tbt-border-strong: rgba(28,33,44,.2);--tbt-accent: #D2541F;--tbt-accent-hover: #B8461A;--tbt-accent-glow: #E2622C;--tbt-gold: #89600F;--tbt-gold-dim: #8F6410;--tbt-red: #C23A2C;--tbt-danger: #C23A2C;--tbt-orange: #B27D14;--tbt-green: #2E8B61;--tbt-blue: #2E6FB0;--tbt-purple: #7A4FB0;--surface-overlay: rgba(233,235,239,.82);--focus-ring: 0 0 0 2px rgba(178,125,20,.5);--ember: #D2541F;--ember-deep: #A53D14;--candle-bright: #C89A3A;--candle: #B27D14;--candle-deep: #8F6410;--text-on-accent: #0B0D12}:root{--bg-dark: var(--tbt-bg);--bg-panel: var(--tbt-panel);--bg-card: var(--tbt-panel2);--accent: var(--tbt-accent);--accent-glow: var(--tbt-accent-glow);--gold: var(--tbt-gold);--gold-dim: var(--tbt-gold-dim);--text: var(--tbt-text);--text-dim: var(--tbt-muted);--green: var(--tbt-green);--red: var(--tbt-red);--blue: var(--tbt-blue);--purple: var(--tbt-purple);--border: var(--tbt-border);--gold-glow-bright: #E8C44A;--gold-glow: #D4A843;--gold-glow-deep: #C49A3C;--danger-glow: #E74C3C}[data-theme=light] .nav{background:#f4efe6d9}[data-theme=light] .hero-section .hero-gradient{background:linear-gradient(to bottom,transparent,rgba(244,239,230,.5),var(--bg-dark))}[data-theme=light] .hero-logo-wrap{background:#c8beaf80}[data-theme=light] .feature-card{background:#c8beaf4d}[data-theme=light] .feature-card:hover{box-shadow:0 20px 40px #2c24161a}[data-theme=light] .coming-soon-badge{border-color:#2c241626}[data-theme=light] .waiting-share-section{background:#2c241608}[data-theme=light] .mb-palette-swatch{border-color:#2c241626}[data-theme=light] ::-webkit-scrollbar-thumb{background:#2c241626}.theme-toggle{background:transparent;border:none;padding:6px;color:var(--tbt-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,transform .3s}.theme-toggle:hover{color:var(--tbt-text);transform:rotate(15deg)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg-dark);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-glow)}button{font-family:var(--font-body);cursor:pointer;border:none;padding:var(--space-2) var(--space-4);font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1)}button:disabled{opacity:.5;cursor:not-allowed}input,select{font-family:var(--font-body);padding:var(--space-2) var(--space-3);border:1px solid var(--border);background:var(--bg-dark);color:var(--text);font-size:14px}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn-primary{background:var(--accent);color:var(--text-on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-glow);box-shadow:0 0 16px color-mix(in srgb,var(--danger-glow) 30%,transparent)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--accent)}.btn-secondary:active:not(:disabled){transform:translateY(1px)}.btn-gold{background:var(--gold);color:#fbfcfd}.btn-gold:hover:not(:disabled){background:var(--gold-dim);box-shadow:0 0 20px color-mix(in srgb,var(--gold-glow) 40%,transparent)}.btn-gold:active:not(:disabled){transform:translateY(1px)}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-gold:focus-visible,.btn-ghost:focus-visible{outline:none;box-shadow:var(--focus-ring)}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-5)}.card{background:var(--bg-panel);border:1px solid var(--border);padding:20px}.nav{background:#0a0e12cc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:0 var(--space-5);height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.nav-title{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--text);display:flex;align-items:center;letter-spacing:.02em;text-transform:uppercase}.nav-logo{height:28px;width:auto;margin-right:10px}.nav-links{display:flex;gap:var(--space-6);align-items:center}.nav-links a{color:var(--text-dim);font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;transition:color .2s}.nav-links a:hover{color:var(--text)}.nav-user{display:flex;gap:var(--space-3);align-items:center;font-size:14px}.tactical-grid{background-image:linear-gradient(color-mix(in srgb,var(--danger-glow) 3%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--danger-glow) 3%,transparent) 1px,transparent 1px);background-size:40px 40px}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:slideUp .8s cubic-bezier(.16,1,.3,1) forwards;opacity:0}.hero-section{position:relative;padding:80px 0 40px;text-align:center}.hero-section .tactical-grid{position:absolute;top:0;right:0;bottom:0;left:0}.hero-section .hero-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent,rgba(10,14,18,.5),var(--bg-dark))}.hero-logo-wrap{width:128px;height:128px;margin:0 auto var(--space-5);border-radius:50%;background:#1a1f2680;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;box-shadow:0 0 20px color-mix(in srgb,var(--danger-glow) 15%,transparent)}.hero-logo-wrap img{max-width:88px;height:auto}.hero-section h1{font-size:4rem;color:var(--text);letter-spacing:-.02em}.hero-section .subtitle{font-size:1.15rem;color:var(--text-dim);font-weight:300;max-width:560px;margin:0 auto}.hero-divider{height:1px;width:128px;margin:var(--space-6) auto 0;background:linear-gradient(90deg,transparent,var(--accent),transparent)}.hero-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center;gap:var(--space-6)}.hero-logo{max-width:200px;width:100%;height:auto;filter:drop-shadow(0 0 20px color-mix(in srgb,var(--danger-glow) 20%,transparent))}.hero-page h1{font-size:3rem;color:var(--text)}.hero-page .subtitle{color:var(--text-dim);font-size:1.1rem;max-width:500px;font-weight:300}.hero-actions{display:flex;gap:var(--space-4);flex-wrap:wrap;justify-content:center}.hero-actions button,.hero-actions a{padding:14px 28px;font-size:1rem;display:inline-block}.feature-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5);max-width:960px;margin:0 auto;padding:var(--space-8) var(--space-5) 80px}.feature-card{display:flex;flex-direction:column;padding:var(--space-6);background:#1a1f264d;border:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .3s cubic-bezier(.16,1,.3,1);color:var(--text);text-decoration:none;position:relative;overflow:hidden}.feature-card:before{content:"";position:absolute;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-glow));transition:width .3s cubic-bezier(.16,1,.3,1)}.feature-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px color-mix(in srgb,var(--danger-glow) 10%,transparent);color:var(--text)}.feature-card:hover:before{width:100%}.feature-card-icon{width:56px;height:56px;background:color-mix(in srgb,var(--danger-glow) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger-glow) 20%,transparent);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:var(--space-4)}.feature-card h3{color:var(--text);font-size:1.5rem;margin-bottom:var(--space-2);position:relative;padding-top:var(--space-3)}.feature-card h3:before{content:"";position:absolute;left:0;top:0;width:40px;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-glow))}.feature-card p{color:var(--text-dim);font-size:.9rem;line-height:1.6;font-weight:300}.feature-card-enter{margin-top:var(--space-3);font-size:13px;color:var(--accent);font-weight:500;letter-spacing:.08em;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px}.feature-card-enter svg{transition:transform .2s}.feature-card:hover .feature-card-enter svg{transform:translate(4px)}.coming-soon-badge{display:inline-block;margin-top:var(--space-3);padding:4px var(--space-3);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);border:1px solid rgba(255,255,255,.1)}.site-footer{border-top:1px solid var(--border);padding:var(--space-5) 0;background:var(--bg-dark)}.site-footer .footer-inner{max-width:1200px;margin:0 auto;padding:0 var(--space-5);display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text-dim)}.site-footer a{color:var(--text-dim);margin-left:var(--space-5);transition:color .2s}.site-footer a:hover{color:var(--text)}.hp-bar{height:6px;background:var(--border);overflow:hidden}.hp-bar-fill{height:100%;background:var(--green);transition:width .3s}.hp-bar-fill.low{background:var(--red)}.hp-bar-fill.mid{background:orange}.team-players{color:var(--blue)}.team-monsters{color:var(--red)}.combat-log{flex:1;min-height:80px;max-height:none;overflow-y:auto;font-size:13px;line-height:1.6;padding:var(--space-2)}.combat-log .event-damage{color:var(--red)}.combat-log .event-healing{color:var(--green)}.combat-log .event-move{color:var(--text-dim)}.combat-log .event-spell{color:var(--purple)}.combat-log .event-turn{color:var(--accent);font-weight:600}.combat-log .event-defeat{color:var(--tbt-red);font-weight:700}.combat-log .event-karma{color:var(--tbt-gold);font-weight:600}.chat-panel{display:flex;flex-direction:column;min-height:40px;max-height:300px}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-2);font-size:13px;line-height:1.5}.chat-msg .sender{font-weight:600}.chat-msg .sender.fighter{color:var(--accent)}.chat-input{display:flex;gap:4px;padding:var(--space-2);border-top:1px solid var(--border)}.chat-input input{flex:1;font-size:13px}.badge{display:inline-block;padding:2px var(--space-2);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.badge-waiting{background:#daa52026;color:var(--gold);animation:badge-pulse 2s ease-in-out infinite}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.6}}@media (prefers-reduced-motion: reduce){.badge-waiting{animation:none}}.badge-live{background:var(--tbt-red);color:#fff}.badge-finished{background:var(--border);color:var(--text-dim)}.reaction-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:200}.reaction-modal{background:var(--bg-panel);border:2px solid var(--accent);padding:var(--space-5);text-align:center;max-width:400px}.reaction-timer{font-size:2rem;color:var(--tbt-red);font-weight:700;margin:var(--space-3) 0}.reaction-buttons{display:flex;gap:var(--space-3);justify-content:center;margin-top:var(--space-4)}.session-list{display:flex;flex-direction:column;gap:var(--space-2)}.session-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--bg-panel);border:1px solid var(--border);cursor:pointer;transition:border-color .2s,transform .2s}.session-item:hover{border-color:var(--accent);transform:translateY(-1px)}.session-info{display:flex;flex-direction:column;gap:4px}.session-section-title{color:var(--accent);margin-bottom:var(--space-3);display:flex;align-items:center}.session-item-waiting{border-left:3px solid var(--gold)}.session-item-live{border-left:3px solid var(--tbt-red)}.session-title{font-weight:600;display:flex;align-items:center;gap:var(--space-2)}.session-host-class{font-size:12px;font-weight:400;color:var(--text-dim)}.session-meta{font-size:12px;color:var(--text-dim);display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center}.session-time{color:var(--text-dim);opacity:.7}.session-action-btn{font-size:13px;padding:var(--space-2) var(--space-4);white-space:nowrap;flex-shrink:0}.session-empty{color:var(--text-dim);text-align:center;padding:20px;font-style:italic}.waiting-card{padding:20px}.waiting-share-section{margin:var(--space-3) 0;padding:var(--space-3);background:#ffffff08;border:1px solid var(--border)}.waiting-link-code{font-size:12px;color:var(--gold);background:var(--bg-dark);padding:6px 10px;border-radius:4px;word-break:break-all}.waiting-discoverable{font-size:12px;color:var(--text-dim);margin-top:10px;opacity:.8}.battle-layout{display:grid;grid-template-columns:1fr 340px;grid-template-rows:1fr;gap:var(--space-3);padding:var(--space-3);height:calc(100vh - 56px);overflow:hidden}.battle-grid-area{display:flex;flex-direction:column;min-height:0;overflow:hidden}.battle-grid-canvas-wrapper{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;position:relative}.battle-sidebar{display:flex;flex-direction:column;gap:var(--space-3);overflow:hidden}.action-panel{display:flex;flex-wrap:wrap;gap:6px;padding:var(--space-2)}.action-panel button{font-size:12px;padding:6px 10px}.leaderboard-table{width:100%;border-collapse:collapse}.leaderboard-table th{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:2px solid var(--border);color:var(--accent);font-family:var(--font-display);font-size:14px}.leaderboard-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);font-size:14px}.leaderboard-table tr:hover td{background:var(--bg-card)}.rank-1{color:gold;font-weight:700}.rank-2{color:silver;font-weight:600}.rank-3{color:#cd7f32;font-weight:600}.lobby{max-width:700px;margin:40px auto;padding:0 20px}.lobby h2{color:var(--accent);margin-bottom:var(--space-5)}.lobby-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.class-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.class-option{padding:var(--space-3);background:var(--bg-dark);border:2px solid var(--border);cursor:pointer;text-align:center;transition:all .2s}.class-option:hover{border-color:var(--accent)}.class-option.selected{border-color:var(--accent);background:var(--bg-card)}.class-option .class-name{font-family:var(--font-display);font-size:1.1rem;color:var(--accent)}.class-option .class-stats{font-size:12px;color:var(--text-dim);margin-top:4px}.map-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.map-option{padding:var(--space-3);background:var(--bg-dark);border:2px solid var(--border);cursor:pointer;text-align:center;transition:all .2s}.map-option:hover{border-color:var(--accent)}.map-option.selected{border-color:var(--accent);background:var(--bg-card)}.map-option .map-name{font-family:var(--font-display);color:var(--accent);font-size:.95rem}.map-option .map-desc{font-size:11px;color:var(--text-dim);margin-top:4px}.character-builder{margin-top:var(--space-4)}.builder-progress{display:flex;gap:4px;margin-bottom:20px}.builder-step-indicator{flex:1;display:flex;align-items:center;gap:6px;padding:var(--space-2) var(--space-3);background:var(--bg-dark);border:1px solid var(--border);opacity:.4;transition:all .2s}.builder-step-indicator.active{opacity:1;border-color:var(--accent);background:var(--bg-card)}.builder-step-indicator.completed{opacity:.7;border-color:var(--green)}.step-number{width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--text);background:var(--border)}.builder-step-indicator.active .step-number{background:var(--accent);color:#fff}.builder-step-indicator.completed .step-number{background:var(--green);color:#fff}.step-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:500}.builder-step-indicator.active .step-label{color:var(--text)}.btn-quick-deploy{width:100%;padding:var(--space-2) 6px;background:transparent;border:1px dashed var(--border);color:var(--text);font-family:var(--font-display);font-size:.85rem;cursor:pointer;transition:all .2s}.btn-quick-deploy:hover{background:color-mix(in srgb,var(--gold-glow) 12%,transparent);border-color:var(--gold);border-style:solid}.builder-section-title{font-family:var(--font-display);color:var(--accent);font-size:1.2rem;margin-bottom:14px}.prep-counter{color:var(--gold);font-size:.9rem}.race-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.race-card{padding:var(--space-3);background:var(--bg-dark);border:2px solid var(--border);cursor:pointer;transition:all .2s}.race-card:hover{border-color:var(--accent)}.race-card.selected{border-color:var(--accent);background:var(--bg-card);box-shadow:0 0 12px color-mix(in srgb,var(--danger-glow) 15%,transparent)}.race-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.race-name{font-family:var(--font-display);font-size:1.05rem;color:var(--accent)}.good-match-badge{font-size:10px;padding:2px 6px;background:#2ed57326;color:var(--green);border:1px solid rgba(46,213,115,.3);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.race-bonuses{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.stat-badge{font-size:11px;padding:1px 5px;background:color-mix(in srgb,var(--gold-glow) 15%,transparent);color:var(--gold);border:1px solid color-mix(in srgb,var(--gold-glow) 25%,transparent);font-weight:600}.race-speed{font-size:11px;color:var(--text-dim);margin-bottom:4px}.race-traits{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.trait-tag{font-size:10px;padding:1px 4px;background:var(--bg-card);color:var(--text-dim);border:1px solid var(--border);text-transform:capitalize}.class-builder-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.class-builder-card{padding:14px;background:var(--bg-dark);border:2px solid var(--border);cursor:pointer;transition:all .2s}.class-builder-card:hover{border-color:var(--accent)}.class-builder-card.selected{border-color:var(--accent);background:var(--bg-card);box-shadow:0 0 12px color-mix(in srgb,var(--danger-glow) 15%,transparent)}.class-card-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.class-icon{font-size:1.3rem}.class-card-name{font-family:var(--font-display);font-size:1.1rem;color:var(--accent)}.class-identity{font-size:12px;color:var(--text-dim);line-height:1.4;margin-bottom:var(--space-2)}.class-card-stats{display:flex;gap:10px;font-size:12px;color:var(--text-dim);font-weight:500}.subclass-picker{display:flex;flex-direction:column;gap:var(--space-2)}.subclass-card{padding:14px;background:var(--bg-dark);border:2px solid var(--border);cursor:pointer;transition:all .2s}.subclass-card:hover{border-color:var(--accent)}.subclass-card.selected{border-color:var(--gold);background:var(--bg-card);box-shadow:0 0 12px color-mix(in srgb,var(--gold-glow) 15%,transparent)}.subclass-card-header{display:flex;align-items:center;gap:var(--space-3)}.subclass-card-name{font-family:var(--font-display);font-size:1.1rem;color:var(--gold);margin-bottom:4px}.subclass-card-desc{font-size:12px;color:var(--text-dim);line-height:1.4}.spell-group{margin-bottom:var(--space-4)}.spell-group-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-weight:600;margin-bottom:var(--space-2);padding-bottom:4px;border-bottom:1px solid var(--border)}.spell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.spell-card{padding:10px;background:var(--bg-dark);border:2px solid var(--border);transition:all .2s}.spell-card.always-known{opacity:.7;border-color:#2ed57333}.spell-card.selectable{cursor:pointer}.spell-card.selectable:hover{border-color:var(--gold)}.spell-card.selectable.selected{border-color:var(--gold);background:color-mix(in srgb,var(--gold-glow) 8%,transparent);box-shadow:0 0 8px color-mix(in srgb,var(--gold-glow) 10%,transparent)}.spell-card.selectable.disabled{opacity:.35;cursor:not-allowed}.spell-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.spell-name{font-family:var(--font-display);font-size:.95rem;color:var(--text)}.spell-level-badge{font-size:10px;padding:1px 5px;background:#1e90ff26;color:var(--blue);border:1px solid rgba(30,144,255,.25);font-weight:600}.spell-desc{font-size:11px;color:var(--text-dim);line-height:1.3;margin-bottom:3px}.spell-meta{font-size:10px;color:var(--text-dim);opacity:.7}.summary-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.summary-identity{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);padding:var(--space-4);background:var(--bg-dark);border:1px solid var(--border)}.summary-race-class{font-family:var(--font-display);font-size:1.3rem;color:var(--accent)}.summary-icon{font-size:2.5rem}.summary-combat-id{font-size:12px;color:var(--text-dim);line-height:1.4}.summary-stats{display:flex;flex-direction:column;gap:var(--space-3)}.stat-block{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.stat-row{display:flex;align-items:center;gap:6px;padding:4px var(--space-2);background:var(--bg-dark);border:1px solid var(--border)}.stat-row .stat-label{font-size:11px;font-weight:700;color:var(--text-dim);width:30px}.stat-row .stat-value{font-size:14px;font-weight:600;color:var(--text)}.stat-row .stat-mod{font-size:11px;color:var(--text-dim)}.stat-row .stat-bonus{font-size:10px;color:var(--green);font-weight:600;margin-left:auto}.derived-stats{display:flex;gap:var(--space-2)}.derived-stat{flex:1;text-align:center;padding:var(--space-2);background:var(--bg-dark);border:1px solid var(--border)}.derived-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-weight:600}.derived-value{display:block;font-family:var(--font-display);font-size:1.4rem;color:var(--accent);margin-top:2px}.summary-spells{padding:var(--space-2);background:var(--bg-dark);border:1px solid var(--border)}.summary-spells-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600;margin-bottom:6px}.summary-spell-list{display:flex;flex-wrap:wrap;gap:4px}.summary-spell-tag{font-size:11px;padding:2px 6px;background:color-mix(in srgb,var(--gold-glow) 12%,transparent);color:var(--gold);border:1px solid color-mix(in srgb,var(--gold-glow) 20%,transparent)}.builder-nav{display:flex;justify-content:space-between;margin-top:var(--space-4);gap:var(--space-2)}.builder-submit{padding:14px 28px!important;font-size:1.1rem!important}.forge-mark{text-align:center;margin-top:var(--space-5);font-size:11px;color:var(--text-dim);opacity:.4;font-style:italic}.auth-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:300}.auth-form{background:var(--bg-panel);border:1px solid var(--border);padding:var(--space-6);width:360px;display:flex;flex-direction:column;gap:var(--space-4)}.auth-form h2{color:var(--accent);text-align:center}.auth-form .error{color:var(--red);font-size:13px;text-align:center}.auth-toggle{text-align:center;font-size:13px;color:var(--text-dim)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:#ffffff1a}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.replay-controls{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-panel)}.replay-controls input[type=range]{flex:1;accent-color:var(--accent)}.replay-speed{font-size:13px;color:var(--text-dim)}.turn-banner{text-align:center;padding:var(--space-2) var(--space-4);font-weight:700;font-size:16px;margin-bottom:var(--space-2)}.turn-banner.my-turn{background:var(--accent);color:#fff}.turn-banner.waiting{background:var(--bg-panel);color:var(--text-dim);border:1px solid var(--border)}.victory-overlay h2{margin:0 0 var(--space-2)}.btn-tell-tale{background:transparent;color:var(--tbt-gold);border:2px solid var(--tbt-gold);padding:var(--space-2) 20px;font-family:var(--font-heading);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:background .2s,color .2s}.btn-tell-tale:hover:not(:disabled){background:var(--tbt-gold);color:var(--bg-dark)}.btn-tell-tale:disabled{opacity:.6;cursor:wait}.badge-mode-duel,.badge-mode-encounter{font-weight:600;font-size:12px}.badge-mode-duel{color:var(--red)}.badge-mode-encounter{color:var(--green, #2ed573)}.contact-page{max-width:600px;margin:0 auto;padding:40px 20px}.contact-page h1{color:var(--accent);text-align:center;margin-bottom:var(--space-2)}.contact-subtitle{color:var(--text-dim);text-align:center;margin-bottom:var(--space-5)}.contact-form{display:flex;flex-direction:column;gap:var(--space-4)}.contact-form textarea{font-family:var(--font-body);padding:var(--space-2) var(--space-3);border:1px solid var(--border);background:var(--bg-dark);color:var(--text);font-size:14px;resize:vertical}.contact-form textarea:focus{outline:none;border-color:var(--accent)}.contact-success{text-align:center;padding:40px;margin-top:40px}.contact-success h2{color:var(--accent);margin-bottom:var(--space-3)}.contact-success p{color:var(--text-dim);margin-bottom:20px}.tales-page{padding:40px 20px}.tales-page h1{color:var(--accent);text-align:center;margin-bottom:var(--space-2)}.tales-subtitle{color:var(--text-dim);text-align:center;margin-bottom:var(--space-5)}.tales-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4)}.tale-card{padding:20px;display:block;color:inherit;text-decoration:none;cursor:pointer;transition:border-color .2s,transform .15s}.tale-card:hover{border-color:var(--gold-dim);transform:translateY(-2px);color:inherit}.tale-card h3{color:var(--accent);margin-bottom:var(--space-2);font-size:1.1rem}.tale-card p{color:var(--text-dim);font-size:.9rem;line-height:1.5}.tale-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.tale-type{font-size:12px;font-weight:600;text-transform:uppercase;color:var(--accent)}.tale-date{font-size:12px;color:var(--text-dim)}.tale-detail-page{padding:40px 20px;max-width:800px;margin:0 auto}.tale-back-link{display:inline-block;margin-bottom:20px;color:var(--text-dim);font-size:14px;text-decoration:none;transition:color .2s}.tale-back-link:hover{color:var(--accent)}.tale-back-link:before{content:"←"}.tale-article{padding:var(--space-6)}.tale-article-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.tale-article-title{color:var(--gold);font-family:var(--font-display);font-size:1.8rem;font-weight:700;line-height:1.2;margin-bottom:var(--space-3)}.tale-article-summary{color:var(--text-dim);font-size:1rem;font-style:italic;line-height:1.5;margin-bottom:0}.tale-divider{height:1px;background:var(--border);margin:var(--space-5) 0}.tale-article-content{color:var(--text);font-size:1.05rem;line-height:1.8}.tale-article-content p{margin-bottom:var(--space-4)}.tale-article-content p:last-child{margin-bottom:0}.coming-soon-page{display:flex;align-items:center;justify-content:center;min-height:70vh;padding:40px 20px}.coming-soon-content{text-align:center;max-width:500px;padding:40px}.coming-soon-content h1{color:var(--accent);margin-bottom:var(--space-3)}.coming-soon-content p{color:var(--text-dim);line-height:1.5}.map-builder-page{padding:var(--space-5);max-width:1000px;margin:0 auto}.map-builder-header{text-align:center;margin-bottom:var(--space-5)}.map-builder-header h1{color:var(--accent);margin-bottom:4px}.map-builder-subtitle{color:var(--text-dim);font-size:.95rem}.map-builder-layout{display:grid;grid-template-columns:200px 1fr;gap:var(--space-4);align-items:start}.map-builder-sidebar{display:flex;flex-direction:column;gap:var(--space-3)}.mb-section{background:var(--bg-panel);border:1px solid var(--border);padding:var(--space-3)}.mb-section-title{font-family:var(--font-display);font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-2)}.mb-tool-group{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:4px}.mb-tool-group:last-child{margin-bottom:0}.mb-tool-btn{padding:6px var(--space-2);font-size:12px;background:var(--bg-dark);color:var(--text-dim);border:1px solid var(--border);text-align:center}.mb-tool-btn:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.mb-tool-btn.active{border-left:2px solid var(--accent);color:var(--text);background:var(--bg-card)}.mb-tool-danger:hover:not(:disabled){border-color:var(--tbt-red);color:var(--tbt-red)}.mb-palette{display:flex;flex-direction:column;gap:var(--space-2);max-height:50vh;overflow-y:auto}.mb-palette-group{display:flex;flex-direction:column;gap:4px}.mb-palette-category{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);border-bottom:1px solid var(--border);padding-bottom:2px}.mb-palette-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.mb-palette-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px;background:var(--bg-dark);border:1px solid var(--border);color:var(--text-dim);font-size:10px;text-align:center;cursor:pointer}.mb-palette-item:hover{border-color:var(--accent)}.mb-palette-item.selected{border:2px solid var(--accent);color:var(--text)}.mb-palette-item.obstacle .mb-palette-swatch{border-color:#cf341866}.mb-palette-swatch{width:100%;height:32px;display:block;border:1px solid rgba(255,255,255,.15);image-rendering:pixelated;image-rendering:crisp-edges}.mb-palette-label{text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.mb-file-group{display:flex;flex-direction:column;gap:4px}.mb-file-btn{font-size:12px;padding:6px var(--space-2);text-align:center}.mb-shortcuts{font-size:11px;color:var(--text-dim);line-height:1.8;padding:0 4px}.mb-shortcuts span{display:inline-block;background:var(--bg-panel);border:1px solid var(--border);padding:1px 6px;font-size:10px;font-family:monospace;margin-right:4px}.map-builder-canvas-wrap{display:flex;justify-content:center;align-items:flex-start}.map-builder-canvas-wrap canvas{border:1px solid var(--border);max-width:100%;height:auto;image-rendering:pixelated;image-rendering:crisp-edges}@media (max-width: 700px){.map-builder-layout{grid-template-columns:1fr}.map-builder-sidebar{order:1;flex-direction:row;flex-wrap:wrap;gap:var(--space-2)}.mb-section{flex:1;min-width:150px}}@media (max-width: 900px) and (min-width: 769px){.battle-layout{grid-template-columns:1fr 240px;gap:var(--space-2);padding:var(--space-2)}.battle-sidebar{font-size:.85rem}}@media (max-width: 768px){.battle-layout{grid-template-columns:1fr;grid-template-rows:1fr auto;height:100vh;height:100dvh;padding:4px;gap:0}.battle-grid-area{overflow:auto;-webkit-overflow-scrolling:touch;min-height:0;padding-bottom:42vh}.battle-sidebar{position:fixed;bottom:0;left:0;right:0;max-height:40vh;overflow-y:auto;background:var(--bg-panel, #1a1f26);border-top:2px solid var(--border);border-radius:12px 12px 0 0;z-index:100;padding:var(--space-2);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom))}.battle-sidebar:before{content:"";display:block;width:36px;height:4px;background:var(--text-dim);border-radius:2px;margin:0 auto var(--space-2);opacity:.4}.action-panel button{min-height:44px!important;font-size:13px!important;padding:var(--space-2) var(--space-3)!important;touch-action:manipulation}.battle-sidebar .btn-primary{min-height:44px!important;font-size:14px!important;touch-action:manipulation}.bard-tab{min-height:44px;font-size:14px}.nav-links{gap:var(--space-4)}.nav-links a{font-size:11px}.hero-section h1{font-size:2.5rem}.feature-cards{grid-template-columns:1fr;padding:var(--space-6) var(--space-4)}.map-picker,.class-picker{grid-template-columns:1fr}.lobby{margin:var(--space-4) auto;padding:0 var(--space-3)}.lobby-form button{min-height:44px;touch-action:manipulation}.race-picker{grid-template-columns:1fr 1fr}.class-builder-picker,.spell-grid,.summary-layout{grid-template-columns:1fr}.builder-progress .step-label{display:none}.stat-block{grid-template-columns:repeat(3,1fr)}.session-item{flex-direction:column;align-items:stretch;gap:var(--space-2)}.session-action-btn{min-height:44px;width:100%;font-size:14px!important}}.touch-btn{min-height:44px;min-width:44px;touch-action:manipulation}.hire-bard-panel{border:1px solid var(--tbt-gold);border-left:3px solid var(--tbt-gold);margin-bottom:var(--space-5)}.hire-bard-header{display:flex;align-items:center;gap:10px;margin-bottom:4px}.hire-bard-header h3{color:var(--tbt-gold);font-family:var(--font-display);font-size:1.2rem;margin:0}.hire-bard-icon{color:var(--tbt-gold);font-size:1.3rem}.hire-bard-subtitle{color:var(--text-dim);font-size:13px;margin-bottom:var(--space-3)}.hire-bard-login-hint{color:var(--text-dim);font-size:13px;font-style:italic}.hire-bard-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:var(--space-3)}.hire-bard-tab{flex:1;padding:var(--space-2) var(--space-3);font-size:13px;font-weight:600;background:transparent;color:var(--text-dim);border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .2s,border-color .2s}.hire-bard-tab:hover{color:var(--text)}.hire-bard-tab.active{color:var(--tbt-gold);border-bottom-color:var(--tbt-gold)}.hire-bard-body{display:flex;flex-direction:column;gap:10px}.hire-bard-field{display:flex;flex-direction:column;gap:4px}.hire-bard-field label{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.hire-bard-optional{text-transform:none;letter-spacing:normal;font-weight:400;opacity:.6}.hire-bard-field textarea{font-family:var(--font-body);padding:var(--space-2) var(--space-3);border:1px solid var(--border);background:var(--bg-dark);color:var(--text);font-size:13px;resize:vertical;min-height:60px}.hire-bard-field textarea:focus{outline:none;border-color:var(--tbt-gold)}.hire-bard-field textarea:disabled{opacity:.4;cursor:not-allowed}.hire-bard-field input:disabled{opacity:.4;cursor:not-allowed}.hire-bard-charcount{font-size:11px;color:var(--text-dim);text-align:right;opacity:.6}.hire-bard-disabled{color:var(--text-dim);font-size:13px;font-style:italic;padding:var(--space-2) 0;opacity:.7}.hire-bard-error{color:var(--red);font-size:13px}.hire-bard-submit{background:transparent;color:var(--tbt-gold);border:2px solid var(--tbt-gold);padding:10px 20px;font-family:var(--font-display);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:background .2s,color .2s;align-self:flex-start}.hire-bard-submit:hover:not(:disabled){background:var(--tbt-gold);color:var(--bg-dark)}.hire-bard-submit:disabled{opacity:.5;cursor:not-allowed}.bard-panel{min-height:80px;max-height:300px;overflow-y:auto;font-size:13px;line-height:1.7;padding:var(--space-2)}.bard-empty{color:var(--text-dim);font-style:italic;padding:var(--space-3) 4px;opacity:.7}.bard-turn-sep{text-align:center;color:var(--text-dim);font-size:11px;opacity:.5;margin:6px 0 2px}.bard-line{font-style:italic;color:var(--tbt-gold);padding:1px 0}.bard-quill{color:var(--tbt-gold);margin-right:6px;font-style:normal}.bard-text{color:var(--tbt-gold)}.bard-line.bard-critical_hit,.bard-line.bard-critical_hit .bard-text{color:var(--gold-glow-bright)}.bard-line.bard-killing_blow,.bard-line.bard-killing_blow .bard-text{color:var(--gold-glow)}.bard-line.bard-last_stand,.bard-line.bard-last_stand .bard-text{color:var(--gold-glow-deep)}.bard-line.bard-combat_end{color:var(--gold-glow-bright);font-weight:600}.bard-line.bard-combat_end .bard-text{color:var(--gold-glow-bright)}.bard-strip{display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-3);background:var(--bg-panel);border:1px solid var(--border);border-left:3px solid var(--tbt-gold);font-style:italic;font-size:13px;color:var(--tbt-gold);margin-bottom:6px;min-height:32px;overflow:hidden}.bard-strip-icon{font-style:normal;font-size:16px;flex-shrink:0}.bard-strip-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bard-tabs{display:flex;border-bottom:1px solid var(--border)}.bard-tab{flex:1;padding:var(--space-2) var(--space-3);font-size:13px;font-weight:600;background:transparent;color:var(--text-dim);border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .2s,border-color .2s}.bard-tab:hover{color:var(--text)}.bard-tab.active{color:var(--tbt-gold);border-bottom-color:var(--tbt-gold)}.bard-tab.log-toggle{flex:0 0 auto;padding:var(--space-2) 14px;font-size:11px;color:var(--text-dim);border-bottom:none}.battle-log-tabbed.expanded{max-height:30vh}.battle-log-tabbed.expanded .combat-log,.battle-log-tabbed.expanded .bard-panel{max-height:calc(30vh - 44px);overflow-y:auto}.battle-log-row{display:flex;gap:var(--space-3);flex:1;min-height:0}.battle-log-row>.card{flex:1;min-width:0}.battle-log-card{padding:0;overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0}.chat-toggle-bar{display:flex;justify-content:flex-end;padding:4px 4px 0}.chat-toggle-btn{font-size:11px;padding:3px 10px;background:var(--bg-panel);border:1px solid var(--border);color:var(--text-dim);cursor:pointer}.chat-badge{display:inline-block;background:var(--accent);color:#fff;border-radius:8px;font-size:10px;padding:0 5px;margin-left:4px;min-width:16px;text-align:center}.chat-overlay{position:fixed;bottom:72px;right:16px;width:320px;max-height:400px;z-index:100;background:var(--bg-panel);border:1px solid var(--border);box-shadow:0 4px 24px #00000080;display:flex;flex-direction:column}.battle-log-tabbed{display:none}@media (max-width: 1024px){.battle-log-row{display:none}.battle-log-tabbed{display:flex;flex-direction:column}}.guide-content{color:var(--text);line-height:1.7;font-size:.95rem}.guide-content h1{font-family:var(--font-display);font-size:2rem;color:var(--tbt-gold);margin-bottom:.5rem}.guide-content h2{font-family:var(--font-display);font-size:1.4rem;color:var(--tbt-gold);margin-top:2rem;padding-bottom:.3rem;border-bottom:1px solid var(--border)}.guide-content h3{font-family:var(--font-display);font-size:1.15rem;color:var(--text);margin-top:1.5rem}.guide-content p{margin:.8rem 0}.guide-content strong{color:var(--tbt-gold)}.guide-content blockquote{border-left:3px solid var(--tbt-gold);padding-left:1rem;margin:1rem 0;color:var(--text-dim);font-style:italic}.guide-content code{background:var(--bg-panel);padding:.15em .4em;border-radius:3px;font-size:.88em}.guide-content pre{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:1rem;overflow-x:auto;font-size:.82rem;line-height:1.5}.guide-content pre code{background:none;padding:0}.guide-content table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.88rem}.guide-content th,.guide-content td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left}.guide-content th{background:var(--bg-panel);color:var(--tbt-gold);font-weight:600}.guide-content hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.guide-content ol,.guide-content ul{padding-left:1.5rem;margin:.5rem 0}.guide-content li{margin:.3rem 0}.page-atmosphere{position:relative;min-height:calc(100vh - 56px)}.page-atmosphere:before{content:"";position:fixed;top:56px;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;opacity:.06}.atmo-tales:before{background:radial-gradient(ellipse at 20% 80%,color-mix(in srgb,var(--gold-glow) 40%,transparent) 0%,transparent 50%),radial-gradient(ellipse at 80% 90%,color-mix(in srgb,var(--gold-glow) 30%,transparent) 0%,transparent 40%);opacity:.1}.atmo-hall:before{background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--gold-glow) 50%,transparent) 0%,transparent 50%),radial-gradient(ellipse at 50% 100%,color-mix(in srgb,var(--danger-glow) 20%,transparent) 0%,transparent 40%);opacity:.08}.atmo-arena:before{background:radial-gradient(ellipse at 30% 70%,color-mix(in srgb,var(--danger-glow) 30%,transparent) 0%,transparent 50%),radial-gradient(ellipse at 70% 40%,color-mix(in srgb,var(--danger-glow) 20%,transparent) 0%,transparent 40%);opacity:.07}.atmo-contact:before{background:radial-gradient(ellipse at 50% 80%,rgba(30,144,255,.2) 0%,transparent 50%);opacity:.06}.atmo-forge:before{background:radial-gradient(ellipse at 50% 90%,rgba(255,140,0,.3) 0%,transparent 40%),radial-gradient(ellipse at 20% 60%,color-mix(in srgb,var(--danger-glow) 15%,transparent) 0%,transparent 40%);opacity:.08}[data-theme=light] .page-atmosphere:before{opacity:.03}@media (max-height: 800px) and (min-width: 769px){.hero-section{padding:var(--space-6) 0 var(--space-4)}.hero-section h1{font-size:2.8rem}.hero-logo-wrap{width:80px;height:80px;margin-bottom:var(--space-3)}.hero-logo-wrap img{max-width:56px}.hero-divider{margin:var(--space-3) auto 0}.feature-cards{padding-top:var(--space-5);gap:var(--space-4)}.lobby{margin:var(--space-4) auto}.lobby h2{margin-bottom:var(--space-3)}.lobby-form{gap:10px}.map-picker{gap:6px}.map-option{padding:var(--space-2)}}
