/* v0.4: one centred entry flow; warm paper, ink green and a single lime CTA. */
#entry-code-field{margin-top:14px}.rules-note{font-size:10px;line-height:1.5;color:var(--muted);text-align:center;margin:18px 12px 0}.return-control{display:block;max-width:100%;margin:12px auto;white-space:normal;border-radius:8px}
main{max-width:1240px}.topbar{height:76px;max-width:1240px;border:0}.brand{font-size:25px}.brand-symbol{width:32px;height:32px;font-size:28px}.connection{font-size:11px}
.lobby{display:flex;flex-direction:column;gap:0;width:100%;max-width:460px;margin:10px auto 0;padding:0}
.prize{margin:0 0 22px;text-align:center}.prize h1{font:600 14px/1.4 var(--body);letter-spacing:0;margin:0 0 2px}.prize strong{display:block;font:clamp(54px,10vw,76px)/1.13 var(--display);letter-spacing:-1px;margin:0}.prize p{font-size:11px;margin-top:5px;color:#637267}
.lobby form{margin-top:23px}.lobby label{font-size:13px;letter-spacing:0;font-weight:650;margin-bottom:7px}.lobby input{height:54px;border:1px solid #b3bdb0;background:#fafbf4;border-radius:10px;padding:14px 16px;font-size:16px}
.primary{border-radius:10px;background:#d7ef62;color:#142f29;min-height:56px;font-size:16px;font-weight:750;padding:14px 20px;box-shadow:inset 0 0 0 1px #bdce5570}.primary:hover:not(:disabled){background:#e2fa7d}.primary:disabled{opacity:.6}.lobby .primary{width:100%;margin-top:12px}.form-error{color:#a33221;font-size:12px;margin-top:6px}.ticket{border:0;padding:20px 0 3px;gap:9px}.ticket-mark{border-radius:50%;width:25px;height:25px;flex:none}.ticket strong{font-size:14px;overflow-wrap:anywhere;min-width:0}.ticket .text-button{margin-left:auto;flex:none}.text-button{min-height:44px;padding:8px 4px;border:0;color:#506b5c}.lobby .secondary{border:0;display:block;margin:5px auto 0;font-size:13px;min-height:44px}.lobby .micro{text-align:center;font-size:12px;margin-top:9px}.waiting-start{border-radius:10px;background:#e1e7d8;padding:16px;color:var(--ink);font-weight:700;font-size:15px!important;overflow-wrap:anywhere}
.roster-section{margin:12px 0 0;padding:0;border-top:1px solid var(--line)}.roster-section summary{padding:13px 0;font-size:12px;cursor:pointer}.roster-section summary span{float:right;color:var(--muted)}.roster-section summary:focus-visible{outline:3px solid #ef8256;outline-offset:3px}.roster{gap:7px;min-height:0}.roster-chip{border-radius:8px;max-width:100%;padding-right:10px}.roster-chip>span:not(.avatar){overflow-wrap:anywhere;min-width:0}.roster-section .micro{margin-bottom:10px}.site-footer{border:0;max-width:1240px;font-size:9px;margin-top:22px;padding-top:10px;padding-bottom:20px;letter-spacing:1px}
.arena-tabs{border-bottom:0;max-width:1000px;margin:0 auto 16px;padding:5px;background:#e3e7dc;border-radius:12px;gap:5px}.arena-tabs [role=tab]{flex:1;border-radius:8px;min-width:0}.arena-heading{max-width:1000px;margin:10px auto 14px}.scoreboard{border-radius:12px 12px 0 0}.choice-status{border-radius:0 0 12px 12px}.match-summary{padding:16px 0;gap:10px}.match-summary>div:has(p:empty){display:none}.match-summary .primary{margin:0;min-width:220px}.match-summary p{margin:0}.bracket-panel{border:0;border-radius:14px}.bracket-heading h2{font:750 28px/1.2 var(--body);letter-spacing:-.6px;margin:0}.bracket-heading{margin-bottom:18px}.bracket-legend{margin-bottom:18px}.stage-footer span:last-child{display:none}

/* Ten-second loop: five seconds per role. The preview never blocks the form. */
.promo{margin:0;position:relative;border-radius:16px;overflow:hidden;background:#13392f;color:#f3f6e8;isolation:isolate}
.promo-defs{position:absolute}.promo-stage{position:relative;aspect-ratio:480/280;overflow:hidden}
.promo-phase{position:absolute;inset:0;animation:promo-phase 10s linear infinite}
.promo-phase.promo-save{animation-delay:-5s;--landing-x:240px;--landing-y:173px}
.promo-goal{--landing-x:128px;--landing-y:184px}
.promo-heading{position:absolute;inset:18px 21px auto;z-index:1;display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:14px;letter-spacing:.4px}.promo-time{font-size:11px;font-weight:500;letter-spacing:0;color:#c2d5bc}
.promo-phase>svg{width:100%;height:100%;display:block}
.promo-keeper{transform:translate(240px,174px);animation:promo-keeper 5s ease-in-out infinite}.promo-save .promo-keeper{animation-name:promo-catch}
.promo-ball{animation:promo-ball 5s cubic-bezier(.4,0,.2,1) infinite;transform:translate(240px,247px)}
.promo-finger{animation:promo-finger 5s ease-in-out infinite;transform:translate(var(--landing-x),var(--landing-y));filter:drop-shadow(0 3px 4px #09221d60)}
.promo-chosen{animation:promo-target 5s linear infinite}.promo-ripple{transform-box:fill-box;transform-origin:center;animation:promo-ripple 5s ease-out infinite;opacity:0}
.promo-result{animation:promo-result 5s ease-out infinite;opacity:0;transform-origin:240px 120px}
.promo-advance{position:absolute;bottom:14px;left:21px;right:21px;display:flex;align-items:center;gap:10px;color:#d9f06c;font-size:13px;font-weight:700;animation:promo-result 5s ease-out infinite;opacity:0}.promo-advance svg{width:44px;height:25px}.promo-advance>span:last-child{margin-left:auto;font-size:25px}.promo-save .promo-advance{color:#ffc09e}
.promo figcaption{display:flex;justify-content:space-between;align-items:center;min-height:49px;padding:0 10px 0 21px;background:#102f27;font-size:12px;color:#dbe6d3;border-top:1px solid #ffffff0b}
.promo-toggle{width:44px;height:44px;background:transparent;color:#e7eedc;border-radius:8px;font-size:16px;flex:none}.promo-toggle:hover{background:#ffffff10}.promo-toggle:focus-visible{outline-offset:-3px}
.promo.is-paused *{animation-play-state:paused!important}
.promo.is-paused .promo-phase,.promo.is-paused .promo-phase *{animation-play-state:paused!important}
.promo.is-static .promo-phase{animation:none!important}.promo.is-static .promo-save{display:none}.promo.is-static .promo-phase *{animation:none!important}.promo.is-static .promo-finger{transform:translate(128px,184px)}
@keyframes promo-phase{0%,48%{opacity:1;visibility:visible}49%,99%{opacity:0;visibility:hidden}100%{opacity:1;visibility:visible}}
@keyframes promo-finger{0%,8%{opacity:0;transform:translate(calc(var(--landing-x) + 38px),calc(var(--landing-y) + 40px))}20%,31%{opacity:1;transform:translate(var(--landing-x),var(--landing-y))}35%{opacity:1;transform:translate(var(--landing-x),var(--landing-y)) scale(.9)}42%,100%{opacity:0;transform:translate(var(--landing-x),calc(var(--landing-y) + 20px))}}
@keyframes promo-target{0%,30%,93%,100%{fill:#13372a;stroke:#d9f06c}34%,88%{fill:#5c7837;stroke:#f2ffb9;stroke-width:4px}}
@keyframes promo-ripple{0%,31%,52%,100%{opacity:0;transform:scale(.9)}34%{opacity:.9;transform:scale(.9)}51%{opacity:0;transform:scale(1.65)}}
@keyframes promo-ball{0%,40%{transform:translate(240px,247px) scale(1);opacity:1}57%,88%{transform:translate(var(--landing-x),var(--landing-y)) scale(.8);opacity:1}96%,100%{transform:translate(var(--landing-x),var(--landing-y)) scale(.8);opacity:0}}
@keyframes promo-keeper{0%,40%,100%{transform:translate(240px,174px)}56%,88%{transform:translate(337px,174px) rotate(32deg)}96%{transform:translate(240px,174px)}}
@keyframes promo-catch{0%,40%,100%{transform:translate(240px,174px)}56%,88%{transform:translate(240px,177px) scale(1.06)}96%{transform:translate(240px,174px)}}
@keyframes promo-result{0%,59%,96%,100%{opacity:0;transform:translateY(6px)}65%,88%{opacity:1;transform:translateY(0)}}
/* A reduced-motion visit starts as a readable still. Play is an explicit opt-in. */
@media(prefers-reduced-motion:reduce){.promo:not(.is-static) .promo-phase{animation:promo-phase 10s linear infinite!important}.promo:not(.is-static) .promo-save{animation-delay:-5s!important}.promo:not(.is-static) .promo-finger{animation:promo-finger 5s ease-in-out infinite!important}.promo:not(.is-static) .promo-ball{animation:promo-ball 5s ease-in-out infinite!important}.promo:not(.is-static) .promo-keeper{animation:promo-keeper 5s ease-in-out infinite!important}.promo:not(.is-static) .promo-save .promo-keeper{animation-name:promo-catch!important}.promo:not(.is-static) .promo-result,.promo:not(.is-static) .promo-advance{animation:promo-result 5s ease-out infinite!important}}
@media(max-width:760px){.topbar{height:64px;padding:0 20px}.brand{font-size:22px}.brand-symbol{width:29px;height:29px;font-size:25px}.lobby{margin-top:8px}.prize{margin-bottom:18px}.prize strong{font-size:clamp(51px,14vw,65px)}.promo-heading{inset:14px 16px auto;font-size:12px}.promo-time{font-size:10px}.promo figcaption{padding-left:16px;font-size:11px}.promo-advance{font-size:11px;left:16px;right:16px;bottom:9px;gap:6px}.promo-advance svg{width:35px;height:20px}.promo-advance>span:last-child{font-size:21px}.lobby form{margin-top:19px}.site-footer{margin-top:18px}.site-footer span:nth-child(2){display:block}.arena-heading .eyebrow{font-size:9px;letter-spacing:.8px}.arena-tabs{margin-bottom:12px}.arena-tabs [role=tab]{font-size:15px;min-height:44px;padding:8px 15px}.bracket-heading h2{font-size:24px}.bracket-heading p{font-size:12px}.match-summary .primary{width:100%;margin-top:10px}}
@media(max-width:350px){main{padding:0 14px}.topbar{padding:0 14px}.promo-heading{inset:12px 12px auto;font-size:11px;letter-spacing:0}.promo-time{font-size:9px}.promo-advance{bottom:7px;font-size:10px}}
.competitor>span:not(.avatar){white-space:normal;overflow-wrap:anywhere;line-height:1.3}.scoreboard{min-height:84px}.score-wrap{min-width:66px}
.prize strong,.brand,#notice-title{font-weight:900}.stage.full-notice{border-radius:0 0 12px 12px}.stage.full-notice ~ .choice-status{display:none}
@media(min-width:761px) and (max-height:800px){.topbar{height:64px}.lobby{max-width:420px;margin-top:0}.prize{margin-bottom:16px}.prize strong{font-size:64px}.lobby form{margin-top:16px}.site-footer{margin-top:12px}}
