/* Hit the Line: Orbital's house look (Sampler tokens and type), a game HUD, nothing else on the stage. */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=Jost:wght@300;400;500&family=Share+Tech+Mono&display=swap');
:root { --bg: #080e10; --line: rgba(212, 168, 67, .18); --line2: rgba(212, 168, 67, .32); --fg: #e9e2d0; --mut: #8f9b94;
  --gold: #d4a843; --gold2: #f2cf63; --teal: #2dd4bf; --title: #f4ecd9; --mono: 'Share Tech Mono', ui-monospace, monospace; --nav-h: 64px; }
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
html, body { margin: 0; height: 100%; background: var(--bg); color: var(--fg); overflow: hidden; font: 300 15px/1.5 'Jost', system-ui, sans-serif; }
#stage { position: fixed; left: 0; top: var(--nav-h); width: 100vw; height: calc(100dvh - var(--nav-h)); display: block; touch-action: none; }
.top { position: fixed; top: var(--nav-h); left: 0; right: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 14px 20px; z-index: 3; pointer-events: none; }
.kick { display: block; font-family: var(--mono); font-size: .6rem; letter-spacing: .32em; text-transform: uppercase; color: var(--teal); }
.brand h1 { margin: 2px 0 0; font: 500 1.5rem/1.1 'Cinzel', serif; letter-spacing: .14em; text-transform: uppercase;
  background: linear-gradient(118deg, #b9eadf 0%, #f4ecd9 40%, #f2cf63 75%, #d4a843 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hud { display: flex; gap: 18px; }
.hud div { text-align: right; }
.hud small { display: block; font-family: var(--mono); font-size: .58rem; letter-spacing: .22em; text-transform: uppercase; color: var(--mut); }
.hud b { font: 500 1.35rem/1 'Jost', sans-serif; color: var(--title); font-variant-numeric: tabular-nums; }
.hud span { color: var(--mut); font-size: .85rem; }
.judge { position: fixed; left: 50%; top: calc(var(--nav-h) + 96px); transform: translateX(-50%); z-index: 3; font: 500 1.6rem 'Cinzel', serif; letter-spacing: .12em;
  text-transform: uppercase; opacity: 0; pointer-events: none; transition: opacity .35s ease-out; }
.judge.on { opacity: 1; transition: none; }
.judge.perfect { color: var(--gold2); } .judge.good { color: var(--teal); } .judge.miss { color: var(--mut); }
.next { position: fixed; left: 50%; bottom: calc(max(18px, env(safe-area-inset-bottom)) + 10px); transform: translateX(-50%); z-index: 3; color: var(--mut);
  font-family: var(--mono); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; pointer-events: none; text-align: center; }
.intro { position: fixed; left: 50%; top: 52%; transform: translate(-50%, -50%); z-index: 5; width: min(440px, calc(100vw - 32px)); text-align: center;
  padding: 26px 24px; border-radius: 18px; border: 1px solid var(--line2); background: rgba(7, 12, 13, .9); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.intro h2 { margin: 0 0 10px; font: 500 1.25rem 'Cinzel', serif; letter-spacing: .08em; color: var(--title); }
.intro p { margin: 0 0 12px; color: var(--fg); line-height: 1.55; }
.intro .keys { font-family: var(--mono); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--teal); }
.btn { border: 1px solid var(--gold); border-radius: 12px; padding: 12px 34px; cursor: pointer; font: 500 1rem 'Jost', sans-serif; color: var(--gold2);
  background: linear-gradient(180deg, rgba(242, 207, 99, .22), rgba(212, 168, 67, .10)); }
.back { display: block; margin-top: 14px; color: var(--mut); font-size: .85rem; text-decoration: none; }
@media (max-width: 640px) {
  .top { flex-direction: column; padding: 10px 12px; }
  .brand h1 { font-size: 1.1rem; }
  .hud { gap: 14px; }
  .hud div { text-align: left; }
  .hud b { font-size: 1.1rem; }
  .judge { top: calc(var(--nav-h) + 118px); font-size: 1.3rem; }
}
