/* Player guide. Tokens, topbar, panels, buttons and metrics come from
   /sim/styles.css; this file only lays the guide out with the same parts. */

html { scroll-behavior: smooth; }

.guide { --gutter: clamp(20px, 5vw, 78px); }
.guide .eyebrow, .guide .panel-kicker, .guide .link-state { font-size: 12px; }

/* Hero: the /sim role screen backdrop (grid fading out, top-right glow). */
.g-hero {
  position: relative;
  padding: clamp(45px, 7vh, 96px) var(--gutter) 0;
}
.g-hero::before,
.g-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.g-hero::before {
  background-image:
    linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(to bottom, black, transparent 74%);
}
.g-hero::after { background: radial-gradient(circle at 78% 2%, rgba(255, 211, 79, .09), transparent 30%); }
.g-hero > * { position: relative; z-index: 1; }
.g-hero-copy { max-width: 820px; }
.g-lede { max-width: 620px; margin: 0 0 30px; color: var(--paper-muted); font-size: clamp(18px, 1.6vw, 22px); line-height: 1.5; }
.g-lede b { color: var(--paper); font-weight: 500; }
.g-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.g-actions a { display: inline-flex; align-items: center; text-decoration: none; }
.g-actions .primary-action::after { content: "→"; display: inline-block; margin-left: 10px; font-size: 15px; transform: rotate(-45deg); }

/* What you need + section index read as one console, like stage + controls. */
.g-console { margin-top: clamp(42px, 6vh, 72px); }
.g-needs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: var(--line);
  border: 1px solid var(--line);
}
.g-needs > div {
  min-height: 160px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 22px;
  padding: clamp(18px, 2vw, 28px);
  background: var(--ink-soft);
}
.g-needs dt { color: var(--hot); font: 500 11px/1.2 var(--mono); letter-spacing: .12em; }
.g-needs dd { margin: 0; font: 500 clamp(19px, 1.8vw, 26px)/1.08 var(--display); letter-spacing: -.01em; }
.g-needs dd span { display: block; margin-top: 9px; color: var(--paper-muted); font: 500 16px/1.45 var(--body); letter-spacing: 0; }
.g-index {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 1px;
  padding: 1px;
  margin-top: -1px;
  background: var(--line);
}
.g-index a {
  min-height: 62px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  padding: 10px 14px;
  background: var(--ink-soft);
  color: var(--paper);
  font: 500 12px/1.2 var(--mono);
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background 160ms ease, color 160ms ease;
}
.g-index a span { color: var(--hot); }
.g-index a:hover { background: var(--paper); color: var(--ink); }
.g-index a:hover span { color: var(--ink); }

/* Sections follow the leaderboard section rhythm. */
.g-body { padding: 0 var(--gutter); }
.g-section {
  margin-top: clamp(66px, 10vh, 128px);
  padding-top: clamp(28px, 4vw, 48px);
  border-top: 1px solid var(--line);
  scroll-margin-top: 84px;
}
.g-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.g-head .panel-kicker { margin-bottom: 13px; }
.g-head h2 { margin: 0; font: 500 clamp(34px, 4.5vw, 64px)/.9 var(--display); letter-spacing: -.025em; text-transform: uppercase; }
.g-head-note { max-width: 380px; margin: 0; color: var(--paper-muted); font-size: 16px; line-height: 1.5; text-align: right; }

.g-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr); gap: 20px; align-items: start; }
.g-stack { display: grid; gap: 20px; }

/* Numbered steps: cells on a 1px line grid, like the PC controls row. */
.g-steps { display: grid; gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--line); border: 1px solid var(--line); }
.g-steps li { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 18px; padding: clamp(18px, 1.8vw, 26px); background: var(--ink-soft); }
.g-n { color: var(--hot); font: 500 30px/1 var(--display); letter-spacing: -.02em; }
.g-steps p { margin: 0; font-size: 18px; line-height: 1.55; }
.g-steps p + p { margin-top: 8px; color: var(--paper-muted); font-size: 16px; }
.g-steps a, .g-short-links a, .g-closing a { color: var(--hot); text-underline-offset: 3px; }
.guide strong { font-weight: 500; color: var(--paper); }

/* On-screen labels quoted in the copy. */
.g-ui {
  display: inline-block;
  padding: 4px 7px 3px;
  border: 1px solid var(--line-hot);
  color: var(--hot);
  font: 500 12px/1.25 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
  vertical-align: 1px;
}
.g-ui.is-plain { border-color: var(--line); color: var(--paper); }

/* Screenshots sit in a sim-stage frame with the yellow corner brackets. */
.g-shot { margin: 0; }
.g-frame {
  position: relative;
  padding: clamp(10px, 1.2vw, 16px);
  border: 1px solid var(--line);
  background: radial-gradient(circle at 50% 35%, #2e2e2a, #0b0b0a 65%);
}
.g-frame img { display: block; width: 100%; height: auto; }
.g-frame .sim-corner { width: 30px; height: 30px; }
.g-frame .sim-corner-tl { top: 6px; left: 6px; }
.g-frame .sim-corner-br { right: 6px; bottom: 6px; }
.g-shot figcaption, .g-hud figcaption {
  margin-top: 12px;
  color: var(--paper-muted);
  font-size: 15px;
  line-height: 1.5;
}
.g-shot figcaption span {
  display: block;
  margin-bottom: 5px;
  color: var(--paper);
  font: 500 11px/1.2 var(--mono);
  letter-spacing: .12em;
}

/* Headset prompt, drawn like the in-VR quick start card. */
.g-hud {
  margin: 0;
  padding: clamp(20px, 2.4vw, 30px);
  border: 1px solid var(--line);
  border-left: 3px solid var(--hot);
  background: rgba(10, 11, 14, .92);
}
.g-hud-bar {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 26px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
  color: var(--paper-muted);
  font: 500 11px/1.2 var(--mono);
  letter-spacing: .12em;
}
.g-hud-label, .g-hud-detail { margin: 0; font: 500 12px/1.2 var(--mono); letter-spacing: .12em; }
.g-hud-label { color: var(--paper-muted); }
.g-hud-value { margin: 12px 0 14px; font: 500 clamp(40px, 4.6vw, 66px)/.9 var(--display); letter-spacing: .02em; }
.g-hud-detail { color: var(--hot); }
.g-hud figcaption { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--line); }

/* Calibration pose: line drawings in the style of the role card icons. */
.g-poses { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.g-pose { display: grid; align-content: start; gap: 8px; padding: 20px; background: var(--ink-soft); }
.g-pose svg { width: 84px; height: auto; margin-bottom: 8px; fill: none; stroke: var(--paper-muted); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.g-pose.is-do svg { stroke: var(--paper); }
.g-pose .g-fill { fill: var(--hot); stroke: none; }
.g-pose .g-gaze { stroke: var(--hot); stroke-dasharray: 4 4; }
.g-pose .g-dim { stroke: rgba(242, 239, 228, .28); }
.g-pose p { margin: 0; color: var(--paper-muted); font-size: 15px; line-height: 1.45; }
.g-pose .g-pose-tag { color: var(--hot); font: 500 12px/1.2 var(--mono); letter-spacing: .12em; }
.g-pose .g-pose-tag.is-no { color: #ff8a80; }

.g-note {
  margin-top: 20px;
  padding: 18px 22px;
  border: 1px solid rgba(255, 211, 79, .34);
  background: rgba(255, 211, 79, .045);
}
.g-note .panel-kicker { margin-bottom: 8px; }
.g-note p:last-child { max-width: 1040px; margin: 0; color: var(--paper); font-size: 17px; line-height: 1.55; }

/* Controls reuse the BROWSER LINK panel and its metric rows. */
.g-controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.g-panel { padding: 20px; }
.g-panel .metrics div { padding: 14px 0; font: 500 16px/1.4 var(--body); }
.g-panel .metrics dd { color: var(--paper); }
.g-panel .metrics dd.is-off { color: #77746c; }

.g-toolbar-head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin: 34px 0 14px; }
.g-toolbar-head .panel-kicker { margin: 0; }
.g-toolbar-head p:last-child:not(.panel-kicker) { margin: 0; color: var(--paper-muted); font-size: 15px; }

/* Generic cell rows: 1px line grid, like the leaderboard tabs. */
.g-cells { display: grid; gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--line); border: 1px solid var(--line); }
.g-cells-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g-cells-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.g-cells > * { padding: clamp(16px, 1.6vw, 22px); background: var(--ink-soft); }
.g-cells p { margin: 0; color: var(--paper-muted); font-size: 16px; line-height: 1.5; }
.g-keys { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px !important; }
.g-key {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid var(--line);
  background: var(--ink);
  color: var(--paper);
  font: 500 11px/1 var(--mono);
  letter-spacing: .08em;
}
.g-key.is-hot { color: var(--hot); border-color: var(--line-hot); }
.g-key-icon svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }

/* Difficulty levels: rendered pyramids in leaderboard-tab cells. */
.g-levels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-bottom: 20px; background: var(--line); border: 1px solid var(--line); }
.g-levels figure { margin: 0; background: var(--ink-soft); }
.g-levels img { display: block; width: 100%; height: auto; }
.g-levels figcaption { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 16px 20px; border-top: 1px solid var(--line); }
.g-level-name { font: 500 clamp(20px, 2.2vw, 28px)/1 var(--display); letter-spacing: -.015em; text-transform: uppercase; }
.g-level-meta { color: var(--paper-muted); font: 500 12px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; }

/* Task steps carry their in-headset frame on top. */
.g-phases li { padding: 0; }
.g-phases li > img { display: block; width: 100%; height: auto; border-bottom: 1px solid var(--line); }
.g-phases li > p { margin: 0 clamp(16px, 1.6vw, 22px); }
.g-phases li > p.g-phase { margin-top: 18px; }
.g-phases li > p:last-child { margin-bottom: 20px; }

/* Controller map and the VR toolbar render. */
.g-ctrl { margin: 0 0 14px; padding: clamp(16px, 2vw, 28px); border: 1px solid var(--line); background: rgba(21, 24, 31, .8); }
.g-ctrl-svg { display: block; width: 100%; max-width: 1200px; height: auto; margin: 0 auto; }
.g-toolbar-shot { margin: 0 0 14px; padding: clamp(10px, 1.2vw, 16px); border: 1px solid var(--line); background: #0b0b0a; }
.g-toolbar-shot img { display: block; width: 100%; height: auto; }

/* What you see in VR. */
.g-split-even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-top: 20px; }
.g-anatomy { align-self: start; }
.g-anatomy .metrics div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; padding: 18px 0; }
.g-anatomy .metrics dd { text-align: left; }

.g-phase { color: var(--paper) !important; font: 500 13px/1.2 var(--mono) !important; letter-spacing: .1em; }
.g-phase span { margin-right: 10px; color: var(--hot); }
.g-tips li { color: var(--paper-muted); font-size: 16px; line-height: 1.5; }

/* Privacy summary. */
.g-short { padding: clamp(22px, 2.6vw, 34px); border-left: 3px solid var(--hot); background: rgba(255, 211, 79, .06); }
.g-short p:nth-child(2) { margin: 0 0 22px; font: 500 clamp(21px, 2.2vw, 30px)/1.28 var(--display); letter-spacing: -.015em; }
.g-short-links { margin: 0; font-size: 16px; }
.g-consent h3 { margin: 0 0 12px; font: 500 clamp(22px, 2.2vw, 30px)/1.05 var(--display); letter-spacing: -.01em; }
.g-consent p:not(.panel-kicker) { margin: 0 0 12px; color: var(--paper-muted); font-size: 16px; line-height: 1.6; }
.g-consent p:last-child { margin-bottom: 0; }

/* Troubleshooting table, styled as the leaderboard console. */
.g-table-wrap { overflow: hidden; border: 1px solid var(--line); background: rgba(21, 24, 31, .8); box-shadow: 0 28px 80px rgba(0, 0, 0, .2); }
.g-table { width: 100%; border-collapse: collapse; }
.g-table thead th { padding: 14px 20px; background: var(--ink-soft); color: var(--hot); font: 500 11px/1.2 var(--mono); letter-spacing: .12em; text-align: left; text-transform: uppercase; }
.g-table tbody th, .g-table td { padding: 16px 20px; border-top: 1px solid var(--line); text-align: left; vertical-align: top; line-height: 1.5; }
.g-table tbody th { width: 38%; color: var(--paper); font-size: 17px; font-weight: 500; }
.g-table td { color: var(--paper-muted); font-size: 17px; }
.g-table tbody tr:hover { background: rgba(242, 239, 228, .025); }

/* Footer. */
.g-footer { margin: clamp(66px, 10vh, 128px) var(--gutter) 0; padding: clamp(28px, 4vw, 48px) 0 40px; border-top: 1px solid var(--line); }
.g-closing { max-width: 980px; margin: 0 0 34px; font: 500 clamp(20px, 2.2vw, 30px)/1.3 var(--display); letter-spacing: -.01em; }
.g-footer-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; color: #77746c; font: 500 12px/1.2 var(--mono); letter-spacing: .12em; }
.g-footer-meta a { color: inherit; text-underline-offset: 3px; }
.g-footer-meta a:hover { color: var(--paper); }

@media (max-width: 1180px) {
  .g-split, .g-split-even { grid-template-columns: 1fr; }
  .g-index { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .g-cells-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1000px) {
  .g-needs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g-controls { grid-template-columns: 1fr; }
  .g-cells-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .g-head { display: block; }
  .g-head-note { margin-top: 14px; text-align: left; }
  .g-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g-needs > div { min-height: 0; }
  .g-cells-4, .g-cells-5 { grid-template-columns: 1fr; }
  .g-levels figcaption { flex-direction: column; gap: 6px; padding: 12px 14px; }
  .g-ctrl-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .g-ctrl-svg { min-width: 720px; }
  .g-anatomy .metrics div { grid-template-columns: 1fr; gap: 4px; }
  .g-steps li { grid-template-columns: 34px minmax(0, 1fr); gap: 12px; }
  .g-n { font-size: 24px; }
  .g-toolbar-head { display: block; }
  .g-toolbar-head p:last-child:not(.panel-kicker) { margin-top: 6px; }
  .g-table thead { display: none; }
  .g-table, .g-table tbody, .g-table tr, .g-table th, .g-table td { display: block; width: 100%; }
  .g-table tbody th { width: 100%; padding-bottom: 4px; }
  .g-table td { padding-top: 0; border-top: 0; }
}

@media (max-width: 520px) {
  .g-needs { grid-template-columns: 1fr; }
  .g-poses { grid-template-columns: 1fr; }
  .g-pose { grid-template-columns: 64px 1fr; align-items: center; gap: 4px 16px; }
  .g-pose svg { grid-row: 1 / span 2; width: 64px; margin: 0; }
  .g-levels { grid-template-columns: 1fr; }
  .g-levels figcaption { flex-direction: row; }
}

@media print {
  :root { --ink: #fff; --ink-soft: #fff; --paper: #101218; --paper-muted: #4a4740; --line: #d9d5c9; --line-hot: #c99a00; --hot: #8a6a00; }
  body { background: #fff; }
  .noise, .topbar, .g-actions, .g-index { display: none !important; }
  .g-hero::before, .g-hero::after { display: none; }
  .g-frame, .g-hud { background: #101218; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .g-hud, .g-hud p, .g-hud strong, .g-hud figcaption { color: #f2efe4 !important; }
  .g-section, .g-cells > *, .g-steps li, .g-table tr { break-inside: avoid; }
}
