:root {
  --rm-ink: #11120f;
  --rm-ink-soft: #1a1c17;
  --rm-paper: #f2f0e7;
  --rm-paper-2: #e8e5da;
  --rm-paper-3: #d8d4c7;
  --rm-signal: #b7dc4a;
  --rm-signal-strong: #a4ca38;
  --rm-signal-soft: #edf4d7;
  --rm-coral: #d97862;
  --rm-sky: #cfe2df;
  --rm-violet: #ddd8e7;
  --rm-white: #fffef8;
  --rm-line: rgba(17, 18, 15, 0.18);
  --rm-line-dark: rgba(255, 254, 248, 0.17);
  --rm-muted: #62665d;
  --rm-display: Georgia, 'Times New Roman', serif;
  --rm-sans: 'Outfit', 'DM Sans', Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --rm-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
  --rm-radius: 0;
  --rm-shadow: 0 28px 90px rgba(17, 18, 15, 0.16);
}

html {
  scroll-behavior: smooth;
  background: var(--rm-ink);
  scrollbar-width: none;
  -ms-overflow-style: none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar { width: 0; height: 0; display: none; }

body {
  font-family: var(--rm-sans);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

::selection { background: rgba(17,18,15,.18); color: inherit; }

:focus-visible {
  outline: 2px solid var(--rm-signal);
  outline-offset: 4px;
}

.rm-skip-link {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 10000;
  transform: translateY(-180%);
  background: var(--rm-signal);
  color: var(--rm-ink);
  padding: .75rem 1rem;
  font: 700 .76rem/1 var(--rm-mono);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.rm-skip-link:focus { transform: none; }

/* ───────────────────────────── MARKETING ───────────────────────────── */

#view-marketing.hp-remake {
  --film-progress: 0;
  background: var(--rm-ink);
  color: var(--rm-white);
  min-height: 100vh;
  overflow: clip;
}

#view-marketing.hp-remake.active { display: block; }

.rm-nav {
  position: fixed !important;
  inset: 0 0 auto 0;
  z-index: 900;
  height: 72px !important;
  padding: 0 4vw !important;
  display: grid !important;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  background: rgba(17, 18, 15, .82) !important;
  border-bottom: 1px solid var(--rm-line-dark) !important;
  backdrop-filter: blur(16px) saturate(110%);
  -webkit-backdrop-filter: blur(16px) saturate(110%);
}

.rm-brand {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  color: var(--rm-white);
  text-decoration: none;
  font: 700 .82rem/1 var(--rm-mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.rm-brand-mark {
  width: 34px;
  height: 34px;
  display: block;
  object-fit: contain;
  border-radius: 9px;
}

.rm-nav-links {
  position: static !important;
  inset: auto !important;
  z-index: auto !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  backdrop-filter: none !important;
  display: flex;
  align-items: center;
  gap: clamp(1.1rem, 2.5vw, 2.8rem);
}

.rm-nav-links a,
.rm-nav-signin {
  min-height: 40px;
  padding: 0 .35rem !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  cursor: pointer;
  color: rgba(255, 254, 248, .64) !important;
  font: 600 .7rem/1 var(--rm-mono) !important;
  text-transform: uppercase;
  letter-spacing: .1em;
  transition: color .2s ease;
}

.rm-nav-links a:hover,
.rm-nav-signin:hover { color: var(--rm-white) !important; }

.rm-nav-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: .9rem;
}

.rm-button,
#view-marketing .rm-button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  padding: 0 1.1rem;
  border: 1px solid transparent;
  border-radius: 0;
  background: var(--rm-signal);
  color: var(--rm-ink);
  font: 800 .72rem/1 var(--rm-mono);
  letter-spacing: .075em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.rm-button:hover { background: var(--rm-white); transform: translateY(-2px); }
.rm-button:active { transform: translateY(0); }
#view-marketing .rm-button--dark { background: var(--rm-ink); color: var(--rm-white); }
#view-marketing .rm-button--dark:hover { background: var(--rm-coral); color: var(--rm-ink); }
#view-marketing .rm-button--ghost { background: transparent; border-color: currentColor; color: var(--rm-white); }
#view-marketing .rm-button--ghost:hover { background: var(--rm-white); color: var(--rm-ink); }
#view-marketing .rm-button--ink { color: var(--rm-ink) !important; }
#view-marketing .rm-button--ink:hover { background: var(--rm-ink); color: var(--rm-white) !important; }
.rm-button-arrow { font-size: 1.05em; transition: transform .2s ease; }
.rm-button:hover .rm-button-arrow { transform: translateX(4px); }

.rm-menu-button { display: none; }

.rm-main { position: relative; isolation: isolate; display: block; overflow: clip; }

.rm-hero-copy,
.rm-practice-window,
.rm-intro-band > *,
.rm-film-copy,
.rm-film-stage,
.rm-proof-item,
.rm-section-head,
.rm-course-ledger,
.rm-map-grid,
.rm-course-note,
.rm-about > *,
.rm-quotes,
.rm-faq-list,
.rm-final-inner { position: relative; z-index: 41 !important; }

#page-loader.page-loader {
  background: var(--rm-ink) !important;
  color: var(--rm-white) !important;
}
#page-loader.page-loader::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(255,254,248,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,254,248,.07) 1px, transparent 1px);
  background-size: 7vw 7vw;
  mask-image: radial-gradient(circle at center, #000, transparent 78%);
}
.rm-loader-card {
  position: relative;
  z-index: 1;
  width: min(520px, calc(100vw - 2rem));
  padding: clamp(1.4rem, 4vw, 2.4rem);
  border: 1px solid rgba(255,254,248,.26);
  background: rgba(17,18,15,.9);
  box-shadow: 12px 12px 0 var(--rm-signal);
}
.rm-loader-brand { display: flex; align-items: center; gap: 1rem; }
.rm-loader-brand img { width: 56px; height: 56px; border-radius: 13px; }
.rm-loader-brand strong { display: block; color: var(--rm-white); font: 700 2rem/.9 var(--rm-display); letter-spacing: -.055em; }
.rm-loader-brand small { display: block; margin-top: .45rem; color: var(--rm-signal); font: 800 .55rem/1 var(--rm-mono); letter-spacing: .12em; text-transform: uppercase; }
.rm-loader-track { height: 8px; margin: 2rem 0 1rem; overflow: hidden; border: 1px solid rgba(255,254,248,.32); }
.rm-loader-track span { width: 38%; height: 100%; display: block; background: var(--rm-signal); animation: rmLoaderTrack 1.1s cubic-bezier(.76,0,.24,1) infinite alternate; }
.rm-loader-readout { display: flex; justify-content: space-between; gap: 1rem; color: rgba(255,254,248,.5); font: 750 .55rem/1.35 var(--rm-mono); text-transform: uppercase; letter-spacing: .07em; }
@keyframes rmLoaderTrack { from { transform: translateX(-105%); } to { transform: translateX(265%); } }

.rm-hero {
  min-height: 100svh;
  padding: max(7.5rem, 14vh) 4vw 4vw;
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(420px, .98fr);
  gap: 4vw;
  align-items: end;
  position: relative;
  isolation: isolate;
  border-bottom: 1px solid var(--rm-line-dark);
}

.rm-hero::before {
  content: '';
  position: absolute;
  inset: 72px 0 0;
  z-index: -2;
  opacity: .54;
  background-image:
    linear-gradient(var(--rm-line-dark) 1px, transparent 1px),
    linear-gradient(90deg, var(--rm-line-dark) 1px, transparent 1px);
  background-size: 4vw 4vw;
  mask-image: linear-gradient(to bottom, black, rgba(0,0,0,.65));
}

.rm-hero::after {
  content: '';
  position: absolute;
  width: min(70vw, 920px);
  aspect-ratio: 1;
  right: -22vw;
  top: -27vw;
  z-index: -1;
  border: 1px solid rgba(201,255,61,.24);
  border-radius: 50%;
  box-shadow: 0 0 0 8vw rgba(201,255,61,.025), 0 0 0 16vw rgba(201,255,61,.018);
}

.rm-hero-copy { padding-bottom: clamp(1rem, 5vh, 4rem); }

.rm-kicker,
.rm-section-label,
.rm-film-index,
.rm-meta-line {
  font: 700 .69rem/1.2 var(--rm-mono);
  text-transform: uppercase;
  letter-spacing: .12em;
}

.rm-kicker {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: clamp(1.6rem, 4vh, 3rem);
  color: var(--rm-signal);
}

.rm-kicker::before {
  content: '';
  width: 2.4rem;
  height: 1px;
  background: currentColor;
}

.rm-hero h1 {
  max-width: 880px;
  margin: 0;
  color: var(--rm-white);
  font: 400 clamp(3.9rem, 7.65vw, 8.8rem)/.86 var(--rm-display);
  letter-spacing: -.075em;
  text-wrap: balance;
}

.rm-hero h1 em {
  color: var(--rm-signal);
  font-style: italic;
  font-weight: 400;
}

.rm-hero-lead {
  max-width: 580px;
  margin: clamp(1.5rem, 4vh, 3rem) 0 0;
  color: rgba(255,254,248,.67);
  font-size: clamp(1rem, 1.35vw, 1.3rem);
  line-height: 1.55;
}

.rm-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 2rem;
}

.rm-hero-visual {
  min-height: min(74vh, 760px);
  display: grid;
  place-items: center;
  position: relative;
  align-self: stretch;
  overflow: hidden;
  border-left: 1px solid var(--rm-line-dark);
  border-right: 1px solid var(--rm-line-dark);
  perspective: 1600px;
}

.rm-hero-visual::before,
.rm-hero-visual::after {
  content: '';
  position: absolute;
  pointer-events: none;
}

.rm-hero-visual::before {
  inset: 7% 4%;
  background:
    radial-gradient(circle at 84% 16%, rgba(142,217,255,.24), transparent 31%),
    radial-gradient(circle at 18% 82%, rgba(201,255,61,.18), transparent 29%);
  transform: translate3d(calc(var(--hero-x, 0) * .35), calc(var(--hero-y, 0) * .35), 0);
  transition: transform .18s ease-out;
}

.rm-hero-visual::after {
  inset: 10% 8%;
  border: 1px solid rgba(255,254,248,.12);
  background-image:
    linear-gradient(rgba(255,254,248,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,254,248,.05) 1px, transparent 1px);
  background-size: 54px 54px;
}

.rm-practice-window {
  width: min(92%, 760px);
  min-height: 0;
  position: relative;
  z-index: 2;
  overflow: hidden;
  color: var(--rm-ink);
  background: var(--rm-paper);
  border: 1px solid var(--rm-ink);
  border-radius: 18px;
  box-shadow: 0 34px 90px rgba(0,0,0,.45), 12px 12px 0 var(--rm-signal);
  transform: translate3d(var(--hero-x, 0), var(--hero-y, 0), 0) rotateX(calc(var(--hero-y, 0) * -.045deg)) rotateY(calc(var(--hero-x, 0) * .045deg));
  transition: transform .18s ease-out;
}

.rm-window-bar {
  min-height: 46px;
  padding: 0 1rem;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  background: #edece6;
  border-bottom: 1px solid rgba(17,18,15,.2);
  font: 750 .61rem/1 var(--rm-mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.rm-window-lights { display: flex; gap: 7px; }
.rm-window-lights i { width: 11px; height: 11px; display: block; border: 1px solid rgba(17,18,15,.38); border-radius: 50%; background: var(--rm-coral); }
.rm-window-lights i:nth-child(2) { background: #ffd35a; }
.rm-window-lights i:nth-child(3) { background: var(--rm-signal); }
.rm-window-state { justify-self: end; display: flex; align-items: center; gap: .45rem; color: rgba(17,18,15,.56); }
.rm-window-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--rm-signal); box-shadow: 0 0 0 3px rgba(201,255,61,.3); }

.rm-practice-body { min-height: 450px; display: grid; grid-template-columns: .92fr 1.08fr; }
.rm-question-pane { padding: 1.5rem; display: flex; flex-direction: column; border-right: 1px solid rgba(17,18,15,.2); }
.rm-question-meta { display: flex; justify-content: space-between; gap: 1rem; color: rgba(17,18,15,.54); font: 700 .57rem/1.2 var(--rm-mono); text-transform: uppercase; letter-spacing: .07em; }
.rm-question-label { margin: 2rem 0 1.35rem; font: 600 1.02rem/1.55 var(--rm-sans); }
.rm-answer-list { display: grid; gap: .55rem; }
.rm-answer-list button { width: 100%; min-height: 48px; padding: .55rem .7rem; display: flex; align-items: center; gap: .7rem; border: 1px solid rgba(17,18,15,.22); background: var(--rm-white); color: var(--rm-ink); font: 500 .78rem/1.3 var(--rm-sans); text-align: left; cursor: pointer; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.rm-answer-list button:hover { border-color: var(--rm-ink); background: #f3f5ee; }
.rm-answer-list b { width: 27px; height: 27px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid currentColor; border-radius: 50%; font: 750 .64rem/1 var(--rm-mono); }
.rm-answer-list .is-selected { border-color: var(--rm-ink); box-shadow: inset 4px 0 0 var(--rm-sky); }
.rm-answer-list .is-selected b { background: var(--rm-coral); }
.rm-answer-list .is-correct { border-color: #2f7d4a; background: #e9f8e9; box-shadow: inset 4px 0 0 var(--rm-signal); }
.rm-answer-list .is-correct b { background: var(--rm-signal); }
.rm-answer-list .is-wrong { border-color: #c74435; background: #fff0ec; box-shadow: inset 4px 0 0 var(--rm-coral); }
.rm-answer-feedback { margin-top: .6rem; padding: .65rem .75rem; border: 1px solid var(--rm-ink); background: var(--rm-signal); color: var(--rm-ink); font-size: .68rem; font-weight: 700; line-height: 1.35; }
.rm-answer-feedback.is-wrong { background: #fff0ec; border-color: #c74435; }
.rm-question-foot { margin-top: auto; padding-top: 1rem; display: flex; justify-content: space-between; gap: .7rem; }
.rm-question-foot button { min-height: 34px; padding: 0 .65rem; border: 0; background: transparent; color: rgba(17,18,15,.58); font: 750 .56rem/1 var(--rm-mono); text-transform: uppercase; cursor: pointer; }
.rm-question-foot button[data-demo-check] { margin-left: auto; border: 1px solid var(--rm-ink); background: var(--rm-ink); color: var(--rm-white); }
.rm-question-foot button[data-demo-check]:disabled { cursor: not-allowed; opacity: .35; }
.rm-question-foot button[data-demo-mark].is-marked { background: var(--rm-signal-soft); color: var(--rm-ink); }
.rm-graph-pane { position: relative; overflow: hidden; background: #f7f7f2; }
.rm-graph-pane svg { width: 100%; height: calc(100% - 45px); display: block; color: var(--rm-ink); }
.rm-graph-tools { min-height: 45px; padding: 0 .75rem; display: flex; align-items: center; gap: .5rem; border-bottom: 1px solid rgba(17,18,15,.15); font: 700 .57rem/1 var(--rm-mono); text-transform: uppercase; }
.rm-graph-tools span { padding: .42rem .55rem; border: 1px solid rgba(17,18,15,.15); background: var(--rm-white); }
.rm-graph-tools .is-on { border-color: var(--rm-coral); box-shadow: inset 3px 0 0 var(--rm-coral); }
.rm-graph-tools .is-on i { width: 8px; height: 8px; display: inline-block; margin-right: .35rem; border-radius: 50%; background: var(--rm-coral); vertical-align: -1px; }
.rm-graph-tools .rm-points-expression { border-color: var(--rm-sky); box-shadow: inset 3px 0 0 var(--rm-sky); }
.rm-graph-tools > button { width: 30px; height: 30px; margin-left: auto; display: grid; place-items: center; border: 0; background: transparent; color: var(--rm-ink); font-size: 1rem; cursor: pointer; }
.rm-graph-zoom { position: absolute; right: .7rem; bottom: .7rem; display: grid; border: 1px solid rgba(17,18,15,.22); background: var(--rm-white); }
.rm-graph-zoom button { width: 32px; height: 32px; display: grid; place-items: center; border: 0; background: var(--rm-white); color: var(--rm-ink); font: 650 .92rem/1 var(--rm-sans); cursor: pointer; }
.rm-graph-zoom button:hover { background: var(--rm-sky); }
.rm-graph-zoom button + button { border-top: 1px solid rgba(17,18,15,.18); }
.rm-demo-axis-label { fill: rgba(17,18,15,.58); font: 700 10px var(--rm-mono); }
.rm-demo-point-label { fill: var(--rm-ink); font: 750 11px var(--rm-mono); paint-order: stroke; stroke: var(--rm-white); stroke-width: 4px; stroke-linejoin: round; }
.rm-graph-line { stroke-dasharray: none; stroke-dashoffset: 0; animation: none; }

@keyframes rmDraw { to { stroke-dashoffset: 0; } }

.rm-visual-caption {
  position: absolute;
  z-index: 3;
  left: 1.25rem;
  right: 1.25rem;
  bottom: 1.25rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: rgba(255,254,248,.58);
  font: 700 .67rem/1.35 var(--rm-mono);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.rm-scroll-cue {
  position: absolute;
  left: 4vw;
  bottom: 2rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  color: rgba(255,254,248,.43);
  font: 600 .63rem/1 var(--rm-mono);
  text-transform: uppercase;
  letter-spacing: .11em;
}

.rm-scroll-cue i {
  display: block;
  width: 38px;
  height: 1px;
  background: currentColor;
  transform-origin: left;
  animation: rmCue 1.5s ease-in-out infinite;
}

@keyframes rmCue { 50% { transform: scaleX(.35); opacity: .45; } }

.rm-intro-band {
  min-height: 70vh;
  padding: 9vw 4vw;
  display: grid;
  grid-template-columns: .65fr 1.35fr;
  gap: 8vw;
  align-items: start;
  background: var(--rm-paper);
  color: var(--rm-ink);
  border-bottom: 1px solid var(--rm-line);
}

.rm-section-label { color: var(--rm-muted); padding-top: .8rem; }
.rm-section-label span { color: var(--rm-coral); margin-right: 1.2rem; }

.rm-intro-copy {
  max-width: 980px;
  font: 400 clamp(2.45rem, 5.4vw, 6.4rem)/.98 var(--rm-display);
  letter-spacing: -.052em;
}

.rm-intro-copy em { color: var(--rm-coral); font-style: italic; }

/* Scroll-driven film */
.rm-film {
  height: 520vh;
  position: relative;
  background: var(--rm-ink);
  color: var(--rm-white);
}

.rm-film-sticky {
  position: sticky;
  top: 72px;
  height: calc(100svh - 72px);
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
  overflow: hidden;
  border-bottom: 1px solid var(--rm-line-dark);
}

.rm-hero-visual .rm-visual-caption { display: none; }

.rm-film-sticky::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .42;
  background-image:
    linear-gradient(var(--rm-line-dark) 1px, transparent 1px),
    linear-gradient(90deg, var(--rm-line-dark) 1px, transparent 1px);
  background-size: 4vw 4vw;
  pointer-events: none;
}

.rm-film-copy {
  min-width: 0;
  position: relative;
  z-index: 2;
  border-right: 1px solid var(--rm-line-dark);
}

.rm-film-index {
  position: absolute;
  left: 4vw;
  top: 12vh;
  color: rgba(255,254,248,.48);
}

.rm-film-index strong { color: var(--rm-signal); font-weight: inherit; }

.rm-film-step {
  position: absolute;
  inset: 0;
  padding: 26vh 4vw 8vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  opacity: 0;
  transform: translateY(35px);
  transition: opacity .45s ease, transform .6s cubic-bezier(.22,1,.36,1);
  pointer-events: none;
}

.rm-film-step.is-active { opacity: 1; transform: none; pointer-events: auto; }

.rm-film-number {
  margin-bottom: 1.2rem;
  color: var(--rm-signal);
  font: 700 .68rem/1 var(--rm-mono);
  letter-spacing: .12em;
}

.rm-film-step h2 {
  max-width: 540px;
  margin: 0;
  font: 400 clamp(3rem, 5.8vw, 6.7rem)/.9 var(--rm-display);
  letter-spacing: -.06em;
}

.rm-film-step p {
  max-width: 490px;
  margin: 1.6rem 0 0;
  color: rgba(255,254,248,.62);
  font-size: clamp(.96rem, 1.2vw, 1.15rem);
  line-height: 1.65;
}

.rm-film-stage {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.rm-film-stage::after {
  content: '';
  inset: 7%;
  position: absolute;
  background: color-mix(in srgb, var(--stage-color, var(--rm-signal)) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--stage-color, var(--rm-signal)) 38%, transparent);
  transform: translateY(calc((.5 - var(--film-progress)) * 24px));
  transition: background .5s ease;
}

.rm-film-device {
  position: relative;
  z-index: 2;
  width: min(84%, 820px);
  min-height: 620px;
  overflow: hidden;
  color: var(--rm-ink);
  background: var(--rm-paper);
  border: 1px solid var(--rm-ink);
  border-radius: 18px;
  box-shadow: 18px 18px 0 color-mix(in srgb, var(--stage-color, var(--rm-signal)) 84%, #11120f);
  transition: box-shadow .5s ease, transform .5s cubic-bezier(.22,1,.36,1);
  transform: translateY(calc((.5 - var(--film-progress)) * 28px));
}

.rm-film-window-bar { background: #e9e8e1; }
.rm-film-mode { justify-self: end; color: rgba(17,18,15,.54); }
.rm-film-scenes { position: relative; min-height: 574px; overflow: hidden; }
.rm-film-scene { position: absolute; inset: 0; padding: clamp(1.3rem, 3vw, 2.4rem); opacity: 0; transform: translateY(28px) scale(.97); transition: opacity .5s ease, transform .6s cubic-bezier(.22,1,.36,1); pointer-events: none; }
.rm-film[data-stage="1"] .rm-scene-diagnostic,
.rm-film[data-stage="2"] .rm-scene-lesson,
.rm-film[data-stage="3"] .rm-scene-practice,
.rm-film[data-stage="4"] .rm-scene-exam { opacity: 1; transform: none; pointer-events: auto; }
.rm-scene-kicker { display: block; margin-bottom: .85rem; color: rgba(17,18,15,.55); font: 750 .6rem/1 var(--rm-mono); letter-spacing: .09em; text-transform: uppercase; }
.rm-scene-side strong { display: block; max-width: 560px; font: 400 clamp(2.1rem, 4vw, 4rem)/.95 var(--rm-display); letter-spacing: -.05em; }
.rm-scene-side p { margin: .9rem 0 0; color: rgba(17,18,15,.58); font-size: .86rem; }
.rm-skill-map { margin-top: 2rem; border: 1px solid rgba(17,18,15,.25); }
.rm-skill-map > div { min-height: 74px; padding: .9rem 1rem; display: grid; grid-template-columns: 1fr minmax(130px, .7fr); align-items: center; gap: 1rem; border-bottom: 1px solid rgba(17,18,15,.18); font: 700 .66rem/1.2 var(--rm-mono); text-transform: uppercase; }
.rm-skill-map > div:last-child { border-bottom: 0; }
.rm-skill-map b { position: relative; padding: .65rem .7rem; overflow: hidden; border: 1px solid rgba(17,18,15,.22); text-align: right; }
.rm-skill-map b::before { content: ''; position: absolute; inset: 0 auto 0 0; z-index: -1; width: var(--mastery); background: var(--stage-color); }
.rm-scene-lesson { display: grid; background: var(--rm-sky); }
.rm-worked-example { padding: clamp(1.2rem, 3vw, 2.4rem); display: grid; grid-template-rows: auto 1fr; gap: 1.2rem; border: 1px solid var(--rm-ink); background: var(--rm-white); }
.rm-worked-prompt { padding-bottom: 1.2rem; border-bottom: 1px solid var(--rm-ink); }
.rm-worked-prompt > span { display: block; margin-bottom: .55rem; color: rgba(17,18,15,.54); font: 750 .59rem/1 var(--rm-mono); text-transform: uppercase; letter-spacing: .09em; }
.rm-worked-prompt strong { display: block; max-width: 650px; font: 400 clamp(2rem, 4vw, 4rem)/.98 var(--rm-display); letter-spacing: -.045em; }
.rm-worked-steps { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--rm-ink); }
.rm-worked-steps > div { min-height: 210px; padding: 1rem; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--rm-ink); background: var(--rm-paper); }
.rm-worked-steps > div:last-child { border-right: 0; }
.rm-worked-steps > div.is-result { background: var(--rm-signal); }
.rm-worked-steps i { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--rm-ink); border-radius: 50%; font: normal 750 .62rem/1 var(--rm-mono); }
.rm-worked-steps span { display: grid; gap: .55rem; color: rgba(17,18,15,.58); font-size: .67rem; font-weight: 700; }
.rm-worked-steps b { color: var(--rm-ink); font: 600 clamp(1.3rem, 2vw, 2rem)/1 var(--rm-display); letter-spacing: -.035em; white-space: nowrap; }
.rm-scene-practice { display: grid; grid-template-columns: .9fr 1.1fr; gap: 1rem; background: #f2f0ff; }
.rm-mini-question, .rm-mini-graph { border: 1px solid var(--rm-ink); background: var(--rm-white); }
.rm-mini-question { padding: 1.4rem; display: flex; flex-direction: column; }
.rm-mini-question > span { font: 750 .59rem/1 var(--rm-mono); text-transform: uppercase; letter-spacing: .08em; }
.rm-mini-question strong { margin-top: 1.25rem; font: 400 clamp(1.6rem, 2.7vw, 2.55rem)/1.04 var(--rm-display); letter-spacing: -.035em; }
.rm-mini-question > p { margin: .7rem 0 0; color: rgba(17,18,15,.58); font-size: .73rem; line-height: 1.45; }
.rm-vertex-readout { margin-top: auto; padding: .8rem 0; display: flex; align-items: end; justify-content: space-between; gap: 1rem; border-top: 1px solid rgba(17,18,15,.22); }
.rm-vertex-readout small { font: 750 .54rem/1 var(--rm-mono); text-transform: uppercase; letter-spacing: .08em; }
.rm-vertex-readout output { font: 600 1.7rem/1 var(--rm-display); }
.rm-vertex-controls { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--rm-ink); }
.rm-vertex-controls button { min-height: 40px; border: 0; border-right: 1px solid var(--rm-ink); background: var(--rm-white); color: var(--rm-ink); font: 750 1rem/1 var(--rm-sans); cursor: pointer; }
.rm-vertex-controls button:last-child { border-right: 0; }
.rm-vertex-controls button:hover { background: var(--rm-signal); }
.rm-film-check { min-height: 42px; margin-top: .55rem; border: 1px solid var(--rm-ink); background: var(--rm-ink); color: var(--rm-white); font: 750 .6rem/1 var(--rm-mono); text-transform: uppercase; letter-spacing: .06em; cursor: pointer; }
.rm-film-check:hover { background: var(--rm-coral); color: var(--rm-ink); }
.rm-film-feedback { min-height: 1.1rem; color: #9c2e22 !important; font-weight: 700; }
.rm-film-feedback.is-correct { color: #27673d !important; }
.rm-mini-graph { position: relative; display: grid; place-items: center; overflow: hidden; }
.rm-mini-graph svg { width: 100%; height: 100%; min-height: 420px; color: var(--rm-ink); }
.rm-graph-coordinate { position: absolute; right: .75rem; top: .75rem; padding: .45rem .55rem; border: 1px solid rgba(17,18,15,.25); background: rgba(255,254,248,.9); font: 750 .55rem/1 var(--rm-mono); text-transform: uppercase; }
.rm-film-axis-number { fill: rgba(17,18,15,.55); font: 700 10px var(--rm-mono); }
.rm-scene-exam { display: grid; grid-template-rows: auto 1fr auto; gap: 1.2rem; background: var(--rm-coral); }
.rm-exam-head { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--rm-ink); font: 750 .68rem/1 var(--rm-mono); text-transform: uppercase; letter-spacing: .08em; }
.rm-exam-head strong { padding: .55rem .7rem; background: var(--rm-ink); color: var(--rm-white); }
.rm-exam-grid { align-self: center; display: grid; grid-template-columns: repeat(6, minmax(48px, 1fr)); gap: .7rem; }
.rm-exam-grid span { aspect-ratio: 1; display: grid; place-items: center; border: 1px solid var(--rm-ink); background: rgba(255,254,248,.64); font: 750 .78rem/1 var(--rm-mono); }
.rm-exam-grid .is-done { background: var(--rm-signal); }
.rm-exam-grid .is-review { background: var(--rm-signal-soft); border-radius: 50% 50% 3px 3px; }
.rm-exam-grid .is-current { background: var(--rm-ink); color: var(--rm-white); box-shadow: 5px 5px 0 var(--rm-white); }
.rm-exam-note { min-height: 86px; padding: 1rem; display: flex; align-items: center; gap: 1rem; border: 1px solid var(--rm-ink); background: var(--rm-white); }
.rm-exam-note i { width: 12px; align-self: stretch; background: var(--rm-signal); }
.rm-exam-note span { display: grid; gap: .25rem; color: rgba(17,18,15,.62); font-size: .74rem; }
.rm-exam-note b { color: var(--rm-ink); font-size: .84rem; }

.rm-stage-readout {
  position: absolute;
  z-index: 3;
  right: 2rem;
  bottom: 2rem;
  width: min(280px, 34%);
  padding: 1rem;
  color: var(--rm-ink);
  background: rgba(255,254,248,.92);
  border: 1px solid var(--rm-ink);
  box-shadow: 8px 8px 0 var(--rm-ink);
}

.rm-stage-readout-top,
.rm-stage-readout-bottom {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font: 700 .61rem/1.3 var(--rm-mono);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.rm-stage-meter { height: 8px; margin: .9rem 0; background: rgba(17,18,15,.15); }
.rm-stage-meter span { display: block; height: 100%; width: calc(10% + var(--film-progress) * 90%); background: var(--rm-ink); }

.rm-film-progress {
  position: absolute;
  z-index: 4;
  right: 1rem;
  top: 10vh;
  bottom: 10vh;
  width: 1px;
  background: var(--rm-line-dark);
}

.rm-film-progress span {
  position: absolute;
  inset: 0 0 auto;
  height: calc(var(--film-progress) * 100%);
  background: var(--rm-signal);
}

.rm-proof-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: var(--rm-signal);
  color: var(--rm-ink);
  border-bottom: 1px solid var(--rm-ink);
}

.rm-proof-item {
  min-height: 160px;
  padding: 2.2rem 4vw;
  border-right: 1px solid rgba(17,18,15,.25);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2rem;
}

.rm-proof-item:last-child { border-right: 0; }
.rm-proof-item strong { font: 400 clamp(1.55rem, 2.6vw, 3.1rem)/1 var(--rm-display); letter-spacing: -.04em; }
.rm-proof-item span { font: 700 .65rem/1.35 var(--rm-mono); text-transform: uppercase; letter-spacing: .08em; }

.rm-section {
  padding: clamp(6rem, 11vw, 11rem) 4vw;
  border-bottom: 1px solid var(--rm-line-dark);
}

.rm-section-head {
  display: grid;
  grid-template-columns: .56fr 1.44fr;
  gap: 7vw;
  margin-bottom: clamp(4rem, 8vw, 8rem);
}

.rm-section-head h2 {
  max-width: 900px;
  margin: 0;
  font: 400 clamp(3rem, 6vw, 7.5rem)/.9 var(--rm-display);
  letter-spacing: -.06em;
  text-wrap: balance;
}

.rm-section-head h2 em { color: var(--rm-signal); font-style: italic; }

.rm-courses { background: var(--rm-paper); color: var(--rm-ink); border-color: var(--rm-line); }
.rm-courses .rm-section-head h2 em { color: var(--rm-coral); }

.rm-course-ledger { border-top: 1px solid var(--rm-line); }

.rm-course-row {
  display: grid;
  grid-template-columns: 76px minmax(220px, 1.25fr) minmax(260px, 1fr) auto;
  gap: clamp(1rem, 3vw, 3rem);
  align-items: center;
  min-height: 168px;
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--rm-line);
  transition: padding .25s ease, background .25s ease;
}

.rm-course-row:hover { padding-left: 1.2rem; padding-right: 1.2rem; background: var(--rm-white); }

.rm-course-no { font: 700 .68rem/1 var(--rm-mono); color: var(--rm-muted); letter-spacing: .1em; }
.rm-course-title { font: 400 clamp(1.8rem, 3.6vw, 4.2rem)/1 var(--rm-display); letter-spacing: -.05em; }
.rm-course-copy { color: var(--rm-muted); font-size: .98rem; line-height: 1.6; }
.rm-course-meta { min-width: 180px; display: flex; flex-direction: column; align-items: flex-end; gap: .75rem; }
.rm-course-offer { min-width: 200px; padding: .85rem .9rem; display: grid; gap: .65rem; border: 1px solid var(--rm-ink); background: var(--rm-white); }
.rm-offer-status { display: flex; align-items: center; gap: .5rem; font: 750 .56rem/1 var(--rm-mono); text-transform: uppercase; letter-spacing: .07em; }
.rm-offer-status i { width: 8px; height: 8px; display: block; border-radius: 50%; background: var(--rm-signal); box-shadow: 0 0 0 3px rgba(201,255,61,.28); }
.rm-offer-price { display: flex; align-items: flex-end; justify-content: space-between; gap: .7rem; }
.rm-offer-price b { font: 400 2rem/.85 var(--rm-display); letter-spacing: -.05em; }
.rm-offer-price small { color: var(--rm-muted); font: 650 .51rem/1.25 var(--rm-mono); text-align: right; text-transform: uppercase; }
.rm-course-status { color: var(--rm-coral); font: 700 .64rem/1 var(--rm-mono); text-transform: uppercase; letter-spacing: .08em; }

.rm-course-note {
  margin-top: 1.4rem;
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  color: var(--rm-muted);
  font: 600 .66rem/1.5 var(--rm-mono);
  text-transform: uppercase;
  letter-spacing: .075em;
}

.rm-map {
  background: var(--rm-sky);
  color: var(--rm-ink);
  border-color: var(--rm-ink);
  overflow: hidden;
}

.rm-map .rm-section-head { margin-bottom: 5vw; }
.rm-map .rm-section-head h2 em { color: var(--rm-ink); }

.rm-map-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr);
  gap: 4vw;
  align-items: stretch;
}

.rm-score-map {
  min-height: 520px;
  padding: 2rem;
  display: grid;
  align-items: center;
  background: var(--rm-paper);
  border: 1px solid var(--rm-ink);
  box-shadow: 12px 12px 0 rgba(17,18,15,.18);
}

.rm-score-map svg { width: 100%; height: auto; overflow: visible; }

.rm-map-notes { display: grid; grid-template-rows: repeat(3, 1fr); border-top: 1px solid var(--rm-ink); }
.rm-map-note { padding: 1.6rem 0; border-bottom: 1px solid var(--rm-ink); }
.rm-map-note span { display: block; margin-bottom: .7rem; font: 800 .64rem/1 var(--rm-mono); text-transform: uppercase; letter-spacing: .1em; }
.rm-map-note strong { display: block; max-width: 360px; font: 400 clamp(1.4rem, 2.5vw, 2.6rem)/1.08 var(--rm-display); }

.rm-about {
  display: grid;
  grid-template-columns: minmax(360px, .92fr) minmax(0, 1.08fr);
  gap: 7vw;
  background: var(--rm-ink);
}

.rm-about-figure {
  min-height: 680px;
  position: relative;
  overflow: hidden;
  background: var(--rm-coral);
  border: 1px solid var(--rm-line-dark);
}

.rm-about-figure::before {
  content: 'H';
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 53%;
  transform: translate(-50%, -50%);
  color: var(--rm-ink);
  font: 400 min(27vw, 23rem)/1 var(--rm-display);
  letter-spacing: -.08em;
}

.rm-about-figure::after {
  content: '';
  position: absolute;
  width: min(66%, 520px);
  aspect-ratio: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border: 1px solid var(--rm-ink);
  border-radius: 50%;
  box-shadow: 0 0 0 3rem rgba(17,18,15,.06), 0 0 0 6rem rgba(17,18,15,.04);
}

.rm-about-caption {
  position: absolute;
  z-index: 2;
  left: 1.4rem;
  right: 1.4rem;
  top: 1.4rem;
  display: flex;
  justify-content: space-between;
  color: var(--rm-ink);
  font: 800 .65rem/1.4 var(--rm-mono);
  text-transform: uppercase;
  letter-spacing: .09em;
}

.rm-about-copy { align-self: center; }
.rm-about-copy .rm-section-label { color: rgba(255,254,248,.5); }
.rm-about-copy h2 { margin: 2rem 0; font: 400 clamp(3.4rem, 6.4vw, 7.4rem)/.88 var(--rm-display); letter-spacing: -.065em; }
.rm-about-copy h2 em { color: var(--rm-coral); font-style: italic; }
.rm-about-copy > p { max-width: 650px; color: rgba(255,254,248,.64); font-size: 1.08rem; line-height: 1.7; }
.rm-about-points { margin-top: 3rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--rm-line-dark); }
.rm-about-point { padding: 1.4rem 1.4rem 1.4rem 0; border-bottom: 1px solid var(--rm-line-dark); }
.rm-about-point:nth-child(odd) { border-right: 1px solid var(--rm-line-dark); }
.rm-about-point:nth-child(even) { padding-left: 1.4rem; }
.rm-about-point strong { display: block; margin-bottom: .45rem; color: var(--rm-signal); font: 800 .66rem/1 var(--rm-mono); text-transform: uppercase; letter-spacing: .08em; }
.rm-about-point span { color: rgba(255,254,248,.73); font-size: .9rem; line-height: 1.5; }

.rm-voices { background: var(--rm-paper); color: var(--rm-ink); border-color: var(--rm-line); }
.rm-voices .rm-section-head h2 em { color: var(--rm-violet); }
.rm-quotes { display: grid; grid-template-columns: 1fr 1fr 1fr; border-top: 1px solid var(--rm-line); }
.rm-quote { min-height: 380px; padding: 2rem; border-right: 1px solid var(--rm-line); display: flex; flex-direction: column; justify-content: space-between; }
.rm-quote:last-child { border-right: 0; }
.rm-quote p { margin: 0; font: 400 clamp(1.55rem, 2.5vw, 2.8rem)/1.08 var(--rm-display); letter-spacing: -.035em; }
.rm-quote footer { padding: 0 !important; display: grid; gap: .35rem; background: none !important; border: 0 !important; text-align: left !important; color: var(--rm-muted) !important; font: 700 .65rem/1.5 var(--rm-mono) !important; text-transform: uppercase; letter-spacing: .08em; }
.rm-quote footer strong { color: var(--rm-ink); font: inherit; }
.rm-quote footer small { max-width: 270px; color: rgba(17,18,15,.48); font: 650 .54rem/1.45 var(--rm-mono); letter-spacing: .06em; }

.rm-faq { background: var(--rm-ink); }
.rm-faq-list { max-width: 1050px; margin-left: auto; border-top: 1px solid var(--rm-line-dark); }
.rm-faq details { border-bottom: 1px solid var(--rm-line-dark); }
.rm-faq summary { min-height: 100px; padding: 1.4rem 0; display: grid; grid-template-columns: 56px 1fr auto; gap: 1.5rem; align-items: center; cursor: pointer; list-style: none; }
.rm-faq summary::-webkit-details-marker { display: none; }
.rm-faq summary::after { content: '+'; font: 400 2rem/1 var(--rm-display); transition: transform .25s ease; }
.rm-faq details[open] summary::after { transform: rotate(45deg); }
.rm-faq-no { color: var(--rm-signal); font: 800 .64rem/1 var(--rm-mono); }
.rm-faq-q { font: 400 clamp(1.4rem, 2.4vw, 2.6rem)/1.1 var(--rm-display); }
.rm-faq-answer { max-width: 720px; padding: 0 0 2rem 72px; color: rgba(255,254,248,.62); font-size: 1rem; line-height: 1.7; }

.rm-final {
  min-height: 82vh;
  padding: 9vw 4vw 5vw;
  display: grid;
  align-items: end;
  position: relative;
  overflow: hidden;
  background: var(--rm-signal);
  color: var(--rm-ink);
}

.rm-final::after {
  content: '';
  position: absolute;
  right: -12vw;
  top: -30vw;
  width: 70vw;
  aspect-ratio: 1;
  border: 1px solid var(--rm-ink);
  border-radius: 50%;
  box-shadow: 0 0 0 7vw rgba(17,18,15,.05), 0 0 0 14vw rgba(17,18,15,.035);
}

.rm-final-inner { position: relative; z-index: 2; }
.rm-final h2 { max-width: 1100px; margin: 0 0 2.5rem; font: 400 clamp(4rem, 9vw, 11rem)/.82 var(--rm-display); letter-spacing: -.08em; }
.rm-final h2 em { font-style: italic; }
.rm-final-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.rm-final-note { margin-left: 1rem; max-width: 360px; font-size: .87rem; line-height: 1.5; }

.rm-footer {
  padding: 3.5rem 4vw 2rem !important;
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 4rem;
  text-align: left !important;
  background: var(--rm-ink) !important;
  border: 0 !important;
  color: rgba(255,254,248,.55) !important;
}

.rm-footer-brand { color: var(--rm-white); font: 400 2.6rem/1 var(--rm-display); letter-spacing: -.05em; }
.rm-footer-brand span { color: var(--rm-signal); }
.rm-footer-copy { max-width: 430px; margin-top: 1.2rem; font-size: .87rem; line-height: 1.6; }
.rm-footer-col strong { display: block; margin-bottom: 1rem; color: rgba(255,254,248,.38); font: 800 .63rem/1 var(--rm-mono); text-transform: uppercase; letter-spacing: .1em; }
.rm-footer-col a { display: block; width: max-content; margin: .6rem 0; color: var(--rm-white); font-size: .9rem; text-decoration: none; }
.rm-footer-col a:hover { color: var(--rm-signal); }
.rm-footer-bottom { grid-column: 1 / -1; padding-top: 2rem; display: flex; justify-content: space-between; gap: 2rem; border-top: 1px solid var(--rm-line-dark); font: 600 .62rem/1.5 var(--rm-mono); text-transform: uppercase; letter-spacing: .08em; }

/* ───────────────────────── PUBLIC INNER PAGES ──────────────────────── */

body.hp-page,
body.hp-products-page,
body.hp-support-page,
body.hp-auth-flow {
  --hp-bg: var(--rm-ink);
  --hp-card: var(--rm-ink-soft);
  --hp-gold: var(--rm-signal);
  --hp-muted: rgba(255,254,248,.58);
  --hp-border: var(--rm-line-dark);
  margin: 0;
  background: var(--rm-paper) !important;
  color: var(--rm-ink) !important;
  font-family: var(--rm-sans) !important;
}

body.hp-page::before,
body.hp-products-page::before,
body.hp-support-page::before,
body.hp-auth-flow::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .5;
  background-image:
    linear-gradient(var(--rm-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--rm-line) 1px, transparent 1px);
  background-size: 5vw 5vw;
  mask-image: linear-gradient(to bottom, black, transparent 65vh);
}

.hp-header,
body.hp-products-page > header {
  position: sticky !important;
  top: 0;
  z-index: 100;
  height: 72px;
  padding: 0 4vw !important;
  display: flex;
  align-items: center;
  background: rgba(242,240,231,.9) !important;
  border-bottom: 1px solid var(--rm-line) !important;
  backdrop-filter: blur(15px);
}

.hp-header-inner,
body.hp-products-page > header > div {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.hp-logo,
body.hp-products-page .logo {
  color: var(--rm-ink) !important;
  font: 400 1.75rem/1 var(--rm-display) !important;
  letter-spacing: -.05em !important;
}

.hp-logo span,
body.hp-products-page .logo span { color: var(--rm-coral) !important; }

.hp-nav a,
body.hp-products-page nav a {
  color: var(--rm-ink) !important;
  font: 800 .64rem/1 var(--rm-mono) !important;
  text-transform: uppercase;
  letter-spacing: .09em;
}

.hp-nav a:hover,
body.hp-products-page nav a:hover { color: var(--rm-coral) !important; }

.reading-progress {
  position: fixed;
  top: 71px;
  left: 0;
  right: 0;
  z-index: 101;
  height: 2px;
  background: transparent;
}

.reading-progress span { display: block; width: calc(var(--read-progress, 0) * 100%); height: 100%; background: var(--rm-coral); }

.hp-main {
  width: min(100% - 8vw, 960px) !important;
  max-width: 960px !important;
  margin: 0 auto !important;
  padding: clamp(5rem, 10vw, 9rem) 0 8rem !important;
  color: var(--rm-ink) !important;
}

.hp-main > h1 {
  margin: 0 0 1rem !important;
  color: var(--rm-ink) !important;
  font: 400 clamp(4rem, 9vw, 8.5rem)/.86 var(--rm-display) !important;
  letter-spacing: -.075em !important;
}

.hp-main .hp-updated {
  margin-bottom: 5rem !important;
  padding-bottom: 1.2rem;
  color: var(--rm-muted) !important;
  border-bottom: 1px solid var(--rm-line);
  font: 700 .65rem/1.4 var(--rm-mono) !important;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.hp-main h2 {
  scroll-margin-top: 110px;
  margin: 4.5rem 0 1.2rem !important;
  padding-top: 1.4rem;
  border-top: 1px solid var(--rm-line);
  color: var(--rm-ink) !important;
  font: 400 clamp(2rem, 4vw, 3.6rem)/1 var(--rm-display) !important;
  letter-spacing: -.045em;
}

.hp-main h3 { margin: 2.3rem 0 .8rem !important; color: var(--rm-ink) !important; font-size: 1rem !important; letter-spacing: .01em; }
.hp-main p,
.hp-main li { color: #4f534b !important; font-size: 1rem !important; line-height: 1.75 !important; }
.hp-main a { color: #c84836 !important; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.hp-main strong { color: var(--rm-ink) !important; }
.hp-main table { border: 1px solid var(--rm-line) !important; background: var(--rm-white) !important; }
.hp-main th { background: var(--rm-ink) !important; color: var(--rm-white) !important; }
.hp-main td { color: #4f534b !important; border-color: var(--rm-line) !important; }
.hp-main .callout { border-radius: 0 !important; border: 1px solid var(--rm-line) !important; border-left: 7px solid var(--rm-coral) !important; background: var(--rm-white) !important; color: #4f534b !important; box-shadow: 8px 8px 0 var(--rm-paper-3); }
.hp-main .callout strong { color: var(--rm-ink) !important; }
.hp-main .timeline-step strong { color: var(--rm-ink) !important; }
.hp-main .timeline-step::before { background: var(--rm-coral) !important; }

.hp-toc {
  position: fixed;
  top: 112px;
  left: 1rem;
  width: clamp(110px, calc((100vw - 960px) / 2 - 24px), 180px);
  display: grid;
  gap: .55rem;
  color: var(--rm-muted);
}

.hp-toc strong { margin-bottom: .5rem; color: var(--rm-coral); font: 800 .62rem/1 var(--rm-mono); text-transform: uppercase; letter-spacing: .1em; }
.hp-toc a { color: inherit; font-size: .72rem; line-height: 1.35; text-decoration: none; }
.hp-toc a:hover { color: var(--rm-ink); }

body.hp-page .hp-footer {
  padding: 2.5rem 4vw !important;
  background: var(--rm-ink) !important;
  color: rgba(255,254,248,.54) !important;
  border-color: var(--rm-line-dark) !important;
}

body.hp-page .hp-footer a { color: var(--rm-white) !important; }

/* Products */
body.hp-products-page { display: block !important; }
body.hp-products-page main { width: 100%; }
body.hp-products-page .hero {
  min-height: 76vh !important;
  padding: 9rem 4vw 5rem !important;
  display: grid !important;
  align-content: end;
  background: var(--rm-signal) !important;
  color: var(--rm-ink) !important;
  border-bottom: 1px solid var(--rm-ink);
}

body.hp-products-page .hero::before { display: none !important; }
body.hp-products-page .hero-eyebrow { justify-self: start; width: max-content; margin: 0 0 2rem !important; padding: .4rem 0 !important; border: 0 !important; border-top: 1px solid var(--rm-ink) !important; border-bottom: 1px solid var(--rm-ink) !important; border-radius: 0 !important; background: transparent !important; color: var(--rm-ink) !important; font-family: var(--rm-mono) !important; }
body.hp-products-page .hero h1 { max-width: 1100px !important; margin: 0 !important; color: var(--rm-ink) !important; font: 400 clamp(4.2rem, 9.5vw, 10rem)/.82 var(--rm-display) !important; letter-spacing: -.08em !important; }
body.hp-products-page .hero h1 em { color: var(--rm-ink) !important; font-weight: 400 !important; font-style: italic !important; }
body.hp-products-page .hero p { max-width: 590px !important; margin: 2rem 0 0 auto !important; color: rgba(17,18,15,.7) !important; font-size: 1.1rem !important; line-height: 1.6 !important; }

body.hp-products-page .courses-section,
body.hp-products-page .features-section,
body.hp-products-page .guarantee { padding: clamp(5rem, 9vw, 9rem) 4vw !important; background: var(--rm-paper) !important; color: var(--rm-ink) !important; }
body.hp-products-page .courses-grid { max-width: 1400px !important; margin: 0 auto !important; display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 0 !important; border-top: 1px solid var(--rm-line); border-left: 1px solid var(--rm-line); }
body.hp-products-page .course-card { min-height: 540px; display: flex; flex-direction: column; border: 0 !important; border-right: 1px solid var(--rm-line) !important; border-bottom: 1px solid var(--rm-line) !important; border-radius: 0 !important; background: var(--rm-white) !important; box-shadow: none !important; }
body.hp-products-page .course-card.featured { transform: none !important; background: var(--rm-sky) !important; }
body.hp-products-page .course-card:hover { transform: none !important; box-shadow: inset 0 0 0 8px var(--rm-signal) !important; }
body.hp-products-page .card-top { min-height: 210px !important; padding: 2rem !important; display: flex !important; flex-direction: column !important; justify-content: flex-end !important; background: transparent !important; color: var(--rm-ink) !important; }
body.hp-products-page .card-top::before,
body.hp-products-page .card-top::after { border-color: rgba(17,18,15,.16) !important; }
body.hp-products-page .card-top h3 { margin: 1rem 0 0 !important; color: var(--rm-ink) !important; font: 400 clamp(2rem, 3.6vw, 4rem)/.95 var(--rm-display) !important; letter-spacing: -.05em; }
body.hp-products-page .card-tag { width: max-content; padding: .38rem .55rem !important; border-radius: 0 !important; background: var(--rm-ink) !important; color: var(--rm-white) !important; font: 800 .61rem/1 var(--rm-mono) !important; letter-spacing: .09em; }
body.hp-products-page .card-body { flex: 1; padding: 2rem !important; display: flex; flex-direction: column; color: var(--rm-muted) !important; }
body.hp-products-page .card-body > p { color: var(--rm-muted) !important; }
body.hp-products-page .card-features { flex: 1; }
body.hp-products-page .card-features li { color: var(--rm-muted) !important; }
body.hp-products-page .card-features li::before { border-color: var(--rm-coral) !important; background: var(--rm-coral) !important; }
body.hp-products-page .card-foot { border-color: var(--rm-line) !important; }
body.hp-products-page .card-price { color: var(--rm-ink) !important; font: 400 2.6rem/1 var(--rm-display) !important; }
body.hp-products-page .card-price span { color: var(--rm-muted) !important; }
body.hp-products-page .badge-soon { border-radius: 0 !important; border-color: var(--rm-ink) !important; background: transparent !important; color: var(--rm-ink) !important; font-family: var(--rm-mono) !important; text-transform: uppercase; }
body.hp-products-page .btn-buy { border-radius: 0 !important; background: var(--rm-ink) !important; color: var(--rm-white) !important; }
body.hp-products-page .course-header { padding: 2rem !important; background: transparent !important; color: var(--rm-ink) !important; }
body.hp-products-page .course-header h2 { margin: 1rem 0 !important; color: var(--rm-ink) !important; font: 400 clamp(2rem, 3.6vw, 4rem)/.95 var(--rm-display) !important; letter-spacing: -.05em; }
body.hp-products-page .badge { width: max-content; padding: .38rem .55rem !important; border-radius: 0 !important; background: var(--rm-ink) !important; color: var(--rm-white) !important; font: 800 .61rem/1 var(--rm-mono) !important; letter-spacing: .09em; }
body.hp-products-page .price { color: var(--rm-ink) !important; font: 400 2.6rem/1 var(--rm-display) !important; }
body.hp-products-page .course-body { flex: 1; padding: 2rem !important; color: var(--rm-muted) !important; }
body.hp-products-page .course-body li::before { color: var(--rm-coral) !important; }
body.hp-products-page .btn { border-radius: 0 !important; background: var(--rm-ink) !important; color: var(--rm-white) !important; }
body.hp-products-page .btn-signin,
body.hp-products-page .btn-enroll { min-height: 42px; padding: 0 1rem !important; border: 1px solid var(--rm-ink) !important; border-radius: 0 !important; font-family: var(--rm-mono) !important; font-size: .68rem !important; text-transform: uppercase; letter-spacing: .07em; }
body.hp-products-page .btn-signin { background: transparent !important; color: var(--rm-ink) !important; }
body.hp-products-page .btn-enroll { background: var(--rm-signal) !important; color: var(--rm-ink) !important; }
body.hp-products-page .features-section { background: var(--rm-ink) !important; color: var(--rm-white) !important; }
body.hp-products-page .features-section h2,
body.hp-products-page .features-section h3 { color: var(--rm-white) !important; }
body.hp-products-page .features-section h2 { font: 400 clamp(3rem, 6vw, 7rem)/.9 var(--rm-display) !important; letter-spacing: -.06em; }
body.hp-products-page .features-grid { max-width: 1400px !important; margin: 4rem auto 0 !important; display: grid !important; grid-template-columns: repeat(2,1fr) !important; gap: 0 !important; border-top: 1px solid var(--rm-line-dark); border-left: 1px solid var(--rm-line-dark); }
body.hp-products-page .feature { min-height: 230px; padding: 2rem !important; border-right: 1px solid var(--rm-line-dark); border-bottom: 1px solid var(--rm-line-dark); }
body.hp-products-page .feature p { color: rgba(255,254,248,.58) !important; }
body.hp-products-page .feat { min-height: 230px; padding: 2rem !important; border: 0 !important; border-right: 1px solid var(--rm-line-dark) !important; border-bottom: 1px solid var(--rm-line-dark) !important; border-radius: 0 !important; background: transparent !important; }
body.hp-products-page .feat-icon { border-radius: 0 !important; border-color: var(--rm-line-dark) !important; background: var(--rm-signal) !important; }
body.hp-products-page .feat-icon svg { color: var(--rm-ink) !important; }
body.hp-products-page .feat h4 { color: var(--rm-white) !important; font: 400 1.6rem/1 var(--rm-display) !important; }
body.hp-products-page .feat p { color: rgba(255,254,248,.58) !important; }
body.hp-products-page .guarantee { background: var(--rm-coral) !important; border-radius: 0 !important; }
body.hp-products-page .guarantee-box { max-width: 920px !important; margin: 0 auto !important; padding: 0 !important; background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
body.hp-products-page .guarantee-inner { max-width: 920px !important; }
body.hp-products-page .guarantee h2 { color: var(--rm-ink) !important; font: 400 clamp(3rem, 6vw, 6rem)/.9 var(--rm-display) !important; }
body.hp-products-page footer { padding: 3rem 4vw !important; background: var(--rm-ink) !important; color: rgba(255,254,248,.55) !important; }

/* Support and single-purpose auth pages */
body.hp-support-page,
body.hp-auth-flow {
  min-height: 100vh !important;
  padding: 3rem 4vw !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}

body.hp-support-page { justify-content: flex-start !important; padding-top: clamp(3rem, 7vw, 6rem) !important; }

body.hp-support-page .logo,
body.hp-auth-flow .logo {
  margin: 0 0 2rem !important;
  color: var(--rm-ink) !important;
  font: 400 2.1rem/1 var(--rm-display) !important;
  letter-spacing: -.05em !important;
  opacity: 1 !important;
}

body.hp-support-page .logo b,
body.hp-auth-flow .logo b { color: var(--rm-coral) !important; }

body.hp-support-page .page-title {
  max-width: 800px;
  margin: 0 !important;
  color: var(--rm-ink) !important;
  font: 400 clamp(4rem, 8vw, 7.8rem)/.87 var(--rm-display) !important;
  letter-spacing: -.07em !important;
}

body.hp-support-page .page-sub { max-width: 560px !important; margin: 1.5rem 0 3rem !important; color: var(--rm-muted) !important; font-size: 1rem !important; }

body.hp-support-page .card,
body.hp-auth-flow .card {
  width: min(100%, 680px) !important;
  max-width: 680px !important;
  padding: clamp(1.5rem, 4vw, 3rem) !important;
  color: var(--rm-ink) !important;
  background: var(--rm-white) !important;
  border: 1px solid var(--rm-ink) !important;
  border-radius: 0 !important;
  box-shadow: 9px 9px 0 rgba(17,18,15,.14) !important;
}

body.hp-auth-flow .card { max-width: 470px !important; box-shadow: 12px 12px 0 var(--rm-signal) !important; }
body.hp-support-page .cats { gap: 0 !important; border-top: 1px solid var(--rm-line); border-left: 1px solid var(--rm-line); }
body.hp-support-page .cat { min-height: 160px; padding: 1.4rem !important; display: flex; flex-direction: column; justify-content: space-between; background: var(--rm-paper) !important; border: 0 !important; border-right: 1px solid var(--rm-line) !important; border-bottom: 1px solid var(--rm-line) !important; border-radius: 0 !important; text-align: left !important; }
body.hp-support-page .cat:hover { background: var(--rm-signal-soft) !important; }
body.hp-support-page .cat-ico svg { stroke: var(--rm-ink) !important; }
body.hp-support-page .cat-name { color: var(--rm-ink) !important; font: 400 1.35rem/1 var(--rm-display) !important; }
body.hp-support-page .cat-desc { color: var(--rm-muted) !important; font-size: .76rem !important; }

body.hp-support-page .form-title,
body.hp-support-page .success-title,
body.hp-auth-flow .form-title,
body.hp-auth-flow .state-title { color: var(--rm-ink) !important; font: 400 2.2rem/1 var(--rm-display) !important; letter-spacing: -.04em !important; }

body.hp-support-page .form-sub,
body.hp-support-page .success-sub,
body.hp-auth-flow .form-sub,
body.hp-auth-flow .state-sub { color: var(--rm-muted) !important; }

body.hp-support-page .field label,
body.hp-auth-flow .field label { color: var(--rm-ink) !important; font: 800 .63rem/1 var(--rm-mono) !important; text-transform: uppercase; letter-spacing: .08em; }

body.hp-support-page .field input,
body.hp-support-page .field textarea,
body.hp-support-page .field select,
body.hp-auth-flow .field input {
  min-height: 48px;
  border: 1px solid var(--rm-line) !important;
  border-radius: 0 !important;
  background: var(--rm-paper) !important;
  color: var(--rm-ink) !important;
}

body.hp-support-page .field input:focus,
body.hp-support-page .field textarea:focus,
body.hp-support-page .field select:focus,
body.hp-auth-flow .field input:focus { border-color: var(--rm-ink) !important; box-shadow: 0 0 0 3px rgba(111,143,25,.22); }

body.hp-support-page .field input::placeholder,
body.hp-support-page .field textarea::placeholder,
body.hp-auth-flow .field input::placeholder { color: #8d9188 !important; }

body.hp-support-page .field select option { background: var(--rm-white) !important; color: var(--rm-ink) !important; }
body.hp-support-page .btn,
body.hp-auth-flow .btn { border-radius: 0 !important; background: var(--rm-ink) !important; color: var(--rm-white) !important; box-shadow: none !important; }
body.hp-support-page .btn:hover,
body.hp-auth-flow .btn:hover { background: #6f8f19 !important; color: var(--rm-white) !important; }
body.hp-support-page .btn-dim,
body.hp-auth-flow .btn-dim { background: transparent !important; color: var(--rm-ink) !important; border: 1px solid var(--rm-line) !important; }
body.hp-auth-flow .spinner { border-color: rgba(17,18,15,.13) !important; border-top-color: var(--rm-coral) !important; }
body.hp-auth-flow .tip { background: var(--rm-paper) !important; border: 1px solid var(--rm-line) !important; border-radius: 0 !important; }
body.hp-auth-flow .tip p,
body.hp-auth-flow .tip strong { color: var(--rm-muted) !important; }
body.hp-auth-flow .icon-wrap { border-radius: 0 !important; background: var(--rm-signal) !important; border-color: var(--rm-ink) !important; }
body.hp-support-page .footer-hint,
body.hp-auth-flow .footer-hint { color: var(--rm-muted) !important; }
body.hp-support-page .footer-hint a { color: var(--rm-ink) !important; }
.hp-trap { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }

/* Main index auth overlays */
#view-register .auth-page,
#view-login .auth-page,
#view-forgot .auth-page,
#view-verify .auth-page {
  background: var(--rm-paper) !important;
  color: var(--rm-ink) !important;
}

.auth-page::before {
  opacity: .55 !important;
  background-image: linear-gradient(var(--rm-line) 1px, transparent 1px), linear-gradient(90deg, var(--rm-line) 1px, transparent 1px) !important;
  background-size: 5vw 5vw !important;
}

.auth-page::after { background: radial-gradient(circle at 75% 28%, rgba(201,255,61,.75), transparent 24%) !important; }
.auth-bg-grid { display: none !important; }
.auth-box { max-width: 490px !important; padding: 2.3rem !important; background: var(--rm-white) !important; color: var(--rm-ink) !important; border: 1px solid var(--rm-ink) !important; border-radius: 0 !important; box-shadow: 12px 12px 0 var(--rm-coral) !important; }
.auth-box::before { display: none !important; }
.auth-logo { color: var(--rm-ink) !important; font: 400 2rem/1 var(--rm-display) !important; }
.auth-logo span { color: var(--rm-coral) !important; }
.auth-tagline,
.auth-box .sub,
.auth-switch { color: var(--rm-muted) !important; }
.auth-box h2 { color: var(--rm-ink) !important; font: 400 2.3rem/1 var(--rm-display) !important; }
.auth-box .form-group label { color: var(--rm-ink) !important; font: 800 .62rem/1 var(--rm-mono) !important; text-transform: uppercase; letter-spacing: .08em; }
.auth-box .form-group input { background: var(--rm-paper) !important; color: var(--rm-ink) !important; border: 1px solid var(--rm-line) !important; border-radius: 0 !important; }
.auth-box .form-group input:focus { border-color: var(--rm-ink) !important; box-shadow: 0 0 0 3px rgba(111,143,25,.22) !important; }
.auth-box .form-group input::placeholder { color: #8d9188 !important; }
.auth-box .btn-google { background: transparent !important; color: var(--rm-ink) !important; border-color: var(--rm-line) !important; border-radius: 0 !important; }
.auth-box .btn-gold { background: var(--rm-ink) !important; color: var(--rm-white) !important; border-radius: 0 !important; }
.auth-box .btn-gold:hover { background: var(--rm-coral) !important; color: var(--rm-ink) !important; }
.auth-divider { color: var(--rm-muted) !important; }
.auth-divider::before,
.auth-divider::after { background: var(--rm-line) !important; }
.auth-switch a { color: #bf4432 !important; }
.back-link { color: var(--rm-ink) !important; font: 800 .64rem/1 var(--rm-mono) !important; text-transform: uppercase; letter-spacing: .08em; }

/* ─────────────────────────── STUDENT PORTAL ───────────────────────── */

body.hp-student-remake {
  --bg: #e9e7de;
  --surface: #f8f6ee;
  --surface-2: #dedbd0;
  --text: var(--rm-ink);
  --muted: #6b6e66;
  --border: rgba(17,18,15,.17);
  --gold: var(--rm-coral);
  --gold2: #de4f39;
  --navy: var(--rm-ink);
  background: var(--rm-paper) !important;
  color: var(--rm-ink) !important;
}

body.hp-student-remake .sidebar {
  width: 276px !important;
  background: var(--rm-ink) !important;
  border-right: 1px solid var(--rm-line-dark) !important;
}

body.hp-student-remake .sb-logo { padding: 1.7rem 1.5rem !important; border-bottom-color: var(--rm-line-dark) !important; }
body.hp-student-remake .sb-word { color: var(--rm-white) !important; font: 400 1.75rem/1 var(--rm-display) !important; letter-spacing: -.05em !important; }
body.hp-student-remake .sb-word b { color: var(--rm-signal) !important; font-weight: 400 !important; }
body.hp-student-remake .sb-tag { color: rgba(255,254,248,.42) !important; font-family: var(--rm-mono) !important; }
body.hp-student-remake .sb-user { border-bottom-color: var(--rm-line-dark) !important; }
body.hp-student-remake .sb-av { border-radius: 50% !important; background: var(--rm-signal) !important; color: var(--rm-ink) !important; border: 0 !important; }
body.hp-student-remake .sb-sec { color: rgba(255,254,248,.32) !important; font-family: var(--rm-mono) !important; }
body.hp-student-remake .ni { border-left: 0 !important; border-right: 3px solid transparent !important; color: rgba(255,254,248,.48) !important; }
body.hp-student-remake .ni:hover { color: var(--rm-white) !important; background: rgba(255,255,255,.04) !important; }
body.hp-student-remake .ni.active { color: var(--rm-white) !important; background: rgba(201,255,61,.09) !important; border-right-color: var(--rm-signal) !important; }
body.hp-student-remake .sb-foot { border-top-color: var(--rm-line-dark) !important; }
body.hp-student-remake .main { background: var(--rm-paper) !important; }
body.hp-student-remake .topbar { min-height: 72px !important; background: rgba(242,240,231,.91) !important; color: var(--rm-ink) !important; border-bottom: 1px solid var(--rm-line) !important; backdrop-filter: blur(14px); }
body.hp-student-remake .topbar h1 { color: var(--rm-ink) !important; font: 400 1.75rem/1 var(--rm-display) !important; }
body.hp-student-remake .content { padding: clamp(1.2rem, 3vw, 2.7rem) !important; }
body.hp-student-remake .welcome { min-height: 230px; padding: 2.2rem !important; background: var(--rm-sky) !important; border: 1px solid var(--rm-ink) !important; border-radius: 0 !important; color: var(--rm-ink) !important; box-shadow: 10px 10px 0 rgba(17,18,15,.14); }
body.hp-student-remake .welcome h2 { color: var(--rm-ink) !important; font: 400 clamp(2.3rem, 4vw, 4.6rem)/.95 var(--rm-display) !important; letter-spacing: -.05em; }
body.hp-student-remake .welcome p { color: rgba(17,18,15,.66) !important; }
body.hp-student-remake .streak { border-radius: 0 !important; background: var(--rm-ink) !important; color: var(--rm-white) !important; }
body.hp-student-remake .course-card,
body.hp-student-remake .set-card,
body.hp-student-remake .ticket-card,
body.hp-student-remake .profile-card,
body.hp-student-remake .card {
  background: var(--rm-white) !important;
  border: 1px solid var(--rm-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.hp-student-remake .course-card:hover { border-color: var(--rm-ink) !important; transform: translateY(-3px) !important; box-shadow: 7px 7px 0 var(--rm-signal) !important; }
body.hp-student-remake .cc-top { background: var(--rm-ink) !important; }
body.hp-student-remake .badge,
body.hp-student-remake .tag { border-radius: 0 !important; }
body.hp-student-remake .btn,
body.hp-student-remake button.primary { border-radius: 0 !important; }
body.hp-student-remake .btn-gold { background: var(--rm-ink) !important; color: var(--rm-white) !important; }
body.hp-student-remake .btn-gold:hover { background: var(--rm-coral) !important; color: var(--rm-ink) !important; }
body.hp-student-remake input,
body.hp-student-remake textarea,
body.hp-student-remake select { border-radius: 0 !important; }
body.hp-student-remake .modal,
body.hp-student-remake .mbox { border-radius: 0 !important; }
body.hp-student-remake .vscreen { border-radius: 0 !important; }
body.hp-student-remake .calc-panel { border-radius: 0 !important; }

/* ───────────────────────────── ADMIN ─────────────────────────────── */

body.hp-admin-remake {
  --navy: var(--rm-ink);
  --navy2: #181a16;
  --gold: var(--rm-signal);
  --gold2: var(--rm-signal-strong);
  --cream: var(--rm-paper);
  background: var(--rm-paper) !important;
  color: var(--rm-ink) !important;
}

body.hp-admin-remake .x9-shell { background: var(--rm-paper) !important; }
body.hp-admin-remake .x9-side { width: 260px !important; background: var(--rm-ink) !important; border-right: 1px solid var(--rm-line-dark) !important; }
body.hp-admin-remake .x9-brand { color: var(--rm-white) !important; font: 400 1.8rem/1 var(--rm-display) !important; letter-spacing: -.05em !important; }
body.hp-admin-remake .x9-brand span { color: var(--rm-signal) !important; }
body.hp-admin-remake .x9-sub { color: rgba(255,254,248,.38) !important; font-family: var(--rm-mono) !important; }
body.hp-admin-remake ._x-ni { border-radius: 0 !important; color: rgba(255,254,248,.5) !important; border-left: 2px solid transparent; }
body.hp-admin-remake ._x-ni:hover { color: var(--rm-white) !important; background: rgba(255,255,255,.04) !important; }
body.hp-admin-remake ._x-ni.active { color: var(--rm-white) !important; background: rgba(201,255,61,.09) !important; border-left-color: var(--rm-signal); }
body.hp-admin-remake .x9-main { background: var(--rm-paper) !important; }
body.hp-admin-remake .x9-head { min-height: 72px; background: rgba(242,240,231,.92) !important; border-bottom: 1px solid var(--rm-line) !important; backdrop-filter: blur(14px); }
body.hp-admin-remake .x9-head h2 { color: var(--rm-ink) !important; font: 400 2rem/1 var(--rm-display) !important; }
body.hp-admin-remake .x9-head > div:first-child > div { color: var(--rm-muted) !important; }
body.hp-admin-remake .x9-card,
body.hp-admin-remake .x9-stat { background: var(--rm-white) !important; border: 1px solid var(--rm-line) !important; border-radius: 0 !important; box-shadow: none !important; }
body.hp-admin-remake .x9-stat:nth-child(2n) { background: var(--rm-white) !important; }
body.hp-admin-remake .x9-label,
body.hp-admin-remake .x9-note { color: var(--rm-muted) !important; }
body.hp-admin-remake .x9-value { color: var(--rm-ink) !important; font: 400 2.5rem/1 var(--rm-display) !important; }
body.hp-admin-remake .x9-card-head { background: transparent !important; border-bottom: 1px solid var(--rm-line) !important; }
body.hp-admin-remake .x9-card-head h3 { color: var(--rm-ink) !important; }
body.hp-admin-remake .x9-table th { color: var(--rm-muted) !important; border-color: var(--rm-line) !important; font-family: var(--rm-mono) !important; }
body.hp-admin-remake .x9-table td { color: var(--rm-ink) !important; border-color: var(--rm-line) !important; }
body.hp-admin-remake .x9-table tr:hover td { background: var(--rm-signal-soft) !important; }
body.hp-admin-remake .x9-input,
body.hp-admin-remake .x9-select { background: var(--rm-paper) !important; color: var(--rm-ink) !important; border-color: var(--rm-line) !important; border-radius: 0 !important; }
body.hp-admin-remake .btn { border-radius: 0 !important; }
body.hp-admin-remake .btn-gold { background: var(--rm-ink) !important; color: var(--rm-white) !important; }
body.hp-admin-remake .btn-ghost { color: var(--rm-ink) !important; border-color: var(--rm-line) !important; }
body.hp-admin-remake .badge,
body.hp-admin-remake .x9-pill { border-radius: 0 !important; }
body.hp-admin-remake #admin-gate { background: var(--rm-paper) !important; }
body.hp-admin-remake .gate-box { background: var(--rm-white) !important; color: var(--rm-ink) !important; border: 1px solid var(--rm-ink) !important; border-radius: 0 !important; box-shadow: 12px 12px 0 var(--rm-signal) !important; }

/* Admin fragment loaded inside index.html */
.hp-admin-embed { background: var(--rm-paper) !important; color: var(--rm-ink) !important; }
.hp-admin-embed .x9-side { background: var(--rm-ink) !important; border-right-color: var(--rm-line-dark) !important; }
.hp-admin-embed .x9-brand { color: var(--rm-white) !important; font: 400 1.8rem/1 var(--rm-display) !important; }
.hp-admin-embed .x9-brand span { color: var(--rm-signal) !important; }
.hp-admin-embed .x9-sub { color: rgba(255,254,248,.38) !important; font-family: var(--rm-mono) !important; }
.hp-admin-embed ._x-ni { border-radius: 0 !important; color: rgba(255,254,248,.5) !important; }
.hp-admin-embed ._x-ni.active,
.hp-admin-embed ._x-ni:hover { color: var(--rm-white) !important; background: rgba(201,255,61,.09) !important; border-left-color: var(--rm-signal) !important; }
.hp-admin-embed .x9-main { background: var(--rm-paper) !important; }
.hp-admin-embed .x9-head h2 { color: var(--rm-ink) !important; font: 400 2rem/1 var(--rm-display) !important; }
.hp-admin-embed .x9-card,
.hp-admin-embed .x9-stat,
.hp-admin-embed .x9-form { background: var(--rm-white) !important; color: var(--rm-ink) !important; border: 1px solid var(--rm-line) !important; border-radius: 0 !important; }
.hp-admin-embed .x9-stat:nth-child(2n) { background: var(--rm-white) !important; }
.hp-admin-embed .x9-label,
.hp-admin-embed .x9-note { color: var(--rm-muted) !important; }
.hp-admin-embed .x9-value { color: var(--rm-ink) !important; font: 400 2.5rem/1 var(--rm-display) !important; }
.hp-admin-embed .x9-card-head,
.hp-admin-embed .x9-form-head { border-bottom-color: var(--rm-line) !important; }
.hp-admin-embed .x9-table th,
.hp-admin-embed .x9-table td { color: var(--rm-ink) !important; border-color: var(--rm-line) !important; }
.hp-admin-embed .x9-input,
.hp-admin-embed .x9-select { background: var(--rm-paper) !important; color: var(--rm-ink) !important; border-color: var(--rm-line) !important; border-radius: 0 !important; }
.hp-admin-embed .x9-card-body [style*="color:rgba(255,255,255"],
body.hp-admin-remake .x9-card-body [style*="color:rgba(255,255,255"] { color: rgba(17,18,15,.62) !important; }
.hp-admin-embed .x9-card-body [style*="background:rgba(255,255,255,.04"],
.hp-admin-embed .x9-card-body [style*="background:rgba(255,255,255,0.03"],
body.hp-admin-remake .x9-card-body [style*="background:rgba(255,255,255,.04"],
body.hp-admin-remake .x9-card-body [style*="background:rgba(255,255,255,0.03"] { background: var(--rm-paper) !important; border-color: var(--rm-line) !important; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .rm-film { height: auto; }
  .rm-film-sticky { position: relative; height: auto; min-height: 100vh; }
  .rm-film-step { position: relative; inset: auto; opacity: 1; transform: none; min-height: 70vh; }
  .rm-film-step:not(.is-active) { display: none; }
}

/* Responsive */
@media (max-width: 1100px) {
  .rm-nav { grid-template-columns: 1fr auto; }
  #view-marketing .rm-nav-links { display: none !important; }
  .rm-hero { grid-template-columns: 1fr; padding-top: 9rem; }
  .rm-hero-visual { min-height: 58vh; border-top: 1px solid var(--rm-line-dark); }
  .rm-practice-window { min-height: 520px; margin: 4rem auto; }
  .rm-scroll-cue { display: none; }
  .rm-film-sticky { grid-template-columns: 1fr 1fr; }
  .rm-course-row { grid-template-columns: 60px 1fr auto; }
  .rm-course-copy { grid-column: 2 / -1; }
  .rm-about { grid-template-columns: 1fr; }
  .rm-about-figure { min-height: 520px; }
  .hp-toc { display: none; }
}

@media (max-width: 820px) {
  .rm-nav { height: 64px !important; padding: 0 1rem !important; }
  .rm-nav-actions .rm-nav-signin { display: none; }
  .rm-nav-actions .rm-button { min-height: 38px; padding: 0 .75rem; }
  .rm-brand-text { display: none; }
  .rm-hero { padding: 8.5rem 1rem 1rem; }
  .rm-hero::before { background-size: 64px 64px; }
  .rm-hero h1 { font-size: clamp(3.75rem, 16vw, 7rem); }
  .rm-hero-visual { min-height: 52vh; border-left: 1px solid var(--rm-line-dark); }
  .rm-practice-window { width: calc(100% - 1.4rem); min-height: 0; margin: 3rem auto 4.5rem; border-radius: 13px; box-shadow: 7px 7px 0 var(--rm-signal); transform: none; }
  .rm-window-bar { grid-template-columns: 1fr auto; }
  .rm-window-bar > strong { display: none; }
  .rm-practice-body { min-height: 680px; grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .rm-question-pane { min-height: 390px; border-right: 0; border-bottom: 1px solid rgba(17,18,15,.2); }
  .rm-question-label { margin-top: 1.2rem; }
  .rm-graph-pane { min-height: 290px; }
  .rm-practice-dock { align-items: flex-start; flex-direction: column; justify-content: center; line-height: 1.25; }
  .rm-intro-band { grid-template-columns: 1fr; padding: 6rem 1rem; }
  .rm-intro-copy { font-size: clamp(2.5rem, 11vw, 5rem); }
  .rm-film { height: 470vh; }
  .rm-film-sticky { top: 64px; height: calc(100svh - 64px); }
  .rm-film-sticky { grid-template-columns: 1fr; grid-template-rows: .82fr 1.18fr; }
  .rm-film-copy { border-right: 0; border-bottom: 1px solid var(--rm-line-dark); }
  .rm-film-index { left: 1rem; top: 5rem; }
  .rm-film-step { padding: 8rem 1rem 2rem; justify-content: flex-end; }
  .rm-film-step h2 { font-size: clamp(2.5rem, 12vw, 4.6rem); }
  .rm-film-step p { margin-top: .8rem; font-size: .88rem; line-height: 1.5; }
  .rm-stage-readout { width: calc(100% - 2rem); right: 1rem; bottom: 1rem; }
  .rm-film-device { width: calc(100% - 2rem); min-height: 350px; border-radius: 12px; box-shadow: 8px 8px 0 color-mix(in srgb, var(--stage-color, var(--rm-signal)) 84%, #11120f); }
  .rm-film-scenes { min-height: 304px; }
  .rm-film-scene { padding: 1rem; }
  .rm-scene-side strong { font-size: clamp(1.8rem, 8vw, 3rem); }
  .rm-scene-side p { display: none; }
  .rm-skill-map { margin-top: .8rem; }
  .rm-skill-map > div { min-height: 44px; padding: .45rem .55rem; font-size: .55rem; }
  .rm-equation-card { min-height: 180px; padding: 1rem; }
  .rm-equation-card p { font-size: clamp(2rem, 10vw, 4rem); }
  .rm-lesson-steps span { min-height: 56px; padding: .45rem; font-size: 0; }
  .rm-lesson-steps i { margin: auto; }
  .rm-worked-example { padding: .75rem; gap: .65rem; }
  .rm-worked-prompt { padding-bottom: .65rem; }
  .rm-worked-prompt > span { margin-bottom: .3rem; font-size: .48rem; }
  .rm-worked-prompt strong { font-size: clamp(1.2rem, 5vw, 1.8rem); }
  .rm-worked-steps > div { min-height: 115px; padding: .55rem; }
  .rm-worked-steps i { width: 22px; height: 22px; font-size: .5rem; }
  .rm-worked-steps span { gap: .25rem; font-size: .52rem; }
  .rm-worked-steps b { font-size: clamp(.9rem, 3vw, 1.25rem); }
  .rm-scene-practice { grid-template-columns: .9fr 1.1fr; }
  .rm-mini-question { padding: .8rem; }
  .rm-mini-question strong { margin-top: .8rem; font-size: 1.2rem; }
  .rm-mini-question > p { display: none; }
  .rm-vertex-readout { padding: .5rem 0; }
  .rm-vertex-readout output { font-size: 1.2rem; }
  .rm-vertex-controls button { min-height: 34px; }
  .rm-film-check { min-height: 36px; }
  .rm-mini-graph svg { min-height: 220px; }
  .rm-exam-grid { gap: .35rem; }
  .rm-exam-grid span { min-width: 0; }
  .rm-exam-note { min-height: 62px; padding: .6rem; }
  .rm-film-progress { top: 5rem; bottom: 2rem; right: .45rem; }
  .rm-proof-strip { grid-template-columns: 1fr; }
  .rm-proof-item { min-height: 130px; border-right: 0; border-bottom: 1px solid var(--rm-ink); }
  .rm-section { padding: 6rem 1rem; }
  .rm-section-head { grid-template-columns: 1fr; gap: 1.4rem; margin-bottom: 4rem; }
  .rm-course-row { grid-template-columns: 45px 1fr; padding: 1.7rem 0; }
  .rm-course-copy,
  .rm-course-meta { grid-column: 2; align-items: flex-start; }
  .rm-course-meta { min-width: 0; }
  .rm-course-note { flex-direction: column; }
  .rm-map-grid { grid-template-columns: 1fr; }
  .rm-score-map { min-height: 360px; padding: .8rem; }
  .rm-about { padding: 6rem 1rem; }
  .rm-about-figure { min-height: 420px; }
  .rm-about-points { grid-template-columns: 1fr; }
  .rm-about-point { border-right: 0 !important; padding: 1.2rem 0 !important; }
  .rm-quotes { grid-template-columns: 1fr; }
  .rm-quote { min-height: 300px; border-right: 0; border-bottom: 1px solid var(--rm-line); }
  .rm-faq summary { grid-template-columns: 34px 1fr auto; gap: .7rem; }
  .rm-faq-answer { padding-left: 34px; }
  .rm-final { padding: 7rem 1rem 3rem; }
  .rm-final h2 { font-size: clamp(4rem, 20vw, 7rem); }
  .rm-final-note { width: 100%; margin: .8rem 0 0; }
  .rm-footer { grid-template-columns: 1fr 1fr; padding: 3rem 1rem 1.5rem !important; gap: 2.5rem 1rem; }
  .rm-footer > div:first-child { grid-column: 1 / -1; }
  .rm-footer-bottom { flex-direction: column; gap: .5rem; }
  body.hp-page::before,
  body.hp-products-page::before,
  body.hp-support-page::before,
  body.hp-auth-flow::before { background-size: 64px 64px; }
  .hp-header,
  body.hp-products-page > header { padding: 0 1rem !important; }
  .hp-nav { gap: 1rem !important; }
  .hp-nav a:nth-child(2) { display: none; }
  .hp-main { width: calc(100% - 2rem) !important; padding-top: 4.5rem !important; }
  .hp-main > h1 { font-size: clamp(3.7rem, 18vw, 6rem) !important; }
  body.hp-products-page .hero { padding: 8rem 1rem 4rem !important; }
  body.hp-products-page .courses-section,
  body.hp-products-page .features-section,
  body.hp-products-page .guarantee { padding: 5rem 1rem !important; }
  body.hp-products-page .courses-grid,
  body.hp-products-page .features-grid { grid-template-columns: 1fr !important; }
  body.hp-products-page .course-card { min-height: 0; }
  body.hp-support-page,
  body.hp-auth-flow { padding-left: 1rem !important; padding-right: 1rem !important; }
  body.hp-support-page .cats { grid-template-columns: 1fr !important; }
  body.hp-support-page .card,
  body.hp-auth-flow .card { box-shadow: 7px 7px 0 var(--rm-coral) !important; }
  body.hp-auth-flow .card { box-shadow-color: var(--rm-signal) !important; }
  body.hp-student-remake .sidebar { width: 100% !important; }
  body.hp-admin-remake .x9-side { width: 100% !important; }
}

@media (max-width: 520px) {
  .rm-nav-actions .rm-button { font-size: .6rem; }
  .rm-hero-actions { flex-direction: column; align-items: stretch; }
  .rm-button { width: 100%; }
  .rm-visual-caption { font-size: .56rem; }
  .rm-about-figure { min-height: 360px; }
  .rm-footer { grid-template-columns: 1fr; }
  .rm-footer > div:first-child,
  .rm-footer-bottom { grid-column: 1; }
  .row-2,
  .form-row-2 { grid-template-columns: 1fr !important; }
}
