/* Asteroids flight deck. All visual changes are scoped to this game. */
.asteroids-page .play-toolbar{display:none}
.asteroids-page canvas:focus-visible{outline:2px solid #ffe86f;outline-offset:-3px}
.asteroids-page .joystick-unit{display:flex;flex-direction:column;align-items:center;gap:9px;--stick-size:clamp(116px,35vw,154px)}
.asteroids-page .arcade-joystick{position:relative;width:var(--stick-size);height:var(--stick-size);border:2px solid #8fc7ff99;border-radius:50%;background:radial-gradient(circle,#293e7b 0 37%,#202c61 38% 62%,#3b5a8f 63% 65%,#1c2855 66%);box-shadow:inset 0 4px 18px #0c113e99,0 0 0 5px #99a8ff0d,0 5px 20px #090b2f55;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;outline:none;cursor:grab}
.asteroids-page .arcade-joystick:focus-visible{outline:3px solid #ffec85;outline-offset:5px}
.asteroids-page .arcade-joystick[aria-disabled="true"]{opacity:.45;cursor:default}
.asteroids-page .arcade-joystick.is-held{border-color:#73f8ed;box-shadow:inset 0 4px 18px #0c113e99,0 0 0 5px #69f2e41a,0 0 28px #46d7f121;cursor:grabbing}
.asteroids-page .joystick-knob{position:absolute;left:50%;top:50%;width:44%;height:44%;border:2px solid #fff3ac;border-radius:50%;background:radial-gradient(circle at 32% 23%,#fff6b4,#ffda54 46%,#eda02d 100%);box-shadow:0 7px 10px #07103980,inset 0 3px 4px #fff6d199;transform:translate(-50%,-50%) translate(var(--stick-x,0px),var(--stick-y,0px));transition:transform .1s ease-out;pointer-events:none;will-change:transform;display:grid;place-items:center}
.asteroids-page .is-held .joystick-knob{transition:none}
.asteroids-page .joystick-knob i{width:39%;height:39%;border-radius:50%;border:2px solid #bc7c344a;background:radial-gradient(circle,#ffe483,#f1bc4d);box-shadow:inset 0 1px 3px #d19c3550}
.asteroids-page .stick-mark{position:absolute;font:700 7px ui-monospace,monospace;letter-spacing:.04em;color:#aec7eb9e;pointer-events:none;line-height:1}
.asteroids-page .stick-up{top:10px;left:50%;transform:translateX(-50%)}
.asteroids-page .stick-down{bottom:10px;left:50%;transform:translateX(-50%)}
.asteroids-page .stick-left{left:9px;top:50%;transform:translateY(-50%);font-size:14px}
.asteroids-page .stick-right{right:9px;top:50%;transform:translateY(-50%);font-size:14px}
.asteroids-page [data-steer="left"] .stick-left,.asteroids-page [data-steer="right"] .stick-right,.asteroids-page [data-throttle="thrust"] .stick-up{color:#9dfff5;text-shadow:0 0 9px #43fff1}
.asteroids-page [data-throttle="brake"] .stick-down{color:#ffb1cc;text-shadow:0 0 9px #ff5d99}
.asteroids-page .joystick-direction{font:700 7px ui-monospace,monospace;letter-spacing:.04em;color:#c7d7ff;min-height:10px;text-align:center}
.asteroids-page .flight-touch{grid-template-columns:auto minmax(120px,180px);justify-content:space-evenly;align-items:center;padding:16px 24px;gap:24px;background:linear-gradient(135deg,#263665,#29295f);border-top:1px solid #6d8cc266;touch-action:manipulation}
.asteroids-page .flight-actions{display:flex;flex-direction:column;gap:10px;min-width:0}
.asteroids-page .arcade .flight-touch button{border:1px solid #89abf688;border-radius:10px;min-height:46px;min-width:0;padding:9px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font:700 10px ui-monospace,monospace;color:#eef5ff;background:#33498a;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.asteroids-page .arcade .flight-touch #touch-fire{min-height:66px;background:linear-gradient(135deg,#92fbf4,#39d9ee);border-color:#b7fffc;box-shadow:0 5px 18px #12dbf522;color:#073347;font-size:18px;letter-spacing:.1em}
.asteroids-page .arcade .flight-touch #touch-fire small{font-size:7px;letter-spacing:.05em}
.asteroids-page .flight-abilities{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.asteroids-page .arcade .flight-touch #touch-warp{background:#514192;border-color:#b19ee9aa}
.asteroids-page .arcade .flight-touch #touch-nova{background:#735039;border-color:#e6b65ca6}
.asteroids-page .flight-abilities button span{font-size:9px;font-weight:500;letter-spacing:.03em;opacity:.85}
.asteroids-page .arcade .flight-touch button.pressed{filter:brightness(1.18);transform:translateY(2px);box-shadow:inset 0 2px 6px #11325233}
.asteroids-page .flight-hint{font-size:9px;color:#c2d4f3;text-align:center;line-height:1.3}
@media(any-pointer:coarse),(max-width:760px){
  .asteroids-page .flight-touch{display:grid}
  .asteroids-page .touch-tip{display:block!important}
  .asteroids-page .control-strip,.asteroids-page .start-controls,.asteroids-page .hud-bottom .ability-controls{display:none}
  .asteroids-page .hud-bottom{padding:20px 16px 12px}
  .asteroids-page .hud-bottom .flight{margin:0}
}
@media(max-width:600px){
  .asteroids-page .masthead{flex-wrap:wrap;gap:12px}
  .asteroids-page .top-actions{width:100%;gap:6px;justify-content:flex-end}
  .asteroids-page .arcade-link{margin-right:auto}
  .asteroids-page .top-actions .quiet{font-size:11px;padding:8px 11px}
  .asteroids-page .flight-touch{padding:14px 16px;gap:18px}
}
html.arcade-play-lock{overflow:hidden;overscroll-behavior:none;height:100%}
body.asteroids-page.arcade-play-lock{position:fixed;top:var(--arcade-scroll-y,0px);left:0;right:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
.asteroids-page .arcade #asteroids-console.is-play-view{position:fixed;z-index:1000;top:var(--play-top,0px);left:var(--play-left,0px);width:var(--play-width,100vw);height:var(--play-height,100dvh);max-width:none;max-height:none;margin:0;border:0;border-radius:0;box-shadow:none;background:#111b3d;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:44px minmax(0,1fr) auto;grid-template-areas:"toolbar" "stage" "controls";padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);overflow:hidden;overscroll-behavior:none;touch-action:manipulation}
.asteroids-page .arcade #asteroids-console.is-play-view[data-mode="playing"]{touch-action:none}
.asteroids-page .is-play-view .play-toolbar{grid-area:toolbar;position:relative;z-index:40;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 12px;background:#1a2d56;border-bottom:1px solid #7585be40}
.asteroids-page .play-toolbar>span{font-size:12px;letter-spacing:.07em;font-weight:750;color:#fff3b9}
.asteroids-page .play-toolbar .accent{color:#64f5ec}
.asteroids-page .play-toolbar>div{display:flex;gap:3px;align-items:center}
.asteroids-page .arcade .play-toolbar .quiet{min-height:44px;border:0;background:transparent;color:#e9edff;font-size:10px;padding:8px}
.asteroids-page .is-play-view .stage{grid-area:stage;z-index:1;height:100%;min-height:0;max-height:none;width:100%;align-self:stretch}
.asteroids-page .is-play-view .hud-top{padding:10px 14px 22px;gap:6px;background:linear-gradient(#0b112ae6,#0b112a66,transparent)}
.asteroids-page .is-play-view .score{font-size:22px;line-height:1.1;letter-spacing:0}
.asteroids-page .is-play-view .eyebrow{font-size:7px;letter-spacing:.08em}
.asteroids-page .is-play-view .livesbox{min-width:86px}
.asteroids-page .is-play-view .livesbox b{margin-left:4px}
.asteroids-page .is-play-view .lives{gap:5px;margin-top:6px}
.asteroids-page .is-play-view .lives span{width:9px;height:12px}
.asteroids-page .is-play-view .sector{display:none}
.asteroids-page .is-play-view .hud-bottom{padding:18px 14px 10px}
.asteroids-page .is-play-view .hud-bottom .flight{font-size:7px;letter-spacing:.06em;margin:0;max-width:none}
.asteroids-page .is-play-view .ability-controls,.asteroids-page .is-play-view .control-strip,.asteroids-page .is-play-view .start-controls{display:none}
.asteroids-page .is-play-view .flight-touch{grid-area:controls;display:grid;padding:12px 22px;gap:24px;min-height:0}
.asteroids-page .is-play-view .joystick-unit{--stick-size:clamp(112px,calc(var(--play-height,100dvh) * .2),154px)}
.asteroids-page .is-play-view .veil{position:fixed;z-index:30;inset:auto;top:calc(var(--play-top,0px) + 44px + env(safe-area-inset-top,0px));left:var(--play-left,0px);width:var(--play-width,100vw);height:calc(var(--play-height,100dvh) - 44px - env(safe-area-inset-top,0px));overflow-y:auto;overscroll-behavior:contain;align-items:safe center;padding:18px 20px calc(18px + env(safe-area-inset-bottom,0px));touch-action:pan-y;background:#0b163bd9}
.asteroids-page .is-play-view .launch-panel{max-width:410px;padding:23px 25px;flex-shrink:0}
.asteroids-page .is-play-view .launch-panel h1{font-size:30px}
.asteroids-page .is-play-view .launch-panel p{font-size:12px;line-height:1.6;margin:12px 0 16px}
.asteroids-page .is-play-view .touch-tip{font-size:10px!important;margin:12px 0 0!important;display:block!important}
.asteroids-page .is-play-view .sound-note{margin-top:12px}
.asteroids-page .is-play-view .notice{top:45%;font-size:9px}
.asteroids-page .arcade #asteroids-console.is-play-view[data-orientation="landscape"]{grid-template-columns:clamp(122px,18%,174px) minmax(0,1fr) clamp(136px,19%,184px);grid-template-rows:44px minmax(0,1fr);grid-template-areas:"toolbar toolbar toolbar" "stick stage actions"}
.asteroids-page .is-play-view[data-orientation="landscape"] .flight-touch{display:contents}
.asteroids-page .is-play-view[data-orientation="landscape"] .joystick-unit{grid-area:stick;align-self:end;justify-self:center;margin:12px 6px 24px;--stick-size:clamp(104px,calc(var(--play-height,100dvh) * .34),154px)}
.asteroids-page .is-play-view[data-orientation="landscape"] .flight-actions{grid-area:actions;align-self:end;width:calc(100% - 24px);justify-self:center;margin:12px 0 24px}
.asteroids-page .is-play-view[data-orientation="landscape"] .launch-panel{padding:18px 24px}
.asteroids-page .is-play-view[data-orientation="landscape"] .sound-note{display:none}
@media(max-width:370px){
  .asteroids-page .is-play-view .play-toolbar{padding:0 8px;gap:4px}
  .asteroids-page .play-toolbar>span{font-size:10px}
  .asteroids-page .arcade .play-toolbar .quiet{padding:8px 6px;font-size:9px}
  .asteroids-page .is-play-view .flight-touch{padding:10px 14px;gap:16px}
  .asteroids-page .is-play-view .launch-panel{padding:20px}
}
@media(prefers-reduced-motion:reduce){.asteroids-page .joystick-knob{transition:none}}
