/* Match screen (full stage 1672x941) */
#content.full>*{position:absolute}
.mbg{border:0!important;border-radius:0!important;box-shadow:none!important;background-size:cover}
.stagep{left:0;top:0;width:1672px;height:941px;pointer-events:none;z-index:1}
.pair{position:absolute;left:546px;top:292px;width:580px;height:435px;transform:translateX(calc(var(--tx,0)*1px)) scale(var(--ts,1));animation:mdrift calc(var(--dur,520)*1ms) cubic-bezier(.3,.8,.3,1) both;animation-delay:calc(var(--el,0)*-1ms)}
.pbob{position:absolute;inset:0}.pair .ly{position:absolute;left:0;top:0;width:100%;height:100%;display:block;transform-origin:50% 92%}
.pair .np{position:absolute;bottom:-6px;padding:1px 12px;font-size:19px;border:2px solid #0006;border-radius:6px;color:#fff;box-shadow:0 2px 0 #0007}
.np.pu{background:#5b2b78}.np.bl{background:#2b5aa0}
@keyframes mshake{0%,100%{margin-left:0}20%{margin-left:-7px}40%{margin-left:6px}60%{margin-left:-4px}80%{margin-left:3px}}
body.rm .pair,body.rm .cap,body.rm .mres{animation:none!important;transition:none!important}
.zones{position:absolute;left:0;top:0;width:1672px;height:941px;z-index:0;pointer-events:none}
.mlogo{left:10px;top:4px;height:104px;z-index:2}
.keyhint{left:640px;top:722px;width:400px;text-align:center;font-size:15px;color:#f4e6c4;text-shadow:0 1px 2px #000;z-index:3}
/* header */
.ttl,.mdv{top:8px;height:48px;z-index:3;display:flex;align-items:center;justify-content:center;border:3px solid var(--brown);border-radius:10px;background:url(../assets/tex_washi.jpg);background-size:380px;box-shadow:0 3px 0 rgba(0,0,0,.4)}
.ttl{left:520px;width:640px;font-size:24px}.mdv{left:1180px;width:360px;gap:22px;font-size:22px;color:#7d1d19;justify-content:space-around}.mdv svg{width:22px;height:22px;stroke:#2a1c12;fill:none;stroke-width:2.2;vertical-align:-4px}
.mlive{left:548px;top:64px;width:580px;height:122px;z-index:3;border:3px solid var(--brown);border-radius:10px;background:url(../assets/tex_washi.jpg);background-size:380px;box-shadow:0 3px 0 rgba(0,0,0,.4)}
.mlive h2{position:absolute;left:150px;top:-26px;width:280px;height:42px;text-align:center;font-size:34px;color:var(--cream);background:linear-gradient(#b8352c,#951f19);border:3px solid #5a1612;border-radius:8px;line-height:38px}
.mlive .bp{position:absolute;left:14px;top:22px;width:410px}.bpl{font-size:20px;margin:4px 0 8px}.bpc{display:flex;gap:4px}
.bpc i{flex:1;font-style:normal;text-align:center;font-size:16px;border:2px solid var(--brown);border-radius:12px;padding:2px 0;background:#e9dab4;color:#6a5640}
.bpc i.past{background:#cdb98a}.bpc i.on{background:linear-gradient(#c0392b,#8f1f1a);color:#fff;border-color:#5a1612}
.mlive .mtm{position:absolute;right:10px;top:14px;width:128px;height:92px;background:#161312;border-radius:8px;border:3px solid #5b3d28;color:#f4ead0;text-align:center}
.mtm small{display:block;font-size:17px;margin-top:4px}.mtm b{font-family:'Brush';font-size:50px;font-weight:400;line-height:1}
/* fighter HUD */
.mf{top:124px;width:342px;z-index:3;display:flex;flex-direction:column;gap:6px}.mf.L{left:8px}.mf.R{right:8px}
.mf>div{border:3px solid var(--brown);border-radius:10px;background:url(../assets/tex_washi.jpg);background-size:380px;box-shadow:0 3px 0 rgba(0,0,0,.4),inset 0 0 14px rgba(120,80,30,.25)}
.mfh{position:relative;display:grid;grid-template-columns:100px 1fr;grid-template-rows:60px 28px;padding:6px;align-items:center;background-image:repeating-conic-gradient(from 0deg at 25% 40%,rgba(192,57,43,.16) 0 7deg,transparent 7deg 14deg),url(../assets/tex_washi.jpg)!important}
.mfh .face{grid-row:1/3;width:98px;height:98px}
.mfn{background:#16213a;color:#fff;border-radius:6px;padding:4px 10px;display:flex;justify-content:space-between;align-items:center;margin-left:8px;border:2px solid #0b1424}
.mfn b{font-family:'Brush';font-weight:400;font-size:30px;line-height:1}.mfn .kj{font-size:19px;opacity:.8}
.mfh.theirs .mfn{background:#1f3a66}
.mfr{margin-left:8px;color:#7d1d19;font-size:19px;text-align:right;padding-right:4px}
.mfs{padding:8px 12px}.mfb{display:grid;grid-template-columns:82px 1fr 64px;align-items:center;gap:6px;margin-bottom:6px;font-size:19px}.mfb em{font-style:normal;text-align:right;font-size:20px}.mfb small{font-size:14px;color:#6a5640}
.mfb .bar{height:15px}
.mfk{display:flex;justify-content:space-between;font-size:20px;padding:1px 6px}.mfk b{font-weight:400}
.mfg,.mfp{padding:6px 12px 8px}.mf h4{margin:0 0 4px;font-family:'Brush';font-weight:400;font-size:24px;color:#a82a24}
.gp{display:flex;gap:8px;align-items:center;font-size:17px}.gp i{flex:none;width:76px;height:58px;background-size:contain;background-repeat:no-repeat;background-position:center;opacity:.9}.gp span{display:block;margin:2px 0}
.mfl{display:flex;align-items:center;gap:10px}.mfl .bar{flex:1;height:22px}.mfl b{font-family:'Brush';font-weight:400;font-size:36px;min-width:72px;text-align:right}
/* caption */
.cap{left:420px;width:830px;top:196px;text-align:center;z-index:5;pointer-events:none;animation:cin .5s ease-out}
.cap{display:block}
.cap::before{content:"";display:none}
.cap{font-size:30px;font-family:'Brush';padding:6px 26px;background:url(../assets/tex_washi.jpg);background-size:360px;border:3px solid var(--brown);border-radius:10px;box-shadow:0 5px 12px rgba(0,0,0,.6);width:auto;left:50%;transform:translateX(-50%);max-width:820px;white-space:normal}
@keyframes cin{from{opacity:0;margin-top:-14px}}
/* tactical bottom */
.cwrap{left:30px;top:742px;width:452px;height:190px;z-index:3}.coach{position:absolute;inset:0}
.coach .panel{border-radius:14px}.cv{display:flex;gap:10px;height:100%;align-items:center;padding:0 2px}.cv img{width:128px;height:128px;object-fit:cover;border:3px solid var(--brown);border-radius:8px;flex:none}.cv p{margin:0;font-size:21px;line-height:1.1}
.cwrap .pb{padding:6px 10px}
.tac{left:490px;top:742px;width:990px;height:190px;z-index:3}
.tac .ph{min-height:36px;padding-right:12px}.tac .ph>span:first-of-type{flex:1 0 160px}.tac .ph .sub{margin-left:0;flex:1 1 140px;min-width:0}
.tac .tpg{flex:none;font-size:16px;gap:5px;padding:1px 6px}
.tpg{margin-left:auto;display:flex;align-items:center;gap:8px;font-family:'Hand';font-size:18px;text-shadow:none;color:var(--ink);background:#f1e4c3;padding:1px 12px;border-radius:7px;border:2px solid var(--brown)}
.tpg div{display:flex;gap:3px}.tpg i{width:22px;height:14px;background:#d6c496;border:2px solid var(--brown);border-radius:3px}.tpg i.on{background:linear-gradient(#f2c53d,#e0a82a)}.tpg b{font-weight:400;font-size:20px}
.cmds{display:flex;gap:8px;padding:6px 8px;flex:1}
.cmd{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:2px 4px;border:3px solid var(--brown);border-radius:9px;background:url(../assets/tex_washi.jpg);background-size:300px;box-shadow:0 3px 0 rgba(0,0,0,.35);text-align:center;min-width:0}
.cmd:hover:not(:disabled){transform:translateY(-3px);border-color:#e0a82a;box-shadow:0 0 14px #f6c94b}
.cmd .mci{position:absolute;left:8px;top:6px}.mi{width:34px;height:34px;stroke:#a82a24;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.cmd b{font-family:'Brush';font-weight:400;font-size:31px;margin-top:2px;line-height:1.05}.cmd u{display:block;width:80%;border-top:2px solid #a98d63;margin:2px 0 3px}
.cmd span{font-size:17px;line-height:1.05}.cmd small{font-size:14.5px;color:#6a5640;line-height:1.05;margin-top:2px}
.cmd kbd{position:absolute;right:6px;top:5px;font:16px 'Hand';background:#2a1c12;color:#f1e4c3;border-radius:4px;padding:0 6px}
.cmd .mcost{position:absolute;left:10px;bottom:9px;font-style:normal;font-size:14px;color:#7d1d19}
.cmd.off{opacity:.5;cursor:not-allowed}.cmd.last{border-color:#e0a82a;box-shadow:0 0 12px #f6c94b}
.mlog{left:1490px;top:742px;width:176px;height:190px;z-index:3;padding:6px 8px;border:3px solid var(--brown);border-radius:10px;background:url(../assets/tex_washi.jpg);background-size:360px;overflow:hidden}
.mlog h4{margin:0 0 3px;font-family:'Brush';font-weight:400;font-size:22px;color:#a82a24}.mlog p{margin:0 0 3px;font-size:14.5px;line-height:1.05;color:#5b4a38}.mlog p.cur{color:var(--ink)}
/* result */
.mres{left:536px;top:150px;width:600px;z-index:20;padding:16px 30px 22px;text-align:center;border:5px solid var(--brown);border-radius:14px;background:url(../assets/tex_washi.jpg);background-size:420px;box-shadow:0 14px 40px rgba(0,0,0,.7),inset 0 0 40px rgba(120,80,30,.35);animation:cin .6s ease-out}
.mres .mrh{font-family:'Brush';font-size:44px;color:#2e5a1b;letter-spacing:4px}.mres.lost .mrh{color:#7d1d19}
.rw{display:flex;gap:14px;align-items:center;justify-content:center;text-align:left}.rw small{display:block;color:#6a5640}.rw b{font-size:38px;font-weight:400}
.mrk{display:flex;align-items:baseline;justify-content:center;gap:18px;margin:6px 0 0}.mrk .brush{font-size:74px;color:#a82a24;text-shadow:0 3px 0 rgba(0,0,0,.18);line-height:1}.mrk .kj{font-size:36px}
.rd{margin:4px 0;font-size:21px}.rwhy{margin:6px 0;font-size:20px;color:#3b2a1a;background:rgba(255,246,223,.6);border:2px dotted #a98d63;border-radius:8px;padding:5px 10px}.rrec{margin:8px 0 12px;font-size:20px}
/* finish layout */
.fbanner{left:378px;top:20px;width:900px;height:130px;z-index:3;display:grid;grid-template-columns:1fr 130px 1fr}
.fbanner>div{display:flex;flex-direction:column;justify-content:center;padding:0 40px;border:3px solid var(--brown);color:#fff;box-shadow:0 3px 0 rgba(0,0,0,.4)}
.fbanner .est{background:linear-gradient(#b8352c,#7d1d19);border-radius:12px 0 0 12px;text-align:center}.fbanner .wst{background:linear-gradient(#2c4a7a,#17294a);border-radius:0 12px 12px 0;text-align:center}
.fbanner small{font-size:19px;opacity:.9}.fbanner .brush{font-size:44px;line-height:1}.fbanner span{font-size:18px}
.fbanner .mvs{background:url(../assets/tex_washi.jpg);background-size:300px;color:var(--ink);text-align:center;padding:0;border-radius:0}.mvs i{font-style:normal;background:#b3261e;color:#fff;border-radius:6px;margin:0 22px;font-size:20px;padding:0 4px}.mvs .brush{font-size:50px;color:#7d1d19}.mvs small{color:var(--ink);font-size:15px}
.fdiv{left:1300px;top:32px;width:340px;height:66px;z-index:3;display:flex;flex-direction:column;justify-content:center;padding:0 20px;border:3px solid var(--brown);border-radius:10px;background:url(../assets/tex_washi.jpg);background-size:320px}.fdiv b{font-family:'Brush';font-weight:400;font-size:28px}.fdiv small{font-size:16px;color:#6a5640}
.gauge{top:164px;z-index:3;width:420px;height:62px;padding:4px 14px;border:3px solid var(--brown);border-radius:10px;background:url(../assets/tex_washi.jpg);background-size:320px;font-size:21px}.gauge.crowd{left:340px}.gauge.judge{left:1000px;width:340px}.gauge b{font-weight:400;display:block;margin-bottom:5px}.gauge em{font-style:normal}
.gauge .bar{height:16px}
.tprompt{left:8px;top:270px;width:322px;height:136px;z-index:3}.tprompt .pb{display:flex;gap:8px;align-items:center;padding:4px 10px}.tpi{width:96px;height:96px;flex:none;background-size:cover;background-position:30% 50%;border:2px solid var(--brown);border-radius:6px}.tprompt b{font-size:22px;font-weight:400;color:var(--red2)}.tprompt p{margin:2px 0 0;font-size:16px;line-height:1.05}
.combo{left:8px;top:418px;width:322px;height:168px;z-index:3}.combo .pb{padding:4px 12px}
.gd{text-align:center;font-family:'Brush';color:#3f8f3a;font-size:22px;line-height:1}.cbar{position:relative;height:26px;margin:4px 0 8px;border:3px solid #2a1c12;border-radius:6px;background:linear-gradient(90deg,#c0392b 0,#e0a82a 30%,#5ea03a 50%,#e0a82a 70%,#c0392b)}.cbar i{position:absolute;top:-6px;width:5px;height:34px;background:#fff;border:2px solid #2a1c12;transform:translateX(-50%);transition:left .4s}
.chain{display:flex;justify-content:space-between;font-size:15px;text-align:left;line-height:1}.chain span{flex:1;display:flex;flex-wrap:wrap;gap:3px;color:#6a5640}.chain span.on{color:var(--ink)}.chain i{width:18px;height:18px;border:2px solid var(--brown);border-radius:3px;background:#f8ecd0;flex:none}.chain .on i{background:#5ea03a}.chain small{font-size:13px}
.fz{left:8px;top:120px;width:322px;height:auto;min-height:140px;z-index:3}.fz .pb{padding:4px 10px;flex:none}.fz p{margin:5px 0;font-size:17px;line-height:1}.fz i{display:inline-block;width:28px;height:15px;border-radius:3px;border:2px solid #0005;vertical-align:-2px;margin-right:6px}.fz small{font-size:13px;color:#6a5640}
.mcc{left:1358px;top:128px;width:306px;height:604px;z-index:3}.mcc .ph img{position:absolute;right:6px;top:-2px;height:50px;width:50px;object-fit:cover;border-radius:6px;border:2px solid var(--cream)}.mcc .pb{padding:6px 8px;display:flex;flex-direction:column;gap:5px;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}
.cadv{font-size:16px;line-height:1.05;padding:3px 4px;background:rgba(255,246,223,.6);border:2px dotted #a98d63;border-radius:6px}
.fcmd{position:relative;display:flex;gap:8px;align-items:center;padding:4px 8px;flex:1;min-height:0;border:3px solid var(--brown);border-radius:9px;background:url(../assets/tex_washi.jpg);background-size:300px;text-align:left;box-shadow:0 3px 0 rgba(0,0,0,.3)}
.fcmd.pri{background:linear-gradient(#b8352c,#8f1f1a);color:#fff;border-color:#e0a82a;box-shadow:0 0 12px #f6c94b}.fcmd.pri .mi{stroke:#fff}
.fcmd .mci .mi{width:42px;height:42px}.fcmd .ft{display:flex;flex-direction:column;flex:1;min-width:0}.fcmd b{font-family:'Brush';font-weight:400;font-size:24px;line-height:1}.fcmd span{font-size:14px;line-height:1}.fcmd i{font-style:normal;font-size:13px;opacity:.85}
.fcmd kbd{position:absolute;right:6px;top:5px;font:15px 'Hand';background:#2a1c12;color:#f1e4c3;border-radius:50%;width:24px;height:24px;display:grid;place-items:center}
.fcmd.off{opacity:.45;cursor:not-allowed}.fcmd:hover:not(:disabled){transform:translateX(-3px)}
.tpg2 .tpg{margin:0;justify-content:center;width:100%}
.rp{left:8px;top:716px;width:306px;height:214px;z-index:3}.rp .pb{display:flex;flex-direction:column;gap:6px}.rpi{height:98px;background:#3a2c20 center/contain no-repeat;border-radius:6px;border:2px solid var(--brown)}.rpt p{margin:1px 0;font-size:18px;line-height:1.05}.rpt small{font-size:15px;color:#6a5640}
.mcd{top:724px;width:430px;height:138px;z-index:3;border:3px solid var(--brown);border-radius:10px;background:url(../assets/tex_washi.jpg);background-size:380px;box-shadow:0 3px 0 rgba(0,0,0,.4);overflow:hidden}.mcd.l{left:322px}.mcd.r{left:1100px;width:560px}
.mcd header{background:linear-gradient(#b8352c,#951f19);color:var(--cream);font-family:'Brush';font-size:24px;padding:0 12px;line-height:32px}.mcd.r header{background:linear-gradient(#2c4a7a,#1c3156)}
.cdb{display:flex;gap:10px;padding:6px 10px;align-items:center}.cdb .big{width:112px;font-size:22px;text-align:center}.cdb .big b{font-weight:400;font-size:38px}.cds{flex:1;font-size:17px}.cds div{display:flex;justify-content:space-between;line-height:1.2}.cds b{font-weight:400}.cst{width:130px;font-size:16px;line-height:1.05}.cst b{display:block;font-weight:400}
.mst{left:770px;top:724px;width:320px;height:138px;z-index:3}.mst .pb{padding:4px 10px}.ms>div{display:flex;justify-content:space-between;gap:6px;font-size:16px;border-bottom:1px dotted #bfa77a;padding:3px 0}.ms span{color:#6a5640}.ms b{font-weight:400;text-align:right}
.flowp{left:330px;top:870px;width:1332px;height:62px;z-index:3;flex-direction:row;align-items:center}.flowp .ph{width:200px;height:100%;clip-path:none;font-size:26px;margin:0;align-items:center}
.fw{flex:1;display:flex;position:relative;padding:0 20px}.fw>div{flex:1;display:flex;flex-direction:column;align-items:center;position:relative;font-size:16px;padding-top:6px}.fw>div::before{content:"";position:absolute;top:13px;left:-50%;width:100%;border-top:3px solid #5b3d28}.fw>div:first-child::before{display:none}
.fw i{width:16px;height:16px;border-radius:50%;background:#5b3d28;border:3px solid #f1e4c3;z-index:1;margin-bottom:2px;outline:2px solid #5b3d28}.fw .past i{background:#4d8a30}.fw .now i{background:#fff;outline-color:#d6352a;box-shadow:0 0 8px #d6352a}.fw .now span{color:#a82a24;font-weight:700}

.pair.fin .np{bottom:46px}
.cap.fin{top:236px}
.cadv{display:flex;gap:6px;align-items:center}.cadv img{width:46px;height:46px;object-fit:cover;border-radius:6px;border:2px solid var(--brown);flex:none}
.mcc{height:590px!important}
.mcc .ph .sub{font-size:15px}
.tpg2 .tpg{white-space:nowrap;font-size:15px;gap:5px;padding:1px 6px}.tpg2 .tpg i{width:16px}
.chain small{white-space:nowrap}
.mcd.l{width:440px}.mcd.r .cds{max-width:230px}.mcd .cdb .face{width:56px!important;height:56px!important}.cds{font-size:16px}.cst{width:116px}

/* ===== bout engine v2: tachi-ai, technique card, reading him, bonds, briefing ===== */
/* compress the fighter stacks a little to make room for the reading boxes */
.mf{gap:5px}.mfs{padding:5px 12px}.mfb{margin-bottom:3px}.mfg{padding:3px 12px 4px!important}.mfg h4,.mfp h4{margin:0 0 1px;font-size:22px}.gp i{width:56px;height:42px}.gp{font-size:16px}.gp span{margin:0}.mfp{padding:3px 12px 4px!important}.mfl .bar{height:18px}.mfl b{font-size:30px}
.hudL,.hudR{top:582px;width:342px;height:154px;z-index:3}.hudL{left:8px}.hudR{right:8px}
.reading,.oppc{height:100%;box-sizing:border-box;padding:4px 12px 6px;border:3px solid var(--brown);border-radius:10px;background:url(../assets/tex_washi.jpg);background-size:380px;box-shadow:0 3px 0 rgba(0,0,0,.4),inset 0 0 14px rgba(120,80,30,.25);overflow:hidden}
.reading h4,.oppc h4{margin:0 0 2px;font-family:'Brush';font-weight:400;font-size:22px;color:#a82a24;display:flex;align-items:baseline;gap:6px;white-space:nowrap}
.oppc h4 small{margin-left:auto;font-family:'Hand';font-size:15px;color:#6a5640}.oppc h4 .nk{font-family:'Hand';font-size:16px;color:#3b2a1a;overflow:hidden;text-overflow:ellipsis}
.reading p{margin:1px 0;font-size:15.5px;line-height:1.08;color:#3b2a1a}.reading .tell{font-size:18px;line-height:1.1;color:#2a1c12;font-style:italic;min-height:38px;background:rgba(255,246,223,.7);border-left:4px solid #a82a24;padding:2px 6px;border-radius:0 6px 6px 0}.reading .tell.none{color:#7d6a52;border-left-color:#a98d63}
.reading .wn{font-size:14.5px;color:#7d1d19}.reading .hab{color:#2e5a1b}.reading .tn{font-size:14.5px;color:#6a5640}.reading .st{font-size:14.5px;border-top:1px dotted #bfa77a;padding-top:2px;margin-top:2px}
.reading em.y,.bst em.y{color:#2e5a1b;font-style:normal}.reading em.n,.bst em.n{color:#8f1f1a;font-style:normal}.reading em.un,.un{color:#8a7a62}
.ofg{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px}.of{display:flex;flex-direction:column;min-width:0;border-bottom:1px dotted #bfa77a;padding-bottom:1px}.of span{font-size:13.5px;color:#6a5640;line-height:1}.of b{font-weight:400;font-size:17px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.of.un b{color:#a8977a;font-family:'Brush';font-size:20px}
.oppc.big .ofg{gap:6px 10px}.oppc.big .of b{font-size:19px}.oppc .wk{margin:4px 0 0;font-size:16px;color:#2e5a1b}
/* tachi-ai + technique cards */
.cmds.six .cmd{padding:2px 3px}.cmds.six .cmd b{font-size:27px}.cmds.six .cmd span{font-size:15.5px}.cmds.six .cmd small{font-size:13.5px}
.cmds.three .cmd{flex:1}.cmd.tch b{font-size:31px}.cmd.tch .tbl{margin:2px 0 0;display:flex;flex-direction:column;font-size:14px;line-height:1.05}.cmd.tch .tbl em{font-style:normal}.cmd.tch .tbl .y{color:#2e5a1b}.cmd.tch .tbl .n{color:#8f1f1a}
.cmd.tch.rHigh{border-color:#a82a24}.cmd.tch.rLow{border-color:#4d8a30}.cmd.tch .risk{font-size:15px}
.cmd.tch small{font-size:14px}.cmd.tch span{font-size:16px}
.cmd.tcard{border-color:#b8860b;background:linear-gradient(#fff3cf,#f1dd9c)}.cmd.tcard:hover:not(:disabled){border-color:#e0a82a}.cmd.tcard .tj{font-size:13.5px;color:#6a5640;line-height:1.05}.cmd.tcard .tf{display:flex;flex-direction:column;font-size:13.5px;line-height:1.05;text-align:left;width:100%;margin-top:2px}.cmd.tcard .tf em{font-style:normal}
.tf .y,.cmd.tcard .y{color:#2e5a1b}.tf .n,.cmd.tcard .n{color:#8f1f1a}.cmd.tcard b{font-size:25px!important}.cmd.tcard .mcost{left:8px;bottom:6px;font-size:14px;color:#7d1d19}
.fcmd.tcard{border-color:#b8860b;background:linear-gradient(#fff3cf,#f1dd9c)}.fcmd.tcard .tf{display:flex;flex-wrap:wrap;gap:0 8px;font-size:13px;line-height:1.05}.fcmd.tcard .tf em{font-style:normal}.fcmd.tcard b{font-size:22px}.fcmd.tcard b .kj{font-size:15px;color:#6a5640;margin-left:4px}
.fcmd .ft i{font-style:normal}
.fcmd{padding:3px 8px}.fcmd .ft span{font-size:13px;line-height:1.15}.fcmd .mci .mi{width:34px;height:34px}.fcmd b{font-size:22px;line-height:1.1}
/* Each finish card owns its full copy; scroll longer offers instead of squeezing them. */
.mcc .fcmd{flex:0 0 auto;min-height:64px}.mcc .fcmd .ft{padding-right:26px}.mcc .fcmd .ft i{line-height:1.15}
.mcc .cadv,.mcc .tpg2{flex:none}
/* bond banner */
.bondb{z-index:4;box-sizing:border-box;border:3px solid #5a1612;border-radius:8px;background:linear-gradient(#b8352c,#8f1f1a);color:#fff;padding:2px 10px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 3px 0 rgba(0,0,0,.4);overflow:hidden}
.bondb b{font-family:'Brush';font-weight:400;font-size:22px;line-height:1;letter-spacing:1px;color:#ffe08a}.bondb span{font-size:15px;line-height:1.05}
.bondb.tac{left:1180px;top:62px;width:360px;height:58px}.bondb.fin{left:1300px;top:100px;width:340px;height:24px;flex-direction:row;align-items:center;gap:8px;padding:0 8px}.bondb.fin span{display:none}.bondb.fin b{font-size:20px}
.bondb.in{position:relative;width:auto;height:auto;margin:0 0 8px;padding:6px 12px}.bondb.in span{font-size:17px}
.bondb.k-yusho{background:linear-gradient(#c28a12,#8a5e08)}.bondb.k-kinboshi{background:linear-gradient(#8a2d78,#5b1b4f)}.bondb.k-revenge{background:linear-gradient(#2c4a7a,#17294a)}.bondb.k-senshuraku,.bondb.k-rival{background:linear-gradient(#b8352c,#8f1f1a)}.bondb.k-mentor,.bondb.k-stablemate{background:linear-gradient(#4d8a30,#2f5a1e)}
.wflash{left:50%;top:330px;transform:translateX(-50%);z-index:8;pointer-events:none;font-family:'Brush';font-size:54px;color:#fff;padding:4px 36px;border:4px solid #fff;border-radius:12px;text-shadow:0 3px 0 rgba(0,0,0,.5);box-shadow:0 8px 24px rgba(0,0,0,.6);animation:wfl 1.6s ease-out forwards;white-space:nowrap}
.wflash.in{background:linear-gradient(#d6352a,#8f1f1a)}.wflash.out{background:linear-gradient(#4d8a30,#2f5a1e)}
@keyframes wfl{0%{opacity:0;transform:translateX(-50%) scale(.7)}12%{opacity:1;transform:translateX(-50%) scale(1.05)}70%{opacity:1}100%{opacity:0}}
body.rm .wflash{animation:none;opacity:.95}
/* finish layout re-use */
.hudL2{left:8px;top:418px;width:322px;height:290px;z-index:3}.hudL2 .reading{padding:6px 12px}.hudL2 .reading p{font-size:16px}.hudL2 .reading .tell{font-size:20px;min-height:52px}.hudL2 .reading .st{font-size:15.5px}
.hudRP{left:8px;top:716px;width:306px;height:214px;z-index:3}.hudRP .oppc{height:190px}.hudRP .lx{margin:2px 4px 0;font-size:13.5px;color:#f4e6c4;text-shadow:0 1px 2px #000}
.tprompt .pb b{font-size:18px;line-height:1.05}.tprompt .pb p{font-size:15.5px;line-height:1.05}
/* result card */
.mres{left:486px!important;top:96px!important;width:700px!important;box-sizing:border-box;padding:12px 30px 16px!important}
.mres .mrh{font-size:40px!important}.mres .rw{margin:2px 0}.mres .rface .face{width:84px!important;height:84px!important}.mres .mrk .brush{font-size:62px!important}.mres .mrk .kj{font-size:34px}
.mres .rd{font-size:20px;margin:2px 0 4px}.rbond{margin:4px 0;font-size:18px;background:#f3d9d6;border:2px solid #a82a24;border-radius:8px;padding:3px 10px;color:#5a1612}.rbond b{margin-right:6px;color:#a82a24}.rbond.k-yusho{background:#f6e8bd;border-color:#b8860b;color:#5b3d00}.rbond.k-kinboshi{background:#ead6f0;border-color:#8a2d78;color:#4a1b44}
.mres .rwhy{font-size:18.5px;margin:4px 0}.rfx{margin:4px 0;font-size:18px;color:#2e5a1b;font-weight:400}.rfx.warn{color:#8f1f1a}.mres .rrec{margin:6px 0 10px;font-size:19px}
/* bout log + advice never clip */
.mlog p{font-size:14px;line-height:1.05;margin:0 0 4px;overflow-wrap:anywhere}.cv p{font-size:20px;line-height:1.1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical}
.cadv span{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.cap{max-width:900px;font-size:28px!important;line-height:1.05}
/* briefing */
.brf{z-index:3}.brf.bl{left:24px;top:84px;width:470px;height:640px}.brf.br{left:1178px;top:84px;width:470px;height:640px}.brf.bm{left:508px;top:84px;width:652px;height:640px}
.brf .pb{padding:10px 14px;overflow:hidden}.bh{display:flex;gap:14px;align-items:center;margin-bottom:8px}.bh .face{width:110px;height:110px;flex:none}.bh b{font-size:34px;font-weight:400}.bh small{display:block;font-size:18px;color:#5b4a38;line-height:1.15}.bh .kj{font-size:22px}
.ofg.two .of b{font-size:20px}.bn{font-size:16.5px;color:#5b4a38;margin:10px 0 0;line-height:1.15}
.brows{display:flex;flex-direction:column;gap:5px}.brow{display:grid;grid-template-columns:130px 1fr;gap:8px;align-items:baseline;border-bottom:1px dotted #bfa77a;padding-bottom:3px;min-height:34px}.brow span{font-size:16px;color:#6a5640}.brow b{font-weight:400;font-size:19px;line-height:1.1}.brow.un b{font-family:'Brush';font-size:24px;color:#a8977a}
.bsc{margin-top:10px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.bsc small{font-size:15px;color:#6a5640}
.bt2{margin:4px 0 8px;width:100%}.bt2 td,.bt2 th{font-size:22px!important}
.bst,.bth,.bod{margin:8px 0;font-size:19px;line-height:1.15}.bth{background:rgba(255,246,223,.7);border:2px dotted #a98d63;border-radius:8px;padding:6px 10px}.bod{font-size:22px}
.bbtn{left:508px;top:742px;width:652px;display:flex;gap:16px;justify-content:center;align-items:center;z-index:3}.bbtn .big{min-width:300px}
.brf .ph .sub{margin-left:auto}

.bst6{margin-top:10px;display:flex;flex-direction:column;gap:3px}.bst6>div{display:grid;grid-template-columns:130px 1fr 40px;align-items:center;gap:8px;font-size:18px}.bst6 .bar{height:14px}.bst6 b{font-weight:400;text-align:right}
.tri{margin-top:6px;border:2px solid var(--brown);border-radius:8px;background:rgba(255,248,225,.7);padding:6px 12px;display:flex;flex-direction:column;gap:1px;font-size:18px}.tri b{font-family:'Brush';font-weight:400;font-size:22px;color:#a82a24}.tri i{font-style:normal;color:#2e5a1b}.tri small{font-size:15px;color:#6a5640;line-height:1.1;margin-top:2px}
.cmd.tch span{font-size:16px!important;line-height:1.1}.cmd.tch .tbl{font-size:15px}

.cmd.tcard{flex:1.45}.cmd.tcard b{font-size:26px!important;white-space:nowrap}.cmd.tcard .tjp{font-size:16px;color:#6a5640;margin-left:2px}.cmd.tcard .tf{font-size:14.5px;gap:0;margin-top:3px}.cmd.tcard .tf em{white-space:nowrap}
.cmds.six .cmd:not(.tcard){flex:1}
.hudL2{height:auto!important;max-height:300px}.hudL2 .reading{height:auto}
.cap.fin{max-width:600px;font-size:26px!important}
.keyhint{display:none}
.cmd.tcard .mci{display:none}.cmd.tcard b{font-size:25px!important;display:block;text-align:center;line-height:1}.cmd.tcard .tjp{display:block;margin:0;font-size:15px}.cmd.tcard .tf{margin-top:2px}
.btech{margin-top:10px}.btech h4{margin:0 0 3px;font-family:'Brush';font-weight:400;font-size:22px;color:#a82a24}.btech>div{display:grid;grid-template-columns:230px 1fr 34px;gap:8px;align-items:center;font-size:17px}.btech .bar{height:12px}.btech b{font-weight:400;text-align:right}.btech i{font-style:normal;font-size:14px;color:#6a5640}.btech em{font-style:normal;color:#a82a24;font-size:14px}
.bondb.tac{height:52px!important}.bondb b{font-size:21px;line-height:1.05}.bondb span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bondb.in span{white-space:normal}
.brf.bl,.brf.br,.brf.bm{height:620px!important}.bbtn{top:722px!important}

/* ===== Match FX (driven by --el = ms since the current event began; every animation uses delay = at - el so re-renders resume in place) ===== */
@keyframes mdrift{from{transform:translateX(calc(var(--fx,0)*1px)) scale(var(--fs,1))}to{transform:translateX(calc(var(--tx,0)*1px)) scale(var(--ts,1))}}
/* One opacity timeline per pose: visible exactly on [in,out), then the next pose takes over. */
@keyframes lhold{from{opacity:1}to{opacity:0}}
@keyframes lreveal{from{opacity:0}to{opacity:1}}
@keyframes lsq{0%{transform:scale(calc(1 + var(--sq,.04)),calc(1 - var(--sq,.04)))}55%{transform:scale(calc(1 - var(--sq,.04)*.5),calc(1 + var(--sq,.04)*.7))}100%{transform:scale(1)}}
.pair .ly{opacity:0}
.pair .ly.last{animation:lreveal 1ms steps(1,start) forwards,lsq 230ms ease-out both;animation-delay:calc(var(--in)*1ms - var(--el)*1ms),calc(var(--in)*1ms - var(--el)*1ms)}
.pair .ly.o{animation-name:lhold,lsq;animation-duration:calc(var(--span)*1ms),230ms;animation-timing-function:steps(1,end),ease-out;animation-fill-mode:none,both;animation-delay:calc(var(--in)*1ms - var(--el)*1ms),calc(var(--in)*1ms - var(--el)*1ms)}
/* idle micro-motion */
.pbob.br{animation:mbreathe 1.6s ease-in-out infinite;animation-delay:calc(var(--ph,0)*-1ms)}
.pbob.tired{animation:mheavy 2.6s ease-in-out infinite;animation-delay:calc(var(--ph,0)*-1ms);transform-origin:50% 100%}
.pbob.wob{animation:mwob .9s ease-in-out infinite;animation-delay:calc(var(--ph,0)*-1ms);transform-origin:50% 95%}
@keyframes mbreathe{0%,100%{transform:translate(0,0)}50%{transform:translate(1.5px,-1.5px) scaleY(1.004)}}
@keyframes mheavy{0%,100%{transform:translateY(0) scaleY(1)}45%{transform:translateY(5px) scaleY(.982)}}
@keyframes mwob{0%,100%{transform:rotate(-1.3deg)}50%{transform:rotate(1.3deg)}}
.np.tr{animation:mheavy 2.6s ease-in-out infinite}
/* camera: shake scaled by force, slow-mo zoom on the finishing blow */
.cshake{animation:mcam .4s linear both;animation-delay:calc(var(--el,0)*-1ms)}
@keyframes mcam{0%,100%{translate:0 0}15%{translate:calc(var(--sh)*.6px) calc(var(--sh)*-.8px)}30%{translate:calc(var(--sh)*-.7px) calc(var(--sh)*.7px)}50%{translate:calc(var(--sh)*.4px) calc(var(--sh)*-.5px)}75%{translate:0 calc(var(--sh)*.3px)}}
.camz{transform-origin:836px 520px;animation:mzoom 1.5s ease-in-out both;animation-delay:calc(var(--el,0)*-1ms)}
.stagep.camz.cshake{animation:mzoom 1.5s ease-in-out both,mcam .4s linear both;animation-delay:calc(var(--el,0)*-1ms),calc(var(--el,0)*-1ms)}
@keyframes mzoom{0%{transform:scale(1)}27%{transform:scale(1.12)}100%{transform:scale(1.035)}}
/* clash flash */
.clash{position:absolute;left:50%;top:44%;width:0;height:0;pointer-events:none;z-index:3}
.clash i{position:absolute;display:block}
.clash .burst{left:-150px;top:-150px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,#fffbe0 0,rgba(255,236,160,.85) 25%,rgba(255,190,80,.35) 55%,transparent 72%);opacity:0;animation:mburst .4s ease-out both;animation-delay:calc(var(--el)*-1ms);transform:scale(calc(.5 + var(--I)*.5))}
.clash .ring{left:-90px;top:-90px;width:180px;height:180px;border-radius:50%;border:5px solid rgba(255,250,220,.9);opacity:0;animation:mring .45s ease-out both;animation-delay:calc(var(--el)*-1ms)}
@keyframes mburst{0%{opacity:.95;transform:scale(.2)}35%{opacity:.9}100%{opacity:0;transform:scale(calc(1.1 + var(--I)*.7))}}
@keyframes mring{0%{opacity:.9;transform:scale(.3)}100%{opacity:0;transform:scale(calc(1.2 + var(--I)))}}
.clash .dust{left:-40px;top:calc(var(--gy,0px) + 170px);width:80px;height:60px;border-radius:50%;background:radial-gradient(ellipse,rgba(222,200,160,.9),rgba(200,175,130,.45) 55%,transparent 72%);opacity:0;animation:mdust .75s ease-out both;animation-delay:calc(var(--dl)*1ms - var(--el)*1ms)}
@keyframes mdust{0%{opacity:0;transform:translate(0,0) scale(.3)}20%{opacity:.85}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(var(--ds))}}
.clash .sw{left:-4px;top:-4px;width:8px;height:12px;border-radius:50% 50% 50% 50%/65% 65% 35% 35%;background:linear-gradient(#e8f6ff,#8fc4e8);border:1px solid #4a7fa8;opacity:0;animation:msw .7s cubic-bezier(.2,.7,.4,1) both;animation-delay:calc(var(--dl)*1ms - var(--el)*1ms)}
@keyframes msw{0%{opacity:0;transform:translate(0,0)}12%{opacity:1}100%{opacity:0;transform:translate(var(--dx),calc(var(--dy) + 90px))}}
/* Crowd reaction: a warm light ripple over the crowd rows, without a second arena bitmap. */
.crowdfx{left:330px;top:220px;width:1020px;height:300px;transform-origin:506px 300px;background:linear-gradient(transparent,#fff0d51f 30%,#fff0d51f 70%,transparent);pointer-events:none;opacity:0;animation:mcrowd 1.3s ease-out both;animation-delay:calc(var(--el,0)*-1ms)}
.crowdfx.camz{transform-origin:506px 300px;animation:mcrowd 1.3s ease-out both,mzoom 1.5s ease-in-out both;animation-delay:calc(var(--el,0)*-1ms),calc(var(--el,0)*-1ms)}
.crowdfx:not(.done){animation:mcrowd 1.3s ease-out both;animation-delay:calc(var(--el,0)*-1ms)}
@keyframes mcrowd{0%{opacity:0;translate:0 0}12%{opacity:1;translate:0 -5px}40%{opacity:.9;translate:0 2px}65%{translate:0 -3px}100%{opacity:0;translate:0 0}}
.fxl{left:0;top:0;width:1672px;height:941px;pointer-events:none;z-index:2}
.fxl>*{position:absolute}
/* stakes cue: red vignette pulse (bond banner / kinboshi) */
.vig{inset:0;background:radial-gradient(ellipse at 50% 55%,transparent 52%,rgba(168,24,20,.32) 100%);animation:mvig 2.6s ease-in-out infinite}
.vig.hi{background:radial-gradient(ellipse at 50% 55%,transparent 45%,rgba(190,20,18,.45) 100%);animation-duration:1.9s}
@keyframes mvig{0%,100%{opacity:.35}50%{opacity:1}}
/* salt toss before tachi-ai */
.salt .sg{display:block;width:0;height:0;animation:msaltx 900ms linear both;animation-delay:calc(var(--dl)*1ms - var(--se)*1ms)}
.salt .sg b{position:absolute;left:0;top:0;width:calc(var(--w));height:calc(var(--w));border-radius:50%;background:#fffdf4;box-shadow:0 0 4px #fff;animation:msalty 900ms linear both;animation-delay:calc(var(--dl)*1ms - var(--se)*1ms)}
@keyframes msaltx{from{transform:translateX(0);opacity:1}85%{opacity:1}to{transform:translateX(var(--dx));opacity:0}}
@keyframes msalty{0%{transform:translateY(0);animation-timing-function:ease-out}45%{transform:translateY(calc(var(--h)*-1));animation-timing-function:ease-in}100%{transform:translateY(var(--dy))}}
/* gyoji fan */
.fan{left:214px;top:590px;width:64px;height:34px;border-radius:64px 64px 0 0;transform-origin:92% 100%;background:repeating-conic-gradient(from 270deg at 50% 100%,#c8312a 0 9deg,#e9c46a 9deg 12deg);border:2px solid #5a3b1e;border-bottom:0;transform:rotate(-6deg);box-shadow:0 2px 3px rgba(0,0,0,.4)}
.fan.wave{animation:mfan 1.1s ease-in-out both;animation-delay:calc(var(--el)*-1ms)}
@keyframes mfan{0%,100%{transform:rotate(-6deg)}20%{transform:rotate(-34deg)}45%{transform:rotate(20deg)}70%{transform:rotate(-26deg)}}
/* result: paper flash, hanko slam, ink entrance */
.pflash{inset:0;background:#fff6e0;opacity:0;animation:mpf .5s ease-out both;animation-delay:calc(var(--el)*-1ms);z-index:30}
@keyframes mpf{0%{opacity:.85}100%{opacity:0}}
.mres{animation:mresin .35s ease-out both;animation-delay:calc(1250ms - var(--el,0)*1ms)}
@keyframes mresin{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
.mres .mrk .brush{display:inline-block;animation:mwipe .7s ease-out both;animation-delay:calc(1000ms - var(--el,0)*1ms)}
.mres .mrk .kj{display:inline-block;animation:mwipe .5s ease-out both;animation-delay:calc(1500ms - var(--el,0)*1ms)}
@keyframes mwipe{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.stampHost{position:absolute;right:26px;top:14px;width:104px;height:104px;pointer-events:none}
.hanko{position:absolute;inset:0;border:5px solid #b3261e;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#b3261e;font-size:66px;line-height:1;transform:rotate(-9deg);opacity:0;background:rgba(179,38,30,.06);animation:mslam .4s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(1700ms - var(--el,0)*1ms)}
.mres.lost .hanko{color:#2a3a63;border-color:#2a3a63;background:rgba(42,58,99,.06)}
.hanko.img{border:0;background-size:contain;background-repeat:no-repeat;background-position:center}
.stampHost.ext .hanko{display:none}
@keyframes mslam{0%{opacity:0;transform:rotate(-9deg) scale(2.6)}60%{opacity:1;transform:rotate(-9deg) scale(.92)}100%{opacity:.92;transform:rotate(-9deg) scale(1)}}
/* reduced motion: show end states, nothing moves */
body.rm .fxl *,body.rm .pair,body.rm .pair *,body.rm .stagep,body.rm .mbg,body.rm .mres,body.rm .mres *{animation:none!important}
body.rm .mres,body.rm .hanko{opacity:1}body.rm .hanko{opacity:.92}body.rm .vig,body.rm .crowdfx,body.rm .clash{display:none}
@media (prefers-reduced-motion:reduce){.fxl *,.pair,.pair *,.stagep,.mbg,.mres,.mres *,.crowdfx{animation:none!important}.mres{opacity:1}.hanko{opacity:.92}.vig,.crowdfx,.clash{display:none}}

/* Clash pause, then release into the drive. Sponsor banners remain decorative. */
.pair.hitstop{animation-name:mhitdrift}
@keyframes mhitdrift{0%,15%{transform:translateX(calc(var(--fx,0)*1px)) scale(var(--fs,1))}100%{transform:translateX(calc(var(--tx,0)*1px)) scale(var(--ts,1))}}
.kensho{position:absolute;left:365px;top:300px;width:155px;display:flex;gap:5px;animation:kenshopass .7s ease-out both;animation-delay:calc(700ms - var(--el,0)*1ms)}
.kensho>span{width:48px;min-height:220px;padding:14px 4px;border:3px solid #573824;background:#eddfbc;color:#532521;box-shadow:3px 5px 10px #0006;text-align:center;transform:rotate(-2deg)}
.kensho>span:nth-child(2){background:#243a57;color:#f0e5c8;transform:rotate(2deg)}
.kensho b{display:block;font-size:30px;writing-mode:vertical-rl;margin:0 auto 12px;letter-spacing:8px}
.kensho small{display:block;font-size:16px;writing-mode:vertical-rl;margin:0 auto;max-height:110px;overflow:hidden}
@keyframes kenshopass{from{opacity:0;transform:translateX(-35px)}to{opacity:1;transform:translateX(0)}}
body.rm .kensho{animation:none!important}
@media(prefers-reduced-motion:reduce){.kensho{animation:none!important}}

/* Camera translation/scale and crowd opacity use isolated compositing layers. */
.mbg.camz,.stagep.camz,.stagep.cshake,.crowdfx{will-change:transform,translate,opacity}

body.rm .pair .ly.last{opacity:1}
@media(prefers-reduced-motion:reduce){.pair .ly.last{opacity:1}}

/* A small contact shadow replaces per-image blur; disabled cards retain opacity and disabled state. */
.pair::before{content:'';position:absolute;left:12%;right:12%;bottom:-1%;height:24px;background:radial-gradient(ellipse,rgba(35,20,12,.24),rgba(35,20,12,.10) 45%,transparent 72%);pointer-events:none}
