/* Native stadium surfaces. Match controls and score never belong to the ad. */
:root{--sponsor-bg:#ffffff;--sponsor-accent:#6c4796;--sponsor-ink:#6c4796;--sponsor-ease:cubic-bezier(.23,1,.32,1)}
.game-scene{container-type:inline-size}.stadium-board{position:absolute;top:10.5%;left:32%;width:36%;height:20%;display:grid;grid-template-rows:15% 54% 31%;padding:.5cqw 1cqw;border:.8cqw solid #343938;border-radius:.4cqw;background:#090f0d;color:#f3f5ef;box-shadow:0 .5cqw .6cqw #09161180,inset 0 0 0 .15cqw #555b52;overflow:hidden;pointer-events:none;background-image:radial-gradient(#3a49302a .07cqw,transparent .1cqw);background-size:.43cqw .43cqw}
.stadium-label{text-align:center;font:700 1.2cqw/1 monospace;letter-spacing:.16cqw}.stadium-score-row{display:grid;grid-template-columns:27% 46% 27%;align-items:center;min-width:0;gap:.3cqw}.stadium-name{font-size:1.5cqw;font-weight:800;line-height:1.1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.stadium-score{font:750 5.6cqw/1 monospace;letter-spacing:.2cqw;color:#ffba5c;text-align:center;filter:drop-shadow(0 0 .2cqw #ffac3740);font-variant-numeric:tabular-nums;white-space:nowrap}
.sponsor-surface{background:var(--sponsor-bg);color:var(--sponsor-ink);position:relative;overflow:hidden;isolation:isolate}.stadium-brand{border-top:.15cqw solid var(--sponsor-accent);min-width:0}.sponsor-first,.sponsor-second{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.7cqw;min-width:0;padding:0 .65cqw}.sponsor-first{opacity:1;transform:none}.sponsor-second{opacity:0;color:var(--sponsor-accent);font-size:1.9cqw;line-height:1.12;font-weight:750;text-align:center;overflow-wrap:anywhere}
.sponsor-name{font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;letter-spacing:.12cqw}.sponsor-mark{display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--sponsor-ink)}.sponsor-mark img,.sponsor-mark svg{display:block;width:100%;height:100%;object-fit:contain}.stadium-brand .sponsor-mark{width:3.5cqw;height:2.3cqw}.stadium-brand .sponsor-name{font-size:2cqw}
.stadium-side{position:absolute;top:50%;width:16%;height:10%;pointer-events:none;border-bottom:.35cqw solid #567457}.sponsor-left{left:1.5%}.sponsor-right{right:1.5%}.stadium-side .sponsor-mark{width:4.3cqw;height:3.1cqw}.stadium-side .sponsor-name{font-size:2.3cqw}.side-offer{font-size:1.9cqw}.sponsor-track{position:absolute;bottom:0;left:0;width:32%;height:.45cqw;background:var(--sponsor-accent);opacity:0;pointer-events:none}.sponsor-sweep{position:absolute;top:-20%;left:-35%;width:22%;height:140%;background:linear-gradient(90deg,transparent,#ffffff26,transparent);transform:translateX(-140%) skewX(-23deg);opacity:0;pointer-events:none;z-index:3}
.sponsor-moving .sponsor-first{animation:sponsor-first 9s linear infinite}.sponsor-moving .sponsor-second{animation:sponsor-second 9s linear infinite}.sponsor-moving .sponsor-sweep{animation:sponsor-sweep 9s linear infinite}.sponsor-moving .stadium-side .sponsor-first,.sponsor-moving .stadium-side .sponsor-second{animation-delay:-1.5s}.sponsor-moving .sponsor-track{animation:sponsor-track 9s var(--sponsor-ease) infinite;animation-delay:-1.5s}.sponsor-moving .sponsor-right .sponsor-first,.sponsor-moving .sponsor-right .sponsor-second,.sponsor-moving .sponsor-right .sponsor-track{animation-delay:-3s}.sponsor-left .sponsor-sweep{animation-delay:2s!important}.sponsor-right .sponsor-sweep{animation-delay:3.5s!important}
@keyframes sponsor-first{0%,42%,100%{opacity:1;transform:translateX(0)}50%,90%{opacity:0;transform:translateX(-12%)}}@keyframes sponsor-second{0%,42%,100%{opacity:0;transform:translateX(12%)}50%,90%{opacity:1;transform:translateX(0)}}@keyframes sponsor-track{0%,11%{opacity:0;transform:translateX(-115%)}14%{opacity:.85}36%{opacity:.85;transform:translateX(330%)}39%,100%{opacity:0;transform:translateX(330%)}}@keyframes sponsor-sweep{0%,12%{transform:translateX(-140%) skewX(-23deg);opacity:0}14%{opacity:1}29%{transform:translateX(650%) skewX(-23deg);opacity:1}31%,100%{transform:translateX(650%) skewX(-23deg);opacity:0}}
.sponsor-card{container-type:inline-size;max-width:860px;margin:17px auto 0;border-radius:13px;padding:13px 22px;min-height:100px}.sponsor-card>small{font-size:9px;position:relative;z-index:2}.sponsor-card-content{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,41fr) minmax(0,59fr);gap:12px;align-items:center;margin-top:7px;padding-right:30px}.sponsor-card-brand{display:flex;align-items:center;gap:14px;min-width:0}.sponsor-card-brand .sponsor-mark{width:clamp(36px,10cqw,64px);height:clamp(25px,6cqw,40px)}.sponsor-card-brand .sponsor-name{font-size:clamp(18px,4cqw,30px);letter-spacing:1px}.sponsor-card-content>.sponsor-offer{padding-left:18px;border-left:1px solid #ffffff35;color:var(--sponsor-accent);font-size:clamp(11px,2.7cqw,17px);font-weight:650;line-height:1.2;overflow-wrap:anywhere;min-width:0}.sponsor-toggle{position:absolute;top:3px;right:3px;width:44px;height:44px;color:var(--sponsor-ink);background:transparent;border-radius:8px;z-index:4;font-size:16px}.sponsor-toggle:hover{background:#ffffff10}.sponsor-toggle:focus-visible{outline-offset:-4px}.sponsor-card .sponsor-sweep{animation-delay:5s}.sponsor-arc{position:absolute;right:-5%;bottom:-130%;width:40%;height:205%;border:1px solid var(--sponsor-accent);border-radius:50%;transform:rotate(30deg);opacity:.4;z-index:0}.sponsor-arc:last-of-type{right:-10%;bottom:-145%;opacity:.2}.sponsor-card::after{content:'';position:absolute;right:-3%;top:-4%;width:3.2%;height:150%;background:var(--sponsor-accent);transform:rotate(43deg);opacity:.7;pointer-events:none}
main[data-screen=lobby]>.sponsor-card{max-width:460px}.lobby-stadium{position:relative;aspect-ratio:10/7;border-radius:12px;overflow:hidden;background:var(--dark);margin-top:15px}.lobby-stadium .game-scene{inset:0;width:100%;height:100%}
[data-sponsor-long-name=true] .stadium-side .sponsor-name{font-size:1.55cqw;letter-spacing:0}[data-sponsor-long-name=true] .side-brand{gap:.35cqw}[data-sponsor-long-name=true] .sponsor-card-brand .sponsor-name{font-size:clamp(13px,2.8cqw,22px)}
[data-sponsor-wordmark=true] .sponsor-name{display:none}[data-sponsor-wordmark=true] .stadium-side .sponsor-mark{width:13.8cqw;height:4cqw}[data-sponsor-wordmark=true] .stadium-brand .sponsor-mark{width:29cqw;height:2.5cqw}[data-sponsor-wordmark=true] .sponsor-card-brand .sponsor-mark{width:100%;height:40px}[data-sponsor-wordmark=true] .sponsor-logo-failed .sponsor-name{display:block}[data-sponsor-wordmark=true] .sponsor-logo-failed .sponsor-mark{width:3.5cqw}
/* Camera movement applies to football actors; advertising stays in its own layer. */
.play-column{max-width:860px}.arena-heading,.arena-tabs{max-width:860px}.stage{aspect-ratio:10/7.8}#game-scene{top:68px;height:calc(100% - 68px)}.stage .role-banner{background:#10392e;color:#fafcf2}.stage .role-banner.keeper{background:#704436;color:#fff7e8}.stage .role-banner.spectator{background:#1b4137;color:#f3f6e9}.stage .role-banner #role-icon,.stage .role-banner .timer{color:var(--lime)}
@media(max-width:760px){.scene-world{inset:0}.stage{aspect-ratio:10/9.3}#game-scene{top:60px;height:calc(100% - 60px)}.target{width:44px;height:44px}.sponsor-card{padding:10px 14px;min-height:85px}.sponsor-card-content{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding-right:16px}.sponsor-card-brand{gap:7px}.sponsor-card-brand .sponsor-name{font-size:16px;letter-spacing:.5px}.sponsor-card-content>.sponsor-offer{padding-left:10px}.sponsor-card>small{font-size:8px}.stadium-score{font-size:5.1cqw}}
@media(prefers-reduced-motion:reduce){.sponsor-surface *{animation:none!important}.sponsor-first{opacity:1!important;transform:none!important}.sponsor-second,.sponsor-track,.sponsor-sweep{opacity:0!important}}

/* Long sponsor names remain complete at phone sizes. */
[data-sponsor-long-name=true] .stadium-side .side-brand{flex-direction:column;gap:.3cqw}
[data-sponsor-long-name=true] .stadium-side .sponsor-mark{width:4.2cqw;height:3.4cqw}
[data-sponsor-long-name=true] .stadium-side .sponsor-name{font-size:1.4cqw;letter-spacing:0;max-width:100%}
.sponsor-card-content>.sponsor-offer{border-left-color:currentColor}
@media(max-width:760px){[data-sponsor-long-name=true] .sponsor-card-content{grid-template-columns:1fr;gap:9px}[data-sponsor-long-name=true] .sponsor-card-brand .sponsor-name{font-size:17px;letter-spacing:.4px}[data-sponsor-long-name=true] .sponsor-card-content>.sponsor-offer{border-left:0;padding-left:0}[data-sponsor-long-name=true] .sponsor-card-brand .sponsor-mark{width:30px;height:25px}}
