:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--text:#d9b84a;--text-h:#ffe680;--bg:#000;--border:#ffcc002e;--code-bg:#ffcc0014;--accent:#fc0;--accent-soft:#fa0;--accent-bg:#ffcc001a;--accent-border:#ffcc0073;--accent-dim:#ffcc0047;--social-bg:#ffcc000f;--panel-bg:#000000b8;--panel-bg-strong:#000000e0;--danger:#ff6a3d;--shadow:#000000bf 0 20px 40px -10px, #0000008c 0 8px 18px -8px;--surface-app:#000;--surface-overlay:#000000d1;--surface-panel-control:#000000c7;--surface-input:#000000b3;--surface-card:#000000a6;--surface-consent:#0a0800f7;--text-body:#ffffffd1;--text-muted:#ffffff73;--text-faint:#ffffff4d;--glow-primary:#ffcc0080;--glow-primary-strong:#ffcc00b3;--glow-amber:#ff993380;--matrix-yellow:#fc0;--matrix-yellow-lead:#fff2a8;--matrix-yellow-deep:#b58900;--matrix-amber:#f93;--glyph-font:"Noto Sans Egyptian Hieroglyphs", "Segoe UI Historic", serif;--sans:"Rajdhani", Inter, system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Cinzel", "Rajdhani", Inter, system-ui, serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}#root{box-sizing:border-box;flex-direction:column;height:100%;display:flex}html,body{overscroll-behavior:none;touch-action:manipulation;background:var(--bg);width:100%;height:100%;color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;position:fixed;top:0;left:0;overflow:hidden}canvas{touch-action:manipulation}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:700}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent;appearance:none}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus:not(:focus-visible){outline:none}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.turn-log{display:none;display:none!important}@media (width<=768px){.turn-log{z-index:1;background:var(--surface-overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #ffcc0038;border-radius:16px;margin:0 10px 10px;display:block;position:relative;overflow:hidden}}@media (width>=769px){.turn-log{-webkit-backdrop-filter:blur(12px);z-index:5;background:#000000d9;border:1px solid #ffcc001f;border-radius:12px;width:240px;margin:0;padding:16px 12px;display:block;position:fixed;top:64px;bottom:16px;right:16px;overflow-y:auto}.turn-log__toggle{display:none}.turn-log__body{max-height:none;overflow:visible;display:block!important}.turn-log__title{letter-spacing:.15em;color:#ffcc0080;background:#000000e6;padding:8px 0;font-size:11px;position:sticky;top:0}}.turn-log__toggle{color:#ffcc008c;letter-spacing:.16em;text-transform:uppercase;text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:11px 16px;font-size:11px;font-weight:700;transition:color .12s}.turn-log__toggle:hover{color:#ffcc00e6}.turn-log__body{overscroll-behavior:contain;flex-direction:column;gap:10px;max-height:240px;padding:0 10px 12px;display:flex;overflow-y:auto}.tl-turn{flex-direction:column;gap:4px;display:flex}.tl-turn__header{letter-spacing:.2em;text-transform:uppercase;color:#ffcc008c;border-bottom:1px solid #ffcc001a;padding-bottom:2px;font-size:10px;font-weight:800}.tl-idle{color:#ffcc0059;padding:2px 0;font-size:11px;font-style:italic}.tl-row{border-radius:10px;flex-wrap:wrap;align-items:center;gap:5px;padding:5px 8px;font-size:12px;line-height:1.4;display:flex}.tl-row--you{background:#ffcc0014;border:1px solid #ffcc002e}.tl-row--opp{background:#ff993314;border:1px solid #f933}.tl-who{letter-spacing:.14em;text-transform:uppercase;border-radius:5px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:900}.tl-who--you{color:#fff2a8;background:#ffcc0038}.tl-who--opp{color:#ffc78a;background:#ff993338}.tl-piece{flex-shrink:0;font-size:14px}.tl-coords{color:#fff2a8d9;letter-spacing:.04em;flex-shrink:0;font-size:12px;font-weight:700}.tl-element{color:#ffe680e6;flex-shrink:0;font-size:11px}.tl-result{white-space:nowrap;margin-left:auto;font-size:11px;font-weight:700}.tl-result--ok{color:#fc06}.tl-result--bounce{color:#ffb347}.tl-result--win{color:#fff2a8;text-shadow:0 0 8px #fff2a873}.tl-result--lost{color:#ff6a3d}*{-webkit-user-select:none;user-select:none}.turn-log,.turn-log *{-webkit-user-select:text;user-select:text}.app-shell{pointer-events:none;color:var(--text-h);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);box-sizing:border-box;background:0 0;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.app-shell>*{z-index:1;pointer-events:auto;position:relative}.app-shell>.matrix-rain{z-index:0}.game-statusbar,.turn-panel,.lobby-card,.duel-modal,.result-screen__card{z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative}.game-statusbar{border-bottom:1px solid var(--accent-border);background:var(--surface-overlay);flex-shrink:0;align-items:center;gap:12px;height:48px;padding:0 16px;display:flex}.game-statusbar__brand{font-family:var(--heading);letter-spacing:.22em;text-transform:uppercase;color:var(--matrix-yellow);text-shadow:0 0 10px var(--glow-primary);white-space:nowrap;flex-shrink:0;font-size:18px;font-weight:700}.game-statusbar__sep{background:var(--accent-dim);flex-shrink:0;width:1px;height:16px}.game-statusbar__fullscreen{width:36px;height:36px;color:var(--matrix-yellow);cursor:pointer;opacity:.8;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;font-size:18px;transition:opacity .12s,text-shadow .12s;display:flex}.game-statusbar__fullscreen:hover{opacity:1;text-shadow:0 0 8px var(--matrix-yellow)}.game-statusbar__info{letter-spacing:.14em;text-transform:uppercase;color:var(--text-body);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.game-statusbar__info strong{color:var(--matrix-yellow-lead);text-shadow:0 0 6px #ffcc0073;font-size:18px;font-weight:800}.play-stage{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;padding:12px 18px 8px;display:flex;position:relative;overflow:hidden}.error-banner{z-index:1;color:#ffcdb4;background:var(--surface-overlay);border:1px solid #ff6a3d80;border-radius:16px;margin:0 20px;padding:12px 16px;position:relative;box-shadow:0 0 22px #ff6a3d2e}.turn-panel{border:1px solid var(--accent-border);background:var(--panel-bg);border-radius:24px;flex-direction:column;flex-shrink:0;gap:14px;margin:0 20px 28px;padding:18px 20px;display:flex;box-shadow:0 18px 42px #0000008c,0 0 24px #ffcc0014,inset 0 1px #ffcc000f}.turn-panel__row{grid-template-columns:repeat(4,1fr);gap:8px;width:100%;display:grid}.turn-panel__card{border:1px solid var(--accent-dim);min-height:72px;color:var(--matrix-yellow-lead);letter-spacing:.04em;text-transform:uppercase;text-shadow:0 1px 6px #000000e6,0 0 10px #000000b3;cursor:pointer;border-radius:12px;padding:0 8px;font-size:28px;font-weight:800;transition:transform .12s,box-shadow .12s,opacity .12s}@media (width>=768px){.turn-panel__card{font-size:32px}}.turn-panel__card:hover:not(:disabled){transform:translateY(-2px)}.turn-panel__card:disabled{cursor:not-allowed}.turn-panel__card--assigned{box-shadow:0 0 0 2px var(--matrix-yellow), 0 0 22px #ffcc0047}.turn-panel__card--pending{box-shadow:0 0 0 2px var(--matrix-yellow-lead), 0 0 22px #fff2a861}.element-card{position:relative}.element-card--pending{opacity:.65;box-shadow:inset 0 0 0 2px #ffcc00e6}.element-card--consumed{opacity:.28;filter:grayscale(70%);cursor:not-allowed;pointer-events:none}.element-card__x{pointer-events:none;z-index:2;font-size:18px;font-weight:900;line-height:1;position:absolute;top:6px;right:10px}.element-card__x--pending{color:#ffdc00;text-shadow:0 0 8px #ffdc00cc}.element-card__x--consumed{color:#ff321e;text-shadow:0 0 8px #ff321ecc}.turn-panel__meta{flex-wrap:wrap;gap:12px;display:flex}.turn-panel__pill{min-height:32px;color:var(--matrix-yellow);border:1px solid var(--accent-dim);background:#0000008c;border-radius:999px;align-items:center;padding:0 12px;font-size:12px;display:inline-flex}.turn-panel__pill--accent{color:var(--matrix-yellow-lead);border-color:var(--accent-border);box-shadow:0 0 12px #fc03}.turn-panel__actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.turn-panel__status{color:var(--matrix-yellow);font-size:14px}.cta-button{border:1px solid var(--accent-border);background:var(--surface-panel-control);min-height:46px;color:var(--matrix-yellow-lead);font-family:var(--heading);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;text-shadow:0 0 8px #ffcc0073;border-radius:16px;padding:0 20px;font-size:15px;font-weight:700;transition:transform .12s,box-shadow .12s,background .12s,color .12s;box-shadow:0 0 18px #ffcc001f,inset 0 0 0 1px #ffcc0014}.cta-button:hover{box-shadow:0 0 26px #ffcc0047, inset 0 0 0 1px var(--matrix-yellow);background:#ffcc0014;transform:translateY(-2px)}.cta-button--ready{color:#1a0f00;border-color:var(--matrix-yellow);text-shadow:none;background:linear-gradient(135deg,#ffcc00e6,#ff9933e6);box-shadow:0 0 28px #ffcc0080}.cta-button--ready:hover{color:#120a00;background:linear-gradient(135deg,#ffe680,#ffb252)}.cta-button--secondary{border-color:var(--accent-dim);color:var(--matrix-yellow);background:#000000b8;box-shadow:0 0 16px #ffcc001a}.cta-button--share{color:#ffffff8c;box-shadow:none;background:#0000008c;border-color:#ffffff24;font-size:13px}.cta-button--share:hover{color:#ffffffd1;box-shadow:none;background:#ffffff0d;border-color:#ffffff47}.lobby-screen,.result-screen,.duel-overlay{z-index:1;flex:1;justify-content:center;align-items:center;padding:28px;display:flex;position:relative}.lobby-card,.result-screen__card,.duel-modal{border:1px solid var(--accent-border);background:var(--panel-bg-strong);border-radius:28px;width:min(100%,560px);padding:32px;box-shadow:0 30px 70px #0009,0 0 42px #ffcc0024,inset 0 1px #ffcc0014}.lobby-card__eyebrow,.result-screen__eyebrow,.duel-modal__eyebrow{font-family:var(--heading);letter-spacing:.26em;text-transform:uppercase;color:var(--matrix-yellow);text-shadow:0 0 10px #fc06;font-size:12px}.lobby-card__title,.result-screen__title,.duel-modal__title{font-family:var(--heading);letter-spacing:-.02em;color:var(--matrix-yellow-lead);text-shadow:0 0 18px #ffcc0073,0 0 44px #fc03;margin:10px 0 8px;font-size:clamp(34px,5vw,56px);line-height:.95}.lobby-card__subtitle,.result-screen__subtitle,.duel-modal__subtitle{color:#ffcc00b8;line-height:1.5}.lobby-card__controls,.lobby-card__actions,.result-screen__actions{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.lobby-input{border:1px solid var(--accent-dim);background:var(--surface-input);width:100%;min-height:52px;color:var(--matrix-yellow-lead);letter-spacing:.12em;box-sizing:border-box;border-radius:16px;padding:0 16px;font-size:16px;transition:border-color .12s,box-shadow .12s}.lobby-input:focus{border-color:var(--matrix-yellow);outline:none;box-shadow:0 0 18px #ffcc004d}.lobby-input::placeholder{color:var(--accent-dim)}.lobby-card__note,.result-screen__feedback,.duel-modal__waiting{color:#ffcc008c;margin-top:14px;font-size:14px}.duel-overlay{z-index:10;background:radial-gradient(circle,#ffcc0014,#0000 50%),#000000e0;position:fixed;inset:0}.duel-modal{animation:.22s cubic-bezier(.22,1,.36,1) modalRise}.duel-modal__versus{justify-content:center;gap:16px;margin:22px 0;display:flex}.duel-modal__piece{text-align:center;border:1px solid var(--accent-dim);background:#000000b3;border-radius:20px;min-width:108px;padding:16px}.duel-modal__piece--yours{border-color:var(--matrix-yellow);box-shadow:0 0 22px #ffcc0059}.duel-modal__piece--opponent{border-color:#ff99338c;box-shadow:0 0 22px #ff99334d}.duel-modal__piece-label{letter-spacing:.14em;text-transform:uppercase;color:var(--matrix-yellow-lead);margin-top:6px;font-weight:800;display:block}.duel-modal__actions{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.cta-button--fight{color:#1a0800;text-shadow:none;background:linear-gradient(135deg,#ff9933f2,#ff6a3de6);border-color:#ff9933e6;box-shadow:0 0 26px #ff993373}.cta-button--fight:hover{background:linear-gradient(135deg,#ffb866,#ff8a58)}.cta-button--dodge{color:var(--matrix-yellow);border-color:var(--matrix-yellow);background:#000000c7;box-shadow:0 0 22px #ffcc004d}.cta-button--dodge:hover{background:#ffcc0014}.result-screen__card{text-align:center;animation:.22s cubic-bezier(.22,1,.36,1) modalRise}.result-screen__title--win{color:var(--matrix-yellow-lead);text-shadow:0 0 28px #fc09,0 0 56px #ffcc0040}.result-screen__title--lose{color:#ffb386;text-shadow:0 0 28px #ff6a3d73}.result-screen__room{background:var(--surface-card);border:1px solid var(--accent-dim);border-radius:20px;margin-top:20px;padding:16px 20px}.result-screen__room-label{color:#ffcc008c;text-transform:uppercase;letter-spacing:.18em;font-size:12px}.result-screen__room-code{color:var(--matrix-yellow-lead);font-family:var(--mono);letter-spacing:.22em;text-shadow:0 0 14px #ffcc0059;margin-top:8px;font-size:28px;font-weight:800}.result-screen__feedback{color:var(--matrix-yellow)}.card-fire{background:linear-gradient(135deg,#1a0600,#3a0c00,#ff5a1f);box-shadow:0 0 12px #ff5a1e73}.card-water{background:linear-gradient(135deg,#00141a,#003a4a,#25b2c9);box-shadow:0 0 12px #25b2c973}.card-earth{background:linear-gradient(135deg,#0a1400,#1a3a00,#6ab025);box-shadow:0 0 12px #6ab02573}.card-air{background:linear-gradient(135deg,#12121a,#2a2a38,#8a8aa0);box-shadow:0 0 12px #b4b4c866}@keyframes modalRise{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=480px){.play-stage{padding:4px 8px 0}}@media (width<=640px){.play-stage{padding:8px 6px 10px}.turn-panel{margin:0 10px 12px;padding:16px}.lobby-screen,.result-screen,.duel-overlay{padding:16px}.lobby-card,.result-screen__card,.duel-modal{padding:24px 18px}}@media (prefers-reduced-motion:reduce){.cta-button,.turn-panel__card,.duel-modal,.result-screen__card{transition:none!important;animation:none!important}}.game-statusbar__countdown--urgent{color:#f42;text-shadow:0 0 10px #f42c;animation:.5s ease-in-out infinite alternate countdownPulse}@keyframes countdownPulse{0%{opacity:1}to{opacity:.55}}.round-banner-overlay{pointer-events:none;z-index:8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.round-banner{font-family:var(--heading);letter-spacing:.18em;text-transform:uppercase;color:var(--matrix-yellow-lead);text-shadow:0 0 18px #ffcc00b3,0 0 48px #ffcc0059,0 0 80px #ffcc0026;will-change:transform, opacity;font-size:clamp(42px,9vw,88px);font-weight:700}.round-banner--intro{animation:2.2s cubic-bezier(.22,1,.36,1) forwards bannerIntro}@keyframes bannerIntro{0%{opacity:0;transform:scale(.4)translateY(40px)}18%{opacity:1;transform:scale(1.08)translateY(0)}28%{opacity:1;transform:scale(1)translateY(0)}72%{opacity:1;transform:scale(1)translateY(0)}88%{opacity:1;transform:scale(1.04)translateY(-8px)}to{opacity:0;transform:scale(.35)translateY(-60px)}}.round-banner--resolving{letter-spacing:.22em;color:#f93;text-shadow:0 0 14px #ff9933bf,0 0 38px #ff993359;font-size:clamp(26px,5.5vw,56px);animation:1.8s cubic-bezier(.22,1,.36,1) forwards bannerResolving}@keyframes bannerResolving{0%{opacity:0;filter:brightness(2.2);transform:scale(1.6)}14%{opacity:1;filter:brightness(1.3);transform:scale(1)}55%{opacity:1;filter:brightness();transform:scale(1)}to{opacity:0;filter:brightness(.8);transform:scale(.88)translateY(8px)}}.round-banner--clash{letter-spacing:.14em;color:#fc0;text-shadow:0 0 12px #fc09,0 0 32px #ffcc0040;flex-direction:column;align-items:center;gap:.3em;font-size:clamp(18px,3.5vw,36px);animation:.6s cubic-bezier(.22,1,.36,1) forwards bannerClash;display:flex}.round-banner__clash-line{letter-spacing:.2em;font-size:1.4em}.round-banner__clash-line--eliminated{color:#f44;text-shadow:0 0 14px #ff4444b3;font-size:1.1em}@keyframes bannerClash{0%{opacity:0;transform:scale(.7)}20%{opacity:1;transform:scale(1.05)}35%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.round-banner--intro,.round-banner--resolving,.round-banner--clash,.game-statusbar__countdown--urgent{opacity:1;transform:none;animation:none!important}}.throne-progress{border:1px solid var(--accent-dim);background:#0009;border-radius:12px;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;margin:8px 20px 4px;padding:8px 16px;display:flex}.throne-progress--yours{border-color:#ffcc0073;box-shadow:0 0 14px #ffcc0024}.throne-progress--theirs{border-color:#ff993361;box-shadow:0 0 14px #ff99331f}.throne-progress--open{opacity:.55;border-color:#ffcc0026}.throne-progress__label{font-family:var(--heading);letter-spacing:.22em;text-transform:uppercase;color:#ffcc00a6;white-space:nowrap;font-size:10px;font-weight:700}.throne-progress--theirs .throne-progress__label{color:#ff9933bf}.throne-progress__pips{gap:6px;display:flex}.throne-progress__pip{background:#ffcc001f;border:1px solid #ffcc0038;border-radius:4px;width:20px;height:8px;transition:background .22s,box-shadow .22s}.throne-progress__pip--filled{background:var(--matrix-yellow);box-shadow:0 0 8px #ffcc00b3}.throne-progress--theirs .throne-progress__pip--filled{background:#f93;box-shadow:0 0 8px #ff9933b3}.throne-progress__frac{font-family:var(--mono);color:var(--matrix-yellow);white-space:nowrap;font-size:12px;font-weight:700}.throne-progress--theirs .throne-progress__frac{color:#f93}.install-prompt{z-index:2;background:#000000e6;border-bottom:1px solid #ffcc004d;flex-shrink:0;align-items:center;gap:10px;padding:10px 16px;display:flex;position:relative;box-shadow:0 2px 12px #ffcc001a}.install-prompt__text{color:#fc0c;letter-spacing:.04em;flex:1;font-size:13px;font-weight:600}.install-prompt__btn{border:1px solid var(--matrix-yellow);color:var(--matrix-yellow-lead);letter-spacing:.08em;cursor:pointer;white-space:nowrap;background:#ffcc001f;border-radius:10px;padding:6px 14px;font-size:13px;font-weight:700;transition:background .12s}.install-prompt__btn:hover{background:#ffcc0038}.install-prompt__close{color:#ffcc0073;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:20px;display:flex}.install-prompt__close:hover{color:var(--matrix-yellow)}.duel-modal__locked{flex-direction:column;align-items:center;gap:10px;padding:18px 0 8px;display:flex}.duel-modal__locked-icon{font-size:32px;animation:1.4s ease-in-out infinite alternate lockPulse}@keyframes lockPulse{0%{opacity:.7;transform:scale(.95)}to{opacity:1;transform:scale(1.08)}}.duel-modal__vs-separator{font-family:var(--heading);letter-spacing:.18em;color:#ffcc0073;align-items:center;font-size:14px;font-weight:700;display:flex}.duel-modal__piece-numeral{font-family:var(--heading);color:var(--matrix-yellow-lead);text-shadow:0 0 12px #ffcc0073;margin-bottom:4px;font-size:28px;font-weight:700;display:block}.duel-modal__piece--opponent .duel-modal__piece-numeral{color:#ffb386;text-shadow:0 0 12px #ff6a3d73}.result-stats{border:1px solid var(--accent-dim);background:var(--panel-bg);border-radius:16px;margin-top:18px;overflow:hidden}.result-stats__row{border-bottom:1px solid #ffcc001a;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.result-stats__row:last-child{border-bottom:none}.result-stats__label{letter-spacing:.14em;text-transform:uppercase;color:#ffcc008c;font-size:12px;font-weight:600}.result-stats__value{font-family:var(--heading);color:var(--matrix-yellow-lead);font-size:15px;font-weight:700}.result-stats__value--elements{gap:6px;font-family:inherit;font-size:18px;display:flex}.result-stats__element{border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;display:inline-flex}.result-stats__value--mode{letter-spacing:.18em;color:#ffcc00a6;font-size:11px}.result-stats__row--mode{background:#ffcc000a}.result-challenge{margin-top:10px}.cta-button--challenge{color:#ffcc00bf;width:100%;box-shadow:none;background:#000000b8;border-color:#ffcc004d;font-size:13px}.cta-button--challenge:hover{border-color:var(--accent-border);color:var(--matrix-yellow-lead);background:#ffcc000f}.result-proof{background:var(--panel-bg);border:1px solid #ffcc0024;border-radius:12px;margin-top:14px;padding:10px 14px}.result-proof__toggle{cursor:pointer;color:#ffcc0080;letter-spacing:.06em;text-align:left;background:0 0;border:none;width:100%;padding:0;font-size:12px;transition:color .12s}.result-proof__toggle:hover{color:#fc0c}.result-proof__toggle code{font-family:var(--mono);color:var(--matrix-yellow);background:#ffcc0014;border-radius:4px;padding:1px 5px;font-size:12px}.result-proof__id{color:#fc06;margin-top:6px;font-size:11px}.result-proof__id code{color:#fc09;font-size:11px}.lobby-modes{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.lobby-mode-btn{border:1px solid var(--accent-dim);color:#ffcc00a6;font-family:var(--heading);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#000000a6;border-radius:10px;padding:7px 14px;font-size:12px;font-weight:700;transition:background .12s,border-color .12s,color .12s}.lobby-mode-btn:hover:not(:disabled){color:var(--matrix-yellow-lead);border-color:var(--accent-border);background:#ffcc0014}.lobby-mode-btn--active{border-color:var(--matrix-yellow);color:var(--matrix-yellow-lead);background:#ffcc001f;box-shadow:0 0 14px #fc03}.lobby-mode-btn--locked{opacity:.38;cursor:not-allowed}.lobby-mode-desc{color:#ffcc008c;min-height:2em;margin-top:10px;font-size:13px;line-height:1.5}.lobby-card__affiliate{background:#ffcc000f;border:1px solid #ffcc004d;border-radius:999px;align-items:center;gap:8px;margin-top:14px;padding:6px 14px;display:inline-flex}.lobby-card__affiliate-label{letter-spacing:.14em;text-transform:uppercase;color:#ffcc0080;font-size:11px;font-weight:600}.lobby-card__affiliate-code{font-family:var(--heading);letter-spacing:.1em;color:var(--matrix-yellow-lead);font-size:13px;font-weight:700}.lobby-mode-coming-soon{display:inline-block;position:relative}.lobby-mode-btn--coming-soon{opacity:.55;cursor:default;border-style:dashed}.lobby-mode-btn--coming-soon:hover{color:#ffcc008c;background:0 0;border-color:#ffcc004d}.lobby-coming-soon-tip{letter-spacing:.08em;text-transform:uppercase;color:#ffcc00bf;white-space:nowrap;pointer-events:none;z-index:100;background:#000000e0;border:1px solid #ffcc0040;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:600;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}@keyframes barUrgentFlash{0%,to{opacity:1}50%{opacity:.45}}@keyframes modalUrgentPulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes labelUrgentPop{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.duel-modal__countdown{background:#ffcc001f;border-radius:3px;height:6px;margin:14px 0 6px;position:relative;overflow:hidden}.duel-modal__countdown-bar{background:#ffcc00bf;border-radius:3px;height:100%;transition:width .1s linear,background .4s;box-shadow:0 0 6px #fc06}.duel-modal__countdown-bar--urgent{background:#ff3723e6;animation:.6s ease-in-out infinite barUrgentFlash;box-shadow:0 0 12px #ff3723b3}.duel-modal{overflow:visible}.duel-modal:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;will-change:opacity;position:absolute;inset:0;box-shadow:0 0 38px #ff3c28bf,inset 0 0 0 1px #ff3c288c}.duel-modal:has(.duel-modal__countdown-bar--urgent):after{animation:.6s ease-in-out infinite modalUrgentPulse}.duel-modal__countdown-label{letter-spacing:.08em;color:#ffcc00a6;font-size:11px;font-weight:700;transition:color .3s;position:absolute;top:8px;right:0}.duel-modal__countdown-label--urgent{color:#ff5a46;animation:.6s ease-in-out infinite labelUrgentPop}@media (prefers-reduced-motion:reduce){.duel-modal__countdown-bar--urgent,.duel-modal__countdown-label--urgent{animation:none!important}.duel-modal:has(.duel-modal__countdown-bar--urgent):after{animation:none!important}}.emote-bar{opacity:1;justify-content:center;gap:8px;padding:6px 0 2px;transition:opacity .3s;display:flex}.emote-bar--cooldown{opacity:.45}.emote-bar__btn{cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0000008c;border:1px solid #ffcc002e;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:20px;line-height:1;transition:transform .12s,background .15s;display:flex}.emote-bar__btn:active:not(:disabled){background:#ffcc001a;transform:scale(.88)}.emote-bar__btn:disabled{cursor:default}.emote-bubbles{pointer-events:none;z-index:60;flex-direction:column;gap:8px;display:flex;position:absolute}.emote-bubbles--opponent{top:60px;right:16px}.emote-bubbles--self{bottom:150px;right:16px}.emote-bubble{font-size:32px;line-height:1;animation:2.5s ease-out forwards emotePop}@keyframes emotePop{0%{opacity:0;transform:scale(.5)translateY(8px)}12%{opacity:1;transform:scale(1.18)translateY(0)}30%{opacity:1;transform:scale(1)translateY(0)}80%{opacity:1;transform:scale(1)translateY(-8px)}to{opacity:0;transform:scale(.9)translateY(-16px)}}@media (prefers-reduced-motion:reduce){.emote-bubble{animation:none}}@keyframes bannerSlideIn{0%{opacity:0;transform:translateY(-110%)}to{opacity:1;transform:translateY(0)}}.disconnect-banner{top:env(safe-area-inset-top,0px);z-index:120;background:var(--surface-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #ffa02866;align-items:center;gap:10px;padding:10px 16px;font-family:inherit;font-size:13px;animation:.3s ease-out bannerSlideIn;display:flex;position:fixed;left:0;right:0;box-shadow:0 2px 16px #ff780040}.disconnect-banner__icon{color:#ffb428f2;flex-shrink:0;font-size:16px}.disconnect-banner__text{color:#ffdc96e6;letter-spacing:.02em;flex:1}.disconnect-banner__leave{color:#ff6450e6;letter-spacing:.06em;cursor:pointer;background:0 0;border:1px solid #ff503c8c;border-radius:4px;flex-shrink:0;padding:4px 12px;font-family:inherit;font-size:12px;font-weight:600;transition:background .2s,border-color .2s}.disconnect-banner__leave:hover,.disconnect-banner__leave:focus-visible{background:#ff3c2826;border-color:#ff503cd9;outline:none}.disconnect-banner__grace{color:#ff643ce6;font-weight:700}@media (prefers-reduced-motion:reduce){.disconnect-banner{animation:none}}.consent-banner{background:var(--surface-consent);padding:16px 20px;padding-bottom:calc(16px + env(safe-area-inset-bottom));z-index:500;border-top:1px solid #ffcc0040;flex-direction:column;gap:10px;max-width:480px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.consent-banner__text{color:var(--text-body);margin:0;font-size:12px;line-height:1.5}.consent-banner__more{color:#ffcc00b3;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px;text-decoration:underline}.consent-banner__note{color:var(--text-muted);border-left:2px solid #fc03;margin:0;padding:8px 12px;font-size:11px;line-height:1.6}.consent-banner__accept{align-self:flex-start;padding:10px 20px;font-size:13px}.fullscreen-gate{background:var(--surface-app);z-index:1000;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.fullscreen-gate__content{text-align:center;flex-direction:column;align-items:center;gap:20px;max-width:320px;display:flex}.fullscreen-gate__logo{letter-spacing:.25em;color:#ffcc0080;font-size:13px;font-weight:700}.fullscreen-gate__heading{color:#fc0;letter-spacing:.08em;margin:0;font-size:22px;font-weight:700}.fullscreen-gate__desc{color:var(--text-muted);margin:0;font-size:13px;line-height:1.6}.fullscreen-gate__join{letter-spacing:.12em;width:100%;padding:16px;font-size:16px;font-weight:700}.fullscreen-gate__bypass{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:8px;font-family:inherit;font-size:12px;text-decoration:underline}.fullscreen-gate__bypass:hover{color:var(--text-muted)}.result-screen{background:var(--surface-app)}.turn-panel__fullscreen{color:#ffcc0073;letter-spacing:.1em;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #fc03;border-radius:6px;width:100%;padding:6px 16px;font-family:inherit;font-size:11px;font-weight:700;transition:color .12s,border-color .12s}.turn-panel__fullscreen:hover,.turn-panel__fullscreen:active{color:#fc0c;border-color:#ffcc0073}.turn-panel__action-row{min-height:46px;display:flex}.cta-button--unready{color:#ffcc008c;letter-spacing:.12em;background:0 0;border:1px solid #ffcc0059;font-weight:700}.cta-button--unready:hover{color:#ffcc00d9;border-color:#ffcc00b3}.throne-progress__timer-inline{letter-spacing:.1em;color:#ffcc00e6;white-space:nowrap;background:#0006;border:1px solid #ffcc004d;border-radius:10px;flex-shrink:0;align-items:center;margin-left:auto;padding:1px 8px;font-size:12px;font-weight:700;display:inline-flex}.throne-progress__timer-inline--urgent{color:#ff3c28;border-color:#ff3c28b3;animation:.6s ease-in-out infinite countdownPulse}@media (width>=769px){.throne-progress__timer-inline{letter-spacing:.15em;border-width:2px;border-radius:20px;padding:4px 20px;font-size:28px}}.floating-timer{letter-spacing:.15em;color:#ffcc00f2;text-align:center;pointer-events:none;-webkit-backdrop-filter:blur(12px);z-index:10;white-space:nowrap;background:#000000eb;border:1.5px solid #ffcc008c;border-radius:32px;min-width:110px;padding:10px 32px;font-size:26px;font-weight:800;position:absolute;top:-44px;left:50%;transform:translate(-50%);box-shadow:0 0 24px #fc03,inset 0 0 0 1px #ffcc001a}.floating-timer--urgent{color:#ff3c28;border-color:#ff3c28d9;animation:.6s ease-in-out infinite countdownPulse;box-shadow:0 0 32px #ff3c2859,inset 0 0 0 1px #ff3c2826}@media (width>=769px){.floating-timer{letter-spacing:.2em;border-width:2px;border-radius:40px;min-width:180px;padding:14px 48px;font-size:42px;top:-60px}.floating-timer--urgent{box-shadow:0 0 48px #ff3c2880,inset 0 0 0 1px #ff3c2833}}.resolution-overlay{z-index:90;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;-webkit-user-select:none;user-select:none;background:#000000d1;flex-direction:column;justify-content:center;align-items:center;gap:24px;display:flex;position:fixed;inset:0}.samurai-sprite{background-position:50%;background-size:cover;flex-shrink:0;width:120px;height:120px;animation:3s ease-in-out infinite samuraiBob}@keyframes samuraiBob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.clash-samurai-row{box-sizing:border-box;flex-direction:row;justify-content:space-between;align-items:flex-end;width:100%;padding:0 16px;display:flex}.clash-samurai-col{display:none}@media (width>=601px){.clash-samurai-row{display:none}.clash-samurai-col{flex-shrink:0;justify-content:center;align-items:center;display:flex}}.clash-samurai-col--right .samurai-sprite,.clash-samurai-row .samurai-sprite:last-child{transform:scaleX(-1)}.clash-stage{flex-direction:row;align-items:center;gap:16px;display:flex}.clash-stage__arena{justify-content:center;align-items:center;height:245px;display:flex;position:relative}@media (width>=601px){.clash-stage__arena{height:420px}}.clash-pair{flex-direction:row;align-items:center;gap:0;display:flex;position:relative}.clash-pair--exit{animation:.3s forwards clashPairExit}@keyframes clashPairExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.clash-card{perspective:800px;flex-shrink:0;width:140px;height:245px;position:relative}.clash-card--enter-left{animation:.4s cubic-bezier(.2,.8,.3,1) forwards cardEnterLeft}.clash-card--enter-right{animation:.4s cubic-bezier(.2,.8,.3,1) forwards cardEnterRight}@keyframes cardEnterLeft{0%{opacity:0;transform:translate(-160px)}to{opacity:1;transform:translate(0)}}@keyframes cardEnterRight{0%{opacity:0;transform:translate(160px)}to{opacity:1;transform:translate(0)}}@media (width>=601px){.clash-card{width:240px;height:420px}}.clash-card__inner{width:100%;height:100%;transform-style:preserve-3d;border-radius:14px;transition:transform .5s ease-in-out;position:relative}.clash-card--flipped .clash-card__inner{transform:rotateY(180deg)}.clash-card__back,.clash-card__front{backface-visibility:hidden;border-radius:14px;position:absolute;inset:0;overflow:hidden}.clash-card__back{background:#1a1a2e}.clash-card__back img,.clash-card__front img{object-fit:cover;border-radius:14px;width:100%;height:100%;display:block}.clash-card__front{flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;transform:rotateY(180deg)}.clash-card__kanji{text-shadow:0 0 24px;font-family:serif;font-size:64px;line-height:1}@media (width>=601px){.clash-card__kanji{font-size:96px}}.clash-card__elem-name{font-family:var(--heading);letter-spacing:.2em;text-transform:uppercase;opacity:.8;font-size:11px;font-weight:700}.clash-card__label{font-family:var(--heading);letter-spacing:.18em;text-transform:uppercase;color:#ffffff59;font-size:9px;font-weight:600;position:absolute;bottom:12px}.clash-card--winner .clash-card__inner:after{content:"";background:radial-gradient(ellipse, var(--glow-color,#fc0) 0%, transparent 65%);opacity:0;z-index:-1;pointer-events:none;border-radius:50%;animation:.2s forwards cardGlowIn;position:absolute;inset:-50%}@keyframes cardGlowIn{0%{opacity:0}to{opacity:.45}}.clash-card--loser .clash-card__inner{opacity:.35;filter:grayscale(60%);transition:transform .5s ease-in-out,opacity .2s,filter .2s}.clash-card-slot{flex-direction:column;align-items:center;gap:10px;display:flex}.clash-titles{box-sizing:border-box;flex-direction:row;justify-content:space-around;width:100%;padding:0 8px 10px;display:flex}.clash-title{font-family:var(--heading);letter-spacing:.32em;text-transform:uppercase;-webkit-user-select:none;user-select:none;color:#0000;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 6px #0009);-webkit-background-clip:text;background-clip:text;font-size:22px;font-weight:700;line-height:1}@media (width>=601px){.clash-title{letter-spacing:.36em;font-size:34px}}.clash-title--gold{text-shadow:0 0 14px #ffc4468c,0 0 28px #ffa02859;background-image:linear-gradient(#fff4b8 0%,#ffd86b 28%,#c98a2b 55%,#f7e08a 78%,#b8741f 100%)}.clash-title--silver{text-shadow:0 0 14px #d2e1f58c,0 0 28px #a0b4d259;background-image:linear-gradient(#fff 0%,#e8eef5 28%,#8a96a8 55%,#f0f3f8 78%,#6c7686 100%)}.clash-sym{pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:100px;margin:0 4px;display:flex}@media (width>=601px){.clash-sym{width:120px;height:140px;margin:0 12px}}.clash-sym svg{width:100%;height:100%;overflow:visible}.clash-sym--shake{transform-origin:50%;animation:.22s cubic-bezier(.34,1.56,.64,1) forwards symPopIn,.36s .22s symShake}@keyframes symPopIn{0%{opacity:0;transform:scale(.2)}60%{opacity:1;transform:scale(1.25)}to{opacity:1;transform:scale(1)}}@keyframes symShake{0%{transform:translate(0)scale(1)}15%{transform:translate(-7px)scale(1)}30%{transform:translate(7px)scale(1)}45%{transform:translate(-5px)scale(1)}60%{transform:translate(5px)scale(1)}80%{transform:translate(-2px)scale(1)}to{transform:translate(0)scale(1)}}.clash-sym--equal .eq-bar{transform-origin:50%}.clash-sym--equal .eq-bar--top{animation:.52s cubic-bezier(.2,.8,.3,1.2) forwards eqBarTop}.clash-sym--equal .eq-bar--bot{animation:.52s cubic-bezier(.2,.8,.3,1.2) forwards eqBarBot}@keyframes eqBarTop{0%{opacity:0;transform:translate(-120px)}70%{opacity:1;transform:translate(6px)}to{opacity:1;transform:translate(0)}}@keyframes eqBarBot{0%{opacity:0;transform:translate(120px)}70%{opacity:1;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.clash-sym--intercept .int-chev{transform-origin:50%}.clash-sym--intercept .int-chev--left{animation:.38s cubic-bezier(.5,0,.75,0) forwards intLeft}.clash-sym--intercept .int-chev--right{animation:.38s cubic-bezier(.5,0,.75,0) forwards intRight}@keyframes intLeft{0%{opacity:0;transform:translate(-90px)}60%{opacity:1;transform:translate(0)}80%{opacity:1;transform:translate(8px)}to{opacity:1;transform:translate(4px)}}@keyframes intRight{0%{opacity:0;transform:translate(90px)}60%{opacity:1;transform:translate(0)}80%{opacity:1;transform:translate(-8px)}to{opacity:1;transform:translate(-4px)}}.clash-sym--intercept .int-spark{transform-origin:70px 50px;opacity:0;animation:.6s ease-out .32s forwards intSpark;transform:scale(0)}@keyframes intSpark{0%{opacity:0;transform:scale(0)}20%{opacity:1;transform:scale(1.6)}60%{opacity:.6;transform:scale(1.1)}to{opacity:0;transform:scale(.6)}}.clash-sym--intercept .int-shards{transform-origin:70px 50px;opacity:0;animation:.7s cubic-bezier(.2,.7,.3,1) .32s forwards intShards;transform:scale(0)rotate(0)}@keyframes intShards{0%{opacity:0;transform:scale(0)rotate(0)}30%{opacity:1;transform:scale(1.4)rotate(15deg)}to{opacity:0;transform:scale(2)rotate(25deg)}}@media (prefers-reduced-motion:reduce){.clash-card__inner,.clash-sym--shake,.clash-sym--equal .eq-bar,.clash-sym--intercept .int-chev,.clash-sym--intercept .int-spark,.clash-sym--intercept .int-shards,.samurai-sprite{transition:none!important;animation:none!important}.clash-card--flipped .clash-card__inner{transform:rotateY(180deg)}}
