:root {
  --ink: #0b0c0b;
  --ink-soft: #171917;
  --paper: #f2f0e8;
  --paper-bright: #faf9f4;
  --muted: #706f68;
  --muted-dark: #a5a79f;
  --line: rgba(11, 12, 11, 0.12);
  --line-dark: rgba(255, 255, 255, 0.12);
  --lime: #dfff72;
  --lime-deep: #9de85b;
  --mint: #7df2c7;
  --violet: #9d8cff;
  --coral: #ff836f;
  --blue: #78b8ff;
  --radius-xl: 40px;
  --radius-lg: 28px;
  --radius-md: 20px;
  --shell: min(1240px, calc(100vw - 48px));
  --ease: cubic-bezier(0.32, 0.72, 0, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Avenir Next", "Segoe UI", sans-serif;
  --font-serif: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  background: var(--ink);
}

body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body.menu-open,
body.dialog-open {
  overflow: hidden;
}

button,
input {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button {
  color: inherit;
}

button:focus-visible,
a:focus-visible,
input:focus-visible {
  outline: 3px solid var(--violet);
  outline-offset: 4px;
}

img,
svg {
  display: block;
}

p,
h1,
h2,
h3,
h4 {
  margin: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

.page-shell {
  width: var(--shell);
  margin: 0 auto;
}

.dark-section {
  color: #f8f8f2;
  background: var(--ink);
}

.light-section {
  color: var(--ink);
  background: var(--paper);
}

.noise {
  position: fixed;
  inset: 0;
  z-index: 70;
  pointer-events: none;
  opacity: 0.035;
  mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");
}

.cursor-glow {
  position: fixed;
  top: -180px;
  left: -180px;
  width: 360px;
  height: 360px;
  z-index: 0;
  pointer-events: none;
  border-radius: 50%;
  opacity: 0;
  background: radial-gradient(circle, rgba(223, 255, 114, 0.11), rgba(223, 255, 114, 0) 68%);
  transform: translate3d(var(--cursor-x, 0), var(--cursor-y, 0), 0);
  transition: opacity 500ms var(--ease);
}

body.has-cursor .cursor-glow {
  opacity: 1;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #4d4e49;
  font-size: 11px;
  font-weight: 720;
  letter-spacing: 0.17em;
  line-height: 1;
  text-transform: uppercase;
}

.eyebrow::before {
  content: "";
  width: 22px;
  height: 1px;
  background: currentColor;
}

.eyebrow-dark {
  color: #b7b9b1;
}

.reveal {
  opacity: 0;
  transform: translate3d(0, 52px, 0);
  filter: blur(7px);
  transition:
    opacity 900ms var(--ease-out),
    transform 900ms var(--ease-out),
    filter 900ms var(--ease-out);
}

.reveal-delay-1 {
  transition-delay: 90ms;
}

.reveal-delay-2 {
  transition-delay: 180ms;
}

.reveal-now,
.reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
}

.site-header {
  position: fixed;
  top: 18px;
  left: 0;
  right: 0;
  z-index: 60;
  width: min(1120px, calc(100vw - 32px));
  margin: 0 auto;
}

.nav-shell {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 62px;
  padding: 7px 8px 7px 18px;
  color: #f7f7f1;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 999px;
  background: rgba(9, 10, 9, 0.76);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 18px 50px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(22px) saturate(140%);
  -webkit-backdrop-filter: blur(22px) saturate(140%);
  transition:
    background 500ms var(--ease),
    transform 500ms var(--ease),
    box-shadow 500ms var(--ease);
}

.site-header.is-scrolled .nav-shell {
  background: rgba(9, 10, 9, 0.9);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 18px 60px rgba(0, 0, 0, 0.28);
}

.brand {
  display: inline-flex;
  align-items: center;
  width: max-content;
  gap: 10px;
  color: inherit;
  font-size: 13px;
  font-weight: 780;
  letter-spacing: 0.19em;
}

.brand-mark {
  display: inline-flex;
  width: 27px;
  height: 27px;
}

.brand-mark svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
}

.brand-mark .mark-dot {
  fill: var(--lime);
  stroke: var(--ink);
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 31px;
}

.nav-links a {
  position: relative;
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  font-weight: 560;
  transition: color 350ms var(--ease);
}

.nav-links a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -5px;
  height: 1px;
  background: var(--lime);
  transition: right 450ms var(--ease);
}

.nav-links a:hover {
  color: #fff;
}

.nav-links a:hover::after {
  right: 0;
}

.nav-shell > .button {
  justify-self: end;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 54px;
  padding: 6px 7px 6px 22px;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font-weight: 720;
  line-height: 1;
  transition:
    transform 450ms var(--ease),
    background 450ms var(--ease),
    color 450ms var(--ease),
    box-shadow 450ms var(--ease);
}

.button:hover {
  transform: translate3d(0, -2px, 0);
}

.button:active {
  transform: scale(0.98);
}

.button-orbit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  transition: transform 520ms var(--ease);
}

.button-orbit svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.button:hover .button-orbit {
  transform: translate3d(3px, -2px, 0) scale(1.04);
}

.button-small {
  min-height: 46px;
  padding-left: 18px;
  gap: 9px;
  font-size: 12px;
}

.button-small .button-orbit {
  width: 34px;
  height: 34px;
}

.button-light {
  color: var(--ink);
  background: #f6f5ef;
}

.button-light .button-orbit {
  background: #e4e3dd;
}

.button-dark {
  color: #fff;
  background: var(--ink);
}

.button-dark .button-orbit {
  background: rgba(255, 255, 255, 0.1);
}

.button-accent {
  color: var(--ink);
  background: var(--lime);
  box-shadow: 0 18px 55px rgba(184, 238, 73, 0.12);
}

.button-accent:hover {
  background: #e8ff96;
  box-shadow: 0 20px 65px rgba(184, 238, 73, 0.2);
}

.button-accent .button-orbit {
  background: rgba(9, 10, 9, 0.11);
}

.button-large {
  min-height: 64px;
  padding-left: 28px;
  font-size: 15px;
}

.button-large .button-orbit {
  width: 50px;
  height: 50px;
}

.button-full {
  width: 100%;
  margin-top: 26px;
}

.menu-button {
  display: none;
  position: relative;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: #f6f5ef;
  cursor: pointer;
}

.menu-button span {
  position: absolute;
  left: 13px;
  width: 18px;
  height: 1.5px;
  background: var(--ink);
  transition: transform 500ms var(--ease), top 500ms var(--ease);
}

.menu-button span:first-child {
  top: 18px;
}

.menu-button span:last-child {
  top: 25px;
}

.menu-button[aria-expanded="true"] span:first-child {
  top: 22px;
  transform: rotate(45deg);
}

.menu-button[aria-expanded="true"] span:last-child {
  top: 22px;
  transform: rotate(-45deg);
}

.mobile-menu {
  display: none;
}

.hero {
  position: relative;
  min-height: 980px;
  padding: 172px 0 52px;
  overflow: hidden;
  isolation: isolate;
}

.hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 220px;
  z-index: -1;
  background: linear-gradient(to bottom, rgba(11, 12, 11, 0), var(--ink) 78%);
}

.hero-ambient {
  position: absolute;
  inset: 0;
  z-index: -2;
  overflow: hidden;
}

.ambient-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(10px);
  opacity: 0.65;
  animation: ambientFloat 12s var(--ease) infinite alternate;
}

.ambient-orb-one {
  top: -290px;
  right: -250px;
  width: 760px;
  height: 760px;
  background: radial-gradient(circle at 43% 50%, rgba(125, 242, 199, 0.21), rgba(157, 140, 255, 0.09) 44%, transparent 70%);
}

.ambient-orb-two {
  left: -270px;
  bottom: -400px;
  width: 760px;
  height: 760px;
  background: radial-gradient(circle, rgba(223, 255, 114, 0.12), rgba(255, 131, 111, 0.05) 44%, transparent 70%);
  animation-delay: -5s;
}

@keyframes ambientFloat {
  to { transform: translate3d(34px, 24px, 0) scale(1.06); }
}

.hero-grid {
  position: absolute;
  top: 0;
  right: -7vw;
  width: min(74vw, 1160px);
  height: 930px;
  fill: none;
  stroke: rgba(255, 255, 255, 0.19);
  stroke-width: 0.6;
  transform: perspective(900px) rotateY(-13deg) rotateX(7deg) rotateZ(-5deg);
  transform-origin: center;
}

.hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(520px, 1.08fr);
  align-items: center;
  gap: 68px;
}

.hero-copy {
  position: relative;
  z-index: 3;
  padding-bottom: 30px;
}

.hero h1 {
  max-width: 760px;
  margin-top: 25px;
  font-size: clamp(56px, 6vw, 96px);
  font-weight: 650;
  letter-spacing: -0.065em;
  line-height: 0.95;
  text-wrap: balance;
}

.hero-subhead {
  max-width: 650px;
  margin-top: 32px;
  color: #b9bbb3;
  font-size: clamp(18px, 1.6vw, 22px);
  letter-spacing: -0.015em;
  line-height: 1.45;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-top: 36px;
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #e8e9e2;
  font-size: 14px;
  font-weight: 620;
}

.text-link svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  transition: transform 450ms var(--ease);
}

.text-link:hover svg {
  transform: translate3d(0, 4px, 0);
}

.hero-guardrails {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 24px;
  margin-top: 32px;
  color: #858880;
  font-size: 11px;
  font-weight: 640;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.hero-guardrails span {
  position: relative;
  padding-left: 15px;
}

.hero-guardrails span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--lime);
  transform: translateY(-50%);
}

.hero-stage {
  position: relative;
  min-height: 720px;
  display: flex;
  align-items: center;
  justify-content: center;
  perspective: 1200px;
}

.stage-ring {
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 50%;
  animation: ringTurn 22s linear infinite;
}

.stage-ring::before,
.stage-ring::after {
  content: "";
  position: absolute;
  width: 9px;
  height: 9px;
  border: 2px solid var(--ink);
  border-radius: 50%;
  background: var(--lime);
}

.stage-ring::before {
  top: 17%;
  left: 9%;
}

.stage-ring::after {
  right: 12%;
  bottom: 14%;
  background: var(--violet);
}

.ring-a {
  width: 630px;
  height: 630px;
  transform: rotateX(65deg) rotateZ(-13deg);
}

.ring-b {
  width: 520px;
  height: 520px;
  border-color: rgba(223, 255, 114, 0.12);
  transform: rotateY(66deg) rotateZ(10deg);
  animation-direction: reverse;
  animation-duration: 30s;
}

@keyframes ringTurn {
  from { rotate: 0deg; }
  to { rotate: 360deg; }
}

.stage-label {
  position: absolute;
  z-index: 3;
  padding: 8px 12px;
  color: #c3c5bd;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 999px;
  background: rgba(14, 15, 14, 0.65);
  font-size: 10px;
  font-weight: 690;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  backdrop-filter: blur(12px);
  animation: labelFloat 5s var(--ease) infinite alternate;
}

.label-focus { top: 17%; left: 2%; }
.label-reason { top: 25%; right: -2%; animation-delay: -1.4s; }
.label-recall { bottom: 17%; right: 4%; animation-delay: -3s; }

@keyframes labelFloat {
  to { transform: translate3d(0, -10px, 0); }
}

.phone-shell {
  position: relative;
  z-index: 2;
  width: 354px;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 48px;
  background: linear-gradient(145deg, #4f514d, #171817 28%, #0e0f0e 68%, #3e403c);
  box-shadow:
    inset 0 1px 2px rgba(255, 255, 255, 0.35),
    inset 0 -1px 2px rgba(255, 255, 255, 0.08),
    0 70px 100px rgba(0, 0, 0, 0.46);
  transform: rotateY(-8deg) rotateX(3deg) rotateZ(1.5deg);
  transform-style: preserve-3d;
  transition: transform 900ms var(--ease-out);
}

.phone-bezel {
  padding: 6px;
  border-radius: 41px;
  background: #030403;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.phone-screen {
  min-height: 658px;
  padding: 17px 18px 22px;
  overflow: hidden;
  color: var(--ink);
  border-radius: 35px;
  background:
    radial-gradient(circle at 88% 5%, rgba(157, 140, 255, 0.17), transparent 30%),
    #f1f2ec;
}

.phone-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 7px 16px;
  font-size: 10px;
  font-weight: 720;
}

.status-icons {
  display: flex;
  align-items: end;
  gap: 3px;
}

.status-icons span {
  display: block;
  width: 3px;
  border-radius: 3px;
  background: var(--ink);
}

.status-icons span:nth-child(1) { height: 5px; }
.status-icons span:nth-child(2) { height: 8px; }
.status-icons span:nth-child(3) { width: 14px; height: 7px; border-radius: 2px; }

.app-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 4px 18px;
}

.app-topline p {
  color: #7d7f78;
  font-size: 10px;
}

.app-topline strong {
  display: block;
  margin-top: 3px;
  font-size: 13px;
  letter-spacing: -0.02em;
}

.avatar {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  color: #fff;
  border-radius: 50%;
  background: #282a27;
  font-size: 11px;
  font-weight: 700;
}

.workout-hero-card {
  padding: 18px;
  color: #f8f9f2;
  border-radius: 27px;
  background:
    radial-gradient(circle at 75% 18%, rgba(157, 140, 255, 0.22), transparent 28%),
    radial-gradient(circle at 28% 78%, rgba(223, 255, 114, 0.12), transparent 36%),
    #111310;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.11),
    0 20px 44px rgba(31, 32, 29, 0.2);
}

.workout-card-top {
  display: flex;
  justify-content: space-between;
  color: #a8aaa2;
  font-size: 9px;
  font-weight: 680;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.score-ring {
  position: relative;
  display: grid;
  place-items: center;
  width: 152px;
  height: 152px;
  margin: 15px auto 9px;
}

.score-ring svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.score-ring circle {
  fill: none;
  stroke-width: 9;
}

.score-ring-track {
  stroke: rgba(255, 255, 255, 0.08);
}

.score-ring-value {
  stroke: url(#scoreStroke);
  stroke-linecap: round;
  stroke-dasharray: 365;
  stroke-dashoffset: 80;
  animation: scorePulse 3.8s var(--ease) infinite alternate;
}

@keyframes scorePulse {
  to { stroke-dashoffset: 67; }
}

.score-ring-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
}

.score-ring-copy strong {
  font-size: 43px;
  font-weight: 580;
  letter-spacing: -0.06em;
}

.score-ring-copy span {
  margin-top: 5px;
  color: #a8aaa2;
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.workout-focus-label {
  color: var(--lime);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-align: center;
  text-transform: uppercase;
}

.workout-hero-card h2 {
  max-width: 220px;
  margin: 7px auto 14px;
  font-size: 18px;
  font-weight: 590;
  letter-spacing: -0.035em;
  line-height: 1.15;
  text-align: center;
}

.mini-start {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 42px;
  padding: 0 8px 0 15px;
  color: var(--ink);
  border: 0;
  border-radius: 999px;
  background: var(--lime);
  font-size: 10px;
  font-weight: 720;
}

.mini-start span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(11, 12, 11, 0.1);
}

.micro-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
  margin-top: 11px;
}

.micro-stats > div {
  min-height: 82px;
  padding: 12px;
  border: 1px solid rgba(11, 12, 11, 0.07);
  border-radius: 17px;
  background: rgba(255, 255, 255, 0.64);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

.micro-dot {
  display: block;
  width: 7px;
  height: 7px;
  margin-bottom: 10px;
  border-radius: 50%;
}

.micro-dot.lime { background: var(--lime-deep); }
.micro-dot.violet { background: var(--violet); }
.micro-dot.coral { background: var(--coral); }

.micro-stats p {
  color: #84867f;
  font-size: 8px;
}

.micro-stats strong {
  display: block;
  margin-top: 2px;
  font-size: 18px;
  font-weight: 630;
  letter-spacing: -0.04em;
}

.floating-card {
  position: absolute;
  z-index: 4;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(23, 25, 22, 0.72);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 30px 60px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(20px);
  animation: cardFloat 5s var(--ease) infinite alternate;
}

.floating-card-left {
  left: -15px;
  bottom: 16%;
  width: 176px;
  padding: 15px 15px 10px;
  border-radius: 20px;
}

.floating-card-left span,
.floating-card-right span {
  color: #92958d;
  font-size: 8px;
  font-weight: 680;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.floating-card-left strong {
  display: block;
  margin-top: 3px;
  color: var(--lime);
  font-size: 26px;
  font-weight: 620;
  letter-spacing: -0.05em;
}

.floating-card-left svg {
  width: 100%;
  height: 42px;
  margin-top: -3px;
  fill: none;
  stroke-linecap: round;
}

.sparkline-back {
  stroke: rgba(255, 255, 255, 0.08);
  stroke-width: 8;
}

.sparkline-front {
  stroke: var(--lime);
  stroke-width: 2;
}

.floating-card-right {
  display: flex;
  align-items: center;
  gap: 11px;
  top: 24%;
  right: -35px;
  width: 195px;
  padding: 13px;
  border-radius: 18px;
  animation-delay: -2.4s;
}

.floating-card-right strong {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  font-weight: 590;
}

.pulse-dot {
  position: relative;
  flex: 0 0 auto;
  width: 31px;
  height: 31px;
  border-radius: 50%;
  background: rgba(223, 255, 114, 0.1);
}

.pulse-dot::before,
.pulse-dot::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.pulse-dot::before {
  width: 9px;
  height: 9px;
  background: var(--lime);
}

.pulse-dot::after {
  width: 19px;
  height: 19px;
  border: 1px solid rgba(223, 255, 114, 0.36);
  animation: pulse 2.2s var(--ease) infinite;
}

@keyframes pulse {
  0% { opacity: 1; transform: translate(-50%, -50%) scale(.65); }
  80%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(1.4); }
}

@keyframes cardFloat {
  to { transform: translate3d(0, -12px, 0); }
}

.hero-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding-top: 26px;
  color: #6c6e67;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 10px;
  font-weight: 720;
  letter-spacing: 0.18em;
}

.hero-footer i {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #3c3e39;
}

.manifesto {
  padding: 180px 0 190px;
}

.manifesto-grid {
  display: grid;
  grid-template-columns: 0.35fr 1fr;
  gap: 80px;
  align-items: start;
}

.manifesto-copy h2 {
  max-width: 960px;
  font-size: clamp(54px, 6.7vw, 104px);
  font-weight: 610;
  letter-spacing: -0.065em;
  line-height: 0.98;
}

.manifesto-copy h2 em {
  color: #696a65;
  font-family: var(--font-serif);
  font-weight: 400;
}

.manifesto-copy > p {
  max-width: 680px;
  margin: 44px 0 0 auto;
  color: #575852;
  font-size: clamp(19px, 2vw, 26px);
  letter-spacing: -0.025em;
  line-height: 1.45;
}

.workout-section {
  padding: 150px 0 170px;
}

.section-heading {
  margin-bottom: 78px;
}

.split-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(270px, 0.36fr);
  gap: 70px;
  align-items: end;
}

.section-heading h2 {
  max-width: 850px;
  margin-top: 22px;
  font-size: clamp(48px, 5.5vw, 84px);
  font-weight: 620;
  letter-spacing: -0.06em;
  line-height: 0.99;
}

.heading-aside {
  max-width: 390px;
  padding-bottom: 9px;
  color: #9b9e96;
  font-size: 17px;
  line-height: 1.55;
}

.workout-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-flow: dense;
  gap: 16px;
}

.workout-card {
  grid-column: span 4;
  min-height: 550px;
  padding: 7px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 34px;
  background: rgba(255, 255, 255, 0.035);
  transition: transform 600ms var(--ease), border-color 600ms var(--ease);
}

.workout-card:hover {
  transform: translate3d(0, -7px, 0);
  border-color: rgba(255, 255, 255, 0.18);
}

.workout-card-large {
  grid-column: span 8;
}

.workout-card-wide {
  grid-column: span 8;
  min-height: 430px;
}

.card-inner {
  position: relative;
  height: 100%;
  min-height: inherit;
  padding: 27px;
  overflow: hidden;
  border-radius: 27px;
  background: #141613;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
}

.workout-card-large .card-inner {
  background:
    radial-gradient(circle at 78% 30%, rgba(223, 255, 114, 0.1), transparent 37%),
    #141613;
}

.card-head {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.card-index {
  color: #70736b;
  font-size: 10px;
  font-weight: 730;
  letter-spacing: 0.13em;
}

.skill-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 720;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.skill-pill::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
}

.skill-lime { color: var(--lime); }
.skill-violet { color: var(--violet); }
.skill-coral { color: var(--coral); }
.skill-blue { color: var(--blue); }

.card-copy {
  position: relative;
  z-index: 2;
  max-width: 470px;
  margin-top: auto;
}

.card-copy h3 {
  font-size: clamp(28px, 3vw, 46px);
  font-weight: 610;
  letter-spacing: -0.05em;
  line-height: 1.02;
}

.card-copy p {
  max-width: 470px;
  margin-top: 17px;
  color: #9a9d95;
  font-size: 15px;
  line-height: 1.55;
}

.focus-visual {
  position: absolute;
  top: 92px;
  right: 7%;
  width: 54%;
  height: 330px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.025);
  transform: rotate(2deg);
}

.focus-line {
  position: absolute;
  left: -10%;
  width: 120%;
  height: 1px;
  background: rgba(255, 255, 255, 0.09);
  transform: rotate(-10deg);
}

.focus-line span {
  display: block;
  width: 13px;
  height: 13px;
  margin-top: -6px;
  border: 2px solid #141613;
  border-radius: 50%;
  background: var(--lime);
  animation: focusMove 6s var(--ease) infinite alternate;
}

.line-one { top: 64px; }
.line-two { top: 134px; }
.line-three { top: 204px; }
.line-four { top: 274px; }
.line-two span { animation-delay: -1.8s; background: var(--mint); }
.line-three span { animation-delay: -3.3s; background: var(--violet); }
.line-four span { animation-delay: -4.5s; background: var(--coral); }

@keyframes focusMove {
  from { transform: translateX(24px); }
  to { transform: translateX(340px); }
}

.focus-window {
  position: absolute;
  left: 50%;
  top: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 135px;
  height: 135px;
  border: 1px solid rgba(223, 255, 114, 0.35);
  border-radius: 50%;
  background: rgba(20, 22, 19, 0.82);
  box-shadow: 0 0 70px rgba(223, 255, 114, 0.08);
  transform: translate(-50%, -50%);
}

.focus-window span {
  color: #8e9189;
  font-size: 8px;
  font-weight: 690;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.focus-window strong {
  margin-top: 7px;
  font-size: 26px;
  font-weight: 570;
  letter-spacing: -0.04em;
}

.workout-card-large .card-copy {
  position: absolute;
  left: 27px;
  bottom: 28px;
  width: 42%;
}

.workout-card-large .card-copy h3 {
  font-size: clamp(34px, 4vw, 55px);
}

.logic-visual {
  position: relative;
  width: 100%;
  height: 265px;
  margin-top: 34px;
}

.logic-visual svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: rgba(157, 140, 255, 0.35);
  stroke-dasharray: 4 6;
  stroke-width: 1.4;
}

.logic-node {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 74px;
  height: 74px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 24px;
  background: #1b1d19;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
  font-size: 18px;
  font-weight: 650;
  animation: nodeFloat 4s var(--ease) infinite alternate;
}

.node-a { top: 12px; left: 18px; }
.node-b { top: 47px; right: 12px; animation-delay: -1.3s; }
.node-c { left: 50%; bottom: 5px; color: var(--violet); transform: translateX(-50%); animation-delay: -2.7s; }

@keyframes nodeFloat {
  to { translate: 0 -7px; }
}

.recall-visual {
  position: relative;
  width: 100%;
  height: 260px;
  margin-top: 40px;
}

.recall-core {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 132px;
  height: 132px;
  border: 1px solid rgba(255, 131, 111, 0.38);
  border-radius: 50%;
  background: rgba(255, 131, 111, 0.06);
  box-shadow: 0 0 80px rgba(255, 131, 111, 0.07);
  transform: translate(-50%, -50%);
}

.recall-core span {
  color: #a5a79f;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.recall-core strong {
  margin-top: 6px;
  font-size: 19px;
  font-weight: 580;
}

.memory-chip {
  position: absolute;
  padding: 9px 12px;
  color: #a9aca4;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.025);
  font-size: 9px;
  font-weight: 670;
  animation: memoryOrbit 6s var(--ease) infinite alternate;
}

.chip-one { top: 20px; left: 15%; }
.chip-two { top: 47%; right: 3%; animation-delay: -2s; }
.chip-three { left: 8%; bottom: 14px; animation-delay: -4s; }

@keyframes memoryOrbit {
  to { transform: translate3d(7px, -9px, 0) rotate(2deg); }
}

.wide-card-layout {
  display: grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 38px;
  align-items: stretch;
}

.wide-copy {
  display: flex;
  flex-direction: column;
}

.wide-copy .card-copy {
  margin-top: auto;
}

.writing-visual {
  position: relative;
  min-height: 365px;
  padding: 70px 32px 30px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 24px;
  background: #f0f1eb;
  transform: rotate(-1deg);
}

.writing-toolbar {
  position: absolute;
  top: 21px;
  left: 22px;
  display: flex;
  gap: 6px;
}

.writing-toolbar span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #c5c7bf;
}

.writing-visual p {
  height: 18px;
  margin: 14px 0;
  overflow: hidden;
}

.typed {
  display: block;
  height: 9px;
  border-radius: 999px;
  background: #292b27;
  transform-origin: left;
  animation: typeLine 4.6s steps(8, end) infinite;
}

.typed-one { width: 88%; }
.typed-two { width: 72%; animation-delay: -1.7s; }
.typed-three { width: 43%; animation-delay: -3.2s; }

@keyframes typeLine {
  0%, 15% { transform: scaleX(0.05); opacity: .3; }
  62%, 100% { transform: scaleX(1); opacity: 1; }
}

.writing-note {
  position: absolute;
  right: 18px;
  bottom: 20px;
  max-width: 190px;
  padding: 13px 16px;
  color: #312f2d;
  border: 1px solid rgba(104, 92, 222, 0.16);
  border-radius: 15px;
  background: #dfdbff;
  box-shadow: 0 16px 30px rgba(62, 48, 144, 0.12);
  font-size: 10px;
  font-weight: 630;
  transform: rotate(2deg);
}

.adaptive-section {
  padding: 185px 0;
}

.adaptive-layout {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(470px, 1.18fr);
  gap: 95px;
  align-items: center;
}

.adaptive-copy h2 {
  max-width: 680px;
  margin-top: 22px;
  font-size: clamp(52px, 6vw, 86px);
  font-weight: 620;
  letter-spacing: -0.06em;
  line-height: 0.98;
}

.adaptive-copy > p:not(.eyebrow) {
  max-width: 570px;
  margin-top: 30px;
  color: #60615b;
  font-size: 19px;
  line-height: 1.52;
}

.adaptive-list {
  margin-top: 48px;
  border-top: 1px solid var(--line);
}

.adaptive-item {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 18px;
  width: 100%;
  padding: 23px 0;
  color: #777873;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  cursor: pointer;
  text-align: left;
  transition: color 450ms var(--ease), transform 450ms var(--ease);
}

.adaptive-item:hover,
.adaptive-item.active {
  color: var(--ink);
  transform: translate3d(7px, 0, 0);
}

.adaptive-item > span {
  padding-top: 3px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
}

.adaptive-item strong {
  font-size: 16px;
  font-weight: 680;
}

.adaptive-item p {
  margin-top: 6px;
  color: #797a74;
  font-size: 13px;
}

.adaptive-stage {
  position: relative;
}

.adaptive-stage::before {
  content: "";
  position: absolute;
  inset: 9% -5% -7% 15%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(157, 140, 255, 0.23), rgba(223, 255, 114, 0.08) 38%, transparent 70%);
  filter: blur(20px);
}

.adaptive-shell {
  position: relative;
  padding: 8px;
  border: 1px solid rgba(11, 12, 11, 0.08);
  border-radius: 40px;
  background: rgba(11, 12, 11, 0.05);
  box-shadow: 0 50px 100px rgba(22, 23, 20, 0.12);
}

.adaptive-core {
  min-height: 650px;
  padding: 34px;
  overflow: hidden;
  border-radius: 32px;
  background:
    radial-gradient(circle at 85% 0%, rgba(157, 140, 255, 0.19), transparent 32%),
    #111310;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.09);
}

.adaptive-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #9b9e96;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.live-indicator {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.live-indicator i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 0 0 5px rgba(223, 255, 114, 0.09);
}

.adaptive-score {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-top: 58px;
}

.adaptive-score span {
  color: #7e8178;
  font-size: 12px;
}

.adaptive-score strong {
  color: #f5f6ef;
  font-size: 58px;
  font-weight: 560;
  letter-spacing: -0.06em;
  line-height: .8;
}

.adaptive-track {
  height: 5px;
  margin-top: 23px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
}

.adaptive-track i {
  display: block;
  width: 86%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--mint), var(--lime));
  transition: width 700ms var(--ease);
}

.adaptive-question {
  min-height: 275px;
  margin-top: 32px;
  padding: 30px;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 25px;
  background: rgba(255, 255, 255, 0.035);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
  transition: opacity 280ms var(--ease), transform 420ms var(--ease);
}

.adaptive-question.is-changing {
  opacity: 0;
  transform: translate3d(0, 12px, 0);
}

.adaptive-kicker {
  color: var(--lime);
  font-size: 9px;
  font-weight: 720;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.adaptive-question h3 {
  max-width: 540px;
  margin-top: 18px;
  color: #f6f7f0;
  font-size: clamp(27px, 3vw, 40px);
  font-weight: 590;
  letter-spacing: -0.045em;
  line-height: 1.08;
}

.adaptive-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 28px;
}

.adaptive-tags span {
  padding: 8px 11px;
  color: #b0b2aa;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  font-size: 9px;
}

.adaptive-footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-top: 28px;
}

.adaptive-footer span {
  color: #777a72;
  font-size: 10px;
}

.adaptive-footer svg {
  width: 180px;
  height: 50px;
  fill: none;
  stroke: var(--violet);
  stroke-linecap: round;
  stroke-width: 2;
}

.demo-section {
  padding: 175px 0;
}

.demo-layout {
  display: grid;
  grid-template-columns: .76fr 1.24fr;
  gap: 100px;
  align-items: center;
}

.demo-intro {
  position: sticky;
  top: 140px;
}

.demo-intro h2 {
  max-width: 600px;
  margin-top: 22px;
  font-size: clamp(47px, 5vw, 76px);
  font-weight: 610;
  letter-spacing: -0.06em;
  line-height: 1;
}

.demo-intro > p:not(.eyebrow) {
  max-width: 500px;
  margin-top: 28px;
  color: #a3a59e;
  font-size: 18px;
  line-height: 1.55;
}

.demo-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 30px;
}

.demo-meta span {
  padding: 9px 12px;
  color: #aeb0a9;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  font-size: 9px;
  font-weight: 660;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.exercise-shell {
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 40px;
  background: rgba(255, 255, 255, 0.04);
}

.exercise-core {
  min-height: 640px;
  padding: 42px;
  color: var(--ink);
  border-radius: 32px;
  background: var(--paper-bright);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.exercise-progress {
  display: flex;
  justify-content: space-between;
  color: #777873;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.exercise-progress-track {
  height: 4px;
  margin-top: 14px;
  overflow: hidden;
  border-radius: 999px;
  background: #dedfd8;
}

.exercise-progress-track i {
  display: block;
  width: 25%;
  height: 100%;
  background: var(--ink);
}

.exercise-prompt {
  margin-top: 46px;
  font-size: clamp(25px, 2.5vw, 38px);
  font-weight: 580;
  letter-spacing: -0.04em;
  line-height: 1.18;
}

.exercise-options {
  display: grid;
  gap: 10px;
  margin-top: 34px;
}

.exercise-options button {
  display: grid;
  grid-template-columns: 40px 1fr;
  align-items: center;
  gap: 13px;
  width: 100%;
  min-height: 58px;
  padding: 9px 16px 9px 9px;
  color: #41423e;
  border: 1px solid rgba(11, 12, 11, 0.09);
  border-radius: 17px;
  background: #f0efe9;
  cursor: pointer;
  text-align: left;
  transition:
    background 430ms var(--ease),
    border-color 430ms var(--ease),
    transform 430ms var(--ease),
    color 430ms var(--ease);
}

.exercise-options button:hover {
  transform: translate3d(5px, 0, 0);
  border-color: rgba(11, 12, 11, 0.24);
  background: #f7f6f0;
}

.exercise-options button span {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: #fff;
  font-size: 11px;
  font-weight: 720;
}

.exercise-options button.is-correct {
  color: #192215;
  border-color: rgba(110, 166, 63, 0.35);
  background: #eaf7dc;
}

.exercise-options button.is-correct span {
  color: #27391b;
  background: #cef1a7;
}

.exercise-options button.is-wrong {
  border-color: rgba(216, 78, 55, 0.28);
  background: #fae6e1;
}

.exercise-options button:disabled {
  cursor: default;
}

.exercise-result {
  display: grid;
  grid-template-columns: 45px 1fr;
  gap: 15px;
  max-height: 0;
  margin-top: 0;
  padding: 0 16px;
  overflow: hidden;
  opacity: 0;
  border: 1px solid transparent;
  border-radius: 17px;
  transform: translate3d(0, 12px, 0);
  transition:
    max-height 700ms var(--ease),
    margin 500ms var(--ease),
    padding 500ms var(--ease),
    opacity 500ms var(--ease),
    transform 600ms var(--ease),
    border-color 500ms var(--ease);
}

.exercise-result.is-visible {
  max-height: 190px;
  margin-top: 18px;
  padding: 16px;
  opacity: 1;
  border-color: rgba(11, 12, 11, 0.08);
  transform: translate3d(0, 0, 0);
}

.result-icon {
  display: grid;
  place-items: center;
  width: 45px;
  height: 45px;
  border-radius: 14px;
  background: var(--lime);
}

.result-icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: var(--ink);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
}

.exercise-result strong {
  font-size: 14px;
}

.exercise-result p {
  margin-top: 4px;
  color: #666761;
  font-size: 12px;
  line-height: 1.45;
}

.progress-section {
  padding: 180px 0 195px;
}

.centered-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.centered-heading h2 {
  max-width: 990px;
}

.centered-heading > p:last-child {
  max-width: 680px;
  margin-top: 26px;
  color: #64655f;
  font-size: 18px;
  line-height: 1.55;
}

.progress-stage {
  position: relative;
}

.progress-stage::before {
  content: "";
  position: absolute;
  inset: 8% 10% -8%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(157, 140, 255, 0.17), rgba(223, 255, 114, 0.1) 38%, transparent 70%);
  filter: blur(30px);
}

.progress-shell {
  position: relative;
  padding: 9px;
  border: 1px solid rgba(11, 12, 11, 0.08);
  border-radius: 43px;
  background: rgba(11, 12, 11, 0.045);
  box-shadow: 0 55px 110px rgba(35, 36, 32, 0.12);
}

.progress-dashboard {
  display: grid;
  grid-template-columns: 178px 1fr;
  min-height: 720px;
  overflow: hidden;
  border-radius: 35px;
  background: #f9faf5;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.dashboard-sidebar {
  padding: 27px 18px;
  color: #d9dbd4;
  background: #121411;
}

.mini-brand {
  margin: 4px 0 55px 10px;
}

.mini-brand .brand-mark {
  width: 30px;
  height: 30px;
}

.side-item {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  min-height: 42px;
  padding: 0 12px;
  color: #7f8279;
  border: 0;
  border-radius: 12px;
  background: transparent;
  font-size: 10px;
  text-align: left;
}

.side-item span {
  width: 7px;
  height: 7px;
  border: 1px solid currentColor;
  border-radius: 50%;
}

.side-item.active {
  color: #f2f3ec;
  background: rgba(255, 255, 255, 0.07);
}

.side-item.active span {
  border-color: var(--lime);
  background: var(--lime);
}

.dashboard-main {
  padding: 40px;
}

.dashboard-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.dashboard-header p {
  color: #8a8c85;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.dashboard-header h3 {
  margin-top: 7px;
  font-size: 29px;
  font-weight: 620;
  letter-spacing: -0.04em;
}

.dashboard-period {
  padding: 10px 12px;
  border: 1px solid rgba(11, 12, 11, 0.08);
  border-radius: 11px;
  background: #fff;
  font-size: 9px;
  font-weight: 630;
}

.dashboard-period span {
  margin-left: 10px;
  color: #8e8f89;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 12px;
  margin-top: 32px;
}

.profile-overview,
.trend-panel,
.insight-panel,
.checkup-panel {
  border: 1px solid rgba(11, 12, 11, 0.07);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 17px 42px rgba(32, 33, 29, 0.045);
}

.profile-overview {
  min-height: 398px;
  padding: 28px;
}

.profile-ring {
  position: relative;
  display: grid;
  place-items: center;
  width: 240px;
  height: 240px;
  margin: 0 auto;
}

.profile-ring svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.profile-ring circle {
  fill: none;
  stroke-linecap: round;
}

.profile-track {
  stroke: #eef0e9;
  stroke-width: 7;
}

.profile-segment {
  stroke-width: 7;
  stroke-dasharray: 590;
}

.seg-a { stroke: var(--lime-deep); stroke-dashoffset: 155; }
.seg-b { stroke: var(--violet); stroke-dashoffset: 185; }
.seg-c { stroke: var(--coral); stroke-dashoffset: 202; }

.profile-ring > div {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.profile-ring strong {
  font-size: 48px;
  font-weight: 580;
  letter-spacing: -0.065em;
  line-height: 1;
}

.profile-ring span {
  margin-top: 5px;
  color: #8a8c85;
  font-size: 8px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.profile-legend {
  display: grid;
  gap: 9px;
  margin-top: 15px;
}

.profile-legend p {
  display: grid;
  grid-template-columns: 8px 1fr auto;
  align-items: center;
  gap: 8px;
  color: #7a7c75;
  font-size: 9px;
}

.profile-legend i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
}

.legend-lime { background: var(--lime-deep); }
.legend-violet { background: var(--violet); }
.legend-coral { background: var(--coral); }
.profile-legend strong { color: var(--ink); font-size: 10px; }

.trend-panel {
  min-height: 398px;
  padding: 28px;
}

.panel-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
}

.panel-heading > div {
  display: flex;
  flex-direction: column;
}

.panel-heading span {
  color: #8d8f88;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.panel-heading strong {
  margin-top: 6px;
  font-size: 16px;
  font-weight: 640;
}

.panel-heading .trend-up {
  padding: 7px 9px;
  color: #2d4a1d;
  border-radius: 999px;
  background: #e6f6d8;
  font-size: 10px;
}

.chart-wrap {
  position: relative;
  height: 282px;
  margin-top: 25px;
  padding: 0 0 22px 30px;
}

.chart-y {
  position: absolute;
  top: 0;
  bottom: 26px;
  left: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  color: #a1a39d;
  font-size: 7px;
}

.trend-chart {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.chart-grid-lines {
  fill: none;
  stroke: #eceee7;
  stroke-width: 1;
}

.chart-area {
  fill: url(#chartFill);
}

.chart-line {
  fill: none;
  stroke: var(--lime-deep);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 860;
  stroke-dashoffset: 860;
  transition: stroke-dashoffset 2s var(--ease-out);
}

.progress-stage.is-visible .chart-line {
  stroke-dashoffset: 0;
}

.chart-points circle {
  fill: #fff;
  stroke: var(--lime-deep);
  stroke-width: 3;
}

.chart-x {
  position: absolute;
  left: 30px;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: space-between;
  color: #a1a39d;
  font-size: 7px;
}

.insight-panel {
  min-height: 185px;
  padding: 25px;
  background: #161815;
}

.insight-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.insight-top > span {
  color: #85887f;
  font-size: 8px;
  font-weight: 690;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.insight-spark {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  color: var(--ink);
  border-radius: 50%;
  background: var(--lime);
  font-size: 11px;
}

.insight-panel h4 {
  max-width: 520px;
  margin-top: 19px;
  color: #f2f3ed;
  font-size: 16px;
  font-weight: 590;
  letter-spacing: -0.025em;
  line-height: 1.25;
}

.insight-panel p {
  max-width: 520px;
  margin-top: 11px;
  color: #868980;
  font-size: 9px;
  line-height: 1.5;
}

.checkup-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 185px;
  padding: 25px;
}

.checkup-panel span {
  color: #8a8c85;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.checkup-panel strong {
  display: block;
  margin-top: 8px;
  font-size: 21px;
  font-weight: 610;
  letter-spacing: -0.04em;
}

.checkup-panel p {
  margin-top: 5px;
  color: #92948d;
  font-size: 8px;
}

.checkup-panel button {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 6px 6px 13px;
  border: 0;
  border-radius: 999px;
  background: #eff0ea;
  font-size: 8px;
  font-weight: 650;
}

.checkup-panel button span {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  color: #fff;
  border-radius: 50%;
  background: var(--ink);
  font-size: 10px;
}

.principles-section {
  padding: 185px 0;
}

.principles-layout {
  display: grid;
  grid-template-columns: .68fr 1.32fr;
  gap: 120px;
  align-items: start;
}

.principles-sticky {
  position: sticky;
  top: 140px;
}

.principles-sticky h2 {
  margin-top: 23px;
  font-size: clamp(52px, 5vw, 78px);
  font-weight: 610;
  letter-spacing: -0.06em;
  line-height: .98;
}

.principles-sticky > p:last-child {
  max-width: 470px;
  margin-top: 27px;
  color: #989b93;
  font-size: 17px;
  line-height: 1.55;
}

.principles-list {
  border-top: 1px solid rgba(255, 255, 255, 0.11);
}

.principle {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 30px;
  padding: 44px 0 54px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.11);
}

.principle > span {
  padding-top: 7px;
  color: #62655e;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
}

.principle h3 {
  font-size: clamp(28px, 3.1vw, 45px);
  font-weight: 590;
  letter-spacing: -0.05em;
}

.principle p {
  max-width: 650px;
  margin-top: 16px;
  color: #989b93;
  font-size: 16px;
  line-height: 1.58;
}

.how-section {
  padding: 175px 0 195px;
}

.how-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 50px;
}

.how-heading h2 {
  max-width: 800px;
  font-size: clamp(52px, 6vw, 84px);
  font-weight: 610;
  letter-spacing: -0.06em;
  line-height: .98;
  text-align: right;
}

.timeline {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 90px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.timeline-item {
  min-height: 410px;
  padding: 34px 35px 45px;
  border-right: 1px solid var(--line);
}

.timeline-item:last-child {
  border-right: 0;
}

.timeline-number {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid var(--line);
  border-radius: 50%;
  font-size: 12px;
  font-weight: 710;
}

.timeline-copy {
  margin-top: 110px;
}

.timeline-copy span {
  color: #74756f;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.timeline-copy h3 {
  margin-top: 13px;
  font-size: clamp(27px, 2.8vw, 42px);
  font-weight: 600;
  letter-spacing: -0.05em;
  line-height: 1.03;
}

.timeline-copy p {
  margin-top: 20px;
  color: #666761;
  font-size: 15px;
  line-height: 1.55;
}

.final-cta {
  position: relative;
  min-height: 820px;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.final-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(223, 255, 114, 0.1), transparent 33%),
    radial-gradient(circle at 70% 35%, rgba(157, 140, 255, 0.1), transparent 28%);
}

.final-orbit {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 840px;
  height: 840px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  transform: translate(-50%, -50%) rotateX(72deg) rotateZ(-8deg);
  animation: finalOrbit 30s linear infinite;
}

.final-orbit::before,
.final-orbit::after {
  content: "";
  position: absolute;
  inset: 100px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 50%;
}

.final-orbit::after {
  inset: 215px;
  border-color: rgba(223, 255, 114, 0.12);
}

.final-orbit span {
  position: absolute;
  width: 13px;
  height: 13px;
  border: 3px solid var(--ink);
  border-radius: 50%;
  background: var(--lime);
}

.final-orbit span:nth-child(1) { top: 14%; left: 13%; }
.final-orbit span:nth-child(2) { right: 8%; bottom: 24%; background: var(--violet); }
.final-orbit span:nth-child(3) { left: 46%; bottom: -7px; background: var(--coral); }

@keyframes finalOrbit {
  to { rotate: 360deg; }
}

.final-cta-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.final-cta h2 {
  margin-top: 24px;
  font-size: clamp(70px, 9vw, 138px);
  font-weight: 610;
  letter-spacing: -0.075em;
  line-height: .83;
}

.final-cta p:not(.eyebrow) {
  max-width: 570px;
  margin-top: 35px;
  color: #a1a49b;
  font-size: 18px;
  line-height: 1.5;
}

.final-cta .button {
  margin-top: 38px;
}

.site-footer {
  color: #d8dad3;
  background: #070807;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 130px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.footer-grid > p {
  color: #6f716b;
  font-size: 11px;
}

.footer-link {
  justify-self: end;
  padding: 0;
  color: #d8dad3;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
}

.waitlist-dialog {
  position: fixed;
  inset: 0;
  z-index: 100;
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: transparent;
}

.waitlist-dialog:not([open]) {
  display: none;
}

.waitlist-dialog::backdrop {
  background: transparent;
}

.dialog-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 5, 4, 0.76);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  opacity: 0;
  transition: opacity 500ms var(--ease);
}

.dialog-shell {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(650px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  padding: 8px;
  overflow: auto;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 36px;
  background: rgba(255, 255, 255, 0.07);
  opacity: 0;
  transform: translate(-50%, -46%) scale(0.97);
  transition: opacity 520ms var(--ease), transform 650ms var(--ease);
}

.waitlist-dialog.is-visible .dialog-backdrop {
  opacity: 1;
}

.waitlist-dialog.is-visible .dialog-shell {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.dialog-shell::before {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 100% 0%, rgba(157, 140, 255, 0.14), transparent 31%),
    var(--paper-bright);
}

.dialog-close {
  position: absolute;
  top: 22px;
  right: 22px;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(11, 12, 11, 0.08);
  border-radius: 50%;
  background: #efeee8;
  cursor: pointer;
}

.dialog-close svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: var(--ink);
  stroke-linecap: round;
  stroke-width: 1.6;
}

.waitlist-form {
  position: relative;
  z-index: 2;
  min-height: 570px;
  padding: 58px 54px 50px;
  color: var(--ink);
}

.form-stage {
  display: none;
}

.form-stage.is-active {
  display: block;
  animation: formStageIn 600ms var(--ease-out) both;
}

@keyframes formStageIn {
  from { opacity: 0; transform: translate3d(0, 18px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

.waitlist-form h2 {
  max-width: 510px;
  margin-top: 21px;
  font-size: clamp(38px, 5vw, 58px);
  font-weight: 610;
  letter-spacing: -0.055em;
  line-height: .98;
}

.form-lead {
  max-width: 500px;
  margin-top: 20px;
  color: #666761;
  font-size: 15px;
  line-height: 1.5;
}

.interest-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-top: 31px;
}

.interest-grid label {
  cursor: pointer;
}

.interest-grid input {
  position: absolute;
  opacity: 0;
}

.interest-grid span {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 13px;
  border: 1px solid rgba(11, 12, 11, 0.09);
  border-radius: 17px;
  background: #efeee8;
  font-size: 13px;
  font-weight: 620;
  transition: background 400ms var(--ease), border-color 400ms var(--ease), transform 400ms var(--ease);
}

.interest-grid span:hover {
  transform: translate3d(0, -2px, 0);
  border-color: rgba(11, 12, 11, 0.23);
}

.interest-grid i {
  position: relative;
  display: block;
  width: 35px;
  height: 35px;
  border: 1px solid rgba(11, 12, 11, 0.1);
  border-radius: 50%;
  background: #fff;
}

.interest-grid i::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--ink);
  opacity: 0;
  transform: translate(-50%, -50%) scale(.3);
  transition: opacity 300ms var(--ease), transform 400ms var(--ease);
}

.interest-grid input:checked + span {
  border-color: rgba(11, 12, 11, 0.4);
  background: var(--lime);
}

.interest-grid input:checked + span i::after {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.form-error {
  min-height: 20px;
  margin-top: 10px;
  color: #b23d2c;
  font-size: 11px;
}

.field-label {
  display: block;
  margin-top: 42px;
  color: #63645f;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.email-field {
  display: grid;
  grid-template-columns: 1fr 52px;
  gap: 7px;
  margin-top: 10px;
  padding: 6px;
  border: 1px solid rgba(11, 12, 11, 0.1);
  border-radius: 999px;
  background: #efeee8;
}

.email-field input {
  min-width: 0;
  padding: 0 14px;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 15px;
}

.email-field button {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border: 0;
  border-radius: 50%;
  background: var(--ink);
  cursor: pointer;
}

.email-field svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #fff;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.consent-row {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 17px;
  color: #6e6f69;
  font-size: 11px;
}

.consent-row input {
  accent-color: var(--ink);
}

.back-button {
  margin-top: 35px;
  padding: 0;
  color: #656660;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
}

.form-success {
  padding-top: 70px;
  text-align: center;
}

.form-success .eyebrow {
  justify-content: center;
}

.form-success h2,
.form-success .form-lead {
  margin-left: auto;
  margin-right: auto;
}

.success-mark {
  width: 80px;
  height: 80px;
  margin: 0 auto 28px;
}

.success-mark svg {
  width: 100%;
  height: 100%;
  fill: var(--lime);
  stroke: var(--ink);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

@media (max-width: 1160px) {
  :root { --shell: min(100% - 40px, 1080px); }

  .hero-inner {
    grid-template-columns: minmax(0, .9fr) minmax(460px, 1.1fr);
    gap: 30px;
  }

  .hero h1 {
    font-size: clamp(56px, 6.5vw, 78px);
  }

  .hero-stage {
    transform: scale(.91);
    transform-origin: center right;
  }

  .floating-card-left { left: 4px; }
  .floating-card-right { right: -5px; }

  .progress-dashboard {
    grid-template-columns: 150px 1fr;
  }

  .dashboard-main { padding: 32px; }
  .profile-overview, .trend-panel { min-height: 380px; }
  .profile-ring { width: 210px; height: 210px; }
}

@media (max-width: 960px) {
  :root { --shell: min(100% - 32px, 820px); }

  .nav-shell {
    grid-template-columns: 1fr auto;
    padding-left: 16px;
  }

  .nav-links,
  .nav-shell > .button {
    display: none;
  }

  .menu-button {
    display: block;
    justify-self: end;
  }

  .mobile-menu {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: -1;
    display: flex;
    flex-direction: column;
    gap: 13px;
    padding: 92px 22px 24px;
    color: #f4f5ef;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 31px;
    background: rgba(9, 10, 9, 0.95);
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(24px);
    opacity: 0;
    pointer-events: none;
    transform: translate3d(0, -12px, 0) scale(.98);
    transform-origin: top;
    transition: opacity 450ms var(--ease), transform 550ms var(--ease);
  }

  .mobile-menu.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translate3d(0, 0, 0) scale(1);
  }

  .mobile-menu a {
    padding: 11px 5px;
    color: #bcbeb6;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 22px;
    font-weight: 560;
    letter-spacing: -.03em;
  }

  .mobile-menu .button {
    margin-top: 7px;
    padding: 0 20px;
  }

  .hero {
    min-height: auto;
    padding-top: 150px;
  }

  .hero-inner {
    grid-template-columns: 1fr;
  }

  .hero-copy {
    max-width: 790px;
  }

  .hero h1 {
    max-width: 850px;
    font-size: clamp(58px, 10vw, 88px);
  }

  .hero-subhead {
    max-width: 720px;
  }

  .hero-stage {
    min-height: 720px;
    margin-top: 10px;
    transform: scale(1);
    transform-origin: center;
  }

  .hero-grid {
    top: 480px;
    right: -35vw;
    width: 140vw;
  }

  .manifesto-grid {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .manifesto-copy > p {
    margin-left: 0;
  }

  .split-heading,
  .adaptive-layout,
  .demo-layout,
  .principles-layout {
    grid-template-columns: 1fr;
    gap: 70px;
  }

  .heading-aside {
    max-width: 660px;
  }

  .workout-card,
  .workout-card-large,
  .workout-card-wide {
    grid-column: span 12;
  }

  .workout-card {
    min-height: 510px;
  }

  .focus-visual {
    right: 4%;
    width: 57%;
  }

  .adaptive-stage {
    max-width: 680px;
    width: 100%;
    margin: 0 auto;
  }

  .demo-intro,
  .principles-sticky {
    position: static;
  }

  .demo-layout {
    gap: 55px;
  }

  .progress-dashboard {
    grid-template-columns: 1fr;
  }

  .dashboard-sidebar {
    display: none;
  }

  .dashboard-main {
    padding: 30px;
  }

  .principles-layout {
    gap: 75px;
  }

  .principles-sticky > p:last-child {
    max-width: 660px;
  }

  .how-heading {
    display: block;
  }

  .how-heading h2 {
    margin-top: 23px;
    text-align: left;
  }

  .timeline {
    grid-template-columns: 1fr;
  }

  .timeline-item {
    display: grid;
    grid-template-columns: 70px 1fr;
    gap: 25px;
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .timeline-item:last-child { border-bottom: 0; }
  .timeline-copy { margin-top: 4px; }

  .footer-grid {
    grid-template-columns: 1fr auto;
  }

  .footer-grid > p {
    display: none;
  }
}

@media (max-width: 720px) {
  :root { --shell: calc(100% - 32px); --radius-xl: 30px; }

  .site-header {
    top: 10px;
    width: calc(100vw - 20px);
  }

  .nav-shell {
    min-height: 56px;
    padding: 6px 7px 6px 14px;
  }

  .brand { font-size: 12px; }
  .brand-mark { width: 25px; height: 25px; }

  .menu-button { width: 42px; height: 42px; }

  .hero {
    padding: 130px 0 38px;
  }

  .hero h1 {
    margin-top: 21px;
    font-size: clamp(52px, 15vw, 72px);
    line-height: .94;
  }

  .hero-subhead {
    margin-top: 25px;
    font-size: 17px;
  }

  .hero-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 20px;
  }

  .hero-guardrails {
    gap: 12px 18px;
  }

  .hero-stage {
    min-height: 590px;
    margin: 18px -10px 0;
    transform: scale(.82);
  }

  .phone-shell {
    width: 340px;
  }

  .floating-card-left { left: -25px; }
  .floating-card-right { right: -35px; }
  .stage-label { display: none; }
  .ring-a { width: 590px; height: 590px; }
  .ring-b { width: 470px; height: 470px; }

  .hero-footer {
    justify-content: flex-start;
    gap: 14px;
    overflow: hidden;
    white-space: nowrap;
  }

  .hero-footer span:nth-of-type(n+4),
  .hero-footer i:nth-of-type(n+4) {
    display: none;
  }

  .manifesto,
  .workout-section,
  .adaptive-section,
  .demo-section,
  .progress-section,
  .principles-section,
  .how-section {
    padding: 110px 0;
  }

  .manifesto-grid { gap: 35px; }
  .manifesto-copy h2 { font-size: clamp(49px, 14vw, 68px); }
  .manifesto-copy > p { margin-top: 30px; font-size: 18px; }

  .section-heading {
    margin-bottom: 48px;
  }

  .section-heading h2,
  .adaptive-copy h2,
  .demo-intro h2,
  .principles-sticky h2,
  .how-heading h2 {
    font-size: clamp(44px, 13vw, 63px);
  }

  .workout-grid { gap: 13px; }
  .workout-card { min-height: 580px; padding: 5px; border-radius: 29px; }
  .card-inner { padding: 22px; border-radius: 23px; }
  .workout-card-large .card-copy { left: 22px; bottom: 24px; width: calc(100% - 44px); }
  .workout-card-large .card-copy h3 { font-size: 38px; }
  .focus-visual { top: 86px; left: 22px; right: auto; width: calc(100% - 44px); height: 290px; }
  .focus-window { width: 118px; height: 118px; }

  .workout-card:not(.workout-card-large) .card-copy h3 { font-size: 34px; }

  .wide-card-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .workout-card-wide { min-height: auto; }
  .writing-visual { min-height: 300px; }

  .adaptive-layout { gap: 50px; }
  .adaptive-copy > p:not(.eyebrow) { font-size: 17px; }
  .adaptive-item { transform: none !important; }
  .adaptive-core { min-height: 600px; padding: 25px; }
  .adaptive-score strong { font-size: 50px; }
  .adaptive-question { padding: 24px; }
  .adaptive-footer svg { width: 130px; }

  .exercise-core { min-height: 0; padding: 28px 20px; }
  .exercise-prompt { margin-top: 34px; font-size: 27px; }
  .exercise-options button { grid-template-columns: 38px 1fr; font-size: 13px; }
  .exercise-result { grid-template-columns: 39px 1fr; }
  .result-icon { width: 39px; height: 39px; }

  .centered-heading { align-items: flex-start; text-align: left; }
  .centered-heading > p:last-child { font-size: 16px; }

  .progress-shell { margin: 0 -6px; padding: 5px; border-radius: 30px; }
  .progress-dashboard { border-radius: 25px; }
  .dashboard-main { padding: 22px 16px; overflow: hidden; }
  .dashboard-header { align-items: flex-start; }
  .dashboard-header h3 { font-size: 24px; }
  .dashboard-period { font-size: 8px; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .profile-overview, .trend-panel, .insight-panel, .checkup-panel { min-height: auto; }
  .trend-panel { padding: 22px 14px; }
  .chart-wrap { height: 240px; }

  .principles-layout { gap: 50px; }
  .principle { grid-template-columns: 35px 1fr; gap: 18px; padding: 35px 0 42px; }
  .principle h3 { font-size: 31px; }
  .principle p { font-size: 15px; }

  .timeline { margin-top: 58px; }
  .timeline-item { grid-template-columns: 52px 1fr; padding: 27px 0 34px; }
  .timeline-number { width: 42px; height: 42px; }
  .timeline-copy h3 { font-size: 31px; }

  .final-cta { min-height: 700px; }
  .final-cta h2 { font-size: clamp(62px, 18vw, 90px); }
  .final-orbit { width: 620px; height: 620px; }
  .final-cta p:not(.eyebrow) { font-size: 16px; }

  .footer-grid { min-height: 100px; }

  .waitlist-form {
    min-height: 560px;
    padding: 55px 20px 35px;
  }

  .dialog-shell { border-radius: 29px; }
  .dialog-shell::before { border-radius: 22px; }
  .dialog-close { top: 18px; right: 18px; }
  .interest-grid { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .hero-stage {
    margin-left: -40px;
    margin-right: -40px;
    transform: scale(.72);
  }

  .floating-card-left { left: -10px; }
  .floating-card-right { right: -12px; }
  .hero-footer span:nth-of-type(n+3),
  .hero-footer i:nth-of-type(n+3) { display: none; }

  .adaptive-core { padding: 21px; }
  .adaptive-score { margin-top: 48px; }
  .adaptive-question h3 { font-size: 28px; }
  .adaptive-footer { align-items: center; }
  .adaptive-footer svg { display: none; }

  .dashboard-period { display: none; }
  .checkup-panel { align-items: flex-start; flex-direction: column; gap: 20px; }
}

@media (hover: none) {
  .cursor-glow { display: none; }
  .workout-card:hover,
  .button:hover,
  .exercise-options button:hover {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal {
    opacity: 1;
    transform: none;
    filter: none;
  }
}

/* ============================================================
   Expanded task experience — early product proof
   ============================================================ */

textarea {
  font: inherit;
}

textarea:focus-visible {
  outline: 3px solid var(--violet);
  outline-offset: 3px;
}

.task-gallery-section {
  position: relative;
  min-height: 100vh;
  padding: 145px 0 105px;
  overflow: hidden;
  background:
    radial-gradient(circle at 86% 9%, rgba(157, 140, 255, 0.16), transparent 28%),
    radial-gradient(circle at 10% 85%, rgba(125, 242, 199, 0.15), transparent 26%),
    var(--paper);
}

.task-gallery-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.42fr);
  gap: 90px;
  align-items: end;
}

.task-gallery-heading h2 {
  max-width: 860px;
  margin-top: 22px;
  font-size: clamp(54px, 6.2vw, 94px);
  font-weight: 620;
  letter-spacing: -0.064em;
  line-height: 0.96;
}

.task-gallery-heading > p {
  max-width: 450px;
  padding-bottom: 8px;
  color: #666761;
  font-size: 18px;
  letter-spacing: -0.015em;
  line-height: 1.55;
}

.task-rail-viewport {
  margin-top: 78px;
  overflow: hidden;
}

.task-rail {
  display: flex;
  gap: 18px;
  padding: 1px 0 18px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.task-rail::-webkit-scrollbar {
  display: none;
}

.task-preview {
  position: relative;
  flex: 0 0 378px;
  min-height: 570px;
  padding: 27px;
  overflow: hidden;
  border: 1px solid rgba(11, 12, 11, 0.09);
  border-radius: 32px;
  scroll-snap-align: start;
  box-shadow: 0 26px 70px rgba(28, 29, 25, 0.09);
  transform: translateZ(0);
  transition: transform 500ms var(--ease), box-shadow 500ms var(--ease);
}

.task-preview:hover {
  z-index: 2;
  box-shadow: 0 34px 90px rgba(28, 29, 25, 0.15);
  transform: translate3d(0, -8px, 0) rotate(-0.35deg);
}

.task-preview-top,
.task-preview-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.task-preview-top {
  color: rgba(11, 12, 11, 0.57);
  font-size: 10px;
  font-weight: 760;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.task-preview-top em {
  padding: 7px 9px;
  border: 1px solid rgba(11, 12, 11, 0.12);
  border-radius: 999px;
  font-style: normal;
  letter-spacing: 0.08em;
}

.task-preview h3 {
  max-width: 310px;
  margin-top: 28px;
  font-size: 32px;
  font-weight: 640;
  letter-spacing: -0.045em;
  line-height: 1.03;
}

.task-preview-prompt {
  position: absolute;
  right: 27px;
  bottom: 65px;
  left: 27px;
  padding-top: 15px;
  color: rgba(11, 12, 11, 0.67);
  border-top: 1px solid rgba(11, 12, 11, 0.11);
  font-size: 13px;
  line-height: 1.45;
}

.task-preview-foot {
  position: absolute;
  right: 27px;
  bottom: 24px;
  left: 27px;
  color: rgba(11, 12, 11, 0.53);
  font-size: 10px;
  font-weight: 720;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.task-preview-foot strong {
  color: inherit;
  font-weight: 720;
}

.task-preview-pattern {
  color: #10120d;
  background:
    radial-gradient(circle at 80% 12%, rgba(255, 255, 255, 0.48), transparent 23%),
    var(--lime);
}

.task-preview-logic {
  background:
    radial-gradient(circle at 90% 8%, rgba(255, 255, 255, 0.34), transparent 26%),
    #dcd5ff;
}

.task-preview-reading {
  background: #fbfaf5;
}

.task-preview-evidence {
  color: #f7f8f2;
  border-color: rgba(255, 255, 255, 0.1);
  background:
    radial-gradient(circle at 88% 10%, rgba(125, 242, 199, 0.16), transparent 28%),
    #111310;
}

.task-preview-evidence .task-preview-top,
.task-preview-evidence .task-preview-foot,
.task-preview-evidence .task-preview-prompt {
  color: rgba(247, 248, 242, 0.57);
}

.task-preview-evidence .task-preview-top em {
  border-color: rgba(255, 255, 255, 0.14);
}

.task-preview-evidence .task-preview-prompt {
  border-color: rgba(255, 255, 255, 0.11);
}

.task-preview-writing {
  background:
    radial-gradient(circle at 85% 8%, rgba(255, 255, 255, 0.38), transparent 25%),
    #ffc7bd;
}

.task-preview-recall {
  background:
    radial-gradient(circle at 84% 10%, rgba(255, 255, 255, 0.42), transparent 28%),
    #cce4ff;
}

.matrix-mini {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  width: 285px;
  margin: 38px auto 0;
}

.matrix-mini > span {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  border: 1px solid rgba(11, 12, 11, 0.12);
  border-radius: 17px;
  background: rgba(255, 255, 255, 0.32);
}

.shape {
  position: relative;
  display: block;
  width: 29px;
  height: 29px;
}

.shape-ring {
  border: 3px solid #161811;
  border-radius: 50%;
}

.shape-triangle {
  width: 0;
  height: 0;
  border-right: 17px solid transparent;
  border-bottom: 30px solid #161811;
  border-left: 17px solid transparent;
}

.shape-square {
  border: 3px solid #161811;
  border-radius: 4px;
}

.shape-dot-one::after,
.shape-dot-two::before,
.shape-dot-two::after {
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #161811;
}

.shape-dot-one::after {
  right: -10px;
  top: -9px;
}

.shape-dot-two::before {
  right: -10px;
  top: -9px;
}

.shape-dot-two::after {
  right: -10px;
  bottom: -9px;
}

.matrix-missing {
  color: #161811;
  border-style: dashed !important;
  background: transparent !important;
  font-size: 30px;
  font-weight: 620;
}

.constraint-rules {
  display: grid;
  gap: 10px;
  margin-top: 42px;
}

.constraint-rules p {
  display: grid;
  grid-template-columns: 29px 1fr;
  align-items: center;
  min-height: 53px;
  padding: 9px 13px 9px 9px;
  border: 1px solid rgba(11, 12, 11, 0.09);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.42);
  font-size: 12px;
  line-height: 1.35;
}

.constraint-rules b {
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  border-radius: 9px;
  background: #161711;
  color: #f8f8f1;
  font-size: 9px;
}

.order-slots {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
  margin-top: 18px;
}

.order-slots span {
  display: grid;
  place-items: center;
  height: 43px;
  border: 1px dashed rgba(11, 12, 11, 0.25);
  border-radius: 11px;
  color: rgba(11, 12, 11, 0.4);
  font-size: 10px;
}

.task-preview-reading blockquote {
  margin: 37px 0 0;
  padding: 23px 23px 23px 28px;
  color: #32332f;
  border-left: 3px solid var(--violet);
  border-radius: 0 18px 18px 0;
  background: #eceae2;
  font-family: var(--font-serif);
  font-size: 19px;
  line-height: 1.42;
}

.reading-question {
  margin-top: 20px;
  padding: 16px;
  border: 1px solid rgba(11, 12, 11, 0.09);
  border-radius: 15px;
}

.reading-question span {
  color: #777872;
  font-size: 9px;
  font-weight: 720;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.reading-question p {
  margin-top: 6px;
  font-size: 13px;
  font-weight: 620;
  line-height: 1.38;
}

.evidence-bars {
  display: grid;
  gap: 18px;
  margin-top: 45px;
}

.evidence-bars div {
  display: grid;
  grid-template-columns: 110px 1fr 40px;
  gap: 11px;
  align-items: center;
}

.evidence-bars span,
.evidence-bars strong {
  font-size: 10px;
  font-weight: 650;
}

.evidence-bars span {
  color: rgba(247, 248, 242, 0.62);
}

.evidence-bars strong {
  color: #f8f9f2;
  text-align: right;
}

.evidence-bars i {
  position: relative;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.09);
}

.evidence-bars i::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--bar);
  border-radius: inherit;
  background: linear-gradient(90deg, var(--mint), var(--lime));
}

.draft-card {
  margin-top: 40px;
  padding: 24px;
  border: 1px solid rgba(11, 12, 11, 0.1);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.46);
  box-shadow: 0 18px 38px rgba(116, 54, 42, 0.08);
}

.draft-card p {
  color: #50433f;
  font-family: var(--font-serif);
  font-size: 18px;
  line-height: 1.47;
}

.constraint-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 17px;
}

.constraint-chips span {
  padding: 7px 9px;
  border: 1px solid rgba(11, 12, 11, 0.11);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.31);
  font-size: 9px;
  font-weight: 650;
}

.recall-stack {
  margin-top: 40px;
  padding: 22px;
  border: 1px solid rgba(11, 12, 11, 0.1);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.37);
}

.recall-stack > div {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 25px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(11, 12, 11, 0.1);
}

.recall-stack span {
  color: rgba(11, 12, 11, 0.48);
  font-size: 9px;
  font-weight: 730;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.recall-stack strong {
  max-width: 175px;
  font-size: 21px;
  font-weight: 650;
  letter-spacing: -.03em;
  text-align: right;
}

.recall-stack ol {
  display: grid;
  gap: 8px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  counter-reset: recall-item;
}

.recall-stack li {
  counter-increment: recall-item;
  display: grid;
  grid-template-columns: 27px 1fr;
  align-items: center;
  color: rgba(11, 12, 11, 0.58);
  font-size: 12px;
}

.recall-stack li::before {
  content: counter(recall-item);
  display: grid;
  place-items: center;
  width: 21px;
  height: 21px;
  border: 1px solid rgba(11, 12, 11, 0.13);
  border-radius: 7px;
  font-size: 8px;
}

.task-gallery-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  margin-top: 27px;
}

.task-gallery-footer > p {
  max-width: 700px;
  color: #6a6b65;
  font-size: 14px;
  line-height: 1.5;
}

.rail-controls {
  display: flex;
  gap: 8px;
}

.rail-controls button {
  display: grid;
  place-items: center;
  width: 47px;
  height: 47px;
  border: 1px solid rgba(11, 12, 11, 0.12);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  font-size: 19px;
  transition: transform 400ms var(--ease), background 400ms var(--ease);
}

.rail-controls button:hover {
  background: #fff;
  transform: scale(1.07);
}

/* Hard passage demo */
.demo-section {
  min-height: 100vh;
  padding: 145px 0;
}

.demo-layout {
  align-items: start;
}

.exercise-core {
  min-height: 790px;
}

.exercise-passage {
  display: grid;
  gap: 13px;
  margin-top: 34px;
  padding: 23px 24px;
  color: #464742;
  border: 1px solid rgba(11, 12, 11, 0.09);
  border-radius: 18px;
  background: #f0efe8;
  font-family: var(--font-serif);
  font-size: 16px;
  line-height: 1.55;
}

.exercise-prompt.exercise-question {
  margin-top: 28px;
  font-size: clamp(22px, 2vw, 30px);
  letter-spacing: -0.035em;
  line-height: 1.18;
}

.exercise-options {
  margin-top: 24px;
}

.exercise-options button {
  min-height: 63px;
  line-height: 1.35;
}

/* Paired game + writing studio */
.studio-section {
  position: relative;
  min-height: 100vh;
  padding: 145px 0 165px;
  overflow: hidden;
  background:
    radial-gradient(circle at 14% 86%, rgba(120, 184, 255, 0.14), transparent 25%),
    radial-gradient(circle at 88% 20%, rgba(255, 131, 111, 0.13), transparent 28%),
    var(--paper);
}

.studio-heading {
  max-width: 980px;
}

.studio-heading h2 {
  margin-top: 22px;
  font-size: clamp(55px, 6.3vw, 96px);
  font-weight: 620;
  letter-spacing: -0.064em;
  line-height: 0.97;
}

.studio-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 18px;
  margin-top: 78px;
}

.studio-card {
  min-height: 730px;
  padding: 34px;
  border-radius: 34px;
  box-shadow: 0 28px 80px rgba(26, 27, 24, 0.1);
}

.studio-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  font-size: 10px;
  font-weight: 740;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.studio-card-top em {
  font-style: normal;
}

.studio-card h3 {
  max-width: 560px;
  margin-top: 34px;
  font-size: clamp(38px, 4vw, 57px);
  font-weight: 620;
  letter-spacing: -.052em;
  line-height: 1;
}

.studio-subcopy {
  max-width: 520px;
  margin-top: 21px;
  font-size: 15px;
  line-height: 1.5;
}

.game-studio {
  color: #f8f8f2;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(circle at 84% 8%, rgba(125, 242, 199, 0.19), transparent 30%),
    #10120f;
}

.game-studio .studio-card-top,
.game-studio .studio-subcopy {
  color: #a8aaa2;
}

.sequence-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 52px;
}

.sequence-tile {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 21px;
  background: rgba(255, 255, 255, 0.045);
}

.sequence-tile b {
  font-size: 35px;
  font-weight: 400;
}

.dot-row {
  position: absolute;
  right: 10px;
  bottom: 10px;
  display: flex;
  gap: 3px;
}

.dot-row i {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--lime);
}

.sequence-missing {
  color: var(--lime);
  border-style: dashed;
  font-size: 30px;
}

.sequence-options {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 9px;
  margin-top: 16px;
}

.sequence-options button {
  display: grid;
  place-items: center;
  min-height: 90px;
  color: #f5f6ef;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 17px;
  background: rgba(255, 255, 255, 0.055);
  cursor: pointer;
  transition: transform 400ms var(--ease), border-color 400ms var(--ease), background 400ms var(--ease);
}

.sequence-options button:hover {
  border-color: rgba(223, 255, 114, 0.45);
  background: rgba(223, 255, 114, 0.07);
  transform: translate3d(0, -4px, 0);
}

.sequence-options button b {
  font-size: 29px;
  font-weight: 400;
  line-height: 1;
}

.sequence-options button span {
  margin-top: 4px;
  color: var(--lime);
  font-size: 10px;
  letter-spacing: 2px;
}

.sequence-options button.is-correct {
  color: #151811;
  border-color: var(--lime);
  background: var(--lime);
}

.sequence-options button.is-correct span {
  color: #151811;
}

.sequence-options button.is-wrong {
  border-color: rgba(255, 131, 111, 0.5);
  background: rgba(255, 131, 111, 0.13);
}

.sequence-options button:disabled {
  cursor: default;
}

.game-feedback {
  margin-top: 19px;
  padding: 15px 17px;
  color: #9fa199;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.035);
  font-size: 12px;
  transition: color 400ms var(--ease), border-color 400ms var(--ease), background 400ms var(--ease);
}

.game-feedback.is-success {
  color: #eafbc8;
  border-color: rgba(223, 255, 114, 0.25);
  background: rgba(223, 255, 114, 0.07);
}

.writing-studio {
  border: 1px solid rgba(11, 12, 11, 0.08);
  background: #fbfaf5;
}

.writing-studio .studio-card-top {
  color: #777872;
}

.writing-source {
  margin-top: 36px;
  padding: 20px 22px;
  border: 1px solid rgba(11, 12, 11, 0.09);
  border-radius: 17px;
  background: #efeee7;
}

.writing-source span,
.writing-input-label,
.writing-sample span {
  color: #73746e;
  font-size: 9px;
  font-weight: 740;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.writing-source p {
  margin-top: 9px;
  color: #4d4e49;
  font-family: var(--font-serif);
  font-size: 16px;
  line-height: 1.48;
}

.writing-brief {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 13px;
}

.writing-brief span {
  padding: 7px 9px;
  color: #5b5c56;
  border: 1px solid rgba(11, 12, 11, 0.09);
  border-radius: 999px;
  background: #f2e6ff;
  font-size: 9px;
  font-weight: 650;
}

.writing-input-label {
  display: block;
  margin-top: 22px;
}

.writing-studio textarea {
  width: 100%;
  min-height: 128px;
  margin-top: 9px;
  padding: 17px 18px;
  color: #22231f;
  border: 1px solid rgba(11, 12, 11, 0.12);
  border-radius: 16px;
  background: #fff;
  resize: vertical;
  font-size: 15px;
  line-height: 1.48;
  transition: border-color 350ms var(--ease), box-shadow 350ms var(--ease);
}

.writing-studio textarea:focus {
  border-color: rgba(104, 92, 222, 0.45);
  box-shadow: 0 0 0 5px rgba(157, 140, 255, 0.08);
}

.writing-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 11px;
  color: #777872;
  font-size: 10px;
}

.writing-actions button {
  padding: 9px 12px;
  color: #2c2d28;
  border: 1px solid rgba(11, 12, 11, 0.11);
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  font-size: 10px;
  font-weight: 650;
  transition: background 350ms var(--ease), transform 350ms var(--ease);
}

.writing-actions button:hover {
  background: #eeece5;
  transform: translate3d(0, -2px, 0);
}

.writing-sample {
  max-height: 0;
  margin-top: 0;
  padding: 0 17px;
  overflow: hidden;
  opacity: 0;
  border: 1px solid transparent;
  border-radius: 15px;
  background: #e7f5d7;
  transform: translate3d(0, 8px, 0);
  transition: max-height 600ms var(--ease), margin 500ms var(--ease), padding 500ms var(--ease), opacity 500ms var(--ease), transform 500ms var(--ease), border-color 500ms var(--ease);
}

.writing-sample.is-visible {
  max-height: 190px;
  margin-top: 15px;
  padding: 15px 17px;
  opacity: 1;
  border-color: rgba(93, 135, 52, 0.18);
  transform: none;
}

.writing-sample p {
  margin-top: 7px;
  color: #3e4b32;
  font-size: 12px;
  line-height: 1.5;
}

/* Dark manifesto variant now follows the product proof. */
.manifesto-dark {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  background:
    radial-gradient(circle at 80% 25%, rgba(157, 140, 255, 0.12), transparent 28%),
    var(--ink);
}

.manifesto-dark .manifesto-copy h2 em {
  color: #777a71;
}

.manifesto-dark .manifesto-copy > p {
  color: #a5a79f;
}

/* Responsive additions */
@media (max-width: 1160px) {
  .task-gallery-heading {
    grid-template-columns: 1fr 0.48fr;
    gap: 55px;
  }

  .task-preview {
    flex-basis: 350px;
  }

  .studio-card {
    min-height: 750px;
  }
}

@media (max-width: 960px) {
  .task-gallery-section,
  .studio-section {
    padding: 120px 0;
  }

  .task-gallery-heading {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .task-gallery-heading > p {
    max-width: 670px;
  }

  .task-gallery-heading h2,
  .studio-heading h2 {
    font-size: clamp(52px, 9vw, 76px);
  }

  .task-rail-viewport {
    margin-top: 58px;
  }

  .task-preview {
    flex-basis: min(76vw, 385px);
  }

  .studio-grid {
    grid-template-columns: 1fr;
  }

  .studio-card {
    min-height: auto;
  }

  .game-studio,
  .writing-studio {
    padding-bottom: 40px;
  }

  .exercise-core {
    min-height: auto;
  }
}

@media (max-width: 720px) {
  .task-gallery-section,
  .studio-section {
    min-height: auto;
    padding: 105px 0;
  }

  .task-gallery-heading h2,
  .studio-heading h2 {
    font-size: clamp(47px, 13vw, 65px);
  }

  .task-gallery-heading > p {
    font-size: 16px;
  }

  .task-rail-viewport {
    margin-top: 48px;
  }

  .task-rail {
    width: calc(100vw - 24px);
    margin-left: 24px;
    padding-right: 24px;
  }

  .task-preview {
    flex-basis: min(85vw, 354px);
    min-height: 560px;
    padding: 23px;
    border-radius: 27px;
  }

  .task-preview h3 {
    font-size: 29px;
  }

  .task-preview-prompt,
  .task-preview-foot {
    right: 23px;
    left: 23px;
  }

  .matrix-mini {
    width: 260px;
  }

  .task-gallery-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .rail-controls {
    display: none;
  }

  .demo-section {
    padding: 110px 0;
  }

  .exercise-passage {
    padding: 18px;
    font-size: 15px;
  }

  .exercise-prompt.exercise-question {
    margin-top: 24px;
    font-size: 24px;
  }

  .exercise-options button {
    min-height: 67px;
  }

  .studio-grid {
    margin-top: 50px;
  }

  .studio-card {
    padding: 25px 21px;
    border-radius: 27px;
  }

  .studio-card h3 {
    font-size: 39px;
  }

  .sequence-strip,
  .sequence-options {
    gap: 6px;
  }

  .sequence-tile {
    border-radius: 15px;
  }

  .sequence-tile b {
    font-size: 27px;
  }

  .sequence-options button {
    min-height: 74px;
    border-radius: 14px;
  }

  .sequence-options button b {
    font-size: 24px;
  }

  .writing-source {
    padding: 17px;
  }

  .manifesto-dark {
    padding: 110px 0;
  }
}

@media (max-width: 420px) {
  .task-preview {
    flex-basis: calc(100vw - 48px);
  }

  .matrix-mini {
    width: 245px;
  }

  .evidence-bars div {
    grid-template-columns: 92px 1fr 35px;
  }

  .studio-card h3 {
    font-size: 36px;
  }

  .sequence-options button span {
    letter-spacing: 0;
  }
}

@media (hover: none) {
  .task-preview:hover,
  .rail-controls button:hover,
  .sequence-options button:hover,
  .writing-actions button:hover {
    transform: none;
  }
}

/* Task rail scrolling is owned by the full-bleed viewport. */
.task-rail-viewport {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.task-rail-viewport::-webkit-scrollbar {
  display: none;
}

.task-rail {
  width: max-content;
  margin: 0;
  padding: 1px max(24px, calc((100vw - 1240px) / 2)) 18px;
  overflow: visible;
  scroll-snap-type: none;
}

@media (max-width: 720px) {
  .task-rail {
    width: max-content;
    margin: 0;
    padding-right: 24px;
    padding-left: 24px;
  }
}

/* Keep anchored sections clear of the floating navigation. */
html {
  scroll-padding-top: 96px;
}

#workout,
#demo,
#more-examples,
#progress,
#principles {
  scroll-margin-top: 96px;
}

.task-gallery-section {
  padding-top: 185px;
}

.studio-section {
  padding-top: 185px;
}

.writing-actions span.is-over {
  color: #bd3d2e;
  font-weight: 700;
}

@media (max-width: 720px) {
  html {
    scroll-padding-top: 78px;
  }

  #workout,
  #demo,
  #more-examples,
  #progress,
  #principles {
    scroll-margin-top: 78px;
  }

  .task-gallery-section,
  .studio-section {
    padding-top: 145px;
  }
}
