* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; background: #080b1d; color: #fff; font-family: Arial,Helvetica,sans-serif; }
body { touch-action: none; user-select: none; }
.game-shell { position: relative; width: 100%; height: 100%; min-height: 280px; overflow: hidden; background: #080b1d; }
canvas { display: block; width: 100%; height: 100%; touch-action: none; }
.fp-gameplay-art { display: none !important; }
.hud { position: absolute; inset: 10px 10px auto; z-index: 2; display: flex; justify-content: space-between; gap: 10px; pointer-events: none; }
.hud-group { display: flex; flex-wrap: wrap; gap: 6px; max-width: 60%; }
.hud-pill,.status-panel { border: 1px solid rgba(255,255,255,.14); background: rgba(5,8,25,.78); box-shadow: 0 12px 38px rgba(0,0,0,.28); backdrop-filter: blur(9px); }
.hud-pill { margin: 0; border-radius: 999px; padding: 8px 12px; color: #94a3b8; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.hud-pill strong { margin-left: 4px; color: #c4b5fd; font-size: 13px; }
.scroll-pill strong { color: #fde68a; }
.status-panel { width: min(235px,40vw); border-radius: 14px; padding: 8px 11px; }
.status-panel p { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 6px; color: #94a3b8; font-size: 9px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.status-panel strong { color: #fff; } .status-panel b { color: #67e8f9; }
.speed-meter { height: 5px; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.09); }
.speed-meter span { display: block; width: 20%; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#8b5cf6,#22d3ee); }
.announcement { position: absolute; z-index: 3; top: 23%; left: 50%; width: 92%; margin: 0; transform: translateX(-50%); color: #fff; font-size: clamp(24px,6vw,50px); font-weight: 1000; letter-spacing: -.045em; text-align: center; text-shadow: 0 4px 22px #02030b; opacity: 0; pointer-events: none; transition: opacity 180ms ease,transform 180ms ease; }
.announcement.visible { opacity: 1; transform: translateX(-50%) translateY(-5px); }
.overlay,.pause-panel { position: absolute; inset: 0; z-index: 5; display: grid; place-items: center; padding: 20px; background: rgba(4,5,18,.73); backdrop-filter: blur(8px); transition: opacity 180ms ease; }
.overlay.hidden,.pause-panel.hidden { visibility: hidden; opacity: 0; pointer-events: none; }
.panel,.pause-panel>div { border: 1px solid rgba(255,255,255,.15); border-radius: 28px; background: radial-gradient(circle at 50% 0%,rgba(139,92,246,.17),transparent 42%),linear-gradient(145deg,rgba(20,23,64,.97),rgba(24,12,48,.97)); box-shadow: 0 30px 110px rgba(0,0,0,.55); text-align: center; }
.panel { width: min(535px,100%); padding: clamp(21px,5vw,39px); } .pause-panel>div { width: min(330px,100%); padding: 28px; }
.kicker { margin: 0; color: #67e8f9; font-size: 10px; font-weight: 1000; letter-spacing: .2em; text-transform: uppercase; }
h1,h2 { margin: 10px 0 0; line-height: .94; letter-spacing: -.06em; text-transform: uppercase; } h1 { font-size: clamp(38px,9vw,68px); } h2 { font-size: 40px; }
#screen-copy,.pause-panel p:last-child { margin: 16px auto 0; max-width: 420px; color: #cbd5e1; font-size: 14px; line-height: 1.6; }
button { margin-top: 21px; border: 0; border-radius: 999px; padding: 13px 24px; background: #c4b5fd; color: #090b1d; font: inherit; font-size: 13px; font-weight: 1000; cursor: pointer; box-shadow: 0 12px 36px rgba(139,92,246,.28); transition: transform 150ms ease,background-color 150ms ease; }
button:hover { transform: translateY(-2px); background: #fff; } button:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.controls-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 20px; }
.controls-grid p { display: grid; gap: 3px; margin: 0; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; padding: 9px; background: rgba(255,255,255,.035); font-size: 10px; }
.controls-grid strong { color: #fff; text-transform: uppercase; } .controls-grid span,.touch-copy { color: #94a3b8; } .touch-copy { margin: 12px 0 0; font-size: 10px; }
@media(max-width:560px),(max-height:440px){.hud{inset:6px}.hud-group{gap:4px}.hud-pill{padding:6px 8px;font-size:8px}.hud-pill strong{font-size:10px}.status-panel{padding:6px 8px}.status-panel p{font-size:7px}.panel{padding:17px 21px}.controls-grid{margin-top:13px}}
@media(max-height:360px){#screen-copy{margin-top:9px;font-size:12px}button{margin-top:11px;padding-block:10px}.controls-grid,.touch-copy{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
