/* ── Shared tunu brand ─────────────────────────────────────── */
:root {
  --bg: #0B0710;
  --bg-elev: #14101C;
  --fg: #F6F1F4;
  --pink: #FF2D78;
  --pink-soft: #1C0F19;
  --plum: #2B0E22;
  --accent2: #FFD166;
  --grey: rgba(255, 255, 255, 0.66);
  --line: rgba(255, 255, 255, 0.14);
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;
  --radius: 32px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); color-scheme: dark; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--sans);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4, p { margin: 0; }
:focus-visible { outline: 3px solid var(--pink); outline-offset: 3px; border-radius: 6px; }

.skip {
  position: absolute; left: -999px; top: 8px;
  background: var(--fg); color: var(--bg);
  padding: 10px 18px; border-radius: 999px; z-index: 100;
}
.skip:focus { left: 8px; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.wrap { max-width: 1240px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 64px); }

.display {
  font-family: var(--serif);
  font-weight: 400;
  font-variation-settings: "opsz" 90;
  letter-spacing: -0.012em;
  word-spacing: 0.04em;
  line-height: 1.04;
  text-wrap: balance;
}
.lede { font-size: clamp(1.05rem, 1.5vw, 1.2rem); color: var(--grey); max-width: 38ch; }
.kicker {
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--pink);
  margin-bottom: 16px;
  letter-spacing: 0.02em;
}
.text-link {
  font-weight: 600;
  border-bottom: 2px solid var(--pink);
  padding-bottom: 1px;
  transition: color .2s, border-color .2s;
}
.text-link:hover { color: var(--pink); }

/* ── Buttons ───────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--sans); font-weight: 700; font-size: 1rem;
  padding: 15px 30px; border-radius: 999px; border: 2px solid var(--fg);
  cursor: pointer; white-space: nowrap;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}
.btn:hover { transform: translateY(-3px); }
.btn-black { background: var(--fg); color: var(--bg); }
.btn-black:hover { background: var(--bg); color: var(--fg); }
.btn-line { background: transparent; color: var(--fg); }
.btn-line:hover { background: var(--fg); color: var(--bg); }
.btn-white { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.btn-white:hover { background: transparent; color: var(--fg); }
.btn-ghost { background: transparent; color: var(--fg); border-color: rgba(255, 255, 255, 0.4); }
.btn-ghost:hover { border-color: var(--fg); background: var(--fg); color: var(--bg); }
.btn-sm { padding: 11px 24px; font-size: 0.95rem; }
.btn-full { width: 100%; }

/* ── Nav ───────────────────────────────────────────────────── */
.nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(6, 4, 8, 0.82);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--line);
}
.nav-inner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 16px clamp(20px, 5vw, 64px); max-width: 1240px; margin: 0 auto;
}
.nav-logo { height: 34px; width: auto; filter: brightness(0) invert(1); }
.nav-toggle { position: absolute; opacity: 0; pointer-events: none; }
.nav-burger {
  display: none;
  font-weight: 600; font-size: 0.95rem;
  border: 1px solid var(--line); border-radius: 999px;
  padding: 8px 16px; cursor: pointer;
}
.nav-links { display: flex; gap: 32px; font-weight: 600; font-size: 1.02rem; }
.nav-links a { transition: color .2s; }
.nav-links a:hover,
.nav-links a[aria-current="page"] { color: var(--pink); }

@media (max-width: 860px) {
  .nav-burger { display: inline-flex; }
  .nav-links {
    display: none;
    position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column; gap: 0;
    background: rgba(11, 7, 16, 0.97);
    border-bottom: 1px solid var(--line);
    padding: 8px 0 16px;
  }
  .nav-links a { padding: 12px clamp(20px, 5vw, 64px); }
  .nav-toggle:checked ~ .nav-links { display: flex; }
  .nav-inner { flex-wrap: wrap; }
}

/* ── Home: hero ────────────────────────────────────────────── */
.hero { padding: clamp(40px, 7vw, 88px) 0 clamp(40px, 5vw, 72px); }
.hero h1 { font-size: clamp(3.1rem, 9vw, 8.6rem); margin-bottom: clamp(28px, 4vw, 48px); }
.hero h1 .line { display: block; }
.hero .display, .download h2.display { font-variation-settings: "opsz" 144; letter-spacing: -0.016em; }
.hero-word { display: inline-grid; position: relative; vertical-align: baseline; white-space: nowrap; }
.hero-word::before { content: "translate"; grid-area: 1 / 1; visibility: hidden; }
.hero-word-text { grid-area: 1 / 1; opacity: 0; white-space: nowrap; }
.hero-word-text:nth-child(1) { animation: hero-word-first 7.2s 1.1s ease-in-out both; }
.hero-word-text:nth-child(2) { animation: hero-word-second 7.2s 1.1s ease-in-out both; }
.hero-word-text:nth-child(3) { animation: hero-word-third 7.2s 1.1s ease-in-out both; }
.hero-word-text:nth-child(4) { animation: hero-word-final 7.2s 1.1s ease-in-out both; }
.hero-word::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -.035em;
  height: .035em; border-radius: 999px; background: var(--pink);
  transform-origin: left; animation: hero-word-underline 7.2s 1.1s ease-out both;
}
@keyframes hero-word-first {
  0%, 20% { opacity: 1; transform: translateY(0); filter: blur(0); }
  25%, 100% { opacity: 0; transform: translateY(-.16em); filter: blur(2px); }
}
@keyframes hero-word-second {
  0%, 25% { opacity: 0; transform: translateY(.16em); filter: blur(0); }
  30%, 45% { opacity: 1; transform: translateY(0); filter: blur(0); }
  50%, 100% { opacity: 0; transform: translateY(-.16em); filter: blur(2px); }
}
@keyframes hero-word-third {
  0%, 50% { opacity: 0; transform: translateY(.16em); filter: blur(0); }
  55%, 70% { opacity: 1; transform: translateY(0); filter: blur(0); }
  75%, 100% { opacity: 0; transform: translateY(-.16em); filter: blur(2px); }
}
@keyframes hero-word-final {
  0%, 75% { opacity: 0; transform: translateY(.16em); }
  80%, 100% { opacity: 1; transform: translateY(0); }
}
@keyframes hero-word-underline {
  0%, 82% { transform: scaleX(0); }
  92%, 100% { transform: scaleX(1); }
}
.hero-row {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 32px; flex-wrap: wrap; margin-bottom: clamp(32px, 4vw, 56px);
}
.hero-row .lede { font-size: clamp(1.1rem, 1.7vw, 1.3rem); max-width: 32ch; color: var(--fg); }
.ctas { display: flex; gap: 14px; flex-wrap: wrap; }
.hero-media {
  position: relative; border-radius: var(--radius); overflow: hidden;
  background: var(--bg-elev); aspect-ratio: 21 / 9;
}
.hero-media video { width: 100%; height: 100%; object-fit: cover; object-position: 35% 40%; }
.hero-media-overlay { position: absolute; inset: 0; background: rgba(11, 7, 16, 0.24); pointer-events: none; }
.verified-pill {
  position: absolute; left: clamp(14px, 2vw, 28px); bottom: clamp(14px, 2vw, 28px);
  display: inline-flex; align-items: center; gap: 10px;
  background: #fff; color: #14100F;
  padding: 10px 18px 10px 12px; border-radius: 999px;
  font-weight: 600; font-size: 0.95rem;
  box-shadow: 0 8px 24px rgba(20, 16, 15, 0.18);
}
.verified-pill svg { width: 22px; height: 22px; flex-shrink: 0; }
@media (max-width: 760px) {
  .hero-media { aspect-ratio: 4 / 5; }
  .hero-media video { object-position: 28% 50%; }
}

@keyframes rise {
  from { opacity: 0; transform: translateY(28px); }
  to { opacity: 1; transform: none; }
}
.hero h1 .line { animation: rise 1s cubic-bezier(0.16, 1, 0.3, 1) both; }
.hero h1 .line:nth-child(2) { animation-delay: .14s; }
@media (prefers-reduced-motion: reduce) {
  .hero h1 .line,
  .hero-word-text,
  .hero-word::after { animation: none; }
  .hero-word-text:nth-child(-n+3) { display: none; }
  .hero-word-text:nth-child(4) { opacity: 1; }
}

/* ── Promise ───────────────────────────────────────────────── */
.promise { padding: clamp(40px, 5vw, 72px) 0 clamp(72px, 10vw, 130px); }
.promise-grid {
  display: grid; grid-template-columns: 5fr 6fr;
  gap: clamp(36px, 7vw, 100px); align-items: center;
}
.promise-photo { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 5; }
.promise-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.promise h2 { font-size: clamp(2.6rem, 5.6vw, 5rem); margin-bottom: 28px; }
.promise .lede { margin-bottom: 32px; font-size: clamp(1.1rem, 1.6vw, 1.3rem); }
@media (max-width: 860px) {
  .promise-grid { grid-template-columns: 1fr; }
  .promise-photo { aspect-ratio: 4 / 3; }
}

/* ── Features: three different objects ─────────────────────── */
.features { padding: 0 0 clamp(72px, 10vw, 130px); display: grid; gap: clamp(80px, 11vw, 140px); }
.feature {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(36px, 7vw, 100px); align-items: center;
}
.feature.flip .feature-copy { order: 2; }
.feature h2 { font-size: clamp(2.2rem, 4.4vw, 3.8rem); margin-bottom: 22px; max-width: 14ch; }
.feature .lede { margin-bottom: 28px; }

.scene-profile { position: relative; min-height: 420px; }
.scene-profile .scene-photo {
  width: 78%; margin-left: auto; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 5;
}
.scene-profile .scene-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.scene-profile .scene-card {
  position: absolute; left: 0; bottom: 8%;
  width: min(52%, 280px);
  filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.55));
}
.scene-profile .scene-card img { width: 100%; height: auto; border-radius: 22px; }

.chat {
  background: var(--bg-elev);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: clamp(28px, 4vw, 44px);
  display: grid; gap: 14px;
}
.chat-meta { font-size: 0.85rem; color: var(--grey); margin-bottom: 8px; }
.chat-message { position: relative; display: flex; min-width: 0; }
.chat-message.out { justify-content: flex-end; }
.bubble {
  max-width: 32ch; padding: 14px 18px; border-radius: 22px;
  font-size: 1.02rem; line-height: 1.45;
}
.bubble.in { background: rgba(255, 255, 255, 0.08); border-bottom-left-radius: 6px; }
.bubble.out {
  background: var(--pink); color: var(--fg);
  border-bottom-right-radius: 6px;
}
.chat-typing {
  position: absolute; top: 50%; left: 0;
  display: flex; align-items: center; gap: 5px;
  padding: 18px 20px; border-radius: 20px;
  background: rgba(255, 255, 255, 0.08);
  opacity: 0; transform: translateY(-50%); pointer-events: none;
}
.chat-message.out .chat-typing { left: auto; right: 0; background: var(--pink); }
.chat-typing span { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.chat.is-playing .chat-typing span { animation: typing-dot .75s ease-in-out infinite alternate; }
.chat-typing span:nth-child(2) { animation-delay: .15s; }
.chat-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes typing-dot { to { opacity: .35; transform: translateY(-3px); } }
@keyframes typing-show { 0%, 100% { opacity: 0; } 15%, 85% { opacity: 1; } }
@keyframes message-arrive {
  from { opacity: 0; transform: translateY(12px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.chat.is-pending .chat-meta,
.chat.is-pending .bubble { opacity: 0; }
.chat.is-playing .chat-meta { animation: message-arrive .4s both; }
.chat.is-playing .chat-message:nth-of-type(1) .chat-typing { animation: typing-show .75s .35s both; }
.chat.is-playing .chat-message:nth-of-type(1) .bubble { animation: message-arrive .45s 1.1s both; }
.chat.is-playing .chat-message:nth-of-type(2) .chat-typing { animation: typing-show .7s 1.55s both; }
.chat.is-playing .chat-message:nth-of-type(2) .bubble { animation: message-arrive .45s 2.25s both; }
.chat.is-playing .chat-message:nth-of-type(3) .chat-typing { animation: typing-show .75s 2.7s both; }
.chat.is-playing .chat-message:nth-of-type(3) .bubble { animation: message-arrive .45s 3.45s both; }
@media (prefers-reduced-motion: reduce) {
  .chat.is-pending .chat-meta,
  .chat.is-pending .bubble { opacity: 1; }
  .chat.is-playing .chat-meta,
  .chat.is-playing .bubble,
  .chat.is-playing .chat-typing { animation: none; }
  .chat-typing { display: none; }
}

.blur-scene {
  position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 5;
}
.blur-scene img {
  width: 100%; height: 100%; object-fit: cover;
  filter: blur(28px); transform: scale(1.08);
  transition: filter .5s ease, transform .5s ease;
}
.blur-scene:hover img,
.blur-scene:focus-within img { filter: blur(0); transform: scale(1); }
.blur-scene .blur-hint {
  position: absolute; inset: auto 0 28px; text-align: center;
  font-weight: 600; pointer-events: none;
  text-shadow: 0 8px 24px rgba(0, 0, 0, 0.6);
}
.blur-scene:hover .blur-hint,
.blur-scene:focus-within .blur-hint { opacity: 0; }

@media (max-width: 860px) {
  .feature { grid-template-columns: 1fr; }
  .feature.flip .feature-copy { order: 0; }
  .feature h2 { max-width: none; }
  .scene-profile { min-height: 0; }
  .scene-profile .scene-photo { width: 100%; aspect-ratio: 4 / 5; }
  .scene-profile .scene-card { width: 46%; bottom: 6%; left: 6%; }
}

/* ── Letter ────────────────────────────────────────────────── */
.letter {
  background: var(--bg-elev);
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  padding: clamp(72px, 10vw, 130px) 0;
}
.letter-grid {
  display: grid; grid-template-columns: 6fr 5fr;
  gap: clamp(36px, 6vw, 90px); align-items: center;
}
.letter h2 { font-size: clamp(2.4rem, 4.1vw, 3.8rem); margin-bottom: 36px; max-width: 20ch; }
.letter-body {
  display: grid; gap: 1.15em; max-width: 34em;
  font-family: var(--serif); font-variation-settings: "opsz" 24;
  font-weight: 350; font-size: clamp(1.15rem, 1.6vw, 1.4rem); line-height: 1.6;
}
.letter-sign { margin-top: 32px; font-family: var(--serif); font-style: italic; font-size: 1.25rem; }
.letter .text-link { display: inline-block; margin-top: 28px; }
.letter-art img { width: 100%; max-width: 560px; margin: 0 auto; filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.6)); }
@media (max-width: 860px) { .letter-grid { grid-template-columns: 1fr; } }

/* ── Community profiles ────────────────────────────────────── */
.community { padding: clamp(72px, 10vw, 130px) 0; }
.community-head {
  display: grid; grid-template-columns: 1.1fr 1fr; align-items: end;
  gap: clamp(24px, 5vw, 64px); margin-bottom: clamp(32px, 4vw, 56px);
}
.community-head h2 { font-size: clamp(2.6rem, 5.6vw, 5rem); }
.community-head .lede { max-width: 40ch; }
@media (max-width: 860px) { .community-head { grid-template-columns: 1fr; } }
.community-profiles {
  display: flex; gap: clamp(14px, 2vw, 24px);
  overflow-x: auto; overscroll-behavior-inline: contain;
  padding: 0 max(clamp(20px, 5vw, 64px), calc(50vw - 556px));
  scrollbar-width: none;
}
.community-profiles::-webkit-scrollbar { display: none; }
.community-profiles li {
  flex: 0 0 clamp(270px, 30vw, 390px);
  border-radius: 24px; overflow: hidden;
  background: var(--bg-elev);
}
.community-profiles img { width: 100%; height: auto; }
@media (max-width: 600px) {
  .community-profiles li { flex-basis: min(78vw, 350px); }
}

/* ── Download ──────────────────────────────────────────────── */
.download {
  background: radial-gradient(ellipse 70% 90% at 50% 115%, rgba(255, 45, 120, 0.40), transparent 70%), var(--bg-elev);
  color: var(--fg); border-top: 1px solid var(--line);
  text-align: center; padding: clamp(88px, 12vw, 160px) 0;
}
.download h2 { font-size: clamp(3.2rem, 9vw, 8.4rem); margin-bottom: clamp(32px, 4vw, 52px); }
.download .ctas { justify-content: center; }

/* ── Footer ────────────────────────────────────────────────── */
.footer { padding: 56px 0 0; overflow: hidden; }
.footer-top {
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 40px;
  border-bottom: 1px solid var(--line); padding-bottom: 36px; margin-bottom: 22px;
}
.footer-brand img { height: 80px; width: auto; margin-bottom: 16px; filter: brightness(0) invert(1); opacity: 0.7; }
.footer-brand p { color: var(--grey); max-width: 28ch; font-size: 0.95rem; }
.footer-cols { display: flex; gap: 60px; flex-wrap: wrap; }
.footer-cols h4 { font-size: 0.85rem; margin: 0 0 14px; font-weight: 600; }
.footer-cols a { display: block; color: var(--grey); font-size: 0.92rem; margin-bottom: 10px; transition: color .2s; }
.footer-cols a:hover { color: var(--pink); }
.footer-legal { color: var(--grey); font-size: 0.85rem; padding-bottom: 30px; }
.footer-mega {
  font-size: 26vw; font-weight: 900; line-height: 0.72; text-align: center;
  letter-spacing: -0.06em; margin-top: 60px; color: rgba(255, 255, 255, 0.07); user-select: none;
}

/* ── Inner page hero ───────────────────────────────────────── */
.page-hero { padding: clamp(56px, 9vw, 120px) 0 clamp(40px, 6vw, 72px); }
.page-hero h1 { font-size: clamp(2.8rem, 7vw, 6.2rem); margin-bottom: 24px; max-width: 16ch; }
.page-hero .lede { font-size: clamp(1.1rem, 1.7vw, 1.3rem); color: var(--fg); }
.page-hero.center { text-align: center; }
.page-hero.center h1,
.page-hero.center .lede { margin-left: auto; margin-right: auto; }
.page-hero.center .lede { max-width: 40ch; }

.split {
  padding: clamp(40px, 7vw, 96px) 0;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(36px, 7vw, 100px); align-items: center;
}
.split h2 { font-size: clamp(2.2rem, 4.4vw, 3.8rem); margin-bottom: 22px; }
.split .lede { margin-bottom: 0; }
.split-photo { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 5; }
.split-photo img { width: 100%; height: 100%; object-fit: cover; }
.split-photo.wide { aspect-ratio: 4 / 3; }
.split-photo.art { aspect-ratio: auto; overflow: visible; }
.split-photo.art img { object-fit: contain; height: auto; filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.6)); }
.band > .wrap.split { padding-top: 0; padding-bottom: 0; }
@media (max-width: 860px) {
  .split { grid-template-columns: 1fr; }
  .split-photo:not(.art) { aspect-ratio: 4 / 3; }
}

.band { padding: clamp(72px, 10vw, 130px) 0; border-top: 1px solid var(--line); }
.band.band-tight { padding-top: 0; border-top: 0; }
.band h2 { font-size: clamp(2.2rem, 4.4vw, 3.6rem); margin-bottom: 36px; }

.bleed { margin: 0; }
.bleed img { width: 100%; height: min(72vh, 760px); object-fit: cover; }

/* About: typeset proof + beliefs */
.proof {
  font-family: var(--serif); font-variation-settings: "opsz" 40;
  font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.4; max-width: 28ch;
}
.beliefs { display: grid; gap: 28px; max-width: 36em; }
.beliefs p {
  font-family: var(--serif); font-style: italic; font-variation-settings: "opsz" 36;
  font-size: clamp(1.5rem, 2.6vw, 2.1rem); line-height: 1.3; font-weight: 350;
}

/* Safety essays */
.essays { display: grid; gap: clamp(48px, 7vw, 80px); max-width: 40em; }
.essays article h3 {
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(1.8rem, 3vw, 2.4rem); margin-bottom: 14px;
}
.essays article p { color: var(--grey); font-size: 1.08rem; max-width: 42ch; }

.steps { display: grid; gap: 28px; margin-top: 36px; }
.step { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: start; }
.step-num {
  font-family: var(--serif); font-size: 1.4rem; color: var(--pink); line-height: 1.2; width: 1.6em;
}
.step h3 { font-size: 1.1rem; font-weight: 650; margin-bottom: 4px; }
.step p { color: var(--grey); font-size: 0.98rem; }

.verify-phone img { width: 100%; max-width: 360px; margin: 0 auto; filter: drop-shadow(0 32px 64px rgba(0, 0, 0, 0.45)); }

/* Community manifesto */
.who-lines {
  display: grid; gap: 10px;
  font-family: var(--serif); font-size: clamp(1.4rem, 2.4vw, 1.9rem);
  font-variation-settings: "opsz" 36;
}
.who-lede { margin-top: 22px; }
.who-lines .no { color: var(--grey); }

.manifesto { counter-reset: rule; display: grid; gap: 0; max-width: 44em; }
.manifesto li {
  counter-increment: rule;
  display: grid; grid-template-columns: 3ch 1fr; gap: 20px;
  padding: 28px 0; border-top: 1px solid var(--line);
  font-size: 1.08rem; line-height: 1.5;
}
.manifesto li::before {
  content: counter(rule, decimal-leading-zero);
  font-family: var(--serif); color: var(--pink); font-size: 1.15rem;
}
.manifesto li:last-child { border-bottom: 1px solid var(--line); }

.enforce { max-width: 42em; }
.enforce p { color: var(--grey); font-size: 1.1rem; }
.enforce-link { margin-top: 28px; }

/* Support */
.faq { max-width: 760px; }
.faq-category { margin-bottom: 48px; }
.faq-category h3 {
  font-family: var(--serif); font-weight: 400;
  font-size: 1.6rem; margin: 0 0 8px; padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.faq-item input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; }
.faq-item label {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 20px 0; font-weight: 600; font-size: 1.05rem; cursor: pointer;
  border-bottom: 1px solid var(--line);
}
.faq-item label::after { content: "▾"; color: var(--pink); flex-shrink: 0; transition: transform .2s; }
.faq-item input:checked + label::after { transform: rotate(180deg); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-item input:checked ~ .faq-answer { max-height: 240px; }
.faq-answer p { padding: 16px 0 24px; color: var(--grey); margin: 0; }

.form-panel { max-width: 560px; margin: 0 auto; }
.form-panel h2 { text-align: center; font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 12px; }
.form-panel .lede { text-align: center; margin: 0 auto 36px; }
.form-input {
  width: 100%; padding: 16px 20px; margin-bottom: 14px;
  border: 1px solid var(--line); border-radius: 16px;
  font-family: var(--sans); font-size: 1rem;
  background: var(--bg-elev); color: var(--fg); outline: none;
}
.form-input:focus { border-color: var(--pink); }
.form-input option { background: var(--bg); }
textarea.form-input { resize: vertical; min-height: 140px; }
.form-thanks { text-align: center; font-family: var(--serif); font-size: 1.4rem; padding: 48px 0; }

.paper {
  background: var(--fg);
  color: var(--bg);
  border-top: 1px solid rgba(11, 7, 16, 0.08);
  border-bottom: 1px solid rgba(11, 7, 16, 0.08);
}
.paper:not(.letter) { padding: clamp(72px, 10vw, 130px) 0; }
.paper .letter-body,
.paper .lede { color: rgba(11, 7, 16, 0.72); }
.paper .letter-sign { color: var(--bg); }
.paper .form-input {
  background: #fff;
  color: var(--bg);
  border-color: rgba(11, 7, 16, 0.16);
}
.paper .form-input option { background: #fff; color: var(--bg); }
.paper .btn-black {
  background: var(--bg);
  color: var(--fg);
  border-color: var(--bg);
}
.paper .btn-black:hover { background: transparent; color: var(--bg); }

/* Legal */
.legal { max-width: 760px; padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(72px, 10vw, 120px); }
.legal h1 { font-size: clamp(2.6rem, 6vw, 4.4rem); margin-bottom: 12px; }
.legal .meta { color: var(--grey); margin-bottom: 40px; }
.legal h2 {
  font-family: var(--serif); font-weight: 400;
  font-size: 1.5rem; margin: 44px 0 14px;
}
.legal p, .legal li { color: var(--grey); font-size: 1.05rem; margin-bottom: 14px; }
.legal ul { list-style: disc; padding-left: 1.3em; }
.legal a { color: var(--pink); font-weight: 600; }
.summary {
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  padding: 32px 0; margin-bottom: 24px;
}
.summary h3 { font-family: var(--serif); font-size: 1.4rem; margin-bottom: 16px; }
.summary li { color: var(--fg); margin-bottom: 10px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero h1 .line { animation: none; }
  .btn:hover { transform: none; }
  .blur-scene img { filter: blur(12px); }
}
