

.mines-game-layout #minesweeper_cashout.hidden { display: none !important; }
.hilo-btn-place.hidden,
.hilo-btn-cashout.hidden { display: none; }
.bj-btn-place.hidden { display: none; }
.bj-actions.hidden { display: none; }
.ck-btn-place.hidden { display: none; }
.ck-actions.hidden { display: none; }
.cf-btn-place.hidden { display: none; }
.cf-actions.hidden { display: none; }
.av-btn-place.hidden { display: none; }
.av-splash.hidden { display: none; }
.av-celebration.hidden { display: none; }
.av-stall-warning.hidden { display: none; }
.av-combo-meter.is-live { opacity: 1; transform: translateY(0) scale(1); }
.pk-page .hidden { display: none !important; }
.rl-history.hidden { display: none !important; }
.cr-btn-cashout.hidden { display: none !important; }
.cr-btn-next.hidden { display:none !important; }
.tw-btn-cashout.hidden { display: none !important; }
.sl-demo-banner.hidden { display: none; }
.poker-page .pk-away-badge.hidden { display:none!important; }
.pk-share-sheet.hidden { display:none!important; }
.poker-page .pk-preactions,.poker-page .pk-preactions.hidden { min-width:278px;display:flex!important;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:nowrap; }
.poker-page .pk-preaction-btn.hidden { display:inline-flex!important;align-items:center;justify-content:center; }
.poker-page .pk-run-it-modal.hidden { display:none; }
.cb-page .hidden { display: none !important; }
.cb-stage.is-live::after { animation:cb-stage-scan 1.8s linear infinite; }

/* =========================================
   SIMPLE FIGHT GAME
   ========================================= */

.ft-page {
    width:100%;
    max-width:1240px;
    margin:0 auto;
    padding:24px 22px 42px;
    --ft-gold:#f4c95d;
    --ft-blue:#62b7ff;
    --ft-red:#ff6675;
    --ft-green:#55d99d;
    --ft-violet:#a66af2;
    --ft-blood:#ff5f6d;
    --ft-ink:#100d18;
    --ft-surface:#21172e;
    --ft-surface-raised:#2b2038;
    --ft-line:rgba(198,154,248,.16);
    box-sizing:border-box;
}
.ft-page * { box-sizing: border-box; }
.ft-page .hidden { display: none !important; }

.ft-page-top { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 22px; flex-wrap: wrap; }
.ft-page-identity { display: flex; align-items: center; gap: 13px; min-width: 0; }
.ft-page-icon { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(166,106,242,.32); border-radius: 14px; background: radial-gradient(circle at 30% 20%,rgba(166,106,242,.3),rgba(38,24,48,.9)); box-shadow: 0 12px 30px rgba(17,6,31,.42),inset 0 1px rgba(255,255,255,.1); }
.ft-page-icon img { width: 29px; height: 29px; object-fit: contain; }
.ft-page-kicker { display: block; margin-bottom: 2px; color: #c69af8; font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.ft-page-identity h1 { margin: 0; color: #fff; font-family: var(--site-font-display); font-size: 26px; line-height: 1.05; }
.ft-page-actions { display: flex; align-items: center; gap: 10px; }
.ft-how-button,.ft-top-fair { height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 14px; border: 1px solid rgba(255,255,255,.09); border-radius: 10px; background: rgba(15,18,27,.72); color: #d9d3df; font-size: 12px; font-weight: 700; text-decoration: none; cursor: pointer; transition: .2s ease; }
.ft-how-button:hover,.ft-top-fair:hover { border-color: rgba(166,106,242,.5); background: rgba(166,106,242,.13); color: #fff; }
.ft-top-fair i { color: var(--ft-gold); }

/* ── Lobby ── */
.ft-lobby { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.ft-lobby-intro { width: 100%; margin-bottom: 4px; }
.ft-lobby-intro span { color: var(--ft-gold); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ft-lobby-intro h2 { margin: 6px 0 4px; color: #fff; font-family: var(--site-font-display); font-size: 22px; }
.ft-lobby-intro p { margin: 0; color: rgba(255,255,255,.5); font-size: 13px; }

.ft-rank-strip { width: 100%; display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--ft-line); border-radius: 12px; background: linear-gradient(120deg,rgba(58,39,79,.94),rgba(24,17,34,.96)); box-sizing: border-box; }
.ft-rank-badge { display: grid; place-items: center; width: 46px; height: 46px; flex: 0 0 46px; border-radius: 14px; background: rgba(255,255,255,.06); color: #cfc3d8; font-size: 19px; }
.ft-rank-badge.is-champion { background: linear-gradient(145deg,#ffe6a3,#e0951f); color: #40260a; box-shadow: 0 0 22px rgba(244,201,93,.4); }
.ft-rank-copy { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 1px; }
.ft-rank-copy small { color: rgba(255,255,255,.4); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ft-rank-copy strong { color: #fff; font-size: 16px; }
.ft-rank-copy span { color: rgba(255,255,255,.5); font-size: 12px; }
.ft-rank-stats { display: flex; gap: 8px; flex-wrap: wrap; }
.ft-rank-stats > div { min-width: 62px; padding: 7px 10px; display: flex; flex-direction: column; align-items: center; gap: 1px; border-radius: 10px; background: rgba(0,0,0,.22); }
.ft-rank-stats b { color: #fff; font-size: 16px; }
.ft-rank-stats small { color: rgba(255,255,255,.38); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.ft-skin-picker { width:100%;display:flex;flex-direction:column;gap:11px;padding:14px 16px;border:1px solid rgba(193,143,255,.2);border-radius:14px;background:linear-gradient(135deg,rgba(111,55,167,.14),rgba(20,13,29,.92));box-sizing:border-box; }
.ft-skin-heading { display:flex;align-items:center;gap:10px; }
.ft-skin-heading > span { display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border:1px solid rgba(198,154,248,.24);border-radius:11px;background:rgba(166,106,242,.12);color:#c99af8;font-size:16px; }
.ft-skin-heading > div { min-width:0;display:flex;flex-direction:column;gap:2px; }
.ft-skin-heading strong { color:#fff;font:800 14px/1.15 var(--site-font-display); }
.ft-skin-heading small { color:rgba(255,255,255,.42);font-size:10px;line-height:1.35; }
.ft-skin-options { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px; }
.ft-skin-option { --ft-sprite-atlas:none;position:relative;min-width:0;display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.035);color:rgba(255,255,255,.68);cursor:pointer;text-align:left;transition:transform .16s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease; }
.ft-skin-option:hover { transform:translateY(-2px);border-color:rgba(198,154,248,.42);background:rgba(166,106,242,.1); }
.ft-skin-option.is-selected { border-color:rgba(210,164,255,.7);background:linear-gradient(145deg,rgba(166,106,242,.24),rgba(78,35,126,.16));color:#fff;box-shadow:0 8px 24px rgba(74,27,124,.22),inset 0 1px rgba(255,255,255,.08); }
.ft-skin-option.is-selected::after { content:"\f00c";position:absolute;right:6px;top:6px;display:grid;width:17px;height:17px;place-items:center;border-radius:50%;background:#a85bea;color:#fff;font:9px/1 FontAwesome;box-shadow:0 3px 8px rgba(0,0,0,.3); }
.ft-skin-option > i { display:block;width:42px;height:42px;flex:0 0 42px;border:1px solid rgba(255,255,255,.12);border-radius:11px;background-color:#21142d;background-image:var(--ft-sprite-atlas);background-repeat:no-repeat;background-size:300% 300%;background-position:0 0;box-shadow:inset 0 1px rgba(255,255,255,.06); }
.ft-skin-option b { min-width:0;overflow:hidden;font-size:10px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap; }
.ft-skin-option[data-fight-skin="violet-rookie"],.ft-fighter[data-skin="violet-rookie"] {
    --ft-sprite-atlas:url("../../img/fight/sprites/violet-rookie-poses.webp");--ft-raster-tone:#d89d70;--ft-raster-kit:#4d2374;
    --ft-anim-idle:url("../../img/fight/animations/violet-rookie/idle.gif");
    --ft-anim-attack-high:url("../../img/fight/animations/violet-rookie/attack-high.gif");
    --ft-anim-attack-mid:url("../../img/fight/animations/violet-rookie/attack-mid.gif");
    --ft-anim-attack-low:url("../../img/fight/animations/violet-rookie/attack-low.gif");
    --ft-anim-guard-duck:url("../../img/fight/animations/violet-rookie/guard-duck.gif");
    --ft-anim-guard-block:url("../../img/fight/animations/violet-rookie/guard-block.gif");
    --ft-anim-guard-jump:url("../../img/fight/animations/violet-rookie/guard-jump.gif?v=2");
    --ft-frame-hit:url("../../img/fight/animations/violet-rookie/hit.webp");
    --ft-frame-knockout:url("../../img/fight/animations/violet-rookie/knockout.webp?v=2");
    --ft-head-w:31px;--ft-head-half:15.5px;--ft-head-h:35px;--ft-torso-w:52px;--ft-torso-half:26px;--ft-torso-h:76px;
    --ft-torso-radius:43% 43% 20% 20% / 28% 28% 14% 14%;
    --ft-arm-w:14px;--ft-arm-h:45px;--ft-forearm-w:13px;--ft-forearm-h:44px;--ft-forearm-left:-1px;
    --ft-leg-w:17px;--ft-leg-h:50px;--ft-shin-w:14px;--ft-shin-h:52px;--ft-glove-w:22px;--ft-glove-half:11px;--ft-glove-h:20px;
}
.ft-skin-option[data-fight-skin="neon-striker"],.ft-fighter[data-skin="neon-striker"] {
    --ft-sprite-atlas:url("../../img/fight/sprites/neon-striker-poses.webp");--ft-raster-tone:#bd805b;--ft-raster-kit:#211a31;
    --ft-anim-idle:url("../../img/fight/animations/neon-striker/idle.gif");
    --ft-anim-attack-high:url("../../img/fight/animations/neon-striker/attack-high.gif");
    --ft-anim-attack-mid:url("../../img/fight/animations/neon-striker/attack-mid.gif");
    --ft-anim-attack-low:url("../../img/fight/animations/neon-striker/attack-low.gif");
    --ft-anim-guard-duck:url("../../img/fight/animations/neon-striker/guard-duck.gif");
    --ft-anim-guard-block:url("../../img/fight/animations/neon-striker/guard-block.gif");
    --ft-anim-guard-jump:url("../../img/fight/animations/neon-striker/guard-jump.gif?v=2");
    --ft-frame-hit:url("../../img/fight/animations/neon-striker/hit.webp");
    --ft-frame-knockout:url("../../img/fight/animations/neon-striker/knockout.webp?v=2");
    --ft-head-w:30px;--ft-head-half:15px;--ft-head-h:34px;--ft-torso-w:55px;--ft-torso-half:27.5px;--ft-torso-h:78px;
    --ft-torso-radius:38% 38% 18% 18% / 25% 25% 13% 13%;
    --ft-arm-w:15px;--ft-arm-h:46px;--ft-forearm-w:14px;--ft-forearm-h:45px;--ft-forearm-left:-1px;
    --ft-leg-w:18px;--ft-leg-h:51px;--ft-shin-w:15px;--ft-shin-h:53px;--ft-glove-w:23px;--ft-glove-half:11.5px;--ft-glove-h:21px;
}
.ft-skin-option[data-fight-skin="royal-guard"],.ft-fighter[data-skin="royal-guard"] {
    --ft-sprite-atlas:url("../../img/fight/sprites/royal-guard-poses.webp");--ft-raster-tone:#9c5936;--ft-raster-kit:#531f4b;
    --ft-anim-idle:url("../../img/fight/animations/royal-guard/idle.gif");
    --ft-anim-attack-high:url("../../img/fight/animations/royal-guard/attack-high.gif");
    --ft-anim-attack-mid:url("../../img/fight/animations/royal-guard/attack-mid.gif");
    --ft-anim-attack-low:url("../../img/fight/animations/royal-guard/attack-low.gif");
    --ft-anim-guard-duck:url("../../img/fight/animations/royal-guard/guard-duck.gif");
    --ft-anim-guard-block:url("../../img/fight/animations/royal-guard/guard-block.gif");
    --ft-anim-guard-jump:url("../../img/fight/animations/royal-guard/guard-jump.gif?v=2");
    --ft-frame-hit:url("../../img/fight/animations/royal-guard/hit.webp");
    --ft-frame-knockout:url("../../img/fight/animations/royal-guard/knockout.webp?v=2");
    --ft-head-w:29px;--ft-head-half:14.5px;--ft-head-h:35px;--ft-torso-w:48px;--ft-torso-half:24px;--ft-torso-h:78px;
    --ft-torso-radius:45% 45% 22% 22% / 26% 26% 17% 17%;
    --ft-arm-w:13px;--ft-arm-h:47px;--ft-forearm-w:12px;--ft-forearm-h:46px;--ft-forearm-left:-1px;
    --ft-arm-front-x:73px;--ft-arm-back-x:43px;--ft-leg-w:15px;--ft-leg-h:52px;--ft-shin-w:13px;--ft-shin-h:54px;
    --ft-leg-front-x:64px;--ft-leg-back-x:39px;--ft-glove-w:21px;--ft-glove-half:10.5px;--ft-glove-h:19px;--ft-boot-w:23px;--ft-boot-half:11.5px;
}
.ft-skin-option[data-fight-skin="street-phantom"],.ft-fighter[data-skin="street-phantom"] {
    --ft-sprite-atlas:url("../../img/fight/sprites/street-phantom-poses.webp");--ft-raster-tone:#c38a63;--ft-raster-kit:#282432;
    --ft-anim-idle:url("../../img/fight/animations/street-phantom/idle.gif");
    --ft-anim-attack-high:url("../../img/fight/animations/street-phantom/attack-high.gif");
    --ft-anim-attack-mid:url("../../img/fight/animations/street-phantom/attack-mid.gif");
    --ft-anim-attack-low:url("../../img/fight/animations/street-phantom/attack-low.gif");
    --ft-anim-guard-duck:url("../../img/fight/animations/street-phantom/guard-duck.gif");
    --ft-anim-guard-block:url("../../img/fight/animations/street-phantom/guard-block.gif");
    --ft-anim-guard-jump:url("../../img/fight/animations/street-phantom/guard-jump.gif?v=2");
    --ft-frame-hit:url("../../img/fight/animations/street-phantom/hit.webp");
    --ft-frame-knockout:url("../../img/fight/animations/street-phantom/knockout.webp?v=2");
    --ft-head-w:30px;--ft-head-half:15px;--ft-head-h:34px;--ft-torso-w:50px;--ft-torso-half:25px;--ft-torso-h:74px;
    --ft-torso-radius:42% 42% 19% 19% / 27% 27% 14% 14%;
    --ft-arm-w:13px;--ft-arm-h:44px;--ft-forearm-w:12px;--ft-forearm-h:43px;--ft-forearm-left:-1px;
    --ft-arm-front-x:73px;--ft-arm-back-x:43px;--ft-leg-w:16px;--ft-leg-h:48px;--ft-shin-w:13px;--ft-shin-h:50px;
    --ft-leg-front-x:65px;--ft-leg-back-x:38px;--ft-glove-w:21px;--ft-glove-half:10.5px;--ft-glove-h:19px;--ft-boot-w:23px;--ft-boot-half:11.5px;
}
.ft-skin-option[data-fight-skin="amethyst-titan"],.ft-fighter[data-skin="amethyst-titan"] {
    --ft-sprite-atlas:url("../../img/fight/sprites/amethyst-titan-poses.webp");--ft-raster-tone:#77472f;--ft-raster-kit:#362348;
    --ft-anim-idle:url("../../img/fight/animations/amethyst-titan/idle.gif");
    --ft-anim-attack-high:url("../../img/fight/animations/amethyst-titan/attack-high.gif");
    --ft-anim-attack-mid:url("../../img/fight/animations/amethyst-titan/attack-mid.gif");
    --ft-anim-attack-low:url("../../img/fight/animations/amethyst-titan/attack-low.gif");
    --ft-anim-guard-duck:url("../../img/fight/animations/amethyst-titan/guard-duck.gif");
    --ft-anim-guard-block:url("../../img/fight/animations/amethyst-titan/guard-block.gif");
    --ft-anim-guard-jump:url("../../img/fight/animations/amethyst-titan/guard-jump.gif?v=2");
    --ft-frame-hit:url("../../img/fight/animations/amethyst-titan/hit.webp");
    --ft-frame-knockout:url("../../img/fight/animations/amethyst-titan/knockout.webp?v=2");
    --ft-head-w:34px;--ft-head-half:17px;--ft-head-h:37px;--ft-torso-top:30px;--ft-torso-w:64px;--ft-torso-half:32px;--ft-torso-h:79px;
    --ft-torso-radius:33% 33% 16% 16% / 22% 22% 12% 12%;
    --ft-arm-w:19px;--ft-arm-h:48px;--ft-forearm-w:17px;--ft-forearm-h:46px;--ft-forearm-left:-1px;
    --ft-arm-front-x:78px;--ft-arm-back-x:37px;--ft-leg-w:22px;--ft-leg-h:51px;--ft-shin-w:19px;--ft-shin-h:52px;
    --ft-leg-front-x:67px;--ft-leg-back-x:34px;--ft-glove-w:27px;--ft-glove-half:13.5px;--ft-glove-h:23px;
    --ft-boot-w:29px;--ft-boot-half:14.5px;--ft-knee-w:13px;--ft-elbow-w:11px;--ft-shoulder-w:13px;--ft-neck-w:16px;--ft-neck-half:8px;
}

.ft-lobby-card { flex: 1; min-width: 260px; display: flex; flex-direction: column; gap: 12px; padding: 20px; border: 1px solid var(--ft-line); border-radius: 10px; background: linear-gradient(155deg,var(--ft-surface-raised),var(--ft-surface)); box-sizing: border-box; }
.ft-lobby-card-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: rgba(244,201,93,.14); color: var(--ft-gold); }
.ft-lobby-title { color: #fff; font-size: 16px; font-weight: 700; }
.ft-lobby-heading small { color: rgba(255,255,255,.42); font-size: 11px; }
.ft-lobby-row { display: flex; align-items: center; gap: 10px; }
.ft-lobby-hint { width: 100%; display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.45); font-size: 13px; }
.ft-input { min-width: 0; flex: 1; padding: 9px 12px; border: 1px solid rgba(255,255,255,.14); border-radius: 6px; background: rgba(255,255,255,.06); color: #fff; font-size: 14px; outline: none; }
.ft-field-label { display: flex; align-items: center; gap: 9px; min-width: 0; flex: 1; color: #fff; }
.ft-field-label span { display: flex; flex-direction: column; }
.ft-field-label strong { font-size: 13px; font-weight: 700; }
.ft-field-label small { color: rgba(255,255,255,.38); font-size: 10px; }
.ft-field-icon { display: grid; place-items: center; width: 30px; height: 30px; flex: 0 0 30px; border-radius: 9px; background: rgba(255,255,255,.06); color: var(--ft-gold); }
.ft-field-icon .fa-money { margin-top: 8px; }
.ft-value-field { display: flex; align-items: center; gap: 6px; padding-right: 10px; border: 1px solid rgba(255,255,255,.14); border-radius: 8px; background: rgba(0,0,0,.2); }
.ft-value-field .ft-input { border: 0; background: none; width: 92px; flex: 0 0 92px; }
.ft-value-field span { color: rgba(255,255,255,.4); font-size: 11px; font-weight: 800; }
.ft-code-field { display: flex; align-items: center; gap: 8px; width: 100%; padding-left: 12px; border: 1px solid rgba(255,255,255,.14); border-radius: 8px; background: rgba(0,0,0,.2); }
.ft-code-field i { color: var(--ft-gold); }
.ft-code-field .ft-input { border: 0; background: none; letter-spacing: .28em; font-weight: 800; }
.ft-quick-stakes { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.ft-quick { padding: 8px 4px; border: 1px solid rgba(255,255,255,.1); border-radius: 8px; background: rgba(255,255,255,.04); color: #ddd4e4; font-size: 12px; font-weight: 800; cursor: pointer; transition: .18s ease; }
.ft-quick:hover { border-color: rgba(244,201,93,.5); color: #fff; }
.ft-quick.is-selected { border-color: var(--ft-gold); background: rgba(244,201,93,.15); color: #fff; }
.ft-room-limits { display: flex; gap: 12px; flex-wrap: wrap; padding: 12px; border-radius: 8px; background: rgba(0,0,0,.2); }
.ft-room-limits > div { flex: 1; min-width: 128px; display: flex; align-items: center; gap: 9px; }
.ft-limit-icon { display: grid; place-items: center; width: 28px; height: 28px; flex: 0 0 28px; border-radius: 9px; background: rgba(255,255,255,.05); color: var(--ft-gold); font-size: 12px; }
.ft-limit-copy { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.ft-limit-copy span { color: rgba(255,255,255,.5); font-size: 11px; }
.ft-limit-copy small { color: rgba(255,255,255,.32); font-size: 9px; }
.ft-room-limits strong { color: #fff; font-size: 15px; }
.ft-public-toggle { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.09); border-radius: 8px; background: rgba(0,0,0,.16); cursor: pointer; }
.ft-public-toggle input { accent-color: var(--ft-gold); }
.ft-public-copy { min-width: 0; display: flex; flex-direction: column; }
.ft-public-copy strong { color: #fff; font-size: 12px; font-weight: 700; }
.ft-public-copy strong i { margin-right: 5px; color: #62dca0; }
.ft-public-copy em { margin-left: 5px; padding: 2px 6px; border-radius: 8px; background: rgba(98,220,160,.14); color: #7ce6b4; font-size: 9px; font-style: normal; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.ft-public-copy small { color: rgba(255,255,255,.4); font-size: 10px; }
.ft-btn { padding: 11px 16px; border: 0; border-radius: 9px; background: linear-gradient(135deg,#f6cf6b,#d0821f); color: #34200a; font-size: 14px; font-weight: 800; cursor: pointer; transition: .18s ease; }
.ft-btn:hover { filter: brightness(1.08); }
.ft-btn:disabled { opacity: .5; cursor: default; filter: none; }
.ft-btn-small { padding: 7px 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 8px; background: rgba(255,255,255,.05); color: #ded5e5; font-size: 12px; font-weight: 700; cursor: pointer; }
.ft-btn-small:hover { border-color: rgba(244,201,93,.45); color: #fff; }

.ft-rules-mini { margin-top: auto; padding: 12px; border-radius: 9px; background: rgba(0,0,0,.2); }
.ft-rules-title { margin-bottom: 8px; color: rgba(255,255,255,.42); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ft-rules-grid { display: flex; flex-direction: column; gap: 6px; }
.ft-rule-lane { display: grid; grid-template-columns: 22px 54px auto minmax(0,1fr); align-items: center; gap: 7px; color: #fff; font-size: 11px; }
.ft-rule-lane i { color: var(--ft-gold); }
.ft-rule-lane b { font-weight: 800; }
.ft-rule-lane em { color: rgba(255,255,255,.32); font-style: normal; font-size: 10px; }
.ft-rule-lane small { justify-self: end; padding: 3px 8px; border-radius: 8px; background: rgba(98,183,255,.14); color: #aad7ff; font-size: 10px; font-weight: 800; }

.ft-public-card,.ft-hall-card { width: 100%; padding: 16px; border: 1px solid var(--ft-line); border-radius: 10px; background: linear-gradient(155deg,var(--ft-surface-raised),#181120); box-sizing: border-box; }
.ft-public-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.ft-public-title { display: flex; align-items: center; gap: 11px; }
.ft-public-title-icon { position: relative; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: rgba(98,220,160,.12); color: #62dca0; }
.ft-public-title-icon > .fa { display: block; width: 1em; height: 1em; margin-top: 12px; font-size: 16px; line-height: 1; text-align: center; }
.ft-public-title-icon b { position: absolute; right: 5px; top: 5px; width: 7px; height: 7px; border-radius: 50%; background: #62dca0; box-shadow: 0 0 0 3px rgba(98,220,160,.2); }
.ft-public-title > span { display: flex; flex-direction: column; }
.ft-public-title small { color: #62dca0; font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.ft-public-title strong { color: #fff; font-size: 15px; }
.ft-public-title em { color: rgba(255,255,255,.38); font-size: 11px; font-style: normal; }
.ft-public-tools { display: flex; align-items: center; gap: 8px; }
.ft-public-count { padding: 5px 10px; border-radius: 20px; background: rgba(255,255,255,.05); color: rgba(255,255,255,.55); font-size: 11px; font-weight: 700; }
.ft-public-tools button { width: 32px; height: 32px; border: 1px solid rgba(255,255,255,.1); border-radius: 9px; background: rgba(255,255,255,.04); color: #ccc2d6; cursor: pointer; }
.ft-public-tools button.is-refreshing i { animation: ft-spin .6s linear infinite; }
.ft-public-list { display: grid; grid-template-columns: repeat(auto-fill,minmax(268px,1fr)); gap: 11px; }
.ft-public-row { display: flex; flex-direction: column; gap: 10px; padding: 13px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: linear-gradient(150deg,rgba(255,255,255,.05),rgba(255,255,255,.012)); transition: border-color .2s,box-shadow .2s; }
.ft-public-row:hover { border-color: rgba(244,201,93,.4); box-shadow: 0 14px 30px rgba(0,0,0,.24); }
.ft-public-row.is-champion { border-color: rgba(244,201,93,.32); background: linear-gradient(150deg,rgba(244,201,93,.12),rgba(255,255,255,.015)); }
.ft-public-row-top { display: flex; align-items: center; gap: 10px; }
.ft-public-avatar { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 12px; background: rgba(255,255,255,.06); color: var(--ft-gold); }
.ft-public-row.is-champion .ft-public-avatar { background: linear-gradient(145deg,#ffe6a3,#e0951f); color: #40260a; }
.ft-public-info { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.ft-public-info small { color: rgba(255,255,255,.36); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ft-public-info strong { color: #fff; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ft-public-info em { color: #62dca0; font-size: 10px; font-style: normal; }
.ft-public-info em i { font-size: 6px; vertical-align: middle; }
.ft-public-code { padding: 4px 8px; border-radius: 8px; background: rgba(0,0,0,.28); color: rgba(255,255,255,.5); font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.ft-public-meta { display: flex; gap: 6px; }
.ft-public-meta span { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 7px 4px; border-radius: 9px; background: rgba(0,0,0,.2); }
.ft-public-meta i { color: rgba(255,255,255,.35); font-size: 10px; }
.ft-public-meta b { color: #fff; font-size: 13px; }
.ft-public-meta small { color: rgba(255,255,255,.32); font-size: 9px; }
.ft-public-row-bottom { display: flex; align-items: center; gap: 10px; }
.ft-public-entry { display: flex; flex-direction: column; }
.ft-public-entry small { color: rgba(255,255,255,.35); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ft-public-entry b { color: #fff; font-size: 16px; }
.ft-public-join { margin-left: auto; display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border: 0; border-radius: 9px; background: linear-gradient(135deg,#f6cf6b,#d0821f); color: #34200a; font-size: 12px; font-weight: 800; cursor: pointer; }
.ft-public-join:disabled { opacity: .6; cursor: default; }
.ft-public-empty { grid-column: 1/-1; display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 26px 14px; border: 1px dashed rgba(255,255,255,.1); border-radius: 12px; color: rgba(255,255,255,.4); font-size: 12px; text-align: center; }
.ft-public-empty span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; background: rgba(255,255,255,.05); font-size: 17px; }
.ft-public-empty strong { color: #fff; font-size: 14px; }

.ft-hall-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 11px; color: #fff; font-size: 14px; font-weight: 700; }
.ft-hall-heading i { color: var(--ft-gold); }
.ft-hall-heading small { color: rgba(255,255,255,.35); font-size: 11px; font-weight: 500; }
.ft-hall-list { display: flex; flex-direction: column; gap: 6px; }
.ft-hall-row { display: grid; grid-template-columns: 26px minmax(0,1fr) auto auto; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 9px; background: rgba(0,0,0,.2); }
.ft-hall-row.is-champion { background: linear-gradient(120deg,rgba(244,201,93,.16),rgba(0,0,0,.2)); }
.ft-hall-rank { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 7px; background: rgba(255,255,255,.06); color: rgba(255,255,255,.5); font-size: 11px; font-weight: 800; }
.ft-hall-name { color: #fff; font-size: 13px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ft-hall-name i { color: var(--ft-gold); }
.ft-hall-streak { color: #ffb45f; font-size: 11px; font-weight: 800; }
.ft-hall-record { color: rgba(255,255,255,.35); font-size: 11px; }
.ft-hall-empty { padding: 16px; border: 1px dashed rgba(255,255,255,.09); border-radius: 10px; color: rgba(255,255,255,.35); font-size: 12px; text-align: center; }

/* ── Room chrome ── */
.ft-topbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; padding: 11px 14px; border: 1px solid var(--ft-line); border-radius: 10px; background: rgba(28,20,38,.9); flex-wrap: wrap; }
.ft-topbar-left,.ft-topbar-right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ft-room-code { color: rgba(255,255,255,.45); font-size: 12px; }
.ft-topbar-left b { color: #fff; font-size: 14px; font-weight: 800; letter-spacing: .12em; }
.ft-room-meta { color: rgba(255,255,255,.42); font-size: 12px; }
.ft-invite-button { display: inline-flex; align-items: center; gap: 6px; height: 31px; padding: 0 11px; border: 1px solid rgba(255,255,255,.1); border-radius: 8px; background: rgba(255,255,255,.04); color: #ccc2d6; font-size: 11px; font-weight: 700; cursor: pointer; }
.ft-invite-button:hover { border-color: rgba(244,201,93,.45); color: #fff; }
.ft-invite-button.is-copied { border-color: #62dca0; color: #7ce6b4; }
.ft-hash { color: rgba(255,255,255,.35); font-size: 11px; }
.ft-hash span:last-child { color: rgba(255,255,255,.55); font-family: monospace; }

.ft-invite-join { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; padding: 14px 16px; border: 1px solid rgba(244,201,93,.28); border-radius: 12px; background: linear-gradient(120deg,rgba(244,201,93,.12),rgba(35,23,47,.92)); }
.ft-invite-join-copy { display: flex; flex-direction: column; gap: 2px; }
.ft-invite-join-copy > span { color: var(--ft-gold); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ft-invite-join-copy strong { color: #fff; font-size: 16px; }
.ft-invite-join-copy small { color: rgba(255,255,255,.42); font-size: 12px; }
.ft-join-room-button { display: inline-flex; align-items: center; gap: 9px; }
.ft-join-room-button b { padding: 3px 9px; border-radius: 20px; background: rgba(0,0,0,.22); color: #ffe9b8; font-size: 12px; }

/* ── Arena ── */
.ft-arena { position:relative;display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid var(--ft-line);border-radius:18px;background:radial-gradient(circle at 14% -10%,rgba(98,183,255,.13),transparent 38%),radial-gradient(circle at 86% -10%,rgba(255,102,117,.11),transparent 38%),radial-gradient(circle at 50% -16%,rgba(166,106,242,.24),transparent 48%),linear-gradient(155deg,#2b1c3b,#100b18 58%,#21142d);box-shadow:0 24px 65px rgba(5,1,12,.4),inset 0 1px rgba(255,255,255,.05); }
.ft-arena::before { content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 22%,rgba(255,255,255,.025) 46%,transparent 68%); }
.ft-arena.is-live { border-color:rgba(244,201,93,.2);box-shadow:0 24px 65px rgba(0,0,0,.32),0 0 40px rgba(244,201,93,.055),inset 0 1px rgba(255,255,255,.05); }
.ft-arena > * { position:relative;z-index:1; }
.ft-arena > .ft-opening-draw { position:absolute;z-index:60;inset:0;display:grid;place-items:center;padding:18px;overflow:hidden;border-radius:inherit;background:radial-gradient(circle at 50% 38%,rgba(166,106,242,.3),transparent 48%),rgba(10,5,16,.91);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px); }
.ft-draw-card { width:min(520px,100%);display:flex;align-items:center;flex-direction:column;gap:9px;padding:22px 24px 18px;border:1px solid rgba(198,154,248,.25);border-radius:20px;background:linear-gradient(155deg,rgba(57,37,77,.98),rgba(24,15,34,.98));box-shadow:0 28px 80px rgba(3,0,8,.62),inset 0 1px rgba(255,255,255,.08);text-align:center; }
.ft-draw-kicker { display:inline-flex;align-items:center;gap:7px;color:#cfa9fa;font-size:9px;font-weight:850;letter-spacing:.14em;text-transform:uppercase; }
.ft-draw-kicker i { color:var(--ft-gold); }
.ft-draw-title { color:#fff;font:850 21px/1.08 var(--site-font-display); }
.ft-draw-sub { color:rgba(255,255,255,.48);font-size:11px; }
.ft-draw-coin { position:relative;width:96px;height:96px;margin:12px 0 7px;perspective:850px; }
.ft-draw-coin::after { content:"";position:absolute;z-index:-1;left:50%;bottom:-15px;width:74px;height:15px;border-radius:50%;background:rgba(0,0,0,.62);filter:blur(5px);transform:translateX(-50%) scaleX(.9); }
.ft-draw-coin::before { content:"";position:absolute;z-index:-1;inset:-18px;border:2px solid rgba(244,201,93,.48);border-radius:50%;opacity:0;transform:scale(.5);box-shadow:0 0 32px rgba(244,201,93,.35); }
.ft-draw-coin > span { position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d; }
.ft-draw-coin b,.ft-draw-coin i { position:absolute;inset:0;display:grid;grid-template-rows:1fr auto;place-items:center;padding:8px 9px 10px;border:4px solid #ffe8a6;border-radius:50%;background:radial-gradient(circle at 32% 24%,#fff0b8,#d18b24 68%,#70400d);color:#3b2108;font:900 27px/1 var(--site-font-display);font-style:normal;box-shadow:inset 0 0 0 5px rgba(95,51,8,.28),inset 0 2px 5px rgba(255,255,255,.65);backface-visibility:hidden;box-sizing:border-box;overflow:hidden; }
.ft-draw-coin b { border-color:#bce4ff;box-shadow:inset 0 0 0 5px rgba(45,111,162,.26),inset 0 2px 5px rgba(255,255,255,.7),0 0 18px rgba(98,183,255,.22); }
.ft-draw-coin i { border-color:#ffc1c7;box-shadow:inset 0 0 0 5px rgba(157,47,64,.24),inset 0 2px 5px rgba(255,255,255,.7),0 0 18px rgba(255,102,117,.22); }
.ft-draw-coin i { transform:rotateY(180deg); }
.ft-draw-coin-avatar { display:grid;place-items:center;width:54px;height:54px;border:2px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(38,20,20,.25);box-shadow:0 4px 12px rgba(0,0,0,.35);overflow:hidden;box-sizing:border-box; }
.ft-draw-coin-avatar .avatar-field,.ft-draw-coin-avatar .avatar { width:100%!important;height:100%!important; }
.ft-draw-coin-avatar .level { display:none!important; }
.ft-draw-coin b > em,.ft-draw-coin i > em { display:block;width:70px;overflow:hidden;color:#351c08;font:900 8px/1 var(--site-font-display);font-style:normal;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap; }
.ft-opening-draw.is-seat-0 .ft-draw-coin > span { animation:ft-draw-seat-0 2.3s cubic-bezier(.16,.72,.18,1) both; }
.ft-opening-draw.is-seat-1 .ft-draw-coin > span { animation:ft-draw-seat-1 2.3s cubic-bezier(.16,.72,.18,1) both; }
.ft-opening-draw[class*="is-seat-"] .ft-draw-coin::after { animation:ft-draw-shadow 2.3s ease both; }
.ft-opening-draw[class*="is-seat-"] .ft-draw-coin::before { animation:ft-draw-land-ring .72s ease-out 1.78s both; }
.ft-draw-roles { width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.ft-draw-role { min-width:0;display:flex;align-items:center;flex-direction:column;gap:3px;padding:10px 8px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(0,0,0,.2);opacity:.28;transform:translateY(8px); }
.ft-draw-role b { max-width:100%;overflow:hidden;color:#fff;font-size:13px;text-overflow:ellipsis;white-space:nowrap; }
.ft-draw-role span { font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase; }
.ft-draw-role.is-attacker { border-color:rgba(255,102,117,.42);background:rgba(255,102,117,.1); }
.ft-draw-role.is-attacker::before { content:"⚡";display:grid;place-items:center;width:24px;height:24px;margin-top:-23px;margin-bottom:-4px;border-radius:50%;background:linear-gradient(145deg,#ffe397,#e68c28);box-shadow:0 0 18px rgba(244,201,93,.62);font-size:12px; }
.ft-draw-role.is-attacker span { color:#ff9aa4; }
.ft-draw-role.is-defender { border-color:rgba(98,183,255,.36);background:rgba(98,183,255,.08); }
.ft-draw-role.is-defender span { color:#a7d7ff; }
.ft-opening-draw[class*="is-seat-"] .ft-draw-role { animation:ft-draw-reveal .42s ease 1.9s both; }
.ft-opening-draw.is-seat-0 .ft-draw-role-0,.ft-opening-draw.is-seat-1 .ft-draw-role-1 { animation:ft-draw-winner-reveal .72s cubic-bezier(.18,.88,.25,1.15) 1.95s both; }
.ft-draw-proof { max-width:100%;display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.36);font:9px/1.25 var(--site-font-mono,monospace); }
.ft-draw-proof i { flex:0 0 auto;color:#9f79cd; }
.ft-draw-proof span { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.ft-draw-countdown { min-height:15px;color:var(--ft-gold);font-size:11px;font-style:normal;font-weight:800; }
.ft-banner { position:relative;display:flex;min-height:44px;align-items:center;flex-direction:column;justify-content:center;gap:2px;padding:10px;border-radius:12px;background:rgba(0,0,0,.24);text-align:center;box-sizing:border-box; }
.ft-banner-eyebrow { color: rgba(255,255,255,.4); font-size: 10px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.ft-banner strong { color: #fff; font-family: var(--site-font-display); font-size: 19px; }
.ft-banner.is-live { background: linear-gradient(120deg,rgba(244,201,93,.16),rgba(0,0,0,.24)); }
.ft-banner.is-live .ft-banner-eyebrow { color: var(--ft-gold); }
.ft-banner.is-done { background: linear-gradient(120deg,rgba(98,220,160,.14),rgba(0,0,0,.24)); }

.ft-scoreboard { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 12px; }
.ft-score { display:flex;flex-direction:column;gap:9px;padding:12px;border:1px solid var(--ft-line);border-radius:12px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));box-shadow:inset 0 1px rgba(255,255,255,.025); }
.ft-score-0 { border-color:rgba(98,183,255,.3);background:linear-gradient(145deg,rgba(98,183,255,.12),rgba(255,255,255,.018)); }
.ft-score-1 { border-color:rgba(255,102,117,.3);background:linear-gradient(145deg,rgba(255,102,117,.11),rgba(255,255,255,.018)); }
.ft-score-1 { align-items: flex-end; }
.ft-score.is-me { border-color: rgba(244,201,93,.4); box-shadow: inset 0 0 24px rgba(244,201,93,.07); }
.ft-score.is-opening-winner { animation:ft-opening-score 1.35s ease-out both; }
.ft-score.is-empty { opacity: .5; border-style: dashed; }
.ft-score-id { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ft-score-1 .ft-score-id { flex-direction: row-reverse; }
.ft-score-avatar { flex: 0 0 auto; }
.ft-score-avatar:empty { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: rgba(255,255,255,.05); }
.ft-score-person { min-width: 0; display: flex; flex-direction: column; }
.ft-score-1 .ft-score-person { align-items: flex-end; }
.ft-score-person b { color: #fff; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ft-score-person small { color: rgba(255,255,255,.4); font-size: 10px; }
.ft-health { display: flex; gap: 5px; }
.ft-health i { width: 30px; height: 13px; border-radius: 5px; background: #293446; box-shadow: inset 0 1px rgba(255,255,255,.07); transition: background .25s ease,box-shadow .25s ease; }
.ft-health i.is-alive { background: linear-gradient(180deg,#83efbd,#35b87b); box-shadow: 0 0 10px rgba(85,217,157,.34); }
.ft-health i.is-alive.is-champion-cell { background: linear-gradient(180deg,#e5c6ff,#8f45e0); box-shadow: 0 0 12px rgba(166,106,242,.5); }
.ft-health i.is-breaking { animation: ft-cell-break .5s ease both; }
.ft-versus { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.ft-versus b { display: grid; place-items: center; width: 46px; height: 46px; border: 2px solid rgba(244,201,93,.4); border-radius: 50%; background: #1a1220; color: #fff; font-size: 14px; font-weight: 900; }
.ft-turn-counter { color: rgba(255,255,255,.4); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ft-pot { color: var(--ft-gold); font-size: 13px; font-weight: 800; }

/* Original dark-fantasy tournament arena with a clear floor for the fighters. */
.ft-stage { position:relative;display:flex;align-items:flex-end;justify-content:center;gap:clamp(28px,8vw,84px);min-height:320px;padding:24px 26px;overflow:hidden;border:1px solid rgba(198,154,248,.25);border-radius:16px;background:linear-gradient(90deg,rgba(51,24,84,.12),transparent 34%,transparent 66%,rgba(51,24,84,.12)),linear-gradient(180deg,rgba(5,2,11,.08),rgba(5,2,11,.16)),url("../../img/fight/arena/obsidian-courtyard.webp") center/cover no-repeat #100a1a;box-shadow:inset 0 0 72px rgba(3,0,8,.58),0 16px 40px rgba(3,0,8,.28); }
.ft-stage::before { content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 34%,rgba(3,0,8,.12) 68%,rgba(3,0,8,.48) 100%); }
.ft-stage::after { content:"";position:absolute;z-index:0;left:50%;bottom:47px;width:min(76%,520px);height:62px;transform:translateX(-50%);border:1px solid rgba(255,255,255,.07);border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.06),rgba(0,0,0,.15) 58%,transparent 70%);pointer-events:none; }
.ft-stage.is-shaking { animation: ft-shake .5s ease; }
.ft-stage.is-impact { border-color:rgba(255,95,109,.7);box-shadow:inset 0 0 70px rgba(255,52,75,.2),0 0 24px rgba(255,52,75,.13); }
.ft-stage.is-block-impact { border-color:rgba(143,220,255,.62);box-shadow:inset 0 0 70px rgba(75,190,255,.16),0 0 24px rgba(75,190,255,.12); }
.ft-stage.is-miss-impact { border-color:rgba(196,150,255,.58);box-shadow:inset 0 0 72px rgba(145,82,230,.16),0 0 26px rgba(145,82,230,.13); }
.ft-stage.is-hit-stop .ft-fighter,
.ft-stage.is-hit-stop .ft-fighter .ft-figure * { animation-play-state:paused!important; }
.ft-stage.is-exchanging::before { animation:ft-fight-focus 1.05s ease-out both; }
.ft-stage.is-impact .ft-stage-glow { animation:ft-impact-floor .62s ease-out both; }
.ft-stage.is-opening-bell { animation:ft-opening-bell 1.25s ease-out both; }
.ft-stage-floor { position:absolute;z-index:0;left:0;right:0;bottom:0;height:64px;background:linear-gradient(180deg,transparent,rgba(7,3,12,.68));border-top:1px solid rgba(198,154,248,.14);box-shadow:0 -12px 30px rgba(0,0,0,.12); }
.ft-stage-floor::after { content:"";position:absolute;inset:12px 8% auto;height:1px;background:linear-gradient(90deg,transparent,rgba(244,201,93,.28),transparent); }
.ft-stage-glow { position: absolute; left: 50%; bottom: 40px; width: 320px; height: 180px; margin-left: -160px; border-radius: 50%; background: radial-gradient(circle,rgba(244,201,93,.2),transparent 68%); pointer-events: none; }
.ft-ko-flash { position:absolute;z-index:8;left:50%;top:24%;display:grid;width:150px;height:92px;place-items:center;transform:translate(-50%,-50%) scale(.35) rotate(-8deg);opacity:0;pointer-events:none; }
.ft-ko-flash b { position:relative;z-index:2;color:#fff4c9;font:900 48px/.9 var(--site-font-display);font-style:italic;letter-spacing:-.05em;text-shadow:0 3px 0 #8b3d22,0 0 20px rgba(255,95,109,.85),0 0 42px rgba(244,201,93,.62); }
.ft-ko-flash i { position:absolute;inset:0;border:3px solid rgba(255,244,201,.88);border-radius:50%;box-shadow:0 0 0 8px rgba(255,95,109,.15),0 0 32px rgba(255,95,109,.48); }
.ft-stage.is-knockout { animation:ft-knockout-stage .72s cubic-bezier(.2,.8,.25,1) both; }
.ft-stage.is-knockout .ft-ko-flash { animation:ft-ko-flash 1.75s cubic-bezier(.18,.88,.28,1.18) both; }
.ft-stage.is-knockout .ft-ko-flash i { animation:ft-ko-ring 1.1s ease-out both; }
.ft-strike-trail { --ft-trail-y:48%;position:absolute;z-index:7;left:50%;top:var(--ft-trail-y);width:clamp(120px,24vw,210px);height:34px;opacity:0;pointer-events:none;transform:translateX(-50%);transform-origin:50% 50%; }
.ft-strike-trail.from-1 { transform:translateX(-50%) scaleX(-1); }
.ft-strike-trail.lane-high { --ft-trail-y:29%;transform:translateX(-50%) rotate(-8deg); }
.ft-strike-trail.lane-mid { --ft-trail-y:47%; }
.ft-strike-trail.lane-low { --ft-trail-y:67%;transform:translateX(-50%) rotate(9deg); }
.ft-strike-trail.from-1.lane-high { transform:translateX(-50%) scaleX(-1) rotate(-8deg); }
.ft-strike-trail.from-1.lane-low { transform:translateX(-50%) scaleX(-1) rotate(9deg); }
.ft-strike-trail i { position:absolute;left:0;top:13px;width:100%;height:8px;border-radius:99px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2) 14%,#ffd56d 72%,#fff 100%);box-shadow:0 0 10px rgba(244,201,93,.78),0 0 24px rgba(255,102,117,.42);transform:scaleX(.05);transform-origin:left center; }
.ft-strike-trail b { position:absolute;left:0;top:4px;width:26px;height:26px;border:3px solid rgba(255,255,255,.92);border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff5d2,#ff7b68 52%,#6b2138);box-shadow:0 0 18px rgba(255,95,109,.86),0 0 36px rgba(244,201,93,.45);box-sizing:border-box; }
.ft-strike-trail.is-flying { opacity:1; }
.ft-strike-trail.is-flying i { animation:ft-trail-draw .5s cubic-bezier(.12,.82,.2,1) .1s both; }
.ft-strike-trail.is-flying b { animation:ft-trail-projectile .5s cubic-bezier(.12,.82,.2,1) .1s both; }
.ft-strike-trail.is-landed { animation:ft-trail-landed .38s ease-out both; }
.ft-strike-trail.is-stopped { animation:ft-trail-stopped .42s ease-out both; }
.ft-strike-trail.is-missed { animation:ft-trail-missed .62s ease-out both; }
.ft-strike-trail.is-stopped i { animation:ft-trail-collapse .42s ease-out both; }
.ft-strike-trail.is-missed i { animation:ft-trail-flyby .62s ease-out both; }
.ft-strike-trail.is-missed b { animation:ft-trail-projectile-miss .62s ease-out both; }
.ft-exchange-verdict { position:absolute;z-index:12;left:50%;top:50%;display:grid;grid-template-columns:38px auto;grid-template-rows:auto auto;align-items:center;min-width:190px;padding:8px 16px 8px 11px;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:rgba(15,8,23,.97);box-shadow:0 10px 28px rgba(0,0,0,.46);opacity:0;transform:translate(-50%,-70%) scale(.72);pointer-events:none; }
.ft-exchange-verdict > i { grid-row:1 / 3;display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:rgba(255,255,255,.08);font-size:16px; }
.ft-exchange-verdict strong { color:#fff;font:900 22px/.95 var(--site-font-display);font-style:italic;letter-spacing:.01em; }
.ft-exchange-verdict small { margin-top:3px;color:rgba(255,255,255,.55);font-size:9px;font-weight:700; }
.ft-exchange-verdict.show { animation:ft-verdict-in 1.35s cubic-bezier(.18,.88,.25,1) both; }
.ft-exchange-verdict.is-hit { border-color:rgba(255,95,109,.62);box-shadow:0 18px 48px rgba(0,0,0,.52),0 0 34px rgba(255,71,95,.25); }
.ft-exchange-verdict.is-hit > i,.ft-exchange-verdict.is-hit strong { color:#ff8792; }
.ft-exchange-verdict.is-block { border-color:rgba(105,207,255,.62);box-shadow:0 18px 48px rgba(0,0,0,.52),0 0 34px rgba(79,190,255,.22); }
.ft-exchange-verdict.is-block > i,.ft-exchange-verdict.is-block strong { color:#9de4ff; }
.ft-exchange-verdict.is-miss { border-color:rgba(190,137,255,.66);box-shadow:0 18px 48px rgba(0,0,0,.52),0 0 34px rgba(166,106,242,.25); }
.ft-exchange-verdict.is-miss > i,.ft-exchange-verdict.is-miss strong { color:#d4b0ff; }

.ft-fighter {
    --ft-outline:2px;--ft-head-w:31px;--ft-head-half:15.5px;--ft-head-h:35px;
    --ft-torso-top:31px;--ft-torso-w:52px;--ft-torso-half:26px;--ft-torso-h:76px;
    --ft-torso-radius:42% 42% 20% 20% / 27% 27% 15% 15%;
    --ft-neck-w:13px;--ft-neck-half:6.5px;--ft-arm-w:14px;--ft-arm-h:45px;--ft-shoulder-w:10px;
    --ft-forearm-w:13px;--ft-forearm-h:44px;--ft-forearm-left:-1px;--ft-forearm-top:34px;--ft-elbow-w:8px;
    --ft-glove-w:22px;--ft-glove-half:11px;--ft-glove-h:20px;--ft-arm-front-x:74px;--ft-arm-front-y:42px;--ft-arm-back-x:42px;--ft-arm-back-y:44px;
    --ft-leg-top:101px;--ft-leg-w:17px;--ft-leg-h:50px;--ft-leg-front-x:65px;--ft-leg-back-x:37px;
    --ft-shin-w:14px;--ft-shin-h:52px;--ft-shin-top:38px;--ft-knee-w:10px;--ft-boot-w:24px;--ft-boot-half:12px;--ft-boot-h:12px;--ft-shorts-h:22px;
    position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;width:132px;opacity:.28;filter:grayscale(1);transition:opacity .3s ease,filter .3s ease;will-change:transform;
}
.ft-fighter.is-present { opacity: 1; filter: none; }
.ft-fighter.is-opening-winner { animation:ft-opening-fighter 1.35s cubic-bezier(.18,.82,.24,1) both; }
.ft-fighter-a.is-attacking { animation:ft-lunge-a 1.04s cubic-bezier(.16,.76,.22,1) both; }
.ft-fighter-b.is-attacking { animation:ft-lunge-b 1.04s cubic-bezier(.16,.76,.22,1) both; }
.ft-figure { position: relative; width: 118px; height: 196px; transform: scaleX(var(--ft-flip,1)); }
.ft-fighter-b { --ft-flip: -1; }
.ft-fighter-a { --ft-skin:#ffd9a8; --ft-skin-dark:#d99a5c; --ft-accent:var(--ft-blue); }
.ft-fighter-b { --ft-skin:#e7b688; --ft-skin-dark:#b87b4a; --ft-accent:var(--ft-red); }
.ft-shadow { position:absolute;left:50%;bottom:-8px;width:96px;height:15px;margin-left:-48px;border-radius:50%;background:rgba(0,0,0,.58);filter:blur(3px);transition:transform .2s ease; }
.ft-fighter.is-attacking .ft-shadow { transform:scaleX(1.18); }
.ft-fighter.is-attacking .ft-figure { animation:ft-strike-focus 1.04s ease-out both; }
.ft-upper-body { position:absolute;z-index:2;inset:0;display:block;transform-origin:50% 70%; }
.ft-head { position:absolute;z-index:4;left:50%;top:0;width:var(--ft-head-w);height:var(--ft-head-h);margin-left:calc(0px - var(--ft-head-half));border:var(--ft-outline) solid #291626;border-radius:46% 46% 44% 44% / 42% 42% 56% 56%;background:linear-gradient(145deg,var(--ft-skin),var(--ft-skin-dark));box-shadow:inset 3px 2px 0 rgba(255,255,255,.1);box-sizing:border-box;transform:translate(2px,1px) rotate(1deg); }
.ft-head::after { content:"";position:absolute;z-index:3;left:-3px;right:-3px;top:-3px;height:20px;border-radius:23px 23px 42% 38%;background:linear-gradient(155deg,#3a1d35,#1e101d);box-shadow:inset 0 -3px rgba(103,55,91,.28); }
.ft-head::before { content:"";position:absolute;z-index:4;left:8px;top:24px;width:5px;height:3px;border-radius:50%;background:#25131f;box-shadow:18px 0 #25131f,9px 9px 0 -1px rgba(112,53,43,.72); }
.ft-head > i { position:absolute;z-index:-1;left:-7px;top:21px;width:8px;height:13px;border:2px solid #291626;border-radius:50%;background:var(--ft-skin-dark);box-shadow:42px 0 0 -2px var(--ft-skin-dark),42px 0 0 0 #291626;box-sizing:border-box; }
.ft-head > b { position:absolute;z-index:4;left:50%;top:37px;width:12px;height:2px;margin-left:-6px;border-radius:50%;background:rgba(100,44,45,.65);transform:rotate(-3deg); }
.ft-torso { position:absolute;z-index:2;left:50%;top:var(--ft-torso-top);width:var(--ft-torso-w);height:var(--ft-torso-h);margin-left:calc(0px - var(--ft-torso-half));border:var(--ft-outline) solid #291626;border-radius:var(--ft-torso-radius);background:linear-gradient(150deg,var(--ft-skin),var(--ft-skin-dark));box-shadow:inset 4px 1px rgba(255,255,255,.07);box-sizing:border-box; }
.ft-torso > i { position:absolute;z-index:-1;left:50%;top:-10px;width:var(--ft-neck-w);height:14px;margin-left:calc(0px - var(--ft-neck-half));border:var(--ft-outline) solid #291626;border-radius:6px;background:linear-gradient(90deg,var(--ft-skin-dark),var(--ft-skin));box-sizing:border-box; }
.ft-torso::before { content:"";position:absolute;left:50%;top:12px;width:1px;height:36px;background:rgba(91,44,39,.22);box-shadow:-13px 7px 0 -1px rgba(255,255,255,.11),13px 7px 0 -1px rgba(255,255,255,.08); }
/* Trunks in the corner colour: at card size the silhouette alone reads as a
   blob, the waistband is what makes it read as a fighter. */
.ft-torso::after { content:"";position:absolute;left:-2px;right:-2px;bottom:-2px;height:var(--ft-shorts-h);border:var(--ft-outline) solid #291626;border-radius:5px 5px 9px 9px;background:linear-gradient(180deg,color-mix(in srgb,var(--ft-accent) 84%,#c6a1ff),color-mix(in srgb,var(--ft-accent) 42%,#20121c));box-shadow:inset 0 3px rgba(255,255,255,.1);box-sizing:border-box; }
.ft-arm { position:absolute;width:var(--ft-arm-w);height:var(--ft-arm-h);border:var(--ft-outline) solid #291626;border-radius:48% 48% 42% 42%;background:linear-gradient(150deg,var(--ft-skin),var(--ft-skin-dark));box-shadow:inset 2px 0 rgba(255,255,255,.08);box-sizing:border-box;transform-origin:50% 6px; }
.ft-arm::before { content:"";position:absolute;left:50%;top:2px;width:var(--ft-shoulder-w);height:var(--ft-shoulder-w);transform:translate(-50%,-50%);border:var(--ft-outline) solid #291626;border-radius:50%;background:radial-gradient(circle at 38% 32%,var(--ft-skin),var(--ft-skin-dark) 72%);box-sizing:border-box; }
.ft-forearm { position:absolute;z-index:2;left:var(--ft-forearm-left);top:var(--ft-forearm-top);width:var(--ft-forearm-w);height:var(--ft-forearm-h);border:var(--ft-outline) solid #291626;border-radius:48% 48% 42% 42%;background:linear-gradient(150deg,var(--ft-skin),var(--ft-skin-dark));box-shadow:inset 2px 0 rgba(255,255,255,.07);box-sizing:border-box;transform-origin:50% 4px; }
.ft-forearm::before { content:"";position:absolute;z-index:2;left:50%;top:1px;width:var(--ft-elbow-w);height:var(--ft-elbow-w);transform:translate(-50%,-50%);border:var(--ft-outline) solid #291626;border-radius:50%;background:radial-gradient(circle at 36% 30%,var(--ft-skin),var(--ft-skin-dark) 72%);box-shadow:inset -1px -1px rgba(91,44,39,.14);box-sizing:border-box; }
.ft-forearm::after { content:"";position:absolute;left:50%;bottom:-11px;width:var(--ft-glove-w);height:var(--ft-glove-h);margin-left:calc(0px - var(--ft-glove-half));border:var(--ft-outline) solid #291626;border-radius:48% 58% 52% 46%;background:linear-gradient(145deg,color-mix(in srgb,var(--ft-accent) 72%,#e0b8ff),var(--ft-accent) 58%,color-mix(in srgb,var(--ft-accent) 50%,#24132c));box-shadow:inset 3px 2px rgba(255,255,255,.12),0 3px 7px rgba(0,0,0,.25);box-sizing:border-box; }
.ft-arm-front { left:var(--ft-arm-front-x);top:var(--ft-arm-front-y);z-index:3;transform:rotate(-10deg); }
.ft-arm-front .ft-forearm { transform:rotate(-155deg); }
.ft-arm-back { left:var(--ft-arm-back-x);top:var(--ft-arm-back-y);z-index:3;transform:rotate(10deg); }
.ft-arm-back .ft-forearm { transform:rotate(155deg); }
.ft-leg { position:absolute;top:var(--ft-leg-top);width:var(--ft-leg-w);height:var(--ft-leg-h);border:var(--ft-outline) solid #291626;border-radius:48% 48% 38% 38%;background:linear-gradient(150deg,var(--ft-skin),var(--ft-skin-dark));box-shadow:inset 2px 0 rgba(255,255,255,.07);box-sizing:border-box;transform-origin:50% 5px; }
.ft-shin { position:absolute;left:-1px;top:var(--ft-shin-top);width:var(--ft-shin-w);height:var(--ft-shin-h);border:var(--ft-outline) solid #291626;border-radius:48% 48% 34% 34%;background:linear-gradient(155deg,var(--ft-skin),var(--ft-skin-dark));box-sizing:border-box;transform-origin:50% 4px; }
.ft-shin::before { content:"";position:absolute;z-index:2;left:50%;top:1px;width:var(--ft-knee-w);height:17px;transform:translate(-50%,-50%);border:var(--ft-outline) solid #291626;border-radius:48% 52% 55% 45%;background:radial-gradient(circle at 38% 30%,var(--ft-skin),var(--ft-skin-dark) 74%);box-shadow:inset -1px -2px rgba(91,44,39,.14);box-sizing:border-box; }
.ft-shin::after { content:"";position:absolute;left:50%;bottom:-8px;width:var(--ft-boot-w);height:var(--ft-boot-h);margin-left:calc(0px - var(--ft-boot-half));border:var(--ft-outline) solid #291626;border-radius:9px 12px 4px 4px;background:linear-gradient(90deg,color-mix(in srgb,var(--ft-accent) 56%,#25132d),color-mix(in srgb,var(--ft-accent) 78%,#c6a1ff));box-shadow:inset 2px 1px rgba(255,255,255,.1);box-sizing:border-box; }
.ft-leg-front { left:var(--ft-leg-front-x);transform:rotate(-16deg); }
.ft-leg-front .ft-shin { transform:rotate(22deg); }
.ft-leg-back { left:var(--ft-leg-back-x);z-index:-1;transform:rotate(14deg); }
.ft-leg-back .ft-shin { transform:rotate(-20deg); }
.ft-fighter[data-skin] .ft-head,
.ft-fighter[data-skin] .ft-torso,
.ft-fighter[data-skin] .ft-arm,
.ft-fighter[data-skin] .ft-forearm,
.ft-fighter[data-skin] .ft-leg,
.ft-fighter[data-skin] .ft-shin,
.ft-fighter[data-skin] .ft-torso::after,
.ft-fighter[data-skin] .ft-forearm::after,
.ft-fighter[data-skin] .ft-shin::after {
    background-color:transparent;
    background-image:var(--ft-skin-atlas);
    background-repeat:no-repeat;
    background-size:300% 300%;
    border-color:transparent;
    box-shadow:none;
}
.ft-fighter[data-skin] .ft-head { background-position:0 0; }
.ft-fighter[data-skin] .ft-torso { background-color:transparent;background-position:50% 0; }
.ft-fighter[data-skin] .ft-forearm::after { background-color:transparent;background-position:100% 0; }
.ft-fighter[data-skin] .ft-arm { background-position:0 50%; }
.ft-fighter[data-skin] .ft-forearm { background-position:50% 50%; }
.ft-fighter[data-skin] .ft-torso::after { background-color:transparent;background-position:100% 50%; }
.ft-fighter[data-skin] .ft-leg { background-position:0 100%; }
.ft-fighter[data-skin] .ft-shin { background-position:50% 100%; }
.ft-fighter[data-skin] .ft-shin::after { background-color:transparent;background-position:100% 100%; }
.ft-fighter[data-skin] .ft-head::before,
.ft-fighter[data-skin] .ft-head::after,
.ft-fighter[data-skin] .ft-head > i,
.ft-fighter[data-skin] .ft-head > b,
.ft-fighter[data-skin] .ft-torso::before { opacity:0; }
.ft-fighter[data-skin] .ft-arm::before,
.ft-fighter[data-skin] .ft-forearm::before,
.ft-fighter[data-skin] .ft-shin::before { opacity:0; }
.ft-fighter[data-skin] .ft-torso > i { z-index:0;opacity:1;border-color:transparent;background:var(--ft-raster-tone);box-shadow:none; }
.ft-fighter.is-present:not(.is-attacking):not(.is-guarding):not(.is-hit):not(.is-knocked-out) .ft-upper-body { animation:ft-idle-guard 1.7s ease-in-out infinite; }
.ft-fighter.is-present:not(.is-attacking):not(.is-guarding):not(.is-hit):not(.is-knocked-out) .ft-torso { animation:ft-idle-breathe 1.7s ease-in-out infinite; }
.ft-fighter.is-present:not(.is-attacking):not(.is-guarding):not(.is-hit):not(.is-knocked-out) .ft-shadow { animation:ft-idle-shadow 1.7s ease-in-out infinite; }

.ft-crown { position: absolute; top: -26px; left: 50%; transform: translateX(-50%) scale(0); display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(145deg,#ffe6a3,#e0951f); color: #40260a; font-size: 13px; box-shadow: 0 0 18px rgba(244,201,93,.6); transition: transform .3s cubic-bezier(.2,1.5,.5,1); }
.ft-crown.show { transform: translateX(-50%) scale(1); }
.ft-callout { position: absolute; top: 6px; left: 50%; transform: translate(-50%,8px); padding: 5px 12px; border: 2px solid var(--ft-accent); border-radius: 20px; background: #170f22; color: #fff; font-size: 12px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; opacity: 0; transition: opacity .2s ease,transform .2s ease; }
.ft-callout.show { opacity: 1; transform: translate(-50%,-10px); }
.ft-fx { position:absolute;z-index:4;top:40px;left:50%;width:96px;height:96px;margin-left:-48px;border-radius:50%;opacity:0;pointer-events:none; }
.ft-fx::before,.ft-fx::after { content:"";position:absolute;inset:13%;border-radius:50%;opacity:0; }
.ft-fx.show::before { opacity:1;background:repeating-conic-gradient(from 8deg,rgba(255,255,255,.92) 0 5deg,transparent 5deg 24deg);clip-path:polygon(50% 0,59% 35%,82% 18%,68% 42%,100% 50%,68% 58%,82% 82%,59% 65%,50% 100%,41% 65%,18% 82%,32% 58%,0 50%,32% 42%,18% 18%,41% 35%);animation:ft-impact-star .48s ease-out both; }
.ft-fx.show::after { inset:31%;opacity:1;border:3px solid #fff;box-shadow:0 0 18px currentColor;animation:ft-impact-ring .5s ease-out both; }
.ft-fx.show.is-hit { color:#ff6877; }
.ft-fx.show.is-block { color:#8fdcff; }
.ft-fx.show.is-miss { color:#c69aff; }
.ft-fx.show.is-hit { animation: ft-fx-hit .55s ease both; background: radial-gradient(circle,rgba(255,95,109,.85),transparent 68%); }
.ft-fx.show.is-block { animation: ft-fx-block .55s ease both; background: radial-gradient(circle,rgba(120,220,255,.7),transparent 66%); }
.ft-fx.show.is-miss { animation:ft-fx-miss .72s ease-out both;background:repeating-linear-gradient(135deg,transparent 0 12px,rgba(198,154,255,.3) 13px 17px,transparent 18px 28px); }
.ft-fighter.is-hit-high .ft-fx,.ft-fighter.is-blocked-high .ft-fx { top:20px; }
.ft-fighter.is-hit-mid .ft-fx,.ft-fighter.is-blocked-mid .ft-fx { top:62px; }
.ft-fighter.is-hit-low .ft-fx,.ft-fighter.is-blocked-low .ft-fx { top:116px; }

/* Fighting-game choreography: anticipation, weight transfer, contact hold and
   recovery. High is a lead jab, middle a rear cross and low a committed shin
   kick. The skeleton and game timing stay unchanged; only its joint poses move. */
.ft-fighter.is-attack-high .ft-arm-front { animation:ft-punch-high .92s cubic-bezier(.16,.76,.22,1) both; }
.ft-fighter.is-attack-high .ft-arm-front .ft-forearm { animation:ft-punch-high-forearm .92s cubic-bezier(.16,.76,.22,1) both; }
.ft-fighter.is-attack-high .ft-arm-back { animation:ft-punch-high-guard .92s ease both; }
.ft-fighter.is-attack-mid .ft-arm-back { z-index:4;animation:ft-punch-mid .96s cubic-bezier(.14,.78,.2,1) both; }
.ft-fighter.is-attack-mid .ft-arm-back .ft-forearm { animation:ft-punch-mid-forearm .96s cubic-bezier(.14,.78,.2,1) both; }
.ft-fighter.is-attack-mid .ft-arm-front { animation:ft-punch-mid-guard .96s ease both; }
.ft-fighter.is-attack-low .ft-leg-front { z-index:4;animation:ft-kick-low .98s cubic-bezier(.14,.76,.2,1) both; }
.ft-fighter.is-attack-low .ft-leg-front .ft-shin { animation:ft-kick-low-shin .98s cubic-bezier(.14,.76,.2,1) both; }
.ft-fighter.is-attack-low .ft-leg-back { animation:ft-kick-support .98s ease both; }
.ft-fighter.is-attack-high .ft-upper-body { animation:ft-attack-upper-high .92s cubic-bezier(.18,.78,.25,1) both; }
.ft-fighter.is-attack-mid .ft-upper-body { animation:ft-attack-upper-mid .96s cubic-bezier(.16,.78,.22,1) both; }
.ft-fighter.is-attack-low .ft-upper-body { animation:ft-attack-upper-low .98s cubic-bezier(.16,.76,.22,1) both; }
.ft-fighter.is-attacking .ft-torso { animation:ft-lean .96s ease both; }

.ft-fighter.is-guard-duck .ft-upper-body { animation:ft-duck-upper .9s cubic-bezier(.2,.72,.25,1) both; }
.ft-fighter.is-guard-duck .ft-leg-front { animation:ft-duck-thigh-front .9s cubic-bezier(.2,.72,.25,1) both; }
.ft-fighter.is-guard-duck .ft-leg-back { animation:ft-duck-thigh-back .9s cubic-bezier(.2,.72,.25,1) both; }
.ft-fighter.is-guard-duck .ft-leg-front .ft-shin { animation:ft-duck-shin-front .9s cubic-bezier(.2,.72,.25,1) both; }
.ft-fighter.is-guard-duck .ft-leg-back .ft-shin { animation:ft-duck-shin-back .9s cubic-bezier(.2,.72,.25,1) both; }
.ft-fighter.is-guard-duck .ft-shadow { animation:ft-duck-shadow .9s ease both; }
.ft-fighter.is-guard-jump { animation: ft-jump .9s ease both; }
.ft-fighter.is-guard-jump .ft-leg-front { animation:ft-jump-thigh-front .9s cubic-bezier(.2,.75,.28,1) both; }
.ft-fighter.is-guard-jump .ft-leg-back { animation:ft-jump-thigh-back .9s cubic-bezier(.2,.75,.28,1) both; }
.ft-fighter.is-guard-jump .ft-leg-front .ft-shin { animation:ft-jump-shin-front .9s cubic-bezier(.2,.75,.28,1) both; }
.ft-fighter.is-guard-jump .ft-leg-back .ft-shin { animation:ft-jump-shin-back .9s cubic-bezier(.2,.75,.28,1) both; }
.ft-fighter.is-guard-jump .ft-upper-body { animation:ft-jump-upper .9s cubic-bezier(.2,.75,.28,1) both; }
.ft-fighter.is-guard-jump .ft-arm-front { animation:ft-jump-arm-front .9s cubic-bezier(.2,.75,.28,1) both; }
.ft-fighter.is-guard-jump .ft-arm-back { animation:ft-jump-arm-back .9s cubic-bezier(.2,.75,.28,1) both; }
.ft-fighter.is-guard-jump .ft-arm-front .ft-forearm { animation:ft-jump-forearm-front .9s cubic-bezier(.2,.75,.28,1) both; }
.ft-fighter.is-guard-jump .ft-arm-back .ft-forearm { animation:ft-jump-forearm-back .9s cubic-bezier(.2,.75,.28,1) both; }
.ft-fighter.is-guard-block .ft-arm { z-index: 3; }
.ft-fighter.is-guard-block .ft-arm-front { animation: ft-block-front .9s ease both; }
.ft-fighter.is-guard-block .ft-arm-back { animation: ft-block-back .9s ease both; }
.ft-fighter.is-guard-block .ft-arm-front .ft-forearm { animation:ft-block-front-forearm .9s ease both; }
.ft-fighter.is-guard-block .ft-arm-back .ft-forearm { animation:ft-block-back-forearm .9s ease both; }

.ft-fighter.is-hit { animation:ft-recoil .86s cubic-bezier(.14,.78,.24,1) both; }
.ft-fighter-b.is-hit { animation:ft-recoil-b .86s cubic-bezier(.14,.78,.24,1) both; }
.ft-fighter.is-hit-high .ft-head { animation:ft-head-snap .7s cubic-bezier(.12,.78,.22,1) both; }
.ft-fighter.is-hit-high .ft-upper-body { animation:ft-hit-high-body .78s cubic-bezier(.16,.78,.24,1) both; }
.ft-fighter.is-hit-mid .ft-upper-body { animation:ft-hit-mid-body .82s cubic-bezier(.16,.76,.24,1) both; }
.ft-fighter.is-hit-low .ft-upper-body { animation:ft-hit-low-body .84s cubic-bezier(.16,.76,.24,1) both; }
.ft-fighter.is-hit-low .ft-leg-front { animation:ft-hit-low-leg-front .84s cubic-bezier(.16,.76,.24,1) both; }
.ft-fighter.is-hit-low .ft-leg-back { animation:ft-hit-low-leg-back .84s cubic-bezier(.16,.76,.24,1) both; }
.ft-fighter.is-dodged .ft-figure { animation:ft-dodge-ghost .72s ease-out both; }
.ft-fighter.is-knocked-out { z-index:1;filter:saturate(.65) brightness(.72);transform-origin:50% 92%;pointer-events:none; }
.ft-fighter-a.is-knocked-out { animation:ft-knockout-a 1.15s cubic-bezier(.18,.78,.24,1) .08s both; }
.ft-fighter-b.is-knocked-out { animation:ft-knockout-b 1.15s cubic-bezier(.18,.78,.24,1) .08s both; }
.ft-fighter.is-knocked-out .ft-shadow { transform:scaleX(1.35);opacity:.72; }
.ft-fighter.is-knockout-winner .ft-figure { animation:ft-winner-glow 1.15s ease-in-out .5s 2 alternate; }
.ft-fighter.is-knockout-winner .ft-crown.show { filter:drop-shadow(0 0 10px rgba(244,201,93,.8)); }
.ft-fighter.is-blocked .ft-torso { animation: ft-brace .45s ease both; }
.ft-fighter-a.is-blocked { animation:ft-block-recoil-a .5s cubic-bezier(.2,.78,.3,1) both; }
.ft-fighter-b.is-blocked { animation:ft-block-recoil-b .5s cubic-bezier(.2,.78,.3,1) both; }

/* Full-frame pose renderer. Each fighter is one composited bitmap rather than
   a jointed DOM skeleton, so changing a move only selects another atlas cell. */
.ft-character-sprite {
    position:absolute;
    z-index:2;
    left:50%;
    bottom:-18px;
    display:block;
    width:320px;
    height:256px;
    transform:translateX(-50%);
    background-image:var(--ft-anim-idle,var(--ft-sprite-atlas));
    background-repeat:no-repeat;
    background-position:center;
    background-size:320px 256px;
    filter:drop-shadow(0 8px 7px rgba(0,0,0,.32));
    pointer-events:none;
}
.ft-fighter.is-attack-high .ft-character-sprite { background-image:var(--ft-anim-attack-high); }
.ft-fighter.is-attack-mid .ft-character-sprite { background-image:var(--ft-anim-attack-mid); }
.ft-fighter.is-attack-low .ft-character-sprite { background-image:var(--ft-anim-attack-low); }
.ft-fighter.is-guard-duck .ft-character-sprite { background-image:var(--ft-anim-guard-duck); }
.ft-fighter.is-guard-block .ft-character-sprite { background-image:var(--ft-anim-guard-block); }
.ft-fighter.is-guard-jump .ft-character-sprite { height:320px;background-image:var(--ft-anim-guard-jump);background-size:320px 320px; }
.ft-fighter.is-hit .ft-character-sprite {
    background-image:var(--ft-frame-hit);
    background-position:center;
    background-size:320px 256px;
}
.ft-fighter.is-knocked-out .ft-character-sprite {
    background-image:var(--ft-frame-knockout);
    background-position:center;
    background-size:320px 256px;
}

/* The pose is already baked into the selected frame. Keep lightweight stage,
   impact and winner effects, but do not transform body parts or the fighter. */
.ft-fighter.is-attacking,
.ft-fighter.is-hit,
.ft-fighter.is-blocked,
.ft-fighter.is-guard-jump,
.ft-fighter.is-knocked-out { animation:none!important; }
.ft-fighter.is-attacking .ft-figure,
.ft-fighter.is-dodged .ft-figure { animation:none!important; }

.ft-timer-dial { position:absolute;z-index:5;left:50%;bottom:10px;display:grid;place-items:center;width:58px;height:58px;margin:0;transform:translateX(-50%);opacity:0;transition:opacity .25s ease;filter:drop-shadow(0 8px 14px rgba(0,0,0,.45)); }
.ft-timer-dial.show { opacity: 1; }
.ft-timer-dial svg { position:absolute;width:58px;height:58px;transform:rotate(-90deg); }
.ft-dial-track { fill: rgba(0,0,0,.45); stroke: rgba(255,255,255,.1); stroke-width: 4; }
.ft-dial-fill { fill: none; stroke: var(--ft-gold); stroke-width: 4; stroke-linecap: round; transition: stroke-dashoffset .1s linear; }
.ft-timer-dial.is-urgent .ft-dial-fill { stroke: var(--ft-blood); }
.ft-timer-dial b { position:relative;color:#fff;font-size:17px;font-weight:900; }
.ft-timer-dial.is-urgent b { color: #ff8b95; animation: ft-pulse .6s ease infinite; }
.ft-stage-rematch { position:absolute;z-index:16;left:50%;bottom:17px;display:flex;width:min(280px,calc(100% - 24px));justify-content:center;opacity:0;transform:translate(-50%,18px) scale(.88);pointer-events:none;transition:opacity .24s ease,transform .38s cubic-bezier(.18,.9,.24,1.18); }
.ft-stage-rematch.show { opacity:1;transform:translate(-50%,0) scale(1);pointer-events:auto; }
.ft-stage-rematch .social-rematch-button { width:100%;min-height:52px;border-width:2px;border-color:rgba(225,187,255,.88);border-radius:15px;background:linear-gradient(135deg,#6830ce,#a94ff4 58%,#d06cff);box-shadow:0 14px 34px rgba(74,24,143,.52),0 0 28px rgba(177,111,255,.32),inset 0 1px rgba(255,255,255,.24);font-size:13px;letter-spacing:.05em;text-transform:uppercase;animation:ft-stage-rematch-pulse 1.8s ease-in-out infinite; }
.ft-stage-rematch .social-rematch-button:disabled { animation:none; }

/* ── Controls ── */
.ft-controls { display: flex; flex-direction: column; gap: 11px; padding: 14px; border: 1px solid rgba(255,255,255,.07); border-radius: 13px; background: rgba(0,0,0,.24); }
.ft-role { display: flex; align-items: center; justify-content: center; gap: 8px; color: rgba(255,255,255,.42); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ft-role.is-attack { color: #ff98a2; }
.ft-role.is-defend { color: #9bd2ff; }
.ft-moves { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.ft-move { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 14px 8px; border: 1px solid rgba(255,255,255,.1); border-radius: 13px; background: linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.012)); color: #fff; cursor: pointer; transition: transform .15s ease,border-color .2s,box-shadow .2s,background .2s; }
.ft-move.is-hidden { display: none; }
.ft-move b { font-size: 14px; font-weight: 800; }
.ft-move small { color: rgba(255,255,255,.4); font-size: 10px; }
.ft-move-icon { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 3px; border-radius: 13px; background: rgba(255,255,255,.06); font-size: 17px; }
.ft-move-attack .ft-move-icon { color: var(--ft-red); background:rgba(255,102,117,.1); }
.ft-move-guard .ft-move-icon { color: var(--ft-blue); background:rgba(98,183,255,.1); }
.ft-move:not(:disabled):hover { transform: translateY(-3px); border-color: rgba(255,102,117,.52); box-shadow: 0 14px 28px rgba(0,0,0,.3); }
.ft-move-guard:not(:disabled):hover { border-color: rgba(143,212,255,.5); }
.ft-move:disabled { opacity: .42; cursor: default; }
.ft-move.is-picked { opacity: 1; border-color: var(--ft-red); background: linear-gradient(160deg,rgba(255,102,117,.2),rgba(255,255,255,.02)); box-shadow: 0 0 0 2px rgba(255,102,117,.18); }
.ft-move-guard.is-picked { border-color: var(--ft-blue); background: linear-gradient(160deg,rgba(98,183,255,.2),rgba(255,255,255,.02)); box-shadow: 0 0 0 2px rgba(98,183,255,.18); }
.ft-controls-hint { color: rgba(255,255,255,.38); font-size: 12px; text-align: center; }

/* ── Result ── */
.ft-result { position: relative; display: flex; flex-direction: column; align-items: center; gap: 7px; margin-top: 14px; padding: 22px 18px; overflow: hidden; border: 1px solid rgba(244,201,93,.3); border-radius: 14px; background: radial-gradient(circle at 50% 0,rgba(244,201,93,.16),rgba(28,18,38,.97) 66%); text-align: center; }
.ft-result-crown { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: linear-gradient(145deg,#ffe6a3,#e0951f); color: #40260a; font-size: 22px; box-shadow: 0 0 26px rgba(244,201,93,.5); }
.ft-result small { color: var(--ft-gold); font-size: 10px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.ft-result strong { color: #fff; font-family: var(--site-font-display); font-size: 24px; }
.ft-result-line { margin: 0; color: rgba(255,255,255,.6); font-size: 13px; }
.ft-clean-sweep { position:relative;width:min(700px,100%);display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:13px;margin:8px 0 2px;padding:14px 16px;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:16px;box-sizing:border-box;text-align:left;animation:ft-clean-sweep-in .72s cubic-bezier(.16,.88,.22,1.16) both; }
.ft-clean-sweep::before { content:"";position:absolute;inset:0;pointer-events:none;opacity:.8; }
.ft-clean-sweep.is-winner { border-color:rgba(255,220,117,.62);background:linear-gradient(135deg,rgba(102,74,20,.78),rgba(38,24,52,.96));box-shadow:0 16px 42px rgba(244,201,93,.14),inset 0 1px rgba(255,255,255,.13); }
.ft-clean-sweep.is-winner::before { background:radial-gradient(circle at 10% 20%,rgba(255,232,149,.25),transparent 38%); }
.ft-clean-sweep.is-loser { border-color:rgba(255,102,117,.52);background:linear-gradient(135deg,rgba(91,25,48,.86),rgba(35,19,53,.97));box-shadow:0 16px 42px rgba(255,72,98,.13),inset 0 1px rgba(255,255,255,.08); }
.ft-clean-sweep.is-loser::before { background:repeating-linear-gradient(125deg,transparent 0 22px,rgba(255,112,126,.045) 23px 25px); }
.ft-clean-sweep.is-spectator { border-color:rgba(191,139,255,.45);background:linear-gradient(135deg,rgba(77,39,116,.74),rgba(29,18,42,.96)); }
.ft-clean-icon { position:relative;z-index:1;display:grid;width:54px;height:54px;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:17px;background:rgba(255,255,255,.08);color:#fff;font-size:23px;box-shadow:inset 0 1px rgba(255,255,255,.13); }
.ft-clean-sweep.is-winner .ft-clean-icon { background:linear-gradient(145deg,#ffe89d,#d89b2e);color:#432a08;box-shadow:0 0 25px rgba(244,201,93,.36); }
.ft-clean-sweep.is-loser .ft-clean-icon { color:#ff9ca7;background:rgba(255,91,111,.12); }
.ft-clean-copy { position:relative;z-index:1;min-width:0;display:flex;flex-direction:column;gap:2px; }
.ft-clean-copy small { color:rgba(255,255,255,.48);font-size:8px;letter-spacing:.18em; }
.ft-clean-copy strong { color:#fff;font:900 20px/1.05 var(--site-font-display);font-style:italic;letter-spacing:.02em;text-transform:uppercase; }
.ft-clean-sweep.is-winner .ft-clean-copy strong { color:#ffe69d;text-shadow:0 0 18px rgba(244,201,93,.22); }
.ft-clean-sweep.is-loser .ft-clean-copy strong { color:#ff9ca7; }
.ft-clean-copy p { margin:3px 0 0;color:rgba(255,255,255,.68);font-size:11px;line-height:1.45; }
.ft-result-crowned { margin: 2px 0 0; color: #ffd884; font-size: 13px; font-weight: 700; }
.ft-result-dethroned { margin: 2px 0 0; color: #ff9aa4; font-size: 13px; font-weight: 700; }
.ft-result-showdown { width:min(700px,100%);display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);align-items:center;gap:9px;margin-top:10px; }
.ft-result-fighter { position:relative;min-width:0;display:flex;align-items:center;flex-direction:column;gap:5px;padding:15px 12px 13px;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:rgba(0,0,0,.24); }
.ft-result-fighter::before { content:"";position:absolute;inset:0;pointer-events:none;opacity:.75; }
.ft-result-fighter.is-winner { border-color:rgba(244,201,93,.48);background:linear-gradient(155deg,rgba(244,201,93,.18),rgba(62,36,79,.7));box-shadow:0 16px 36px rgba(244,201,93,.09);animation:ft-result-winner-in .65s cubic-bezier(.18,.9,.26,1.25) both; }
.ft-result-fighter.is-winner::before { background:radial-gradient(circle at 50% 18%,rgba(255,225,145,.22),transparent 45%); }
.ft-result-fighter.is-loser { border-color:rgba(255,102,117,.25);background:linear-gradient(155deg,rgba(255,102,117,.09),rgba(20,13,28,.74));animation:ft-result-loser-in .65s ease .12s both; }
.ft-result-verdict { position:relative;z-index:1;color:rgba(255,255,255,.5);font-size:9px;font-weight:850;letter-spacing:.11em;text-transform:uppercase; }
.ft-result-fighter.is-winner .ft-result-verdict { color:#ffe09a; }
.ft-result-fighter.is-loser .ft-result-verdict { color:#ff9ca6; }
.ft-result-avatar { position:relative;z-index:1;display:grid;width:58px;height:58px;place-items:center;overflow:hidden;border:2px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.06); }
.ft-result-avatar > * { max-width:100%;max-height:100%; }
.ft-result-fighter.is-winner .ft-result-avatar { border-color:rgba(244,201,93,.58);box-shadow:0 0 24px rgba(244,201,93,.24); }
.ft-result-fighter.is-loser .ft-result-avatar { filter:grayscale(.75) brightness(.68); }
.ft-result-fighter strong { position:relative;z-index:1;max-width:100%;overflow:hidden;color:#fff;font:800 15px/1.15 var(--site-font-display);text-overflow:ellipsis;white-space:nowrap; }
.ft-result-money { position:relative;z-index:1;color:#68e4a5;font:900 23px/1 var(--site-font-display); }
.ft-result-fighter.is-loser .ft-result-money { color:#ff8995;font-size:18px; }
.ft-result-fighter em { position:relative;z-index:1;color:rgba(255,255,255,.48);font-size:10px;font-style:normal; }
.ft-result-fighter.is-winner em { color:#8ef0bd; }
.ft-result-divider { display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(255,255,255,.1);border-radius:50%;background:#1a1024;color:var(--ft-gold);box-shadow:0 0 20px rgba(166,106,242,.2);animation:ft-result-divider-in .5s ease .22s both; }
.ft-result-scores { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 6px; }
.ft-result-score { display: flex; flex-direction: column; gap: 1px; padding: 9px 16px; border-radius: 10px; background: rgba(0,0,0,.26); }
.ft-result-score.is-winner { background: linear-gradient(140deg,rgba(244,201,93,.24),rgba(0,0,0,.26)); }
.ft-result-score b { color: #fff; font-size: 14px; }
.ft-result-score span { color: rgba(255,255,255,.45); font-size: 11px; }
.ft-result-proof { width: min(560px,100%); margin-top: 6px; text-align: left; }
.ft-result-proof summary { color: rgba(255,255,255,.5); font-size: 12px; cursor: pointer; }
.ft-result-proof > div { display: flex; flex-direction: column; gap: 4px; margin-top: 7px; padding: 10px; border-radius: 9px; background: rgba(0,0,0,.3); }
.ft-result-proof span { color: rgba(255,255,255,.42); font-size: 11px; }
.ft-result-proof code { color: #ffd884; font-size: 10px; word-break: break-all; }
.ft-result-proof small { color: rgba(255,255,255,.3); font-size: 10px; letter-spacing: 0; text-transform: none; }
.ft-result-actions { display: flex; align-items: center; gap: 12px; margin-top: 8px; }
.ft-result-actions > span { color: rgba(255,255,255,.35); font-size: 11px; }
.ft-confetti { position: absolute; inset: 0; pointer-events: none; }
.ft-confetti i { position: absolute; top: -8px; left: calc(var(--i) * 6.25%); width: 6px; height: 12px; border-radius: 2px; background: var(--ft-gold); opacity: 0; animation: ft-confetti 2.1s ease-in calc(var(--i) * .07s) 1 both; }
.ft-confetti i:nth-child(2n) { background: var(--ft-violet); }

/* ── Log ── */
.ft-log-panel { margin-top: 14px; padding: 14px; border: 1px solid var(--ft-line); border-radius: 12px; background: rgba(28,20,38,.86); }
.ft-log-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 9px; color: #fff; font-size: 13px; font-weight: 700; }
.ft-log-heading i { color: var(--ft-gold); }
.ft-log-heading small { color: rgba(255,255,255,.3); font-size: 11px; font-weight: 500; }
.ft-log { display: flex; flex-direction: column; gap: 5px; max-height: 190px; overflow-y: auto; }
.ft-log-line { display: flex; align-items: center; gap: 9px; padding: 7px 10px; border-radius: 8px; background: rgba(255,255,255,.03); color: rgba(255,255,255,.62); font-size: 12px; }
.ft-log-line b { display: grid; place-items: center; width: 20px; height: 20px; flex: 0 0 20px; border-radius: 6px; background: rgba(255,255,255,.06); color: rgba(255,255,255,.5); font-size: 10px; }
.ft-log-line span { min-width: 0; flex: 1; }
.ft-log-line em { padding: 2px 7px; border-radius: 8px; background: rgba(255,255,255,.06); color: rgba(255,255,255,.4); font-size: 9px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.ft-log-hit i { color: var(--ft-blood); }
.ft-log-blocked i { color: #8fd4ff; }
.ft-log-hit { background: rgba(255,95,109,.08); }
.ft-log-result { background: rgba(244,201,93,.12); color: #fff; font-weight: 700; }
.ft-log-crowned { background: rgba(244,201,93,.16); color: #ffe0a0; }
.ft-log-dethroned { background: rgba(255,95,109,.12); color: #ffb3ba; }
.ft-log-intro i { color: rgba(255,255,255,.4); }
.ft-log-book { background: rgba(93,201,244,.12); color: #bfe6ff; }

/* ---- Crowd betting ------------------------------------------------- */
.ft-bet-panel { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; padding: 16px; border: 1px solid rgba(255,255,255,.07); border-radius: 16px; background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(0,0,0,.16)); }
.ft-bet-panel.is-open { border-color: rgba(93,201,244,.28); box-shadow: 0 0 0 1px rgba(93,201,244,.08) inset; }
.ft-bet-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.ft-bet-title { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .02em; }
.ft-bet-title i { color: #f4c95d; }
.ft-bet-status { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; background: rgba(0,0,0,.3); color: rgba(255,255,255,.42); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; white-space: nowrap; }
.ft-bet-status.is-open { background: rgba(93,201,244,.14); color: #9adcff; }

.ft-bet-sides { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: stretch; gap: 10px; }
.ft-bet-versus { align-self: center; color: rgba(255,255,255,.28); font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.ft-bet-side { display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 1px solid rgba(255,255,255,.08); border-radius: 13px; background: rgba(0,0,0,.24); color: inherit; text-align: left; cursor: pointer; transition: border-color .16s, background .16s, transform .16s; }
.ft-bet-side:not(:disabled):hover { border-color: rgba(93,201,244,.45); background: rgba(93,201,244,.08); transform: translateY(-1px); }
.ft-bet-side:disabled { cursor: default; opacity: .72; }
.ft-bet-side.is-mine { border-color: rgba(244,201,93,.5); background: rgba(244,201,93,.09); opacity: 1; }
.ft-bet-side.is-winner { border-color: rgba(80,214,140,.55); background: rgba(80,214,140,.1); }
.ft-bet-side-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.ft-bet-side-head b { color: #fff; font-size: 13px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ft-bet-side-head em { color: #f4c95d; font-size: 12px; font-style: normal; font-weight: 800; white-space: nowrap; }
.ft-bet-pool { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.ft-bet-pool small { color: rgba(255,255,255,.34); font-size: 10px; text-transform: uppercase; letter-spacing: .07em; }
.ft-bet-pool strong { color: rgba(255,255,255,.86); font-size: 12px; }
.ft-bet-bar { display: block; height: 4px; border-radius: 999px; background: rgba(255,255,255,.07); overflow: hidden; }
.ft-bet-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg,#5dc9f4,#3d8ec9); transition: width .3s ease; }
.ft-bet-side-1 .ft-bet-bar i { background: linear-gradient(90deg,#ff8f6b,#e05a45); }
.ft-bet-cta { color: rgba(255,255,255,.4); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.ft-bet-side:disabled .ft-bet-cta { visibility: hidden; }
.ft-bet-side.is-mine .ft-bet-cta { color: #ffd884; }

.ft-bet-form { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ft-bet-form .ft-value-field { flex: 0 1 180px; }
.ft-bet-quick { flex: 1 1 auto; margin: 0; }

.ft-bet-mine { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: rgba(244,201,93,.1); }
.ft-bet-mine-icon { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: 0 0 30px; border-radius: 9px; background: rgba(0,0,0,.28); color: #f4c95d; }
.ft-bet-mine-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ft-bet-mine-copy small { color: rgba(255,255,255,.36); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.ft-bet-mine-copy strong { color: #fff; font-size: 12px; }
.ft-bet-mine-return { display: flex; flex-direction: column; gap: 2px; margin-left: auto; text-align: right; }
.ft-bet-mine-return small { color: rgba(255,255,255,.36); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.ft-bet-mine-return b { color: #6fe0a0; font-size: 14px; }

.ft-bet-crowd { display: flex; flex-wrap: wrap; gap: 6px; }
.ft-bet-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px; border-radius: 999px; background: rgba(0,0,0,.28); color: rgba(255,255,255,.66); font-size: 11px; }
.ft-bet-chip i { width: 7px; height: 7px; border-radius: 50%; background: #5dc9f4; }
.ft-bet-chip-1 i { background: #ff8f6b; }
.ft-bet-chip b { color: #fff; }

.ft-bet-note { display: flex; align-items: flex-start; gap: 8px; color: rgba(255,255,255,.34); font-size: 11px; line-height: 1.5; }
.ft-bet-note i { margin-top: 2px; color: rgba(255,255,255,.28); }

.ft-result-book { width: min(560px,100%); margin-top: 8px; padding: 12px; border-radius: 12px; background: rgba(0,0,0,.28); }
.ft-result-mybet { margin-bottom: 8px; padding: 9px; border-radius: 10px; text-align: center; font-size: 13px; }
.ft-result-mybet.is-win { background: rgba(80,214,140,.14); color: #8ff0bb; }
.ft-result-mybet.is-loss { background: rgba(255,95,109,.12); color: #ffb3ba; }
.ft-result-mybet.is-void { background: rgba(255,255,255,.06); color: rgba(255,255,255,.6); }
.ft-result-book-line { margin: 0; color: rgba(255,255,255,.5); font-size: 11px; text-align: center; }
.ft-result-book-split { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 9px; }
.ft-result-book-split span { display: flex; flex-direction: column; gap: 3px; padding: 8px 6px; border-radius: 9px; background: rgba(255,255,255,.04); text-align: center; }
.ft-result-book-split small { color: rgba(255,255,255,.34); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ft-result-book-split b { color: #fff; font-size: 12px; }

/* ---- Live duels taking bets (lobby) --------------------------------- */
.ft-public-title-icon.is-live b { background: #5dc9f4; }
.ft-live-list { display: flex; flex-direction: column; gap: 8px; }
.ft-live-row { display: flex; flex-direction: column; gap: 9px; padding: 12px; border: 1px solid rgba(93,201,244,.2); border-radius: 13px; background: rgba(93,201,244,.05); }
.ft-live-row-top { display: flex; align-items: center; gap: 8px; }
.ft-live-dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: #5dc9f4; animation: ftLivePulse 1.6s infinite; }
.ft-live-stage { color: #9adcff; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.ft-live-row-top .ft-public-code { margin-left: auto; }
.ft-live-fighters { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 8px; }
.ft-live-vs { color: rgba(255,255,255,.26); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.ft-live-fighter { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ft-live-fighter-1 { text-align: right; }
.ft-live-fighter b { color: #fff; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ft-live-fighter.is-champion b { color: #ffd884; }
.ft-live-fighter em { color: rgba(255,255,255,.45); font-size: 10px; font-style: normal; }
.ft-live-fighter small { color: #f4c95d; font-size: 10px; font-weight: 700; }
.ft-live-row-bottom { display: flex; align-items: center; gap: 10px; }
.ft-live-pool { display: flex; flex-direction: column; gap: 1px; }
.ft-live-pool small { color: rgba(255,255,255,.34); font-size: 9px; text-transform: uppercase; letter-spacing: .07em; }
.ft-live-pool b { color: #fff; font-size: 13px; }
.ft-live-window { color: rgba(255,255,255,.36); font-size: 10px; }
.ft-live-watch { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; padding: 9px 14px; border: 0; border-radius: 10px; background: linear-gradient(180deg,#5dc9f4,#3d8ec9); color: #062435; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; cursor: pointer; }
.ft-live-watch:disabled { opacity: .55; cursor: default; }

@media (max-width: 900px) {
    .ft-scoreboard { grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: 8px; }
    .ft-health i { width: 22px; height: 11px; }
    .ft-stage { min-height: 264px; padding: 18px 12px 30px; }
    /* Only ever SCALE the figure. Its parts are absolutely positioned against
       the 118x196 box, so shrinking width/height here would leave the legs
       hanging outside it. */
    .ft-figure { transform: scaleX(var(--ft-flip,1)) scale(.86); transform-origin: 50% 100%; }}
@media (max-width: 768px), (pointer: coarse) and (max-width: 1199px) and (max-height: 600px) and (orientation: landscape) {
    /* The shared phone game shell clips its first child. Simple Fight has a
       lobby and a tall duel scene, so it needs its own contained scrollport. */
    body.is-game-page #page_content2 > .ft-page {
        display:block!important;
        width:100%!important;
        height:100%!important;
        min-height:0!important;
        padding:6px 2px calc(20px + env(safe-area-inset-bottom))!important;
        overflow-x:hidden!important;
        overflow-y:auto!important;
        overscroll-behavior:contain;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }
    body.is-game-page #page_content2 > .ft-page::-webkit-scrollbar { display:none; }
    .ft-page {
        width:100%;
        padding:10px max(10px,var(--mobile-safe-right)) calc(var(--mobile-tabs-h) + var(--mobile-safe-bottom) + 24px) max(10px,var(--mobile-safe-left));
        overflow-x:clip;
        box-sizing:border-box;
    }
    .ft-page-top { flex-wrap:nowrap;gap:8px;margin:0 2px 14px; }
    .ft-page-identity { gap:9px; }
    .ft-page-icon { width:42px;height:42px;flex-basis:42px;border-radius:13px; }
    .ft-page-icon img { width:25px;height:25px; }
    .ft-page-kicker { font-size:8px;letter-spacing:.12em; }
    .ft-page-identity h1 { font-size:20px; }
    .ft-page-actions { margin-left:auto;gap:6px; }
    .ft-how-button,.ft-top-fair { height:40px;padding:0 10px;gap:6px;border-radius:12px;font-size:10px;white-space:nowrap; }

    .ft-bet-panel { gap:9px;margin-top:8px;padding:11px;border-radius:13px; }
    .ft-bet-sides { position:relative;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px; }
    .ft-bet-side { min-width:0;min-height:112px;padding:10px 8px;gap:7px;touch-action:manipulation; }
    .ft-bet-versus { position:absolute;z-index:2;left:50%;top:50%;display:grid;width:28px;height:28px;place-items:center;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.1);border-radius:50%;background:#1a1220;font-size:8px;pointer-events:none; }
    .ft-bet-side-head,.ft-bet-pool { min-width:0;gap:4px; }
    .ft-bet-side-head b { min-width:0;font-size:11px; }
    .ft-bet-side-head em,.ft-bet-pool strong { font-size:10px; }
    .ft-bet-pool small { font-size:8px;letter-spacing:.03em; }
    .ft-bet-cta { font-size:8px;letter-spacing:.04em; }
    .ft-bet-form .ft-value-field { flex:1 1 100%; }
    .ft-result-book-split { grid-template-columns:repeat(3,minmax(0,1fr));gap:5px; }
    .ft-result-book-split span { min-width:0;padding:7px 3px; }
    .ft-result-book-split small { font-size:7px;letter-spacing:0; }
    .ft-bet-mine { min-width:0;padding:9px; }
    .ft-bet-mine-copy strong { overflow-wrap:anywhere; }
    .ft-bet-note { font-size:9px;line-height:1.4; }
    .ft-live-fighters { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px; }
    .ft-live-row-bottom { flex-wrap:wrap; }
    .ft-live-watch { min-height:40px;margin-left:auto;touch-action:manipulation; }

    .ft-lobby { display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:0; }
    .ft-lobby-intro { margin:0;padding:3px 3px 2px; }
    .ft-lobby-intro span { font-size:9px; }
    .ft-lobby-intro h2 { margin:4px 0;font-size:clamp(19px,5.5vw,23px);line-height:1.15; }
    .ft-lobby-intro p { font-size:11px;line-height:1.5; }

    .ft-rank-strip {
        display:grid;
        grid-template-columns:42px minmax(0,1fr);
        align-items:center;
        gap:10px;
        padding:12px;
        border-radius:16px;
    }
    .ft-rank-badge { width:42px;height:42px;grid-column:1;grid-row:1;flex-basis:42px;border-radius:13px; }
    .ft-rank-copy { grid-column:2;grid-row:1; }
    .ft-rank-copy small { font-size:8px; }
    .ft-rank-copy strong { font-size:14px; }
    .ft-rank-copy span { font-size:10px;line-height:1.35; }
    .ft-rank-stats { grid-column:1 / -1;width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px; }
    .ft-rank-stats > div { min-width:0;padding:7px 3px;border-radius:9px; }
    .ft-rank-stats b { font-size:14px; }
    .ft-rank-stats small { max-width:100%;font-size:7px;letter-spacing:.035em;text-align:center;overflow-wrap:anywhere; }

    .ft-skin-picker { padding:10px;border-radius:14px;gap:8px; }
    .ft-skin-heading > span { width:32px;height:32px;flex-basis:32px; }
    .ft-skin-heading strong { font-size:12px; }
    .ft-skin-heading small { font-size:8px; }
    .ft-skin-options { grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:82px;gap:6px;overflow-x:auto;padding-bottom:2px;scroll-snap-type:x proximity;scrollbar-width:none; }
    .ft-skin-options::-webkit-scrollbar { display:none; }
    .ft-skin-option { flex-direction:column;gap:4px;padding:6px 4px;text-align:center;scroll-snap-align:start; }
    .ft-skin-option > i { width:46px;height:46px;flex-basis:46px; }
    .ft-skin-option b { width:100%;font-size:8px; }

    .ft-lobby-card { width:100%;min-width:0;padding:14px;gap:10px;border-radius:16px; }
    .ft-lobby-card-icon { width:32px;height:32px; }
    .ft-lobby-title { font-size:15px; }
    .ft-lobby-heading small { font-size:10px; }
    .ft-stake-row { align-items:stretch;flex-direction:column;gap:8px; }
    .ft-value-field { width:100%;height:46px;padding-right:12px;box-sizing:border-box; }
    .ft-value-field .ft-input { width:auto;min-width:0;height:44px;flex:1;padding:0 12px;font-size:16px!important; }
    .ft-code-field { height:48px;padding-left:12px;box-sizing:border-box; }
    .ft-code-field .ft-input { height:46px;padding:0 10px;font-size:17px!important; }
    .ft-quick-stakes { grid-template-columns:repeat(4,minmax(0,1fr));gap:6px; }
    .ft-quick { min-height:42px;padding:6px 2px;border-radius:10px; }
    .ft-room-limits { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:8px; }
    .ft-room-limits > div { min-width:0;gap:6px;padding:3px; }
    .ft-limit-copy small { display:none; }
    .ft-room-limits strong { font-size:13px; }
    .ft-public-toggle { align-items:flex-start;padding:10px;border-radius:11px; }
    .ft-public-toggle input { margin-top:3px;flex:0 0 auto; }
    .ft-public-copy strong { line-height:1.5; }
    .ft-public-copy em { display:inline-block;margin-left:3px;padding:1px 4px;font-size:7px; }
    .ft-public-copy small { margin-top:2px;font-size:9px;line-height:1.4; }
    .ft-btn { min-height:46px;border-radius:11px; }

    .ft-rules-mini { padding:10px;border-radius:11px; }
    .ft-rules-title { margin-bottom:7px;font-size:8px; }
    .ft-rules-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px; }
    .ft-rule-lane { display:flex;min-width:0;align-items:center;flex-direction:column;gap:3px;padding:8px 3px;border-radius:9px;background:rgba(255,255,255,.035);text-align:center; }
    .ft-rule-lane i { font-size:14px; }
    .ft-rule-lane b { font-size:10px; }
    .ft-rule-lane em { display:none; }
    .ft-rule-lane small { max-width:100%;justify-self:auto;padding:2px 5px;font-size:8px;overflow-wrap:anywhere; }

    .ft-public-card,.ft-hall-card { padding:12px;border-radius:16px; }
    .ft-public-heading { align-items:flex-start;margin-bottom:10px; }
    .ft-public-title { min-width:0;gap:8px; }
    .ft-public-title-icon { width:34px;height:34px;flex:0 0 34px;border-radius:11px; }
    .ft-public-title > span { min-width:0; }
    .ft-public-title small { font-size:7px; }
    .ft-public-title strong { font-size:13px; }
    .ft-public-title em { font-size:9px; }
    .ft-public-tools { flex:0 0 auto;gap:5px; }
    .ft-public-count { padding:4px 7px;font-size:9px;white-space:nowrap; }
    .ft-public-tools button { width:34px;height:34px; }
    .ft-public-list { grid-template-columns:minmax(0,1fr);gap:8px; }
    .ft-public-row { padding:11px;border-radius:12px; }
    .ft-public-join { min-height:40px;padding:8px 12px; }
    .ft-hall-heading { align-items:flex-start;flex-direction:column;gap:2px; }
    .ft-hall-row { grid-template-columns:24px minmax(0,1fr) auto;gap:7px;padding:8px; }
    .ft-hall-record { display:none; }
    .ft-lobby-hint { align-items:flex-start;padding:4px 3px;font-size:10px;line-height:1.45; }

    .ft-room { min-width:0; }
    .ft-topbar { display:grid;grid-template-columns:minmax(0,1fr);gap:7px;margin-bottom:8px;padding:8px;border-radius:13px; }
    .ft-topbar-left,.ft-topbar-right { width:100%;min-width:0;gap:6px;flex-wrap:wrap; }
    .ft-topbar-right { justify-content:space-between; }
    .ft-room-code { font-size:9px; }
    .ft-topbar-left b { font-size:11px; }
    .ft-room-meta { font-size:9px; }
    .ft-hash { min-width:0;max-width:none;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px; }
    .ft-invite-button { min-height:40px;justify-content:center;touch-action:manipulation; }
    .ft-btn-small { min-height:40px;padding:6px 11px;touch-action:manipulation; }
    .ft-invite-join { align-items:stretch;flex-direction:column;margin-bottom:8px;padding:11px;border-radius:13px; }
    .ft-invite-join-copy { min-width:0; }
    .ft-invite-join-copy strong { font-size:14px; }
    .ft-invite-join-copy small { font-size:10px; }
    .ft-join-room-button { width:100%;min-height:46px;justify-content:center; }

    .ft-arena { gap:8px;padding:8px;border-radius:16px; }
    .ft-arena > .ft-opening-draw { position:absolute;padding:8px; }
    .ft-draw-card { gap:7px;padding:16px 12px 13px;border-radius:16px; }
    .ft-draw-title { font-size:18px; }
    .ft-draw-sub { font-size:9px; }
    .ft-draw-coin { width:82px;height:82px;margin:7px 0 4px; }
    .ft-draw-coin b,.ft-draw-coin i { border-width:3px;font-size:23px; }
    .ft-draw-coin-avatar { width:44px;height:44px; }
    .ft-draw-coin b > em,.ft-draw-coin i > em { width:58px;font-size:6px; }
    .ft-draw-role { padding:8px 5px; }
    .ft-draw-role b { font-size:11px; }
    .ft-draw-role span { font-size:7px;letter-spacing:.04em; }
    .ft-draw-proof { font-size:8px; }
    .ft-banner { min-height:48px;padding:7px;border-radius:11px;box-sizing:border-box; }
    .ft-banner-eyebrow { font-size:7px;letter-spacing:.12em; }
    .ft-banner strong { max-width:100%;font-size:14px;line-height:1.2; }
    .ft-scoreboard { grid-template-columns:repeat(2,minmax(0,1fr));gap:6px; }
    .ft-score { min-width:0;gap:6px;padding:8px;border-radius:11px; }
    .ft-score-0 { grid-column:1;grid-row:1; }
    .ft-score-1 { grid-column:2;grid-row:1; }
    .ft-score-id { gap:6px; }
    .ft-score-avatar:empty { width:30px;height:30px;border-radius:9px; }
    .ft-score-person b { font-size:11px; }
    .ft-score-person small { font-size:8px; }
    .ft-health { width:100%;gap:3px; }
    .ft-health i { width:auto;min-width:0;height:9px;flex:1; }
    .ft-versus { grid-column:1 / -1;grid-row:2;min-height:28px;flex-direction:row;justify-content:center;gap:8px; }
    .ft-versus b { width:30px;height:30px;border-width:1px;font-size:9px; }
    .ft-turn-counter,.ft-pot { min-width:58px;font-size:9px; }
    .ft-turn-counter { text-align:right; }

    .ft-stage { width:100%;max-width:100%;min-height:210px;gap:clamp(14px,4vw,32px);padding:10px 5px 22px;border-radius:12px;box-sizing:border-box; }
    .ft-stage-floor { height:42px; }
    .ft-stage-glow { bottom:24px;width:240px;height:130px;margin-left:-120px; }
    .ft-exchange-verdict { top:50%;min-width:156px;grid-template-columns:31px auto;padding:6px 10px 6px 8px;border-radius:10px; }
    .ft-exchange-verdict > i { width:25px;height:25px;font-size:13px; }
    .ft-exchange-verdict strong { font-size:17px; }
    .ft-exchange-verdict small { max-width:135px;font-size:7px; }
    .ft-strike-trail { width:132px;height:28px; }
    .ft-strike-trail i { top:11px;height:6px; }
    .ft-strike-trail b { top:2px;width:24px;height:24px; }
    .ft-ko-flash { top:22%;width:118px;height:72px; }
    .ft-ko-flash b { font-size:38px; }
    .ft-fighter { width:88px;min-width:0;flex:0 0 88px; }
    /* Scaling a transform does not reduce its layout box. Pull that invisible
       space back out so the fighters fit the phone stage without being clipped
       or pushing the action controls below the fold. */
    .ft-figure { margin-top:-66px;transform:scaleX(var(--ft-flip,1)) scale(.66);transform-origin:50% 100%; }
    .ft-timer-dial { width:54px;height:54px;margin-bottom:36px; }
    .ft-timer-dial svg { width:54px;height:54px; }
    .ft-timer-dial b { font-size:16px; }
    .ft-stage-rematch { bottom:10px;width:min(240px,calc(100% - 18px)); }
    .ft-stage-rematch .social-rematch-button { min-height:48px;border-radius:13px;font-size:11px; }
    .ft-callout { top:18px;padding:4px 8px;font-size:9px; }
    .ft-fx { width:70px;height:70px;margin-left:-35px; }
    .ft-fighter.is-hit-high .ft-fx,.ft-fighter.is-blocked-high .ft-fx { top:8px; }
    .ft-fighter.is-hit-mid .ft-fx,.ft-fighter.is-blocked-mid .ft-fx { top:48px; }
    .ft-fighter.is-hit-low .ft-fx,.ft-fighter.is-blocked-low .ft-fx { top:90px; }

    .ft-controls {
        position:sticky;
        z-index:20;
        bottom:max(6px,env(safe-area-inset-bottom));
        gap:7px;
        padding:9px;
        border-radius:13px;
        background:rgba(28,18,38,.97);
        box-shadow:0 16px 38px rgba(0,0,0,.42);
        -webkit-backdrop-filter:blur(16px);
        backdrop-filter:blur(16px);
    }
    .ft-role { min-height:22px;font-size:9px;letter-spacing:.06em; }
    .ft-moves { gap:6px; }
    .ft-move { min-height:66px;padding:7px 3px;border-radius:11px;touch-action:manipulation; }
    .ft-move small { display: none; }
    .ft-move b { font-size:11px; }
    .ft-move-icon { width:31px;height:31px;margin:0;border-radius:9px;font-size:14px; }
    .ft-controls-hint { font-size:9px;line-height:1.35; }
    .ft-result { margin-top:8px;padding:16px 12px;border-radius:13px; }
    .ft-result strong { font-size:20px; }
    .ft-result-line { font-size:11px; }
    .ft-clean-sweep { grid-template-columns:45px minmax(0,1fr);gap:9px;padding:11px;border-radius:13px; }
    .ft-clean-icon { width:42px;height:42px;border-radius:13px;font-size:18px; }
    .ft-clean-copy small { font-size:7px; }
    .ft-clean-copy strong { font-size:15px; }
    .ft-clean-copy p { font-size:9px;line-height:1.38; }
    .ft-result-showdown { grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);gap:5px;margin-top:7px; }
    .ft-result-fighter { gap:4px;padding:11px 6px 10px;border-radius:12px; }
    .ft-result-verdict { font-size:7px;letter-spacing:.05em; }
    .ft-result-avatar { width:46px;height:46px;border-radius:14px; }
    .ft-result-fighter strong { max-width:100%;font-size:12px; }
    .ft-result-money { font-size:18px; }
    .ft-result-fighter.is-loser .ft-result-money { font-size:15px; }
    .ft-result-fighter em { min-height:22px;display:flex;align-items:center;font-size:8px;line-height:1.25; }
    .ft-result-divider { width:28px;height:28px;font-size:10px; }
    .ft-log-panel { margin-top:8px;padding:10px;border-radius:12px; }
    .ft-log { max-height:128px; }
    .ft-log-line { gap:6px;padding:6px 7px;font-size:10px; }}
@media (max-width: 480px) {
    .ft-invite-button { width: 31px; min-width: 31px; flex: 0 0 31px; padding: 0; }
    .ft-invite-button span { display: none; }
    .ft-how-button,.ft-top-fair { width:40px;padding:0; }
    .ft-how-button span,.ft-top-fair span { display:none; }
    .ft-room-meta { order:9;width:100%; }
    .ft-public-title em { display:none; }
    .ft-bet-side { min-height:98px;padding:9px 7px; }
    .ft-bet-cta { display:none; }
    .ft-bet-form { gap:7px; }
    .ft-bet-quick .ft-quick { min-height:40px;font-size:11px; }
    .ft-stage { min-height:196px;gap:clamp(10px,3vw,18px); }
    .ft-figure { margin-top:-82px;transform:scaleX(var(--ft-flip,1)) scale(.58);transform-origin:50% 100%; }
    .ft-fighter { width:78px;flex-basis:78px; }
    .ft-fighter.is-hit-high .ft-fx,.ft-fighter.is-blocked-high .ft-fx { top:4px; }
    .ft-fighter.is-hit-mid .ft-fx,.ft-fighter.is-blocked-mid .ft-fx { top:38px; }
    .ft-fighter.is-hit-low .ft-fx,.ft-fighter.is-blocked-low .ft-fx { top:74px; }
    .ft-result-actions { align-items: stretch; flex-direction: column; }
    .ft-result-actions button { width: 100%; }}
@media (max-width: 350px) {
    .ft-page { padding-right:7px;padding-left:7px; }
    .ft-page-identity h1 { font-size:18px; }
    .ft-page-kicker { display:none; }
    .ft-page-icon { width:38px;height:38px;flex-basis:38px; }
    .ft-rank-strip,.ft-lobby-card,.ft-public-card,.ft-hall-card { border-radius:13px; }
    .ft-public-count { display:none; }
    .ft-stage { min-height:184px; }
    .ft-figure { margin-top:-94px;transform:scaleX(var(--ft-flip,1)) scale(.52);transform-origin:50% 100%; }
    .ft-fighter { width:70px;flex-basis:70px; }
    .ft-fighter.is-hit-high .ft-fx,.ft-fighter.is-blocked-high .ft-fx { top:2px; }
    .ft-fighter.is-hit-mid .ft-fx,.ft-fighter.is-blocked-mid .ft-fx { top:34px; }
    .ft-fighter.is-hit-low .ft-fx,.ft-fighter.is-blocked-low .ft-fx { top:66px; }
    .ft-timer-dial { width:46px;height:46px; }
    .ft-timer-dial svg { width:46px;height:46px; }
    .ft-move { min-height:62px; }}

@media (max-width: 900px) and (max-height: 600px) and (orientation: landscape) {
    .ft-draw-card { width:min(620px,100%);gap:4px;padding:8px 12px;border-radius:14px; }
    .ft-draw-kicker { font-size:7px; }
    .ft-draw-title { font-size:15px; }
    .ft-draw-sub { display:none; }
    .ft-draw-coin { width:50px;height:50px;margin:1px 0; }
    .ft-draw-coin b,.ft-draw-coin i { font-size:17px; }
    .ft-draw-coin-avatar { width:30px;height:30px;border-width:1px; }
    .ft-draw-coin b > em,.ft-draw-coin i > em { display:none; }
    .ft-draw-role { padding:5px; }
    .ft-draw-proof { font-size:7px; }
    .ft-draw-countdown { min-height:12px;font-size:9px; }
    .ft-topbar { grid-template-columns:minmax(0,1fr) auto; }
    .ft-topbar-right { width:auto;justify-content:flex-end; }
    .ft-hash { max-width:150px; }
    .ft-arena { display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.8fr);grid-template-areas:"banner banner" "score controls" "stage controls";align-items:stretch;gap:7px;padding:7px; }
    .ft-banner { grid-area:banner;min-height:36px; }
    .ft-scoreboard { grid-area:score;align-self:start; }
    .ft-stage { grid-area:stage;min-height:178px;padding-top:4px;padding-bottom:18px; }
    .ft-controls { grid-area:controls;position:static;align-self:stretch;justify-content:center; }
    .ft-moves { grid-template-columns:minmax(0,1fr); }
    .ft-move { min-height:48px;display:grid;grid-template-columns:31px minmax(0,1fr);text-align:left; }
    .ft-move-icon { grid-column:1;grid-row:1;width:29px;height:29px;margin:0; }
    .ft-move b { grid-column:2;grid-row:1; }
    .ft-controls-hint { display:none; }}

@media (hover:none) and (pointer:coarse) {
    .ft-move:not(:disabled):hover,.ft-bet-side:not(:disabled):hover,.ft-public-row:hover,.ft-how-button:hover,.ft-top-fair:hover,.ft-quick:hover,.ft-btn:hover { transform:none;filter:none;box-shadow:none; }}

@media (prefers-reduced-motion: reduce) {
    .ft-page * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
    .ft-character-sprite { background-image:var(--ft-sprite-atlas);background-position:32px 0;background-size:768px 768px; }
    .ft-fighter.is-attack-high .ft-character-sprite { background-image:var(--ft-sprite-atlas);background-position:-224px 0; }
    .ft-fighter.is-attack-mid .ft-character-sprite { background-image:var(--ft-sprite-atlas);background-position:-480px 0; }
    .ft-fighter.is-attack-low .ft-character-sprite { background-image:var(--ft-sprite-atlas);background-position:32px -256px; }
    .ft-fighter.is-guard-duck .ft-character-sprite { background-image:var(--ft-sprite-atlas);background-position:-224px -256px; }
    .ft-fighter.is-guard-block .ft-character-sprite { background-image:var(--ft-sprite-atlas);background-position:-480px -256px; }
    .ft-fighter.is-guard-jump .ft-character-sprite { height:256px;background-image:var(--ft-sprite-atlas);background-position:32px -512px; }}

/* Coin Flip mobile game scene ------------------------------------------- */
@media (max-width:768px) and (orientation:portrait) {
    body.is-game-page .cf-page .cf-actions.hidden { display:none!important; }}

/* Chicken mobile game scene --------------------------------------------- */
@media (max-width:768px) and (orientation:portrait) {
    body.is-game-page .ck-page .ck-actions.hidden { display:none!important; }}

/* Blackjack mobile game scene ------------------------------------------- */
@media (max-width:768px) and (orientation:portrait) {
    body.is-game-page .bj-page .bj-actions.hidden { display:none!important; }}

/* Poker mobile table ---------------------------------------------------- */
@media (max-width:768px), (pointer:coarse) and (max-width:1199px) and (max-height:600px) and (orientation:landscape) {
    body.is-game-page .poker-page .pk-lobby.hidden { display:none!important; }
    body.is-game-page .poker-page .pk-bottombar.hidden { display:none!important; }
    body.is-game-page .poker-page .pk-actions.hidden { display:none!important; }}

/* Case Battles mobile app ---------------------------------------------- */
@media (max-width:768px), (pointer:coarse) and (max-width:1199px) and (max-height:600px) and (orientation:landscape) {
    body.is-game-page .cb-page .cb-lobby.hidden { display:none!important; }
    body.is-game-page .cb-page .cb-room.hidden { display:none!important; }
    body.is-game-page .cb-page .cb-invite-join.hidden { display:none!important; }}

/* Aviamasters mobile flight scene -------------------------------------- */
@media (max-width:768px) and (orientation:portrait) {

    body.is-game-page .av-page .av-autobet-segment:has(.av-autobet-panel:not(.hidden)) {
        position:fixed!important;z-index:9500!important;right:max(8px,var(--mobile-safe-right,0px))!important;bottom:calc(var(--mobile-tabs-h,64px) + var(--mobile-safe-bottom,0px) + 8px)!important;
        left:max(8px,var(--mobile-safe-left,0px))!important;width:auto!important;height:auto!important;max-height:min(64dvh,470px)!important;padding:10px!important;
        display:flex!important;flex-direction:column!important;gap:8px!important;overflow-y:auto!important;border-color:rgba(178,112,235,.3)!important;border-radius:17px!important;
        background:linear-gradient(155deg,#21172e,#100d18 76%)!important;box-shadow:0 24px 70px rgba(0,0,0,.65)!important;
    }}

@media (max-width:768px) and (orientation:landscape), (pointer:coarse) and (max-width:1199px) and (max-height:600px) and (orientation:landscape) {
    body.is-game-page .av-page .av-autobet-segment:has(.av-autobet-panel:not(.hidden)) {
        position:fixed!important;z-index:9500!important;inset:8px!important;width:auto!important;height:auto!important;max-height:calc(100dvh - 16px)!important;padding:9px!important;
        display:flex!important;flex-direction:column!important;gap:6px!important;overflow-y:auto!important;border-radius:15px!important;background:linear-gradient(155deg,#21172e,#100d18 76%)!important;box-shadow:0 24px 70px rgba(0,0,0,.65)!important;
    }}
.bnz-free-banner:not(.hidden) { animation:bnz-free-aura 1.65s ease-in-out infinite; }
.nv-page .hidden { display: none !important; }
.nv-field-icon .fa-users, .nv-field-icon .fa-money { margin-top: 8px; }
.nv-public-title-icon > .fa { display: block; width: 1em; height: 1em; margin-top: 12px; font-size: 16px; line-height: 1; text-align: center; }
.nv-gauge.is-live .nv-pressure-vignette { opacity: 1; animation: nerve-vignette var(--nv-pulse-speed) ease-in-out infinite; }
.nv-gauge.is-live .nv-nerve-ball { animation: nerve-ball-breathe var(--nv-pulse-speed) ease-in-out infinite; }
.nv-gauge.is-live .nv-pressure-ring { animation: nerve-ring 2.2s ease-out infinite; animation-duration: calc(var(--nv-pulse-speed) * 1.7); }
.nv-gauge.is-live .nv-multiplier { color: var(--nv-lime); }
.nv-gauge.is-live.is-warm .nv-multiplier { color: var(--nv-amber); text-shadow: 0 0 42px rgba(255,180,95,.36); }
.nv-gauge.is-live.is-hot .nv-multiplier { color: var(--nv-red); text-shadow: 0 0 48px rgba(255,95,109,.44); animation: nerve-pulse 1.1s ease-in-out infinite; }

@media (prefers-reduced-motion:reduce) {
    .nv-gauge.is-live .nv-pressure-vignette,
    .nv-gauge.is-live .nv-nerve-ball,
    .nv-gauge.is-live .nv-pressure-ring,
    .nv-gauge.is-critical .nv-ball-scene,
    .nv-player-orbit i.is-holding,
    .nv-ball-core,
    .nv-countdown-overlay.is-beat .nv-countdown-number { animation:none!important; }}
.rv-page .hidden { display: none !important; }
.rv-public-title-icon > .fa { display: block; width: 1em; height: 1em; margin-top: 12px; font-size: 16px; line-height: 1; text-align: center; }
.rv-drum.is-live { border-color: rgba(232,185,106,.28); }
.rv-chamber.is-live { border-color: var(--rv-red); background: radial-gradient(circle at 40% 35%,rgba(255,79,94,.5),rgba(60,8,14,.95)); box-shadow: 0 0 26px rgba(255,79,94,.5); opacity: 1; }
.rv-chamber.is-live i { background: #fff; box-shadow: 0 0 12px rgba(255,255,255,.8); }
.rv-chamber.is-firing.is-live { animation:revolver-live-strike .92s cubic-bezier(.16,.8,.2,1); }
.rv-result-chamber.is-live { border-color: var(--rv-red); background: rgba(255,79,94,.2); color: #fff; box-shadow: 0 0 16px rgba(255,79,94,.35); }
.bd-page .hidden { display: none !important; }
.bd-public-title-icon > .fa { display: block; width: 1em; height: 1em; margin-top: 12px; font-size: 16px; line-height: 1; text-align: center; }
.bd-figure.is-live { opacity: 1; }