.bracket-block-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin:12px 0;font-size:14px}.bracket-block-controls select{font:inherit;padding:8px;border:1px solid #b7cbd8;border-radius:6px;background:#fff;max-width:100%}.bracket-block-controls span{color:#526d7b}.bracket-block-links{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 20px}.bracket-block-links a{display:grid;place-items:center;min-width:44px;min-height:44px;padding:6px 10px;border:1px solid #cadce4;border-radius:6px;background:#f3f8fa}.bracket-blocks{display:grid;grid-template-columns:repeat(var(--block-columns,1),minmax(0,1fr));gap:20px}.bracket-block{min-width:0;border:1px solid #d5e3e9;border-radius:10px;padding:16px;background:#fff;scroll-margin-top:calc(var(--official-subnav-top,88px) + var(--official-subnav-height,70px) + 24px)}.bracket-block h3{margin:0 0 12px;font-size:16px}.bracket-block-final{grid-column:1/-1}.bracket-block-scroll{overflow-x:auto;max-width:100%}.bracket-block-scroll svg{display:block;margin-inline:auto;max-width:100%!important;min-width:0!important;height:auto}.has-bracket-blocks{overflow:visible!important}.bracket-block-links a:focus-visible,.bracket-block-scroll:focus-visible,.bracket-block-controls select:focus-visible{outline:3px solid #ba821c;outline-offset:2px}
@media(min-width:1800px){.official-shell:has(.bracket-block-controls){max-width:2400px;width:calc(100% - 48px)}#tournament-content:has(.bracket-block-controls){max-width:2400px;width:calc(100% - 48px)}}
@media(max-width:600px){.bracket-block{padding:10px}.bracket-blocks{gap:14px}}
@media print{.bracket-block-controls,.bracket-block-links{display:none}.bracket-blocks{display:block}.bracket-block{break-inside:avoid;margin-bottom:16px}}

#tournament-content .bracket-block{scroll-margin-top:var(--event-scroll-offset,160px)}

/* A soft finals backdrop; the bracket and scores remain on a white surface. */
:is(.bracket-final-backdrop,.bracket-whole-final){position:relative;isolation:isolate;background:#fff}
:is(.bracket-final-backdrop,.bracket-whole-final)::before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:0 0 auto;height:240px;max-height:70%;border-radius:inherit;background:radial-gradient(ellipse at 50% 25%,#edf4f6a8,transparent 70%);opacity:.8}
:is(.bracket-final-backdrop,.bracket-whole-final).has-champion::before{background:url('/images/tournaments/finals-celebration.svg') center top/auto 240px no-repeat,radial-gradient(ellipse at 50% 28%,#fff2cfb0,transparent 70%);animation:finals-glow 4s ease-in-out 3 both}
:is(.bracket-final-backdrop,.bracket-whole-final).has-champion .bracket-block-scroll{animation:finals-reveal 1.4s ease-out both}
@keyframes finals-glow{0%{opacity:.3}45%{opacity:1}100%{opacity:.75}}
@keyframes finals-reveal{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){:is(.bracket-final-backdrop,.bracket-whole-final).has-champion::before,:is(.bracket-final-backdrop,.bracket-whole-final).has-champion .bracket-block-scroll{animation:none}}
@media print{:is(.bracket-final-backdrop,.bracket-whole-final)::before{display:none}:is(.bracket-final-backdrop,.bracket-whole-final).has-champion .bracket-block-scroll{animation:none}}

.bracket-whole-final > svg{background:transparent}
.bracket-whole-final.has-champion{animation:finals-reveal 1.4s ease-out both}
@media(prefers-reduced-motion:reduce){.bracket-whole-final.has-champion{animation:none}}
@media print{.bracket-whole-final.has-champion{animation:none}}

/* Sideways finals: a local gold halo follows the trophy instead of a top podium. */
:is(.bracket-final-backdrop,.bracket-whole-final).bracket-side-final::before{inset:0;height:100%;max-height:none;background:radial-gradient(ellipse 170px 115px at var(--champion-x,50%) var(--champion-y,50%),#edf4f699,transparent)}
:is(.bracket-final-backdrop,.bracket-whole-final).bracket-side-final.has-champion::before{background:radial-gradient(ellipse 85px 75px at var(--champion-x,50%) var(--champion-y,50%),#ffe8a18c,transparent),radial-gradient(ellipse 210px 140px at var(--champion-x,50%) var(--champion-y,50%),#fff2cfb0,transparent)}

/* Samples share the public bracket layout without a nested scrolling viewport. */
.reference-page .sample-scroll.sample-blocks{overflow:visible;max-height:none;min-width:0;padding:12px}
.reference-page .sample-blocks .sample-canvas{min-width:0;width:100%}
.reference-page .sample-blocks .bracket-block{scroll-margin-top:calc(var(--site-header-height,88px) + 24px)}
@media(min-width:1800px){.reference-page body>main:has(.sample-blocks){max-width:2400px;width:100%}}

.bracket-block-controls{position:relative}
.bracket-control-title{display:flex;align-items:center;gap:8px}
.bracket-control-title label{margin:0}
.bracket-control-help summary{display:grid;place-items:center;width:24px;height:24px;border:1px solid #b7cbd8;border-radius:50%;color:#386276;cursor:pointer;list-style:none;font-weight:700}
.bracket-control-help summary::-webkit-details-marker{display:none}
.bracket-control-help summary:focus-visible{outline:2px solid #386276;outline-offset:3px}
.bracket-control-bubble{position:absolute;z-index:30;top:100%;left:0;width:min(420px,100%);box-sizing:border-box;margin-top:8px;padding:14px;border:1px solid #cadce4;border-radius:10px;background:#f3f8fa;color:#254657;box-shadow:0 8px 24px #173e5026;font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.bracket-control-help[open] .bracket-control-bubble{animation:bracket-help-appear .18s ease-out}
@keyframes bracket-help-appear{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.bracket-control-help[open] .bracket-control-bubble{animation:none}}
