/* ============================================================
   Joaquín Carrasquilla — Conversion funnel
   Restrained · gallery · black + dark gray + warm ivory.
   Champagne gold used sparingly: accents, rules, key numerals.
   ============================================================ */

:root {
  --bg-top: #0a0a0a;
  --bg-mid: #141414;
  --bg-bot: #1f1f1f;
  --bg-card: rgba(255, 255, 255, 0.025);
  --bg-card-2: rgba(255, 255, 255, 0.04);
  --bg-inset: rgba(0, 0, 0, 0.25);
  --ink: #f5f5f5;
  --ink-soft: #b8b8b8;
  --ink-dim: #6a6a6a;
  --line: rgba(255, 255, 255, 0.08);
  --line-strong: rgba(255, 255, 255, 0.22);
  --gold: #e0d4a8;
  --gold-glow: rgba(224, 212, 168, 0.28);
  --gold-glow-strong: rgba(224, 212, 168, 0.38);
  --gold-drop-glow: 0 8px 26px rgba(224, 212, 168, 0.24), 0 3px 12px rgba(240, 225, 177, 0.16);
  --gold-drop-glow-strong: 0 12px 36px rgba(224, 212, 168, 0.36), 0 4px 16px rgba(240, 225, 177, 0.24), 0 0 20px rgba(224, 212, 168, 0.12);
  --image-radius: 2px;
  --max: 1200px;
  --display: "Fraunces", Georgia, serif;
  --serif: "Fraunces", Georgia, serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --header-h: 68px;
}

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

html {
  scroll-behavior: smooth;
  background: var(--bg-top);
}

body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  background: linear-gradient(180deg, var(--bg-top) 0%, var(--bg-mid) 45%, var(--bg-bot) 100%);
  background-attachment: fixed;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; display: block; }

.hero-slide img,
.proof-card,
.artist-main,
.artist-inset,
.upload-thumb {
  border-radius: var(--image-radius);
  box-shadow: var(--gold-drop-glow);
}

.hero-slide img,
.proof-card img,
.artist-main img,
.artist-inset img,
.upload-thumb img,
.story-point__media img {
  border-radius: var(--image-radius);
}

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

a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 2px;
}

em { font-style: italic; }

.container {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 28px;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  font-family: var(--sans);
  cursor: pointer;
  border: none;
  border-radius: 6px;
  box-shadow: none;
  transition:
    background 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.35s ease;
}

.btn-label {
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-transform: none;
  line-height: 1.35;
}

.btn-sub {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.01em;
  text-transform: none;
  opacity: 0.68;
}

/* Header — outlined ghost */
.btn-header {
  flex-direction: row;
  gap: 0;
  padding: 11px 20px;
  background: transparent;
  color: var(--ink);
  border: 1px solid rgba(255, 255, 255, 0.28);
  font-size: 14px;
  letter-spacing: 0.01em;
  font-weight: 500;
  text-transform: none;
  box-shadow: var(--gold-drop-glow);
}

.btn-header:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.5);
  box-shadow: var(--gold-drop-glow-strong);
}

/* Primary CTAs — warm ivory, grounded */
.btn-hero,
.btn-cta-band,
.btn-submit,
.btn-form-next {
  padding: 17px 36px;
  background: #f4efe7;
  color: #14110b;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    var(--gold-drop-glow);
}

.btn-hero:hover,
.btn-cta-band:hover,
.btn-submit:hover,
.btn-form-next:hover:not(:disabled) {
  background: #fffaf2;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    var(--gold-drop-glow-strong);
}

.btn-hero:active,
.btn-cta-band:active,
.btn-submit:active,
.btn-form-next:active:not(:disabled) {
  background: #e8dcc4;
  color: #1a1408;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    var(--gold-drop-glow);
  transition: background 0.12s ease, box-shadow 0.12s ease, color 0.12s ease;
}

.btn-cta-band {
  display: flex;
  width: fit-content;
  margin-inline: auto;
}

.btn-hero .btn-label,
.btn-cta-band .btn-label,
.btn-submit .btn-label {
  font-size: 16px;
  letter-spacing: 0.01em;
}

.btn-hero .btn-sub,
.btn-cta-band .btn-sub,
.btn-submit .btn-sub {
  color: #2a2a2a;
  opacity: 0.6;
}

.btn-submit {
  width: 100%;
  margin-top: 8px;
}

/* Footer — outlined ghost */
.btn-footer {
  flex-direction: row;
  padding: 11px 22px;
  background: transparent;
  color: var(--ink);
  border: 1px solid rgba(255, 255, 255, 0.22);
  font-size: 14px;
  letter-spacing: 0.01em;
  font-weight: 500;
  text-transform: none;
  box-shadow: var(--gold-drop-glow);
}

.btn-footer:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.5);
  box-shadow: var(--gold-drop-glow-strong);
}

/* ---------- Header ---------- */
.site-header {
  position: relative;
  z-index: 100;
  height: var(--header-h);
  overflow: visible;
  background: linear-gradient(180deg, rgba(10, 10, 10, 0.86) 0%, rgba(10, 10, 10, 0.5) 80%, transparent 100%);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.header-inner {
  max-width: var(--max);
  margin: 0 auto;
  height: 100%;
  padding: 0 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  overflow: visible;
}

.site-header .btn-hero {
  flex-direction: row;
  flex-shrink: 0;
  padding: 11px 22px;
}

.site-header .btn-hero .btn-label {
  font-size: 14px;
}

/* On desktop the header logo is hidden — the in-hero logo is used instead */
.site-header--mobilelogo {
  display: none;
}

/* Desktop: logo lives inside the hero content, centered and small */
.hero-content .logo {
  display: block;
  width: 100%;
  margin: 0 0 20px;
  text-align: center;
}

.hero-content .logo img {
  width: clamp(130px, 12vw, 170px);
  height: auto;
  margin: 0 auto;
  display: block;
  opacity: 0.95;
  border-radius: 0;
  box-shadow: none;
}

/* ---------- Hero ---------- */
.hero {
  position: relative;
  padding: 8px 0 44px;
  overflow: hidden;
}

/* Desktop has no header bar, so give the hero breathing room at the top */
@media (min-width: 961px) {
  .hero {
    padding-top: 60px;
  }
}

.hero-inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px 40px;
  align-items: center;
}

.hero-content {
  grid-column: 1;
  position: relative;
  z-index: 5;
  max-width: none;
  margin-inline: 0;
  text-align: left;
}

.hero-carousel {
  grid-column: 2 / 4;
  position: relative;
  z-index: 1;
  width: 100%;
  min-width: 0;
}

/* Framed stage — single card, crossfade */
/* Coverflow stage — 3 cards visible (prev · active · next) */
.hero-slideshow {
  position: relative;
  height: clamp(360px, 42vw, 540px);
  overflow: hidden;
  isolation: isolate;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.hero-slide {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(56%, 400px);
  margin: 0;
  opacity: 0;
  z-index: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.7);
  transform-origin: center center;
  backface-visibility: hidden;
  will-change: transform, opacity;
  transition:
    transform 0.75s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.hero-slide img {
  width: 100%;
  aspect-ratio: 4 / 5;
  height: auto;
  object-fit: cover;
  object-position: center 20%;
  border: none;
  filter: contrast(1.03) saturate(0.92);
  transition: box-shadow 0.75s ease;
}

/* Center card */
.hero-slide.is-active {
  opacity: 1;
  z-index: 3;
  pointer-events: auto;
  transform: translate(-50%, -50%) scale(1);
}

.hero-slide.is-active img {
  filter: contrast(1.04) saturate(0.95);
  box-shadow: var(--gold-drop-glow-strong);
}

/* Side cards (peeking) */
.hero-slide.is-prev {
  opacity: 0.5;
  z-index: 2;
  transform: translate(calc(-50% - 72%), -50%) scale(0.84);
}

.hero-slide.is-next {
  opacity: 0.5;
  z-index: 2;
  transform: translate(calc(-50% + 72%), -50%) scale(0.84);
}

.hero-slide.is-prev img,
.hero-slide.is-next img {
  filter: contrast(1) saturate(0.8) brightness(0.9);
}

/* Off-stage cards — parked to their correct side, fully hidden */
.hero-slide.is-far-prev {
  opacity: 0;
  z-index: 1;
  transform: translate(calc(-50% - 132%), -50%) scale(0.7);
}

.hero-slide.is-far-next {
  opacity: 0;
  z-index: 1;
  transform: translate(calc(-50% + 132%), -50%) scale(0.7);
}

.hero-slide figcaption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 64px 20px 20px;
  background: linear-gradient(
    0deg,
    rgba(10, 10, 10, 0.94) 0%,
    rgba(10, 10, 10, 0.45) 52%,
    transparent 100%
  );
  opacity: 0;
  transform: translateY(10px);
  transition:
    opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.2s,
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.hero-slide.is-active figcaption {
  opacity: 1;
  transform: translateY(0);
}

.hero-slide figcaption strong {
  display: block;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
  margin-bottom: 4px;
  color: var(--ink);
}

.hero-slide figcaption span {
  font-size: 12px;
  color: var(--ink-soft);
  letter-spacing: 0.04em;
}

/* Prev / next arrows (overlaid on the stage) */
.hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 4;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  background: rgba(10, 10, 10, 0.5);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: var(--ink);
  cursor: pointer;
  opacity: 0;
  transition:
    opacity 0.3s ease,
    background 0.25s ease,
    border-color 0.25s ease;
}

.hero-arrow.prev { left: 12px; }
.hero-arrow.next { right: 12px; }

.hero-arrow svg { display: block; }

.hero-slideshow:hover .hero-arrow,
.hero-slideshow:focus-within .hero-arrow {
  opacity: 1;
}

.hero-arrow:hover,
.hero-arrow:focus-visible {
  background: rgba(10, 10, 10, 0.82);
  border-color: var(--gold);
  color: var(--gold);
}

/* Dots */
.hero-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 9px;
  margin-top: 20px;
}

.hero-dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: var(--line-strong);
  cursor: pointer;
  transition:
    background 0.3s ease,
    width 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.hero-dot:hover { background: var(--ink-soft); }

.hero-dot.is-active {
  width: 24px;
  background: var(--gold);
}

.hero-dot:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

.hero-eyebrow {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 0 22px;
}

.hero-title {
  font-family: var(--serif);
  font-size: clamp(32px, 3.8vw, 54px);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -0.02em;
  margin: 0 0 20px;
  max-width: 14ch;
  color: var(--ink);
}

.hero-title em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--gold);
  display: block;
  font-size: 0.96em;
  letter-spacing: -0.03em;
  margin-top: 4px;
  opacity: 1;
}

.text-gold {
  color: var(--gold);
  display: block;
  font-size: 0.96em;
  letter-spacing: -0.03em;
  margin-top: 4px;
}

.hero-sub {
  font-size: clamp(14px, 1.25vw, 16px);
  line-height: 1.55;
  color: var(--ink-soft);
  max-width: 40ch;
  margin: 0 0 28px;
  font-weight: 400;
}

.hero-sub strong {
  color: var(--ink);
  font-weight: 600;
}

.btn-hero {
  display: flex;
  width: fit-content;
  margin-inline: 0;
}

/* ---------- As seen on ---------- */
.seen-on {
  padding: 0 0 64px;
}

.seen-on__label {
  font-family: var(--serif);
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 400;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--ink);
  text-align: left;
  margin: 0 0 32px;
  max-width: 22ch;
}

.seen-on__grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px 16px;
  align-items: center;
  justify-items: center;
}

.seen-on__grid li {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: none;
}

.seen-on__grid img {
  width: 100%;
  max-height: 52px;
  height: auto;
  object-fit: contain;
  object-position: center;
  opacity: 0.72;
  transition: opacity 0.25s ease;
}

.seen-on__grid img:hover {
  opacity: 0.95;
}

@media (min-width: 768px) {
  .seen-on__label {
    max-width: none;
    margin-bottom: 36px;
  }

  .seen-on__grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 36px 28px;
  }

  .seen-on__grid img {
    max-height: 68px;
  }
}

/* ---------- Trust badges ---------- */
.trust {
  padding: 88px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.trust-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px 36px;
}

.trust-badge {
  text-align: left;
}

.trust-badge__icon {
  margin: 0 0 20px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.trust-badge__icon img {
  width: 100px;
  height: 100px;
  display: block;
  object-fit: contain;
  opacity: 0.92;
}

.trust-badge__title {
  font-family: var(--serif);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 400;
  letter-spacing: -0.02em;
  margin: 0 0 10px;
  color: var(--ink);
}

.trust-badge__tags {
  font-family: var(--serif);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--gold);
  margin: 0 0 12px;
  max-width: 34ch;
}

.trust-badge__text {
  font-family: var(--serif);
  font-size: 14px;
  color: var(--ink-soft);
  margin: 0;
  line-height: 1.65;
  max-width: 36ch;
  font-weight: 400;
}

/* ---------- Sculpture strip ---------- */
.sculpt-strip-section {
  padding: 8px 0 0;
}

.sculpt-strip {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 14px;
}

.sculpt-strip__item {
  flex: 1 1 0;
  min-width: 0;
}

.sculpt-strip__item img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center 28%;
  border-radius: var(--image-radius);
  box-shadow: var(--gold-drop-glow);
}

@media (max-width: 760px) {
  .sculpt-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }

  /* Only the three featured sculptures on mobile — one clean row */
  .sculpt-strip__item:not(.sculpt-strip__item--mobile) {
    display: none;
  }
}

/* ---------- Story ---------- */
.story {
  padding: 112px 0;
}

.story-inner { max-width: 760px; }

.story-inner--wide {
  max-width: var(--max);
}

.story-inner--wide .story-body {
  max-width: 760px;
}

.story-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  column-gap: clamp(32px, 5vw, 64px);
  row-gap: 24px;
  margin-bottom: clamp(36px, 4vw, 52px);
}

.story-intro__copy {
  min-width: 0;
  max-width: 620px;
}

.story-intro__action {
  justify-self: end;
  padding-top: 34px;
}

.story-intro .story-title {
  margin-bottom: 0;
}

.story-intro .btn-hero {
  padding: 14px 28px;
  max-width: 100%;
}

.story-intro .btn-hero .btn-label {
  font-size: 15px;
  line-height: 1.3;
  text-align: center;
}

.story-kicker {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 22px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.story-kicker::before {
  content: "";
  width: 26px;
  height: 1px;
  background: var(--gold);
  opacity: 0.7;
}

.story-title {
  font-family: var(--serif);
  font-size: clamp(32px, 4.6vw, 52px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 28px;
  color: var(--ink);
}

.story-points {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.story-point {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.story-point__media {
  overflow: hidden;
  border-radius: var(--image-radius);
}

.story-point__media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  box-shadow: var(--gold-drop-glow);
  border-radius: var(--image-radius);
}

.story-point:first-child .story-point__media img {
  object-position: center 35%;
}

.story-point:nth-child(2) .story-point__media img {
  object-position: center 40%;
}

.story-point:nth-child(3) .story-point__media img {
  object-position: center 30%;
}

.story-point__copy {
  padding: 0 2px;
}

.story-point__copy strong {
  display: block;
  font-family: var(--serif);
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 400;
  letter-spacing: -0.01em;
  margin-bottom: 10px;
  color: var(--ink);
  line-height: 1.2;
}

.story-point__copy span {
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink-soft);
}

.story-banner {
  width: 100vw;
  max-width: 100vw;
  margin: 0 0 56px;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

.story-banner img {
  width: 100%;
  height: clamp(240px, 42vw, 520px);
  object-fit: cover;
  object-position: center 45%;
  border-radius: 0;
  box-shadow: none;
}

.story-body p {
  font-size: clamp(16px, 1.4vw, 18px);
  line-height: 1.7;
  color: var(--ink-soft);
  margin: 0 0 22px;
}

.story-body strong {
  color: var(--ink);
  font-weight: 600;
}

.story-body em {
  font-family: var(--serif);
  font-style: italic;
  color: var(--ink);
  font-size: 1.05em;
}

.story-pull {
  font-family: var(--serif);
  font-size: clamp(20px, 2.4vw, 28px) !important;
  font-style: italic;
  font-weight: 400;
  color: var(--ink) !important;
  line-height: 1.4 !important;
  padding: 22px 0 22px 28px;
  border-left: 1px solid rgba(255, 255, 255, 0.3);
  margin: 36px 0 48px !important;
}

.story-pull__attribution {
  display: block;
  font-size: 0.75em;
  font-style: normal;
  margin-top: 12px;
  color: var(--ink-soft);
}

/* ---------- How it works ---------- */
.howto-head {
  margin-bottom: 36px;
}

.howto-title {
  font-family: var(--serif);
  font-size: clamp(26px, 3.2vw, 38px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--ink);
}

.howto-title em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--gold);
}

.howto-steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.howto-step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 30px 24px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--bg-card);
  transition:
    border-color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.35s ease;
}

.howto-step:hover {
  border-color: var(--line-strong);
  transform: translateY(-3px);
  box-shadow: var(--gold-drop-glow);
}

.howto-num {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--gold);
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gold-glow);
  border-radius: 50%;
  flex: 0 0 auto;
}

.howto-step strong {
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--ink);
}

.howto-step p {
  margin: 0;
  font-family: var(--serif);
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ink-soft);
}

.howto-section {
  padding: 88px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.section-cta {
  margin-top: 56px;
}

.section-cta--story {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 8px;
}

/* Reassurance microcopy under primary CTAs */
.cta-note {
  margin: 14px 0 0;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.03em;
  color: var(--ink-dim);
  text-align: inherit;
}

.story-intro__action .cta-note {
  max-width: 26ch;
  text-align: center;
}

.proof-cta {
  grid-column: span 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 16px;
  align-self: stretch;
  margin: 0;
  padding: 0 12px;
}

.proof-cta__title {
  font-family: var(--serif);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0;
}

.proof-cta__row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 20px 28px;
  width: 100%;
}

.proof-cta__text {
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0;
  color: var(--ink-soft);
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
}

.proof-cta .btn {
  flex: 0 0 auto;
}

/* ---------- Section headers ---------- */
.section-head { margin-bottom: 56px; }

.section-head--center { text-align: center; }

.section-head--center .section-lead { margin-inline: auto; }

.section-eyebrow {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 0 16px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.section-eyebrow::before {
  content: "";
  width: 26px;
  height: 1px;
  background: var(--gold);
  opacity: 0.7;
}

.section-title {
  font-family: var(--serif);
  font-size: clamp(30px, 4.2vw, 48px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 18px;
  color: var(--ink);
}

.section-title em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  color: var(--ink);
  letter-spacing: -0.025em;
  opacity: 0.95;
}

.section-lead {
  font-size: 17px;
  color: var(--ink-soft);
  max-width: 50ch;
  margin: 0;
  line-height: 1.6;
  font-weight: 400;
}

/* ---------- Social proof ---------- */
.proof {
  padding: 112px 0;
  border-top: 1px solid var(--line);
}

.proof-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.proof-card {
  margin: 0;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--bg-card);
  transition: border-color 0.35s ease, transform 0.35s ease, box-shadow 0.35s ease;
}

.proof-card:hover {
  border-color: rgba(255, 255, 255, 0.22);
  transform: translateY(-3px);
  box-shadow: var(--gold-drop-glow-strong);
}

.proof-card img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  filter: contrast(1.02) saturate(0.88);
  transition: transform 0.5s ease, filter 0.5s ease;
}

.proof-card:hover img {
  transform: scale(1.03);
}

.proof-card figcaption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 56px 18px 18px;
  background: linear-gradient(0deg, rgba(10, 10, 10, 0.95) 0%, transparent 100%);
}

.proof-card strong {
  display: block;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0;
  margin-bottom: 4px;
  color: var(--ink);
}

.proof-card span {
  font-size: 12px;
  color: var(--ink-soft);
  letter-spacing: 0.04em;
}

.proof-card--wide {
  grid-column: span 1;
}

.proof-card--wide img {
  aspect-ratio: 4 / 5;
  object-position: center 40%;
}

/* ---------- Artist ---------- */
.artist {
  padding: 112px 0;
  border-top: 1px solid var(--line);
}

.artist-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

.artist-visual {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  padding: 32px 24px 0;
}

.artist-collage {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 420px;
  padding-bottom: 8px;
}

.artist-main {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  width: 68%;
  max-width: 320px;
  border: 1px solid var(--line);
  overflow: hidden;
}

.artist-main img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.artist-inset {
  position: absolute;
  margin: 0;
  width: 30%;
  max-width: 140px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  overflow: hidden;
}

.artist-inset img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.artist-inset--1 {
  top: 8%;
  right: 6%;
  z-index: 3;
}

.artist-inset--2 {
  bottom: 28%;
  left: 4%;
  z-index: 4;
}

.artist-inset--3 {
  bottom: 4%;
  right: 14%;
  z-index: 2;
  width: 26%;
  max-width: 120px;
}

.artist-copy p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--ink-soft);
  margin: 0 0 20px;
}

.artist-copy strong {
  color: var(--ink);
  font-weight: 500;
}

.artist-copy em {
  font-family: var(--serif);
  font-style: italic;
  color: var(--ink);
}

.artist-stats {
  list-style: none;
  padding: 24px 0 0;
  margin: 32px 0 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  border-top: 1px solid var(--line);
  position: relative;
  z-index: 5;
}

.artist-stats li {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.artist-stats strong {
  font-family: var(--serif);
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--gold);
}

.artist-stats span {
  font-size: 12px;
  line-height: 1.35;
  color: var(--ink-soft);
}

/* ---------- CTA band ---------- */
.cta-band {
  position: relative;
  padding: 128px 0;
  overflow: hidden;
}

.cta-band--closing {
  padding-bottom: 0;
}

.cta-band__bg { position: absolute; inset: 0; }

.cta-band__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: contrast(1.02) saturate(0.78);
}

.cta-band__scrim {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10, 10, 10, 0.92) 0%, rgba(10, 10, 10, 0.65) 50%, rgba(10, 10, 10, 0.85) 100%),
    linear-gradient(0deg, rgba(10, 10, 10, 0.5) 0%, transparent 50%);
}

.cta-band--closing .cta-band__scrim {
  background:
    linear-gradient(90deg, rgba(10, 10, 10, 0.88) 0%, rgba(10, 10, 10, 0.58) 50%, rgba(10, 10, 10, 0.82) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.35) 55%, rgba(0, 0, 0, 0.7) 100%);
}

.cta-band__content {
  position: relative;
  z-index: 2;
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
}

.cta-band--closing .cta-band__content {
  padding-bottom: 72px;
  z-index: 4;
}

.cta-band--closing .btn-cta-band {
  position: relative;
  z-index: 5;
}

.cta-band__title {
  font-family: var(--serif);
  font-size: clamp(32px, 4.6vw, 52px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 22px;
  color: var(--ink);
}

.cta-band__text {
  font-size: 17px;
  color: var(--ink-soft);
  margin: 0 0 36px;
  line-height: 1.6;
  max-width: 44ch;
  margin-inline: auto;
}

/* ---------- Form ---------- */
.page-apply .apply {
  padding: 56px 0 88px;
  position: relative;
  z-index: 3;
}

.apply {
  padding: 112px 0 96px;
}

.apply-inner { max-width: 720px; }

.form-shell {
  position: relative;
  z-index: 5;
  padding: 40px;
  background: var(--bg-card);
  border: 1px solid var(--line);
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.45);
}

.form-progress {
  margin-bottom: 32px;
}

.form-progress__track {
  height: 3px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  overflow: hidden;
}

.form-progress__fill {
  height: 100%;
  background: linear-gradient(90deg, var(--gold) 0%, #d4b87a 100%);
  border-radius: 999px;
  transition: width 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.form-progress__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin: 14px 0 0;
  font-family: var(--sans);
  font-size: 13px;
  color: var(--ink-soft);
}

.form-progress__count {
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.form-progress__step-name {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--ink);
  text-transform: none;
}

.form-quiz-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 8px;
}

.btn-form-back {
  flex-direction: row;
  gap: 0;
  padding: 14px 22px;
  margin-right: auto;
  background: transparent;
  color: var(--ink-soft);
  border: 1px solid var(--line-strong);
  box-shadow: var(--gold-drop-glow);
}

.btn-form-back:hover {
  background: rgba(255, 255, 255, 0.04);
  color: var(--ink);
  border-color: rgba(255, 255, 255, 0.35);
  box-shadow: var(--gold-drop-glow-strong);
}

.btn-form-next:disabled {
  opacity: 0.38;
  cursor: not-allowed;
  box-shadow: none;
}

.form-trust {
  list-style: none;
  padding: 0 0 28px;
  margin: 0 0 28px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 24px;
  border-bottom: 1px solid var(--line);
}

.form-trust li {
  font-size: 13px;
  font-weight: 400;
  color: var(--ink-soft);
  display: flex;
  align-items: center;
  gap: 8px;
}

.form-trust li::before {
  content: "✓";
  color: var(--ink);
  font-weight: 500;
}

.form-step {
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  transition: opacity 0.3s ease;
}

.form-step[hidden] {
  display: none;
}

.form-step.is-active {
  animation: form-step-in 0.35s ease;
}

@keyframes form-step-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.form-step:focus-within {
  border-color: transparent;
}

.form-step legend {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 0;
  margin-bottom: 24px;
  border: 0;
  width: 100%;
}

.step-num {
  font-family: var(--sans);
  font-size: 22px;
  font-weight: 500;
  color: var(--gold);
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.92;
}

.step-label {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 400;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.form label {
  display: block;
  margin-bottom: 18px;
}

.form label > span,
.field-label,
.upload-label {
  display: block;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 10px;
}

.form label > span em {
  font-family: var(--sans);
  font-style: italic;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
  color: var(--ink-dim);
}

.form input[type="text"],
.form input[type="email"],
.form input[type="tel"],
.form input[type="date"],
.form textarea {
  width: 100%;
  background: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.15);
  padding: 14px 18px;
  color: #0a0a0a;
  font-family: var(--sans);
  font-size: 15px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  appearance: none;
  border-radius: 0;
}

.form textarea {
  resize: vertical;
  min-height: 100px;
  line-height: 1.55;
}

.form input::placeholder,
.form textarea::placeholder {
  color: rgba(10, 10, 10, 0.42);
}

.form input:focus,
.form textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 1px rgba(196, 162, 101, 0.35);
}

.form input[type="date"] {
  color-scheme: light;
}

/* Upload */
.upload-block { margin-top: 8px; }

.upload-hint {
  font-size: 14px;
  color: var(--ink-soft);
  margin: 0 0 16px;
  line-height: 1.55;
}

.upload-hint strong {
  color: var(--ink);
  font-weight: 500;
}

.upload-zone {
  position: relative;
  border: 1px dashed rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.02);
  padding: 32px 24px 20px;
  text-align: center;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.upload-zone.is-dragover,
.upload-zone:focus-within {
  border-color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.04);
}

.upload-zone.has-files { padding-bottom: 16px; }

.upload-zone input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
}

.upload-trigger {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  pointer-events: none;
  color: var(--ink-soft);
  font-size: 14px;
}

.upload-icon {
  font-family: var(--sans);
  font-size: 30px;
  font-weight: 300;
  color: var(--ink);
  line-height: 1;
  opacity: 0.7;
}

.upload-formats {
  font-size: 12px;
  color: var(--ink-dim);
}

.upload-count {
  font-size: 13px;
  color: var(--ink-dim);
  margin: 16px 0 0;
}

.upload-count--ok {
  color: var(--ink);
  font-weight: 500;
}

.upload-preview {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
  gap: 10px;
  margin-top: 16px;
  position: relative;
  z-index: 3;
  pointer-events: auto;
}

.upload-thumb {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid var(--line);
}

.upload-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.upload-remove {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 22px;
  height: 22px;
  border: none;
  background: rgba(10, 10, 10, 0.85);
  color: var(--ink);
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease;
}

.upload-remove:hover { background: #5a2424; }

/* Chips */
.chip-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 20px;
}

.chip {
  cursor: pointer;
  margin: 0;
}

.chip input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.chip span {
  display: inline-flex;
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--ink-soft);
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.025);
  transition: all 0.2s ease;
  user-select: none;
}

.chip:hover span {
  border-color: rgba(255, 255, 255, 0.3);
  color: var(--ink);
}

.chip input:checked + span {
  border-color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.08);
  color: var(--ink);
}

.chip input:focus-visible + span {
  outline: 1px solid rgba(255, 255, 255, 0.6);
  outline-offset: 2px;
}

.form-quiz-nav .btn-submit {
  margin-top: 0;
}

.form-legal {
  font-size: 12px;
  color: var(--ink-dim);
  text-align: center;
  margin: 20px 0 0;
  line-height: 1.55;
}

/* ---------- Footer ---------- */
.site-footer {
  padding: 56px 28px 64px;
  text-align: center;
  border-top: 1px solid var(--line);
}

.site-footer--closing {
  position: relative;
  z-index: 2;
  background: #000000;
  border-top: none;
  padding: 52px 28px 64px;
  margin-top: 0;
}

.site-footer__fade {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 160px;
  transform: translateY(-99%);
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(0, 0, 0, 0.35) 38%,
    rgba(0, 0, 0, 0.78) 72%,
    #000000 100%
  );
  pointer-events: none;
}

.site-footer__inner {
  max-width: var(--max);
  margin-inline: auto;
}

.site-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 32px 40px;
  align-items: end;
}

.site-footer__logo img {
  display: block;
  height: 47px;
  width: auto;
  opacity: 0.92;
}

.site-footer__center p {
  margin: 0;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #9a9a9a;
  text-align: center;
}

.site-footer__legal {
  text-align: right;
}

.site-footer__legal p {
  margin: 0;
  font-family: var(--sans);
  font-size: 11px;
  line-height: 1.55;
  color: #5a5a5a;
}

.site-footer__legal p + p {
  margin-top: 4px;
}

.page-closing {
  position: relative;
  background: #000000;
}

.site-header--form .header-inner--form {
  justify-content: center;
}

.site-footer:not(.site-footer--closing) .footer-brand {
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 0 24px;
  font-weight: 500;
}

.site-footer:not(.site-footer--closing) .footer-copy {
  margin: 20px 0 0;
}

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  /* Mobile/tablet: use the header logo, hide the in-hero one */
  :root { --header-h: 80px; }

  .site-header--mobilelogo {
    display: block;
  }

  .hero-content .logo {
    display: none;
  }

  .header-inner {
    justify-content: center;
  }

  .logo img {
    height: 60px;
    width: auto;
    transform: none;
  }

  .story-points {
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }

  .story-point {
    gap: 10px;
  }

  .trust-grid {
    grid-template-columns: 1fr;
    gap: 40px;
    max-width: 480px;
    margin: 0 auto;
  }

  .trust-badge__icon {
    margin-inline: auto;
    justify-content: center;
  }

  .trust-badge {
    text-align: center;
  }

  .trust-badge__tags,
  .trust-badge__text {
    margin-inline: auto;
  }

  .proof-grid { grid-template-columns: repeat(2, 1fr); }
  .proof-card--wide { grid-column: span 2; }

  .proof-cta {
    grid-column: 1 / -1;
    align-self: auto;
    gap: 12px;
    padding: 48px 0;
    margin: 24px 0;
  }

  .proof-cta__title {
    font-size: clamp(20px, 5vw, 24px);
  }

  .proof-cta__row {
    gap: 12px 16px;
  }

  .proof-cta__text {
    font-size: 13px;
    line-height: 1.45;
  }

  .proof-cta .btn {
    padding: 12px 16px;
  }

  .proof-cta .btn-label {
    font-size: 13px;
  }

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

  .hero-content {
    grid-column: auto;
    order: 2;
  }

  .hero-carousel {
    grid-column: auto;
    order: 1;
  }

  .story-intro {
    grid-template-columns: 1fr;
    margin-bottom: 32px;
    row-gap: 28px;
  }

  .story-intro__copy {
    max-width: none;
  }

  .story-intro__action {
    justify-self: start;
    padding-top: 0;
  }

  .story-intro .btn-hero {
    width: fit-content;
    max-width: 100%;
  }

  .howto-steps {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .howto-step {
    padding: 24px 20px;
  }

  .section-cta {
    margin-top: 40px;
  }

  .artist-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .artist-visual {
    margin-bottom: 0;
    padding: 24px 16px 0;
  }

  .artist-collage {
    min-height: auto;
    margin-bottom: 24px;
    padding-bottom: 40px;
  }

  .artist-main {
    width: 72%;
    max-width: 280px;
  }

  .artist-inset--2 { left: 2%; }

  .form-row { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  :root { --header-h: 64px; }

  .container {
    padding-left: 20px;
    padding-right: 20px;
  }

  .howto-steps {
    grid-template-columns: 1fr;
  }

  .howto-step {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 16px;
    padding: 20px 18px;
  }

  .howto-step strong {
    flex: 1 1 auto;
  }

  .howto-step p {
    flex: 1 1 100%;
  }

  .story-points {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .story-point {
    flex-direction: row;
    align-items: center;
    gap: 16px;
  }

  .story-point__media {
    flex: 0 0 38%;
  }

  .story-point__media img {
    aspect-ratio: 1 / 1;
  }

  .story-point__copy {
    flex: 1 1 auto;
  }

  .story-point__copy strong {
    font-size: 16px;
    margin-bottom: 6px;
  }

  .story-point__copy span {
    font-size: 13px;
    line-height: 1.45;
  }

  .header-inner {
    padding-left: 12px;
    padding-right: 12px;
    gap: 16px;
  }

  .site-header .btn-hero {
    padding: 10px 14px;
  }

  .site-header .btn-hero .btn-label {
    font-size: 12px;
  }

  .hero {
    padding: 2px 0 48px;
  }

  .hero-inner {
    gap: 24px;
  }

  .hero-slideshow {
    height: min(84vw, 400px);
  }

  .hero-slide {
    width: min(64%, 300px);
  }

  .hero-slide.is-prev {
    transform: translate(calc(-50% - 66%), -50%) scale(0.8);
    opacity: 0.45;
  }

  .hero-slide.is-next {
    transform: translate(calc(-50% + 66%), -50%) scale(0.8);
    opacity: 0.45;
  }

  .hero-slide.is-far-prev {
    transform: translate(calc(-50% - 120%), -50%) scale(0.66);
  }

  .hero-slide.is-far-next {
    transform: translate(calc(-50% + 120%), -50%) scale(0.66);
  }

  .hero-arrow {
    display: none;
  }

  .hero-slide figcaption {
    padding: 40px 14px 14px;
  }

  .hero-slide figcaption strong {
    font-size: 13px;
  }

  .hero-slide figcaption span {
    font-size: 11px;
  }

  .hero-dots {
    margin-top: 14px;
  }

  .logo img {
    height: 50px;
    width: auto;
  }

  .btn-header {
    padding: 10px 14px;
    font-size: 13px;
    letter-spacing: 0.01em;
  }

  .btn-header .btn-sub { display: none; }

  .story-intro {
    margin-bottom: 28px;
    row-gap: 24px;
  }

  .story-intro .btn-hero {
    width: 100%;
    justify-content: center;
    padding: 13px 20px;
  }

  .story-intro .btn-hero .btn-label {
    font-size: 14px;
  }

  .hero-title { max-width: none; }

  .proof-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .proof-card--wide { grid-column: span 2; }
  .proof-card--wide img { aspect-ratio: 16 / 10; }

  .proof-card figcaption {
    padding: 40px 12px 12px;
  }

  .proof-card strong {
    font-size: 13px;
  }

  .proof-card span {
    font-size: 11px;
  }

  .artist-inset {
    width: 28%;
    max-width: 110px;
  }

  .artist-inset--1 { right: 2%; }
  .artist-inset--3 { right: 8%; width: 24%; max-width: 96px; }

  .artist-stats {
    gap: 10px;
    margin-top: 24px;
    padding-top: 20px;
  }

  .artist-stats strong {
    font-size: 22px;
  }

  .artist-stats span {
    font-size: 10px;
    line-height: 1.3;
  }

  .form-shell { padding: 24px 18px; }

  .form-quiz-nav {
    flex-wrap: wrap;
  }

  .btn-form-back {
    order: 2;
    margin-right: 0;
    flex: 1 1 auto;
  }

  .btn-form-next,
  .form-quiz-nav .btn-submit {
    order: 1;
    flex: 1 1 auto;
    justify-content: center;
  }

  .form-progress__meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .cta-band { padding: 88px 0 0; }

  .site-footer--closing {
    padding: 40px 20px 52px;
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
    gap: 24px;
    align-items: center;
    text-align: center;
  }

  .site-footer__logo img {
    height: 40px;
    margin-inline: auto;
  }

  .site-footer__legal {
    text-align: center;
  }

  .site-footer__fade {
    height: 120px;
  }
}

@media (max-width: 400px) {
  .header-inner {
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    padding-top: 8px;
    padding-bottom: 8px;
    height: auto;
    min-height: var(--header-h);
  }

  .site-header { height: auto; }
}

/* ---------- WhatsApp page CTA icons ---------- */
.page-whatsapp .btn-hero,
.page-whatsapp .btn-cta-band {
  flex-direction: row;
  align-items: center;
  gap: 10px;
}

.page-whatsapp .btn-hero::before,
.page-whatsapp .btn-cta-band::before {
  content: "";
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M.057 24l1.687-6.163a11.867 11.867 0 0 1-1.587-5.946C.16 5.335 5.495 0 12.05 0a11.817 11.817 0 0 1 8.413 3.488 11.824 11.824 0 0 1 3.48 8.414c-.003 6.557-5.338 11.892-11.893 11.892a11.9 11.9 0 0 1-5.688-1.448L.057 24zm6.597-3.807c1.676.995 3.276 1.591 5.392 1.592 5.448 0 9.886-4.434 9.889-9.885.002-5.462-4.415-9.89-9.881-9.892-5.452 0-9.887 4.434-9.889 9.884a9.86 9.86 0 0 0 1.51 5.26l-.999 3.648 3.978-1.115zm11.387-5.464c-.074-.124-.272-.198-.57-.347-.297-.149-1.758-.868-2.031-.967-.272-.099-.47-.149-.669.149-.198.297-.768.967-.941 1.165-.173.198-.347.223-.644.074-.297-.149-1.255-.462-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.521.151-.172.2-.296.3-.495.099-.198.05-.372-.025-.521-.075-.148-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.625.712.227 1.36.195 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M.057 24l1.687-6.163a11.867 11.867 0 0 1-1.587-5.946C.16 5.335 5.495 0 12.05 0a11.817 11.817 0 0 1 8.413 3.488 11.824 11.824 0 0 1 3.48 8.414c-.003 6.557-5.338 11.892-11.893 11.892a11.9 11.9 0 0 1-5.688-1.448L.057 24zm6.597-3.807c1.676.995 3.276 1.591 5.392 1.592 5.448 0 9.886-4.434 9.889-9.885.002-5.462-4.415-9.89-9.881-9.892-5.452 0-9.887 4.434-9.889 9.884a9.86 9.86 0 0 0 1.51 5.26l-.999 3.648 3.978-1.115zm11.387-5.464c-.074-.124-.272-.198-.57-.347-.297-.149-1.758-.868-2.031-.967-.272-.099-.47-.149-.669.149-.198.297-.768.967-.941 1.165-.173.198-.347.223-.644.074-.297-.149-1.255-.462-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.521.151-.172.2-.296.3-.495.099-.198.05-.372-.025-.521-.075-.148-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.625.712.227 1.36.195 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413z'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.page-whatsapp .site-header .btn-hero::before {
  width: 16px;
  height: 16px;
}

/* ---------- Floating WhatsApp ---------- */
.wa-float {
  position: fixed;
  right: clamp(16px, 3.5vw, 34px);
  bottom: clamp(16px, 3.5vw, 34px);
  z-index: 300;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 8px 8px 8px 22px;
  border-radius: 999px;
  background: rgba(16, 16, 16, 0.66);
  border: 1px solid rgba(255, 255, 255, 0.12);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow:
    0 22px 48px -18px rgba(0, 0, 0, 0.92),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
  text-decoration: none;
  transition:
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.3s ease,
    border-color 0.3s ease;
  will-change: transform;
}

.wa-float:hover {
  transform: translateY(-2px);
  border-color: rgba(37, 211, 102, 0.45);
  box-shadow:
    0 28px 56px -18px rgba(0, 0, 0, 0.95),
    0 0 0 1px rgba(37, 211, 102, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.wa-float__text {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.wa-float__label {
  font-family: var(--sans);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--ink);
  white-space: nowrap;
  line-height: 1.25;
}

.wa-float__sub {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.01em;
  color: var(--ink-soft);
  white-space: nowrap;
  line-height: 1.2;
}

.wa-float__icon {
  position: relative;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #25d366;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 18px -6px rgba(37, 211, 102, 0.65);
}

.wa-float__icon svg {
  width: 27px;
  height: 27px;
  fill: #fff;
  display: block;
}

.wa-float__icon::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.45);
  animation: wa-pulse 2.8s ease-out infinite;
}

@keyframes wa-pulse {
  0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.4); }
  70% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .wa-float__icon::after { animation: none; }

  .hero-slide {
    transition: opacity 0.2s linear;
  }

  .hero-slide figcaption {
    transition: opacity 0.2s linear;
    transform: none;
  }

  .hero-dot {
    transition: background 0.2s linear;
  }
}

@media (max-width: 640px) {
  .wa-float {
    gap: 0;
    padding: 0;
    background: transparent;
    border: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: none;
  }

  .wa-float__text { display: none; }

  .wa-float__icon {
    width: 56px;
    height: 56px;
    box-shadow:
      0 12px 26px -6px rgba(0, 0, 0, 0.6),
      0 8px 18px -6px rgba(37, 211, 102, 0.65);
  }

  .wa-float__icon svg {
    width: 31px;
    height: 31px;
  }
}
