/* Centered concept: existing arena, original ASF cast, generated title. */
#mainMenu[hidden]{display:none!important}
.main-menu{position:fixed;inset:0;z-index:25;overflow:hidden;background:#2d6230;font-family:'Tug Sans TC',sans-serif;font-weight:900}
.main-menu::before{content:'';position:absolute;inset:0;background:url('assets/scene-v3/arena-hybrid-v3.png') center/cover no-repeat;transform-origin:50% 65%;transform:scale(1);pointer-events:none}
.menu-logo{position:absolute;left:9%;right:9%;top:12%;transform:none;width:auto;height:46%;margin:0;pointer-events:none;filter:drop-shadow(0 8px 5px #10261c66)}
.menu-logo img{display:block;width:100%;height:100%;object-fit:contain}
.menu-selection{position:absolute;left:12%;right:12%;bottom:12%;height:12.5%}
.menu-groups{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.7%;height:100%}
.menu-group{--corner:13px;position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;margin:0;padding:12px 12px 13px 17%;color:#123b13;border:0;background:linear-gradient(145deg,#fffdef 0%,#dcdccf 20%,#737970 48%,#f1eedc 58%,#444c43 100%);clip-path:polygon(var(--corner) 0,calc(100% - var(--corner)) 0,100% var(--corner),100% calc(100% - var(--corner)),calc(100% - var(--corner)) 100%,var(--corner) 100%,0 calc(100% - var(--corner)),0 var(--corner));transition:filter .12s}
.menu-group::before{content:'';position:absolute;inset:6px;z-index:-1;background:linear-gradient(#fffde2,#e9e4c4);border:5px solid #203623;box-shadow:inset 0 0 0 2px #fffff0;clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 9px,100% calc(100% - 9px),calc(100% - 9px) 100%,9px 100%,0 calc(100% - 9px),0 9px)}
.menu-group-name{display:block;flex:1;min-width:0;font-family:'Tug Sans TC',sans-serif;font-weight:900;font-size:clamp(23px,2.8vw,54px);line-height:1.15;transform:skewX(-5deg);white-space:nowrap}
.menu-group-bottom{display:flex;align-items:center;justify-content:center;padding:0;margin-right:3%;flex:none}
.menu-group-count{display:block;color:#fffef0;background:#153f14;border-radius:5px;padding:.16em .24em .2em;font-family:'Tug Sans TC',sans-serif;font-weight:900;font-size:clamp(13px,1.45vw,28px);line-height:1.2;white-space:nowrap}
.menu-group-play{position:absolute;left:11px;top:11px;bottom:11px;display:grid;place-items:center;width:18%;background:linear-gradient(#20ad20,#006419);clip-path:polygon(0 0,100% 0,75% 50%,100% 100%,0 100%)}
.menu-group-play img{width:73%;height:55%;margin-left:-12%;object-fit:contain}
.menu-group:is(:hover,:focus-visible){background:#b0ff63;filter:drop-shadow(0 0 7px #71ff21) brightness(1.09);outline:0;transform:none}
.menu-group:focus-visible::before{border-color:#43c217;box-shadow:inset 0 0 0 3px #e8ffc7}
.menu-group:active{transform:none;filter:brightness(.94)}
#menuClose{position:absolute;left:50%;bottom:.9%;transform:translateX(-50%);z-index:2;font-family:'Tug Sans TC',sans-serif;font-size:15px;padding:3px 13px 5px;border:2px solid #f0ebd7;color:#fff;background:#1a281de8;box-shadow:2px 3px #09150c}
#menuHome::before{background-image:url('assets/icons-v4/next.png');transform:rotate(180deg)}
.menu-open .game-screen{isolation:auto}.menu-open .hud{z-index:30;pointer-events:none;filter:none}.menu-open .hud .tools{margin-left:auto;pointer-events:auto}
.menu-open .hud h1{visibility:hidden;opacity:0}
.menu-open .scoreboard,.menu-open .tools #reset,.menu-open .tools #pauseToggle,.menu-open .tools #menuHome,.menu-open .tools #settingsBtn{display:none}
.menu-open .scene,.menu-open .question-hud,.menu-open .control-deck,.menu-open .pull-gauge,.menu-open .battle-announcement,.menu-open .pause-badge,.menu-open .screen-shade{visibility:hidden}
.hud h1.game-title{flex:0 0 auto;width:clamp(180px,23vw,320px);margin-right:auto;padding:0;border:0;background:none;box-shadow:none;filter:none;clip-path:none;transform:none;line-height:0}
.hud .tools{margin-left:auto}
.hud h1.game-title::before{display:none}.game-title img{width:100%;height:auto;max-height:66px;object-fit:contain}
@media(max-width:1100px){.menu-group{--corner:10px;padding:10px 8px 11px 17%;gap:3px}.menu-group-name{font-size:2.7vw}.menu-group-count{font-size:1.45vw}.hud h1.game-title{width:195px}.tools{gap:5px}.menu-selection{left:3%;right:3%}}
@media(max-width:749px) and (orientation:portrait){.menu-logo{left:4.5%;right:4.5%;top:9%;width:auto;height:23%}.menu-cast{width:96%;left:2%;bottom:calc(43% - 3.9375vw)}.menu-selection{left:5%;right:5%;bottom:9%;height:28%}.menu-groups{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:9px}.menu-group-name{font-size:26px}.menu-group-count{font-size:15px}.hud h1.game-title{width:150px}.tools{gap:3px}.tools .icon-button{width:29px;height:29px}#menuClose{bottom:2%}}
@media(max-height:500px) and (orientation:landscape){.menu-selection{height:17%;bottom:6%}.menu-logo{height:31%}#menuClose{font-size:11px;bottom:.3%;padding:0 8px 1px}.menu-group{padding-top:6px;padding-bottom:6px}.menu-group-play{top:8px;bottom:8px}}
@media(prefers-reduced-motion:reduce){.menu-cast{animation:none}.menu-group{transition:none}.menu-group:is(:hover,:focus-visible){transform:none}}

/* One state-driven camera. Entry uses the actual scene backdrop from its first
   frame, so revealing the actors/UI never crossfades two different crops. */
.menu-group{padding:8px!important;gap:0}
#scene::before{content:'';position:absolute;inset:0;background:inherit;transform:scale(var(--scene-camera-scale,1.28));transform-origin:50% 65%;pointer-events:none;z-index:0}
.menu-entering #mainMenu{background:transparent;pointer-events:none}
.menu-entering #mainMenu::before{visibility:hidden}
.menu-entering .menu-logo,.menu-entering .menu-selection{opacity:var(--menu-content-opacity,1);transform:none}
.menu-entering .scene{visibility:visible}
.menu-entering .scene canvas,.menu-entering .scene .team-art.has-image{opacity:var(--menu-game-opacity,0)}
.menu-entering .question-hud,.menu-entering .control-deck,.menu-entering .pull-gauge,.menu-entering .screen-shade{visibility:visible;opacity:var(--menu-game-opacity,0);pointer-events:none}
.menu-entering .control-deck *{pointer-events:none}
.menu-entering .hud .scoreboard{display:flex;opacity:var(--menu-game-opacity,0)}
.menu-entering .option:disabled{filter:drop-shadow(1px 3px 0 #10160f)}
.menu-entering .hud .tools{opacity:var(--menu-tools-opacity,1);pointer-events:none}
.menu-entering .hud .tools *{pointer-events:none}
.menu-entering #menuClose{visibility:hidden}
.menu-group:disabled{cursor:default;transform:none}
@media(max-width:1100px){.menu-selection{left:8%;right:8%}}
@media(max-width:749px) and (orientation:portrait){.menu-logo{left:2%;right:2%;top:17%;width:auto;height:39%}.menu-selection{left:9%;right:9%;bottom:13%;height:22%}.menu-group-name{font-size:29px}}
@media(prefers-reduced-motion:reduce){.main-menu::before,#scene::before{transform:scale(1.28)}}

@media(max-width:749px) and (orientation:portrait){.menu-selection{bottom:8%;height:29%}.menu-groups{grid-template-rows:repeat(3,1fr)}.menu-group:last-child{grid-column:1/-1;justify-self:center;width:49%}}
