:root{--bg:#071326;--panel:#0c1c32;--line:#263a51;--accent:#d9bb7b;--muted:#8e9daf;--light:#f5e5bc;--glow:#2485b4;--tone:#0a2546}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#f5f3ee;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:14px}body.red{--bg:#210b10;--panel:#321219;--line:#61323a;--glow:#b33927;--tone:#53121b}button,.button{font:inherit;color:inherit;background:transparent;border:1px solid var(--line);border-radius:6px;padding:10px 15px;cursor:pointer;transition:.2s}button:hover,.button:hover{background:#ffffff13;border-color:var(--accent)}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button.active,.gold{background:var(--accent);color:#171b22;border-color:var(--accent)}button:disabled{opacity:.4;cursor:not-allowed}.toolbar{height:80px;display:flex;align-items:center;padding:0 30px;border-bottom:1px solid var(--line);gap:22px}.brand img{width:180px;filter:brightness(0) invert(1)}.divider{height:28px;width:1px;background:var(--line)}.event-label{font-size:15px;letter-spacing:2px}.toolbar-right{margin-left:auto;display:flex;align-items:center;gap:12px}.themes{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:7px}.themes button{border:0;padding:7px 12px}.saved{font-size:11px;color:#93acaa;margin-right:10px}.workspace{display:grid;grid-template-columns:222px 1fr;min-height:calc(100vh - 80px)}aside{border-right:1px solid var(--line);padding:30px 18px;display:flex;flex-direction:column}.aside-heading{font-size:12px;padding:0 12px 22px;color:var(--accent);letter-spacing:2px}.aside-heading span{display:block;font-size:9px;margin-top:8px;color:var(--muted);letter-spacing:1px}nav{display:flex;flex-direction:column;gap:6px}nav button{border:1px solid transparent;text-align:left;padding:13px 12px;border-radius:5px;color:#acb8c8;display:flex;gap:15px;align-items:center}nav button em{font-size:11px;font-style:normal;color:#687b94;font-family:monospace}nav button.active{color:var(--light);background:linear-gradient(90deg,#d9bb7b22,transparent);border-color:#d9bb7b40}nav button.active em{color:var(--accent)}nav button.active:after{content:'•';margin-left:auto;color:var(--accent)}.aside-bottom{margin-top:auto;padding:35px 12px 0;color:var(--accent);font-size:11px;line-height:2}.aside-bottom small{color:var(--muted)}.live-dot{display:inline-block;background:#d9bb7b;width:5px;height:5px;border-radius:50%;margin-right:6px}main{padding:30px 38px 20px;min-width:0}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--accent)}h1{font-size:24px;font-weight:500;margin:9px 0 0;letter-spacing:2px}.view-switch{display:flex;padding:4px;border:1px solid var(--line);border-radius:6px}.view-switch button{border:0;font-size:12px;padding:8px 15px}.view-switch button.active{background:#d9bb7b20;color:var(--accent)}.stage{position:relative;aspect-ratio:16/9;max-height:calc(100vh - 320px);min-height:360px;border:1px solid #bda27066;box-shadow:0 15px 60px #0006;overflow:hidden;isolation:isolate;background:var(--tone);container-type:size}.scene-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:-3;transition:background-image .3s;transform:scale(1.005)}.scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,#020817a6,#02081740 65%,#02081730);z-index:-2}.red .scene-shade{background:linear-gradient(90deg,#250408b0,#25040850 70%,#25040840)}.ornament{position:absolute;inset:18px;border:1px solid #f5d08b22;z-index:-1;pointer-events:none}.stage-top{position:absolute;left:4.5%;right:4.5%;top:6%;display:flex;justify-content:space-between;color:#e4d5b7;font-size:1.8cqw;letter-spacing:.15em}.stage-top span:last-child{font-size:1cqw;letter-spacing:.23em;padding-top:.4cqw}.stage-footer{position:absolute;bottom:5%;left:4.5%;right:4.5%;display:flex;align-items:center;justify-content:space-between;font-size:1.25cqw;letter-spacing:.2em;color:#d5d1c8}.stage-footer img{width:15cqw;filter:brightness(0) invert(1);position:absolute;left:50%;transform:translateX(-50%)}#content{position:absolute;inset:17% 7% 17%;display:flex;flex-direction:column;justify-content:center}.hero{padding-left:1%;position:relative}.hero .kicker{font-size:1.35cqw;letter-spacing:.42em;color:var(--light);display:flex;align-items:center;gap:15px}.hero .kicker:before{content:'';display:inline-block;width:4cqw;height:1px;background:var(--accent)}.hero h2{font-family:"Songti SC","Noto Serif CJK SC",SimSun,serif;font-size:10cqw;font-weight:800;line-height:1.2;letter-spacing:.12em;margin:2cqw 0 1cqw;color:var(--light);text-shadow:0 3px 0 #6d572733,0 0 40px #e4bb6025}.hero h3{font-size:2.8cqw;font-weight:400;letter-spacing:.4em;margin:0 0 2cqw}.hero p{font-size:1.5cqw;letter-spacing:.28em;color:#d7dfeb}.hero .hero-line{height:1px;background:linear-gradient(90deg,var(--accent),transparent);width:47%;margin:2.7cqw 0 1.7cqw}.hero .meta{font-size:1.3cqw;color:#ded7cb;letter-spacing:.12em}.stage h2.title{font-size:4.5cqw;color:var(--light);font-family:SimSun,serif;letter-spacing:.16em;margin:0 0 2.2cqw}.stage .lead{font-size:1.6cqw;line-height:1.9;color:#e2e4e9;max-width:70%;white-space:pre-line}.photo{text-align:center;align-items:center;display:flex;flex-direction:column;justify-content:center;height:100%}.photo .small{font-size:1.45cqw;letter-spacing:.5em;color:var(--light)}.photo h2{font-size:7.3cqw;color:var(--light);font-family:SimSun,serif;letter-spacing:.14em;margin:2cqw 0}.photo p{font-size:2cqw;letter-spacing:.3em}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1cqw}.team{background:#061326a8;border:1px solid #d9bb7b44;padding:1.05cqw 1.2cqw;display:flex;align-items:center;gap:1cqw;font-size:1.6cqw}.red .team{background:#390a11b0}.team b{color:var(--accent);font-size:1.2cqw;font-weight:400}.team small{font-size:1cqw;margin-left:auto;color:#a3d0b4}.section-sub{font-size:1.25cqw;color:#c5cdda;margin:-1.1cqw 0 1.6cqw;letter-spacing:.12em}.rules{display:grid;grid-template-columns:1fr 1fr;gap:1.3cqw 3cqw}.rule{border-top:1px solid #d9bb7b66;padding-top:1.2cqw;display:flex;gap:1.2cqw}.rule b{font-size:2cqw;color:var(--accent)}.rule h3{font-size:1.7cqw;margin:0 0 .6cqw}.rule p{font-size:1.25cqw;margin:0;line-height:1.7;color:#cbd3dc;white-space:pre-line}.schedule{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2cqw}.schedule div{border-left:1px solid var(--accent);padding:1cqw 1.4cqw;background:#08172a99}.schedule b{display:block;font-size:2.5cqw;color:var(--light);font-weight:400}.schedule h3{font-size:1.6cqw;font-weight:400;margin:1cqw 0 .4cqw}.schedule small{color:#c8c9d3;font-size:1cqw}.bracket{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5cqw}.round{display:flex;flex-direction:column;justify-content:space-around;gap:.5cqw}.round h3{font-size:1.3cqw;color:var(--accent);font-weight:400;text-align:center;margin:0 0 .6cqw}.match{background:#071528d9;border:1px solid #c3ab7455;padding:.5cqw .8cqw;font-size:1.1cqw}.red .match{background:#31080ed9}.match div{display:flex;justify-content:space-between;gap:5px;line-height:1.7}.match .winner{color:#f1d596}.match .pending{color:#8f9eaf}.score-stage{display:flex;align-items:center;justify-content:center;gap:4cqw}.score-team{text-align:center;width:30%}.score-team strong{display:block;font-size:2.5cqw;font-weight:500;margin-bottom:1cqw}.score-team b{font-size:9cqw;font-weight:300;color:var(--light)}.score-stage .vs{font-size:2cqw;color:var(--accent)}.podium{display:flex;align-items:flex-end;justify-content:center;gap:2cqw}.award{width:26%;text-align:center;background:linear-gradient(#cfad661a,#d5a23b33);border:1px solid #cfad6677;padding:2cqw 1cqw}.award.champion{padding-top:3.5cqw;padding-bottom:3.5cqw}.award .medal{font-size:3cqw;color:var(--accent)}.award h3{font-size:1.6cqw;color:var(--accent);font-weight:400}.award b{font-size:2cqw}.award small{display:block;color:#beb9ae;font-size:1cqw;margin-top:1cqw}.lunch-time{font-size:6cqw;font-weight:300;letter-spacing:.08em;color:var(--light);margin:1cqw 0}.playback{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);gap:10px}.playback>div{display:flex;align-items:center;gap:10px}.playback button{padding:7px 12px;font-size:12px}.playback #pageCount{font-size:12px;color:var(--accent);min-width:60px;text-align:center}.keyboard{font-size:10px;color:var(--muted)}.keyboard i{padding:0 8px;font-style:normal}.quick{display:flex;align-items:center;gap:35px;margin-top:24px}.quick strong{font-size:17px;letter-spacing:1px;font-weight:500}.quick b{font-size:30px;color:var(--light);font-weight:300}.quick>div>span{font-size:11px;color:var(--muted)}.quick button{font-size:12px}.note{margin-top:22px;color:#708096;font-size:10px}dialog{color:#f3f4f7;background:var(--bg);border:1px solid var(--line);border-radius:14px;width:min(1000px,95vw);max-height:90vh;padding:0;box-shadow:0 30px 120px #000b}dialog::backdrop{background:#0009;backdrop-filter:blur(7px)}.modal-head{padding:25px 30px;display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:7px 0 0;font-size:25px}.edit-tabs{padding:0 30px 15px;display:flex;gap:8px;border-bottom:1px solid var(--line);flex-wrap:wrap}.edit-tabs button{font-size:12px}#editBody{padding:22px 30px;max-height:55vh;overflow:auto}.modal-foot{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding:18px 30px}.modal-foot span{margin-right:auto;font-size:11px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:8px;color:#c1cad8;font-size:12px}.field.full{grid-column:1/-1}input,textarea,select{font:inherit;color:#f5f5f5;background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:11px;min-width:0;width:100%}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}textarea{min-height:95px;resize:vertical}.editor-team{display:grid;grid-template-columns:30px 1fr 80px;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.editor-team label{display:flex;align-items:center;gap:7px;font-size:12px}.help{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 18px}.editor-match{display:grid;grid-template-columns:70px 1fr 55px 20px 55px 1fr 100px;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:13px 0;font-size:12px}.editor-match input{padding:8px}.editor-match button{padding:8px;font-size:11px}.editor-match .right{text-align:right}.selectedMatch{margin-bottom:20px}.toast,#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:13px 22px;background:#e8d39f;color:#152033;border-radius:6px;z-index:100;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1}#exitPresent,.presentation-nav{display:none}body.present .toolbar,body.present aside,body.present .page-heading,body.present .playback,body.present .quick,body.present .note{display:none}body.present .workspace{display:block}body.present main{padding:0;height:100vh;display:grid;place-items:center;background:#000}body.present .stage{width:min(100vw,177.777vh);height:min(100vh,56.25vw);min-height:0;max-height:none;aspect-ratio:16/9;border:0}body.present #exitPresent{display:block;position:fixed;top:15px;right:15px;background:#0009;opacity:0;z-index:20}body.present #exitPresent:hover,body.present #exitPresent:focus{opacity:1}body.present .presentation-nav{display:flex;position:fixed;bottom:10px;left:50%;transform:translateX(-50%);gap:20px;align-items:center;background:#0009;border-radius:5px;opacity:0;padding:5px;z-index:20}body.present .presentation-nav:hover{opacity:1}@media(min-width:1700px){main{padding:35px 60px}.stage{max-height:calc(100vh - 335px)}}@media(max-width:1100px){.workspace{grid-template-columns:175px 1fr}aside{padding:25px 10px}.toolbar{padding:0 18px}.event-label,.saved,.keyboard{display:none}main{padding:24px}.quick{gap:20px}.quick button{display:none}.stage{min-height:300px}.toolbar-right{gap:7px}}@media(max-width:750px){.toolbar{height:auto;min-height:70px;flex-wrap:wrap;gap:10px;padding:12px}.brand img{width:140px}.toolbar-right{width:100%;justify-content:space-between}.toolbar-right button{font-size:11px;padding:8px}.divider{display:none}.workspace{display:block}aside{padding:10px;border-right:0;border-bottom:1px solid var(--line)}.aside-heading,.aside-bottom{display:none}nav{flex-direction:row;overflow:auto}nav button{white-space:nowrap;padding:9px}nav button em{display:none}main{padding:18px 12px}.page-heading{gap:8px}h1{font-size:19px}.eyebrow{font-size:8px}.view-switch button{font-size:10px;padding:8px}.stage{min-height:0;max-height:none}.playback{flex-wrap:wrap}.quick{gap:14px}.quick b{font-size:23px}.quick strong{font-size:14px}.quick>div>span{font-size:9px}.form-grid{grid-template-columns:1fr}.editor-match{grid-template-columns:45px 1fr 40px 10px 40px 1fr;gap:5px}.editor-match button{grid-column:2/-1}.modal-foot{padding:15px;flex-wrap:wrap}.modal-foot span{width:100%}.edit-tabs,#editBody,.modal-head{padding-left:16px;padding-right:16px}}
.stage[data-scene="1"] .ornament{border-radius:12cqw 0 0 0}.stage[data-scene="2"] .ornament{border-left:3px double #d9bb7b66;border-right:3px double #d9bb7b66}.stage[data-scene="3"] .scene-shade{background:linear-gradient(90deg,#030a16d9,#030a1680)}.stage[data-scene="4"] .ornament{border-top:4px double #d9bb7b66}.stage[data-scene="5"] .scene-shade{background:radial-gradient(ellipse at center,#0a243c30,#030a16bb)}.stage[data-scene="6"] .ornament{border-radius:8cqw}.stage[data-scene="7"] .scene-shade{background:linear-gradient(90deg,#030a16b0,#030a1680)}.stage[data-scene="8"] .ornament{inset:25px;border:3px double #d9bb7b55}.stage[data-scene="9"] .ornament{border-top:0;border-bottom:3px double #d9bb7b88}.stage[data-scene="10"] .scene-shade{background:linear-gradient(90deg,#080b18b0,transparent)}.stage[data-scene="11"] .ornament{border-radius:50%;inset:15px 7%}.red .stage[data-scene="3"] .scene-shade,.red .stage[data-scene="7"] .scene-shade{background:linear-gradient(90deg,#250408cc,#25040866)}
.stage[data-scene="7"] #content{justify-content:flex-start;inset:16% 7% 16%}.stage[data-scene="7"] h2.title{font-size:3.3cqw;margin-bottom:1.1cqw}.stage[data-scene="7"] .section-sub{font-size:1.1cqw;margin:0 0 1cqw}.bracket{height:27cqw;min-height:0}.round{position:relative;padding-top:2cqw;gap:.35cqw}.round h3{position:absolute;top:0;left:0;right:0;margin:0;font-size:1.15cqw}.match{padding:.18cqw .7cqw;font-size:1cqw;flex-shrink:0}.match div{line-height:1.2}.stage[data-scene="4"] h2.title{font-size:3.4cqw;margin-bottom:1.8cqw}.stage[data-scene="4"] .schedule b{font-size:2cqw}.stage[data-scene="4"] .schedule div{padding:.6cqw 1cqw}.stage[data-scene="4"] .schedule h3{margin:.5cqw 0 .3cqw;font-size:1.3cqw}

.quick>button{margin-left:auto}

.stage-top span:last-child{font-size:1.55cqw;letter-spacing:.12em;padding-top:0;color:var(--light)}.hero .kicker{font-size:1.7cqw;letter-spacing:.18em}
/* Stage artwork and branding occupy separate areas. */
.scene-bg{bottom:11%;background-size:cover}.stage-footer{height:11%;bottom:0;left:0;right:0;padding:0 4.5%;background:var(--bg);border-top:1px solid #d9bb7b55}.stage-footer img{width:14cqw}.stage-top{top:5%;font-size:1.55cqw}.stage-top span:last-child{font-size:1.55cqw}#content{inset:15% 7% 16%}.stage h2.title{font-size:3.6cqw;margin-bottom:1.5cqw}.section-sub{font-size:1.2cqw;margin:0 0 1.5cqw}.stage[data-scene="agenda"] .schedule b{font-size:1.9cqw}.stage[data-scene="agenda"] .schedule div{padding:.7cqw 1cqw}.stage[data-scene="agenda"] .schedule h3{font-size:1.4cqw;margin:.8cqw 0 .4cqw}.section-menu{list-style:none;margin:0;padding:0;width:85%}.section-menu li{display:flex;align-items:center;gap:2cqw;border-bottom:1px solid #d9bb7b55;padding:1.5cqw 0}.section-menu b{color:var(--accent);font-size:2cqw;font-weight:400}.section-menu span{font-size:2.5cqw}.section-menu small{margin-left:auto;font-size:1.4cqw;color:#cbd0d9}.group-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1cqw}.group-score,.rank{background:#061323d9;border:1px solid #d9bb7b66;padding:1cqw}.red .group-score,.red .rank{background:#310a12df}.group-score h3,.rank h3{font-size:2cqw;color:var(--light);margin:0 0 1cqw}.group-score small,.rank small{display:block;font-size:.95cqw;color:#bcc5d1;font-weight:400;margin-top:.6cqw}.score-pair{display:flex;flex-direction:column;text-align:center;gap:.6cqw;font-size:1.45cqw;padding-bottom:1cqw;border-bottom:1px solid #d9bb7b55}.score-pair b{font-size:3.5cqw;color:var(--light)}.mini-matches{margin-top:.8cqw}.mini-matches>div{display:grid;grid-template-columns:1fr auto 1fr;gap:.35cqw;font-size:.85cqw;padding:.45cqw 0;border-bottom:1px solid #ffffff15}.mini-matches span:last-child{text-align:right}.mini-matches .current{color:var(--accent)}.rank table{border-collapse:collapse;width:100%;font-size:1.2cqw}.rank th,.rank td{padding:.8cqw .2cqw;text-align:right;border-bottom:1px solid #ffffff25}.rank th:first-child,.rank td:first-child{text-align:left}.rank .qualified{color:var(--light);font-weight:bold}.group-team{font-size:1.7cqw;padding:1.3cqw 0;border-bottom:1px solid #ffffff25}.group-team b{font-size:1.1cqw;color:var(--accent);margin-right:.8cqw}.vertical-bracket{height:28cqw;position:relative}.vertical-bracket svg{position:absolute;width:100%;height:100%;overflow:visible}.vertical-bracket path{fill:none;stroke:#e6c780;stroke-width:.22}.bracket-node{position:absolute;transform:translate(-50%,-50%);width:22%;padding:.4cqw .7cqw;background:#061326ed;border:1px solid #d9bb7b88;font-size:1.2cqw}.red .bracket-node{background:#310a12ed}.bracket-node small{font-size:.9cqw;color:var(--accent)}.bracket-node>div{display:flex;justify-content:space-between;line-height:1.6}.bracket-node .winner{color:#f5d795;font-weight:bold}.qualify{border-top:1px solid var(--line);margin:20px 0;padding:10px 0}.qualify p{font-size:12px;color:var(--muted)}.qualify button{margin-top:12px}.workspace aside{max-height:calc(100vh - 80px);overflow:auto;position:sticky;top:0}.stage[data-scene="bracket"] #content{justify-content:flex-start}.stage[data-scene="scores"] #content{justify-content:flex-start}.stage[data-scene="scores"] h2.title,.stage[data-scene="bracket"] h2.title{font-size:3.1cqw;margin-bottom:.7cqw}.stage[data-scene="scores"] .section-sub,.stage[data-scene="bracket"] .section-sub{margin-bottom:1cqw}.editor-match{grid-template-columns:40px 1fr 55px 15px 55px 1fr 95px}.stage[data-scene="photo"] .photo h2{font-size:7.3cqw}
@media(max-width:750px){.workspace aside{max-height:none;position:static}.editor-match{grid-template-columns:35px 1fr 42px 10px 42px 1fr}.editor-match button{grid-column:2/-1}}
#layoutTools:not([hidden]){display:flex;flex-wrap:wrap;align-items:flex-end;gap:.65rem;padding:1rem;background:var(--bg);border:1px solid #9c8955;margin-bottom:12px}
#layoutTools label{display:grid;gap:.25rem;font-size:.77rem}
#layoutTools :is(input,textarea,select){background:#111a28;color:white;border:1px solid #918668;padding:.35rem;font:inherit}
#layoutTools input{width:6rem}#layoutTools small{flex-basis:100%}
.layout-editing [data-text-object]{cursor:move;touch-action:none;outline:1px dashed #cfb77d88}
.layout-editing [data-selected]{outline:2px solid #ffe29d;z-index:5}
[data-text-object]{white-space:pre-line}
.stage[data-scene="agenda"] .timeline {
  display:flex;flex-direction:column;min-height:0;flex:1;gap:0;
  margin:0;padding:0 .9cqw;list-style:none;
  background:linear-gradient(90deg,var(--bg),color-mix(in srgb,var(--bg) 85%,transparent) 75%,transparent);
  border-block:1px solid color-mix(in srgb,var(--accent) 45%,transparent);
}
.timeline li {
  flex:1;position:relative;min-height:0;display:grid;align-items:center;
  grid-template-columns:14% 4% 29% 1fr;column-gap:1.2%;padding:0 .85cqw;
}
.timeline li + li {border-top:1px solid #fff2}
.timeline li i {position:relative;height:100%;display:grid;place-items:center;color:var(--accent)}
.timeline li i::before {content:'';position:absolute;top:0;bottom:-1px;width:2px;background:currentColor}
.timeline li:first-child i::before {top:50%}
.timeline li:last-child i::before {bottom:50%}
.timeline li i::after {content:'';z-index:1;width:.72cqw;height:.72cqw;border-radius:50%;background:var(--bg);border:.15cqw solid currentColor}
.stage[data-scene="agenda"] .timeline b {text-align:right;font-size:1.7cqw;font-variant-numeric:tabular-nums}
.stage[data-scene="agenda"] .timeline h3 {font-size:1.9cqw;margin:0;color:var(--light)}
.timeline small {font-size:1.35cqw;line-height:1.2}

/* Readable stage typography and stronger ascending bracket. */
.lunch-time{font-weight:700;letter-spacing:.035em;text-shadow:0 3px 18px #0008}
.vertical-bracket path{stroke:#ffe1a0;stroke-width:.55;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 2px #edbd5eaa)}
.bracket-node{border:2px solid #dfbc78;border-radius:.45cqw;box-shadow:0 .5cqw 1.4cqw #0007;padding:.55cqw .75cqw;font-weight:600}
.bracket-node small{display:block;font-size:1cqw;font-weight:700;letter-spacing:.08em;border-bottom:1px solid #e5c88455;padding-bottom:.25cqw;margin-bottom:.25cqw}
.bracket-node:last-child{border-color:#ffe4a7;box-shadow:0 0 1.4cqw #dfbc7844;background:linear-gradient(130deg,#21324a,#0a182d)}
.red .bracket-node:last-child{background:linear-gradient(130deg,#69252b,#310a12)}
.sort-row{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:12px;margin:8px 0;background:var(--panel)}
.sort-row[draggable=true],nav button[draggable=true]{cursor:grab}
.sort-grip{color:var(--accent);min-width:38px;font-weight:600}
.sort-row strong{flex:1}.sort-actions{display:flex;gap:6px;margin-left:auto}.sort-actions button{padding:8px 12px}
.schedule-fields{display:grid;grid-template-columns:1fr 1.3fr 2fr;gap:8px;flex:1;min-width:0}.schedule-fields input{width:100%;min-width:0}
.dragging{opacity:.45}.drop-target{outline:2px solid var(--accent);background:#d9bb7b20}
@media(max-width:700px){.schedule-fields{grid-template-columns:1fr}.sort-row{gap:6px}}

.vertical-bracket .bracket-node{background-color:#08172b}.red .vertical-bracket .bracket-node{background-color:#310a12}

#layoutTools .font-note{display:block;max-width:250px;font-size:11px;line-height:1.5;color:var(--muted);margin-top:5px}#layoutFont{max-width:270px}

/* Long, uninterrupted winner paths rise from eight individual team cards. */
.stage[data-scene="bracket"] #content{inset:14% 5% 15%}
.stage[data-scene="bracket"] .scene-shade{background:linear-gradient(90deg,#031023e8,#031023bb)}
.red .stage[data-scene="bracket"] .scene-shade{background:linear-gradient(90deg,#29050de8,#29050dbb)}
.championship-tree{position:relative;width:100%;height:32cqw;flex:1;min-height:0;margin-top:.2cqw}
.championship-tree svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.championship-tree path{fill:none;stroke:#a59a80;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.championship-tree path.advanced{stroke:#ffe19a;stroke-width:5.5;filter:drop-shadow(0 0 3px #e9bb5d99)}
.bracket-seed{position:absolute;top:76.3889%;height:22%;width:11.3%;transform:translateX(-50%);border:1px solid #d9bb7b99;border-top:3px solid #d9bb7b;border-radius:.4cqw;background:linear-gradient(155deg,#152b47,#071325);padding:.55cqw .35cqw;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4cqw;text-align:center;box-shadow:0 .5cqw 1.3cqw #0007}
.red .bracket-seed{background:linear-gradient(155deg,#5d202b,#290910)}
.bracket-seed small{font-size:.85cqw;color:var(--accent);letter-spacing:.12em}
.bracket-seed strong{font-size:1.25cqw;line-height:1.4;word-break:break-all;font-weight:700}
.bracket-seed.advanced{border-color:#ffe19a;box-shadow:0 0 1cqw #dfb45933}
.bracket-round{position:absolute;transform:translateX(-50%);display:flex;gap:.5cqw;align-items:center;justify-content:center;white-space:nowrap;padding:.2cqw .45cqw;background:#08172be8;border:1px solid #d9bb7b40;border-radius:3px}
.red .bracket-round{background:#310a12e8}
.bracket-round small{font-size:.8cqw;color:#ddd1b6;font-weight:600}
.bracket-round b{font-size:1.05cqw;color:#ffe19a;letter-spacing:.06em}
.bracket-crown{position:absolute;left:50%;top:0;width:30%;height:12.2222%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:1cqw;border:2px solid #e8cb84;background:linear-gradient(120deg,#28374b,#0b1b33);box-shadow:0 0 2cqw #d9bb7b20;border-radius:.4cqw;padding:.25cqw 1cqw}
.red .bracket-crown{background:linear-gradient(120deg,#733333,#380b15)}
.bracket-crown small{font-size:1.1cqw;font-weight:800;color:#fbe3a4;white-space:nowrap}
.bracket-crown strong{font-size:1.5cqw;font-weight:700;overflow-wrap:anywhere;line-height:1.15}
.bracket-crown.confirmed{box-shadow:0 0 2cqw #edc66a66}

.bracket-round small{font-size:1cqw}.bracket-round b{font-size:1.3cqw}.bracket-round{gap:.3cqw}

/* All 24 results remain visible; long team names cannot squeeze out scores. */
.stage[data-scene="scores"] #content{inset:14% 4.5% 14%}
.scores-grid{flex:1;min-height:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:1cqw}
.scores-grid .group-score{min-width:0;min-height:0;display:flex;flex-direction:column;padding:.8cqw;background:#07182df2;border-radius:.4cqw}
.red .scores-grid .group-score{background:#310b15f2}
.scores-grid .group-score h3{margin:0 0 .6cqw;line-height:1.15;flex:none}
.scores-grid .group-score h3 small{margin-top:.35cqw;font-size:.95cqw;line-height:1.3}
.score-list{display:grid;grid-template-rows:repeat(6,minmax(0,1fr));flex:1;min-height:0}
.score-line{display:grid;grid-template-columns:minmax(0,1fr) 4.5cqw minmax(0,1fr);gap:.3cqw;align-items:center;border-top:1px solid #d9bb7b38;padding:.25cqw .15cqw;min-width:0;min-height:0}
.score-line.current{background:#d9bb7b18;box-shadow:inset 2px 0 #e8c98b}
.score-team{min-width:0;font-size:1.05cqw;line-height:1.35;overflow-wrap:anywhere;text-align:center;color:#f3f1e9}
.match-score{white-space:nowrap;text-align:center;font-size:1.8cqw;line-height:1.2;font-weight:800;color:#ffe4a7;font-variant-numeric:tabular-nums;display:flex;align-items:center;justify-content:center;gap:.25cqw}
.match-score i{font-size:1.3cqw;font-style:normal;color:#d6c5a1}
.scores-grid .score-team{width:auto;align-self:center}

.speech-photo h2{margin:.5cqw 0 1.4cqw}
.speech-guest{width:70%;margin:0 auto;padding:1.2cqw 2cqw;border-top:1px solid #e4c88988;border-bottom:1px solid #e4c88988;background:linear-gradient(90deg,transparent,#07182da6,transparent)}
.red .speech-guest{background:linear-gradient(90deg,transparent,#310b15a6,transparent)}
.guest-label{display:block;font-size:1.1cqw;letter-spacing:.3cqw;color:#dfc791;margin-bottom:.55cqw}
.guest-name{display:block;font-size:3.2cqw;font-weight:700;line-height:1.25;color:#ffe6b4;overflow-wrap:anywhere}
.guest-details{display:flex;flex-wrap:wrap;justify-content:center;gap:.4cqw 1.6cqw;margin-top:.8cqw;font-size:1.65cqw;font-weight:600;line-height:1.5;color:#f4eee4}
.guest-org,.guest-role{max-width:100%;overflow-wrap:anywhere;white-space:pre-line}
.speech-photo p{margin:1.2cqw 0 0;font-size:1.4cqw}
html[lang="ja"] .photo h2{font-size:6cqw;letter-spacing:.12em}
html[lang="ja"] .photo p{font-size:1.65cqw;letter-spacing:.05em}
html[lang="ja"] .speech-photo p{font-size:1.35cqw}
html[lang="ja"] .hero h3{font-size:3.4cqw}
html[lang="ja"] .section-menu span{font-size:2.1cqw}
html[lang="ja"] .stage-top{font-size:1.3cqw}
html[lang="ja"] .stage-top span:last-child{font-size:1.3cqw}
html[lang="ja"] .section-sub{font-size:1.05cqw}
html[lang="ja"] .group-score h3 small{font-size:.85cqw}

/* Step-based flow: nav items with delete buttons, step suffixes. */
.nav-item{display:flex;gap:4px;align-items:stretch}
.nav-item>button[data-step]{flex:1;min-width:0}
.step-suffix{color:var(--muted);font-size:.92em;white-space:nowrap}
.nav-del{flex:none;display:flex;align-items:center;justify-content:center;padding:0 9px;color:#8e9daf;font-size:15px;line-height:1}
.nav-del:hover{color:#ffb4b4;border-color:#b35555;background:#b3555522}
.restore-steps{margin-top:8px;font-size:11px;padding:8px 10px;text-align:center;color:var(--muted)}
.restore-steps:hover{color:var(--light)}
/* Rules tables on the match-rules page, matching the content template. */
.rules-table{width:100%;border-collapse:collapse;font-size:1.3cqw;margin:0 0 1.4cqw;background:#061323a8}
.red .rules-table{background:#310a12a8}
.rules-table th,.rules-table td{padding:.55cqw .9cqw;border:1px solid #d9bb7b44;text-align:left;line-height:1.45}
.rules-table th{color:var(--accent);font-weight:400;background:#d9bb7b14}
.rules-table td:first-child{width:20%;color:var(--light)}
/* Speech body on content speech pages. */
.speech-text{margin:2cqw auto 0}
/* Japanese single-line rule: never wrap these labels, shrink via fitJa() instead. */
html[lang="ja"] #nav [data-step],html[lang="ja"] .timeline b,html[lang="ja"] .section-menu span,html[lang="ja"] .section-menu small,html[lang="ja"] .award h3,html[lang="ja"] .award b,html[lang="ja"] .stage-top span,html[lang="ja"] .eyebrow{white-space:nowrap}
/* 观众模式（?view=1）：只保留舞台展示、左侧导航翻页、中/日切换、全屏/大屏播放与退出。 */
body.viewer #edit,body.viewer #layoutToggle,body.viewer #layoutTools,body.viewer #popout,body.viewer #autoplay,body.viewer #scoreQuick,body.viewer .themes,body.viewer .nav-del,body.viewer .restore-steps{display:none!important}
