/* Shared, touch-first adjustments for every game. */
html{-webkit-text-size-adjust:100%}body{overflow-wrap:break-word}button,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,input,select,textarea{font-size:16px}button{min-height:44px}.icon-button,.icon{width:44px;height:44px;flex-shrink:0}input{font-size:16px}.topbar,.mast{gap:10px}.all-games{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;gap:5px;min-height:44px;padding:7px 13px;border:1px solid #ffffff20;border-radius:11px;background:#ffffff04;color:#dcd5eb;text-decoration:none;font-size:12px;letter-spacing:0}.all-games:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.game-controls{display:grid;gap:9px;padding:12px 16px;background:#171b28}.game-controls:not(:has(button:not([hidden]))){display:none}.game-controls .next-shot{margin:0}.game-controls .primary{min-height:48px}.ready-screen>*{flex-shrink:0}.overlay{align-items:flex-start}.intro-content,.paused-content{margin-block:auto}.intro-content{flex-shrink:0}.layout,.game-layout{min-width:0}.side,.side-panel{min-width:0}button,summary{scroll-margin:20px}main,.app{padding-top:max(18px,env(safe-area-inset-top));padding-right:max(26px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom));padding-left:max(26px,env(safe-area-inset-left))}
@media(max-width:700px){
 main,.app{padding-top:max(10px,env(safe-area-inset-top));padding-right:max(13px,env(safe-area-inset-right));padding-left:max(13px,env(safe-area-inset-left));padding-bottom:max(24px,env(safe-area-inset-bottom))}
 .topbar,.mast{padding-bottom:8px;min-height:53px}.wordmark{font-size:9px}.logo{font-size:8px;letter-spacing:1px}.all-games{font-size:12px;padding:6px 10px}.heading,.headline{padding:16px 1px}.heading h1,.headline h1{font-size:32px}.headline .sub{font-size:12px;line-height:1.45}.header-actions{gap:5px}.icon{width:44px;height:44px}.game-layout,.layout{gap:17px}.scorebar{padding:12px 16px}.hud{padding:12px}.hud strong{font-size:14px}.hud span{font-size:8px;letter-spacing:.6px}.scorebar small{font-size:9px;letter-spacing:.8px}.play-panel,.cabinet{scroll-margin-top:12px}.court-caption{font-size:9px;letter-spacing:.5px}.aim-panel>div:first-child,.aim-panel b{font-size:9px;letter-spacing:.6px}
 .stage:has(#readyScreen:not([hidden])) canvas,.viewport:has(#intro:not([hidden])) canvas{display:none}
 .stage:has(#readyScreen:not([hidden])){display:block}
 #readyScreen{position:relative;inset:auto;width:100%;padding:24px 20px;overflow:visible;min-height:340px;justify-content:center}
 .ready-screen h2{font-size:25px;margin-bottom:12px}.ready-screen p{font-size:13px;line-height:1.5;margin-bottom:15px}.ready-screen .mode-hint{font-size:12px;margin-bottom:15px}.ready-rules{margin:0 0 19px}.ready-rules strong{font-size:12px}.ready-rules span{font-size:12px}.ready-screen .primary{min-height:48px;font-size:15px}.mode-picker button{min-height:52px;font-size:14px;padding:10px 8px}.mode-picker span{font-size:10px}
 .viewport:has(#intro:not([hidden])){display:block}
 #intro{position:relative;inset:auto;width:100%;min-height:360px;padding:23px 20px;overflow:visible}
 .intro-content{margin:auto;padding:10px 0}.intro-content h2{font-size:39px}.intro-content p{font-size:13px}.intro-number{font-size:9px;letter-spacing:1.6px}.modes button{min-height:54px;font-size:13px}.modes small{font-size:9px}.primary,.secondary{min-height:48px;font-size:14px}.controls{padding:10px;gap:7px}.control{min-height:54px;font-size:13px;touch-action:none}.control span{font-size:8px;letter-spacing:.5px}.side-panel .objective{margin-top:1px}.objective p,.instruction-card #hint,.how li,.mission p{font-size:13px}.mission{padding:18px}.mission h2{font-size:20px}.tips,details{font-size:13px}.tips summary,summary{min-height:44px;align-items:center}.text-button,.reset{font-size:13px}footer{font-size:8px;flex-wrap:wrap;line-height:1.6}
}
@media(max-width:360px){.logo{max-width:150px;line-height:1.5}.headline h1{font-size:29px}.headline{gap:10px}.header-actions{flex-direction:column}.game-controls{padding:10px 12px}.controls{gap:5px;padding:8px}.control{font-size:11px}.scorebar>div+div{padding-left:14px}}
@media(max-height:500px) and (orientation:landscape){canvas,#court,#scene{max-height:none;height:auto;width:min(100%,350px)}.app,main{max-width:720px}.overlay{padding:15px}.intro-content h2{font-size:34px}}
