@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--bg:#060c16;--panel:#0d1624;--line:#1c2d41;--sub:#7c91a8;--cyan:#36d9f5;--red:#ff5b73;--white:#ecf4ff;--display:'Barlow Condensed','Arial Narrow','Impact',sans-serif;--body:'DM Sans',Inter,system-ui,sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--white);font-family:var(--body)}body{background-image:radial-gradient(ellipse at 18% -9%,#11304866,transparent 36%),radial-gradient(ellipse at 100% 2%,#24142e44,transparent 40%)}button,select{font:inherit;cursor:pointer}button{color:inherit}button:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}button:disabled{opacity:.48;cursor:default}.shell{max-width:1690px;margin:auto;padding:0 32px}.topbar{height:83px;border-bottom:1px solid #1c2c3e;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;min-width:270px}.brand-icon{width:39px;height:43px;clip-path:polygon(50% 0,98% 25%,98% 75%,50% 100%,2% 75%,2% 25%);background:linear-gradient(145deg,#21ddff,#1c526e);display:grid;place-items:center}.brand-inner{font:900 25px var(--display);color:#071221;clip-path:polygon(50% 0,98% 25%,98% 75%,50% 100%,2% 75%,2% 25%);width:32px;height:35px;display:grid;place-items:center;background:#93f1ff}.brand-title{font:800 19px/.86 var(--display);letter-spacing:1.6px}.brand-title span{color:#4ed4e9}.brand-title small{font:700 9px var(--body);display:block;letter-spacing:5.8px;margin-top:6px;color:#93aabd}.nav{display:flex;height:100%;gap:22px;align-items:center}.navitem{border:0;background:transparent;height:100%;font-size:10px;font-weight:800;letter-spacing:1.8px;color:#8197ae;position:relative}.navitem.selected{color:#f5faff}.navitem.selected:after{content:'';height:2px;background:var(--cyan);left:0;right:0;bottom:0;position:absolute}.navitem:hover{color:var(--cyan)}.mini-arrow{color:var(--cyan)}.top-actions{display:flex;align-items:center;gap:19px}.alpha{font:700 10px var(--display);letter-spacing:1.5px;color:#526c82}.broadcast-tag{display:flex;align-items:center;gap:9px;font-size:10px;font-weight:800;letter-spacing:1px;color:#cce8ed;background:#0b2733;border:1px solid #205568;padding:10px 14px;white-space:nowrap}.pulse{width:7px;height:7px;border-radius:50%;background:#31e1e9;box-shadow:0 0 0 4px #31e1e927,0 0 10px #31e1e9}.icon-button{width:34px;height:34px;background:#101f2e;border:1px solid #2b4054;color:#adc4d7}.layout{display:grid;grid-template-columns:minmax(0,1fr) 328px;gap:26px;padding-top:28px}.main-column{min-width:0}.section-kicker{font-size:10px;font-weight:800;letter-spacing:1.6px;color:#6f829b;margin-bottom:19px;display:flex;align-items:center;gap:9px}.line-dot{background:var(--cyan);width:7px;height:7px;transform:rotate(45deg)}.path-sep{color:#2d4b62}.heading-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:25px}.eyebrow{color:var(--cyan);font-size:11px;font-weight:800;letter-spacing:3px;margin-bottom:6px}.ver{color:#758da7;font-size:9px;letter-spacing:1.5px;padding-left:8px}.heading-row h1{font:800 clamp(30px,3.6vw,50px)/1 var(--display);letter-spacing:.1px;margin:0}.heading-row h1 em{font-style:normal;color:#b7cde0}.viewers{font-size:10px;font-weight:800;letter-spacing:1.4px;color:#dae6f1;display:flex;align-items:center;flex-wrap:wrap;gap:8px;justify-content:flex-end;max-width:220px;padding-bottom:3px}.viewers small{width:100%;text-align:right;font-size:9px;color:var(--sub);letter-spacing:1.8px}.tiny-circle{height:7px;width:7px;border:1px solid var(--cyan);border-radius:50%;box-shadow:0 0 8px #3fffff}.arena-card{border:1px solid #2a3f55;background:#091321;box-shadow:0 16px 60px #0008}.arena-stage{height:clamp(430px,39vw,610px);position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#1a2b40,#070f1f 75%)}#arena{width:100%;height:100%;display:block}.arena-stage:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#0009,transparent 22%,transparent 65%,#020a14b7),radial-gradient(ellipse at 50% 55%,transparent 26%,#07111e6d 100%)}.corner-top-left,.corner-top-right,.battle-overlay,.stage-left-bottom,.stage-right-bottom,.impact-splash{z-index:2;position:absolute}.corner-top-left{top:18px;left:21px;display:flex;gap:10px;align-items:center}.stage-pill{background:#092132bb;border:1px solid #315166;padding:6px 8px;font-size:10px;font-weight:800;letter-spacing:1.2px;color:#e6f9ff;display:flex;align-items:center;gap:7px}.stream-dot{height:6px;width:6px;border-radius:100%;background:#35dbe9;box-shadow:0 0 12px #35dbe9}.pill-secondary{font-size:9px;letter-spacing:1px;color:#8da9be}.corner-top-right{top:21px;right:22px;display:flex;gap:12px;font:800 10px var(--display);letter-spacing:1.3px;color:#a6b9c7}.quality{color:#e0f2ff}.quality span{font-size:7px;color:#4ac8ea}.battle-overlay{left:30px;right:30px;top:66px;display:grid;grid-template-columns:1fr 150px 1fr;gap:14px;align-items:start}.combatant{min-width:0}.fighter-name{font:900 clamp(23px,2.5vw,39px)/.95 var(--display);letter-spacing:.8px;text-shadow:0 2px 13px #000}.name-x{color:var(--cyan)}.name-r{color:var(--red)}.fighter-sub{font:700 9px var(--body);letter-spacing:1.1px;color:#b0bccc;margin-top:6px;margin-bottom:12px}.fighter-sub span{color:#658399;padding:0 3px}.health-track{height:11px;background:#0a1723;border:1px solid #304052;overflow:hidden;padding:2px}.health-fill{height:100%;width:100%;transition:width .15s linear}.health-fill.blue{background:linear-gradient(90deg,#007397,#54e6ff);box-shadow:0 0 12px var(--cyan)}.health-fill.red{background:linear-gradient(90deg,#ff7181,#b2193a);box-shadow:0 0 12px var(--red)}.energy-track{height:3px;margin-top:9px;background:#193044;width:100%}.energy-fill{height:100%;width:100%;transition:width .15s}.energy-fill.blue{background:#42d4e9}.energy-fill.red{background:#ea6279}.bar-caption{display:flex;justify-content:space-between;font-size:8px;font-weight:700;letter-spacing:1px;color:#93afc0;margin-top:7px}.bar-caption strong{font-size:11px;color:var(--white)}.combatant.right{text-align:right}.combatant.right .health-fill{margin-left:auto}.combatant.right .energy-fill{margin-left:auto}.match-center{text-align:center}.match-center>span{display:block;font:700 12px var(--display);letter-spacing:2px;color:#a8bacd}.countdown{font:900 49px/.95 var(--display);letter-spacing:1px;color:#fff;text-shadow:0 2px 25px #04111b}.versus{font:800 17px var(--display);color:#fff;margin-top:4px}.versus span{color:#f0616c}.stage-left-bottom{bottom:18px;left:22px;font-size:9px;font-weight:700;letter-spacing:1.2px;color:#8eacbd}.camera-mark{color:#cce9f5}.camera-mark span{color:var(--cyan)}.simulation-mark{margin-top:8px}.simulation-mark span{color:#4dd0e0;padding:0 4px}.stage-right-bottom{right:22px;bottom:19px;font:800 10px var(--display);letter-spacing:2px;color:#7da1b4}.stage-right-bottom b{color:#cde0e9}.four-lines{color:var(--cyan);font-size:13px;padding-left:9px}.impact-splash{font:900 clamp(25px,5vw,67px) var(--display);top:52%;left:50%;transform:translate(-50%,-50%) rotate(-6deg);letter-spacing:2px;color:#ffdc9d;text-shadow:0 0 30px #e77059,0 3px 4px #0a0605;opacity:0;pointer-events:none;white-space:nowrap}.impact-splash.show{animation:splash .9s ease-out forwards}@keyframes splash{0%{opacity:0;transform:translate(-50%,-30%) rotate(-7deg) scale(1.4)}20%{opacity:1;transform:translate(-50%,-50%) rotate(-6deg) scale(1)}70%{opacity:1}100%{opacity:0;transform:translate(-50%,-65%) rotate(-6deg) scale(.95)}}.standby-screen,.result-screen{position:absolute;z-index:3;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse,#061522bd 0%,#030914d5 70%);text-align:center;backdrop-filter:blur(1.6px)}.standby-screen.hidden,.result-screen.hidden{display:none}.outer-orbit{height:68px;width:68px;border:1px solid #2b8ca9;box-shadow:0 0 22px #0886ac44,0 0 35px #09365e inset;border-radius:50%;display:grid;place-items:center;margin-bottom:18px;position:relative}.outer-orbit:before,.outer-orbit:after{content:'';position:absolute;width:85px;height:18px;border-top:1px solid #316f88;border-radius:50%;transform:rotate(45deg)}.outer-orbit:after{transform:rotate(-45deg)}.inner-orbit{font-size:30px;color:#68eeff}.standby-eye,.result-eyebrow{font-size:10px;font-weight:800;letter-spacing:4px;color:#50d6f5}.standby-screen h2,.result-screen h2{font:900 clamp(36px,5vw,72px)/.95 var(--display);margin:13px 0 6px;letter-spacing:.8px}.standby-screen h2 span{color:var(--cyan)}.standby-screen p,.result-screen p{color:#a1b6c9;font-size:12px}.big-cta{border:0;margin:21px 0 17px;padding:15px 35px;background:#56e4f4;color:#062333;font-size:11px;font-weight:900;letter-spacing:1.8px;box-shadow:0 10px 36px #1ebbd43f}.big-cta:hover{background:#abf5ff;transform:translateY(-1px)}.standby-note{font-size:9px;font-weight:800;color:#83a1b6;letter-spacing:1.7px}.result-screen h2{color:var(--cyan)}.outline-cta{border:1px solid #54dce9;background:#123044;color:#7ce5f5;padding:11px 25px;font-size:10px;font-weight:900;letter-spacing:2px;margin-top:14px}.broadcast-controls{background:#101e2d;border-top:1px solid #263c4e;padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.control-buttons{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.play-btn{background:var(--cyan);color:#082434;border:0;padding:10px 15px;font-size:10px;font-weight:900;letter-spacing:1px;min-width:125px;white-space:nowrap}.play-btn:hover{background:#9deffc}.small-btn,.camera-btn{background:#122738;border:1px solid #304a5e;padding:9px 10px;color:#9bb6c6;font-size:10px;font-weight:800}.small-btn{font-size:15px;padding:5px 12px}.camera-btn.active{border-color:#368eaa;color:#6fe1f5;background:#173f50}.camera-btn span{font-weight:600;color:#a5bccd;margin-left:4px}.control-divider{height:21px;width:1px;background:#334656;margin:0 7px}.control-cap{font-size:9px;color:#7996aa;font-weight:800;letter-spacing:1.4px}.speed-box{display:flex;align-items:center;gap:9px;white-space:nowrap}.speed-box>span{font-size:9px;font-weight:800;color:#90a9bd;letter-spacing:1px}.speed-box select{appearance:none;background:#13293a;color:#d3e5f0;border:1px solid #355064;padding:9px 11px;border-radius:0;font-size:11px;min-width:61px}.event-strip{height:47px;display:flex;align-items:center;gap:15px;padding:0 20px;border-top:1px solid #1d3243;background:#0c1724;font-size:10px}.stripes{color:#36cde3;letter-spacing:0;font-size:11px}.event-strip strong{font-size:9px;color:#c9deeb;letter-spacing:1.1px;white-space:nowrap}.event-strip #ticker{color:#8cabbf;flex:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.event-strip #eventTime{font:700 10px var(--display);color:#8cb2c8}.below-grid{display:grid;grid-template-columns:1.28fr 1fr;gap:17px;margin:20px 0 32px}.panel,.side-panel{background:#0d1724;border:1px solid #22354a}.panel{padding:20px 22px}.panel-title,.side-panel-title{font-size:11px;letter-spacing:1.7px;font-weight:900;color:#dce9f6;display:flex;align-items:center;gap:9px}.panel-title>span{color:var(--cyan);font-size:19px}.panel-title em{font-style:normal;margin-left:auto;color:#36a5a9;font-size:9px;letter-spacing:1px}.stat-columns{display:grid;grid-template-columns:repeat(3,1fr);margin-top:19px}.stat{padding:0 15px;border-right:1px solid #203349}.stat:first-child{padding-left:0}.stat:last-child{border:0}.stat>span{font-size:9px;font-weight:800;letter-spacing:.8px;color:#94a9b9}.stat>div{font:800 37px/1.25 var(--display);color:#e7f3fc;margin-top:6px}.stat .slash{color:#53748c;font-size:23px}.stat small{font-size:8px;font-weight:800;letter-spacing:.4px;color:#698198}.integrity-panel{padding-bottom:12px}.integrity-row{display:flex;gap:10px;margin-top:14px;align-items:flex-start}.check-icon{width:17px;height:17px;border:1px solid #3a927d;background:#0e3c35;color:#83f8be;font-size:11px;text-align:center;line-height:15px;flex-shrink:0}.integrity-row strong{font-size:11px}.integrity-row p{font-size:9px;color:#829cae;margin:3px 0 0}.sidebar{padding-top:6px;display:flex;flex-direction:column;gap:17px}.side-header{display:flex;justify-content:space-between;font:900 17px var(--display);letter-spacing:2px;margin-top:1px;margin-bottom:-4px}.side-num{font:600 10px var(--body);color:#6a8aa2}.fightcard{background:linear-gradient(160deg,#142536,#0e1d2e 55%,#1c1c31);border:1px solid #2c4557;position:relative;overflow:hidden}.fightcard:after{content:'NCL';position:absolute;right:10px;bottom:65px;font:900 120px var(--display);color:#ffffff05;z-index:0;transform:rotate(-8deg);pointer-events:none}.fightcard-top,.fightcard-bottom{display:flex;align-items:center;justify-content:space-between;padding:15px 16px}.fightcard-top{border-bottom:1px solid #304053}.belt-tag{font-size:9px;letter-spacing:1.5px;font-weight:900;color:#ebb882}.fightcard-top>span{font:800 12px var(--display);color:#b4c7d4;letter-spacing:1px}.fighter-entry{display:flex;gap:12px;padding:21px 13px 18px;position:relative;z-index:1;align-items:center}.robot-emblem{width:61px;height:61px;display:grid;place-items:center;flex-shrink:0;font:900 37px var(--display);transform:skew(-7deg)}.emblem-blue{border:1px solid #237b99;background:linear-gradient(135deg,#154f75,#0d2437);color:#57ddf8;text-shadow:0 0 15px #00adff}.emblem-red{border:1px solid #a03d51;background:linear-gradient(135deg,#6c243c,#291a2c);color:#ff8a8e;text-shadow:0 0 15px #fa4a65}.fighter-entry>div:nth-child(2){min-width:0}.robot-small{font-size:8px;letter-spacing:1.3px;color:#8ea6b7;white-space:nowrap}.fighter-entry h3{font:900 29px/.9 var(--display);margin:5px 0;letter-spacing:.7px}.blue-side h3{color:#85ecff}.red-side h3{color:#ff8fa1}.fighter-entry p{margin:0;font-size:8px;white-space:nowrap;letter-spacing:1px;color:#8fa7b6}.fighter-flag{font:900 12px var(--display);color:#7595a9;margin-left:auto;align-self:flex-start;white-space:nowrap}.fighter-flag b{color:#e6f0f8}.fight-versus{display:flex;align-items:center;gap:12px;margin:0 16px}.fight-versus>div{flex:1;height:1px;background:#385269}.fight-versus>span{font:900 20px var(--display);color:#dbebf5}.fightcard-bottom{border-top:1px solid #374559;font:800 9px var(--display);letter-spacing:1.3px;color:#9eb6c4}.side-panel{padding:19px 17px}.side-panel-title{font-size:10px;letter-spacing:1px;gap:6px;white-space:nowrap}.side-panel-title span{font-size:9px;margin-left:auto;color:#52c5d1}.side-intro{font-size:10px;line-height:1.7;color:#8fa6b8;margin:11px 0 18px}.mind{display:flex;align-items:center;gap:10px;margin:11px 0}.mind-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.blue-dot{background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.red-dot{background:var(--red);box-shadow:0 0 12px var(--red)}.mind-main{flex:1}.mind-name{font:800 13px var(--display);letter-spacing:1.1px}.mind-name strong{color:#607f95;font-weight:600}.mind-info{display:flex;align-items:center;justify-content:space-between;margin-top:3px;font-size:9px;color:#8aa7bb}.brain-pulse{color:#4ec9f4;letter-spacing:1.5px}.brain-pulse.pink{color:#ff6a83}.model-footnote{border-top:1px solid #263b4d;margin-top:18px;padding-top:13px;text-align:center;font-size:9px;letter-spacing:1px;color:#8a9cad}.model-footnote span{color:#3d697c;margin:0 5px}.moment-panel{min-height:165px}.match-log{max-height:182px;overflow:auto;margin-top:13px}.log-empty{font-size:10px;line-height:1.8;color:#67879b;padding:13px 5px}.log-item{display:flex;gap:10px;border-top:1px solid #1c3041;padding:8px 0;line-height:1.4}.log-time{color:#54738c;font:700 11px var(--display);flex-shrink:0}.log-copy{color:#adbfcf;font-size:10px}.log-copy b{color:#f0dbac}.operation-line{display:flex;justify-content:space-between;margin-top:14px;font-size:10px;letter-spacing:.4px}.operation-line>span{color:#829eb2}.operation-line strong{color:#c8d8e4;font-size:10px}.operation-controls{display:grid;grid-template-columns:1fr;gap:8px;margin-top:19px}.operation-button{padding:11px;background:#153748;border:1px solid #37758d;font-size:10px;font-weight:900;letter-spacing:1px;color:#83dfef}.operation-button.secondary{background:#101f2d;border-color:#2a4153;color:#a5becd}.operation-button:hover{border-color:var(--cyan)}footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #1f3446;padding:25px 0 35px;gap:12px;flex-wrap:wrap;font:800 9px var(--body);letter-spacing:1.4px;color:#6b8297}footer>span:first-child{color:#c1d4e0}footer em{font-style:normal;color:#62869c;font-weight:600;margin-left:7px}footer a{color:#5dbbc8;text-decoration:none}
@media(max-width:1250px){.layout{grid-template-columns:minmax(0,1fr) 290px;gap:16px}.shell{padding:0 20px}.nav{gap:11px}.top-actions{gap:8px}.navitem{font-size:9px}.camera-btn span{display:none}.battle-overlay{left:19px;right:19px;grid-template-columns:1fr 105px 1fr}.countdown{font-size:43px}.fighter-name{font-size:28px}.control-cap{display:none}}
@media(max-width:990px){.layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.side-header{grid-column:1/-1}.top-actions .alpha{display:none}.brand{min-width:190px}.nav{gap:5px}.navitem{font-size:8px}.arena-stage{height:500px}}
@media(max-width:660px){.shell{padding:0 12px}.topbar{height:67px}.brand{min-width:unset}.brand-title{font-size:15px}.brand-icon{width:34px;height:38px}.nav{display:none}.broadcast-tag{padding:8px;font-size:9px}.layout{padding-top:18px}.heading-row{margin-bottom:16px}.heading-row h1{font-size:33px}.viewers{display:none}.arena-stage{height:455px}.battle-overlay{top:65px;left:12px;right:12px;gap:4px;grid-template-columns:minmax(0,1fr) 67px minmax(0,1fr)}.fighter-name{font-size:22px}.fighter-sub{font-size:7px;letter-spacing:0}.match-center>span{font-size:10px}.countdown{font-size:30px}.bar-caption{font-size:6px}.bar-caption strong{font-size:10px}.corner-top-left{top:12px;left:12px}.corner-top-right{top:12px;right:12px}.pill-secondary,.quality,.mode-label{display:none}.standby-screen h2{font-size:39px}.below-grid,.sidebar{grid-template-columns:1fr}.broadcast-controls{padding:11px;flex-wrap:wrap}.control-buttons{gap:6px}.camera-btn{padding:7px}.speed-box{margin-left:auto}.side-header{grid-column:auto}footer{line-height:1.9}.stage-right-bottom{display:none}}
.webgl-error{display:grid;place-items:center;height:100%;color:#eb7f91;background:#121b2c;padding:30px;text-align:center}.replay-modal{position:fixed;inset:0;background:#020915d7;display:grid;place-items:center;z-index:10;padding:20px;backdrop-filter:blur(5px)}.replay-window{width:min(680px,95vw);padding:25px;background:linear-gradient(135deg,#11283b,#0a1320);border:1px solid #2b849a;box-shadow:0 0 75px #000}.replay-header{display:flex;justify-content:space-between;align-items:center;color:#65dfef;font:900 23px var(--display);letter-spacing:2px}.replay-header button{border:1px solid #3c6276;background:#152e42;padding:7px 13px}.replay-window p{font-size:12px;color:#a4bdce;line-height:1.8;margin:20px 0}.replay-window input{width:100%;accent-color:#42d4e9;margin:18px 0}.replay-bottom{display:flex;justify-content:space-between;align-items:center}.replay-bottom button{border:0;background:#3cdbed;color:#082537;font-size:10px;font-weight:900;letter-spacing:1px;padding:13px 22px}.replay-bottom span{font:900 23px var(--display)}

.sponsor-strip{min-height:37px;display:flex;align-items:center;gap:16px;padding:8px 20px;background:linear-gradient(90deg,#132d3a,#10202d 60%,#171d2e);border-top:1px solid #2b5060;color:#8db5c4;font-size:9px;letter-spacing:1.2px;font-weight:800}.sponsor-strip strong{color:#b4e0ed}.sponsor-strip em{font-style:normal;color:#688597;font-size:8px;margin-left:auto}@media(max-width:660px){.sponsor-strip em{display:none}.sponsor-strip{gap:10px;font-size:8px}}

/* Alpha 2 spectator tactical instrumentation */
.tactical-content{display:grid;grid-template-columns:155px 1fr;align-items:center;gap:14px;padding:16px 16px 17px}
.radar{width:100%;filter:drop-shadow(0 0 14px rgba(50,188,224,.10))}
.tactical-stats{min-width:0;display:flex;flex-direction:column;gap:11px}
.tactical-stats>div:not(.momentum-bar){display:flex;flex-direction:column;gap:3px}
.tactical-stats span{font-size:9px;letter-spacing:1.2px;color:#7694ae;font-weight:700}
.tactical-stats strong{font-size:16px;font-weight:800;color:#d9e8f4}
.tactical-stats small{font-size:9px;color:#7993a6}
.momentum-bar{height:7px;width:100%;background:#ab4057;overflow:hidden;border-radius:8px}
.momentum-bar>div{width:50%;height:100%;background:#47cee6;transition:width .3s}
.result-facts{font-size:10px;letter-spacing:1px;color:#b8d7ed;margin-top:10px}
@media(max-width:480px){.tactical-content{grid-template-columns:110px 1fr;gap:10px}}

/* Verified highlight markers, sourced from actual fight events. */
.highlight-cuts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.highlight-title{width:100%;font-weight:750;color:#64dff2;font-size:.77rem;letter-spacing:.09em;margin-bottom:3px;}
.highlight-jump{font:inherit;background:#123247;color:#d9eff8;border:1px solid #39708b;border-radius:5px;padding:8px 10px;cursor:pointer;font-size:.78rem;}
.highlight-jump:hover,.highlight-jump:focus-visible{background:#285a70;border-color:#66d5e9;}

/* v0.2.3: verified, read-only five-second combat-intensity broadcast gauge */
.pulse-panel{background:linear-gradient(160deg,#10293a,#0c1928);border-left:2px solid #39cadd;}
.pulse-heading{display:flex;gap:16px;align-items:center;padding:17px 0 10px;}
.pulse-heading strong{font:900 47px/.85 var(--display);color:#e3faff;letter-spacing:1px;min-width:55px;}
.pulse-heading>span{font:900 13px var(--display);letter-spacing:1.6px;color:#58d7ed;}
.pulse-track{height:9px;border-radius:6px;background:#163244;overflow:hidden;border:1px solid #35556a;}
.pulse-track>div{height:100%;width:0;background:linear-gradient(90deg,#35b6d9,#42dfff 65%,#f9af66);transition:width .25s ease;}
.pulse-facts{display:flex;justify-content:space-between;gap:8px;margin-top:13px;font-size:9px;font-weight:700;letter-spacing:.8px;color:#a6c2d1;}
.pulse-facts strong{font:900 16px var(--display);color:#efffff;margin-right:3px;}
.pulse-note{font-size:10px;color:#809eb0;line-height:1.5;margin:12px 0 0;}

/* v0.2.4 honest Canvas2D tactical fallback badge */
.fallback-label{position:absolute;z-index:2;bottom:50px;right:22px;font:800 9px var(--body);letter-spacing:1px;color:#6ccde6;background:#091c2bbc;padding:5px 9px;border:1px solid #2b6275;pointer-events:none;}

/* v0.2.5: read-only event-grounded tactical visual upgrade */
.fallback-label{font-size:10px;letter-spacing:1.15px;text-shadow:0 1px 8px #081625;white-space:normal;max-width:60%}
@media(max-width:660px){.fallback-label{font-size:8px;max-width:80%;}}

/* v0.2.6: engagement facts from authoritative positions (read-only). */
.engagement-panel{background:linear-gradient(152deg,#101f34,#0c1729);border-left:2px solid #6a9fd9}
.engagement-headline{font:900 21px var(--display);color:#e5f5ff;letter-spacing:1px;margin:16px 0 12px}
.engagement-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.engagement-grid>div{border:1px solid #294359;border-radius:6px;background:#09182a;padding:12px 10px;display:flex;flex-direction:column;gap:6px}
.engagement-grid small,.engagement-grid span{font-size:9px;color:#88adbf;letter-spacing:.7px}
.engagement-grid strong{font:900 22px/1.12 var(--display);color:#64e1fa;letter-spacing:.5px}
.engagement-grid>div:nth-child(2) strong{font-size:16px;color:#f3c3d1}
.engagement-disclosure{font-size:10px;color:#8aa0b1;line-height:1.5;margin:12px 0 0}

/* v0.2.7 — readable, accessible high-resolution instant replay theater. */
.replay-modal{overflow-y:auto;align-items:center;justify-content:center;}
.replay-window{width:min(890px,97vw);max-height:94vh;overflow-y:auto;padding:22px 26px;border-color:#327a9d;}
.replay-header{gap:18px}
.replay-header small{font:700 10px var(--body);letter-spacing:1.4px;color:#b4d0df;margin-left:10px;}
.replay-header button{color:#d4eff7;cursor:pointer;}
.replay-theater{position:relative;width:100%;height:clamp(230px,36vw,400px);margin-top:15px;border:1px solid #265a79;background:#061526;overflow:hidden;}
.replay-theater canvas{display:block;width:100%;height:100%;}
.replay-watermark{position:absolute;bottom:11px;left:13px;font:800 10px var(--body);letter-spacing:1.15px;color:#80dcea;background:#04101bd6;padding:7px 11px;border:1px solid #23617a;pointer-events:none;}
.replay-moment{margin-top:12px;font:800 13px var(--display);letter-spacing:1.2px;color:#c8eef5;min-height:18px;}
.replay-slider-wrap{position:relative;margin:4px 0 9px;}
.replay-window .replay-slider-wrap input{margin:17px 0 8px;position:relative;z-index:3;cursor:pointer;}
.replay-progress{position:absolute;top:50%;left:0;height:4px;background:#4ccff0;pointer-events:none;}
.replay-markers{position:absolute;inset:0 8px;pointer-events:none;}
.replay-marker{position:absolute;top:-4px;width:7px;height:16px;border:1px solid #ffe5b3;background:#ffba6a;z-index:4;transform:translateX(-50%);cursor:pointer;pointer-events:auto;}
.replay-marker:focus-visible,.highlight-jump:focus-visible{outline:2px solid #b7fbff;outline-offset:2px;}
.replay-bottom{justify-content:flex-start;flex-wrap:wrap;gap:7px 9px;}
.replay-bottom button{cursor:pointer;padding:10px 13px;}
.replay-bottom #replayToggle{min-width:158px;}
.replay-bottom .replay-speed{display:flex;align-items:center;gap:6px;color:#9dc0d4;font:800 10px var(--body);letter-spacing:1px;}
.replay-speed select{color:#d2faff;background:#102d42;border:1px solid #3e6981;padding:9px;cursor:pointer;}
.replay-bottom #replayTimestamp{margin-left:auto;white-space:nowrap;color:#e5f9ff;}
.highlight-cuts{max-height:134px;overflow-y:auto;padding-bottom:2px;}
.replay-integrity{margin:11px 0 0!important;font-size:10px!important;color:#85aabc!important;line-height:1.5!important;}
@media(max-width:660px){
 .replay-window{padding:14px 12px;}
 .replay-header{font-size:17px}.replay-header small{display:block;margin:4px 0 0;font-size:8px;}
 .replay-theater{height:250px}.replay-watermark{font-size:8px;}
 .replay-bottom #replayTimestamp{width:100%}.highlight-cuts{max-height:125px;}
}

/* v0.2.8: recorded-keyframe evidence and two-way verified moment jump controls */
.replay-evidence{border:1px solid #2b5d79;border-left:3px solid #48d5ef;border-radius:5px;background:linear-gradient(135deg,#092338,#091726);padding:13px 16px;margin:12px 0 8px;}
.replay-evidence-title{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;color:#66dff2;font:900 11px var(--body);letter-spacing:1.2px;}
.replay-evidence-title span{font:700 9px var(--body);color:#8aadc2;letter-spacing:.45px;}
.replay-evidence-row{margin:12px 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;}
.replay-evidence-row strong{font:900 14px var(--display);letter-spacing:.6px;color:#effbff;}
.replay-evidence-row span{font-size:11px;color:#9fc2d2;}
.replay-evidence-fighters{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.replay-evidence-fighters>div{border:1px solid #26465d;padding:9px 11px;background:#09192a;display:flex;flex-direction:column;gap:6px;}
.replay-evidence-fighters small{font:800 9px var(--body);letter-spacing:.8px;color:#76cce8;}
.replay-evidence-fighters>div:nth-child(2) small{color:#ef889e;}
.replay-evidence-fighters strong{font:900 17px var(--display);color:#f0f8ff;letter-spacing:.5px;}
.replay-bottom button[disabled]{opacity:.45;cursor:not-allowed;}
.replay-bottom #replayPreviousMoment,.replay-bottom #replayNextMoment{background:#18354c;color:#d1f4ff;border:1px solid #38677f;min-width:66px;}
.replay-bottom #replayPreviousMoment:focus-visible,.replay-bottom #replayNextMoment:focus-visible{outline:2px solid #b9ffff;outline-offset:2px;}
@media(max-width:660px){.replay-evidence{padding:10px}.replay-evidence-fighters strong{font-size:15px}.replay-evidence-row strong{font-size:12px}.replay-bottom #replayPreviousMoment,.replay-bottom #replayNextMoment{font-size:9px;min-width:55px;padding:9px 6px;}}

/* v0.2.9 — replay evidence export, no change to authoritative fight state */
#replayExport{background:#173a4b;color:#abf5f9;border:1px solid #468795;white-space:nowrap;font-size:10px;letter-spacing:.8px}
#replayExport:hover,#replayExport:focus-visible{background:#276579;border-color:#82f4ff}
.replay-export-status{margin:11px 0 6px!important;font-size:10px!important;line-height:1.5!important;color:#8cb9c7!important;padding:7px 10px;background:#0b2230;border-left:2px solid #4ac3d0}

/* v0.5 — Fight Night Presentation: caster lower-third, finishing-blow replay banner, tale-of-the-tape intro */
.caster{position:absolute;z-index:2;left:50%;bottom:58px;transform:translateX(-50%);max-width:min(760px,86%);display:flex;align-items:center;gap:12px;padding:9px 16px;background:linear-gradient(90deg,#071827e6,#0d2335e6);border:1px solid #2c5b73;border-left:3px solid var(--cyan);box-shadow:0 8px 30px #0008;font:700 13px/1.35 var(--body);color:#e4f4ff;opacity:0;transition:opacity .35s,transform .35s;pointer-events:none}
.caster.show{opacity:1;transform:translateX(-50%) translateY(-4px)}
.caster.hype{border-left-color:#ffb36a;background:linear-gradient(90deg,#2a1408ee,#0d2335e6);font-size:15px;color:#fff3e2}
.caster-tag{font:900 9px var(--body);letter-spacing:1.6px;color:var(--cyan);white-space:nowrap}
.caster.hype .caster-tag{color:#ffb36a}
.ko-banner{position:absolute;z-index:4;top:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:10px 12px 10px 18px;background:#1a0b07e6;border:1px solid #ff7a4a;box-shadow:0 0 40px #ff5a2a55;white-space:nowrap}
.ko-banner.hidden{display:none}
.ko-kicker{font:900 10px var(--body);letter-spacing:2px;color:#ffb36a;animation:koBlink 1s steps(2) infinite}
.ko-banner strong{font:900 22px var(--display);letter-spacing:1px;color:#fff}
.ko-banner em{font:700 9px var(--body);font-style:normal;letter-spacing:1px;color:#e3b39b}
.ko-banner button{border:1px solid #ff9a6a;background:#3a170c;color:#ffd0b4;font:900 10px var(--body);letter-spacing:1px;padding:7px 10px}
.arena-stage.slowmo:before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;box-shadow:inset 0 0 120px #ff6a2a33;background:repeating-linear-gradient(0deg,#0000 0 3px,#ffffff06 3px 4px)}
@keyframes koBlink{50%{opacity:.35}}
.result-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.intro{position:absolute;z-index:3;inset:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;padding:0 6%;background:radial-gradient(ellipse,#061522cc,#030914ee 75%);pointer-events:none}
.intro.hidden{display:none}
.intro-side{display:flex;flex-direction:column;gap:6px;animation:introIn .55s cubic-bezier(.2,.9,.2,1) both}
.intro-side.red{text-align:right;animation-name:introInR}
.intro-side h3{margin:0;font:900 clamp(30px,4.6vw,64px)/.9 var(--display);letter-spacing:1px}
.intro-side.blue h3{color:#7deeff;text-shadow:0 0 30px #00b7ff88}.intro-side.red h3{color:#ff8a9c;text-shadow:0 0 30px #ff3a5a88}
.intro-side small{font:800 10px var(--body);letter-spacing:2px;color:#9fb6c8}
.intro-stats{display:grid;grid-template-columns:auto auto;gap:4px 14px;margin-top:10px;font:700 11px var(--body);color:#c9dbe8;justify-content:start}
.intro-side.red .intro-stats{justify-content:end}
.intro-stats span{color:#6f8ca2;letter-spacing:1px;font-size:9px}
.intro-vs{font:900 clamp(40px,6vw,86px) var(--display);color:#fff;text-shadow:0 0 40px #ff7a4a;animation:introVs .7s .25s both}
.intro.out{animation:introOut .45s forwards}
@keyframes introIn{from{opacity:0;transform:translateX(-60px)}to{opacity:1;transform:none}}
@keyframes introInR{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:none}}
@keyframes introVs{from{opacity:0;transform:scale(2.4)}to{opacity:1;transform:none}}
@keyframes introOut{to{opacity:0}}
@media(max-width:660px){.caster{bottom:12px;font-size:11px;max-width:94%}.caster.hype{font-size:12px}.ko-banner{gap:8px;padding:7px 8px}.ko-banner em{display:none}.ko-banner strong{font-size:15px}.intro{gap:8px;padding:0 12px}.intro-stats{display:none}}

/* v0.6 — roster, matchup picker, Championship Night bracket and champion belt */
.matchup{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.matchup label{display:flex;flex-direction:column;gap:5px;font:800 8px var(--body);letter-spacing:1.2px;color:#7f9bb0}
.matchup select{background:#13293a;color:#d3e5f0;border:1px solid #355064;padding:8px;font:700 11px var(--body)}
.matchup button,.matchup .brains-pick{grid-column:1/-1}
.bracket{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 2px}
.bout{border:1px solid #2a4153;background:#0b1825;padding:8px 9px;display:flex;flex-direction:column;gap:3px;font:700 10px var(--body);color:#a9bfcf}
.bout.final{grid-column:1/-1;border-color:#7a6332;background:linear-gradient(90deg,#1d170b,#0b1825)}
.bout.live{border-color:var(--cyan);box-shadow:0 0 14px #35dbe933}
.bout small{font:900 8px var(--body);letter-spacing:1.4px;color:#6f8ca2}
.bout .won{color:#fff}.bout .lost{color:#4f6475;text-decoration:line-through}
.bout em{font-style:normal;font-size:9px;color:#e0b86a}
.champion-screen{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(ellipse,#2a1d06e0 0%,#030914f2 70%)}
.champion-screen.hidden{display:none}
.champion-screen h2{font:900 clamp(40px,6vw,84px)/.95 var(--display);margin:12px 0 8px;color:#ffd27a;text-shadow:0 0 40px #ffb43a88}
.champion-screen p{color:#d8c9a8;font-size:12px;max-width:640px}
.belt{width:min(420px,70%);height:64px;margin-bottom:34px;border-radius:14px;background:linear-gradient(90deg,#3a2708,#c99a3a 30%,#ffe29a 50%,#c99a3a 70%,#3a2708);display:grid;place-items:center;box-shadow:0 0 50px #ffb43a66;animation:beltIn .9s cubic-bezier(.2,.9,.2,1) both}
.belt-plate{width:86px;height:86px;border-radius:50%;background:radial-gradient(circle,#fff3c4,#d9a23c 60%,#7a5413);display:grid;place-items:center;font-size:42px;color:#4a3208;border:3px solid #ffe6a8}
@keyframes beltIn{from{opacity:0;transform:scale(.6) rotate(-6deg)}to{opacity:1;transform:none}}
.intro-bout{grid-column:1/-1;text-align:center;font:900 13px var(--body);letter-spacing:4px;color:#ffd27a;margin-bottom:-10px}

/* v0.8 League Season */
.league-table{margin-top:12px}
.league-row{display:grid;grid-template-columns:16px 1fr 44px 52px 40px;gap:6px;align-items:center;padding:7px 0;border-top:1px solid #1c3041;font:700 10px var(--body);color:#a9bfcf}
.league-row b{font:900 12px var(--display);letter-spacing:.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.league-row.champ{background:linear-gradient(90deg,#2a1d0688,transparent)}
.league-rank{color:#5f7c92}.league-elo{color:#fff;font:900 12px var(--display);text-align:right}.league-ko{color:#e0b86a;text-align:right}
.league-note{display:block;margin-top:8px;font-size:9px;color:#6f8ca2}
.league-sub{font:900 8px var(--body);letter-spacing:1.6px;color:#7f9bb0;margin:14px 0 6px}
.league-title-row{font-size:10px;color:#a9bfcf;padding:3px 0}
.intro-champ{font:900 11px var(--body);font-style:normal;letter-spacing:2px;color:#ffd27a;margin-bottom:4px}
.fighter-name.is-champ::before{content:'♛';font:900 .5em var(--body);color:#ffd27a;vertical-align:.45em;margin-right:.35em;text-shadow:0 0 14px #ffb43a}
.combatant.right .fighter-name.is-champ::before{margin-right:.35em}

/* v0.10 live odds and post-fight stats */
.odds{display:flex;align-items:center;gap:6px;margin-top:34px;font:800 10px var(--display);color:#dbe9f5}
.odds-track{flex:1;height:6px;background:var(--red,#ff596c);border:1px solid #304052;overflow:hidden;min-width:60px}
.odds-fill{height:100%;width:50%;background:var(--cyan,#35dbe9);transition:width .4s ease}
.odds-cap{font:800 7px var(--body);letter-spacing:1.4px;color:#7f9bb0;margin-top:3px}
.intro-vs{display:flex;flex-direction:column;align-items:center}
.intro-odds{font:800 11px var(--body);letter-spacing:1.6px;color:#ffd27a;text-shadow:none;margin-top:6px;white-space:nowrap}
.fight-stats{width:min(560px,90%);margin:6px auto 4px}
.stats-chart{width:100%;height:auto;background:#081421cc;border:1px solid #22354a}
.stats-legend{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;font:800 9px var(--body);letter-spacing:1px;margin-bottom:5px}
.stats-facts{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 16px;margin-top:7px;font:700 9px var(--body);letter-spacing:1px;color:#9fb6c8}
.stats-facts b{color:#fff}
@media(max-width:660px){.odds-cap,.odds{display:none}}

/* v0.11 Fan Picks */
.pick-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;margin:16px 0 0}
.pick-q{font:900 11px var(--body);letter-spacing:2.4px;color:#ffd27a;width:100%;text-align:center}
.pick-btn{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:150px;padding:9px 14px;background:#0d2131;border:1px solid #2c5b73;color:#dce9f6}
.pick-btn b{font:900 18px var(--display);letter-spacing:.8px}.pick-btn small{font:800 9px var(--body);letter-spacing:1.2px;color:#9fb6c8}
.pick-btn:hover{border-color:#7ce5f5}.pick-btn.picked{border-color:#ffd27a;box-shadow:0 0 18px #ffb43a55;background:#2a1d06}
.pick-row small#pickNote{width:100%;text-align:center;font-size:9px;letter-spacing:1px;color:#83a1b6}
.pick-result{font:800 11px var(--body);letter-spacing:1.4px;margin:4px 0 2px}
.pick-result.won{color:#9cf7c0}.pick-result.lost{color:#ef889e}.pick-result b{color:#fff}
.fan-line{font-size:10px;color:#a9bfcf;line-height:1.6}.fan-line b{color:#fff}

/* v0.14 Broadcast Autopilot */
.auto-badge{position:absolute;right:22px;bottom:58px;z-index:6;display:flex;align-items:center;gap:7px;padding:6px 11px;background:#081624d9;border:1px solid #2c6b82;color:#9fe9f7;font:800 10px var(--body);letter-spacing:1.6px}
.auto-badge i{width:7px;height:7px;border-radius:50%;background:#ff4d6a;box-shadow:0 0 10px #ff4d6a;animation:autoPulse 1.2s ease-in-out infinite}
.auto-badge span{color:#dce9f6}
.auto-badge.hidden{display:none}
@keyframes autoPulse{50%{opacity:.25}}

/* v0.16 Rivalries */
.intro-series{display:block;margin-top:6px;font:800 11px var(--body);letter-spacing:1.8px;color:#9fe9f7}
.rivalry-grid table{width:100%;border-collapse:collapse;margin-top:4px;font:700 10px var(--body);letter-spacing:.6px}
.rivalry-grid th{font-weight:800;text-align:left;padding:3px 4px;color:#9fb6c8}
.rivalry-grid tr:first-child th{text-align:center}
.rivalry-grid td{text-align:center;padding:3px 4px;color:#c9d8e6;border-top:1px solid #1d3346}
.rivalry-grid td.up{color:#9cf7c0}.rivalry-grid td.down{color:#ef889e}.rivalry-grid td.self{color:#3b5468}
/* v0.19 UP NEXT card (auto-play countdown) */
.up-next{display:flex;align-items:baseline;justify-content:center;gap:12px;margin:8px auto 2px;padding:7px 14px;border:1px solid #2f5d7a;background:#0a1824cc;max-width:640px}
.up-next.hidden{display:none}
.up-next small{font:900 10px var(--body);letter-spacing:2px;color:#7fd8ff}
.up-next b{font:900 18px var(--display);letter-spacing:1px;color:#fff}
.up-next em{font:700 10px var(--body);font-style:normal;letter-spacing:1px;color:#a9c3d6}
/* v0.21 Stream mode (?stream=1): the arena stage fills the window; page chrome and click targets are hidden. */
.stream-bar{display:none}
body.stream-mode{overflow:hidden;background:#03070d}
body.stream-mode .arena-stage{position:fixed;inset:0;width:100vw;height:100vh;z-index:1000}
body.stream-mode #btnStartHero,body.stream-mode #pickRow,body.stream-mode .result-actions,body.stream-mode #koSkip,body.stream-mode .standby-note{display:none}
body.stream-mode .stream-bar{display:flex;align-items:center;gap:18px;position:absolute;left:0;right:0;bottom:0;z-index:7;height:46px;padding:0 24px;background:linear-gradient(90deg,#04101ef2,#0a1d30f2);border-top:1px solid #2c5b73;font:800 13px var(--body);letter-spacing:1.4px;color:#cfe6f5;white-space:nowrap;overflow:hidden}
body.stream-mode .stream-live{color:#ff5a6e;font-weight:900}
body.stream-mode .stream-brand{font:900 16px var(--display);letter-spacing:2px;color:#fff}
body.stream-mode #streamTicker{overflow:hidden;text-overflow:ellipsis}
body.stream-mode .caster{bottom:74px;font-size:16px;max-width:min(1100px,80%)}
body.stream-mode .stage-left-bottom{bottom:62px}
body.stream-mode .stage-right-bottom{bottom:62px;display:block}
body.stream-mode .auto-badge{bottom:96px}
.stream-matchup{display:none}
:is(body.stream-mode,body.viewer-mode) .stream-matchup{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:22px}
:is(body.stream-mode,body.viewer-mode) .stream-matchup small{font:900 13px var(--body);letter-spacing:3px;color:#7fd8ff}
:is(body.stream-mode,body.viewer-mode) .stream-matchup b{font:900 46px var(--display);letter-spacing:1px;color:#fff}
:is(body.stream-mode,body.viewer-mode) .stream-matchup em{font:700 15px var(--body);font-style:normal;letter-spacing:1.6px;color:#a9c3d6}
/* Larger HUD for viewers watching on phones and TVs. */
/* v0.42.1 The broadcast HUD scales up only in big windows (an OBS source is 1920 wide; an embed is not). */
@media(min-width:1200px){body.stream-mode .battle-overlay,body.stream-mode .corner-top-left,body.stream-mode .corner-top-right{zoom:1.3}
body.stream-mode .ko-banner,body.stream-mode .result-screen,body.stream-mode .intro{zoom:1.15}}
/* v0.22 Chat Picks (?chat=1) */
.chat-result{font:800 12px var(--body);letter-spacing:1.4px;color:#ffd27a;margin:4px 0}
.chat-result.hidden{display:none}
.chat-prompt{margin-top:10px;font:800 16px var(--body);letter-spacing:2px;color:#cfe6f5}
body.stream-mode .chat-prompt b{font:900 18px var(--body);letter-spacing:1px;color:#ffd27a}
.chat-split{display:flex;width:420px;height:10px;margin-top:6px;border:1px solid #2c5b73;background:#0a1824}
.chat-split i{display:block;height:100%}.chat-split i:last-child{flex:1}
/* v0.23 Clip export: the stage switches to portrait (9:16) while the Top Plays reel is recorded. */
body.clip-recording .arena-stage{width:540px;height:960px;margin:0 auto}
/* v0.24 Server channel: the host starts fights, so this page has no start or auto-play controls. */
body.channel-mode #btnStartHero,body.channel-mode #btnAuto,body.channel-mode #btnPlay,body.channel-mode #btnReset{display:none}
/* Public viewer mode: every control that would send a command is hidden (the server rejects them anyway). */
body.viewer-mode .operations,body.viewer-mode #pickRow,body.viewer-mode #btnFightAgain,body.viewer-mode #btnNewSeason,
body.viewer-mode .champ-panel button,body.viewer-mode .speed-box,body.viewer-mode #pickNote{display:none}

/* v0.28 ?net=1 connection readout */
.net-stats{position:absolute;left:22px;bottom:58px;z-index:6;padding:6px 10px;background:#081624e6;border:1px solid #2c6b82;color:#9fe9f7;font:700 11px var(--body);letter-spacing:1.2px;white-space:nowrap}
body.stream-mode .net-stats{bottom:96px}

/* v0.30 FIGHTERS gallery and profile detail */
.fighters-modal{position:fixed;inset:0;z-index:60;background:#02060cd9;backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:40px 16px}
.fighters-panel{width:min(1500px,100%);background:#0a1522;border:1px solid #2a4458;box-shadow:0 30px 90px #000a;padding:26px 28px 22px}
.fighters-panel header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}
.fighters-panel header small{font-size:11px;font-weight:800;letter-spacing:1.6px;color:#8fb3c8}
.fighters-panel h2{font:900 46px/1 var(--display);letter-spacing:1px;margin:6px 0}
.fighters-close,.fighters-back,.fighters-save{background:#122738;border:1px solid #33586c;color:#bfe9f5;padding:9px 13px;font-size:11px;font-weight:900;letter-spacing:1.2px}
.fighters-save{background:var(--fc,#3de3f7);color:#071221;border-color:transparent}
.detail-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.fighters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.profile-card{position:relative;text-align:left;background:linear-gradient(160deg,var(--fd),#0b1724 62%);border:1px solid #2b4558;border-top:3px solid var(--fc);padding:18px 16px 14px;color:#e6f2fa;display:flex;flex-direction:column;gap:7px;overflow:hidden}
.profile-card:hover{border-color:var(--fc);transform:translateY(-2px)}
.profile-rank{position:absolute;right:14px;top:12px;font:900 22px var(--display);color:var(--fc)}
.profile-emblem{position:absolute;right:-6px;bottom:-26px;font:900 130px var(--display);color:var(--fc);opacity:.08;pointer-events:none}
.profile-name{font:900 32px/1 var(--display);color:var(--fc);letter-spacing:.6px}
.profile-card small{font-size:9px;font-weight:800;letter-spacing:1.2px;color:#93abc0}
.profile-elo{display:flex;align-items:baseline;gap:10px;margin-top:6px}.profile-elo strong{font:900 38px var(--display)}
.profile-elo span,.detail-big span{font-size:10px;font-weight:800;letter-spacing:1.2px;color:#8fb3c8}
.profile-elo em,.detail-big em{font-style:normal}.up{color:#5dff9a}.down{color:#ff6a7d}
.profile-spark{display:block;max-width:100%;height:auto}
.profile-record{font:800 22px var(--display)}.profile-record span{font:800 11px var(--body);color:#ffb36a;margin-left:9px;letter-spacing:1px}
.profile-form{display:flex;gap:5px;flex-wrap:wrap;min-height:24px}.muted{color:#6f8aa0;font-size:10px;font-weight:800;letter-spacing:1px}
.form-chip{font:800 11px var(--body);font-style:normal;padding:4px 7px;letter-spacing:.6px;color:#fff;background:#4a5c6b}.form-chip.W{background:#1f8f5a}.form-chip.L{background:#8f2a3b}
.profile-tag{font-size:11px;font-weight:800;letter-spacing:1px;color:#ffd27a;margin:2px 0 0;line-height:1.5}
.fighters-note{font-size:10px;color:#6f8aa0;letter-spacing:.6px;margin:16px 0 0}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px}
.detail-big{display:flex;gap:40px;margin-bottom:12px}.detail-big strong{display:block;font:900 64px/1 var(--display)}
.fighters-panel h3{font-size:12px;letter-spacing:2px;color:#8fb3c8;margin:4px 0 10px}
.h2h-table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:18px}.h2h-table td{padding:8px 4px;border-top:1px solid #1c3041;font-weight:800}
.h2h-table td:nth-child(2){font-family:var(--display);font-size:20px}.h2h-table td:last-child{color:#ffb36a;font-size:10px;letter-spacing:1.2px;text-align:right}
.detail-specs{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:8px 14px;font-size:10px;font-weight:800;letter-spacing:1px;color:#8fb3c8;margin-bottom:12px}.detail-specs b{color:#e6f2fa;font-size:13px}
@media (max-width:760px){.detail-grid{grid-template-columns:1fr}.detail-big{gap:20px}.fighters-panel{padding:18px 16px}}

/* v0.31 Tale of the tape on the stream standby card */
.tape{display:grid;grid-template-columns:1fr auto 1fr;gap:28px;align-items:center;margin:16px auto 4px;width:min(940px,94%)}
.tape .profile-form{flex-wrap:nowrap}
.tape>i{white-space:nowrap;font:900 13px/1.15 var(--display);letter-spacing:2px;color:#8fb3c8;font-style:normal;text-align:center}
.tape-side{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.tape-side.red{align-items:flex-end}
.tape-side span{font-size:11px;font-weight:800;letter-spacing:1.4px;color:#8fb3c8}
.tape-side b{font:900 34px/1 var(--display);color:#fff}.tape-side b small{font:800 12px var(--body);color:#ffb36a;margin-left:8px;letter-spacing:1px}
.tape-side.red .profile-form{justify-content:flex-end}
.tape-story{margin-top:10px;font:900 20px var(--display);letter-spacing:1.4px;color:#ffd27a}

/* v0.33 Result storyline */
.story-result{font:900 clamp(18px,1.8vw,28px) var(--display);letter-spacing:1.6px;color:#ffd27a;text-shadow:0 0 24px #ff9f4a66;margin:2px 0 6px}
.story-result.hidden{display:none}

/* v0.34 Season Finale (channel) and hall of fame */
.finale-card{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(ellipse at 50% 40%,#160f2cfa,#03070dfc 70%);text-align:center}
.finale-card.hidden{display:none}
.finale-card>small{font-size:12px;font-weight:800;letter-spacing:3px;color:#8fb3c8}
.finale-card h2{font:900 clamp(40px,5.4vw,84px)/1 var(--display);margin:0;letter-spacing:2px}.finale-card h2 span{color:#ffd27a}
.finale-tiles{display:grid;grid-template-columns:repeat(4,minmax(150px,230px));gap:16px;margin:18px 0 8px}
.finale-tile{position:relative;overflow:hidden;background:linear-gradient(170deg,#132233,#0a1420);border:1px solid #2b4558;border-top:3px solid var(--fc);padding:18px 14px 16px;display:flex;flex-direction:column;gap:6px}
.finale-tile small{font-size:11px;font-weight:900;letter-spacing:2px;color:#ffd27a}.finale-tile i{position:absolute;right:-4px;bottom:-22px;font:900 92px var(--display);font-style:normal;color:var(--fc);opacity:.12}
.finale-tile b{font:900 32px/1 var(--display);color:var(--fc);word-break:break-word}.finale-tile span{font-size:11px;font-weight:800;letter-spacing:1px;color:#cfe6f5}
.finale-card em{font-style:normal;font:900 18px var(--display);letter-spacing:2px;color:#8fb3c8}
.hall-of-fame{margin-top:18px;border-top:1px solid #1c3041;padding-top:12px}.hall-of-fame p{margin:6px 0;font-size:12px;font-weight:800;letter-spacing:1px;color:#cfe6f5}
@media (max-width:900px){.finale-tiles{grid-template-columns:repeat(2,minmax(130px,1fr))}}
/* v0.34 The stream card's generic small/b rules must not restyle the tale of the tape (debut sides wrapped). */
:is(body.stream-mode,body.viewer-mode) .stream-matchup .tape-side b{font:900 34px/1 var(--display);white-space:nowrap;letter-spacing:0}
:is(body.stream-mode,body.viewer-mode) .stream-matchup .tape-side b small{font:800 12px var(--body);letter-spacing:1px;color:#ffb36a;margin-left:8px}
/* v0.38 Pocket Arena: phones (most public-site viewers). The stage keeps the fight, the score and the caster;
   camera/physics labels, corner tags, fighter subtitles and the sponsor strip step aside. */
@media (max-width:600px){
 .shell{padding:0 12px}
 .topbar{gap:8px}.brand{min-width:0;gap:8px}.brand-title{font-size:15px}.top-actions{gap:8px;min-width:0}.alpha{display:none}
 .broadcast-tag{padding:7px 8px;font-size:8px;letter-spacing:.5px;gap:6px;min-width:0;white-space:normal;line-height:1.3}
 .heading-row{margin-bottom:14px}.heading-row h1{font-size:26px}.viewers{display:none}
 .arena-stage{height:min(64vh,520px)}
 .stage-left-bottom,.stage-right-bottom,.corner-top-right,.corner-top-left .pill-secondary,.fighter-sub,.sponsor-strip{display:none}
 .corner-top-left{top:10px;left:10px}
 .battle-overlay{left:10px;right:10px;top:44px;grid-template-columns:1fr 78px 1fr;gap:8px}
 .fighter-name{font-size:19px;margin-bottom:8px}.countdown{font-size:30px}.versus{font-size:13px}.match-center>span{font-size:9px;letter-spacing:1px}
 .bar-caption{font-size:7px;letter-spacing:.4px}.bar-caption strong{font-size:10px}
 .caster{left:10px;right:10px;bottom:10px;max-width:none;transform:none;font-size:12px;padding:8px 10px}.caster.show{transform:translateY(-4px)}.caster-tag{display:none}
 .auto-badge{top:10px;right:10px;bottom:auto;font-size:8px;padding:4px 7px;letter-spacing:1px}
 .impact-splash{font-size:30px}
 .standby-screen h2,.result-screen h2{font-size:30px}.standby-screen p,.result-screen p{font-size:11px;padding:0 10px}
 .result-facts{font-size:10px;padding:0 8px}.fight-stats svg{max-width:100%;height:auto}
 .broadcast-controls{flex-wrap:wrap;padding:10px}
}
@media (max-width:600px){
 body.viewer-mode .standby-screen .outer-orbit,body.viewer-mode .standby-screen>p{display:none}
 :is(body.stream-mode,body.viewer-mode) .stream-matchup b{font-size:26px}
 .tape{gap:10px;width:96%}.tape>i{font-size:9px}
 :is(body.stream-mode,body.viewer-mode) .stream-matchup .tape-side b{font-size:20px}
 .tape-side span{font-size:8px;letter-spacing:.6px}.tape .form-chip{font-size:8px;padding:3px 4px}.tape-story{font-size:14px;padding:0 8px}
}
/* v0.41 Big Screen: on desktop the battle column stays on screen while the fight card scrolls with the page;
   the telemetry panels moved into the sidebar so the left column fits the window. */
@media(min-width:991px){
 .layout{align-items:start}
 .main-column{position:sticky;top:0;max-height:100vh;overflow-y:auto;scrollbar-width:thin;padding-bottom:18px}
 .arena-stage{height:clamp(340px,min(39vw,calc(100vh - 330px)),610px)}
}
.sidebar .below-grid{grid-template-columns:1fr;margin:0;gap:17px}
.sidebar .below-grid .panel{padding:16px 18px}
.sidebar .stat{padding:0 8px}.sidebar .stat:first-child{padding-left:0}.sidebar .stat:last-child{border-right:0}
.sidebar .stat>div{font-size:24px;white-space:nowrap}.sidebar .stat .slash{font-size:16px}.sidebar .stat>span{font-size:8px}
@media(max-width:990px){.sidebar .below-grid{grid-column:1/-1;grid-template-columns:1.28fr 1fr}}
@media(max-width:660px){.sidebar .below-grid{grid-template-columns:1fr}}
.fs-btn{background:#122738;border:1px solid #304a5e;padding:9px 10px;color:#9bb6c6;font-size:10px;font-weight:800}
.fs-btn:hover,.fs-btn[aria-pressed=true]{border-color:#368eaa;color:#6fe1f5}
.stage-fs{position:absolute;z-index:6;top:10px;left:50%;transform:translateX(-50%);width:34px;height:34px;display:grid;place-items:center;padding:0;font-size:17px;line-height:1;color:#d8eef8;background:#06101cb8;border:1px solid #36546a;opacity:0;transition:opacity .2s}
.arena-stage:hover .stage-fs,.stage-fs:focus-visible{opacity:1}
@media(hover:none){.stage-fs{opacity:.8}}
body.stream-mode:not(.embedded) .stage-fs,body.clip-recording .stage-fs{display:none}
body.embedded .stage-fs{opacity:.75}
.arena-stage:fullscreen{width:100vw;height:100vh;background:#03070d}
.arena-stage:-webkit-full-screen{width:100vw;height:100vh;background:#03070d}
@media(min-width:1500px){body.stage-fullscreen .battle-overlay,body.stage-fullscreen .corner-top-left,body.stage-fullscreen .corner-top-right{zoom:1.3}
 body.stage-fullscreen .ko-banner,body.stage-fullscreen .result-screen,body.stage-fullscreen .intro{zoom:1.15}
 body.stage-fullscreen .caster{font-size:16px;bottom:34px}}
/* v0.42 Web edition: no Developer Lab, Evidence Lab or host status link (they need the local host). */
body.web-edition #navDocs,body.web-edition #navEvidence,body.web-edition footer a[href="/api/health"]{display:none}
/* Phones: the control bar has the Full screen button; the stage button only shows in full screen (to exit). */
@media(max-width:600px){.stage-fs{display:none}body.stage-fullscreen .stage-fs{display:grid;opacity:.8}}
/* v0.43 Full screen without the Fullscreen API (iPhone browsers): the stage fills the window. */
body.stage-pseudo{overflow:hidden}
body.stage-pseudo .arena-stage{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;z-index:1000;margin:0}
/* v0.43 Phones: the walkout card stacks the two corners instead of setting them side by side (they ran off the screen). */
@media(max-width:600px){
 .intro{grid-template-columns:1fr;align-content:center;justify-items:center;text-align:center;gap:12px;padding:0 16px}
 .intro-side,.intro-side.red{text-align:center;align-items:center;max-width:100%}
 .intro-side h3{font-size:clamp(28px,9vw,40px);overflow-wrap:anywhere}
 .intro-vs{font-size:40px}
 .intro-odds{white-space:normal;text-align:center}
}
@media(max-width:600px){body.stage-fullscreen .stage-fs{top:3px;width:30px;height:30px;font-size:15px}}
/* v0.47 Share the Fight: the link shows here when the clipboard is not available (or after a copy, to check it). */
.share-link{margin-top:12px;width:min(560px,90%);background:#0b1b29;border:1px solid #2f5367;color:#9fe9f5;font:600 11px var(--body);padding:8px 10px;text-align:center}.share-link.hidden{display:none}
/* v0.48 Classic Fights: the most dramatic fight per pairing, each a one-click exact replay. */
.classics-list{display:flex;flex-direction:column;gap:7px}.classic{display:block;width:100%;text-align:left;background:#0f2131;border:1px solid #284257;padding:9px 11px;color:#b9cddb}.classic:hover,.classic:focus-visible{border-color:var(--cyan);background:#132b3e}.classic-vs{font:900 13px var(--display);letter-spacing:.7px;display:flex;gap:6px;align-items:baseline}.classic-vs i{font-style:normal;color:#5d7a90;font-size:10px}.classic-call{font-size:10px;line-height:1.45;color:#d9e6ef;margin-top:4px}.classic-facts{font-size:8px;font-weight:800;letter-spacing:1px;color:#6f8ea4;margin-top:5px}.classic.playing{border-color:#ffd27a}.classic.playing .classic-facts:after{content:' · ON NOW';color:#ffd27a}.classics-more{margin-top:10px;width:100%}
/* v0.53 Reduced motion (the system setting): page animations keep their fades but drop slides, scales and blinking.
   The 3D renderer drops camera shake, the victory spin and orbit, and confetti on its own. */
@media (prefers-reduced-motion:reduce){
 .impact-splash.show{animation:splashFade .9s ease-out forwards}
 .intro-side,.intro-side.red,.intro-vs,.belt{animation:fadeOnly .4s both}
 .ko-kicker,.auto-badge i{animation:none}
 html{scroll-behavior:auto}
}
@keyframes splashFade{0%{opacity:0}15%,70%{opacity:1}100%{opacity:0}}
@keyframes fadeOnly{from{opacity:0}to{opacity:1}}
/* v0.55 Fight of the Day. */
.daily-card{display:flex;align-items:baseline;gap:8px;font:900 18px var(--display);letter-spacing:.8px;margin:2px 0 12px}.daily-card i{font-style:normal;color:#5d7a90;font-size:12px}.daily-card small{margin-left:auto;font:800 9px var(--body);letter-spacing:1px;color:#6f8ea4}
.daily-record{font:800 9px var(--body);letter-spacing:1px;color:#8fb3c8;margin:-4px 0 12px}.daily-record b{color:#e6f0f8}.daily-record .won{color:#62e8a0}.daily-record .lost{color:#ff8a8e}
/* v0.57 The walkout sizes itself to the arena stage, not the window: the arena can be a small frame on a phone (the research
   page embed is about 360x200), a full window, or a portrait clip. Names sit side by side and scale with the stage; they
   stack only when the stage itself is portrait. */
.arena-stage{container-type:size;container-name:stage}
@container stage (min-width:0px){
 .intro{gap:min(22px,2.2cqw);padding:0 3cqw}
 .intro-side h3{font-size:clamp(13px,min(6.2cqw,15cqh),64px);white-space:nowrap;overflow-wrap:normal}
 .intro-side small{font-size:clamp(7px,min(1.5cqw,3.4cqh),10px);letter-spacing:min(2px,.3cqw)}
 .intro-vs{font-size:clamp(20px,min(7.5cqw,18cqh),86px)}
 .intro-odds,.intro-series,.intro-champ{font-size:clamp(7px,min(1.4cqw,3.2cqh),11px);letter-spacing:min(1.6px,.25cqw)}
 .intro-bout{font-size:clamp(8px,min(1.6cqw,3.4cqh),13px);letter-spacing:min(4px,.5cqw);margin-bottom:0}
}
@container stage (min-aspect-ratio:9/10){
 .intro{grid-template-columns:1fr auto 1fr;justify-items:stretch;align-content:center;text-align:left}
 .intro-side.blue{text-align:left;align-items:flex-start}
 .intro-side.red{text-align:right;align-items:flex-end;max-width:none}
 .intro-odds{white-space:nowrap;text-align:center}
}
@container stage (max-aspect-ratio:9/10){
 .intro{grid-template-columns:1fr;align-content:center;justify-items:center;text-align:center}
 .intro-side.blue,.intro-side.red{text-align:center;align-items:center}
 .intro-odds{white-space:normal}
}
@container stage (max-width:639px) or (max-height:329px){.intro-stats{display:none}}
@container stage (min-width:640px) and (min-height:330px){.intro-stats{display:grid}}
/* v0.57 In a small broadcast frame the phone rule sets the auto-play badge's top while stream mode sets its bottom, which
   stretched it into a tall box over the walkout: keep one anchor, and keep the badge off the walkout. */
@media (max-width:600px){body.stream-mode .auto-badge{bottom:auto}}
.arena-stage:has(#intro:not(.hidden)) .auto-badge{visibility:hidden}
/* v0.57 iPhone Safari enlarges text it judges too small, especially in landscape, which pushed walkout names off the
   stage; the page sizes its own text, so opt out. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* v0.58 The broadcast view from the website: a BROADCAST nav button opens ?stream=1, and in the web edition only (never
   in a stream capture) a small exit link shows for 3 s after the mouse moves or the screen is tapped, like video controls. */
.nav-broadcast{color:#7ce5f5}.nav-broadcast:hover{color:#fff}
.stream-exit{position:fixed;z-index:1100;top:10px;left:10px;padding:6px 10px;border:1px solid #2c6b82;background:#081624d9;color:#9fe9f7;font:800 10px var(--body);letter-spacing:1.4px;text-decoration:none;opacity:0;transition:opacity .3s}
.stream-exit[hidden]{display:none}.stream-exit:focus-visible,body.show-exit .stream-exit{opacity:.95}
/* v0.59 In the broadcast view the auto-play badge appears only while a countdown runs (BELL IN 4, NEXT FIGHT IN 4), on one
   line; during a fight, a replay or the walkout it stays out of the picture (the ticker already says LIVE). */
body.stream-mode .auto-badge{white-space:nowrap}
body.stream-mode .auto-badge:not(.counting){display:none}
/* v0.59.1/0.59.2 On phones, upright or sideways (short screens), the full arena page gets the same rule: the badge sits over the small stage, so it shows only
   during countdowns there too (AUTO-PLAY's state is also on its button in Match Operations). */
@media(max-width:600px),(max-height:500px){.auto-badge:not(.counting){display:none}}
/* v0.60 Phones, upright or sideways, in the broadcast view or the full-screen arena: the overlays between fights shrink to
   what matters (who is next, who won, what is up next) so the arena stays in view, and the auto-play badge is a small tag
   in the top corner. Before, sideways they overflowed the screen and the badge sat on the fighters' names. */
@media (max-width:600px),(max-height:500px){
 :is(body.stream-mode,body.stage-fullscreen) .auto-badge{top:8px;right:8px;bottom:auto;font-size:8px;padding:3px 7px;letter-spacing:1px;gap:5px}
 :is(body.stream-mode,body.stage-fullscreen) .standby-screen{justify-content:flex-end;padding:0 12px 9%;background:linear-gradient(#03091400 30%,#030914e6 78%);backdrop-filter:none}
 :is(body.stream-mode,body.stage-fullscreen) .standby-screen :is(.outer-orbit,.standby-eye,h2,p,.standby-note){display:none}
 :is(body.stream-mode,body.stage-fullscreen) .stream-matchup :is(.tape,.tape-story){display:none}
 :is(body.stream-mode,body.stage-fullscreen) .stream-matchup b{font-size:clamp(18px,7vmin,40px)}
 :is(body.stream-mode,body.stage-fullscreen) .stream-matchup :is(small,em){font-size:clamp(8px,2.6vmin,13px)}
 :is(body.stream-mode,body.stage-fullscreen) .result-screen{justify-content:center;gap:4px;padding:0 12px}
 :is(body.stream-mode,body.stage-fullscreen) .result-screen :is(#fightStats,#winnerFacts,#storyResult,#pickResult,#chatResult,.result-actions,#shareLink){display:none}
 :is(body.stream-mode,body.stage-fullscreen) .result-screen h2{font-size:clamp(24px,9vmin,48px);margin:4px 0}
 :is(body.stream-mode,body.stage-fullscreen) .result-screen p{font-size:clamp(9px,2.8vmin,12px);margin:0}
 :is(body.stream-mode,body.stage-fullscreen) .up-next{margin-top:8px;max-width:100%}
 :is(body.stream-mode,body.stage-fullscreen) .corner-top-right{display:none}
 /* v0.61 the ticker is slimmer on phones, and the pre-fight card and the caster sit above it (the odds line was under it). */
 body.stream-mode .stream-bar{height:30px;gap:10px;padding:0 10px;font-size:10px;letter-spacing:1px}
 body.stream-mode .stream-brand{font-size:11px;letter-spacing:1px}
 body.stream-mode .standby-screen{padding-bottom:42px}
 body.stream-mode .caster{bottom:38px;font-size:12px;max-width:94%}
 body.stream-mode .stage-left-bottom,body.stream-mode .stage-right-bottom{display:none}
}
/* v0.60 a short message inside the stage (the event feed is hidden in the broadcast view), e.g. the iPhone full-screen tip. */
/* v0.61 at the bottom of the stage, clear of the names and the walkout. */
.stage-toast{position:absolute;z-index:8;bottom:12px;left:50%;transform:translateX(-50%);max-width:min(92%,420px);padding:9px 12px;background:#081624ee;border:1px solid #2c6b82;color:#dce9f6;font:700 11px/1.45 var(--body);letter-spacing:.4px;text-align:center}
.stage-toast.hidden{display:none}
body.stream-mode .stage-toast{bottom:40px}
@media (min-width:601px) and (min-height:501px){body.stream-mode .stage-toast{bottom:58px}}
body.stream-mode.touch .stage-fs{display:grid;opacity:.8}
