/* KNGX Drift — full-screen game shell (only loaded by "/"). The game owns the whole viewport:
   no page chrome, no scroll, no pull-to-refresh / pinch zoom, safe-area aware (notches, home indicator). */
html.full,body.full{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#050706;
  touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
html.full{scroll-behavior:auto}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.full-shell{position:fixed;inset:0;overflow:hidden}
.game.full{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-height:none;min-height:0;aspect-ratio:auto;margin:0;
  border:0;border-radius:0;box-shadow:none;background:#050706;touch-action:none}
.game.full > canvas{touch-action:none}
/* keep HUD, touch controls, overlays and toasts clear of notches / rounded corners / the home indicator */
.game.full .dhud-top{padding:calc(.6rem + env(safe-area-inset-top)) calc(3.6rem + env(safe-area-inset-right)) .6rem calc(.8rem + env(safe-area-inset-left))}
.game.full .dhud-mid{top:calc(4.2rem + env(safe-area-inset-top));left:calc(.8rem + env(safe-area-inset-left))}
.game.full .dhud-pow{top:calc(4.2rem + env(safe-area-inset-top));right:calc(.8rem + env(safe-area-inset-right))}
.game.full .dhud-bars{bottom:calc(.8rem + env(safe-area-inset-bottom))}
.game.full .dhud-speed{bottom:calc(.55rem + env(safe-area-inset-bottom));right:calc(.9rem + env(safe-area-inset-right))}
.game.full .tctl{bottom:calc(2.4rem + env(safe-area-inset-bottom));padding:0 calc(.9rem + env(safe-area-inset-right)) 0 calc(.9rem + env(safe-area-inset-left))}
.game.full .ov{padding:calc(1.2rem + env(safe-area-inset-top)) calc(1.2rem + env(safe-area-inset-right)) calc(1.2rem + env(safe-area-inset-bottom)) calc(1.2rem + env(safe-area-inset-left));touch-action:pan-y}
.game.full .dtoast{bottom:calc(5.4rem + env(safe-area-inset-bottom))}
/* fullscreen toggle: small, top-right, above overlays */
.fsbtn{position:fixed;z-index:9;top:calc(.6rem + env(safe-area-inset-top));right:calc(.7rem + env(safe-area-inset-right));width:2.3rem;height:2.3rem;
  display:grid;place-items:center;padding:0;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(5,7,6,.45);color:#F4F6F5;cursor:pointer;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:.78;transition:opacity .2s,background .2s,transform .15s;touch-action:manipulation}
.fsbtn:hover,.fsbtn:focus-visible{opacity:1;background:rgba(5,7,6,.7)}
.fsbtn:focus-visible{outline:2px solid var(--g);outline-offset:2px}
.fsbtn:active{transform:scale(.94)}
.fsbtn svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.fsbtn .fs-exit,.fsbtn.on .fs-enter{display:none}
.fsbtn.on .fs-exit{display:block}
.noscript{position:fixed;inset:auto 0 45% 0;text-align:center;color:#fff}
@media (pointer:coarse){
  .game.full .dhud-bars{bottom:calc(.55rem + env(safe-area-inset-bottom))}
  /* phones: speed sits under the score (bottom is reserved for the touch buttons) */
  .game.full .dhud-speed{right:auto;bottom:auto;left:calc(.8rem + env(safe-area-inset-left));top:calc(4.1rem + env(safe-area-inset-top))}
  .game.full .dhud-mid{top:calc(6.1rem + env(safe-area-inset-top))}
}
@media (max-height:460px) and (orientation:landscape){
  .game.full .dhud-mid,.game.full .dhud-pow{top:calc(3.3rem + env(safe-area-inset-top))}
  .game.full .tctl{bottom:calc(1rem + env(safe-area-inset-bottom))}
}
