/* Shared native controls. Scene art never supplies a button hit target. */
.court-nav,.hud-buttons{display:flex;flex-direction:column;align-items:flex-end;gap:7px;pointer-events:none}
.court-nav{left:auto;right:max(8px,env(safe-area-inset-right,0px))}
.court-nav button,.hud-buttons button{pointer-events:auto;touch-action:manipulation}
.arcade-menu button,.arcade-menu a,.confirm-reset button{touch-action:manipulation}
.challenge-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:56px;min-width:44px;min-height:56px;padding:5px 2px;border:2px solid #4a2859;border-radius:8px;background:#fff1d5;color:#29113f;box-shadow:0 3px 0 #29113f88;font:800 9px/1.2 Arial,sans-serif;text-transform:uppercase;text-align:center}
.challenge-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.challenge-toggle[aria-pressed=true]{background:#ffd44d;color:#241033;border-color:#352044}
.challenge-toggle:disabled{opacity:.6;cursor:default}
.park .challenge-toggle{background:#200b36;color:#fff0b1;border-color:#ffcb5d}
.park .challenge-toggle[aria-pressed=true]{background:#ffd44d;color:#241033}
.park .hud-buttons{width:56px;flex:none}.park .menu-icon{align-self:flex-end}
.court .hanging-banner{width:22%;top:calc(15.3% + 2px)}.court .champ{left:2%}.court .fans{right:2%}
.court .mascot{width:48%;left:0;bottom:23%}
.arcade-menu{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:#241132db;color:#fff1d5;overflow:auto;overscroll-behavior:contain}
.arcade-menu::backdrop{background:transparent;backdrop-filter:blur(2px)}
.menu-layout{min-height:100%;max-width:460px;margin:auto;display:flex;flex-direction:column;padding:max(24px,env(safe-area-inset-top)) 24px max(18px,env(safe-area-inset-bottom))}
.arcade-menu .menu-heading,.arcade-menu .dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;padding-bottom:10px}
.arcade-menu .eyebrow{margin:0 0 6px;color:#d7bfeb;font:800 10px/1.3 Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.arcade-menu h2{margin:0;font:800 30px/1.15 Arial,sans-serif;letter-spacing:-.7px;color:#fff1d5}
.arcade-menu .menu-close,.arcade-menu .close{width:44px;height:44px;flex:none;border:1px solid #ad91c355;border-radius:50%;background:#ffffff0c;color:#fff1d5;font:32px/1 Arial,sans-serif}
.arcade-menu nav{margin:14px 0}
.arcade-menu .menu-row{border:0;border-bottom:1px solid #c5a4d72b;color:#fff1d5;min-height:52px;padding:13px 0;gap:12px;font:700 16px/1.3 Arial,sans-serif;text-decoration:none}
.arcade-menu .menu-row[aria-current=true]{color:#ffd44d}
.arcade-menu .menu-row:disabled{color:#b29cba;opacity:.6;cursor:default}
.arcade-menu .resume,.arcade-menu .primary{min-height:50px;margin:10px 0 6px;background:#ffd44d;color:#241033;border:2px solid #11081b;border-radius:8px;font:800 17px/1.3 Arial,sans-serif;box-shadow:3px 3px 0 #04b5b0}
.arcade-menu .how-to,.arcade-menu details p{font:14px/1.5 Arial,sans-serif;color:#eadced;margin:8px 0 16px}
.arcade-menu summary{min-height:44px;padding:12px 0;font:700 14px/1.4 Arial,sans-serif;cursor:pointer}
.arcade-menu .personal-best,.arcade-menu .records{font:700 13px/1.6 Arial,sans-serif;color:#e7d2ef;margin:14px 0 4px}
.arcade-menu .storage-note{font:12px/1.5 Arial,sans-serif;color:#d3bdda;margin:10px 0 0}
.menu-footer{margin-top:auto;padding-top:22px}
.house-ad{display:flex;gap:14px;align-items:center;padding:16px;border-top:1px solid #c5a4d740;color:#fff1d5;text-decoration:none;background:#ffffff06}
.house-ad img{width:44px;height:53px;object-fit:contain}.house-ad small{display:block;color:#c6abc8;font:800 9px/1.2 Arial,sans-serif;letter-spacing:.13em}
.house-ad strong{display:block;margin-top:3px;font:800 20px/1.2 Arial,sans-serif}.house-ad p{margin:5px 0;font:12px/1.4 Arial,sans-serif}.house-ad b{color:#ffd44d;font:800 12px/1.4 Arial,sans-serif}
.confirm-reset{position:fixed;inset:0;width:min(90vw,360px);height:fit-content;max-height:85dvh;margin:auto;padding:24px;background:#fff1d5;color:#29113f;border:3px solid #6332a0;border-radius:14px;box-shadow:0 5px 0 #14071e}
.confirm-reset h2{margin:0 0 12px;font:800 24px/1.2 Arial,sans-serif}.confirm-reset p{font:14px/1.5 Arial,sans-serif}
.confirm-reset form{display:grid;gap:10px}.confirm-reset button{min-height:48px;border:2px solid #29113f;border-radius:7px;background:#ffd44d;color:#29113f;font:800 15px Arial,sans-serif}.confirm-reset button:last-child{background:#fff1d5}
.confirm-reset::backdrop{background:#170b25b9}
@media(min-width:700px){.court{max-width:540px;margin:auto}.court .court-nav{right:10px}}
@media(max-height:620px){.menu-layout{padding:14px 20px}.arcade-menu h2{font-size:25px}.arcade-menu .menu-row{min-height:44px}.menu-footer{padding-top:12px}.house-ad{padding:10px}.challenge-toggle{min-height:48px;width:50px;font-size:8px;gap:1px}.court .hanging-banner{top:9%;width:28.5%}.court .champ{left:1%}.court .fans{right:1%}.court .court-nav{top:calc(-1 * var(--board-height) + 7px)}.court .scoreboard{left:10px;transform:none;width:calc(100% - 80px)}.court .board-main{grid-template-columns:1fr 85px 1fr}.court .board-center img{width:82px}.court .board-bottom b{margin-left:3px}.court .board-bottom{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-height:620px){.court .court-nav{position:fixed;top:max(7px,env(safe-area-inset-top,0px));right:max(8px,env(safe-area-inset-right,0px))}}
