@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-latin-300-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-latin-300-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/fonts/dm-sans-latin-300-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/dm-sans-latin-400-normal.woff2') format('woff2');
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background: #EEEAE4;
  color: #2C2A28;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.7;
  min-height: 100vh;
}

/* ── Header ── */
.page-header {
  padding: 0 32px;
  height: 56px;
  border-bottom: 1px solid rgba(0,0,0,0.06);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(238,234,228,0.75);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  position: sticky;
  top: 0;
  z-index: 100;
}

.page-header a.home-link {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
  font-size: 22px;
  color: #2C2A28;
  text-decoration: none;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}

.page-header a.home-link:hover { opacity: 0.7; }

.page-nav {
  display: flex;
  align-items: center;
  gap: 28px;
}

.page-nav a {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6B6560;
  text-decoration: none;
}

.page-nav a:hover { color: #2C2A28; }

@keyframes vc-rainbow-shift { from { background-position: 0% 0%; } to { background-position: 200% 0%; } }

.page-nav a.cta {
  position: relative;
  padding: 6px 16px;
  border-radius: 999px;
  color: #1A1614;
  border: none;
  background: #EEEAE4;
}

.page-nav a.cta::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 999px;
  background: linear-gradient(90deg,
    hsl(0,85%,62%), hsl(30,90%,60%), hsl(60,88%,57%),
    hsl(90,78%,54%), hsl(130,72%,52%), hsl(170,75%,50%),
    hsl(200,80%,58%), hsl(230,80%,63%), hsl(265,74%,64%),
    hsl(300,76%,64%), hsl(330,80%,64%), hsl(360,85%,62%)
  );
  background-size: 200% 100%;
  animation: vc-rainbow-shift 3s linear infinite;
  z-index: -1;
}

.page-nav a.cta::after {
  content: '';
  position: absolute;
  inset: 1.5px;
  border-radius: 999px;
  background: #EEEAE4;
  z-index: -1;
}

.page-nav a.cta:hover { color: #2C2A28; }

/* ── Hamburger toggle ── */
.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  width: 32px;
  height: 32px;
}

.nav-toggle span {
  display: block;
  height: 1.5px;
  background: #2C2A28;
  border-radius: 2px;
  transition: all 0.2s ease;
}

@media (max-width: 720px) {
  .nav-toggle { display: flex; }

  /* Remove backdrop-filter on mobile — it makes .page-header a containing block
     for position:fixed children, collapsing the nav panel to zero height */
  .page-header {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(238, 234, 228, 0.98);
  }

  .page-nav {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    min-height: 100vh;
    left: auto;
    min-width: 220px;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    background: rgba(238,234,228,0.98);
    border-left: 1px solid rgba(0,0,0,0.08);
    padding: 12px 0 20px;
    box-shadow: -8px 0 24px rgba(0,0,0,0.08);
    z-index: 99;
  }

  .page-nav.open { display: flex; }

  .page-nav a {
    width: 100%;
    padding: 12px 24px;
    white-space: nowrap;
  }

  .page-nav a.cta {
    order: -1;
    margin: 8px 24px 4px;
    width: auto;
    text-align: center;
  }
}

/* ── Content ── */
.page-content {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 24px auto 60px;
  padding: 48px 48px 72px;
  background: rgba(238, 234, 228, 0.72);
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 16px;
  box-shadow: 0 4px 40px rgba(0, 0, 0, 0.06);
}

h1 {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
  font-size: clamp(36px, 6vw, 52px);
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin-bottom: 28px;
  color: #1A1816;
}

.page-title-center { text-align: center; }

.intro-center {
  text-align: center;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

.yours-highlight {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.5em;
  font-weight: 600;
  color: #5B5FA8;
  font-style: italic;
}

.sec-inner h2:first-child { margin-top: 0; }
.sec-inner h2 { margin-top: 36px; }

/* ── Section-based layout (How It Works) ── */
.page-sections {
  width: 100%;
  overflow: hidden;
}

.page-section {
  width: 100%;
  padding: 56px 24px;
  position: relative;
}

/* Flat chevron cuts between sections — tip alternates left / right */
.page-section:not(:last-child) {
  padding-bottom: calc(56px + 28px);
  margin-bottom: -28px;
}

.page-sections .page-section:nth-child(odd):not(:last-child) {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 28px), 25% 100%, 0 calc(100% - 28px));
}

.page-sections .page-section:nth-child(even):not(:last-child) {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 28px), 75% 100%, 0 calc(100% - 28px));
}

.page-sections .page-section:nth-child(1) { z-index: 4; }
.page-sections .page-section:nth-child(2) { z-index: 3; }
.page-sections .page-section:nth-child(3) { z-index: 2; }
.page-sections .page-section:nth-child(4) { z-index: 1; }

.sec-inner {
  max-width: 680px;
  margin: 0 auto;
  background: rgba(255,255,255,0.38);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(255,255,255,0.60);
  border-radius: 16px;
  padding: 40px 48px;
  box-shadow: 0 4px 32px rgba(0,0,0,0.05);
}

.sec-intro   { background: transparent; }
.sec-science { background: rgba(227,232,229,0.82); }
.sec-color   { background: rgba(226,229,239,0.82); }
.sec-details { background: rgba(235,229,225,0.82); }

h2 {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-weight: 400;
  font-size: 15px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: #3D3A36;
  margin-top: 44px;
  margin-bottom: 20px;
}

p { margin-bottom: 16px; color: #3D3A36; }
p:last-child { margin-bottom: 0; }

ul, ol {
  margin-bottom: 16px;
  padding-left: 20px;
  color: #3D3A36;
}

li { margin-bottom: 6px; }

strong { color: #2C2A28; font-weight: 400; }

.meta {
  font-size: 13px;
  color: #9C958E;
  margin-top: 64px;
  padding-top: 24px;
  border-top: 1px solid rgba(0,0,0,0.08);
}

/* ── Definition blocks (How It Works) ── */
.def-grid {
  display: grid;
  gap: 40px;
  margin-bottom: 48px;
}

.def-block {}

.def-term {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
  font-size: 36px;
  line-height: 1.1;
  margin-bottom: 8px;
}

.def-term.hue        { color: #C07A42; }
.def-term.pitch      { color: #C07A42; }
.def-term.formants   { color: #7A9E5F; }
.def-term.clarity    { color: #4B8FA8; }
.def-term.rhythm     { color: #7B6FAE; }
.def-term.flow       { color: #C07890; }
.def-term.saturation { color: #C063A0; }
.def-term.lightness  { color: #7B6FAE; }

.def-body {
  color: #3D3A36;
  font-size: 15px;
  line-height: 1.7;
}

/* ── Privacy no-collect list ── */
.no-collect {
  list-style: none;
  padding: 0;
  margin-bottom: 16px;
}

.no-collect li {
  padding: 12px 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
  color: #3D3A36;
  display: flex;
  align-items: center;
  gap: 10px;
}

.no-collect li::before {
  content: '✗';
  color: #9C958E;
  font-size: 12px;
  flex-shrink: 0;
}

/* ── Accordion — FAQ ── */
details {
  border-bottom: 1px solid rgba(0,0,0,0.08);
  padding: 20px 0;
}

details:first-of-type { border-top: 1px solid rgba(0,0,0,0.08); }

summary {
  cursor: pointer;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-weight: 400;
  font-size: 15px;
  color: #2C2A28;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  user-select: none;
}

summary::-webkit-details-marker { display: none; }

summary::after {
  content: '+';
  font-size: 20px;
  font-weight: 300;
  color: #9C958E;
  flex-shrink: 0;
}

details[open] summary::after { content: '−'; }

details p { margin-top: 12px; font-size: 15px; }

/* ── Keyboard nav ── */
a:focus-visible,
summary:focus-visible {
  outline: 2px solid #2C2A28;
  outline-offset: 3px;
  border-radius: 2px;
}

/* ── How It Works: Three Steps (infographic variant) ── */
.vb-stage {
  position: relative;
  padding: 20px 0 8px;
  margin-top: 24px;
  margin-bottom: 32px;
}


.vb-row {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  z-index: 2;
}

.vb-step {
  text-align: center;
  padding: 0 6px;
  position: relative;
}

.vb-vis {
  width: 160px;
  height: 160px;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: rgba(255,255,255,0.48);
  box-shadow:
    0 0 0 1px rgba(0,0,0,0.07),
    inset 0 1px 0 rgba(255,255,255,.8),
    0 28px 56px -28px rgba(60,50,30,.2);
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  transition: transform .6s cubic-bezier(.2,.8,.2,1);
}
.vb-step:hover .vb-vis { transform: translateY(-4px); }


.vb-h {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 400;
  font-size: 36px;
  margin: 0 0 10px;
  color: #2C2A28;
}

.vb-kicker {
  font-size: 15px;
  line-height: 1.7;
  color: #3D3A36;
  max-width: 24ch;
  margin: 0 auto;
}

.vb-meta {
  margin-top: 14px;
  display: inline-flex;
  gap: 7px;
  align-items: center;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #9C958E;
}
.vb-meta .dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: linear-gradient(90deg, var(--c-from, #8FDDF0), var(--c-to, #D9A8E8));
}
.vb-step:nth-child(1) { --c-from: #C8F0A6; --c-to: #8FDDF0; }
.vb-step:nth-child(2) { --c-from: #8FDDF0; --c-to: #D9A8E8; }
.vb-step:nth-child(3) { --c-from: #D9A8E8; --c-to: #F4B89C; }

/* Waveform bars (step 1) */
.vis-wave {
  width: 78%; height: 78%;
  display: grid; place-items: center;
}
.vis-wave .bars {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 60px;
}
.vis-wave .bar {
  width: 3px;
  border-radius: 3px;
  background: linear-gradient(180deg, #2C2A28 0%, #6B6560 100%);
  animation: vb-pulse 1.1s ease-in-out infinite;
  transform-origin: center;
}
.vis-wave .bar:nth-child(1)  { height: 30%; animation-delay: .00s; animation-duration: 1.30s; }
.vis-wave .bar:nth-child(2)  { height: 65%; animation-delay: .22s; animation-duration:  .90s; }
.vis-wave .bar:nth-child(3)  { height: 45%; animation-delay: .05s; animation-duration: 1.10s; }
.vis-wave .bar:nth-child(4)  { height: 85%; animation-delay: .38s; animation-duration: 1.00s; }
.vis-wave .bar:nth-child(5)  { height: 55%; animation-delay: .14s; animation-duration: 1.40s; }
.vis-wave .bar:nth-child(6)  { height: 95%; animation-delay: .30s; animation-duration:  .85s; }
.vis-wave .bar:nth-child(7)  { height: 40%; animation-delay: .08s; animation-duration: 1.20s; }
.vis-wave .bar:nth-child(8)  { height: 75%; animation-delay: .42s; animation-duration: 1.00s; }
.vis-wave .bar:nth-child(9)  { height: 50%; animation-delay: .18s; animation-duration: 1.30s; }
.vis-wave .bar:nth-child(10) { height: 60%; animation-delay: .34s; animation-duration:  .95s; }
.vis-wave .bar:nth-child(11) { height: 35%; animation-delay: .02s; animation-duration: 1.15s; }
.vis-wave .mic {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #E8574A;
  box-shadow: 0 0 0 4px rgba(232,87,74,.15), 0 0 0 8px rgba(232,87,74,.08);
  animation: vb-breathe 2s ease-in-out infinite;
}
@keyframes vb-pulse {
  0%,100% { transform: scaleY(.55); }
  50%     { transform: scaleY(1); }
}
@keyframes vb-breathe {
  0%,100% { transform: scale(1);    opacity: 1;  }
  50%     { transform: scale(1.15); opacity: .85; }
}

/* Radar pentagon (step 2) */
.vis-radar {
  width: 120px; height: 120px;
  position: relative;
}
.vis-radar svg { width: 100%; height: 100%; overflow: visible; }
.vis-radar .axes   { stroke: rgba(44,42,40,.18); stroke-width: 1; fill: none; }
.vis-radar .rings  { stroke: rgba(44,42,40,.08); stroke-width: 1; fill: none; stroke-dasharray: 2 3; }
.vis-radar .pentagon { stroke: rgba(44,42,40,.28); stroke-width: 1; fill: none; stroke-linejoin: round; }
.vis-radar .conn   { stroke: rgba(44,42,40,.25); stroke-width: 1; stroke-dasharray: 2 2; }
.vis-radar .shape  { fill: rgba(143,221,240,.3); stroke: #4B4539; stroke-width: 1.5; stroke-linejoin: round; }
.vis-radar .vertex { fill: #2C2A28; }
.vis-radar .label  {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 13px;
  letter-spacing: .10em;
  fill: #9C958E;
  text-transform: uppercase;
}

/* Color swatch bloom (step 3) */
.vis-prism {
  width: 100%; height: 100%;
  display: grid; place-items: center;
  position: relative;
}
.vis-prism .swatch {
  width: 90px; height: 90px;
  border-radius: 50%;
  background: conic-gradient(from 200deg,
    #FF4FA6, #C450E8, #6A6CFF, #1FB8FF, #2FD9B8, #9FE33A, #FF8A3D, #FF4FA6);
  box-shadow:
    0 0 0 5px rgba(255,255,255,.55),
    0 14px 40px -6px rgba(80,60,100,.35);
  animation: vb-spinSlow 18s linear infinite, vb-swatchLight 6s ease-in-out infinite;
}
@keyframes vb-spinSlow  { to { transform: rotate(360deg); } }
@keyframes vb-swatchLight {
  0%,100% { filter: brightness(.65) saturate(1.15); }
  50%     { filter: brightness(1.25) saturate(1.1);  }
}

@media (max-width: 600px) {
  .vb-row { grid-template-columns: 1fr; gap: 40px; }
  .vb-arrow { display: none; }
  .vb-step:not(:last-child)::after {
    content: "";
    display: block;
    width: 1px;
    height: 28px;
    margin: 20px auto 0;
    background: linear-gradient(180deg, #2C2A28 0%, transparent 100%);
    opacity: .22;
  }
}
