/* Keep repeated play taps inside the game; browser pinch zoom remains available. */
html[data-online-game] body>main,html[data-online-game] #df-screen-gate,html[data-online-game] #df-online-gate{touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
/* Nested scrolling help/shop panels are gesture boundaries too. Low specificity
   lets each game's canvas, movement and charging controls retain touch-action. */
:where(html[data-online-game] main,html[data-online-game] #df-screen-gate,html[data-online-game] #df-online-gate) :where(*){touch-action:manipulation}
html[data-online-game] :where(main,#df-screen-gate,#df-online-gate) :where(button,a,[role=button]){user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
html[data-online-game] main canvas{touch-action:none}
/* Score forms and any editable fields keep normal caret/selection behavior. */
html[data-online-game] :where(main,#df-screen-gate,#df-online-gate) :is(input,textarea,select,[contenteditable]:not([contenteditable=false]),[role=textbox]){touch-action:manipulation;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}
html.df-screen-locked{background:#091824;overflow:hidden}
html.df-screen-locked body>main{visibility:hidden!important;pointer-events:none!important}
#df-screen-gate{position:fixed;inset:0;z-index:50000;display:grid;place-items:center;overflow:auto;padding:max(20px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));background:radial-gradient(ellipse at 50% 20%,#214458,#091824 75%);color:#f2eee4;text-align:center;font:15px/1.8 system-ui,"Microsoft YaHei",sans-serif}
#df-screen-gate[hidden]{display:none!important}.df-screen-card{max-width:520px}.df-screen-card svg{width:96px;height:88px;fill:none;stroke:#b2e4d6;stroke-width:3}.df-screen-card h1{font:600 clamp(23px,6vw,32px)/1.4 system-ui;margin:12px 0}.df-screen-card p{color:#b6cbd1;margin:14px 0}.df-screen-card .df-screen-kicker{font-size:11px;letter-spacing:.16em;color:#b2e4d6}.df-screen-card button{display:block;width:100%;min-height:50px;background:#b2e4d6;border:0;border-radius:8px;color:#0a2929;font:650 15px system-ui;margin:25px 0 12px;cursor:pointer}.df-screen-card [role=status]{font-size:12px;min-height:24px}.df-screen-card a{color:#e5d2a6;font-size:13px;text-underline-offset:5px}
@media(orientation:landscape) and (max-height:500px){.df-screen-card svg{width:60px;height:48px}.df-screen-card p{margin:7px 0}.df-screen-card h1{font-size:24px;margin:5px 0}.df-screen-card button{margin:12px 0 7px;min-height:44px}}
