:root{
  --ink:#15223C;
  --ink-deep:#0C1526;
  --ink-soft:#1D2E4F;
  --brass:#A8875A;
  --brass-light:#CBB086;
  --brass-faint:rgba(168,135,90,.28);
  --harbor:#7C93A6;
  --paper:#F7F4EC;
  --paper-dim:#EFEAE0;
  --paper-warm:#F3EEE3;
  --slate:#5E6678;
  --slate-light:#93989F;
  --display:'Fraunces',Georgia,serif;
  --body:'Source Serif 4',Georgia,serif;
  --util:'Archivo',Helvetica,Arial,sans-serif;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --gutter:clamp(1.25rem,5vw,5.5rem);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html.has-gsap{scroll-behavior:auto}
body{
  font-family:var(--body);
  background:var(--paper);
  color:var(--ink);
  font-size:1.0625rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--brass);color:#fff}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;border:none;background:none;cursor:pointer;color:inherit}
section{position:relative;scroll-margin-top:4.5rem}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:300;
  background:var(--ink-deep);color:var(--paper);padding:.8rem 1.4rem;
  font-family:var(--util);font-size:.8rem;letter-spacing:.1em;
}
.skip-link:focus-visible{left:0}

/* ---------- utility type ---------- */
.eyebrow{
  font-family:var(--util);font-weight:600;font-size:.72rem;
  letter-spacing:.24em;text-transform:uppercase;color:var(--brass);
  display:flex;align-items:center;gap:.85rem;
}
.eyebrow::before{content:"";width:2rem;height:1px;background:var(--brass);flex:none}
.eyebrow.centered{justify-content:center}
.eyebrow.centered::after{content:"";width:2rem;height:1px;background:var(--brass);flex:none}
.display-xl{
  font-family:var(--display);font-weight:400;
  font-size:clamp(2.7rem,7.4vw,6.3rem);
  line-height:1.02;letter-spacing:-.015em;
}
.display-lg{
  font-family:var(--display);font-weight:400;
  font-size:clamp(2.05rem,4.6vw,3.9rem);
  line-height:1.06;letter-spacing:-.01em;
}
.display-md{
  font-family:var(--display);font-weight:500;
  font-size:clamp(1.5rem,2.6vw,2.15rem);line-height:1.15;
}
em.gold{font-style:italic;color:var(--brass);font-weight:400}
.on-dark em.gold{color:var(--brass-light)}
.lede{
  font-size:clamp(1.08rem,1.5vw,1.28rem);line-height:1.7;
  color:var(--slate);max-width:38em;
}
.on-dark .lede{color:#B9C0CE}
.micro{
  font-family:var(--body);font-style:italic;font-size:.94rem;color:var(--slate);
}
.on-dark .micro{color:#97A1B4}
.sec-index{
  font-family:var(--util);font-weight:600;font-size:.66rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--slate-light);
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  font-family:var(--util);font-weight:700;font-size:.74rem;
  letter-spacing:.2em;text-transform:uppercase;
  padding:1.02rem 1.7rem;text-align:center;
  transition:background .3s,color .3s,border-color .3s,transform .25s var(--ease-out);
  position:relative;
}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--brass);color:var(--ink-deep)}
.btn-gold:hover,.btn-gold:focus-visible{background:var(--brass-light)}
.btn-ghost{border:1px solid var(--brass-faint);color:var(--paper)}
.btn-ghost:hover,.btn-ghost:focus-visible{border-color:var(--brass);color:var(--brass-light)}
.btn-ink{border:1px solid rgba(21,34,60,.35);color:var(--ink)}
.btn-ink:hover,.btn-ink:focus-visible{border-color:var(--brass);color:var(--brass)}
.btn .arr{transition:transform .3s var(--ease-out)}
.btn:hover .arr{transform:translateX(4px)}

/* ---------- fixed-fee badge ---------- */
.fee-badge{
  display:inline-flex;align-items:center;gap:.75rem;
  font-family:var(--util);font-weight:600;font-size:.64rem;
  letter-spacing:.22em;text-transform:uppercase;
  border:1px solid var(--brass-faint);color:var(--brass);
  padding:.62rem 1.1rem;white-space:nowrap;
}
.fee-badge .dia{width:6px;height:6px;background:var(--brass);transform:rotate(45deg);flex:none}
.on-dark .fee-badge{color:var(--brass-light);border-color:rgba(203,176,134,.35)}

/* ---------- the signature: hairline + diamond ---------- */
.rule-diamond{
  display:flex;align-items:center;gap:0;height:11px;margin:0 var(--gutter);
}
.rule-diamond .line{flex:1;height:1px;background:var(--brass-faint);transform-origin:center}
.rule-diamond .line.l{transform-origin:right center}
.rule-diamond .line.r{transform-origin:left center}
.rule-diamond .dia{
  width:9px;height:9px;flex:none;background:var(--brass);
  transform:rotate(45deg);margin:0 14px;
}
.on-dark .rule-diamond .line{background:rgba(203,176,134,.3)}

/* ---------- preloader ---------- */
#loader{
  position:fixed;inset:0;z-index:200;background:var(--ink-deep);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;
}
/* The startup "curtain" shows on the HOME page only. Interior pages never render
   it (hidden from first paint → no flash, no page-to-page transition). */
#loader{display:none}
body.is-home #loader{display:flex}
#loader .loader-lockup{display:flex;align-items:baseline;gap:.55rem}
#loader .loader-pllc{font-family:var(--util);font-weight:600;font-size:clamp(.7rem,1.6vw,.95rem);letter-spacing:.4em;color:var(--brass);opacity:0}
#loader .wordmark{
  font-family:var(--display);font-weight:500;
  font-size:clamp(2rem,6vw,3.6rem);color:var(--paper);
  letter-spacing:.01em;display:flex;overflow:hidden;
}
#loader .wordmark span{display:inline-block;white-space:pre;transform:translateY(110%)}
#loader .loader-rule{width:min(420px,70vw);display:flex;align-items:center}
#loader .loader-rule .line{flex:1;height:1px;background:var(--brass);transform:scaleX(0)}
#loader .loader-rule .line.l{transform-origin:right center}
#loader .loader-rule .line.r{transform-origin:left center}
#loader .loader-rule .dia{width:8px;height:8px;background:var(--brass);transform:rotate(45deg) scale(0);margin:0 12px;flex:none}
#loader .loader-sub{
  font-family:var(--util);font-weight:600;font-size:.66rem;
  letter-spacing:.34em;text-transform:uppercase;color:var(--brass-light);opacity:0;
}

/* ---------- nav ---------- */
header#site-nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:1.05rem var(--gutter);
  transition:transform .45s var(--ease-out), background .35s, box-shadow .35s;
}
header#site-nav.solid{
  background:rgba(247,244,236,.93);
  backdrop-filter:blur(12px);
  box-shadow:0 1px 0 rgba(21,34,60,.08);
}
header#site-nav.hidden-nav{transform:translateY(-110%)}
.nav-logo{display:flex;flex-direction:column;align-items:flex-start;line-height:1;gap:.34rem}
.nav-logo .lockup{display:flex;align-items:baseline;gap:.42rem}
.nav-logo .name{font-family:var(--display);font-weight:500;font-size:1.32rem;letter-spacing:.005em;color:var(--ink);transition:color .35s}
.nav-logo .pllc{font-family:var(--util);font-weight:600;font-size:.55rem;letter-spacing:.34em;color:var(--brass)}
.nav-logo .crest{display:flex;align-items:center;gap:.5rem;align-self:stretch;width:100%}
.nav-logo .crest .line{flex:1;height:1px;background:var(--brass);opacity:.55}
.nav-logo .crest .dia{width:6px;height:6px;background:var(--brass);transform:rotate(45deg);flex:none}
.nav-logo .tags{font-family:var(--util);font-weight:600;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}
.nav-logo .tags i{color:var(--brass);font-style:normal;font-weight:500;margin:0 .16rem}
header#site-nav.on-dark-nav .nav-logo .name{color:var(--paper)}
header#site-nav.on-dark-nav .nav-logo .tags{color:rgba(245,242,235,.72)}
header#site-nav.on-dark-nav .nav-logo .crest .line{opacity:.7}
@media (max-width:560px){ .nav-logo .crest,.nav-logo .tags{display:none} }
nav.links{display:flex;gap:1.9rem;align-items:center}
nav.links a{
  font-family:var(--util);font-weight:600;font-size:.7rem;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink);position:relative;padding:.3rem 0;transition:color .35s;
}
header#site-nav.on-dark-nav nav.links a{color:#CDD3DE}
nav.links a::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:var(--brass);transform:scaleX(0);transform-origin:right center;
  transition:transform .4s var(--ease-out);
}
nav.links a:hover::after,nav.links a:focus-visible::after{transform:scaleX(1);transform-origin:left center}
/* current page: persistent underline + brass accent */
nav.links a[aria-current="page"]{color:var(--brass)}
header#site-nav.on-dark-nav nav.links a[aria-current="page"]{color:var(--brass-light)}
nav.links a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left center}
.mobile-menu a[aria-current="page"]{color:var(--brass-light)}
.nav-tel{white-space:nowrap;color:var(--slate)!important}
header#site-nav.on-dark-nav .nav-tel{color:#8E99AE!important}
nav.links a.nav-cta{
  background:var(--brass);color:var(--ink-deep)!important;
  padding:.68rem 1.25rem;white-space:nowrap;
  transition:background .3s;
}
nav.links a.nav-cta:hover,nav.links a.nav-cta:focus-visible{background:var(--brass-light)}
nav.links a.nav-cta::after{display:none}
#progress{
  position:fixed;top:0;left:0;height:2px;width:100%;z-index:101;
  background:var(--brass);transform:scaleX(0);transform-origin:left center;
}
.menu-btn{display:none}

/* ---------- mobile menu ---------- */
.mobile-menu{
  position:fixed;inset:0;background:var(--ink-deep);z-index:150;
  display:flex;flex-direction:column;justify-content:center;gap:1.4rem;
  padding:0 var(--gutter);transform:translateY(-102%);
  transition:transform .55s var(--ease-out);visibility:hidden;
}
.mobile-menu.open{transform:translateY(0);visibility:visible}
.mobile-menu a{
  font-family:var(--display);font-weight:400;font-size:1.85rem;color:var(--paper);
  border-bottom:1px solid rgba(203,176,134,.18);padding-bottom:.9rem;
}
.mobile-menu a.mm-cta{
  font-family:var(--util);font-weight:700;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
  background:var(--brass);color:var(--ink-deep);border:none;
  padding:1rem 1.4rem;text-align:center;margin-top:1rem;
}
.mobile-menu .mm-tel{
  font-family:var(--util);font-size:.85rem;letter-spacing:.12em;color:var(--brass-light);
  border:none;padding:0;text-align:center;
}
.mobile-menu .close{
  position:absolute;top:1.2rem;right:var(--gutter);
  font-family:var(--util);font-weight:600;font-size:.72rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--brass);
}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;
  background:var(--ink-deep);color:var(--paper);
  display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;
}
#constellation{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-vignette{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% 110%, rgba(12,21,38,.94) 0%, rgba(12,21,38,.35) 45%, rgba(12,21,38,0) 70%),
    linear-gradient(180deg, rgba(12,21,38,.55), rgba(12,21,38,0) 30%);
}
.hero-inner{position:relative;z-index:2;padding:7rem var(--gutter) clamp(2.6rem,6vh,5rem);width:100%}
.hero-eyebrow{margin-bottom:1.6rem}
.hero h1 .line{display:block;overflow:hidden}
.hero h1 .line>span{display:block;transform:translateY(112%)}
.hero-verbs{
  display:flex;gap:1.3rem;align-items:center;flex-wrap:wrap;
  margin-top:clamp(1.6rem,3.2vh,2.4rem);
  font-family:var(--util);font-weight:700;font-size:clamp(.72rem,1.1vw,.82rem);
  letter-spacing:.16em;text-transform:uppercase;color:var(--paper);
}
.hero-verbs .sep{color:var(--brass);font-weight:400}
.hero-foot{
  display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;
  margin-top:clamp(1.5rem,3.4vh,2.4rem);flex-wrap:wrap;
}
.hero-foot .lede{max-width:33em}
.hero-actions{display:flex;flex-direction:column;gap:.9rem;align-items:flex-start}
.hero-actions .row{display:flex;gap:.9rem;flex-wrap:wrap}
.hero-scroll{
  position:absolute;right:var(--gutter);top:38%;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:.8rem;
  font-family:var(--util);font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:var(--brass-light);
  writing-mode:vertical-rl;
}
.hero-scroll .tick{width:1px;height:52px;background:var(--brass-faint);position:relative;overflow:hidden}
.hero-scroll .tick::after{
  content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;
  background:var(--brass);animation:tickDrop 2.2s var(--ease-out) infinite;
}
@keyframes tickDrop{0%{top:-100%}55%{top:0}100%{top:100%}}

/* ---------- scaffolding ---------- */
.section-pad{padding:clamp(4.5rem,10vh,8rem) var(--gutter)}
.section-head{max-width:1500px;margin:0 auto clamp(2.4rem,6vh,4.2rem)}
.section-head .eyebrow{margin-bottom:1.4rem}
.wrap{max-width:1500px;margin:0 auto}
.wrap-narrow{max-width:62rem;margin:0 auto}
/* reveals are OPACITY-ONLY (no transform → no resting-position jump); pre-hidden only when JS is active so no-JS/reduced-motion users never see a blank page */
.reveal{opacity:1}
html.has-gsap .reveal{opacity:0}
html.no-motion .reveal{opacity:1}

/* ---------- photography ---------- */
.pwrap{position:relative;overflow:hidden;background:var(--ink-soft)}
.pwrap img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.88) contrast(1.03);
  transform:scale(1.1);will-change:transform;
}
html.no-motion .pwrap img{transform:none}
.pwrap::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(200deg, rgba(21,34,60,.12), rgba(21,34,60,0) 45%);
  mix-blend-mode:multiply;
}
.p-frame{position:relative}
.p-frame::before{
  content:"";position:absolute;inset:0;transform:translate(14px,14px);
  border:1px solid var(--brass-faint);pointer-events:none;z-index:0;
}
.p-frame .pwrap{position:relative;z-index:1}
.p-frame .corner-dia{
  position:absolute;width:9px;height:9px;background:var(--brass);
  transform:rotate(45deg);z-index:2;top:-4px;left:-4px;
}
.p-caption{
  margin-top:1rem;font-family:var(--util);font-weight:600;font-size:.62rem;
  letter-spacing:.26em;text-transform:uppercase;color:var(--slate-light);
  display:flex;align-items:center;gap:.7rem;
}
.p-caption::before{content:"";width:1.4rem;height:1px;background:var(--brass-faint)}

/* ---------- intro ---------- */
#intro{background:var(--paper);text-align:center}
#intro .intro-copy{max-width:46em;margin:1.9rem auto 0}
#intro .intro-copy p{
  font-family:var(--display);font-weight:300;
  font-size:clamp(1.28rem,2.3vw,1.85rem);line-height:1.5;color:var(--ink);
}
#intro .intro-copy p strong{font-weight:500}
.audience-ticker{
  margin-top:clamp(2.8rem,6vh,4rem);overflow:hidden;white-space:nowrap;
  border-top:1px solid rgba(21,34,60,.1);border-bottom:1px solid rgba(21,34,60,.1);
  padding:1.05rem 0;
}
.audience-ticker .track{
  display:inline-flex;gap:2.6rem;align-items:center;will-change:transform;
  font-family:var(--util);font-weight:600;font-size:.72rem;
  letter-spacing:.28em;text-transform:uppercase;color:var(--slate-light);
}
.audience-ticker .track .dia{width:5px;height:5px;background:var(--brass);transform:rotate(45deg);flex:none}

/* ---------- pillars ---------- */
#pillars{background:var(--paper)}
.pillar-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  border-top:1px solid rgba(21,34,60,.14);
}
.pillar-card{
  border-right:1px solid rgba(21,34,60,.14);
  padding:clamp(2rem,3.5vw,3.2rem) clamp(1.4rem,2.5vw,2.4rem) clamp(2.2rem,3.6vw,3rem);
  position:relative;display:flex;flex-direction:column;gap:1.15rem;min-height:100%;
  transition:background .5s var(--ease-out);
}
.pillar-card:last-child{border-right:none}
.pillar-card:nth-child(2n){border-right:none}
.pillar-card:nth-child(-n+2){border-bottom:1px solid rgba(21,34,60,.14)}
.pillar-card::before{
  content:"";position:absolute;top:-1px;left:0;width:100%;height:3px;
  background:var(--brass);transform:scaleX(0);transform-origin:left center;
  transition:transform .6s var(--ease-out);
}
.pillar-card:hover::before,.pillar-card:focus-within::before{transform:scaleX(1)}
.pillar-card:hover{background:#FFFFFF}
.pillar-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.pillar-card .roman{
  font-family:var(--display);font-weight:300;font-size:1rem;color:var(--brass);letter-spacing:.2em;
}
.pillar-icon{width:44px;height:44px;color:var(--brass);flex:none}
.pillar-icon svg{width:100%;height:100%;display:block;transition:transform .5s var(--ease-out)}
.pillar-card:hover .pillar-icon svg{transform:translateY(-4px)}
.pillar-card h3{
  font-family:var(--display);font-weight:500;
  font-size:clamp(1.42rem,2vw,1.85rem);line-height:1.12;
}
.pillar-card .promise{color:var(--slate);font-size:1rem;line-height:1.68}
.pillar-card ul{
  list-style:none;padding-top:1.25rem;
  border-top:1px solid rgba(21,34,60,.1);
  display:flex;flex-direction:column;gap:.55rem;
}
.pillar-card ul li{
  font-family:var(--util);font-weight:500;font-size:.78rem;letter-spacing:.06em;
  color:var(--ink);display:flex;gap:.7rem;align-items:baseline;line-height:1.5;
}
.pillar-card ul li::before{
  content:"";width:5px;height:5px;background:var(--brass);transform:rotate(45deg);
  flex:none;position:relative;top:-1px;
}
.pillar-card .closer{font-style:italic;font-size:.95rem;color:var(--ink);margin-top:auto;padding-top:1.1rem}
.pillar-card .bestfor{
  font-family:var(--util);font-weight:500;font-size:.76rem;letter-spacing:.04em;
  color:var(--slate);background:var(--paper-dim);padding:.75rem .9rem;line-height:1.55;
}
.pillar-card .bestfor b{color:var(--brass);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;display:block;margin-bottom:.15rem}
.pillar-link{
  font-family:var(--util);font-weight:700;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass);display:inline-flex;align-items:center;gap:.55rem;margin-top:.2rem;
}
.pillar-link .arr{transition:transform .3s var(--ease-out)}
.pillar-link:hover .arr,.pillar-link:focus-visible .arr{transform:translateX(5px)}

/* ---------- quote strip (lighthouse-adjacent) ---------- */
#promise-strip{background:var(--paper-dim);overflow:hidden}
.promise-grid{
  display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,6vw,5.5rem);
  align-items:center;max-width:1500px;margin:0 auto;
}
.promise-grid .p-frame{max-width:430px}
.promise-grid .pwrap{aspect-ratio:4/4.7}
.promise-quote blockquote{
  font-family:var(--display);font-weight:400;font-style:italic;
  font-size:clamp(1.55rem,3vw,2.5rem);line-height:1.3;max-width:19em;
}
.promise-quote .who{
  display:block;margin-top:1.8rem;font-style:normal;
  font-family:var(--util);font-weight:600;font-size:.68rem;
  letter-spacing:.26em;text-transform:uppercase;color:var(--brass);
}
#notsure{background:var(--paper);text-align:center}
#notsure .inner{max-width:44em;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1.3rem}

/* ---------- services ---------- */
#services{background:var(--paper)}
.svc-block{
  display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(2.5rem,6vw,6rem);
  align-items:center;max-width:1500px;margin:0 auto;
  padding:clamp(3.4rem,8vh,5.8rem) 0;
  border-top:1px solid rgba(21,34,60,.12);
  scroll-margin-top:5.5rem;
}
.svc-block:first-of-type{border-top:none;padding-top:0}
.svc-block.flip .svc-media{order:-1}
.svc-media .pwrap{aspect-ratio:4/4.6}
.svc-media.wide .pwrap{aspect-ratio:4/3.4}
.svc-head{display:flex;align-items:baseline;gap:1.2rem;margin-bottom:1.1rem}
.svc-head .idx{
  font-family:var(--display);font-weight:300;
  font-size:clamp(2.1rem,3.4vw,3rem);color:var(--brass);line-height:1;
}
.svc-copy h3{
  font-family:var(--display);font-weight:500;
  font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.1;
}
.svc-copy .svc-intro{color:var(--slate);font-size:1.06rem;line-height:1.7;margin-top:1rem;max-width:34em}
.svc-copy .inc-label{
  font-family:var(--util);font-weight:700;font-size:.62rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--brass);margin:1.6rem 0 .8rem;
}
.svc-copy ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.6rem}
.svc-copy ul li{
  font-family:var(--util);font-weight:500;font-size:.8rem;letter-spacing:.04em;
  color:var(--ink);display:flex;gap:.7rem;align-items:baseline;line-height:1.5;
}
.svc-copy ul li::before{
  content:"";width:5px;height:5px;background:var(--brass);transform:rotate(45deg);
  flex:none;position:relative;top:-1px;
}
.svc-foot{
  margin-top:1.7rem;display:flex;flex-wrap:wrap;gap:1rem 1.6rem;align-items:center;
}
.svc-bestfor{
  font-size:.95rem;font-style:italic;color:var(--slate);
  border-left:2px solid var(--brass);padding-left:1rem;margin-top:1.6rem;max-width:34em;line-height:1.6;
}
.svc-bestfor b{font-style:normal;color:var(--ink);font-weight:500}

/* ongoing — dark callout */
#svc-ongoing{
  background:var(--ink);color:var(--paper);
  padding:clamp(4rem,9vh,7rem) var(--gutter);
  margin-top:clamp(3rem,7vh,5rem);
  scroll-margin-top:5.5rem;
}
.ongoing-grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,6vw,6rem);
  align-items:center;max-width:1500px;margin:0 auto;
}
.ongoing-grid .pwrap{aspect-ratio:4/3.1}
.ongoing-grid .pwrap::after{background:linear-gradient(200deg, rgba(12,21,38,.35), rgba(12,21,38,.05) 55%)}
.ongoing-copy h3{font-family:var(--display);font-weight:400;font-size:clamp(1.8rem,3.2vw,2.7rem);line-height:1.08}
.ongoing-copy .svc-intro{color:#B9C0CE;margin-top:1.1rem;font-size:1.05rem;line-height:1.7;max-width:34em}
.ongoing-copy ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.6rem;margin-top:1.5rem}
.ongoing-copy ul li{
  font-family:var(--util);font-weight:500;font-size:.8rem;letter-spacing:.04em;color:#DDE2EA;
  display:flex;gap:.7rem;align-items:baseline;line-height:1.5;
}
.ongoing-copy ul li::before{
  content:"";width:5px;height:5px;background:var(--brass-light);transform:rotate(45deg);flex:none;position:relative;top:-1px;
}
.ongoing-copy .reassure{font-style:italic;color:#97A1B4;font-size:.96rem;margin-top:1.5rem}

/* ---------- differentiators ---------- */
#why{background:var(--ink-deep);color:var(--paper)}
.why-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(203,176,134,.2);
  border-left:1px solid rgba(203,176,134,.2);
  max-width:1500px;margin:0 auto;
}
.why-tile{
  border-right:1px solid rgba(203,176,134,.2);
  border-bottom:1px solid rgba(203,176,134,.2);
  padding:clamp(1.8rem,2.8vw,2.7rem) clamp(1.3rem,2vw,2rem);
  display:flex;flex-direction:column;gap:.9rem;
  transition:background .45s var(--ease-out);
}
.why-tile:hover{background:rgba(203,176,134,.05)}
.why-tile .k{
  font-family:var(--util);font-weight:600;font-size:.62rem;
  letter-spacing:.26em;text-transform:uppercase;color:var(--brass-light);
}
.why-tile h3{font-family:var(--display);font-weight:500;font-size:clamp(1.25rem,1.8vw,1.6rem);line-height:1.15}
.why-tile p{color:#AEB6C6;font-size:.94rem;line-height:1.65}
.why-close{
  max-width:1500px;margin:clamp(2rem,5vh,3.2rem) auto 0;
  display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;
}
.why-close p{
  font-family:var(--display);font-style:italic;
  font-size:clamp(1.15rem,2vw,1.5rem);color:var(--paper);max-width:30em;
}

/* ---------- founder strip ---------- */
#founder{background:var(--paper);scroll-margin-top:5.5rem}
.founder-grid{
  display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(2.5rem,6vw,6rem);
  align-items:center;max-width:1500px;margin:0 auto;
}
.founder-grid .p-frame{max-width:520px}
.founder-grid .pwrap{aspect-ratio:1/1.04}
.founder-name{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.9rem,3.6vw,3.1rem);line-height:1.06;margin-top:1.3rem;
}
.founder-role{
  font-family:var(--util);font-weight:600;font-size:.7rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--brass);margin-top:.7rem;
}
.founder-pos{font-size:clamp(1.05rem,1.5vw,1.22rem);color:var(--slate);line-height:1.7;margin-top:1.3rem;max-width:32em}
.cred-list{list-style:none;margin-top:1.6rem;display:flex;flex-direction:column}
.cred-list li{
  display:flex;gap:.9rem;align-items:baseline;
  padding:.8rem 0;border-top:1px solid rgba(21,34,60,.1);
  font-family:var(--util);font-weight:500;font-size:.85rem;letter-spacing:.03em;line-height:1.55;
}
.cred-list li:last-child{border-bottom:1px solid rgba(21,34,60,.1)}
.cred-list li::before{
  content:"";width:6px;height:6px;background:var(--brass);transform:rotate(45deg);
  flex:none;position:relative;top:-1px;
}
.founder-stats{
  display:flex;gap:clamp(1.6rem,4vw,3.4rem);margin-top:1.8rem;flex-wrap:wrap;
}
.fstat .n{
  font-family:var(--display);font-weight:300;
  font-size:clamp(2.1rem,3.6vw,3rem);line-height:1;color:var(--ink);
}
.fstat .n em{font-style:normal;color:var(--brass)}
.fstat .l{
  font-family:var(--util);font-weight:600;font-size:.62rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--slate-light);margin-top:.5rem;display:block;
}
.founder-reassure{font-style:italic;color:var(--slate);font-size:.98rem;margin-top:1.7rem;max-width:32em}
.founder-ctas{display:flex;gap:.9rem;margin-top:1.9rem;flex-wrap:wrap}

/* ---------- about ---------- */
#about{background:var(--paper-warm)}
.about-open{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,6vw,6rem)}
.about-open .lede{margin-top:1.4rem}
.mission-card{
  border:1px solid var(--brass-faint);padding:clamp(1.7rem,3vw,2.5rem);
  background:#fff;align-self:start;position:relative;
}
.mission-card::before{
  content:"";position:absolute;top:-5px;left:2rem;width:9px;height:9px;
  background:var(--brass);transform:rotate(45deg);
}
.mission-card .k{
  font-family:var(--util);font-weight:700;font-size:.62rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--brass);margin-bottom:.9rem;
}
.mission-card p{font-family:var(--display);font-weight:400;font-size:clamp(1.15rem,1.8vw,1.45rem);line-height:1.45}
.mission-card .phil{
  margin-top:1.5rem;padding-top:1.3rem;border-top:1px solid rgba(21,34,60,.1);
  font-family:var(--body);font-size:.98rem;color:var(--slate);line-height:1.7;
}
.mission-card .phil b{
  font-family:var(--display);font-weight:500;color:var(--ink);
  font-style:italic;font-size:1.12rem;display:block;margin-bottom:.4rem;
}
.choose-list{max-width:1500px;margin:clamp(3.4rem,8vh,5.5rem) auto 0}
.choose-list .choose-head{margin-bottom:1.8rem}
.choose-row{
  display:grid;grid-template-columns:auto 17rem 1fr;gap:1.6rem;align-items:baseline;
  padding:1.5rem 0;border-top:1px solid rgba(21,34,60,.14);
}
.choose-row:last-child{border-bottom:1px solid rgba(21,34,60,.14)}
.choose-row .num{font-family:var(--display);font-weight:300;font-size:1.05rem;color:var(--brass)}
.choose-row h4{font-family:var(--display);font-weight:500;font-size:1.28rem;line-height:1.2}
.choose-row p{color:var(--slate);font-size:.98rem;line-height:1.65}

/* bio */
.bio-grid{
  display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,6vw,6rem);
  max-width:1500px;margin:clamp(4rem,9vh,6.5rem) auto 0;align-items:start;
}
.bio-media{position:sticky;top:6.5rem}
.bio-media .pwrap{aspect-ratio:4/5.4}
.bio-copy h3{font-family:var(--display);font-weight:400;font-size:clamp(1.75rem,3.2vw,2.7rem);line-height:1.1;margin-top:1.2rem}
.bio-copy .bio-p{color:var(--ink);font-size:1.05rem;line-height:1.78;margin-top:1.35rem;max-width:37em}
.bio-copy .bio-p.muted{color:var(--slate)}
.bio-quote{
  margin:2.2rem 0;padding:1.6rem 0 1.6rem 1.8rem;border-left:2px solid var(--brass);
  font-family:var(--display);font-style:italic;font-weight:400;
  font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.42;color:var(--ink);max-width:26em;
}
.cred-translate{list-style:none;margin-top:1.4rem}
.cred-translate li{
  padding:1.05rem 0;border-top:1px solid rgba(21,34,60,.12);
  display:flex;gap:.95rem;align-items:baseline;font-size:.97rem;line-height:1.65;color:var(--slate);
}
.cred-translate li:last-child{border-bottom:1px solid rgba(21,34,60,.12)}
.cred-translate li::before{
  content:"";width:6px;height:6px;background:var(--brass);transform:rotate(45deg);flex:none;position:relative;top:-1px;
}
.cred-translate b{color:var(--ink);font-weight:600}

/* work with francina */
.workwith{
  max-width:1500px;margin:clamp(4rem,9vh,6.5rem) auto 0;
  display:grid;grid-template-columns:.8fr 1.2fr;background:var(--ink);color:var(--paper);
  overflow:hidden;
}
.workwith .pwrap{aspect-ratio:auto;height:100%;min-height:340px}
.workwith .pwrap::after{background:linear-gradient(90deg, rgba(12,21,38,0) 30%, rgba(21,34,60,.55))}
.workwith-copy{
  padding:clamp(2.4rem,5vw,4.2rem);display:flex;flex-direction:column;justify-content:center;gap:1.2rem;align-items:flex-start;
}
.workwith-copy h3{font-family:var(--display);font-weight:400;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.1}
.workwith-copy p{color:#B9C0CE;font-size:1.03rem;line-height:1.7;max-width:30em}

/* ---------- quote band ---------- */
#quote-band{
  background:var(--paper-dim);text-align:center;
  padding:clamp(5rem,12vh,8.5rem) var(--gutter);
}
#quote-band blockquote{
  font-family:var(--display);font-weight:400;font-style:italic;
  font-size:clamp(1.6rem,3.4vw,2.9rem);line-height:1.28;max-width:24em;margin:0 auto;
}
#quote-band blockquote .word{display:inline-block;opacity:.14}
#quote-band cite{
  display:block;margin-top:2rem;font-style:normal;
  font-family:var(--util);font-weight:600;font-size:.7rem;
  letter-spacing:.26em;text-transform:uppercase;color:var(--brass);
}

/* ---------- FAQ ---------- */
#faq{background:var(--paper)}
.faq-list{max-width:56rem;margin:0 auto}
.faq-item{border-top:1px solid rgba(21,34,60,.14)}
.faq-item:last-child{border-bottom:1px solid rgba(21,34,60,.14)}
.faq-q{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:1.6rem;
  text-align:left;padding:1.55rem .2rem;
}
.faq-q h3{
  font-family:var(--display);font-weight:500;
  font-size:clamp(1.12rem,1.9vw,1.42rem);line-height:1.3;transition:color .3s;
}
.faq-q:hover h3{color:var(--brass)}
.faq-q .ind{
  width:11px;height:11px;flex:none;position:relative;
  transition:transform .45s var(--ease-out);
}
.faq-q .ind::before,.faq-q .ind::after{
  content:"";position:absolute;background:var(--brass);
}
.faq-q .ind::before{left:0;top:5px;width:11px;height:1px}
.faq-q .ind::after{left:5px;top:0;width:1px;height:11px;transition:opacity .3s}
.faq-item.open .faq-q .ind{transform:rotate(135deg)}
.faq-a{
  overflow:hidden;max-height:0;
  transition:max-height .55s var(--ease-out);
}
.faq-a p{color:var(--slate);font-size:1rem;line-height:1.72;max-width:42em;padding:0 .2rem 1.7rem}

/* ---------- closing CTA ---------- */
#closing{
  position:relative;color:var(--paper);text-align:center;overflow:hidden;
  padding:clamp(6rem,15vh,10.5rem) var(--gutter);
}
#closing .bg{position:absolute;inset:0}
#closing .bg img{
  width:100%;height:120%;object-fit:cover;object-position:center 40%;
  filter:saturate(.82);will-change:transform;
}
#closing .bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(12,21,38,.72), rgba(12,21,38,.55) 45%, rgba(12,21,38,.78));
}
#closing .inner{position:relative;z-index:2;max-width:48em;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1.4rem}
#closing h2{text-shadow:0 2px 30px rgba(12,21,38,.45)}
#closing .lede{color:#D9DEE7;margin:0 auto}
#closing .row{display:flex;gap:.9rem;flex-wrap:wrap;justify-content:center;margin-top:.5rem}

/* ---------- contact ---------- */
#contact{background:var(--ink-deep);color:var(--paper)}
.contact-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5.5rem);
  max-width:1500px;margin:0 auto;align-items:start;
}
.contact-list{display:flex;flex-direction:column;margin-top:2.2rem}
.contact-row{
  display:grid;grid-template-columns:8.5rem 1fr;gap:1.5rem;align-items:baseline;
  padding:1.3rem 0;border-top:1px solid rgba(203,176,134,.18);
}
.contact-row:last-child{border-bottom:1px solid rgba(203,176,134,.18)}
.contact-row .k{font-family:var(--util);font-weight:600;font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--brass-light)}
.contact-row .v{font-family:var(--display);font-weight:400;font-size:clamp(1.1rem,1.7vw,1.42rem);line-height:1.4}
.contact-row .v a{border-bottom:1px solid var(--brass-faint);transition:border-color .3s}
.contact-row .v a:hover{border-color:var(--brass)}
.scare-note{
  margin-top:1.9rem;border:1px solid rgba(203,176,134,.3);
  padding:1.3rem 1.5rem;font-size:.97rem;line-height:1.68;color:#C4CBD8;
  position:relative;
}
.scare-note::before{
  content:"";position:absolute;top:-5px;left:1.5rem;width:9px;height:9px;
  background:var(--brass);transform:rotate(45deg);
}
.scare-note b{color:var(--paper);font-weight:500}
.expect{margin-top:2.4rem}
.expect .k{
  font-family:var(--util);font-weight:700;font-size:.62rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--brass-light);margin-bottom:1.1rem;
}
.expect ol{list-style:none;counter-reset:step;display:flex;flex-direction:column}
.expect ol li{
  counter-increment:step;display:flex;gap:1.2rem;align-items:baseline;
  padding:.95rem 0;border-top:1px solid rgba(203,176,134,.14);
  font-size:.98rem;color:#C4CBD8;line-height:1.65;
}
.expect ol li::before{
  content:counter(step,decimal-leading-zero);
  font-family:var(--display);font-weight:300;color:var(--brass-light);font-size:1.15rem;flex:none;
}
.expect ol li b{color:var(--paper);font-weight:500}
/* form */
.form-card{
  border:1px solid rgba(203,176,134,.28);background:rgba(255,255,255,.025);
  padding:clamp(1.7rem,3vw,2.7rem);
}
.form-card h3{font-family:var(--display);font-weight:500;font-size:1.55rem}
.form-card .helper-top{color:#97A1B4;font-size:.95rem;margin-top:.5rem}
.field{margin-top:1.35rem;display:flex;flex-direction:column;gap:.45rem}
.field label{
  font-family:var(--util);font-weight:600;font-size:.66rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--brass-light);
}
.field label .opt{color:#6E7994;letter-spacing:.14em;text-transform:none;font-weight:500}
.field input,.field select,.field textarea{
  font-family:var(--body);font-size:1rem;color:var(--paper);
  background:rgba(12,21,38,.55);border:1px solid rgba(203,176,134,.22);
  padding:.85rem 1rem;transition:border-color .3s;width:100%;border-radius:0;
}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 49%,var(--brass-light) 50%),linear-gradient(-45deg,transparent 49%,var(--brass-light) 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.field select option{background:var(--ink-deep);color:var(--paper)}
.field textarea{min-height:8.2rem;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brass)}
.field .hint{font-size:.85rem;font-style:italic;color:#6E7994}
.form-card .btn{width:100%;margin-top:1.6rem}
.form-note{margin-top:1rem;text-align:center}
.form-success{
  display:none;margin-top:1.4rem;border:1px solid rgba(203,176,134,.35);
  padding:1.1rem 1.3rem;font-size:.95rem;line-height:1.65;color:#DDE2EA;
}
.form-success.show{display:block}

/* ---------- footer ---------- */
footer{
  background:var(--ink-deep);color:#7C8598;
  padding:2.6rem var(--gutter) 3rem;
  font-family:var(--util);font-size:.68rem;letter-spacing:.06em;line-height:1.8;
}
footer .foot-grid{
  display:flex;justify-content:space-between;gap:2.4rem;flex-wrap:wrap;
  max-width:1500px;margin:2rem auto 0;
}
footer .fm{font-family:var(--display);font-size:1.05rem;color:var(--paper);letter-spacing:.01em}
footer .ftag{font-family:var(--body);font-style:italic;font-size:.85rem;color:#97A1B4;margin-top:.35rem}
footer .legal-links{display:flex;gap:1.4rem;flex-wrap:wrap;margin-top:.9rem}
footer .legal-links a{border-bottom:1px solid rgba(203,176,134,.25);transition:color .3s,border-color .3s;padding-bottom:1px}
footer .legal-links a:hover{color:var(--brass-light);border-color:var(--brass)}
footer .disclaimer{max-width:44em}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .nav-tel{display:none}
}
@media (max-width:1020px){
  .pillar-grid{grid-template-columns:1fr}
  .pillar-card{border-right:none;border-bottom:1px solid rgba(21,34,60,.14)}
  .pillar-card:last-child{border-bottom:none}
  .promise-grid,.svc-block,.ongoing-grid,.founder-grid,.about-open,.bio-grid,.contact-grid{grid-template-columns:1fr}
  .svc-block.flip .svc-media{order:0}
  .why-grid{grid-template-columns:1fr 1fr}
  .bio-media{position:static;max-width:460px}
  .workwith{grid-template-columns:1fr}
  .workwith .pwrap{min-height:280px;max-height:380px}
  .choose-row{grid-template-columns:auto 1fr;grid-template-rows:auto auto}
  .choose-row p{grid-column:2}
  .founder-grid .p-frame{max-width:460px}
  .svc-media .pwrap,.svc-media.wide .pwrap{aspect-ratio:4/3;max-width:640px}
}
@media (max-width:760px){
  nav.links{display:none}
  .menu-btn{
    display:block;font-family:var(--util);font-weight:600;font-size:.72rem;
    letter-spacing:.2em;text-transform:uppercase;color:var(--brass);
    border:1px solid var(--brass);padding:.55rem 1rem;
  }
  .hero-scroll{display:none}
  .why-grid{grid-template-columns:1fr}
  .svc-copy ul,.ongoing-copy ul{grid-template-columns:1fr}
  .contact-row{grid-template-columns:1fr;gap:.3rem}
  .hero-inner{padding-top:6rem}
  .hero-actions .row{width:100%}
  .hero-actions .row .btn{flex:1}
  .audience-ticker .track{font-size:.64rem}
  section{scroll-margin-top:3.8rem}
}
@media (min-width:761px){.mobile-menu{display:none}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}
  .pwrap img{transform:none}
}

/* ============================================================
   MULTI-PAGE ADDITIONS — interior page heroes + small helpers
   (same design language; no Three.js on interior pages — a light
   2D canvas / gradient / diamond accent keeps them fast)
============================================================ */
.page-hero{
  position:relative;background:var(--ink-deep);color:var(--paper);
  min-height:clamp(460px,64vh,660px);
  display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;
}
.page-hero .ph-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.page-hero .ph-glow{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% 115%, rgba(12,21,38,.94) 0%, rgba(12,21,38,.4) 45%, rgba(12,21,38,0) 72%),
    radial-gradient(80% 60% at 82% 8%, rgba(168,135,90,.16), rgba(168,135,90,0) 60%),
    linear-gradient(180deg, rgba(12,21,38,.6), rgba(12,21,38,0) 34%);
}
.page-hero-inner{
  position:relative;z-index:2;width:100%;max-width:1500px;margin:0 auto;
  padding:8rem var(--gutter) clamp(2.6rem,6vh,4.6rem);
}
/* interior hero content: opacity-only fade, pre-hidden only when JS is active */
.ph-in{opacity:1}
html.has-gsap .ph-in{opacity:0}
html.no-motion .ph-in{opacity:1}
.page-hero .eyebrow{margin-bottom:1.5rem;color:var(--brass-light)}
.page-hero .eyebrow::before{background:var(--brass-light)}
.page-hero h1{max-width:16em}
.page-hero .lede{color:#B9C0CE;margin-top:1.5rem}
.page-hero .page-hero-actions{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:clamp(1.6rem,3.4vh,2.3rem)}
.page-hero .page-hero-actions .micro{width:100%;color:#97A1B4;margin-top:.2rem}
/* the signature scroll-cue diamond rule, drawn under interior heroes */
.page-hero .ph-rule{
  display:flex;align-items:center;gap:0;margin-top:clamp(1.8rem,4vh,2.6rem);height:11px;max-width:1500px;
}
.page-hero .ph-rule .line{flex:1;height:1px;background:rgba(203,176,134,.3)}
.page-hero .ph-rule .dia{width:9px;height:9px;flex:none;background:var(--brass);transform:rotate(45deg);margin:0 14px}

/* section that opens directly under a page-hero shouldn't double the top gap */
.after-hero{padding-top:clamp(3.4rem,8vh,5.5rem)}

/* a light lead-in band reused on interior pages (mini-FAQ teaser, cross-links) */
.lead-band{background:var(--paper);text-align:center}
.mini-faq{max-width:56rem;margin:0 auto}
.mini-faq .faq-item:first-child{border-top:1px solid rgba(21,34,60,.14)}
.faq-teaser-foot{max-width:56rem;margin:2rem auto 0;text-align:center}

@media (max-width:760px){
  .page-hero{min-height:clamp(400px,56vh,540px)}
  .page-hero-inner{padding-top:6.4rem}
  .page-hero .page-hero-actions .btn{flex:1}
}
