:root{--sand-100: #f4e3c6;--sand-300: #d8b586;--sand-500: #a97f4c;--bark-700: #3b2b1b;--bark-800: #2a1e13;--bark-900: #191109;--ink: #f6ecdd;--ink-dim: #c4ac8c;--ink-faint: #8d7a60;--gold: #e8b25c;--gold-bright: #ffd68a;--blood: #b3242b;--hp-green: #3fa64a;--hp-red: #8e1f1f;--splat-red: #a41c1c;--splat-blue: #2b5fb8;--panel-bg: rgba(28, 20, 12, .86);--panel-border: rgba(232, 178, 92, .28);--panel-shadow: 0 24px 70px rgba(0, 0, 0, .55), 0 2px 0 rgba(255, 214, 138, .08) inset;--radius: 14px;--ease: cubic-bezier(.22, 1, .36, 1);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(circle at 50% 18%,#2a1d12,#120c07 70%);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}button,input{font:inherit;color:inherit}.app{position:relative;height:100%;width:100%;overflow:hidden}.scene-layer{position:absolute;inset:0}.panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1)}.eyebrow{margin:0;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.button{appearance:none;border:1px solid rgba(232,178,92,.32);background:linear-gradient(180deg,#583f24e6,#342516e6);color:var(--sand-100);padding:11px 18px;border-radius:10px;font-weight:600;cursor:pointer;transition:transform .12s var(--ease),border-color .2s,background .2s,box-shadow .2s}.button:hover:not(:disabled){border-color:#ffd68a99;box-shadow:0 0 0 1px #ffd68a1f,0 8px 24px #0006}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.45;cursor:not-allowed}.button-primary{background:linear-gradient(180deg,var(--gold) 0%,#b4772c 100%);border-color:#ffd68a99;color:#2a1a08;text-shadow:0 1px 0 rgba(255,255,255,.25)}.button-primary.is-ready{background:linear-gradient(180deg,#55b45f,#2f7a38);border-color:#96f0a099;color:#0c2410}.button-ghost{background:#ffffff0a;border-color:#ffffff24;color:var(--ink-dim)}.input{width:100%;padding:11px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#00000059;color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s}.input:focus{border-color:#e8b25ca6;box-shadow:0 0 0 3px #e8b25c24}.input-code{font-family:Cinzel,serif;font-size:22px;letter-spacing:.32em;text-align:center;text-transform:uppercase}.field{display:grid;gap:7px}.field-label{font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--ink-faint)}.splash,.menu{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:26px;padding:24px;text-align:center}.splash-title,.menu-title{margin:0;font-family:Cinzel,serif;font-size:clamp(38px,8vw,68px);font-weight:700;letter-spacing:.16em;background:linear-gradient(180deg,var(--gold-bright),var(--sand-500));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 26px rgba(232,178,92,.28))}.splash-status,.menu-subtitle{margin:0;color:var(--ink-faint);font-size:14px;letter-spacing:.05em}.menu-brand{display:grid;gap:10px}.menu-panel{display:grid;gap:18px;padding:26px;width:min(420px,92vw);text-align:left}.divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;color:var(--ink-faint);font-size:12px;text-transform:uppercase;letter-spacing:.18em}.divider:before,.divider:after{content:"";height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent)}.join-row{display:grid;grid-template-columns:1fr auto;gap:10px}.menu-footnote{max-width:460px;margin:0;font-size:12.5px;line-height:1.65;color:var(--ink-faint)}.lobby{position:absolute;inset:0;display:grid;place-content:center;padding:24px;background:radial-gradient(circle at 50% 40%,#0c080459,#0c0804cc)}.lobby-panel{width:min(560px,94vw);padding:24px;display:grid;gap:22px}.lobby-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.lobby-code{margin:4px 0 0;font-family:Cinzel,serif;font-size:40px;letter-spacing:.28em;color:var(--gold-bright);text-shadow:0 0 30px rgba(232,178,92,.35)}.fighters{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px}.fighter-card{display:grid;gap:5px;padding:14px;border-radius:12px;border:1px solid rgba(255,255,255,.09);background:#00000047;transition:border-color .25s,background .25s}.fighter-card.is-ready{border-color:#50be5f80;background:#285a2d2e}.fighter-card.is-absent{opacity:.5;border-style:dashed}.fighter-name{margin:0;font-size:17px;font-weight:600}.fighter-style{margin:0;font-size:13px;color:var(--ink-dim)}.ready-pip{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.fighter-card.is-ready .ready-pip{color:#7fe08c}.versus{font-family:Cinzel,serif;font-size:18px;color:var(--ink-faint)}.styles{display:grid;gap:10px}.style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.style-button{display:grid;gap:3px;padding:12px 10px;border-radius:11px;border:1px solid rgba(255,255,255,.1);background:#0000004d;cursor:pointer;text-align:left;transition:border-color .18s,background .18s,transform .12s var(--ease)}.style-button:hover{border-color:#e8b25c66}.style-button.is-selected{border-color:var(--gold);background:linear-gradient(180deg,#e8b25c33,#e8b25c0f);box-shadow:0 0 0 1px #e8b25c40}.style-name{font-weight:600;font-size:15px}.style-stance,.style-max{font-size:11.5px;color:var(--ink-faint)}.odds{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:2px 0 0;padding:12px;border-radius:11px;background:#00000042}.odds div{display:grid;gap:2px}.odds dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.odds dd{margin:0;font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--gold-bright)}.lobby-footer{display:flex;justify-content:space-between;gap:12px}.lobby-footer .button-primary{flex:1}.hud{position:absolute;inset:0;pointer-events:none}.hud button{pointer-events:auto}.hud-top{position:absolute;top:20px;left:20px;right:20px;display:flex;justify-content:space-between;gap:16px}.status{display:flex;align-items:center;gap:12px}.status-right{flex-direction:row-reverse;text-align:right}.status-orb{position:relative;width:62px;height:62px;flex:none;filter:drop-shadow(0 6px 16px rgba(0,0,0,.6))}.orb{width:100%;height:100%}.orb-track{fill:#140c06e6}.orb-fill{fill:var(--hp-green);transition:fill .4s}.orb.is-critical .orb-fill{fill:var(--hp-red);animation:orb-pulse .9s ease-in-out infinite}.orb-ring{fill:none;stroke:#e8b25c8c;stroke-width:3}.status.is-you .orb-ring{stroke:#6fc6ffd9}.status.is-them .orb-ring{stroke:#ff7a63bf}.status.is-you .status-name{color:#9fd6ff}.status.is-them .status-name{color:#ffb9a8}@keyframes orb-pulse{50%{opacity:.55}}.orb-value{position:absolute;inset:0;display:grid;place-content:center;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;text-shadow:0 2px 4px rgba(0,0,0,.85)}.status-name{margin:0;font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}.status-right .status-name{justify-content:flex-end}.status-you{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border-radius:5px;background:#e8b25c33;color:var(--gold-bright)}.status-style{margin:2px 0 0;font-size:12px;color:var(--ink-dim);font-variant-numeric:tabular-nums}.fight-log{position:absolute;left:20px;bottom:20px;width:min(340px,46vw);max-height:34vh;overflow-y:auto;padding:12px 14px;border-radius:12px;background:#0e0905b8;border:1px solid rgba(255,255,255,.07);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);scrollbar-width:thin}.log-line{margin:0 0 3px;font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums}.log-you{color:#9fd6ff}.log-them{color:#ffb9a8}.log-system{color:var(--gold-bright);font-weight:600}.countdown{position:absolute;inset:0;display:grid;place-content:center;pointer-events:none}.countdown-value{font-family:Cinzel,serif;font-size:clamp(80px,18vw,190px);font-weight:700;letter-spacing:.06em;color:var(--gold-bright);text-shadow:0 0 60px rgba(232,178,92,.6),0 8px 30px rgba(0,0,0,.7);animation:countdown-pop .9s var(--ease) both}@keyframes countdown-pop{0%{opacity:0;transform:scale(1.7)}22%{opacity:1;transform:scale(1)}75%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.88)}}.result{position:absolute;inset:0;display:grid;place-content:center;padding:24px;background:#0805028c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .5s var(--ease) both;pointer-events:auto}@keyframes fade-in{0%{opacity:0}}.result-panel{width:min(480px,94vw);padding:26px;display:grid;gap:16px;text-align:center;animation:result-rise .6s var(--ease) both}@keyframes result-rise{0%{opacity:0;transform:translateY(18px) scale(.97)}}.result-headline{margin:0;font-family:Cinzel,serif;font-size:44px;letter-spacing:.14em}.result-headline.is-win{color:var(--gold-bright);text-shadow:0 0 40px rgba(232,178,92,.45)}.result-headline.is-loss{color:#d98080}.result-detail{margin:0;color:var(--ink-dim);font-size:14px}.fairness{text-align:left;font-size:12px;border-radius:10px;background:#0000004d;padding:10px 12px}.fairness summary{cursor:pointer;color:var(--ink-faint);font-weight:600;letter-spacing:.04em}.fairness-row{display:grid;gap:2px;margin:10px 0 0}.fairness-row span{color:var(--ink-faint);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.fairness code{font-size:11.5px;word-break:break-all;color:var(--sand-300)}.fairness-note{margin:10px 0 0;color:var(--ink-faint);line-height:1.6}.result-actions{display:grid;grid-template-columns:auto 1fr;gap:12px}.overhead{position:relative;width:0;display:grid;justify-items:center;gap:3px;-webkit-user-select:none;user-select:none}.nameplate{display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:12px;font-weight:700;letter-spacing:.02em;padding:2px 8px;border-radius:7px;background:#0a0603b8;border:1px solid transparent;text-shadow:0 1px 3px rgba(0,0,0,.9)}.is-you .nameplate{color:#9fd6ff;border-color:#6fc6ff8c}.is-them .nameplate{color:#ffb9a8;border-color:#ff7a6380}.nameplate-you{font-size:9px;font-weight:800;letter-spacing:.1em;padding:1px 4px;border-radius:4px;background:#6fc6ff;color:#06263a}.hpbar{width:46px;height:6px;border-radius:2px;background:var(--hp-red);border:1px solid rgba(0,0,0,.65);overflow:hidden}.hpbar-fill{height:100%;background:var(--hp-green);transition:width .22s var(--ease)}.splats{position:absolute;top:12px;display:flex;gap:4px}.splat{display:grid;place-content:center;min-width:26px;height:21px;padding:0 5px;border-radius:11px/10px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.9);box-shadow:0 2px 8px #0000008c,inset 0 1px #ffffff40;transition:opacity .12s linear;animation:splat-in .16s var(--ease) both}@keyframes splat-in{0%{transform:scale(.55);opacity:0}}.splat-red{background:radial-gradient(circle at 35% 28%,#d33a3a,var(--splat-red))}.splat-blue{background:radial-gradient(circle at 35% 28%,#4a80d8,var(--splat-blue))}.splat-max{box-shadow:0 0 18px #ff785ad9,0 2px 8px #0009;outline:1px solid rgba(255,200,150,.8)}.toast{position:absolute;bottom:24px;left:50%;transform:translate(-50%);padding:11px 18px;border-radius:10px;background:#962020f0;border:1px solid rgba(255,140,140,.4);color:#fff;font-size:13.5px;font-weight:500;cursor:pointer;z-index:50;animation:toast-in .26s var(--ease) both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}}.mute{position:absolute;right:18px;bottom:18px;width:40px;height:40px;display:grid;place-content:center;font-size:17px;line-height:1;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#0e0905bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;z-index:55;transition:border-color .2s,transform .12s var(--ease)}.mute:hover{border-color:#e8b25c80}.mute:active{transform:translateY(1px)}.perf{position:absolute;top:12px;left:50%;transform:translate(-50%);display:grid;gap:4px;padding:10px 14px;border-radius:10px;background:#080503e0;border:1px solid rgba(255,255,255,.12);font-size:12px;font-variant-numeric:tabular-nums;z-index:70;pointer-events:auto;min-width:150px}.perf-row{display:flex;justify-content:space-between;gap:18px}.perf-row span{color:var(--ink-faint)}.perf-good{color:#7fe08c}.perf-ok{color:var(--gold-bright)}.perf-bad{color:#ff8a7a}.perf-quality{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:4px}.perf-quality button{padding:4px 2px;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;border-radius:6px;border:1px solid rgba(255,255,255,.14);background:#ffffff0d;color:var(--ink-dim);cursor:pointer}.perf-quality button.is-selected{border-color:var(--gold);background:#e8b25c33;color:var(--gold-bright)}.perf-hint{margin:2px 0 0;font-size:10px;text-align:center;color:var(--ink-faint)}.reconnect-banner{position:absolute;top:0;left:0;right:0;padding:8px;text-align:center;font-size:13px;font-weight:600;background:#965a14eb;z-index:60}@media(max-width:640px){.hud-top{top:12px;left:12px;right:12px}.status-orb{width:48px;height:48px}.status-style{display:none}.fight-log{left:12px;right:12px;bottom:12px;width:auto;max-height:24vh}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
