/* Liberty Partners — Home page */
/* ── Hero ── */
  .hero {
    position: relative;
    min-height: calc(100vh - 80px);
    padding: 80px var(--gutter) 64px;
    overflow: hidden;
  }
  .hero-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: end;
    height: 100%;
    min-height: calc(100vh - 200px);
  }
  .hero-copy { padding-bottom: 24px; }
  .hero-eyebrow {
    display: flex; align-items: center; gap: 14px;
    font-family: var(--font-display);
    font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--ink-soft);
    margin-bottom: 56px;
  }
  .hero-eyebrow .line { flex: 0 0 48px; height: 1px; background: var(--ink-soft); opacity: .6; }
  .hero h1 {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: clamp(56px, 7.4vw, 124px);
    line-height: 0.95;
    letter-spacing: -0.028em;
    margin: 0 0 40px;
    text-wrap: balance;
  }
  .hero h1 em { font-style: italic; color: var(--accent); font-weight: 300; }
  .hero-sub {
    font-family: var(--font-body);
    font-size: 22px;
    line-height: 1.5;
    color: var(--ink-soft);
    max-width: 480px;
    margin-bottom: 56px;
    font-weight: 300;
  }
  .hero-ctas { display: flex; gap: 14px; align-items: center; }

  .hero-image {
    position: relative;
    aspect-ratio: 3 / 4;
    width: 100%;
    align-self: end;
  }
  .hero-image .ph { width: 100%; height: 100%; }
  .hero-meta {
    position: absolute;
    right: -8px; top: 24px;
    display: flex; flex-direction: column; gap: 6px;
    text-align: right;
    transform: rotate(90deg) translateY(-100%);
    transform-origin: top right;
    font-family: var(--font-display);
    font-size: 10px;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--ink-soft);
  }
  .hero-credit {
    position: absolute;
    left: 12px; bottom: 12px;
    font-family: var(--font-display);
    font-size: 10px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: rgba(255,255,255,.78);
    background: rgba(0,0,0,.18);
    backdrop-filter: blur(4px);
    padding: 8px 12px;
  }
  .hero-stats {
    position: absolute;
    left: var(--gutter); right: var(--gutter);
    bottom: 24px;
    display: grid;
    grid-template-columns: repeat(4, 1fr) auto;
    gap: 0;
    border-top: 1px solid var(--rule);
    padding-top: 22px;
  }
  .hero-stat {
    padding: 0 32px;
    border-right: 1px solid var(--rule-soft);
  }
  .hero-stat:first-of-type { padding-left: 0; }
  .hero-stat:last-of-type { border-right: 0; }
  .hero-stat .k { font-family: var(--font-display); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft); }
  .hero-stat .v { font-family: var(--font-body); font-size: 32px; line-height: 1.1; margin-top: 6px; letter-spacing: -0.01em; }
  .hero-stats .marquee { padding-left: 32px; font-size: 12px; color: var(--ink-soft); letter-spacing: 0.14em; text-transform: uppercase; align-self: center; }

  /* ── Hero layout variants (Tweaks) ── */
  /* B · Cinema — full-bleed image, copy overlaid */
  [data-hero="cinema"] .hero {
    padding: 0;
    min-height: calc(100vh - 80px);
    position: relative;
  }
  [data-hero="cinema"] .hero-grid {
    grid-template-columns: 1fr;
    min-height: calc(100vh - 80px);
    padding: 0;
  }
  [data-hero="cinema"] .hero-image {
    position: absolute;
    inset: 0;
    aspect-ratio: auto;
    width: 100%;
    height: 100%;
  }
  [data-hero="cinema"] .hero-image::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(15,35,54,.34) 0%, rgba(15,35,54,.12) 26%, rgba(15,35,54,.55) 66%, rgba(15,35,54,.85) 100%);
    z-index: 1;
  }
  [data-hero="cinema"] .hero-copy {
    position: relative; z-index: 2;
    align-self: end;
    padding: 80px var(--gutter) 140px;
    max-width: 880px;
    color: var(--paper);
  }
  [data-hero="cinema"] .hero-copy h1 { color: var(--paper); }
  [data-hero="cinema"] .hero-copy h1 em { color: var(--brass); }
  [data-hero="cinema"] .hero-copy .hero-sub { color: var(--paper-2); }
  [data-hero="cinema"] .hero-eyebrow { color: var(--paper-2); text-shadow: 0 1px 10px rgba(15,35,54,.55); }
  [data-hero="cinema"] .hero-eyebrow .line { background: var(--paper-3); }
  [data-hero="cinema"] .hero-ctas .btn { color: var(--paper); border-color: var(--paper); }
  [data-hero="cinema"] .hero-ctas .btn.primary { background: var(--brass); color: var(--ink); border-color: var(--brass); }
  [data-hero="cinema"] .hero-ctas .btn:hover { background: var(--paper); color: var(--ink); }
  [data-hero="cinema"] .hero-stats { z-index: 2; color: var(--paper); border-top-color: rgba(255,255,255,.3); }
  [data-hero="cinema"] .hero-stats .hero-stat { border-right-color: rgba(255,255,255,.15); }
  [data-hero="cinema"] .hero-stat .k { color: var(--paper-3); }
  [data-hero="cinema"] .hero-stats .marquee { color: var(--paper-2); }
  [data-hero="cinema"] .hero-meta { color: var(--paper-3); z-index: 2; }
  [data-hero="cinema"] .hero-credit { left: var(--gutter); bottom: auto; top: 32px; right: var(--gutter); display: flex; justify-content: space-between; }

  /* C · Quiet — type-only, no image */
  [data-hero="quiet"] .hero {
    min-height: 80vh;
    padding: 120px var(--gutter) 64px;
  }
  [data-hero="quiet"] .hero-grid {
    grid-template-columns: 1fr;
    align-items: center;
    text-align: center;
    min-height: 60vh;
  }
  [data-hero="quiet"] .hero-image { display: none; }
  [data-hero="quiet"] .hero-copy { max-width: 1200px; margin: 0 auto; padding-bottom: 0; text-align: center; }
  [data-hero="quiet"] .hero-eyebrow { justify-content: center; }
  [data-hero="quiet"] .hero h1 {
    font-size: clamp(72px, 11vw, 200px);
    max-width: 1200px;
    margin-left: auto; margin-right: auto;
  }
  [data-hero="quiet"] .hero-sub { margin-left: auto; margin-right: auto; }
  [data-hero="quiet"] .hero-ctas { justify-content: center; }

  @media (max-width: 880px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-stats { grid-template-columns: 1fr 1fr; gap: 24px; }
    .hero-stats .marquee { display: none; }
  }

  /* ── Statement ── */
  .statement {
    padding: var(--s-9) var(--gutter);
    border-top: 1px solid var(--rule);
  }
  .statement-grid { display: grid; grid-template-columns: 200px 1fr; gap: 80px; max-width: var(--max-w); margin: 0 auto; }
  .statement-grid .label { padding-top: 12px; }
  .statement-grid p {
    font-family: var(--font-body);
    font-size: clamp(21px, 2.3vw, 32px);
    line-height: 1.25;
    color: var(--ink);
    font-weight: 300;
    letter-spacing: -0.01em;
    text-wrap: balance;
    margin: 0;
  }
  .statement-grid p em { color: var(--accent); }
  .statement-sign { margin-top: 44px; display: flex; align-items: center; gap: 22px; }
  .statement-sign .sig { font-family: var(--font-script); font-style: italic; font-weight: 500; font-size: clamp(32px, 3.6vw, 48px); line-height: 1; color: var(--ink); }
  .statement-sign .sig-meta { font-family: var(--font-display); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft); border-left: 1px solid var(--rule); padding-left: 22px; line-height: 1.55; }

  /* ── Room by room · alternating editorial ── */
  .rooms { padding: var(--s-10) 0 var(--s-9); border-top: 1px solid var(--rule); }
  .rooms-head { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter) var(--s-8); }
  .rooms-head h2 { font-family: var(--font-body); font-weight: 300; font-size: clamp(48px, 6vw, 96px); line-height: 0.96; letter-spacing: -0.03em; margin: 18px 0 0; }
  .rooms-head h2 em { color: var(--accent); font-style: italic; }
  .rooms-head .lede { font-family: var(--font-body); font-size: clamp(19px, 1.5vw, 22px); line-height: 1.5; color: var(--ink-soft); font-weight: 300; margin: 28px 0 0; max-width: none; text-wrap: pretty; }

  .rr-list { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); display: flex; flex-direction: column; gap: clamp(56px, 10vh, 128px); }
  .rr { display: grid; grid-template-columns: 1.55fr 1fr; gap: clamp(32px, 5vw, 96px); align-items: center; }
  .rr.flip { grid-template-columns: 1fr 1.55fr; }
  .rr .rr-fig { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: var(--ink); }
  .rr.tall .rr-fig { aspect-ratio: 4 / 5; }
  .rr .rr-fig img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease-out); }
  .rr:hover .rr-fig img { transform: scale(1.04); }
  .rr .rr-text { max-width: 400px; }
  .rr.flip .rr-fig { order: 2; }
  .rr.flip .rr-text { order: 1; justify-self: end; max-width: 360px; }
  .rr .rr-rule { width: 100%; height: 1px; background: var(--rule); }
  .rr .rr-n { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.12em; color: var(--ink-soft); margin: 20px 0 16px; }
  .rr h3 { font-family: var(--font-body); font-weight: 300; font-size: clamp(40px, 4.2vw, 64px); line-height: 1.0; letter-spacing: -0.02em; margin: 0; }
  .rr p { font-family: var(--font-body); font-size: clamp(18px, 1.3vw, 21px); line-height: 1.55; color: var(--ink-soft); font-weight: 300; margin: 22px 0 26px; text-wrap: pretty; }

  @media (max-width: 860px) {
    .rr, .rr.flip { grid-template-columns: 1fr; gap: 22px; }
    .rr.flip .rr-fig { order: 0; }
    .rr.flip .rr-text { order: 0; justify-self: start; max-width: none; }
    .rr .rr-fig, .rr.tall .rr-fig { aspect-ratio: 3 / 2; }
    .rr .rr-text { max-width: none; }
  }
  .rooms-foot {
    max-width: var(--max-w); margin: var(--s-9) auto 0; padding: var(--s-8) var(--gutter) 0;
    border-top: 1px solid var(--rule);
    display: flex; justify-content: space-between; align-items: baseline; gap: 32px; flex-wrap: wrap;
  }
  .rooms-foot p { font-family: var(--font-body); font-weight: 300; font-size: 22px; line-height: 1.45; color: var(--ink-soft); max-width: 520px; margin: 0; text-wrap: pretty; }
  .section-head {
    display: flex; justify-content: space-between; align-items: end;
    padding: 0 var(--gutter) var(--s-7);
    max-width: var(--max-w); margin: 0 auto;
  }
  .section-head h2 {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: clamp(40px, 4.6vw, 72px);
    line-height: 1.0;
    letter-spacing: -0.02em;
    margin: 16px 0 0;
    max-width: 720px;
  }
  .section-head h2 em { color: var(--accent); }

  /* ── Capabilities ── */
  .caps-section { padding: var(--s-10) 0; background: var(--linen); border-top: 1px solid var(--rule); }
  .caps-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); border-top: 1px solid var(--rule); }
  .cap {
    padding: 40px clamp(28px, 2.4vw, 40px) 34px;
    border-right: 1px solid var(--rule-soft);
  }
  .cap:first-child { padding-left: 0; }
  .cap:last-child { border-right: 0; padding-right: 0; }
  .cap .num { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
  .cap h4 { font-family: var(--font-body); font-weight: 400; font-size: 30px; line-height: 1.15; margin: 28px 0 14px; }
  .cap p { font-size: 14px; color: var(--ink-soft); line-height: 1.6; }

  /* ── Press strip ── */
  .press-strip { background: var(--paper); color: var(--ink); padding: var(--s-9) 0; }
  .press-strip .container { display: grid; grid-template-columns: 320px 1fr; gap: 80px; align-items: end; }
  .press-strip h2 { font-family: var(--font-body); font-weight: 300; font-size: 52px; line-height: 1.05; letter-spacing: -0.02em; margin: 16px 0 0; }
  .press-strip h2 em { color: var(--accent); font-style: italic; }
  .press-strip .eyebrow { color: var(--mark); }
  .press-strip .lede { color: var(--ink-soft); font-size: 22px; }
  .press-list { display: grid; grid-template-columns: 1fr; gap: 0; }
  .press-row {
    display: grid; grid-template-columns: 80px 1fr 200px auto;
    gap: 32px; align-items: baseline;
    padding: 24px 0;
    border-top: 1px solid var(--rule);
    transition: padding .2s var(--ease);
  }
  .press-row:hover { padding-left: 16px; }
  .press-row:hover .press-arrow { color: var(--mark); transform: translateX(6px); }
  .press-row .date { font-family: var(--font-mono); font-size: 11px; color: var(--muted); letter-spacing: 0.08em; }
  .press-row .ttl { font-family: var(--font-body); font-size: 26px; line-height: 1.2; color: var(--ink); }
  .press-row .src { font-family: var(--font-display); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
  .press-arrow { font-family: var(--font-body); font-size: 26px; transition: all .2s var(--ease); color: var(--ink-soft); }

  /* ── Closing contact · single full-bleed CTA ── */
  .contact-close { position: relative; overflow: hidden; }
  .contact-close > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .contact-close::before {
    content: ""; position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(100deg, rgba(15,35,54,.82) 0%, rgba(15,35,54,.6) 55%, rgba(15,35,54,.34) 100%);
  }
  .ct-grid {
    position: relative; z-index: 2;
    display: grid; grid-template-columns: 1.15fr 1fr; gap: 80px; align-items: center;
    max-width: var(--max-w); margin: 0 auto; padding: var(--s-10) var(--gutter);
  }
  .ct-grid h2 {
    font-family: var(--font-body);
    font-weight: 300;
    font-size: clamp(48px, 5.6vw, 88px);
    line-height: 0.98;
    letter-spacing: -0.025em;
    margin: 24px 0 0;
    color: var(--paper);
  }
  .ct-grid h2 em { color: var(--mark-on-dark); }
  .contact-close .eyebrow { color: rgba(255,255,255,.72); }
  .contact-close .lede { color: rgba(255,255,255,.82); }
  .contact-close .fb-cap { position: absolute; z-index: 2; right: var(--gutter); top: var(--s-7); font-family: var(--font-display); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255,255,255,.82); }
  .ct-card {
    background: var(--paper);
    padding: 56px;
    border: 1px solid var(--rule);
  }
  .contact-close .ct-card .eyebrow { color: var(--mark); }
  .ct-card .row { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--rule-soft); font-family: var(--font-body); font-size: 19px; }
  .ct-card .row .k { font-family: var(--font-display); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft); }
  .ct-card .btn { margin-top: 28px; width: 100%; justify-content: space-between; }

  /* ── Client voices — warm sand ground ── */
  .voices { background: var(--sand); padding: var(--s-10) 0; }
  .voices-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
  .voices-head { display: grid; grid-template-columns: 360px 1fr; gap: 72px; align-items: end; padding-bottom: 48px; }
  .voices-head .eyebrow { color: var(--mark); }
  .voices-head .note { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.05em; color: var(--muted); margin-top: 14px; }
  .voices-head h2 { font-family: var(--font-body); font-weight: 300; font-size: clamp(40px, 4.8vw, 64px); line-height: 1.0; letter-spacing: -0.02em; margin: 0; }
  .voices-head h2 em { color: var(--accent); font-style: italic; }
  .voices-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 64px; border-top: 1px solid var(--rule); padding-top: 52px; }
  .voice-lead { display: flex; flex-direction: column; gap: 28px; }
  .voice-lead .mark, .voice .mark { font-family: var(--font-body); font-size: 64px; line-height: 0.4; color: var(--mark-fill); height: 30px; }
  .voice-lead blockquote { font-family: var(--font-body); font-weight: 300; font-size: clamp(28px, 3vw, 40px); line-height: 1.3; letter-spacing: -0.015em; color: var(--ink); margin: 0; text-wrap: pretty; }
  .voice-lead blockquote em, .voice blockquote em { font-style: italic; color: var(--accent); }
  .voice-side { display: flex; flex-direction: column; gap: 44px; justify-content: center; }
  .voice { display: flex; flex-direction: column; gap: 18px; }
  .voice blockquote { font-family: var(--font-body); font-weight: 300; font-size: 21px; line-height: 1.42; letter-spacing: -0.01em; color: var(--ink); margin: 0; text-wrap: pretty; }
  .attr { font-family: var(--font-display); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-soft); }
  .attr span { display: block; color: var(--muted); margin-top: 6px; letter-spacing: 0.08em; }

  /* ── Credentials / trust wall — deep coastal band ── */
  .credentials { background: var(--coastal-deep); color: var(--paper); padding: var(--s-8) 0; }
  .credentials .eyebrow { color: var(--sky); }
  .credentials .cred-top { color: rgba(255,255,255,.72); }
  .credentials .cred-top .lic { color: rgba(255,255,255,.6); }
  .credentials .cred-top .lic b { color: rgba(255,255,255,.95); font-weight: 500; }
  .credentials .cred-row { border-top-color: rgba(255,255,255,.22); }
  .credentials .cred { border-right-color: rgba(255,255,255,.1); }
  .credentials .cred .n { color: rgba(255,255,255,.88); }
  .credentials .cred .t { color: rgba(255,255,255,.48); }
  .cred-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
  .cred-top { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-bottom: 32px; flex-wrap: wrap; }
  .cred-top .eyebrow { color: var(--mark); }
  .cred-top .lic { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.08em; color: var(--ink-soft); display: flex; gap: 24px; }
  .cred-top .lic b { color: var(--ink); font-weight: 500; }
  .cred-row { display: grid; grid-template-columns: repeat(6, 1fr); border-top: 1px solid var(--rule); }
  .cred { padding: 30px clamp(22px, 1.9vw, 32px) 32px; border-right: 1px solid var(--rule-soft); }
  .cred:first-child { padding-left: 0; }
  .cred:last-child { border-right: 0; padding-right: 0; }
  .cred .n { font-family: var(--font-body); font-size: 19px; line-height: 1.16; letter-spacing: -0.01em; color: var(--ink); }
  .cred .t { font-family: var(--font-display); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-top: 11px; }

  @media (max-width: 1100px) and (min-width: 881px) {
    .caps-grid { grid-template-columns: 1fr 1fr; }
    .cap { border-bottom: 1px solid var(--rule-soft); padding-bottom: 34px; }
    .cap:nth-child(2) { border-right: 0; padding-right: 0; }
    .cap:nth-child(odd) { padding-left: 0; }
    .cred-row { grid-template-columns: repeat(3, 1fr); }
    .credentials .cred:nth-child(3n) { border-right: 0; padding-right: 0; }
    .credentials .cred:nth-child(3n+1) { padding-left: 0; }
    .credentials .cred:nth-child(-n+3) { border-bottom: 1px solid rgba(255,255,255,.12); padding-bottom: 26px; }
    .credentials .cred:nth-child(n+4) { padding-top: 26px; }
  }

  @media (max-width: 880px) {
    .statement-grid { grid-template-columns: 1fr; gap: 32px; }
    .rtile { width: 78vw; }
    .caps-grid { grid-template-columns: 1fr 1fr; }
    .cap:nth-child(odd) { padding-left: 0; }
    .cap { border-bottom: 1px solid var(--rule-soft); padding: 28px 20px 26px; }
    .cap:nth-child(even) { border-right: 0; padding-right: 0; }
    .cap h4 { font-size: 24px; margin-top: 18px; }
    .press-strip .container { grid-template-columns: 1fr; gap: 32px; }
    .ct-grid { grid-template-columns: 1fr; gap: 40px; padding: var(--s-9) var(--gutter); }
    .contact-close .fb-cap { display: none; }
    .press-row { grid-template-columns: 1fr; gap: 6px; }
    .press-row .date, .press-row .src, .press-arrow { display: none; }
    .voices-head { grid-template-columns: 1fr; gap: 16px; }
    .voices-grid { grid-template-columns: 1fr; gap: 44px; }
    .cred-row { grid-template-columns: 1fr 1fr; }
    .cred:nth-child(even) { border-right: 0; }
    .cred { padding-right: 20px; }
    .cred:nth-child(odd) { padding-left: 0; }
  }

  /* ── Hero: real image ── */
  .hero-image img { width: 100%; height: 100%; object-fit: cover; }

  /* ── Featured residences ── */
  .featured { padding: var(--s-10) 0 var(--s-9); border-top: 1px solid var(--rule); }
  .featured-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
  .featured-head { padding-bottom: var(--s-7); }
  .featured-head h2 { font-family: var(--font-body); font-weight: 300; font-size: clamp(48px, 6vw, 96px); line-height: 0.96; letter-spacing: -0.03em; margin: 18px 0 0; }
  .featured-head h2 em { color: var(--accent); font-style: italic; }
  .featured-head .lede { font-family: var(--font-body); font-size: clamp(19px, 1.5vw, 22px); line-height: 1.5; color: var(--ink-soft); font-weight: 300; margin: 28px 0 0; max-width: none; text-wrap: pretty; }

  /* Hero feature */
  .feat-hero { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--ink); }
  .feat-hero img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease-out); }
  .feat-hero:hover img { transform: scale(1.03); }
  .feat-body { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); padding-top: var(--s-6); }
  .feat-body .fb-left .eyebrow { color: var(--ink-soft); }
  .feat-body .fb-left h3 { font-family: var(--font-body); font-weight: 300; font-size: clamp(40px, 4.4vw, 64px); line-height: 1.0; letter-spacing: -0.02em; margin: 14px 0 0; }
  .feat-body .fb-left h3 em { color: var(--accent); font-style: italic; }
  .feat-body .fb-left .ctas { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; margin-top: 32px; }
  .feat-body .fb-right { display: flex; flex-direction: column; justify-content: flex-end; }
  .feat-body .fb-right p { font-family: var(--font-body); font-size: clamp(19px, 1.5vw, 23px); line-height: 1.5; color: var(--ink-soft); font-weight: 300; margin: 0; text-wrap: pretty; }
  .feat-stats { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--rule); margin-top: 32px; }
  .feat-stats .st { padding: 22px 24px 0; border-right: 1px solid var(--rule-soft); }
  .feat-stats .st:first-child { padding-left: 0; }
  .feat-stats .st:last-child { border-right: 0; padding-right: 0; }
  .feat-stats .k { font-family: var(--font-display); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft); }
  .feat-stats .v { font-family: var(--font-body); font-size: clamp(22px, 1.8vw, 28px); line-height: 1.1; margin-top: 8px; letter-spacing: -0.01em; }

  /* Three-up collection */
  .feat-collection { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 44px); margin-top: var(--s-9); padding-top: var(--s-8); border-top: 1px solid var(--rule); }
  .feat-card { display: flex; flex-direction: column; text-decoration: none; color: var(--ink); }
  .feat-card .pic { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ink); }
  .feat-card .pic img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease-out); }
  .feat-card:hover .pic img { transform: scale(1.05); }
  .feat-card .eyebrow { color: var(--ink-soft); margin-top: 22px; }
  .feat-card h4 { font-family: var(--font-body); font-weight: 400; font-size: clamp(26px, 2.2vw, 32px); line-height: 1.1; letter-spacing: -0.01em; margin: 10px 0 0; transition: color .2s var(--ease); }
  .feat-card:hover h4 { color: var(--accent); }
  .feat-card p { font-family: var(--font-body); font-size: 16px; line-height: 1.5; color: var(--ink-soft); margin: 12px 0 0; text-wrap: pretty; }
  .feat-foot { display: flex; justify-content: flex-end; margin-top: var(--s-7); }

  @media (max-width: 880px) {
    .feat-body { grid-template-columns: 1fr; gap: 24px; }
    .feat-collection { grid-template-columns: 1fr; gap: 40px; }
    .feat-foot { justify-content: flex-start; }
  }

  /* ── Full-bleed cinematic band ── */
  .fullbleed { position: relative; height: clamp(560px, 84vh, 940px); overflow: hidden; }
  .fullbleed img { width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
  .fullbleed::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,35,54,.12) 0%, rgba(15,35,54,.20) 45%, rgba(15,35,54,.66) 100%); }
  .fullbleed .fb-copy { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; }
  .fullbleed .fb-inner { max-width: var(--max-w); margin: 0 auto; padding: var(--s-8) var(--gutter); color: var(--paper); }
  .fullbleed .fb-inner .eyebrow { color: var(--paper-3); }
  .fullbleed h3 { font-family: var(--font-body); font-weight: 300; font-size: clamp(34px, 4.4vw, 66px); line-height: 1.04; letter-spacing: -0.02em; margin: 16px 0 0; max-width: 980px; color: var(--paper); text-wrap: balance; }
  .fullbleed h3 em { font-style: italic; color: var(--brass); }
  .fullbleed .fb-cta { margin-top: 30px; background: var(--brass); color: var(--ink); border-color: var(--brass); }
  .fullbleed .fb-cta:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }
  .fullbleed .fb-cap { position: absolute; z-index: 2; right: var(--gutter); top: var(--s-7); font-family: var(--font-display); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255,255,255,.82); }

  @media (max-width: 880px) {
    .fullbleed .fb-cap { display: none; }
  }

  /* ════════ Flooded hero + invitation header (home) ════════ */
  body.lp-home [data-hero="cinema"] .hero { min-height: 100vh; }
  body.lp-home [data-hero="cinema"] .hero-grid { min-height: 100vh; }
  body.lp-home [data-hero="cinema"] .hero-copy {
    padding: 120px var(--gutter) 168px;
    max-width: 1040px;
  }
  body.lp-home [data-hero="cinema"] .hero h1 {
    font-size: clamp(60px, 8.2vw, 132px);
    line-height: 0.94;
    margin-bottom: 32px;
    text-wrap: balance;
  }
  body.lp-home [data-hero="cinema"] .hero-sub {
    font-size: clamp(19px, 1.8vw, 25px);
    max-width: 580px;
    margin-bottom: 40px;
    text-wrap: pretty;
  }
  body.lp-home [data-hero="cinema"] .hero-eyebrow { margin-bottom: 40px; }
  /* deepen the gradient floor so the credit + copy hold */
  body.lp-home [data-hero="cinema"] .hero-image::after {
    background: linear-gradient(180deg, rgba(15,35,54,.42) 0%, rgba(15,35,54,.12) 30%, rgba(15,35,54,.40) 60%, rgba(15,35,54,.86) 100%);
  }

  .hero-ctas .link-quiet {
    font-family: var(--font-display);
    font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase;
    color: var(--paper);
    border-bottom: 1px solid rgba(255,255,255,.5);
    padding-bottom: 4px;
    transition: border-color .2s var(--ease);
  }
  .hero-ctas .link-quiet:hover { border-color: var(--paper); }

  .hero-floor {
    position: absolute; z-index: 2;
    left: var(--gutter); right: var(--gutter); bottom: 34px;
    display: flex; justify-content: space-between; align-items: flex-end; gap: 24px;
    pointer-events: none;
  }
  .hero-floor .hero-credit-2 {
    font-family: var(--font-display); font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--paper-2);
    text-shadow: 0 1px 12px rgba(15,35,54,.5);
  }
  .hero-scroll {
    pointer-events: auto;
    display: inline-flex; flex-direction: column; align-items: center; gap: 12px;
    font-family: var(--font-display); font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--paper-3);
  }
  .hero-scroll .hsl {
    width: 1px; height: 52px;
    background: linear-gradient(var(--paper-3), transparent);
    animation: heroScrollPulse 2.4s var(--ease) infinite;
    transform-origin: top;
  }
  @keyframes heroScrollPulse { 0%,100% { transform: scaleY(.5); opacity: .5; } 50% { transform: scaleY(1); opacity: 1; } }
  @media (prefers-reduced-motion: reduce) { .hero-scroll .hsl { animation: none; } }
  @media (max-width: 640px) { .hero-floor .hero-scroll { display: none; } }

  /* Header as an invitation — transparent over the flooded image,
     solidifies on scroll past the hero. */
  body.lp-home .nav {
    position: fixed; left: 0; right: 0; top: 0;
    background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none;
    border-bottom: 1px solid transparent;
    padding-top: 26px; padding-bottom: 26px;
    transition: background .45s var(--ease), border-color .45s var(--ease), padding .35s var(--ease);
  }
  body.lp-home .nav .nav-links a { color: var(--paper-2); }
  body.lp-home .nav .nav-links a:hover,
  body.lp-home .nav .nav-links a.active { color: var(--paper); }
  body.lp-home .nav .nav-links a.active::after { background: var(--brass); }
  body.lp-home .nav .nav-cta { color: var(--paper); border-color: rgba(255,255,255,.55); }
  body.lp-home .nav .nav-cta:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }
  body.lp-home .nav .nav-toggle span { background: var(--paper); }
  body.lp-home .nav.is-solid {
    background: color-mix(in oklab, var(--paper) 90%, transparent);
    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    border-bottom-color: color-mix(in oklab, var(--rule) 50%, transparent);
    padding-top: 14px; padding-bottom: 14px;
  }
  body.lp-home .nav.is-solid .nav-links a { color: var(--ink-soft); }
  body.lp-home .nav.is-solid .nav-links a:hover,
  body.lp-home .nav.is-solid .nav-links a.active { color: var(--accent); }
  body.lp-home .nav.is-solid .nav-links a.active::after { background: var(--mark-fill); }
  body.lp-home .nav.is-solid .nav-cta { color: var(--ink); border-color: var(--ink); }
  body.lp-home .nav.is-solid .nav-cta:hover { background: var(--ink); color: var(--paper); }
  body.lp-home .nav.is-solid .nav-toggle span { background: var(--ink); }
  @media (max-width: 880px) {
    body.lp-home .nav.open { background: var(--ink); }
  }

/* ════════ Home hero · Option D ════════ */
  .stage { position: relative; height: 100vh; min-height: 660px; overflow: hidden; background: var(--ink); }
  .stage .bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .stage h1 { text-shadow: 0 2px 30px rgba(15,35,54,.3); }
  .eb { display: inline-flex; align-items: center; gap: 14px; font-family: var(--font-display); font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; text-shadow: 0 1px 16px rgba(15,35,54,.7); }
  .eb .line { width: 48px; height: 1px; background: currentColor; opacity: .65; }

  /* Fixed header, solid on scroll */
  .vnav { position: fixed; z-index: 60; left: 0; right: 0; top: 0; padding: 26px var(--gutter); border-bottom: 1px solid transparent; transition: background .3s var(--ease), padding .3s var(--ease), border-color .3s var(--ease); }
  .vnav .lpd-lockup { --logo-h: 42px; }
  /* Centered logo · hamburger left · CTA right */
  .vnav-row { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; }
  .vnav-toggle { justify-self: start; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 46px; height: 46px; margin-left: -10px; padding: 0; background: none; border: 0; cursor: pointer; position: relative; z-index: 61; }
  .vnav-toggle span { display: block; width: 27px; height: 1.5px; background: var(--paper); transition: transform .3s var(--ease), opacity .25s var(--ease); }
  .vnav-toggle.open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
  .vnav-toggle.open span:nth-child(2) { opacity: 0; }
  .vnav-toggle.open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
  .vnav-logo { justify-self: center; }
  .vnav-cta { justify-self: end; position: relative; z-index: 61; font-family: var(--font-display); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--paper); border: 1px solid rgba(255,255,255,.6); padding: 12px 22px; text-decoration: none; white-space: nowrap; transition: all .2s var(--ease); }
  .vnav-cta:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }
  .vnav.solid { background: var(--ink); background: color-mix(in oklab, var(--ink) 90%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom-color: rgba(255,255,255,.12); padding-top: 15px; padding-bottom: 15px; }
  /* Nav clears the full-height rail on the right; logo centers in the open area */
  .vd .vnav { padding-right: calc(var(--rail-w) + var(--gutter)); }

  /* Full-screen overlay menu */
  .vnav-menu { position: fixed; inset: 0; z-index: 55; background: var(--ink); background: color-mix(in oklab, var(--ink) 97%, transparent); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); display: flex; align-items: center; justify-content: center; padding: 124px var(--gutter) 60px; opacity: 0; visibility: hidden; transition: opacity .42s var(--ease); }
  .vnav-menu.open { opacity: 1; visibility: visible; }
  .vnav-menu-inner { width: min(900px, 100%); }
  .vnav-menu-links { display: flex; flex-direction: column; }
  .vnav-menu-links a { display: flex; align-items: baseline; gap: clamp(18px, 3vw, 40px); font-family: var(--font-body); font-weight: 300; font-size: clamp(34px, 6vw, 80px); line-height: 1.16; letter-spacing: -0.02em; color: var(--paper-2); text-decoration: none; border-top: 1px solid rgba(255,255,255,.12); padding: clamp(10px, 1.4vw, 18px) 0; transition: color .25s var(--ease), padding-left .35s var(--ease); }
  .vnav-menu-links a:last-of-type { border-bottom: 1px solid rgba(255,255,255,.12); }
  .vnav-menu-links a:hover { color: var(--paper); padding-left: 16px; font-style: italic; }
  .vnav-menu-links a:hover .mi-n { color: var(--brass); }
  .vnav-menu-links .mi-n { font-family: var(--font-mono); font-size: 13px; font-weight: 400; font-style: normal; letter-spacing: 0.08em; color: var(--sky); flex: none; align-self: center; }
  .vnav-menu-foot { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: clamp(28px, 4vw, 48px); flex-wrap: wrap; }
  .vnav-menu-cta { font-family: var(--font-display); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); background: var(--brass); border: 1px solid var(--brass); padding: 15px 28px; text-decoration: none; transition: all .2s var(--ease); }
  .vnav-menu-cta:hover { background: var(--paper); border-color: var(--paper); }
  .vnav-menu-contact { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.04em; color: var(--paper-3); }
  @media (max-width: 720px) {
  .vnav-menu { align-items: flex-start; padding: 104px var(--gutter) 40px; overflow-y: auto; }
}
body.menu-open { overflow: hidden; }

  /* Full-bleed slideshow + right-edge tab strips */
  .vd { --rail-w: clamp(150px, 13vw, 240px); }
  .vd .d-slides { position: absolute; inset: 0; }
  .vd .d-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .9s var(--ease); }
  .vd .d-slide.on { opacity: 1; }
  .vd .d-slide .bg { transform: scale(1.05); transition: transform 6s linear; }
  .vd .d-slide.on .bg { transform: scale(1); }
  .vd .scrim-d { position: absolute; inset: 0; z-index: 2; pointer-events: none; background:
     linear-gradient(90deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.22) 34%, rgba(0,0,0,0) 62%),
     linear-gradient(180deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.30) 11%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,.5) 100%); }
  .vd .d-head { position: absolute; z-index: 4; left: var(--gutter); right: calc(var(--rail-w) + var(--gutter)); bottom: clamp(76px, 8.5vh, 110px); max-width: 920px; color: var(--paper); }
  .vd .d-head .eb { color: var(--sky); margin-bottom: 22px; }
  .vd .d-head h1 { font-family: var(--font-body); font-weight: 300; font-size: clamp(44px, 5.2vw, 90px); line-height: 0.96; letter-spacing: -0.035em; margin: 0; }
  .vd .d-head h1 em { font-style: italic; color: var(--sky); }
  .vd .d-head .sub { font-family: var(--font-body); font-weight: 300; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.5; color: var(--paper-2); margin: 22px 0 0; max-width: 44ch; text-wrap: pretty; }
  .vd .d-rail { position: absolute; z-index: 5; top: 0; right: 0; bottom: 0; width: var(--rail-w); display: flex; }
  .vd .d-strip { flex: 1 1 0; min-width: 0; position: relative; display: flex; align-items: center; justify-content: center; cursor: pointer; border: 0; border-left: 1px solid rgba(255,255,255,.14); background: rgba(15,35,54,.66); background: color-mix(in oklab, var(--ink) 64%, transparent); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); color: var(--paper-2); padding: 0; transition: background .4s var(--ease), color .4s var(--ease), flex-grow .4s var(--ease); }
  .vd .d-strip:hover { background: rgba(15,35,54,.82); background: color-mix(in oklab, var(--ink) 80%, transparent); color: var(--paper); }
  .vd .d-strip .d-label { writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--font-display); font-size: 11px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; white-space: nowrap; }
  .vd .d-strip .d-no { position: absolute; top: 22px; left: 50%; transform: translateX(-50%); font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.04em; color: var(--paper-3); transition: color .4s var(--ease); }
  .vd .d-strip .d-mk { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.32); transition: background .4s var(--ease); }
  .vd .d-strip.on { flex-grow: 1.5; background: rgba(20,58,92,.92); background: color-mix(in oklab, var(--coastal) 90%, transparent); color: var(--paper); border-left-color: var(--sky); box-shadow: inset 3px 0 0 var(--sky); }
  .vd .d-strip.on .d-label { color: var(--paper); }
  .vd .d-strip.on .d-no { color: var(--sky); }
  .vd .d-strip.on .d-mk { background: var(--sky); }
  .vd .d-foot { position: absolute; z-index: 4; left: var(--gutter); right: calc(var(--rail-w) + var(--gutter)); bottom: 26px; display: flex; justify-content: space-between; gap: 24px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.22); font-family: var(--font-display); font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--paper-3); }

  @media (max-width: 1280px) {
    .vd .vnav .lpd-lockup { --logo-h: 38px; }
  }
  @media (max-width: 720px) {
    .vnav-cta { display: none; }
  }
  @media (max-width: 920px) {
    .vd .vnav .lpd-lockup { --logo-h: 34px; }
    .vd .d-head h1 { font-size: clamp(40px, 11vw, 68px); }
    .vd .d-foot { display: none; }
  }
  /* Logo sizing + mobile mark-only swap */
  .vnav-logo { --logo-h: 42px; }
  .vnav-logo .logo-mark { display: none; }
  @media (max-width: 920px) { .vnav-logo { --logo-h: 34px; } }
  @media (max-width: 720px) {
    .vnav-logo .logo-full { display: none; }
    .vnav-logo .logo-mark { display: block; }
    .vnav-logo { --logo-h: 38px; }
  }

  /* ── Phone: the chapter rail lies down horizontally under the image ── */
  @media (max-width: 720px) {
    .vd { --rail-w: 0px; }
    .vd .d-rail {
      top: auto; left: 0; right: 0; bottom: 0;
      width: auto; height: 64px;
      flex-direction: row;
      border-top: 1px solid rgba(255,255,255,.18);
    }
    .vd .d-strip {
      border-left: 0;
      border-right: 1px solid rgba(255,255,255,.14);
      flex-direction: column; gap: 6px;
    }
    .vd .d-strip:last-child { border-right: 0; }
    .vd .d-strip .d-label { display: none; }
    .vd .d-strip .d-no { position: static; transform: none; font-size: 12px; }
    .vd .d-strip .d-mk { bottom: 10px; }
    .vd .d-strip.on { box-shadow: inset 0 3px 0 var(--sky); border-left: 0; }
    .vd .d-head { bottom: 104px; }
    .vd .d-head .sub { font-size: 17px; margin-top: 16px; }
  }

/* ── WordPress adaptation: the fixed header lives outside .stage.vd (it is a
   shared template part), so mirror the prototype's `.vd .vnav` rules — which
   clear the right-edge chapter rail and size the lockup — onto body.lp-home. */
body.lp-home { --rail-w: clamp(150px, 13vw, 240px); }
body.lp-home .vnav { padding-right: calc(var(--rail-w) + var(--gutter)); }
body.lp-home .vnav .lpd-lockup { --logo-h: 42px; }
@media (max-width: 1280px) {
  body.lp-home .vnav .lpd-lockup { --logo-h: 38px; }
}
@media (max-width: 920px) {
  body.lp-home .vnav .lpd-lockup { --logo-h: 34px; }
}
@media (max-width: 720px) {
  body.lp-home { --rail-w: 0px; }
}
