:root{color-scheme:dark;--cyan:#38eaff;--pink:#ff3fa9;--amber:#ffd56a;--ink:#effcff;--muted:#8dafc0;--panel:rgba(4,14,27,.88);--line:rgba(90,224,255,.24)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#02050b}body,button,input,select{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:var(--ink)}button,select,input{accent-color:var(--cyan)}button{cursor:pointer;border:1px solid var(--line);background:rgba(6,22,38,.9);border-radius:12px;font-weight:900;letter-spacing:.04em}button:hover,button:focus-visible{border-color:var(--cyan);box-shadow:0 0 22px rgba(56,234,255,.2);outline:none}#game-shell{position:relative;width:100%;height:100%;min-height:520px;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 20%,#15304b,#030711 66%)}#render-surface,#render-surface canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#020710cc,transparent 25%,transparent 68%,#02050cf2),radial-gradient(circle,transparent 45%,#0008)}.topbar{position:absolute;z-index:8;top:max(14px,env(safe-area-inset-top));left:16px;right:16px;display:flex;justify-content:space-between;pointer-events:none}.brand{display:flex;flex-direction:column;text-shadow:0 2px 12px #000}.brand small,.eyebrow{color:var(--cyan);font-size:9px;letter-spacing:.25em;font-weight:900}.brand strong{font-size:16px;font-style:italic}.actions{display:flex;gap:6px;pointer-events:auto}.actions button,.actions a{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:12px;background:rgba(6,22,38,.9);color:var(--ink);text-decoration:none;font-weight:900;backdrop-filter:blur(12px)}
#leaderboard{position:absolute;z-index:5;top:70px;right:12px;width:min(220px,25vw);display:grid;gap:5px}.rank{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:6px;padding:7px 9px;border:1px solid #ffffff16;border-radius:9px;background:#04111fbd;backdrop-filter:blur(10px);font-size:11px}.rank.active{border-color:var(--cyan);background:linear-gradient(90deg,#09283de8,#08111de8);box-shadow:0 0 20px #38eaff24}.rank b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank strong{font-size:15px;color:var(--amber)}#scoreboard{position:absolute;z-index:5;top:70px;left:12px;width:min(310px,42vw);display:grid;grid-template-columns:repeat(5,1fr);gap:3px}.frame-box{min-width:0;padding:5px 4px;border:1px solid #ffffff16;background:#04111fbd;border-radius:7px;text-align:center}.frame-box.active{border-color:var(--pink);box-shadow:0 0 14px #ff3fa929}.frame-box b{display:block;font-size:8px;color:var(--muted)}.rolls{height:14px;display:flex;justify-content:center}.rolls i{min-width:14px;font-style:normal;font-size:10px}.frame-total{display:block;font-size:14px;font-weight:900}#turn-banner{position:absolute;z-index:6;top:158px;left:50%;transform:translateX(-50%);width:min(520px,74vw);padding:9px 16px;border:1px solid var(--cyan);border-radius:12px;background:linear-gradient(90deg,#08213be8,#160f30e8);text-align:center;box-shadow:0 0 28px #38eaff28;transition:.2s}#turn-banner small{display:block;color:var(--cyan);font-weight:800;font-size:9px;letter-spacing:.18em}#turn-banner strong{display:block;font-size:clamp(13px,2.3vw,21px)}
.telemetry{position:absolute;z-index:5;left:12px;bottom:132px;display:flex;gap:6px}.telemetry>div{min-width:92px;padding:7px 10px;border:1px solid #ffffff17;border-radius:9px;background:#04111fd1}.telemetry small{display:block;color:var(--muted);font-size:8px}.telemetry strong{font-size:15px}.telemetry span{font-size:9px;color:var(--muted)}#status-pill{position:absolute;z-index:5;right:14px;bottom:132px;display:flex;align-items:center;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#04111fd1;color:var(--ink);font-size:10px;font-weight:800;letter-spacing:0}#status-pill i{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 9px var(--cyan)}
.overlay{position:absolute;z-index:12;left:50%;top:50%;transform:translate(-50%,-50%);width:min(600px,calc(100% - 26px));max-height:calc(100% - 105px);overflow:auto;padding:22px;border:1px solid var(--line);border-radius:21px;background:linear-gradient(145deg,rgba(6,20,36,.97),rgba(13,8,27,.97));box-shadow:0 24px 90px #000b,0 0 55px #38eaff14;backdrop-filter:blur(20px)}h1{margin:4px 0 12px;font-size:clamp(35px,8vw,64px);line-height:.82;letter-spacing:-.06em}h1 em{color:transparent;-webkit-text-stroke:1px var(--pink);filter:drop-shadow(0 0 13px #ff3fa966)}h2{margin:3px 0 16px}.setup-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.setup-grid label,.utility-card label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:9px;font-weight:900}.setup-grid select,.names input,.utility-card select{width:100%;height:37px;border:1px solid var(--line);border-radius:9px;background:#07182a;padding:0 8px}.names{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0}.names input{min-width:0}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode-grid button{display:flex;align-items:center;gap:10px;text-align:left;padding:11px}.mode-grid b{display:grid;place-items:center;width:42px;height:38px;border-radius:8px;background:#102942;color:var(--cyan)}.mode-grid span{display:flex;flex-direction:column}.mode-grid small{color:var(--muted)}button.primary{border-color:var(--cyan);background:linear-gradient(135deg,#0c526a,#17224e)}.secondary-actions,.utility-actions{display:flex;gap:7px;margin-top:9px}.secondary-actions button,.utility-actions button{flex:1;padding:9px;font-size:10px}#setup-hint,#diag-help{margin:10px 0 0;color:var(--muted);font-size:11px;text-align:center}
#play-panel{position:absolute;z-index:6;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(520px,calc(100% - 24px));padding:9px;border:1px solid var(--line);border-radius:16px;background:#04111fe6;backdrop-filter:blur(15px)}.sensor-strip{display:flex;justify-content:center;gap:12px;margin-bottom:6px;font-size:9px}.sensor-strip span{color:var(--muted)}.sensor-strip i{display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:#36505e}.sensor-strip .active i{background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.aim-row{display:grid;grid-template-columns:44px 1fr 44px;gap:7px;align-items:center}.aim-row button{height:43px}.aim-row>div{text-align:center}.aim-row small{display:block;color:var(--muted);font-size:8px}.aim-row strong{font-size:13px}.power-track{height:4px;margin-top:4px;border-radius:4px;background:#153044;overflow:hidden}.power-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--cyan),var(--pink));box-shadow:0 0 10px var(--pink)}.throw-button{width:100%;height:42px;margin-top:7px;border-color:var(--pink);background:linear-gradient(90deg,#4d1649,#182854)}.throw-button span{margin-right:8px}.throw-button small{color:#ffacd7}
.sensor-live{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sensor-live div{text-align:center;padding:12px;border:1px solid var(--line);border-radius:10px;color:var(--muted)}.sensor-live strong{display:block;color:var(--cyan);font-size:20px}.utility-card label{margin-top:12px}.utility-card input{width:100%}.diag-grid{display:grid;grid-template-columns:130px 1fr;gap:7px;font-size:11px}.diag-grid span{color:var(--muted)}.diag-grid code{overflow-wrap:anywhere;color:var(--cyan)}.result-card{text-align:center}#podium{display:grid;gap:7px;margin:14px 0}.podium-row{display:flex;justify-content:space-between;padding:9px 12px;border:1px solid var(--line);border-radius:9px}.result-card>button{padding:12px 22px}#toast{position:absolute;z-index:20;left:50%;top:40%;transform:translate(-50%,-50%) scale(1);padding:13px 22px;border:2px solid var(--cyan);border-radius:14px;background:#061525ed;font-size:clamp(20px,5vw,42px);font-style:italic;font-weight:1000;text-shadow:0 0 18px var(--cyan);animation:pop .25s ease-out}#particles{position:absolute;inset:0;z-index:10;pointer-events:none}.particle{position:absolute;width:8px;height:18px;background:var(--cyan);animation:burst .9s ease-out forwards}@keyframes pop{from{transform:translate(-50%,-50%) scale(.3) rotate(-5deg)}}@keyframes burst{to{transform:translate(var(--dx),var(--dy)) rotate(480deg);opacity:0}}
@media(max-width:720px){#leaderboard{top:112px;width:31vw}.rank{padding:5px;font-size:9px}.rank:nth-child(n+6){display:none}#scoreboard{top:63px;left:8px;right:8px;width:auto;grid-template-columns:repeat(10,1fr)}#turn-banner{top:116px;left:38%;width:60vw}.telemetry{bottom:126px}.telemetry>div{min-width:74px;padding:5px}.setup-card{top:52%}.names{grid-template-columns:repeat(2,1fr)}}@media(max-height:720px){.brand{display:none}#scoreboard{top:12px;left:10px;width:42vw}#leaderboard{top:12px}.frame-box b{display:none}#turn-banner{top:58px}.telemetry{bottom:112px}.overlay{top:51%;max-height:calc(100% - 30px);padding:15px}h1{font-size:36px}.names{margin:6px 0}.mode-grid button{padding:7px}}

/* Arcade station expansion */
.brand{border:0;background:none;border-radius:0;padding:0;text-align:left;cursor:pointer}.brand:hover,.brand:focus-visible{box-shadow:none}.attract-screen{position:absolute;inset:0;z-index:11;display:grid;place-items:center;text-align:center;overflow:hidden;background:radial-gradient(circle at 50% 42%,transparent 0 20%,#0207138c 62%,#010309eb)}.attract-rays{position:absolute;width:110vmax;height:110vmax;background:conic-gradient(from 0deg,transparent,#38eaff18 8deg,transparent 18deg,#ff3fa918 30deg,transparent 44deg);animation:disco-spin 13s linear infinite;mix-blend-mode:screen}.attract-logo{position:relative;z-index:2;filter:drop-shadow(0 0 30px #38eaff88);animation:logo-float 4s ease-in-out infinite}.attract-logo small{color:var(--cyan);font-weight:1000;letter-spacing:.32em}.attract-logo h1{margin:12px 0;font-size:clamp(58px,14vw,126px);line-height:.72}.attract-logo b{display:inline-block;padding:7px 18px;border:1px solid var(--pink);border-radius:999px;color:#ffd9ee;background:#370d30b8;letter-spacing:.17em}.attract-screen.logo-swap .attract-logo{animation:logo-slam .65s cubic-bezier(.15,.8,.2,1)}#attract-joke{position:absolute;z-index:2;bottom:118px;width:min(620px,84%);color:#c8dfea;font-weight:700}.touch-start{position:absolute;z-index:3;bottom:38px;min-width:280px;padding:14px 25px;border-color:var(--cyan);background:#06172de8;animation:touch-pulse 1.5s ease-in-out infinite}.touch-start span,.touch-start small{display:block}.touch-start small{margin-top:3px;color:var(--muted);font-size:9px}.portal-pair{display:grid;grid-template-columns:124px 1fr;align-items:center;gap:16px}.portal-pair strong{display:block;color:var(--cyan);font-size:30px;letter-spacing:.22em}.portal-pair p{color:var(--muted);font-size:11px}#pair-marker{display:grid;grid-template-columns:repeat(9,1fr);gap:2px;width:118px;height:118px;padding:8px;background:#eaffff;border:5px solid white;border-radius:6px}#pair-marker i{background:#062235}#pair-marker i.on{background:#3beaff}.portal-names{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:12px 0}.portal-names input,.admin-grid input,.admin-grid select{height:38px;border:1px solid var(--line);border-radius:8px;background:#07182a;padding:0 8px}.portal-live{margin-top:12px;padding:9px;border:1px solid #ffffff18;border-radius:9px;color:var(--muted);font-size:11px}.wizard-progress{display:flex;gap:7px;margin-bottom:16px}.wizard-progress i{height:5px;flex:1;border-radius:4px;background:#173147}.wizard-progress i.active{background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.wizard-step{display:grid;gap:12px}.wizard-step h3{margin:0;font-size:25px}.wizard-step p{color:var(--muted)}.wizard-live{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.wizard-live b{padding:15px 5px;border:1px solid var(--line);border-radius:9px;text-align:center}.wizard-live b.test{border-color:var(--pink);box-shadow:0 0 20px #ff3fa944}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.admin-grid label,.zone-row label,.mapping-grid label,#admin-lock label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:9px;font-weight:900}.zone-row,.mapping-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mapping-grid{grid-template-columns:repeat(2,1fr)}#admin-lock{display:grid;gap:10px}.tournament-card{width:min(680px,calc(100% - 26px))}#tournament-table{display:grid;gap:6px}.tournament-row{display:grid;grid-template-columns:28px 1fr repeat(4,58px);gap:5px;align-items:center;padding:8px;border:1px solid #ffffff18;border-radius:9px;text-align:left}.tournament-row.leader{border-color:var(--amber)}#handoff-avatar{position:absolute;z-index:19;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,78vw);padding:28px;border:2px solid var(--cyan);border-radius:22px;background:#06152cf2;text-align:center;font-size:clamp(24px,6vw,55px);font-weight:1000;box-shadow:0 0 90px #38eaff55;animation:handoff-in .75s cubic-bezier(.2,.8,.2,1)}
.station-idle #leaderboard,.station-idle #scoreboard,.station-idle #turn-banner,.station-idle .telemetry,.station-idle #status-pill,.station-idle .topbar{opacity:0;pointer-events:none;transition:opacity .35s}
@keyframes disco-spin{to{transform:rotate(360deg)}}@keyframes logo-float{50%{transform:translateY(-12px) scale(1.025)}}@keyframes logo-slam{from{transform:scale(.2) rotate(-9deg);opacity:0}60%{transform:scale(1.12)}}@keyframes touch-pulse{50%{box-shadow:0 0 35px #38eaff55;transform:scale(1.03)}}@keyframes handoff-in{from{transform:translate(-150%,-50%) rotate(-8deg);opacity:0}65%{transform:translate(-45%,-50%) rotate(2deg)}}
@media(max-width:720px){.setup-grid{grid-template-columns:repeat(2,1fr)}.secondary-actions{display:grid;grid-template-columns:1fr 1fr}.portal-pair{grid-template-columns:90px 1fr}#pair-marker{width:86px;height:86px}.tournament-row{grid-template-columns:22px 1fr repeat(3,43px);font-size:10px}.admin-grid{grid-template-columns:1fr}.attract-logo h1{font-size:18vw}}@media(prefers-reduced-motion:reduce){.attract-rays,.attract-logo,.touch-start{animation:none!important}}

/* Bowl King station presentation */
#game-shell{--projection-width:100%;--projection-height:100%;background-size:cover;background-position:center}.neon-copy{--neon-blur:24px;text-shadow:0 0 calc(var(--neon-blur)*.35) var(--cyan),0 0 var(--neon-blur) color-mix(in srgb,var(--cyan) 72%,transparent)}.attract-logo.neon-copy{filter:none}.check-label{justify-content:center}.check-label input,.music-grid input{width:auto}.portal-card{width:min(690px,calc(100% - 26px))}#pair-marker{display:block;width:124px;height:124px;padding:5px;background:#fff;border:5px solid #fff;image-rendering:pixelated}.portal-note{margin:10px 0;padding:8px 10px;border-left:3px solid var(--amber);background:#ffd56a10;color:#dcebf1;font-size:11px}.music-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.music-grid label{display:flex;flex-direction:row;align-items:center;gap:8px;margin:0;padding:9px;border:1px solid var(--line);border-radius:9px}.upload-label input{height:auto;padding:7px}.admin-card{width:min(720px,calc(100% - 26px))}.admin-card h3{margin:18px 0 8px;color:var(--cyan);font-size:12px;letter-spacing:.14em}.party-laser{position:absolute;z-index:3;top:-10%;width:2px;height:86%;transform-origin:top;background:linear-gradient(var(--pink),transparent);box-shadow:0 0 10px var(--pink);pointer-events:none;opacity:.56;mix-blend-mode:screen}.party-laser:nth-child(even){background:linear-gradient(var(--cyan),transparent);box-shadow:0 0 10px var(--cyan)}
@media(max-width:720px){#pair-marker{width:92px;height:92px}.music-grid{grid-template-columns:1fr}}
.custom-background #render-surface canvas{opacity:.8}

/* Arcade visual polish V1.1 */
#game-shell{background:radial-gradient(ellipse at 50% 22%,#26355a 0,#110b26 34%,#040711 72%)}#render-surface:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 24%,rgba(56,234,255,.055) 38%,transparent 49%,rgba(255,63,169,.045) 62%,transparent 74%);mix-blend-mode:screen;animation:lane-sheen 8s ease-in-out infinite}.vignette{background:linear-gradient(#02030acc,transparent 18%,transparent 74%,#02030cf4),radial-gradient(ellipse at 50% 50%,transparent 38%,#0009 100%)}.topbar{filter:drop-shadow(0 8px 18px #000)}.brand strong{font-size:18px;background:linear-gradient(90deg,#fff,#72eeff 42%,#ff78bf 76%,#ffd56a);-webkit-background-clip:text;color:transparent}.actions button,.actions a,.rank,.frame-box,.telemetry>div,#status-pill,#play-panel{border-color:#66eaff33;background:linear-gradient(145deg,rgba(8,27,46,.9),rgba(10,7,28,.9));box-shadow:inset 0 1px 0 #ffffff18,0 8px 28px #0006}.frame-box.active{border-color:var(--pink);background:linear-gradient(160deg,#43203fdd,#0b1a31eb);box-shadow:0 0 18px #ff3fa955,inset 0 0 14px #ff3fa91e}#turn-banner{border-width:2px;background:linear-gradient(100deg,#072943ef,#291039ef 58%,#3d260cef);box-shadow:0 0 36px #38eaff35,inset 0 1px 0 #ffffff22}#turn-banner strong{text-shadow:0 0 13px #ff3fa977}.telemetry strong{color:#f7fdff;text-shadow:0 0 12px #38eaff66}.overlay{border-color:#67eaff4d;background:linear-gradient(145deg,rgba(8,28,48,.975),rgba(21,8,39,.975));box-shadow:0 28px 100px #000c,0 0 65px #38eaff1e,inset 0 1px 0 #ffffff1c}#toast{border-color:var(--amber);background:linear-gradient(135deg,#112c49f5,#50113ef5);box-shadow:0 0 26px #ff3fa977,0 0 65px #38eaff44,inset 0 0 20px #fff2;text-shadow:0 0 10px #fff,0 0 25px var(--pink)}.attract-screen{background:radial-gradient(circle at 50% 45%,transparent 0 16%,#0b17356e 42%,#02040be8 76%)}.attract-logo h1{background:linear-gradient(180deg,#fff 0,#7ff3ff 32%,#ff52ac 68%,#ffc94f 100%);-webkit-background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 0 22px #38eaff88)}@keyframes lane-sheen{0%,100%{transform:translateX(-35%);opacity:.45}50%{transform:translateX(35%);opacity:1}}@media(prefers-reduced-motion:reduce){#render-surface:after{animation:none}}

/* Profile-only roster */
.player-roster{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.player-roster>span{display:flex;align-items:center;gap:7px;min-height:37px;padding:7px 11px;border:1px solid #38eaff44;border-radius:999px;background:linear-gradient(135deg,#0b273cdd,#1d1031dd);font-size:11px;font-weight:900}.player-roster b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--cyan);color:#03101a}#player-count:disabled{opacity:1;color:var(--cyan);cursor:default}

/* Player profile images */
.player-avatar{display:grid;place-items:center;overflow:hidden;aspect-ratio:1/1;flex:0 0 auto;min-width:0;min-height:0;padding:0;border:1px solid var(--cyan);border-radius:50%;background:linear-gradient(145deg,#123552,#261239);color:var(--cyan);box-shadow:0 0 14px #38eaff33}.player-avatar img{display:block;width:100%;height:100%;min-width:100%;min-height:100%;object-fit:cover;border-radius:inherit}.player-avatar-small{width:26px;height:26px;font-size:13px}.player-avatar-roster{width:26px;height:26px;font-size:13px}.player-avatar-turn{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:42px;height:42px;font-size:20px}#turn-banner{min-height:58px;padding-left:62px}.rank{grid-template-columns:18px 26px 1fr auto}#handoff-avatar{display:flex;align-items:center;justify-content:center;gap:18px}#handoff-avatar .player-avatar{width:82px;height:82px;flex:0 0 82px;font-size:36px}.player-roster>span{padding-left:7px}.player-roster>.player-avatar,.player-roster>span>.player-avatar{width:25px;height:25px;flex-basis:25px}.player-roster b{width:20px;height:20px}@media(max-width:720px){.player-avatar-turn{width:34px;height:34px}.rank{grid-template-columns:14px 22px minmax(0,1fr) auto}.player-avatar-small{width:22px;height:22px}#handoff-avatar{flex-direction:column;gap:10px}}

/* Centralized configuration and Golden Pin stage */
#setup-overlay .setup-grid,#setup-overlay .secondary-actions{display:none}.topbar .brand{pointer-events:auto}.golden-stage #turn-banner{border-color:#ffd56a;background:linear-gradient(100deg,#4b2b07ef,#5d183cef)}.golden-stage #scoreboard{display:flex;justify-content:center}.golden-stage #scoreboard .golden-score{display:grid;grid-template-columns:auto auto;align-items:baseline;justify-content:center;gap:clamp(18px,4vw,42px);min-width:240px;padding:10px 18px;border:2px solid #ffd56a;border-radius:14px;background:#4b2b07dd;text-align:center;color:#fff}.golden-stage #scoreboard .golden-score strong{display:block;color:#ffd56a;font-size:28px}#bonus-ranking-title{margin:20px 0 8px;color:#ffd56a;letter-spacing:.12em}#bonus-podium{display:grid;gap:7px}.gold-rain{position:absolute;z-index:18;top:-24px;width:9px;height:18px;background:#ffd56a;box-shadow:0 0 12px #ffd56a;animation:gold-fall 1.35s ease-in forwards}@keyframes gold-fall{to{transform:translate(var(--drift),110vh) rotate(700deg);opacity:0}}@media(prefers-reduced-motion:reduce){.gold-rain{animation-duration:.01s}}

/* Precise topbar icon alignment */
#settings-button,#audio-button{display:flex!important;align-items:center!important;justify-content:center!important;line-height:1;text-align:center}#settings-button span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font:400 21px/1 system-ui,"Segoe UI Symbol",sans-serif;transform:translateY(-.25px)}#audio-button{font-size:18px;font-family:system-ui,"Segoe UI Symbol",sans-serif}

/* Contained title gradient */
.attract-logo h1{overflow:visible;background:none!important;color:inherit!important;filter:none!important}.attract-logo h1>span,.attract-logo h1>em{display:block;width:100%;padding:.05em .08em;line-height:.78}.attract-logo h1>span{color:#eaffff;text-shadow:0 0 22px #38eaff88}.attract-logo h1>em{overflow:hidden;background:linear-gradient(180deg,#fff 0,#7ff3ff 28%,#ff52ac 66%,#ffc94f 100%);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-stroke:0;filter:drop-shadow(0 0 14px #ff3fa966)}
#toast{width:min(780px,calc(100% - 24px));text-align:center;overflow-wrap:anywhere}

/* Golden Pin show and responsive dual scoreboard */
.golden-stage{background:radial-gradient(circle at 50% 18%,#9a631f88 0,#3b190b77 24%,#18091f 53%,#03040b 82%)!important}.golden-stage #render-surface:after{background:radial-gradient(circle at 50% 22%,#ffd56a2e,transparent 38%),repeating-linear-gradient(112deg,transparent 0 9%,#ffd56a0d 10%,transparent 12%);animation:golden-sweep 3.4s ease-in-out infinite}.golden-stage .vignette{background:linear-gradient(#13070099,transparent 22%,transparent 68%,#090207ef),radial-gradient(ellipse at 50% 48%,transparent 28%,#2b120899 100%)}
#status-pill{display:grid;place-items:center;width:38px;height:38px;padding:0;border-radius:12px;font-size:0}#status-pill span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#status-pill i{display:grid;place-items:center;width:24px;height:24px;margin:0;border:1px solid currentColor;border-radius:50%;background:transparent;color:var(--muted);font:900 12px/1 system-ui;box-shadow:0 0 11px currentColor}#status-pill[data-state="connected"] i{color:#4fffb0}#status-pill[data-state="connecting"] i{color:#ffd56a;animation:status-pulse .7s infinite alternate}#status-pill[data-state="simulator"] i{color:var(--cyan)}#status-pill[data-state="warning"] i{color:#ff6f91}#status-pill[data-state="disconnected"] i{color:#8da4af}
.result-card{width:min(940px,calc(100% - 26px));max-height:calc(100% - 36px);padding:clamp(16px,3vw,30px);text-align:left}.result-card>h2{text-align:center;font-size:clamp(22px,4vw,38px)}.result-card>.eyebrow{text-align:center}.result-card #podium,.result-card #bonus-podium{display:grid;gap:8px}.result-card #podium h3,.result-card #bonus-ranking-title{margin:0 0 3px}.result-card #podium,.result-card #bonus-podium{width:100%}.result-card #bonus-ranking-title{margin-top:16px}.podium-row{display:grid;grid-template-columns:28px 34px minmax(100px,1fr) auto 70px;align-items:center;gap:9px;padding:9px 12px;border:1px solid #ffffff1e;border-radius:12px;background:linear-gradient(100deg,#07192ce8,#140b24e8)}.podium-row.winner{border-color:#ffd56a;background:linear-gradient(100deg,#4e2b0bdd,#281028e8);box-shadow:0 0 22px #ffd56a1e}.result-rank{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#ffffff0f;font-weight:1000}.score-label{color:var(--muted);font-size:8px;letter-spacing:.12em}.podium-row strong{color:#ffd56a;font-size:22px;text-align:right}.result-card>button{display:block;margin:20px auto 0}
.golden-confetti{position:absolute;top:-22px;width:8px;height:16px;box-shadow:0 0 10px currentColor;animation:golden-confetti-fall 2.3s linear forwards}.golden-smoke{position:absolute;bottom:8%;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle,#fff5c97a 0,#b67a3060 36%,transparent 70%);filter:blur(6px);animation:golden-smoke-rise 2.1s ease-out forwards}.firework-spark{position:absolute;width:6px;height:6px;border-radius:50%;background:#ffd56a;box-shadow:0 0 13px #fff2a3;animation:firework-burst 1s ease-out forwards}.impact-star{position:absolute;color:#ffd56a;font-size:clamp(15px,2.4vw,28px);filter:drop-shadow(0 0 8px #ffb52e);animation:impact-star .8s cubic-bezier(.15,.7,.2,1) forwards}.impact-trail{position:absolute;width:64px;height:5px;border-radius:6px;background:linear-gradient(90deg,#fff,#ffd56a,transparent);transform-origin:left;box-shadow:0 0 14px #ffd56a;animation:impact-trail .7s ease-out forwards}
@keyframes golden-sweep{50%{filter:brightness(1.28) saturate(1.25)}}@keyframes status-pulse{to{transform:scale(.82);opacity:.65}}@keyframes golden-confetti-fall{to{transform:translate(var(--wind),var(--fall)) rotate(720deg);opacity:.15}}@keyframes golden-smoke-rise{to{transform:translateY(var(--rise)) scale(2.4);opacity:0}}@keyframes firework-burst{to{transform:translate(var(--fx),var(--fy)) scale(.2);opacity:0}}@keyframes impact-star{to{transform:translate(var(--ix),var(--iy)) rotate(360deg) scale(.3);opacity:0}}@keyframes impact-trail{to{transform:translate(var(--ix),var(--iy)) rotate(-18deg) scaleX(.15);opacity:0}}
@media(min-width:720px){.result-card{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}.result-card>.eyebrow,.result-card>h2,.result-card>button{grid-column:1/-1}.result-card #bonus-ranking-title{grid-column:2;grid-row:3;margin:0 0 3px}.result-card #bonus-podium{grid-column:2}.result-card #podium{grid-column:1;grid-row:3/5}}
@media(max-width:560px),(max-height:650px){.result-card{top:51%;max-height:96%;padding:12px}.result-card>h2{margin:3px 0 8px}.podium-row{grid-template-columns:24px 28px minmax(70px,1fr) 54px;padding:6px 8px}.podium-row .score-label{display:none}.podium-row strong{font-size:17px}.result-card>button{margin-top:10px;padding:9px 14px}}
@media(prefers-reduced-motion:reduce){.golden-stage #render-surface:after,.golden-confetti,.golden-smoke,.firework-spark,.impact-star,.impact-trail,#status-pill i{animation:none!important}}

/* Golden Pin and finish polish V2.5 */
.golden-stage #scoreboard{left:50%;right:auto;width:min(440px,calc(100% - 28px));transform:translateX(-50%)}
.golden-stage #scoreboard .golden-score{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;min-width:0;padding:12px 24px;border-radius:18px;background:linear-gradient(145deg,#6b3b0be8,#32112ce8);box-shadow:0 0 34px #ffd56a55,inset 0 1px 0 #fff5}
.golden-stage #scoreboard .golden-score span{display:block;width:100%;color:#fff3bd;font-size:clamp(11px,2.2vw,15px);font-weight:1000;letter-spacing:.24em;text-align:center;white-space:nowrap}
.golden-stage #scoreboard .golden-score strong{display:block;width:100%;font-size:clamp(25px,5vw,36px);line-height:1.05;text-align:center;white-space:nowrap}
.finished-stage{background:radial-gradient(circle at 50% 15%,#755017 0,#241034 42%,#030611 82%)!important}.finished-stage .vignette{background:radial-gradient(ellipse at 50% 45%,transparent 24%,#10051abd 100%)}
.result-card #podium,.result-card #bonus-podium{grid-auto-rows:minmax(52px,auto);align-content:start}.result-card #podium .podium-row,.result-card #bonus-podium .podium-row{min-height:52px;height:100%}.result-actions{grid-column:1/-1;display:flex;justify-content:center;gap:10px;margin-top:18px}.result-actions button{min-width:210px;padding:12px 18px}.result-card #podium h3{min-height:28px}.result-card #bonus-ranking-title{min-height:28px}
.player-roster{max-height:150px;overflow:auto;align-content:flex-start}.rank b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:720px){#leaderboard{max-height:46vh;overflow:auto}.rank:nth-child(n+6){display:grid}.golden-stage #turn-banner{left:8px;width:calc(100% - 16px);top:126px}.result-actions{flex-direction:column}.result-actions button{width:100%;min-width:0}}
@media(max-width:560px),(max-height:650px){.result-actions{margin-top:9px}.result-actions button{padding:9px 12px}}

/* Startseiten-QR und lesbare Bewertungsflächen V2.7 */
.config-qr-card{position:absolute;z-index:4;right:clamp(14px,3vw,42px);bottom:clamp(24px,4vh,48px);display:grid;grid-template-columns:104px minmax(170px,260px);align-items:center;gap:15px;width:min(390px,calc(100% - 28px));padding:13px 16px;border:1px solid #38eaff88;border-radius:20px;background:linear-gradient(135deg,#06182ff0,#271031ef);box-shadow:0 0 34px #38eaff2e,inset 0 1px 0 #fff3;text-align:left;overflow:hidden}.config-qr-card[hidden]{display:none!important}.config-qr-card img{position:relative;z-index:2;width:96px;height:96px;padding:5px;border:4px solid #fff;border-radius:12px;background:#fff;image-rendering:pixelated;box-shadow:0 0 24px #38eaff66}.config-qr-card img[hidden]{display:none}.config-qr-card>div:not(.qr-orbit){position:relative;z-index:2;display:grid;gap:3px}.config-qr-card small{color:var(--cyan);font-size:9px;font-weight:1000;letter-spacing:.18em}.config-qr-card strong{color:#fff;font-size:clamp(14px,2vw,20px);line-height:1.05}.config-qr-card p{margin:3px 0;color:#d7edf5;font-size:11px;line-height:1.35}.config-qr-card span{color:var(--amber);font-size:8px;font-weight:900;letter-spacing:.05em}.qr-orbit{position:absolute;left:48px;width:140px;height:140px;border:1px dashed #38eaff66;border-radius:50%;animation:qr-orbit 7s linear infinite}.qr-orbit:before,.qr-orbit:after{content:"";position:absolute;border-radius:50%;background:var(--pink);box-shadow:0 0 16px var(--pink)}.qr-orbit:before{top:-4px;left:64px;width:8px;height:8px}.qr-orbit:after{right:5px;bottom:18px;width:6px;height:6px}.qr-ready{border-color:#65ffbf99}.qr-ready .qr-orbit{border-color:#65ffbf66}.qr-ready span{color:#65ffbf}@keyframes qr-orbit{to{transform:rotate(360deg)}}
#scoreboard{align-items:stretch}.frame-box{min-width:0;min-height:58px;display:grid;grid-template-rows:auto 1fr auto;align-content:stretch}.frame-box b,.frame-box .rolls,.frame-box .frame-total{display:flex;align-items:center;justify-content:center;min-width:0}.frame-box .rolls i{flex:1;min-width:0}.podium-row{min-height:56px}.result-card #podium h3,.result-card #bonus-ranking-title{display:flex;align-items:center;justify-content:center;text-align:center}
@media(max-width:840px){.config-qr-card{right:50%;bottom:94px;transform:translateX(50%);grid-template-columns:76px minmax(0,1fr);width:min(360px,calc(100% - 24px));padding:10px 12px}.config-qr-card img{width:70px;height:70px}.qr-orbit{left:34px;width:104px;height:104px}#attract-joke{bottom:196px}}
@media(max-height:680px){.config-qr-card{bottom:80px;grid-template-columns:62px minmax(0,1fr)}.config-qr-card img{width:58px;height:58px}.config-qr-card p{display:none}.qr-orbit{display:none}#attract-joke{display:none}}
@media(prefers-reduced-motion:reduce){.qr-orbit{animation:none}}
.stage-effect{position:absolute;inset:0;z-index:17;overflow:hidden;pointer-events:none}.stage-effect i{position:absolute;display:block}.stage-effect-flash{background:#fff;animation:stage-flash 1.3s ease-out forwards;mix-blend-mode:screen}.stage-effect-flash i{inset:0;background:radial-gradient(circle,#fff 0,#bff8ff88 28%,transparent 70%)}.stage-effect-explosion i{left:50%;top:46%;width:42px;height:42px;border:8px solid #ffd56a;border-radius:50%;box-shadow:0 0 30px #ff6b18,inset 0 0 30px #fff;animation:shockwave 1.35s ease-out forwards}.stage-effect-spotlight i{top:-18%;left:calc(18% + var(--beam-index)*30%);width:16%;height:126%;transform:rotate(calc(-18deg + var(--beam-index)*18deg));transform-origin:top;background:linear-gradient(#fff9,#38eaff44 35%,transparent 82%);filter:blur(8px);mix-blend-mode:screen;animation:spotlight-sweep 1.8s ease-in-out forwards}.stage-effect-halloween{background:radial-gradient(circle at 50% 42%,#ff7a1838,#5a168b55 45%,#04120ae8);animation:stage-fade 2.2s ease-out forwards}.stage-effect-disco{background:conic-gradient(from 0deg at 50% 50%,#ff3fa955,#38eaff55,#ffd56a44,#a54cff55,#ff3fa955);mix-blend-mode:screen;animation:disco-show 2.3s linear forwards}.stage-effect-wave i{left:-20%;top:28%;width:140%;height:44%;border:10px solid #38eaff;border-radius:50%;box-shadow:0 0 50px #ff3fa9,inset 0 0 50px #65ff8f;animation:neon-wave-show 2.2s ease-out forwards}.stage-effect-fireworks{background:radial-gradient(circle at 22% 26%,#ffd56a66,transparent 15%),radial-gradient(circle at 76% 32%,#38eaff66,transparent 18%),radial-gradient(circle at 52% 18%,#ff3fa966,transparent 16%);animation:stage-fade 2.2s ease-out forwards;mix-blend-mode:screen}@keyframes stage-flash{0%{opacity:1}14%{opacity:.18}28%{opacity:.75}100%{opacity:0}}@keyframes shockwave{0%{transform:translate(-50%,-50%) scale(.1);opacity:1}100%{transform:translate(-50%,-50%) scale(22);opacity:0}}@keyframes spotlight-sweep{0%{opacity:0;transform:rotate(-34deg)}20%{opacity:1}70%{opacity:.85;transform:rotate(28deg)}100%{opacity:0;transform:rotate(42deg)}}@keyframes stage-fade{0%,45%{opacity:1}100%{opacity:0}}@keyframes disco-show{0%{opacity:0;transform:scale(.5) rotate(0)}18%{opacity:.72}100%{opacity:0;transform:scale(1.8) rotate(220deg)}}@keyframes neon-wave-show{0%{transform:scale(.1);opacity:0}24%{opacity:.9}100%{transform:scale(1.4);opacity:0}}
@media(prefers-reduced-motion:reduce){.stage-effect{animation:none!important;opacity:.18}.stage-effect i{animation:none!important}}

/* Zweizeilige Frame-Tafel und entzerrte Abschlusswertung V2.9 */
#scoreboard.scoreboard-ten{width:min(360px,46vw);grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(58px,auto));gap:5px}
.frames-ten #turn-banner{top:202px}
.finished-stage .topbar,.finished-stage #scoreboard,.finished-stage #leaderboard,.finished-stage #turn-banner,.finished-stage .telemetry,.finished-stage #status-pill{visibility:hidden;pointer-events:none}
.result-card:not([hidden]){display:block;width:min(980px,calc(100% - 28px));padding:clamp(20px,3vw,34px);border-color:#ffd56a66;background:linear-gradient(145deg,rgba(7,23,42,.98),rgba(31,10,43,.98));box-shadow:0 26px 100px #000d,0 0 60px #ffd56a1f}
.result-card>.eyebrow{margin:0 0 8px;text-align:center}.result-card>h2{margin:0 0 24px;padding-bottom:18px;border-bottom:1px solid #ffd56a55;line-height:1.05}
.result-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:18px}
.result-column{display:flex;flex-direction:column;min-width:0;padding:16px;border:1px solid #38eaff38;border-radius:18px;background:linear-gradient(145deg,#071b2ddd,#121126dd);box-shadow:inset 0 1px 0 #ffffff12}
.result-column.bonus-result-column{border-color:#ffd56a55;background:linear-gradient(145deg,#251809dd,#1b1028dd)}
.result-column>h3{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid #ffffff1c;color:var(--cyan);font-size:14px;line-height:1.2;letter-spacing:.08em;text-align:center;white-space:nowrap}.result-column>#bowling-ranking-title,.result-column>#bonus-ranking-title{flex:0 0 48px;height:48px;min-height:48px;max-height:48px}.result-column>h3>span{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;font-size:16px;line-height:1}
.result-column.bonus-result-column>h3{color:var(--amber)}
.result-card #podium,.result-card #bonus-podium{display:grid;grid-column:auto;grid-row:auto;grid-auto-rows:56px;align-content:start;gap:8px;width:100%;margin:0}.result-column #bonus-ranking-title{grid-column:auto;grid-row:auto;margin:0 0 14px}
.result-card #podium .podium-row,.result-card #bonus-podium .podium-row{height:56px;min-height:56px;max-height:56px}
.result-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}
@media(max-width:720px){#scoreboard.scoreboard-ten{width:min(330px,58vw)}.result-columns{grid-template-columns:1fr}.result-card>h2{margin-bottom:14px;padding-bottom:12px}.result-column{padding:12px}.result-actions{flex-direction:column}.result-actions button{width:100%;min-width:0}}
@media(max-width:560px),(max-height:650px){#scoreboard.scoreboard-ten{grid-template-rows:repeat(2,minmax(46px,auto))}.frames-ten #turn-banner{top:174px}.result-card{top:50%;max-height:96%;padding:12px}.result-columns{gap:10px}.result-column>#bowling-ranking-title,.result-column>#bonus-ranking-title{flex-basis:38px;height:38px;min-height:38px;max-height:38px;margin-bottom:8px;padding-bottom:7px;font-size:11px}.result-column>h3>span{width:16px;height:16px;flex-basis:16px;font-size:13px}.result-card #podium,.result-card #bonus-podium{grid-auto-rows:44px}.result-card #podium .podium-row,.result-card #bonus-podium .podium-row{height:44px;min-height:44px;max-height:44px}.result-actions{margin-top:10px}}

/* Adaptive compact layout V4.0 */
.mode-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.network-mode{border-color:#65ffbf66}.network-mode b{color:#65ffbf}.network-mode small[data-state="connected"]{color:#65ffbf}.network-mode small[data-state="ready"]{color:var(--cyan)}
@media(max-width:900px){#scoreboard,#scoreboard.scoreboard-ten{left:50%;right:auto;top:max(62px,env(safe-area-inset-top));width:min(520px,calc(100% - 24px));transform:translateX(-50%)}#leaderboard{top:auto;right:10px;bottom:126px;width:min(210px,34vw);max-height:34vh;overflow:auto}#turn-banner,.frames-ten #turn-banner{top:clamp(126px,19vh,182px);left:50%;width:min(520px,calc(100% - 24px));transform:translateX(-50%)}.telemetry{left:10px;bottom:126px;flex-direction:column}.telemetry>div{min-width:76px}.mode-grid{grid-template-columns:1fr}.mode-grid button{justify-content:center}.setup-card{width:min(560px,calc(100% - 18px))}}
@media(max-width:560px){#game-shell{min-height:0}.topbar{left:8px;right:8px}.brand small{font-size:7px}.brand strong{font-size:14px}#scoreboard,#scoreboard.scoreboard-ten{top:58px;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(44px,auto));gap:3px}.frame-box{min-height:44px;padding:3px 2px}.frame-total{font-size:12px}#turn-banner,.frames-ten #turn-banner{top:154px;min-height:50px;padding:7px 42px}.player-avatar-turn{left:7px}.telemetry{left:7px;bottom:118px;gap:3px}.telemetry>div{min-width:66px;padding:4px 6px}.telemetry>div:nth-child(3){display:none}#leaderboard{right:7px;bottom:118px;width:min(178px,48vw);max-height:26vh}.rank{grid-template-columns:14px 22px minmax(0,1fr) auto}.overlay{width:calc(100% - 14px);max-height:calc(100% - 16px);padding:12px;border-radius:15px}.setup-card h1{font-size:clamp(31px,12vw,48px)}.player-roster{max-height:82px}.secondary-actions{grid-template-columns:1fr}.diag-grid{grid-template-columns:96px minmax(0,1fr)}.result-card:not([hidden]){width:calc(100% - 14px);max-height:calc(100% - 14px);overflow:auto}.result-columns{grid-template-columns:1fr}.podium-row{grid-template-columns:24px 28px minmax(64px,1fr) 54px}.score-label{display:none}.attract-logo{width:94vw}.attract-logo h1{font-size:min(21vw,84px);letter-spacing:-.08em}.attract-logo small{font-size:8px;letter-spacing:.2em}.attract-logo b{font-size:11px}.touch-start{left:50%;transform:translateX(-50%);width:calc(100% - 24px);min-width:0}#attract-joke{left:50%;bottom:205px;transform:translateX(-50%);width:calc(100% - 36px);font-size:14px}}
@media(max-height:620px){#scoreboard,#scoreboard.scoreboard-ten{top:8px;left:50%;width:min(440px,58vw);transform:translateX(-50%)}#leaderboard{top:8px;right:8px;bottom:auto;max-height:44vh}.telemetry{left:8px;bottom:92px;flex-direction:row}.telemetry>div{min-width:64px}#turn-banner,.frames-ten #turn-banner{top:104px;width:min(460px,62vw)}#play-panel{bottom:7px;padding:6px}.sensor-strip{display:none}.aim-row button{height:34px}.throw-button{height:34px}.attract-logo{width:min(66vw,520px)}.attract-logo h1{font-size:min(10vw,72px);margin:6px 0}.attract-logo small{font-size:7px}.attract-logo b{padding:4px 12px;font-size:9px}#attract-joke{display:none}.touch-start{display:block!important;bottom:10px;min-width:220px;padding:9px 18px}.config-qr-card{display:none!important}}
.challenge-score{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 16px;min-width:min(360px,80vw);padding:10px 16px;border:1px solid #ffd56a;border-radius:14px;background:linear-gradient(135deg,#16112eea,#3b2108ea);box-shadow:0 0 28px #ffd56a2b}.challenge-score span,.challenge-score small{color:#bfeeff;font-size:10px;font-weight:900;letter-spacing:.12em}.challenge-score b{color:#ffd56a;font-size:17px}.challenge-score strong{grid-row:1/3;grid-column:2;color:#fff;font-size:24px}.challenge-score small{grid-column:1/-1}
.play-style-picker{display:grid;gap:6px;margin:4px 0 10px;color:var(--cyan);font-size:10px;font-weight:1000;letter-spacing:.13em}.play-style-picker select{width:100%;min-height:46px;padding:0 12px;border:1px solid #ffd56a;border-radius:11px;background:linear-gradient(135deg,#071c31,#2a1531);color:#fff;font-weight:900}
.setup-card select,.utility-card select,.play-style-picker select,.admin-grid select,.portal-card select{color-scheme:dark;background-color:#081329;color:#f5fcff}.setup-card select option,.setup-card select optgroup,.utility-card select option,.utility-card select optgroup,.play-style-picker select option,.play-style-picker select optgroup,.admin-grid select option,.admin-grid select optgroup,.portal-card select option,.portal-card select optgroup{background:#081329;color:#f5fcff}.setup-card select option:checked,.utility-card select option:checked,.play-style-picker select option:checked,.admin-grid select option:checked,.portal-card select option:checked{background:#163e58;color:#fff}
@media(max-aspect-ratio:3/4){#scoreboard,#scoreboard.scoreboard-ten{top:max(54px,env(safe-area-inset-top));width:calc(100% - 16px)}#turn-banner,.frames-ten #turn-banner{top:164px;width:calc(100% - 16px)}#leaderboard{top:228px;right:8px;bottom:auto;width:calc(100% - 16px);max-height:20vh}.telemetry{bottom:118px;left:7px;right:7px;display:grid;grid-template-columns:repeat(3,1fr)}.telemetry>div{min-width:0}.setup-card{max-height:calc(100vh - 14px);overflow:auto}.setup-grid{grid-template-columns:1fr}.challenge-score{min-width:0;width:100%}.result-card:not([hidden]){top:50%;width:calc(100% - 12px);max-height:calc(100% - 12px);overflow:auto}.topbar{gap:5px}.brand small{display:none}.touch-start{left:50%;transform:translateX(-50%);animation:none!important}#attract-joke{left:12px;right:12px;width:auto;transform:none;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.3}}

/* Geordnetes Admin-Control-Center V4.2.2 */
.admin-card{display:flex;flex-direction:column;width:min(960px,calc(100% - 24px));height:min(900px,calc(100% - 24px));max-height:calc(100% - 24px);overflow:hidden;padding:0}.admin-card>.eyebrow,.admin-card>h2,.admin-card>#admin-lock{margin-left:clamp(14px,2.5vw,28px);margin-right:clamp(14px,2.5vw,28px)}.admin-card>.eyebrow{margin-top:22px}.admin-card>h2{margin-bottom:16px}.admin-card #admin-lock{overflow:auto;padding-bottom:24px}.admin-card #admin-content{min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 clamp(14px,2.5vw,28px) 92px;scrollbar-gutter:stable}.admin-section{min-width:0;margin:0 0 14px;padding:clamp(14px,2vw,20px);border:1px solid #ffffff1c;border-radius:17px;background:linear-gradient(145deg,#071a2ce8,#100d23e8);box-shadow:inset 0 1px 0 #ffffff10}.admin-section-heading{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:14px}.admin-section-heading>span{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--cyan);border-radius:11px;color:var(--cyan);font-weight:1000}.admin-card .admin-section-heading h3{margin:0;color:#fff;font-size:14px;letter-spacing:.1em}.admin-section-heading p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.4}.admin-section-heading output{align-self:start;padding:7px 10px;border:1px solid var(--cyan);border-radius:999px;color:var(--cyan);font-size:9px;font-weight:1000;letter-spacing:.08em;white-space:nowrap}.admin-section-heading output[data-state="connected"]{border-color:#65ffbf;color:#65ffbf}.admin-section-heading output[data-state="connecting"]{border-color:var(--amber);color:var(--amber)}.admin-section-heading output[data-state="offline"]{border-color:#ff6f91;color:#ff9bae}.admin-control-select{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.admin-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.admin-mode-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:5px 10px;min-width:0;min-height:112px;padding:13px;border:1px solid #ffffff26;border-radius:14px;background:#04111f;cursor:pointer}.admin-mode-card:hover,.admin-mode-card:focus-within{border-color:var(--cyan);box-shadow:0 0 22px #38eaff1f}.admin-mode-card:has(input:checked){border-color:var(--cyan);background:linear-gradient(145deg,#09334a,#18132d);box-shadow:0 0 25px #38eaff24,inset 0 1px 0 #ffffff20}.admin-mode-card input{position:absolute;top:10px;right:10px;width:18px;height:18px;accent-color:var(--cyan)}.admin-mode-card .admin-mode-icon{display:grid;grid-row:1/3;place-items:center;width:42px;height:42px;border-radius:10px;background:#102c45;color:var(--cyan);font-size:12px;font-weight:1000}.admin-mode-card strong{min-width:0;padding-right:20px;color:#fff;font-size:12px}.admin-mode-card b{padding:3px 6px;border-radius:999px;background:#38eaff1c;color:var(--cyan);font-size:7px;letter-spacing:.08em}.admin-mode-card small{grid-column:1/-1;color:var(--muted);font-size:10px;line-height:1.35}.admin-mode-hint{margin:10px 0 14px;padding:9px 11px;border-left:3px solid var(--cyan);border-radius:5px;background:#38eaff0d;color:#c8eaf2;font-size:11px}.admin-card .admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.admin-card .admin-grid>*,.admin-card .mapping-grid>*,.admin-card .zone-row>*{min-width:0}.admin-card .admin-grid label,.admin-card .mapping-grid label,.admin-card .zone-row label{justify-content:flex-start;padding:10px;border:1px solid #ffffff16;border-radius:11px;background:#04111f}.admin-card .admin-grid input,.admin-card .admin-grid select{width:100%;max-width:100%}.admin-card .admin-check{display:flex;flex-direction:row;align-items:center;gap:9px;min-height:60px}.admin-card .admin-check input{width:18px;height:18px;min-height:0}.admin-unit{color:var(--muted);font-weight:500}.admin-card .music-grid{margin-top:10px}.admin-card .music-grid label{min-width:0;min-height:54px}.admin-card .zone-row{margin-top:10px}.admin-actions{position:absolute;z-index:2;left:0;right:0;bottom:0;margin:0;padding:12px clamp(14px,2.5vw,28px) max(12px,env(safe-area-inset-bottom));border-top:1px solid #38eaff4d;background:#04111ff5;box-shadow:0 -14px 35px #0009;backdrop-filter:blur(14px)}.admin-actions button{min-height:44px}.admin-actions button:first-child{order:1}.admin-actions button:nth-child(2){order:2}.admin-actions button:last-child{order:3}
@media(max-width:760px){.admin-card{width:calc(100% - 12px);height:calc(100% - 12px);max-height:calc(100% - 12px)}.admin-mode-grid{grid-template-columns:1fr}.admin-mode-card{min-height:86px}.admin-card .admin-grid,.admin-card .mapping-grid{grid-template-columns:1fr}.admin-section-heading{grid-template-columns:36px minmax(0,1fr)}.admin-section-heading>span{width:36px;height:36px}.admin-section-heading output{grid-column:1/-1;justify-self:stretch;text-align:center}.admin-actions{display:grid;grid-template-columns:1fr 1fr}.admin-actions button{width:100%;margin:0}.admin-actions button:first-child{grid-column:1/-1}.admin-card #admin-content{padding-bottom:154px}}
@media(max-width:420px){.admin-card .zone-row,.admin-card .music-grid{grid-template-columns:1fr}.admin-actions{grid-template-columns:1fr}.admin-actions button:first-child{grid-column:auto}.admin-card #admin-content{padding-bottom:198px}.admin-card>.eyebrow{margin-top:14px}.admin-card>h2{font-size:20px}}
.admin-mode-card.selected{border-color:var(--cyan);background:linear-gradient(145deg,#09334a,#18132d);box-shadow:0 0 25px #38eaff24,inset 0 1px 0 #ffffff20}
.admin-card #admin-content{flex:1 1 auto}
.admin-api-grid{display:grid;grid-template-columns:2fr 1fr 1.4fr;gap:9px}.admin-api-grid>div{display:flex;min-width:0;min-height:68px;flex-direction:column;justify-content:center;gap:7px;padding:11px;border:1px solid #ffffff16;border-radius:11px;background:#04111f}.admin-api-grid small{color:var(--muted);font-size:8px;font-weight:1000;letter-spacing:.12em}.admin-api-grid strong,.admin-api-grid code{overflow-wrap:anywhere;color:#e7fbff;font-size:10px;line-height:1.45}.admin-api-grid code{color:var(--cyan)}.admin-api-note{margin:10px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.admin-api-note code{color:#dffaff}@media(max-width:760px){.admin-api-grid{grid-template-columns:1fr}}

.admin-card button,.admin-card .upload-label,.admin-card .music-grid label{display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 12px;line-height:1.2;text-align:center}.admin-card .button-row button,.admin-card .admin-actions button{height:44px;min-height:44px;margin:0}.admin-card .music-grid label{justify-content:flex-start}
.game-lock{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:18px;background:#02050bf2;backdrop-filter:blur(16px)}.game-lock[hidden]{display:none}.game-lock-panel{display:grid;width:min(420px,100%);gap:16px;padding:28px;border:1px solid var(--cyan);border-radius:16px;background:#071525;box-shadow:0 24px 80px #000c}.game-lock-panel small{color:var(--cyan);font-weight:900;letter-spacing:.12em}.game-lock-panel h1,.game-lock-panel p{margin:0}.game-lock-panel label{display:grid;gap:7px;color:#dffaff;font-size:12px;font-weight:900}.game-lock-panel input,.game-lock-panel button{min-height:44px;border:1px solid var(--line);border-radius:10px;background:#061626;color:#fff;padding:9px 12px;font:inherit}.game-lock-panel button{border-color:var(--cyan);font-weight:1000}.game-lock-panel p{min-height:20px;color:#ffc1d9;font-size:12px}.game-locked{overflow:hidden}

/* Configurable station branding */
:root{--frame-accent:#5ae0ff;--line:color-mix(in srgb,var(--frame-accent) 24%,transparent)}
#game-shell{--logo-primary:#eaffff;--logo-accent:#ff52ac;--stage-background:#040711;--player-name-color:#fff;--player-name-background:#07192c;background:radial-gradient(ellipse at 50% 22%,color-mix(in srgb,var(--stage-background) 35%,#26355a) 0,color-mix(in srgb,var(--stage-background) 65%,#110b26) 34%,var(--stage-background) 72%)}
.brand strong{background:linear-gradient(90deg,var(--logo-primary),var(--logo-accent),var(--amber));background-clip:text;-webkit-background-clip:text;color:transparent}
.attract-screen{background:radial-gradient(circle at 50% 45%,transparent 0 16%,color-mix(in srgb,var(--stage-background) 58%,#0b1735) 42%,var(--stage-background) 76%)}
.attract-logo h1>span{color:var(--logo-primary);text-shadow:0 0 22px color-mix(in srgb,var(--logo-primary) 55%,transparent)}
.attract-logo h1>em{background:linear-gradient(180deg,var(--logo-primary) 0,color-mix(in srgb,var(--logo-primary) 72%,var(--cyan)) 28%,var(--logo-accent) 66%,var(--amber) 100%);background-clip:text;-webkit-background-clip:text;filter:drop-shadow(0 0 14px color-mix(in srgb,var(--logo-accent) 60%,transparent))}
#turn-banner{background:linear-gradient(100deg,var(--player-name-background),color-mix(in srgb,var(--player-name-background) 70%,#291039))}
#turn-banner strong{color:var(--player-name-color);text-shadow:0 0 13px var(--logo-accent)}
.player-roster>span{border-color:color-mix(in srgb,var(--player-name-color) 35%,transparent);background:var(--player-name-background);color:var(--player-name-color)}
#game-shell[data-player-name-style="compact"] #turn-banner{width:min(390px,64vw);padding-top:8px;padding-bottom:8px;box-shadow:none}
#game-shell[data-player-name-style="compact"] .player-roster>span{min-height:31px;padding:4px 8px;border-radius:6px}
#game-shell[data-player-name-style="text"] #turn-banner{border-color:transparent;background:transparent;box-shadow:none}
.rank:not(.active),.frame-box:not(.active),.telemetry>div,#play-panel,.admin-section,.admin-api-grid>div,.portal-live{border-color:color-mix(in srgb,var(--frame-accent) 32%,transparent)}
#game-shell[data-player-name-style="text"] #turn-banner strong{text-shadow:none}
#game-shell[data-player-name-style="text"] .player-roster>span{border-color:transparent;background:transparent;padding-left:4px;padding-right:4px}
