/* ============================================================
   DIA DEVELOPMENT — Cinematic investment-grade developer site
   Volume I, 2026
   ============================================================ */

:root{
  /* Light palette */
  --cream:        #f5f1ea;
  --cream-deep:   #ede6d8;
  --paper:        #faf7f2;
  --ink:          #14171a;
  --ink-soft:     #4a4d4a;
  --ink-quiet:    #76776f;
  --line:         #d8d2c4;
  --line-soft:    #e6dfce;

  /* Dark palette */
  --dark:         #0d100e;
  --dark-soft:    #161a17;
  --dark-warm:    #1a1f1c;
  --on-dark:      #ece8de;
  --on-dark-soft: #b0aca0;
  --on-dark-quiet:#7a786f;
  --line-dark:    #2a2e2a;

  /* Accents */
  --pine:         #1f2a20;
  --pine-soft:    #344b35;
  --gold:         #b8965a;
  --gold-deep:    #8c6f3f;
  --gold-glow:    #d8b87a;

  /* Type scale (modular, optical) */
  --t-display:    clamp(2.4rem, 5.8vw, 5.4rem);
  --t-h1:         clamp(2.2rem, 4.6vw, 4.2rem);
  --t-h2:         clamp(2.1rem, 4.4vw, 4.2rem);
  --t-h3:         clamp(1.5rem, 2.4vw, 2.4rem);
  --t-h4:         clamp(1.15rem, 1.5vw, 1.4rem);
  --t-body:       1.05rem;
  --t-small:      .82rem;
  --t-eyebrow:    .68rem;
  --t-caption:    .72rem;

  /* Layout */
  --container:    1480px;
  --gutter:       6vw;
  --section-py:   clamp(6rem, 12vw, 11rem);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:0}
body{
  font-family:'Inter',sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.6;
  font-weight:300;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:clip; /* clip (not hidden) so position:sticky still works in Safari */
  -webkit-tap-highlight-color:transparent;
}
input, textarea, select, button{
  -webkit-appearance:none;appearance:none;
  border-radius:0;
  -webkit-tap-highlight-color:transparent;
  font-family:inherit;
}

/* ===== Display & headings (Fraunces, optical) ===== */
.serif, h1, h2, h3, h4, h5, .display, .num{
  font-family:'Fraunces', serif;
  font-variation-settings:'opsz' 144, 'SOFT' 30, 'wght' 350;
  font-weight:350;
  letter-spacing:-.02em;
  line-height:1.05;
  color:var(--ink);
}
h1{font-size:var(--t-h1)}
h2{font-size:var(--t-h2)}
h3{font-size:var(--t-h3);line-height:1.1;letter-spacing:-.015em}
h4{font-size:var(--t-h4);line-height:1.25;letter-spacing:-.01em;font-variation-settings:'opsz' 60, 'wght' 450}
.display{font-size:var(--t-display);line-height:.98;letter-spacing:-.025em}
em, i, .italic{font-style:italic;font-variation-settings:'opsz' 144, 'SOFT' 80, 'wght' 350}
.italic-soft{font-style:italic;color:var(--gold);font-variation-settings:'opsz' 144, 'SOFT' 100, 'wght' 350}

p{color:var(--ink-soft);font-weight:300;font-size:var(--t-body);line-height:1.65;max-width:60ch}
a{color:inherit;text-decoration:none;transition:color .35s ease}
img,video{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer}

/* Eyebrow / labels */
.eyebrow{
  font-family:'Inter',sans-serif;
  font-size:var(--t-eyebrow);
  letter-spacing:.32em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--gold-deep);
  display:block;
}
.eyebrow .roman{
  font-family:'Fraunces',serif;font-style:italic;
  font-variation-settings:'opsz' 60, 'SOFT' 80;
  text-transform:none;letter-spacing:.04em;font-size:1rem;color:var(--gold);
  margin-right:.4rem;font-weight:400;
}
.caption{font-size:var(--t-caption);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-quiet);font-weight:500}

/* ===== Container ===== */
.wrap{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.section{padding:var(--section-py) 0}

/* Dark sections */
.dark{
  background:var(--dark);color:var(--on-dark);
}
.dark h1, .dark h2, .dark h3, .dark h4{color:var(--on-dark)}
.dark p{color:var(--on-dark-soft)}
.dark .eyebrow{color:var(--gold)}
.dark .eyebrow .roman{color:var(--gold-glow)}
.dark .caption{color:var(--on-dark-quiet)}

/* ===== Cinematic NAV ===== */
nav.bar{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;
  padding:1.2rem var(--gutter);
  transition:padding .5s cubic-bezier(.16,1,.3,1), background .5s ease, color .5s ease, transform .5s cubic-bezier(.16,1,.3,1);
  color:var(--on-dark);
  pointer-events:none;
}
nav.bar > *{pointer-events:auto}
nav.bar.dark-mode{color:var(--on-dark)}
nav.bar.light-mode{color:var(--ink)}
nav.bar.scrolled{
  padding:.85rem var(--gutter);
  background:rgba(245,241,234,.92);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  color:var(--ink);
  border-bottom:1px solid var(--line-soft);
}
nav.bar.scrolled.over-dark{background:rgba(13,16,14,.85);color:var(--on-dark);border-bottom-color:var(--line-dark)}
nav.bar.hidden{transform:translateY(-110%)}

.brand{
  display:flex;align-items:baseline;gap:.6rem;
  font-family:'Fraunces',serif;font-variation-settings:'opsz' 60,'wght' 450;
  font-size:1.45rem;letter-spacing:.04em;color:currentColor;
}
.brand .mono{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border:1px solid currentColor;
  font-size:.85rem;letter-spacing:.05em;
  font-variation-settings:'opsz' 14,'wght' 500;
  margin-right:.2rem;
}
.brand .word{font-style:italic;font-variation-settings:'opsz' 60,'SOFT' 60,'wght' 350}
.brand small{
  font-family:'Inter',sans-serif;font-size:.58rem;letter-spacing:.22em;
  text-transform:uppercase;font-weight:500;color:currentColor;opacity:.6;
  margin-left:.7rem;white-space:nowrap;
  padding-left:.8rem;border-left:1px solid currentColor;border-color:rgba(255,255,255,.18);
}
nav.bar.light-mode .brand small{border-left-color:rgba(20,20,18,.15)}
@media (max-width:1280px){.brand small{display:none}}

.nav-links{
  display:flex;justify-content:center;align-items:center;gap:2rem;list-style:none;
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;
}
.nav-links li{display:flex;align-items:center}
.nav-links a{
  position:relative;padding:.4rem 0;color:currentColor;opacity:.85;
  transition:opacity .3s ease;
  display:inline-flex;align-items:baseline;white-space:nowrap;
}
.nav-links a:hover{opacity:1}
.nav-links a .num{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;
  font-size:.78rem;text-transform:none;letter-spacing:.04em;
  margin-right:.5rem;color:var(--gold);
}

.nav-end{display:flex;justify-content:flex-end;align-items:center;gap:1.2rem}
.nav-phone{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.72rem;letter-spacing:.12em;font-weight:500;
  color:currentColor;opacity:.82;
  padding-right:1.1rem;border-right:1px solid currentColor;border-color:rgba(255,255,255,.18);
  transition:opacity .3s ease;white-space:nowrap;
}
nav.bar.light-mode .nav-phone{border-right-color:rgba(20,20,18,.15)}
.nav-phone:hover{opacity:1;color:var(--gold)}
.nav-phone svg{width:11px;height:11px;flex-shrink:0;opacity:.75}
@media (max-width:1100px){
  .nav-phone{display:none}
}
.lang-toggle{
  display:flex;gap:.05rem;align-items:center;
  font-size:.7rem;letter-spacing:.18em;font-weight:500;
}
.lang-toggle button{
  background:none;border:none;padding:.4rem .55rem;color:currentColor;opacity:.5;
  text-transform:uppercase;cursor:pointer;font-family:'Inter',sans-serif;
  font-size:.7rem;letter-spacing:.18em;font-weight:500;transition:opacity .25s ease;
}
.lang-toggle button.active{opacity:1}
.lang-toggle .sep{opacity:.35}

.cta-btn{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.85rem 1.4rem;border:1px solid currentColor;
  font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;font-weight:500;
  color:currentColor;background:transparent;
  transition:all .4s cubic-bezier(.16,1,.3,1);
  position:relative;overflow:hidden;
}
.cta-btn::after{
  content:'';position:absolute;inset:0;background:currentColor;
  transform:translateY(101%);transition:transform .5s cubic-bezier(.16,1,.3,1);z-index:-1;
}
.cta-btn:hover::after{transform:translateY(0)}
.cta-btn:hover{color:var(--cream)}
.dark .cta-btn:hover, .nav-end .cta-btn:hover{color:var(--dark)}
.cta-btn .arrow{transition:transform .35s ease;display:inline-block}
.cta-btn:hover .arrow{transform:translateX(4px)}

.menu-toggle{
  display:none;background:none;border:none;color:currentColor;
  padding:.4rem;font-size:1.4rem;cursor:pointer;
}

/* ===== Sticky chapter index (right edge) ===== */
.chapters{
  position:fixed;right:1.6rem;top:50%;transform:translateY(-50%);
  z-index:60;display:flex;flex-direction:column;gap:1.1rem;
  font-family:'Fraunces',serif;font-style:italic;
  font-variation-settings:'opsz' 14,'SOFT' 80;
  font-size:.78rem;letter-spacing:.04em;
  color:var(--ink);transition:color .5s ease;
  pointer-events:none;
}
.chapters > *{pointer-events:auto}
.chapters.dark-mode{color:var(--on-dark)}
.chapter-link{
  display:flex;align-items:center;gap:.7rem;
  opacity:.32;transition:opacity .4s ease, padding-left .5s ease;
  white-space:nowrap;cursor:pointer;
}
.chapter-link .dot{
  width:18px;height:1px;background:currentColor;display:inline-block;
  transition:width .5s cubic-bezier(.16,1,.3,1);
}
.chapter-link:hover{opacity:.65}
.chapter-link.active{opacity:1}
.chapter-link.active .dot{width:38px;background:var(--gold)}
.chapter-link .label{opacity:0;transform:translateX(-6px);transition:all .5s cubic-bezier(.16,1,.3,1);font-style:normal;font-family:'Inter',sans-serif;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase}
.chapter-link.active .label, .chapter-link:hover .label{opacity:.7;transform:none}

/* ===== I — HERO / THE COAST ===== */
.hero{
  position:relative;
  height:100vh;        /* fallback */
  height:100svh;       /* iOS Safari: small viewport (excludes URL bar) */
  min-height:640px;
  background:var(--dark);color:var(--on-dark);
  overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;
}
.hero-stage{position:absolute;inset:0}
.hero-frame{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;transition:opacity 2.6s cubic-bezier(.4,0,.2,1);
  will-change:opacity,transform;transform-origin:center;
}
.hero-frame.active{opacity:1}
.hero-frame.active{animation:kb 14s linear forwards}
.hero-frame[data-kb="1"].active{animation:kb1 14s ease-out forwards}
.hero-frame[data-kb="2"].active{animation:kb2 14s ease-out forwards}
.hero-frame[data-kb="3"].active{animation:kb3 14s ease-out forwards}
.hero-frame[data-kb="4"].active{animation:kb4 14s ease-out forwards}
@keyframes kb{0%{transform:scale(1.04)}100%{transform:scale(1.16) translate(-1.5%,-1%)}}
@keyframes kb1{0%{transform:scale(1.05) translate(.5%,0)}100%{transform:scale(1.18) translate(-2%,-1.5%)}}
@keyframes kb2{0%{transform:scale(1.16) translate(-1%,-.5%)}100%{transform:scale(1.04) translate(0,0)}}
@keyframes kb3{0%{transform:scale(1.04) translate(-1%,1%)}100%{transform:scale(1.18) translate(2%,-1%)}}
@keyframes kb4{0%{transform:scale(1.06) translate(0,1%)}100%{transform:scale(1.16) translate(0,-2%)}}

/* Hero veil — cinematic 3-stop */
.hero-stage::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(13,16,14,.55) 0%, rgba(13,16,14,.05) 30%, rgba(13,16,14,.85) 100%),
    linear-gradient(95deg, rgba(13,16,14,.55) 0%, rgba(13,16,14,0) 60%);
}
.grain{
  position:absolute;inset:0;pointer-events:none;z-index:1;
  opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .9 0 0 0 0 .85 0 0 0 0 .75 0 0 0 .9 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

.hero-inner{
  position:relative;z-index:2;
  padding:0 var(--gutter) clamp(4rem, 8vw, 7rem);
  max-width:var(--container);margin:0 auto;width:100%;
  display:grid;grid-template-columns:1fr;gap:3rem;
}
.hero-eyebrow{
  display:flex;align-items:center;gap:1.2rem;
  font-size:.7rem;letter-spacing:.4em;text-transform:uppercase;
  color:var(--on-dark-soft);font-weight:500;margin-bottom:1rem;
  opacity:0;transform:translateY(20px);transition:all 1.2s cubic-bezier(.16,1,.3,1);
}
.hero.lit .hero-eyebrow{opacity:1;transform:none;transition-delay:.2s}
.hero-eyebrow .roman{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;
  text-transform:none;letter-spacing:.05em;color:var(--gold);font-size:.95rem;
}
.hero-eyebrow .line{flex:1;height:1px;background:var(--on-dark-quiet);max-width:64px;opacity:.6}

.hero h1.display{
  color:var(--on-dark);max-width:22ch;
  opacity:0;transform:translateY(40px);
  transition:opacity 1.4s cubic-bezier(.16,1,.3,1), transform 1.6s cubic-bezier(.16,1,.3,1);
}
.hero.lit h1.display{opacity:1;transform:none;transition-delay:.45s}
.hero h1.display em{
  color:transparent;background:linear-gradient(110deg, #f6e9c8 0%, #fff8e2 30%, #d4b48a 50%, #f6e9c8 75%);
  background-size:220% auto;-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:gold-sweep 7s ease-in-out infinite;
}
@keyframes gold-sweep{0%,100%{background-position:0% center}50%{background-position:200% center}}

.hero-row{
  display:grid;grid-template-columns:1.3fr 1fr;gap:4rem;align-items:end;
  opacity:0;transform:translateY(28px);
  transition:opacity 1.3s cubic-bezier(.16,1,.3,1), transform 1.5s cubic-bezier(.16,1,.3,1);
}
.hero.lit .hero-row{opacity:1;transform:none;transition-delay:.85s}
.hero-sub{
  font-size:1.05rem;color:var(--on-dark-soft);max-width:42ch;line-height:1.7;
}
.hero-cta{display:flex;justify-content:flex-end;gap:1rem}
.hero .cta-btn{border-color:var(--on-dark);color:var(--on-dark);padding:1.1rem 1.8rem;font-size:.72rem}
.hero .cta-btn::after{background:var(--on-dark)}
.hero .cta-btn:hover{color:var(--dark)}

.scroll-cue{
  position:absolute;bottom:2.2rem;left:var(--gutter);z-index:3;
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;
  font-size:.85rem;color:var(--on-dark-soft);
  display:flex;align-items:center;gap:.8rem;letter-spacing:.02em;
}
.scroll-cue .stem{width:1px;height:38px;background:var(--gold);display:inline-block;animation:cue 2.4s ease-in-out infinite;transform-origin:top}
@keyframes cue{0%,100%{transform:scaleY(.4);opacity:.4}50%{transform:scaleY(1);opacity:1}}

/* Hero parallax holder */
.hero-stage{transform:translate3d(calc(var(--mx,0) * -10px), calc(var(--my,0) * -10px), 0);transition:transform .4s cubic-bezier(.16,1,.3,1)}

/* ===== II — THE PRACTICE ===== */
.practice{background:var(--cream)}
.practice-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:5rem 6rem;align-items:start;
}
.practice-lead{padding-right:3rem}
.practice-lead h2{margin-bottom:1.6rem;max-width:14ch}
.practice-lead p{margin-bottom:1.2rem;font-size:1.1rem;line-height:1.7;color:var(--ink-soft);max-width:48ch}
.practice-lead p + p{margin-top:1rem}

.creds{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}
.cred{
  display:grid;grid-template-columns:1fr 1fr;gap:2rem;
  padding:2rem 0;border-bottom:1px solid var(--line);align-items:end;
}
.cred-num{
  font-family:'Fraunces',serif;font-variation-settings:'opsz' 144,'wght' 350;
  font-size:clamp(2.4rem, 4.5vw, 3.6rem);line-height:1;color:var(--ink);letter-spacing:-.02em;
}
.cred-num small{
  font-family:'Inter',sans-serif;font-size:.95rem;letter-spacing:.04em;
  color:var(--ink-quiet);font-weight:400;margin-left:.3rem;
}
.cred-label{font-size:.95rem;color:var(--ink-soft);line-height:1.5;max-width:24ch}
.cred-label strong{display:block;font-weight:500;color:var(--ink);margin-bottom:.2rem}

/* ===== III — THE WORK ===== */
.work-intro{
  padding:var(--section-py) 0 calc(var(--section-py) * .5);
  background:var(--cream);
}
.work-intro .wrap{display:grid;grid-template-columns:1fr 1.4fr;gap:5rem;align-items:end}
.work-intro h2{margin-top:1.5rem;max-width:14ch}
.work-intro p{font-size:1.1rem;line-height:1.7;max-width:55ch}
.work-intro .filters{
  display:flex;gap:.5rem;margin-top:2.5rem;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;
}
.work-intro .filters button{
  background:none;border:none;padding:.6rem 1rem;color:var(--ink-quiet);cursor:pointer;
  border:1px solid transparent;transition:all .35s ease;font-family:'Inter',sans-serif;font-weight:500;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
}
.work-intro .filters button.active{color:var(--ink);border-color:var(--ink)}
.work-intro .filters button:hover{color:var(--ink)}

/* === III.A Mawaka — Featured pinned-scroll spread === */
.mawaka{background:var(--dark);color:var(--on-dark)}
.mawaka-spread{
  display:grid;grid-template-columns:1fr 1fr;
  position:relative;
}
.mawaka-photos{display:flex;flex-direction:column}
.mawaka-photo{
  height:100vh;height:100svh;
  background-size:cover;background-position:center;
  position:relative;overflow:hidden;
}
.mawaka-photo .frame-no{
  position:absolute;top:2rem;left:2rem;z-index:2;
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;
  font-size:.95rem;color:var(--on-dark);letter-spacing:.04em;
  background:rgba(13,16,14,.55);padding:.4rem .8rem;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.mawaka-photo .caption{
  position:absolute;bottom:2rem;left:2rem;right:2rem;z-index:2;
  color:var(--on-dark-soft);font-size:.78rem;letter-spacing:.04em;
  background:rgba(13,16,14,.55);padding:.6rem .9rem;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  max-width:38ch;
}

.mawaka-info{
  position:-webkit-sticky;position:sticky;top:0;
  height:100vh;height:100svh;
  display:flex;align-items:center;justify-content:flex-start;
  padding:4rem clamp(2rem, 5vw, 5rem);
  background:var(--dark);
}
.mawaka-info-inner{max-width:460px}
.mawaka-info .eyebrow{margin-bottom:1.5rem}
.mawaka-info h2{font-size:clamp(2.4rem,4.5vw,4.4rem);margin-bottom:.6rem;color:var(--on-dark);max-width:10ch}
.mawaka-info .subtitle{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 60,'SOFT' 80;
  font-size:1.05rem;color:var(--gold);margin-bottom:2rem;
}
.mawaka-info p{color:var(--on-dark-soft);font-size:1rem;line-height:1.7;margin-bottom:2.5rem;max-width:40ch}

.spec-table{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line-dark);margin-bottom:2rem}
.spec-row{
  display:grid;grid-template-columns:1fr 1.4fr;gap:2rem;
  padding:.85rem 0;border-bottom:1px solid var(--line-dark);
  font-size:.86rem;
}
.spec-row .k{color:var(--on-dark-quiet);letter-spacing:.18em;text-transform:uppercase;font-size:.7rem;font-weight:500;padding-top:.2rem}
.spec-row .v{color:var(--on-dark);font-weight:400}

.mawaka-actions{display:flex;gap:.8rem;flex-wrap:wrap}
.mawaka-actions .cta-btn{border-color:var(--on-dark);color:var(--on-dark);font-size:.7rem;padding:.95rem 1.4rem}
.mawaka-actions .cta-btn::after{background:var(--gold)}
.mawaka-actions .cta-btn:hover{color:var(--dark);border-color:var(--gold)}

.mawaka-plan{
  display:grid;place-items:center;height:100vh;
  background:var(--dark-warm);border-top:1px solid var(--line-dark);
  padding:4rem;color:var(--on-dark-quiet);
}
.plan-slot{
  border:1px dashed var(--line-dark);width:100%;max-width:520px;aspect-ratio:4/3;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem;
  text-align:center;padding:2rem;
}
.plan-slot .ico{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 144,'SOFT' 80;
  font-size:3rem;color:var(--gold);line-height:1;
}
.plan-slot p{color:var(--on-dark-quiet);max-width:32ch;text-align:center}

/* === III.B / III.C Investment cards === */
.invest{background:var(--cream);padding:var(--section-py) 0}
.invest-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.invest-card{
  background:var(--paper);
  display:grid;grid-template-rows:auto 1fr;
  position:relative;
  transition:transform .8s cubic-bezier(.16,1,.3,1), box-shadow .6s ease;
}
.invest-card:hover{transform:translateY(-6px);box-shadow:0 50px 80px -40px rgba(20,15,5,.18)}

.invest-cover{
  aspect-ratio:5/4;background-size:cover;background-position:center;
  position:relative;overflow:hidden;
}
.invest-cover::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(20,20,18,0) 60%, rgba(20,20,18,.4) 100%);
  pointer-events:none;
}
.invest-status-pill{
  position:absolute;top:1.5rem;left:1.5rem;z-index:2;
  background:var(--cream);color:var(--ink);font-size:.66rem;letter-spacing:.22em;
  text-transform:uppercase;font-weight:500;padding:.5rem .9rem;
}
.invest-status-pill.live{background:var(--pine);color:var(--cream)}
.invest-status-pill.live::before{
  content:'';display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--gold-glow);margin-right:.55rem;vertical-align:1px;
  animation:pulse 1.8s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}

.invest-body{padding:3rem 2.6rem 2.6rem;display:flex;flex-direction:column;gap:1.4rem}
.invest-body .eyebrow{margin-bottom:0}
.invest-body h3{font-size:clamp(1.7rem,2.4vw,2.4rem);margin-bottom:.3rem}
.invest-body .lede{font-size:.95rem;line-height:1.65;color:var(--ink-soft);max-width:40ch}

.invest-progress{margin:.5rem 0 .8rem}
.invest-progress-label{
  display:flex;justify-content:space-between;align-items:center;
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-quiet);
  margin-bottom:.6rem;font-weight:500;
}
.invest-progress-label .pct{
  font-family:'Fraunces',serif;font-style:italic;color:var(--gold-deep);
  font-variation-settings:'opsz' 60,'SOFT' 80;letter-spacing:.02em;text-transform:none;font-size:.95rem;
}
.invest-progress-track{height:2px;background:var(--line);position:relative;overflow:hidden}
.invest-progress-fill{
  position:absolute;left:0;top:0;height:100%;background:var(--gold);
  width:0;transition:width 1.6s cubic-bezier(.16,1,.3,1) .2s;
}
.invest-card.in .invest-progress-fill{width:var(--p, 0%)}

.invest-table{display:grid;grid-template-columns:1fr;gap:0;margin:.5rem 0 1rem}
.invest-row{
  display:grid;grid-template-columns:1fr 1fr;gap:1rem;
  padding:.8rem 0;border-top:1px solid var(--line-soft);font-size:.85rem;
}
.invest-row:last-child{border-bottom:1px solid var(--line-soft)}
.invest-row .k{color:var(--ink-quiet);letter-spacing:.16em;text-transform:uppercase;font-size:.66rem;font-weight:500;padding-top:.15rem}
.invest-row .v{color:var(--ink);font-weight:400}

.invest-actions{display:flex;gap:.7rem;margin-top:auto;padding-top:.5rem;flex-wrap:wrap}
.invest-actions .cta-btn{font-size:.66rem;padding:.85rem 1.2rem;letter-spacing:.22em}
.invest-actions .cta-btn.primary{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.invest-actions .cta-btn.primary::after{background:var(--gold)}

/* ===== IV — THE PLACE ===== */
.place{background:var(--dark);color:var(--on-dark);position:relative;overflow:hidden}
.place-bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:.22;filter:grayscale(.4);
  transform:scale(1.05) translate3d(0, calc(var(--placeY, 0) * 1px), 0);
  transition:transform .15s linear;
}
.place-bg::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(13,16,14,.6) 0%, rgba(13,16,14,.85) 100%);
}
.place .wrap{position:relative;z-index:2}
.place-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:5rem;align-items:end}
.place h2{max-width:13ch;margin-top:1.5rem}
.place p{color:var(--on-dark-soft);font-size:1.1rem;line-height:1.7;max-width:48ch}
.place-stats{
  display:grid;grid-template-columns:repeat(2,1fr);gap:0;
  margin-top:3rem;border-top:1px solid var(--line-dark);
}
.place-stat{
  padding:2rem 0;border-bottom:1px solid var(--line-dark);
  display:grid;grid-template-rows:auto auto;gap:.5rem;
}
.place-stat .n{
  font-family:'Fraunces',serif;font-variation-settings:'opsz' 144,'wght' 350;
  font-size:clamp(2rem,3.5vw,3rem);line-height:1;color:var(--on-dark);letter-spacing:-.02em;
}
.place-stat .n small{font-family:'Inter',sans-serif;font-size:.85rem;color:var(--on-dark-quiet);font-weight:400;margin-left:.3rem;letter-spacing:.04em}
.place-stat .l{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark-quiet);font-weight:500}
.place-stat:nth-child(odd){padding-right:1.5rem}
.place-stat:nth-child(even){padding-left:1.5rem;border-left:1px solid var(--line-dark)}

/* ===== V — THE PROCESS ===== */
.process{background:var(--cream)}
.process-intro{display:grid;grid-template-columns:1fr 1.4fr;gap:5rem;align-items:end;margin-bottom:5rem}
.process-intro h2{max-width:14ch;margin-top:1.5rem}
.process-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:2rem;
}
.process-step{
  border-top:1px solid var(--line);padding-top:2rem;display:flex;flex-direction:column;gap:1rem;
}
.process-step .step-no{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 144,'SOFT' 80;
  font-size:2.6rem;line-height:1;color:var(--gold);letter-spacing:.02em;
}
.process-step h4{font-size:1.2rem;line-height:1.25;margin-bottom:.3rem;font-variation-settings:'opsz' 60,'wght' 450}
.process-step p{font-size:.9rem;color:var(--ink-soft);line-height:1.65;max-width:28ch}

/* ===== VI — THE PEOPLE ===== */
.people{background:var(--paper)}
.people-intro{display:grid;grid-template-columns:1fr 1.4fr;gap:5rem;align-items:end;margin-bottom:5rem}
.people-intro h2{max-width:16ch;margin-top:1.5rem}

.directors{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-bottom:5rem;
  max-width:980px;
}
.director{display:flex;flex-direction:column;gap:1rem;max-width:280px}
.director-portrait{
  aspect-ratio:1/1;width:140px;
  background-size:cover;background-position:center 30%;
  background-color:var(--cream-deep);
  border-radius:50%;
  filter:grayscale(.08);transition:filter .8s ease, transform .9s cubic-bezier(.16,1,.3,1);
}
.director:hover .director-portrait{filter:grayscale(0);transform:scale(1.02)}
.director-name{
  font-family:'Fraunces',serif;font-variation-settings:'opsz' 60,'wght' 400;
  font-size:1.35rem;letter-spacing:-.005em;line-height:1.1;margin-top:.4rem;
}
.director-role{
  font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);
  font-weight:500;margin-top:.2rem;
}
.director-quote{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 60,'SOFT' 100;
  font-size:.92rem;color:var(--ink-soft);line-height:1.55;margin-top:.6rem;max-width:30ch;
  border-left:1px solid var(--gold);padding-left:.9rem;
}

.team-onsite{
  border-top:1px solid var(--line);padding-top:4rem;
}
.team-onsite h4{
  font-family:'Inter',sans-serif;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink-quiet);font-weight:500;margin-bottom:2rem;
}
.team-grid{
  display:grid;grid-template-columns:repeat(6,1fr);gap:2rem 1.5rem;
}
.team-member{display:flex;flex-direction:column;gap:.7rem}
.team-photo{
  aspect-ratio:1/1;background-size:cover;background-position:center top;
  background-color:var(--cream-deep);
  filter:grayscale(.15);transition:filter .8s ease;
  border-radius:50%;
}
.team-member:hover .team-photo{filter:grayscale(0)}
.team-photo.placeholder{
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg, var(--cream-deep) 0%, var(--line) 100%);
  font-family:'Fraunces',serif;font-style:italic;font-size:1.6rem;
  color:var(--gold-deep);
}
.team-member .nm{font-size:.92rem;font-weight:500;color:var(--ink);text-align:center}
.team-member .rl{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-quiet);text-align:center;font-weight:500}

/* ===== VII — INQUIRE ===== */
.inquire{background:var(--dark);color:var(--on-dark)}
.inquire-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:6rem;align-items:start}
.inquire-lead h2{max-width:14ch;margin-top:1.5rem;margin-bottom:1.5rem;color:var(--on-dark)}
.inquire-lead p{color:var(--on-dark-soft);font-size:1.05rem;line-height:1.7;max-width:42ch;margin-bottom:2rem}
.inquire-direct{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line-dark);margin-top:2rem}
.inquire-direct a{
  padding:1.1rem 0;border-bottom:1px solid var(--line-dark);
  display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:baseline;
  font-size:.95rem;color:var(--on-dark);
}
.inquire-direct a .lbl{
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);
  font-weight:500;
}
.inquire-direct a:hover{color:var(--gold-glow)}

.inquire-form{
  display:grid;grid-template-columns:1fr 1fr;gap:1.8rem 2rem;
}
.field{display:flex;flex-direction:column;gap:.5rem;position:relative}
.field-full{grid-column:span 2}
.field label{
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);
  font-weight:500;
}
.field input, .field select, .field textarea{
  background:transparent;border:none;border-bottom:1px solid var(--line-dark);
  padding:.85rem 0 .8rem;color:var(--on-dark);font-size:1rem;
  font-family:'Inter',sans-serif;font-weight:300;
  transition:border-color .35s ease;
  border-radius:0;
}
.field input::placeholder, .field textarea::placeholder{color:var(--on-dark-quiet);opacity:.7}
.field input:focus, .field select:focus, .field textarea:focus{outline:none;border-bottom-color:var(--gold)}
.field select{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23b8965a' stroke-width='1.2'/></svg>");
  background-repeat:no-repeat;background-position:right .2rem center;
  padding-right:1.6rem;cursor:pointer;
}
.field select option{background:var(--dark);color:var(--on-dark)}
.field textarea{min-height:120px;resize:vertical;line-height:1.6}

.radio-group{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}
.radio-pill{
  position:relative;
}
.radio-pill input{position:absolute;opacity:0;pointer-events:none}
.radio-pill label{
  display:inline-flex;padding:.65rem 1.1rem;border:1px solid var(--line-dark);
  font-size:.74rem;color:var(--on-dark-soft);cursor:pointer;
  transition:all .3s ease;letter-spacing:.04em;font-weight:300;text-transform:none;
}
.radio-pill input:checked + label{background:var(--gold);color:var(--dark);border-color:var(--gold)}
.radio-pill label:hover{border-color:var(--gold)}

.form-submit{
  grid-column:span 2;display:flex;justify-content:flex-end;align-items:center;gap:1.5rem;
  margin-top:1rem;
}
.form-note{font-size:.78rem;color:var(--on-dark-quiet);max-width:28ch}
.form-submit .cta-btn{
  border-color:var(--gold);color:var(--gold);padding:1.1rem 2.2rem;font-size:.74rem;
}
.form-submit .cta-btn::after{background:var(--gold)}
.form-submit .cta-btn:hover{color:var(--dark);border-color:var(--gold)}

.form-success{
  display:none;padding:2rem;border:1px solid var(--gold);
  margin-top:2rem;color:var(--on-dark);
  font-family:'Fraunces',serif;font-style:italic;font-size:1.2rem;line-height:1.5;
  font-variation-settings:'opsz' 60,'SOFT' 100;
}
.form-success.show{display:block}

/* ===== FAQ ===== */
.faq{background:var(--paper);padding:var(--section-py) 0}
.faq .wrap{display:grid;grid-template-columns:1fr 2fr;gap:5rem;align-items:start}
.faq h2{max-width:12ch;margin-top:1.5rem}
.faq-list .faq-item{border-top:1px solid var(--line)}
.faq-list .faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-q{
  width:100%;background:none;border:none;cursor:pointer;text-align:left;
  font-family:'Fraunces',serif;font-variation-settings:'opsz' 60,'wght' 400;
  font-size:1.3rem;color:var(--ink);line-height:1.3;letter-spacing:-.005em;
  padding:1.6rem 0;display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem;align-items:center;
  transition:color .3s ease;
}
.faq-q:hover{color:var(--gold-deep)}
.faq-q .qno{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 60,'SOFT' 80;
  color:var(--gold);font-size:.95rem;letter-spacing:.04em;
}
.faq-q .plus{
  font-size:1.1rem;color:var(--gold-deep);transition:transform .5s cubic-bezier(.16,1,.3,1);
  font-family:'Inter',sans-serif;font-weight:300;
}
.faq-item.open .faq-q .plus{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .55s cubic-bezier(.16,1,.3,1)}
.faq-a-inner{padding:0 0 1.8rem 4rem;color:var(--ink-soft);font-size:1rem;line-height:1.7;max-width:65ch}

/* ===== Footer ===== */
footer{
  background:var(--dark);color:var(--on-dark-quiet);
  padding:5rem var(--gutter) 2rem;
}
.footer-grid{
  max-width:var(--container);margin:0 auto;
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;
  padding-bottom:3rem;border-bottom:1px solid var(--line-dark);
}
.footer-brand .brand{color:var(--on-dark);margin-bottom:1.5rem;display:inline-flex}
.footer-brand p{color:var(--on-dark-soft);font-size:.95rem;max-width:38ch;line-height:1.65}
.footer-col h5{
  font-family:'Inter',sans-serif;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);margin-bottom:1.2rem;font-weight:500;
}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:.7rem}
.footer-col a{color:var(--on-dark-soft);font-size:.92rem;transition:color .3s ease}
.footer-col a:hover{color:var(--gold-glow)}
.footer-bot{
  max-width:var(--container);margin:0 auto;padding-top:2rem;
  display:grid;grid-template-columns:auto auto;justify-content:space-between;align-items:center;gap:1rem;
  font-size:.75rem;letter-spacing:.06em;color:var(--on-dark-quiet);
}
.footer-bot .legal a{color:var(--on-dark-quiet);margin-left:1.5rem}
.footer-bot .legal a:hover{color:var(--on-dark)}

/* ===== Reveal-on-scroll ===== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1.1s cubic-bezier(.16,1,.3,1), transform 1.2s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}
.reveal.in{opacity:1;transform:none}
.stagger > *{opacity:0;transform:translateY(34px);transition:opacity 1s cubic-bezier(.16,1,.3,1), transform 1.1s cubic-bezier(.16,1,.3,1)}
.stagger.in > *{opacity:1;transform:none}
.stagger.in > *:nth-child(1){transition-delay:.05s}
.stagger.in > *:nth-child(2){transition-delay:.15s}
.stagger.in > *:nth-child(3){transition-delay:.25s}
.stagger.in > *:nth-child(4){transition-delay:.35s}
.stagger.in > *:nth-child(5){transition-delay:.45s}
.stagger.in > *:nth-child(6){transition-delay:.55s}
.stagger.in > *:nth-child(7){transition-delay:.65s}
.stagger.in > *:nth-child(8){transition-delay:.75s}

/* ===== Scroll progress bar (top edge) ===== */
.scroll-progress{
  position:fixed;top:0;left:0;right:0;height:2px;
  background:transparent;z-index:90;pointer-events:none;
}
.scroll-progress .bar{
  height:100%;background:linear-gradient(90deg, var(--gold-deep), var(--gold-glow));
  width:0;transform-origin:left;transition:width .15s linear;
}

/* ===== Ghost section numerals (editorial signature) ===== */
.section, .practice, .invest, .place, .process, .people, .inquire, .faq, .work-intro, .mawaka{
  position:relative;
}
.ghost-num{
  position:absolute;
  font-family:'Fraunces',serif;font-style:italic;
  font-variation-settings:'opsz' 144,'SOFT' 100,'wght' 300;
  font-size:clamp(20rem, 38vw, 42rem);
  line-height:.85;letter-spacing:-.04em;
  color:var(--ink);opacity:.04;
  pointer-events:none;user-select:none;
  z-index:0;
  top:-2vw;right:-3vw;
}
.dark .ghost-num, .place .ghost-num, .mawaka .ghost-num, .inquire .ghost-num{
  color:var(--on-dark);opacity:.045;
}
.ghost-num.left{right:auto;left:-4vw;top:auto;bottom:-3vw}
.wrap{position:relative;z-index:1}
.section .wrap, .practice .wrap, .invest .wrap, .place .wrap, .process .wrap, .people .wrap, .inquire .wrap{position:relative;z-index:2}

/* ===== Section divider (gold rule) ===== */
.divider{
  height:1px;background:var(--line);max-width:var(--container);
  margin:0 auto;width:calc(100% - var(--gutter) * 2);
  position:relative;
}
.divider::before{
  content:'';position:absolute;left:0;top:0;height:1px;
  width:64px;background:var(--gold);
}

/* ===== Mawaka frame counter (sticky info column) ===== */
.frame-counter{
  display:flex;align-items:center;gap:1rem;margin-bottom:1.4rem;
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;
  color:var(--gold);font-size:.95rem;letter-spacing:.04em;
}
.frame-counter .digits{display:inline-flex;align-items:baseline;gap:.4rem}
.frame-counter .now{
  font-size:1.6rem;color:var(--on-dark);transition:opacity .35s ease;
  font-variation-settings:'opsz' 60,'wght' 400;font-style:italic;
}
.frame-counter .of{color:var(--on-dark-quiet)}
.frame-counter .total{color:var(--on-dark-quiet);font-size:1rem}
.frame-counter .ticks{display:inline-flex;gap:.3rem;margin-left:1rem}
.frame-counter .tick{
  width:18px;height:1px;background:var(--line-dark);transition:background .4s ease, height .35s ease;
  display:inline-block;
}
.frame-counter .tick.active{background:var(--gold);height:2px}

/* ===== Process — connecting timeline ===== */
.process-grid{position:relative}
.process-grid::before{
  content:'';position:absolute;top:2rem;left:0;right:0;height:1px;
  background:linear-gradient(90deg, var(--line) 0%, var(--gold) 30%, var(--gold) 70%, var(--line) 100%);
  z-index:0;opacity:.6;
}
.process-step{position:relative;background:var(--cream);padding-top:2rem}
.process-step::before{
  content:'';position:absolute;top:calc(2rem - 4px);left:0;
  width:9px;height:9px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 0 4px var(--cream);
}
.process-step .step-duration{
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-quiet);font-weight:500;margin-top:.3rem;
}
@media (max-width:1000px){
  .process-grid::before{display:none}
  .process-step::before{display:none}
  .process-step{padding-top:1.5rem}
}

/* ===== Director — refined ===== */
.director{position:relative}
.director-link{
  display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);
  font-weight:500;transition:color .3s ease;
}
.director-link:hover{color:var(--gold)}
.director-link svg{width:14px;height:14px;fill:currentColor}

/* ===== Place — SVG map ===== */
.place-map-wrap{
  margin-top:3.5rem;padding-top:3rem;border-top:1px solid var(--line-dark);
  display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;align-items:center;
}
.place-map{
  width:100%;max-width:560px;height:auto;
}
.place-map .coast{fill:none;stroke:var(--line-dark);stroke-width:1}
.place-map .land{fill:var(--dark-warm);stroke:var(--line-dark);stroke-width:1}
.place-map .road{fill:none;stroke:var(--gold);stroke-width:.7;stroke-dasharray:3 4;opacity:.7}
.place-map .water{fill:transparent}
.place-map .marker{fill:var(--gold);transform-origin:center;animation:marker-pulse 2.4s ease-in-out infinite}
.place-map .marker-ring{fill:none;stroke:var(--gold);stroke-width:1;opacity:.4;transform-origin:center;animation:marker-ring 2.4s ease-out infinite}
.place-map .lbl{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;
  font-size:11px;fill:var(--on-dark);letter-spacing:.05em;
}
.place-map .lbl-quiet{fill:var(--on-dark-quiet);font-size:9px}
.place-map .lbl-gold{fill:var(--gold);font-size:13px;font-weight:500}
@keyframes marker-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
@keyframes marker-ring{0%{transform:scale(.5);opacity:.6}100%{transform:scale(2);opacity:0}}
.place-map-note{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 60,'SOFT' 100;
  font-size:1.05rem;color:var(--on-dark-soft);line-height:1.55;max-width:32ch;
  border-left:1px solid var(--gold);padding-left:1.2rem;
}
@media (max-width:1000px){
  .place-map-wrap{grid-template-columns:1fr;gap:2rem}
}

/* ===== Form — extra polish ===== */
.field input, .field select, .field textarea{
  padding-bottom:.9rem;
  transition:border-color .35s ease, color .25s ease;
}
.field input:hover, .field select:hover, .field textarea:hover{border-bottom-color:var(--on-dark-soft)}
.form-meta{
  display:flex;justify-content:space-between;align-items:baseline;
  grid-column:span 2;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--on-dark-quiet);margin-top:1rem;padding-top:1.5rem;
  border-top:1px solid var(--line-dark);
}
.form-meta .roman{font-family:'Fraunces',serif;font-style:italic;color:var(--gold);text-transform:none;letter-spacing:.04em;font-size:.95rem}

/* ===== Footer — signature quote ===== */
.footer-quote{
  max-width:var(--container);margin:0 auto 3rem;padding-top:0;
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 144,'SOFT' 100,'wght' 350;
  font-size:clamp(1.4rem, 2.4vw, 2rem);line-height:1.4;color:var(--on-dark);max-width:42ch;
  letter-spacing:-.005em;
}
.footer-quote::before{
  content:'';display:block;width:48px;height:1px;background:var(--gold);margin-bottom:1.5rem;
}

/* ===== Hero — pinned project ticker (bottom) ===== */
.hero-ticker{
  position:absolute;bottom:2.2rem;right:var(--gutter);z-index:3;
  display:flex;align-items:center;gap:.7rem;
  font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--on-dark-soft);font-weight:500;
}
.hero-ticker .pulse{
  width:7px;height:7px;border-radius:50%;background:var(--gold-glow);
  animation:pulse 1.8s ease-in-out infinite;
}
.hero-ticker .pipe{opacity:.4;margin:0 .3rem}
.hero-ticker .name{font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;text-transform:none;letter-spacing:.04em;color:var(--gold-glow);font-size:.85rem}

/* ===== Investment card — refined corners + reserved-feel ===== */
.invest-card{position:relative}
.invest-card .reserve{
  position:absolute;top:1.5rem;right:1.5rem;z-index:3;
  font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--on-dark);background:rgba(13,16,14,.55);backdrop-filter:blur(8px);
  padding:.5rem .8rem;font-weight:500;
}

/* ===== Hover states for spec rows ===== */
.spec-row, .invest-row{transition:background .3s ease}
.spec-row:hover{background:rgba(184,150,90,.04)}
.invest-row:hover{background:rgba(184,150,90,.04)}

/* ===== Place — full-bleed Diani Beach hero + facts band ===== */
.place-v2{
  background:var(--dark);color:var(--on-dark);position:relative;overflow:hidden;padding:0;
}
.place-v2 .ghost-num{color:var(--on-dark);opacity:.045;z-index:0}
.place-hero{
  position:relative;height:90vh;height:90svh;min-height:640px;
  width:100%;overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;
}
.place-hero-bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
  transform:scale(1.04) translate3d(0, calc(var(--placeY,0) * 1px), 0);
  transition:transform .15s linear;
  filter:brightness(.95) saturate(1.05);
}
.place-hero::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(13,16,14,.35) 0%, rgba(13,16,14,0) 30%, rgba(13,16,14,.85) 100%),
    linear-gradient(95deg, rgba(13,16,14,.45) 0%, rgba(13,16,14,0) 60%);
}
.place-hero-inner{
  position:relative;z-index:2;
  padding:0 var(--gutter) clamp(3rem,6vw,5rem);
  max-width:var(--container);margin:0 auto;width:100%;
}
.place-hero .eyebrow{margin-bottom:1.4rem;color:var(--gold)}
.place-hero .eyebrow .roman{color:var(--gold-glow)}
.place-hero h2{
  color:var(--on-dark);font-size:clamp(2.2rem,5vw,4.6rem);max-width:14ch;
  line-height:1.05;letter-spacing:-.015em;margin-bottom:1.4rem;
}
.place-hero .lede{
  color:var(--on-dark-soft);font-size:1.05rem;line-height:1.65;max-width:48ch;
}
.place-hero .photo-credit{
  position:absolute;bottom:1.4rem;right:var(--gutter);z-index:3;
  font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark-quiet);
  font-weight:500;
}

.place-band{
  background:var(--dark-soft);border-top:1px solid var(--line-dark);
  padding:clamp(3rem, 6vw, 5rem) 0;
}
.place-band .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.place-band-fact{
  padding:0 2rem;border-left:1px solid var(--line-dark);
  display:flex;flex-direction:column;gap:.6rem;
}
.place-band-fact:first-child{border-left:none;padding-left:0}
.place-band-fact .ico{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;
  color:var(--gold);font-size:.8rem;letter-spacing:.04em;
}
.place-band-fact .v{
  font-family:'Fraunces',serif;font-variation-settings:'opsz' 60,'wght' 400;
  font-size:clamp(1.5rem, 2.4vw, 2rem);color:var(--on-dark);line-height:1.05;letter-spacing:-.005em;
}
.place-band-fact .v small{
  font-family:'Inter',sans-serif;font-style:normal;font-size:.7rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--on-dark-quiet);font-weight:500;margin-left:.3rem;
}
.place-band-fact .l{font-size:.88rem;color:var(--on-dark-soft);line-height:1.55;max-width:24ch}
@media (max-width:1000px){
  .place-band .wrap{grid-template-columns:repeat(2,1fr);gap:2.5rem 0}
  .place-band-fact{border-left:none;padding-left:0;padding-right:1.2rem}
  .place-band-fact:nth-child(odd){border-right:1px solid var(--line-dark);padding-right:2rem}
  .place-band-fact:nth-child(even){padding-left:2rem}
}
@media (max-width:680px){
  .place-band .wrap{grid-template-columns:1fr;gap:2rem 0}
  .place-band-fact, .place-band-fact:nth-child(odd){border:none;padding:1.5rem 0;border-top:1px solid var(--line-dark)}
  .place-band-fact:first-child{border-top:none;padding-top:0}
  .place-hero{min-height:520px}
}

/* ===== Place — Diani portrait grid + facts ===== */
.diani-portrait{
  margin-top:5rem;display:grid;
  grid-template-columns:1.4fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:14px;height:580px;
}
.diani-frame{
  position:relative;overflow:hidden;
  background-size:cover;background-position:center;
  background-color:var(--dark-warm);
  transition:transform .9s cubic-bezier(.16,1,.3,1), filter .6s ease;
  filter:brightness(.96) contrast(1.02) saturate(1.05);
}
.diani-frame:hover{transform:scale(1.01);filter:brightness(1) contrast(1.04)}
.diani-frame.tall{grid-row:span 2}
.diani-frame::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg, rgba(13,16,14,0) 50%, rgba(13,16,14,.7) 100%);
}
.diani-cap{
  position:absolute;left:1.4rem;right:1.4rem;bottom:1.2rem;z-index:2;
  display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
}
.diani-cap .it{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;
  color:var(--gold-glow);font-size:.95rem;letter-spacing:.04em;
}
.diani-cap .meta{
  font-family:'Inter',sans-serif;font-size:.62rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--on-dark-soft);font-weight:500;
}
.diani-portrait-note{
  margin-top:1rem;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--on-dark-quiet);font-weight:500;text-align:right;
}
.diani-portrait-note .roman{
  font-family:'Fraunces',serif;font-style:italic;color:var(--gold);
  text-transform:none;letter-spacing:.04em;font-size:.95rem;margin-right:.4rem;
}

.diani-facts{
  margin-top:5rem;padding-top:3rem;border-top:1px solid var(--line-dark);
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
}
.diani-fact{
  padding:1.4rem 1.6rem;border-left:1px solid var(--line-dark);
  display:flex;flex-direction:column;gap:.5rem;
}
.diani-fact:first-child{border-left:none;padding-left:0}
.diani-fact .v{
  font-family:'Fraunces',serif;font-variation-settings:'opsz' 60,'wght' 400;
  font-size:1.5rem;color:var(--on-dark);line-height:1.1;letter-spacing:-.005em;
}
.diani-fact .v small{
  font-family:'Inter',sans-serif;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--on-dark-quiet);font-weight:500;margin-left:.3rem;
}
.diani-fact .l{
  font-size:.82rem;color:var(--on-dark-soft);line-height:1.5;max-width:24ch;
}
@media (max-width:1000px){
  .diani-portrait{grid-template-columns:1fr;grid-template-rows:repeat(3, 220px);height:auto}
  .diani-frame.tall{grid-row:auto}
  .diani-facts{grid-template-columns:repeat(2,1fr)}
  .diani-fact{border-left:none;padding-left:0;padding-top:1.4rem;border-top:1px solid var(--line-dark)}
  .diani-fact:nth-child(-n+2){border-top:none;padding-top:0}
}
@media (max-width:680px){
  .diani-portrait{grid-template-rows:repeat(3, 200px)}
  .diani-facts{grid-template-columns:1fr}
  .diani-fact:nth-child(-n+2){border-top:1px solid var(--line-dark);padding-top:1.4rem}
  .diani-fact:first-child{border-top:none;padding-top:0}
}

/* ===== Place — refined editorial layout ===== */
.place-headline{
  display:grid;grid-template-columns:1fr 1.2fr;gap:5rem;align-items:end;
}
.place-grid{display:none}
.place-stats-rail{
  display:grid;grid-template-columns:1fr;gap:0;margin-top:2rem;
}
.place-stat-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:baseline;
  padding:1.4rem 0;border-bottom:1px solid var(--line-dark);
  transition:background .35s ease;
}
.place-stat-row:first-child{border-top:1px solid var(--line-dark)}
.place-stat-row:hover{background:rgba(184,150,90,.04)}
.place-stat-row .n{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 144,'SOFT' 80,'wght' 350;
  font-size:clamp(1.8rem, 3vw, 2.6rem);color:var(--on-dark);line-height:1;letter-spacing:-.01em;
  min-width:130px;
}
.place-stat-row .n small{
  font-family:'Inter',sans-serif;font-style:normal;font-size:.7rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--on-dark-quiet);font-weight:500;margin-left:.3rem;
}
.place-stat-row .l{font-size:.95rem;color:var(--on-dark)}
.place-stat-row .l small{display:block;font-size:.78rem;color:var(--on-dark-quiet);margin-top:.2rem;font-weight:400}
.place-stat-row .ico{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;
  color:var(--gold);font-size:.85rem;letter-spacing:.04em;
}

.place-essay{
  margin-top:5rem;padding-top:4rem;border-top:1px solid var(--line-dark);
  display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;
}
.place-essay h3{color:var(--on-dark);font-size:clamp(1.6rem, 2.4vw, 2.2rem);max-width:18ch;margin-bottom:1.5rem}
.place-essay p{color:var(--on-dark-soft);font-size:1rem;line-height:1.7;max-width:46ch;margin-bottom:1rem}
.place-essay p + p{margin-top:.6rem}
.place-essay .quote{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 60,'SOFT' 100;
  font-size:1.1rem;color:var(--on-dark);line-height:1.55;
  border-left:1px solid var(--gold);padding-left:1.2rem;margin-top:1.5rem;max-width:38ch;
}

.flights-rail{
  display:grid;grid-template-columns:1fr;gap:0;margin-top:1rem;
}
.flight{
  display:grid;grid-template-columns:1fr auto auto;gap:1.4rem;align-items:baseline;
  padding:.8rem 0;border-bottom:1px solid var(--line-dark);
  font-size:.9rem;color:var(--on-dark);
}
.flight:first-child{border-top:1px solid var(--line-dark)}
.flight .from{font-weight:400}
.flight .arrow{color:var(--gold);font-style:italic;font-family:'Fraunces',serif;font-size:.85rem}
.flight .hrs{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;
  color:var(--gold);letter-spacing:.04em;font-size:.95rem;
}
.flights-title{
  font-family:'Inter',sans-serif;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);font-weight:500;margin-bottom:1rem;
}

@media (max-width:1000px){
  .place-headline{grid-template-columns:1fr;gap:2rem}
  .place-essay{grid-template-columns:1fr;gap:2.5rem}
}

/* ===== Project click cue (invest cards) ===== */
.invest-card{cursor:pointer}
.invest-card .invest-cover{transition:transform .8s cubic-bezier(.16,1,.3,1)}
.invest-card:hover .invest-cover{transform:scale(1.015)}
.invest-card .open-cue{
  position:absolute;top:1.5rem;right:1.5rem;z-index:3;
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--on-dark);
  background:rgba(13,16,14,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:.45rem .7rem;font-weight:500;
}
/* Don't trigger card click when hitting the inquire button itself */
.invest-card .invest-actions a, .invest-card .invest-actions button{position:relative;z-index:4}

/* ===== Project modal (full-screen fly-in) ===== */
.project-modal{
  position:fixed;inset:0;z-index:200;
  background:var(--dark);color:var(--on-dark);
  opacity:0;visibility:hidden;
  transition:opacity .55s cubic-bezier(.16,1,.3,1), visibility 0s linear .55s;
  overflow-y:auto;
}
.project-modal.open{opacity:1;visibility:visible;transition:opacity .55s cubic-bezier(.16,1,.3,1), visibility 0s linear 0s}
.project-modal-close{
  position:fixed;top:1.4rem;right:var(--gutter);z-index:210;
  background:none;border:1px solid var(--on-dark);color:var(--on-dark);
  width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  font-size:1rem;cursor:pointer;transition:all .35s ease;
}
.project-modal-close:hover{background:var(--gold);border-color:var(--gold);color:var(--dark)}
.project-modal-inner{
  max-width:var(--container);margin:0 auto;padding:5rem var(--gutter) 5rem;
}
.pm-header{
  display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;
  padding-bottom:2.5rem;border-bottom:1px solid var(--line-dark);margin-bottom:3rem;
}
.pm-header h2{color:var(--on-dark);font-size:clamp(2rem,4vw,3.6rem);max-width:14ch}
.pm-header .eyebrow{margin-bottom:1rem}
.pm-meta{display:flex;flex-direction:column;gap:.4rem;text-align:right;font-size:.82rem;color:var(--on-dark-quiet)}
.pm-meta strong{color:var(--gold);font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 60,'SOFT' 80;font-size:1.1rem;letter-spacing:.02em;font-weight:400}

.pm-section{margin-bottom:4rem}
.pm-section .pm-section-title{
  font-family:'Inter',sans-serif;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);font-weight:500;margin-bottom:1.6rem;
  display:flex;align-items:center;gap:1rem;
}
.pm-section .pm-section-title::before{
  content:'';display:inline-block;width:32px;height:1px;background:var(--gold);
}

.pm-gallery{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
}
.pm-gallery img{
  width:100%;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;
  background:var(--dark-warm);
  filter:brightness(.95);transition:transform .8s cubic-bezier(.16,1,.3,1), filter .35s ease;
}
.pm-gallery img:hover{transform:scale(1.02);filter:brightness(1.02)}

.pm-floorplan{
  border:1px dashed var(--line-dark);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.8rem;
  padding:5rem 2rem;text-align:center;color:var(--on-dark-quiet);min-height:340px;
  background:var(--dark-warm);
}
.pm-floorplan .ico{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 144,'SOFT' 80;
  font-size:3.6rem;color:var(--gold);line-height:1;
}
.pm-floorplan h4{color:var(--on-dark);font-variation-settings:'opsz' 60,'wght' 450;margin-bottom:.4rem}
.pm-floorplan p{color:var(--on-dark-quiet);max-width:34ch;margin:0 auto;font-size:.92rem}

/* Real floor-plan presentation (2 sheets side-by-side) */
.pm-plans{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.pm-plan{
  background:#faf7f2;
  border:1px solid var(--line-dark);
  position:relative;overflow:hidden;
  transition:transform .8s cubic-bezier(.16,1,.3,1), box-shadow .5s ease;
  cursor:zoom-in;
}
.pm-plan:hover{transform:translateY(-4px);box-shadow:0 30px 60px -25px rgba(0,0,0,.5)}
.pm-plan img{width:100%;height:auto;display:block}
.pm-plan-label{
  position:absolute;bottom:0;left:0;right:0;
  padding:1rem 1.4rem;
  background:linear-gradient(180deg, rgba(13,16,14,0) 0%, rgba(13,16,14,.85) 70%);
  color:var(--on-dark);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;
  display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
}
.pm-plan-label .it{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 14,'SOFT' 80;
  text-transform:none;letter-spacing:.04em;color:var(--gold-glow);font-size:.85rem;
}
.pm-plan-key{
  margin-top:1.6rem;padding:1.6rem 2rem;background:var(--dark-warm);
  display:grid;grid-template-columns:repeat(4,1fr);gap:1rem 2.5rem;
  border-top:1px solid var(--line-dark);
}
.pm-plan-key .pkr{display:flex;flex-direction:column;gap:.2rem}
.pm-plan-key .pkr .v{
  font-family:'Fraunces',serif;font-variation-settings:'opsz' 60,'wght' 400;
  font-size:1.15rem;color:var(--on-dark);letter-spacing:-.005em;
}
.pm-plan-key .pkr .v small{font-family:'Inter',sans-serif;font-size:.7rem;letter-spacing:.04em;color:var(--on-dark-quiet);font-weight:400;margin-left:.2rem}
.pm-plan-key .pkr .k{
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--on-dark-quiet);font-weight:500;
}
@media (max-width:1000px){
  .pm-plans{grid-template-columns:1fr}
  .pm-plan-key{grid-template-columns:repeat(2,1fr)}
}

.pm-location{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  background:var(--dark-warm);
}
.pm-location iframe{width:100%;height:380px;border:0;filter:grayscale(.3) contrast(.95) invert(.05)}
.pm-location-info{
  padding:3rem 2.5rem;display:flex;flex-direction:column;gap:1rem;justify-content:center;
}
.pm-location-info h4{color:var(--on-dark);font-size:1.35rem;font-variation-settings:'opsz' 60,'wght' 450}
.pm-location-info p{color:var(--on-dark-soft);font-size:.92rem;line-height:1.6;max-width:34ch}
.pm-location-info .pm-loc-link{
  display:inline-flex;align-items:center;gap:.5rem;margin-top:.5rem;
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:500;
}
.pm-location-info .pm-loc-link:hover{color:var(--gold-glow)}

.pm-cta-row{
  display:flex;justify-content:space-between;align-items:center;gap:1.5rem;
  padding-top:3rem;border-top:1px solid var(--line-dark);flex-wrap:wrap;
}
.pm-cta-row .cta-btn{border-color:var(--gold);color:var(--gold);padding:1rem 1.8rem;font-size:.72rem}
.pm-cta-row .cta-btn::after{background:var(--gold)}
.pm-cta-row .cta-btn:hover{color:var(--dark);border-color:var(--gold)}
.pm-cta-row .pm-back{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--on-dark-quiet);background:none;border:none;cursor:pointer;font-family:'Inter',sans-serif;font-weight:500}
.pm-cta-row .pm-back:hover{color:var(--on-dark)}

@media (max-width:1000px){
  .pm-gallery{grid-template-columns:repeat(2,1fr)}
  .pm-location{grid-template-columns:1fr}
  .pm-header{grid-template-columns:1fr}
  .pm-meta{text-align:left}
}
@media (max-width:680px){
  .pm-gallery{grid-template-columns:1fr}
  .project-modal-inner{padding:4rem var(--gutter) 3rem}
}

/* Lock body scroll when modal open */
body.modal-open{overflow:hidden}

/* ===== Privacy & Imprint panels ===== */
.legal-panel{
  position:fixed;inset:0;z-index:200;background:var(--dark);color:var(--on-dark);
  opacity:0;visibility:hidden;
  transition:opacity .55s cubic-bezier(.16,1,.3,1), visibility 0s linear .55s;
  overflow-y:auto;
}
.legal-panel.open{opacity:1;visibility:visible;transition:opacity .55s cubic-bezier(.16,1,.3,1), visibility 0s linear 0s}
.legal-inner{max-width:780px;margin:0 auto;padding:6rem var(--gutter) 5rem}
.legal-inner .eyebrow{margin-bottom:1.5rem}
.legal-inner h2{color:var(--on-dark);margin-bottom:2rem;max-width:22ch}
.legal-inner h4{
  color:var(--on-dark);font-variation-settings:'opsz' 60,'wght' 450;
  font-size:1.05rem;margin:2rem 0 .6rem;
}
.legal-inner p{color:var(--on-dark-soft);font-size:.95rem;line-height:1.7;margin-bottom:1rem;max-width:62ch}
.legal-inner ul{color:var(--on-dark-soft);font-size:.95rem;line-height:1.7;padding-left:1.4rem;margin-bottom:1rem;max-width:60ch}
.legal-inner ul li{margin-bottom:.4rem}
.legal-inner a{color:var(--gold);border-bottom:1px solid transparent;transition:border-color .25s ease}
.legal-inner a:hover{border-bottom-color:var(--gold)}

/* Lightbox */
.lightbox{
  display:none;position:fixed;inset:0;z-index:200;
  background:rgba(8,10,9,.96);align-items:center;justify-content:center;
  padding:2rem;cursor:zoom-out;
}
.lightbox.open{display:flex}
.lightbox img{max-width:92%;max-height:92%;object-fit:contain}
.lightbox-close{position:absolute;top:1.6rem;right:1.6rem;color:var(--on-dark);background:none;border:none;font-size:1.4rem;cursor:pointer}

/* Mobile menu drawer */
.drawer{
  position:fixed;inset:0;z-index:90;background:var(--dark);
  display:none;flex-direction:column;justify-content:center;align-items:center;gap:2rem;
  padding:5rem var(--gutter) 3rem;
}
.drawer.open{display:flex}
.drawer a{
  font-family:'Fraunces',serif;font-variation-settings:'opsz' 60,'wght' 400;
  font-size:2rem;color:var(--on-dark);
}
.drawer .close{position:absolute;top:1.6rem;right:var(--gutter);background:none;border:none;color:var(--on-dark);font-size:1.6rem;cursor:pointer}

/* ===== Responsive ===== */
@media (max-width:1200px){
  .chapters{display:none}
  .nav-links{gap:1.6rem}
}
@media (max-width:1000px){
  .practice-grid,
  .work-intro .wrap,
  .invest-grid,
  .place-grid,
  .process-intro,
  .people-intro,
  .inquire-grid,
  .faq .wrap{grid-template-columns:1fr;gap:3rem}
  .invest-grid{gap:2rem}
  .process-grid{grid-template-columns:repeat(2,1fr);gap:2.5rem}
  .directors{grid-template-columns:repeat(2,1fr)}
  .team-grid{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .mawaka-spread{grid-template-columns:1fr}
  .mawaka-info{position:relative;height:auto;padding:4rem var(--gutter)}
  .mawaka-photo{height:60vh;min-height:420px}
  .mawaka-plan{height:auto;padding:4rem var(--gutter)}
  .place-stat:nth-child(odd){padding-right:0}
  .place-stat:nth-child(even){padding-left:0;border-left:none}
  .hero-row{grid-template-columns:1fr;gap:2.5rem}
  .hero-cta{justify-content:flex-start}
  .practice-lead{padding-right:0}
}
@media (max-width:680px){
  .nav-links{display:none}
  .menu-toggle{display:inline-flex}
  .nav-end .lang-toggle{display:none}
  .nav-end .cta-btn{display:none}
  .brand .word, .brand small{display:none}
  .hero{min-height:560px}
  .hero h1.display{max-width:none}
  .process-grid{grid-template-columns:1fr}
  .directors{grid-template-columns:1fr;gap:2.5rem}
  .team-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr}
  .footer-bot{grid-template-columns:1fr;justify-content:center;text-align:center}
  .footer-bot .legal a{margin-left:0;margin-right:1rem}
  .inquire-form, .invest-row{grid-template-columns:1fr}
  .field-full, .form-submit{grid-column:span 1}
  .invest-row .k{padding-top:0}
  .faq-q{font-size:1.1rem;grid-template-columns:auto 1fr auto;gap:1rem}
  .faq-a-inner{padding-left:0}
  .invest-body{padding:2.2rem 1.6rem}
}

/* ============================================================
   WHATSAPP FLOATING CTA (global, all pages)
   ============================================================ */
.wa-cta{
  position:fixed;bottom:1.6rem;right:1.6rem;z-index:90;
  width:58px;height:58px;border-radius:50%;
  background:#25D366;color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.18), 0 2px 6px rgba(0,0,0,.12);
  transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, width .4s cubic-bezier(.16,1,.3,1);
  text-decoration:none;
}
.wa-cta::before{
  content:'';position:absolute;inset:0;border-radius:50%;
  border:2px solid #25D366;animation:wa-pulse 2.4s ease-out infinite;
}
@keyframes wa-pulse{
  0%{transform:scale(1);opacity:.6}
  80%,100%{transform:scale(1.6);opacity:0}
}
.wa-cta svg{width:28px;height:28px;fill:#fff}
.wa-cta:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 14px 32px rgba(37,211,102,.35), 0 4px 8px rgba(0,0,0,.18)}
.wa-cta .wa-label{
  display:none;font-family:'Inter',sans-serif;font-size:.78rem;letter-spacing:.12em;
  text-transform:uppercase;font-weight:500;margin-left:.7rem;
}
@media (min-width:1100px){
  .wa-cta:hover{
    width:auto;padding:0 1.6rem 0 1.2rem;border-radius:30px;
  }
  .wa-cta:hover .wa-label{display:inline}
}
@media (max-width:680px){
  .wa-cta{bottom:1.1rem;right:1.1rem;width:54px;height:54px}
  .wa-cta svg{width:26px;height:26px}
}

/* ============================================================
   CROSS-PAGE LANDING-PAGE LAYOUTS
   For project pages, hub page, pillar guides, etc.
   ============================================================ */

/* Page hero — used on subpages */
.page-hero{
  position:relative;height:70vh;min-height:520px;
  background:var(--dark);color:var(--on-dark);
  overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;
}
.page-hero-bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
  transform:scale(1.04);
}
.page-hero::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg, rgba(13,16,14,.5) 0%, rgba(13,16,14,.1) 35%, rgba(13,16,14,.85) 100%);
}
.page-hero-inner{
  position:relative;z-index:2;padding:0 var(--gutter) clamp(3rem, 6vw, 5rem);
  max-width:var(--container);margin:0 auto;width:100%;
}
.page-hero h1{
  color:var(--on-dark);font-size:clamp(2.2rem,5vw,4.4rem);max-width:18ch;line-height:1.05;
  margin-top:1rem;
}
.page-hero .crumbs{
  display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;
  font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--on-dark-soft);font-weight:500;
}
.page-hero .crumbs a{color:var(--on-dark-soft);transition:color .3s ease}
.page-hero .crumbs a:hover{color:var(--gold-glow)}
.page-hero .crumbs .sep{opacity:.4}
.page-hero .crumbs .here{color:var(--gold)}

.page-section{padding:var(--section-py) 0}
.page-section.dark{background:var(--dark);color:var(--on-dark)}
.page-section.dark h2,.page-section.dark h3,.page-section.dark h4{color:var(--on-dark)}
.page-section.dark p{color:var(--on-dark-soft)}
.page-section.dark .eyebrow{color:var(--gold)}
.page-section.cream{background:var(--cream)}
.page-section.paper{background:var(--paper)}

/* Reading column — for long-form articles */
.reading-col{max-width:760px;margin:0 auto}
.reading-col h2{font-size:clamp(1.8rem,3vw,2.6rem);margin:3rem 0 1.2rem;letter-spacing:-.01em}
.reading-col h3{font-size:clamp(1.3rem,2vw,1.7rem);margin:2.4rem 0 .8rem}
.reading-col p{font-size:1.06rem;line-height:1.75;margin-bottom:1.2rem;max-width:none}
.reading-col p strong{color:var(--ink);font-weight:500}
.reading-col ul, .reading-col ol{font-size:1.06rem;line-height:1.75;margin:0 0 1.3rem 0;padding-left:1.6rem;color:var(--ink-soft)}
.reading-col ul li, .reading-col ol li{margin-bottom:.5rem}
.reading-col blockquote{
  font-family:'Fraunces',serif;font-style:italic;font-variation-settings:'opsz' 60,'SOFT' 100;
  font-size:1.4rem;line-height:1.5;color:var(--ink);
  border-left:2px solid var(--gold);padding-left:1.5rem;margin:2.5rem 0;max-width:38ch;
}
.reading-col .lede{
  font-size:1.2rem;line-height:1.6;color:var(--ink);font-weight:300;margin-bottom:2rem;
  font-family:'Fraunces',serif;font-variation-settings:'opsz' 60,'wght' 350;
  letter-spacing:-.005em;
}

/* Project card grid (used on hub page) */
.project-list{display:grid;grid-template-columns:1fr;gap:3rem;margin-top:3rem}
.project-listing{
  display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--paper);
  text-decoration:none;color:var(--ink);
  transition:transform .8s cubic-bezier(.16,1,.3,1), box-shadow .5s ease;
}
.project-listing:hover{transform:translateY(-4px);box-shadow:0 50px 80px -40px rgba(20,15,5,.18)}
.project-listing.reverse{grid-template-columns:1fr 1fr}
.project-listing .pl-cover{
  aspect-ratio:5/4;background-size:cover;background-position:center;position:relative;
}
.project-listing.reverse .pl-cover{order:2}
.project-listing .pl-cover .status-pill{
  position:absolute;top:1.5rem;left:1.5rem;background:var(--cream);color:var(--ink);
  padding:.5rem .9rem;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;
}
.project-listing .pl-cover .status-pill.live{background:var(--pine);color:var(--cream)}
.project-listing .pl-cover .status-pill.live::before{
  content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gold-glow);
  margin-right:.55rem;vertical-align:1px;animation:pulse 1.8s ease-in-out infinite;
}
.project-listing .pl-cover .status-pill.completed{background:var(--accent);color:var(--cream)}
.project-listing .pl-info{padding:3rem 2.6rem;display:flex;flex-direction:column;gap:1rem;justify-content:center}
.project-listing .pl-info h3{font-size:clamp(1.7rem,2.4vw,2.4rem);margin-bottom:.4rem}
.project-listing .pl-info .lede{font-size:.95rem;line-height:1.65;color:var(--ink-soft);max-width:42ch}
.project-listing .pl-info .pl-rows{
  display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1.5rem;margin:.6rem 0;
  border-top:1px solid var(--line-soft);padding-top:1rem;
}
.project-listing .pl-info .pl-rows .k{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-quiet);font-weight:500;display:block;margin-bottom:.2rem}
.project-listing .pl-info .pl-rows .v{font-size:.92rem;color:var(--ink);font-weight:400}
.project-listing .pl-cta{
  font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);
  border-top:1px solid var(--line-soft);padding-top:1rem;margin-top:.5rem;
  display:inline-flex;align-items:center;gap:.5rem;font-weight:500;
}
.project-listing:hover .pl-cta{color:var(--gold-deep)}
@media (max-width:1000px){
  .project-listing, .project-listing.reverse{grid-template-columns:1fr}
  .project-listing.reverse .pl-cover{order:0}
  .project-listing .pl-info{padding:2rem 1.6rem}
}

/* TOC for pillar pages */
.toc{
  background:var(--paper);padding:1.8rem 2rem;border-left:2px solid var(--gold);
  margin:2.5rem 0;
}
.toc h4{
  font-family:'Inter',sans-serif;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-deep);font-weight:500;margin-bottom:1rem;
}
.toc ol{list-style:none;padding:0;margin:0;font-size:.95rem;line-height:1.7}
.toc ol li{counter-increment:toc;display:flex;gap:.8rem}
.toc ol li::before{
  content:counter(toc, lower-roman) ".";
  font-family:'Fraunces',serif;font-style:italic;color:var(--gold);min-width:32px;
  font-variation-settings:'opsz' 14,'SOFT' 80;
}
.toc ol{counter-reset:toc}
.toc a{color:var(--ink);border-bottom:1px solid transparent;transition:border-color .25s ease}
.toc a:hover{border-bottom-color:var(--gold)}

/* Related links footer band */
.related{
  background:var(--cream);padding:5rem 0;border-top:1px solid var(--line);
}
.related h3{font-size:clamp(1.4rem,2vw,1.9rem);margin-bottom:2rem;text-align:center}
.related-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;
  max-width:1100px;margin:0 auto;
}
.related-card{
  display:block;padding:2rem;background:var(--paper);border:1px solid var(--line-soft);
  transition:transform .6s cubic-bezier(.16,1,.3,1), border-color .35s ease;
  text-decoration:none;color:var(--ink);
}
.related-card:hover{transform:translateY(-4px);border-color:var(--gold)}
.related-card .eyebrow{margin-bottom:.8rem}
.related-card h4{font-size:1.2rem;margin-bottom:.6rem;font-variation-settings:'opsz' 60,'wght' 450}
.related-card p{font-size:.88rem;line-height:1.55;color:var(--ink-soft);margin-bottom:1rem}
.related-card .arrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);font-weight:500}
@media (max-width:1000px){
  .related-grid{grid-template-columns:1fr;gap:1rem}
}

/* Inline CTA strip — mid-article calls-to-action */
.inline-cta{
  background:var(--dark);color:var(--on-dark);padding:3rem 2rem;margin:3rem 0;
  display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center;
}
.inline-cta h4{color:var(--on-dark);font-size:1.4rem;font-variation-settings:'opsz' 60,'wght' 400;max-width:24ch;margin:0}
.inline-cta p{color:var(--on-dark-soft);font-size:.95rem;line-height:1.6;margin:.6rem 0 0;max-width:46ch}
.inline-cta .cta-btn{border-color:var(--gold);color:var(--gold);white-space:nowrap}
.inline-cta .cta-btn::after{background:var(--gold)}
.inline-cta .cta-btn:hover{color:var(--dark)}
@media (max-width:800px){
  .inline-cta{grid-template-columns:1fr;text-align:left;gap:1.5rem}
}

/* "On this page" jump nav for project subpages */
.on-this-page{
  position:sticky;top:80px;
  background:var(--cream);border:1px solid var(--line);padding:1.5rem 1.8rem;
  margin-bottom:2.5rem;
}
.on-this-page h5{
  font-family:'Inter',sans-serif;font-size:.62rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold-deep);margin-bottom:.8rem;font-weight:500;
}
.on-this-page ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;font-size:.85rem}
.on-this-page a{color:var(--ink-soft);transition:color .25s ease;font-weight:400}
.on-this-page a:hover{color:var(--gold-deep)}
