/* ── index.html ───── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:auto;}
body{
  background:#0e0e10;color:#D9D7D2;
  font-family:'Manrope',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;cursor:none;
}
a{color:inherit;text-decoration:none;}

/* ── Cursor ──────────────────────────────── */
#cursor-dot{
  position:fixed;width:4px;height:4px;border-radius:50%;
  background:#7C6447;pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);
}
#cursor-ring{
  position:fixed;width:30px;height:30px;
  pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%);
  transition:
    width .25s cubic-bezier(.16,1,.3,1),
    height .25s cubic-bezier(.16,1,.3,1),
    transform .25s cubic-bezier(.16,1,.3,1);
}
.cm-mark{
  position:absolute;width:7px;height:7px;
  border:1px solid rgba(243,242,238,.55);
  transition:border-color .25s;
}
.cm-tl{top:0;left:0;border-right:none;border-bottom:none;}
.cm-tr{top:0;right:0;border-left:none;border-bottom:none;}
.cm-bl{bottom:0;left:0;border-right:none;border-top:none;}
.cm-br{bottom:0;right:0;border-left:none;border-top:none;}
#cursor-ring.expanded{width:18px;height:18px;transform:translate(-50%,-50%) rotate(45deg);}
#cursor-ring.expanded .cm-mark{border-color:#9E7855;}

/* ── Grain ───────────────────────────────── */
body::after{
  content:'';position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.038;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:220px;animation:grain .45s steps(2) infinite;
}
@keyframes grain{
  0%{background-position:0 0;}25%{background-position:-40px -66px;}
  50%{background-position:66px 22px;}75%{background-position:-22px 44px;}
}

/* ── Nav ─────────────────────────────────── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:700;
  padding:24px 56px;display:flex;justify-content:space-between;align-items:center;
  background:linear-gradient(to bottom,rgba(14,14,16,.92) 0%,rgba(14,14,16,.78) 60%,transparent 100%);
  transition:background .5s,padding .4s,border-color .5s;
  border-bottom:1px solid transparent;
}
nav.scrolled{
  background:rgba(14,14,16,.94);backdrop-filter:blur(24px);
  padding:14px 56px;border-bottom-color:rgba(217,215,210,.05);
}
.nav-brand{flex:none;display:flex;flex-direction:column;gap:6px;}
.nav-logo-link{line-height:0;}
.nav-logo{height:50px;width:202px;display:block;}
.brand-subtitle{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.28em;text-transform:uppercase;
  color:rgba(158,120,85,.9);
}
.nav-links{display:flex;gap:40px;list-style:none;flex-wrap:nowrap;flex:none;}
.nav-links a{
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(217,215,210,.55);
  transition:color .25s;
}
.nav-links a:hover{color:#D9D7D2;}

/* ── Hero ────────────────────────────────── */
.hero{
  position:relative;height:100vh;min-height:840px;
  overflow:hidden;display:flex;flex-direction:column;padding-top:160px;
}
.hero-img{
  position:absolute;inset:-10%;
  background:url('https://images.unsplash.com/photo-1497366216548-37526070297c?auto=format&fit=crop&w=1920&q=85') center 35%/cover;
  will-change:transform;
}
.hero-img::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(14,14,16,1) 0%,rgba(14,14,16,.7) 38%,rgba(14,14,16,.22) 100%),
    linear-gradient(to right,rgba(14,14,16,.65) 0%,transparent 58%);
}
.hero-content{
  position:relative;z-index:2;
  padding:0 56px 100px;width:100%;
  max-width:860px;margin-top:auto;
}

.hero-headline{
  font-family:'Manrope',sans-serif;font-weight:800;
  font-size:clamp(48px,7vw,90px);line-height:.92;
  letter-spacing:-.038em;color:#F3F2EE;
  margin-bottom:36px;
}
.hero-line{overflow:hidden;display:block;}
.h-word{
  display:inline-block;
  opacity:0;transform:translateY(110%);
  animation:wordUp 1s cubic-bezier(.16,1,.3,1) forwards;
}

.hero-sub{
  font-family:'EB Garamond',serif;font-style:italic;font-weight:400;
  font-size:clamp(18px,2.1vw,26px);color:rgba(217,215,210,.72);
  line-height:1.45;max-width:540px;
  opacity:0;animation:fadeUp .9s cubic-bezier(.16,1,.3,1) 1.1s forwards;
  margin-bottom:52px;
}

.hero-cta-row{
  display:flex;align-items:center;gap:40px;
  opacity:0;animation:fadeUp .8s cubic-bezier(.16,1,.3,1) 1.35s forwards;
}
.btn-primary{
  display:inline-flex;align-items:center;gap:10px;
  background:#7C6447;color:#F3F2EE;
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.2em;text-transform:uppercase;
  padding:14px 28px;border:1px solid #7C6447;
  transition:background .25s,color .25s;
}
.btn-primary:hover{background:transparent;color:#7C6447;}
.btn-secondary{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;color:rgba(217,215,210,.55);
  transition:color .25s;display:flex;align-items:center;gap:8px;
}
.btn-secondary:hover{color:#D9D7D2;}
.btn-secondary::after{content:'→' / '';font-style:normal;}

.scroll-hint{
  position:absolute;bottom:36px;right:56px;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  opacity:0;animation:fadeUp .8s cubic-bezier(.16,1,.3,1) 1.6s forwards;
}
.scroll-hint-line{
  width:1px;height:52px;background:rgba(124,100,71,.4);
  animation:scrollPulse 2s ease-in-out 2s infinite;
}
.scroll-hint-text{
  font-family:'IBM Plex Mono',monospace;font-size:8px;
  letter-spacing:.22em;text-transform:uppercase;color:rgba(217,215,210,.4);
  writing-mode:vertical-rl;
}
@keyframes scrollPulse{
  0%,100%{opacity:.4;}50%{opacity:1;}
}

/* ── Shared section utilities ────────────── */
.section-label{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.28em;text-transform:uppercase;color:#9E7855;
  margin-bottom:20px;
}
.section-divider{
  width:100%;height:1px;background:rgba(217,215,210,.055);
}

/* ── Recognition section ─────────────────── */
.recognition{
  padding:120px 56px;
  max-width:1200px;margin:0 auto;
}
.recognition-header{
  display:grid;grid-template-columns:1fr 1fr;gap:80px;
  align-items:start;margin-bottom:88px;
}
.recognition-headline{
  font-family:'Manrope',sans-serif;font-weight:800;
  font-size:clamp(36px,4.8vw,64px);line-height:.96;
  letter-spacing:-.032em;color:#F3F2EE;
}
.recognition-headline em{
  font-family:'EB Garamond',serif;font-weight:400;font-style:italic;
  font-size:1.12em;letter-spacing:-.01em;color:#D9D7D2;display:block;
  margin-top:6px;
}
.recognition-intro{
  font-size:16px;line-height:1.72;color:rgba(217,215,210,.65);
  padding-top:8px;
}

.recognition-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:2px;
}
.recognition-card{
  padding:44px 44px 48px;
  border:1px solid rgba(217,215,210,.055);
  position:relative;
  transition:opacity .7s,transform .7s,border-color .35s,background .35s;
}
.js .recognition-card{opacity:0;transform:translateY(28px);}
.recognition-card.visible{opacity:1;transform:translateY(0);}
.recognition-card:hover{
  border-color:rgba(124,100,71,.25);
  background:rgba(124,100,71,.03);
}
.rc-number{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.22em;color:#9E7855;
  margin-bottom:24px;display:block;
}
.rc-body{
  font-size:15px;line-height:1.75;color:rgba(217,215,210,.72);
  font-weight:400;
}
.rc-body strong{
  display:block;font-family:'Manrope',sans-serif;font-weight:700;
  font-size:18px;color:#F3F2EE;letter-spacing:-.012em;
  margin-bottom:16px;
}

/* ── Diamond section ─────────────────────── */
.diamond-section{
  padding:100px 56px;
  border-top:1px solid rgba(217,215,210,.055);
  border-bottom:1px solid rgba(217,215,210,.055);
  background:rgba(124,100,71,.03);
}
.diamond-inner{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:80px;
  align-items:center;
}
.diamond-ornament{
  display:flex;align-items:center;justify-content:center;
  transition:opacity .9s,transform .9s;
}
.js .diamond-ornament{opacity:0;transform:rotate(45deg) scale(.85);}
.diamond-ornament.visible{opacity:.38;transform:rotate(45deg) scale(1);}
.diamond-ornament svg{width:180px;height:180px;}

.diamond-text{}
.diamond-quote{
  font-family:'EB Garamond',serif;font-style:italic;font-weight:400;
  font-size:clamp(22px,2.8vw,36px);color:#F3F2EE;line-height:1.35;
  letter-spacing:-.01em;margin-bottom:32px;
  transition:opacity .9s .15s,transform .9s .15s;
}
.js .diamond-quote{opacity:0;transform:translateY(20px);}
.diamond-quote.visible{opacity:1;transform:translateY(0);}
.diamond-attribution{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;color:#9E7855;
  margin-bottom:28px;
  transition:opacity .7s .35s;
}
.js .diamond-attribution{opacity:0;}
.diamond-attribution.visible{opacity:1;}
.diamond-method{
  font-size:15px;line-height:1.72;color:rgba(217,215,210,.6);
  transition:opacity .7s .45s,transform .7s .45s;
}
.js .diamond-method{opacity:0;transform:translateY(12px);}
.diamond-method.visible{opacity:1;transform:translateY(0);}

/* ── Services strip ──────────────────────── */
.services-section{
  padding:120px 56px;
  max-width:1200px;margin:0 auto;
}
.services-header{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:64px;
}
.services-headline-block{}
.services-headline{
  font-family:'Manrope',sans-serif;font-weight:800;
  font-size:clamp(32px,4.2vw,56px);line-height:.97;
  letter-spacing:-.032em;color:#F3F2EE;margin-bottom:12px;
}
.services-headline em{
  font-family:'EB Garamond',serif;font-style:italic;
  font-weight:400;font-size:.92em;color:rgba(217,215,210,.75);
}
.services-sub{
  font-size:14px;color:rgba(217,215,210,.45);
  font-family:'IBM Plex Mono',monospace;letter-spacing:.06em;
  max-width:380px;line-height:1.6;
}
.services-link{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;color:#9E7855;
  display:flex;align-items:center;gap:8px;white-space:nowrap;
  transition:color .25s,gap .25s;
}
.services-link:hover{color:#F3F2EE;gap:14px;}
.services-link::after{content:'→' / '';}

.services-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;
  margin-bottom:0;
}
.service-item{
  padding:36px 36px 40px;
  border:1px solid rgba(217,215,210,.055);
  position:relative;
  display:flex;flex-direction:column;
  transition:opacity .6s,transform .6s,border-color .3s,background .3s;
}
.js .service-item{opacity:0;transform:translateY(20px);}
.service-item.visible{opacity:1;transform:translateY(0);}
.service-item:hover{
  border-color:rgba(124,100,71,.22);
  background:rgba(124,100,71,.025);
}
.si-number{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.2em;color:rgba(124,100,71,.55);
  margin-bottom:20px;display:block;
}
.si-name{
  font-family:'Manrope',sans-serif;font-weight:700;
  font-size:15px;letter-spacing:-.01em;color:#F3F2EE;
  margin-bottom:10px;
}
.si-desc{
  font-size:13px;line-height:1.65;color:rgba(217,215,210,.55);
}

/* ── Audit CTA ───────────────────────────── */
.audit-section{
  padding:100px 56px;
  border-top:1px solid rgba(217,215,210,.055);
  background:rgba(217,215,210,.016);
}
.audit-inner{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:1fr auto;
  align-items:center;gap:80px;
}
.audit-text{}
.audit-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.26em;text-transform:uppercase;color:#9E7855;
  margin-bottom:24px;
}
.audit-headline{
  font-family:'Manrope',sans-serif;font-weight:800;
  font-size:clamp(28px,3.8vw,52px);line-height:.97;
  letter-spacing:-.03em;color:#F3F2EE;margin-bottom:20px;
}
.audit-sub{
  font-size:15px;line-height:1.72;color:rgba(217,215,210,.6);
  max-width:520px;
}
.audit-action{display:flex;flex-direction:column;align-items:flex-start;gap:16px;}
.audit-cta{
  display:inline-flex;align-items:center;gap:10px;
  background:#7C6447;color:#F3F2EE;
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.2em;text-transform:uppercase;
  padding:16px 32px;border:1px solid #7C6447;
  white-space:nowrap;
  transition:background .25s,color .25s;
}
.audit-cta:hover{background:transparent;color:#7C6447;}
.audit-note{
  font-family:'IBM Plex Mono',monospace;font-size:10px;
  letter-spacing:.14em;color:rgba(217,215,210,.28);
  text-transform:uppercase;
}

/* ── Footer ──────────────────────────────── */
.site-footer{
  border-top:1px solid rgba(217,215,210,.055);
  padding:96px 56px 72px;
}
.site-footer-inner{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;
}
.footer-logo-link{display:block;margin-bottom:36px;}
.footer-logo{height:44px;width:178px;opacity:.72;}
.footer-tagline{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:19px;color:rgba(217,215,210,.5);
  margin-bottom:36px;letter-spacing:.01em;
}
.footer-nav{display:flex;gap:36px;margin-bottom:32px;}
.footer-nav a{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;
  color:rgba(217,215,210,.28);transition:color .25s;
}
.footer-nav a:hover{color:rgba(217,215,210,.7);}
.footer-copy{
  font-family:'IBM Plex Mono',monospace;font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(217,215,210,.18);
}

/* ── Animations ──────────────────────────── */
@keyframes wordUp{
  to{opacity:1;transform:translateY(0);}
}
@keyframes fadeUp{
  to{opacity:1;transform:translateY(0);}
}

/* ── Hamburger nav ───────────────────────── */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;
  gap:6px;width:32px;height:32px;
  background:none;border:none;padding:0;cursor:none;
  flex-shrink:0;
}
.nav-toggle-bar{
  display:block;width:22px;height:1px;
  background:rgba(217,215,210,.65);
  transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .2s,width .3s;
}
nav.nav-open .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
nav.nav-open .nav-toggle-bar:nth-child(2){opacity:0;width:0;}
nav.nav-open .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ── Responsive ──────────────────────────── */
@media(max-width:900px){
  nav{padding:20px 28px;background:rgba(14,14,16,.88);backdrop-filter:blur(20px);}
  nav.scrolled{padding:14px 28px;}
  .hero-content{padding:0 28px 80px;}
  .recognition,.services-section{padding:80px 28px;}
  .recognition-header{grid-template-columns:1fr;gap:32px;}
  .recognition-grid{grid-template-columns:1fr;}
  .diamond-section{padding:80px 28px;}
  .diamond-inner{grid-template-columns:1fr;gap:40px;}
  .diamond-ornament{display:none;}
  .services-grid{grid-template-columns:1fr 1fr;}
  .services-header{flex-direction:column;align-items:flex-start;gap:20px;}
  .audit-section{padding:80px 28px;}
  .audit-inner{grid-template-columns:1fr;gap:40px;}
  .site-footer{padding:72px 28px 56px;}
  .nav-logo{height:38px;width:154px;}
  .nav-links{gap:20px;}
  .nav-links a{letter-spacing:.08em;}
  .scroll-hint{display:none;}
}
@media(max-width:600px){
  .services-grid{grid-template-columns:1fr;}
  .nav-toggle{display:flex;}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;flex-wrap:nowrap;
    background:rgba(14,14,16,.97);backdrop-filter:blur(24px);
    border-bottom:1px solid rgba(217,215,210,.07);
    padding:0;
    visibility:hidden;opacity:0;pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .3s,transform .3s,visibility 0s .3s;
  }
  nav.nav-open .nav-links{
    visibility:visible;opacity:1;pointer-events:auto;
    transform:translateY(0);
    transition:opacity .3s,transform .3s;
  }
  .nav-links li{border-top:1px solid rgba(217,215,210,.055);}
  .nav-links li:first-child{border-top:none;}
  .nav-links a{display:block;padding:16px 28px;font-size:13px;letter-spacing:.14em;}
}
@media(max-height:850px) and (min-width:900px){
  .hero{padding-top:170px;}
  .hero-content{padding-bottom:48px;}
  .hero-headline{font-size:clamp(42px,6vw,78px);line-height:.94;}
}
@media(pointer:coarse){
  body{cursor:auto;}
  #cursor-dot,#cursor-ring{display:none;}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;}
}

/* ── services.html ───── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:auto;}
body{
  background:#0e0e10;color:#D9D7D2;
  font-family:'Manrope',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;cursor:none;
}
a{color:inherit;text-decoration:none;}

/* ── Cursor ──────────────────────────────── */
#cursor-dot{
  position:fixed;width:4px;height:4px;border-radius:50%;
  background:#7C6447;pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);
}
#cursor-ring{
  position:fixed;width:30px;height:30px;
  pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%);
  transition:
    width .25s cubic-bezier(.16,1,.3,1),
    height .25s cubic-bezier(.16,1,.3,1),
    transform .25s cubic-bezier(.16,1,.3,1);
}
.cm-mark{
  position:absolute;width:7px;height:7px;
  border:1px solid rgba(243,242,238,.55);
  transition:border-color .25s;
}
.cm-tl{top:0;left:0;border-right:none;border-bottom:none;}
.cm-tr{top:0;right:0;border-left:none;border-bottom:none;}
.cm-bl{bottom:0;left:0;border-right:none;border-top:none;}
.cm-br{bottom:0;right:0;border-left:none;border-top:none;}
#cursor-ring.expanded{width:18px;height:18px;transform:translate(-50%,-50%) rotate(45deg);}
#cursor-ring.expanded .cm-mark{border-color:#9E7855;}

/* ── Grain ───────────────────────────────── */
body::after{
  content:'';position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.038;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:220px;animation:grain .45s steps(2) infinite;
}
@keyframes grain{
  0%{background-position:0 0;}25%{background-position:-40px -66px;}
  50%{background-position:66px 22px;}75%{background-position:-22px 44px;}
}

/* ── Nav ─────────────────────────────────── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:700;
  padding:22px 56px;display:flex;justify-content:space-between;align-items:center;
  background:rgba(14,14,16,.94);backdrop-filter:blur(24px);
  border-bottom:1px solid rgba(217,215,210,.05);
}
.nav-logo-link{line-height:0;}
.nav-logo{height:50px;width:202px;display:block;}
.nav-brand{flex:none;display:flex;flex-direction:column;gap:6px;}
.brand-subtitle{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.28em;text-transform:uppercase;
  color:rgba(158,120,85,.9);
}
.nav-links{display:flex;gap:40px;list-style:none;flex-wrap:nowrap;flex:none;}
.nav-links a{
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(217,215,210,.55);
  transition:color .25s;
}
.nav-links a:hover,.nav-links a.active{color:#D9D7D2;}

/* ── Page header ─────────────────────────── */
.page-header{
  position:relative;
  padding:160px 56px 88px;
  border-bottom:1px solid rgba(217,215,210,.055);
  overflow:hidden;
  min-height:500px;display:flex;flex-direction:column;justify-content:flex-end;
}
[data-barba-namespace="services"] .page-header-img{
  position:absolute;inset:-10%;
  background:url('https://images.unsplash.com/photo-1552664730-d307ca884978?auto=format&fit=crop&w=1920&q=85') center 50%/cover;
  will-change:transform;
}
[data-barba-namespace="services"] .page-header-img::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(14,14,16,1) 0%,rgba(14,14,16,.72) 40%,rgba(14,14,16,.35) 100%),
    linear-gradient(to right,rgba(14,14,16,.55) 0%,transparent 60%);
}
.page-header-content{position:relative;z-index:2;}

.page-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.24em;text-transform:uppercase;color:#9E7855;
  margin-bottom:28px;overflow:hidden;
}
.page-eyebrow span{
  display:inline-block;
  opacity:0;transform:translateY(100%);
  animation:wordUp .8s cubic-bezier(.16,1,.3,1) .15s forwards;
}
.page-headline{
  font-family:'Manrope',sans-serif;font-weight:800;
  font-size:clamp(48px,7vw,96px);line-height:.93;
  letter-spacing:-.038em;color:#F3F2EE;overflow:hidden;
}
.page-headline .h-word{
  display:inline-block;
  opacity:0;transform:translateY(110%);
  animation:wordUp 1s cubic-bezier(.16,1,.3,1) forwards;
}
.page-headline .h-word:nth-child(1){animation-delay:.3s;}
.page-headline .h-word:nth-child(2){animation-delay:.4s;}
.page-headline em{
  display:block;font-family:'EB Garamond',Georgia,serif;
  font-weight:400;font-style:italic;font-size:.55em;
  color:#7C6447;letter-spacing:.02em;margin-top:12px;
  opacity:0;transform:translateY(80%);
  animation:wordUp .9s cubic-bezier(.16,1,.3,1) .6s forwards;
}
.page-sub{
  margin-top:36px;max-width:520px;
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:clamp(17px,1.7vw,21px);color:#9A8E82;line-height:1.6;
  opacity:0;transform:translateY(10px);
  animation:fadeUp .8s cubic-bezier(.16,1,.3,1) .75s forwards;
}

/* ── Section label bar ───────────────────── */
.section-bar{
  padding:52px 56px 44px;
  display:flex;align-items:baseline;justify-content:space-between;
  border-bottom:1px solid rgba(217,215,210,.055);
  transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);
}
.js .section-bar{opacity:0;transform:translateY(16px);}
.section-bar.revealed{opacity:1;transform:translateY(0);}
.section-tag{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.22em;text-transform:uppercase;color:rgba(217,215,210,.55);
}
.section-note{
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:16px;color:rgba(217,215,210,.55);
}

/* ── Services grid ───────────────────────── */
.services-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-left:1px solid rgba(217,215,210,.055);
}

.service-card{
  border-right:1px solid rgba(217,215,210,.055);
  border-bottom:1px solid rgba(217,215,210,.055);
  padding:52px 44px 48px;
  position:relative;overflow:hidden;
  cursor:none;
  transition:
    opacity .7s cubic-bezier(.16,1,.3,1),
    transform .7s cubic-bezier(.16,1,.3,1),
    background .45s cubic-bezier(.16,1,.3,1);
}
.js .service-card{opacity:0;transform:translateY(22px);}
.service-card.in-view{opacity:1;transform:translateY(0);}

/* Background image layer */
.card-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:.065;
  transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
}
.service-card:hover .card-bg{opacity:.13;transform:scale(1.05);}

/* Dark vignette over card-bg so text stays readable */
.card-vignette{
  position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(14,14,16,.98) 0%,rgba(14,14,16,.65) 55%,rgba(14,14,16,.25) 100%);
  z-index:1;
}

/* All card content above image layers */
.card-num,.card-name,.card-desc,.card-cta{position:relative;z-index:2;}

/* Gold top-border sweep */
.service-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;z-index:3;
  background:#7C6447;
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s cubic-bezier(.16,1,.3,1);
}
.service-card:hover::before{transform:scaleX(1);}

.card-num{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.2em;color:rgba(217,215,210,.45);margin-bottom:22px;
  transition:color .3s;
}
.service-card:hover .card-num{color:#7C6447;}

.card-name{
  font-family:'Manrope',sans-serif;font-weight:800;
  font-size:clamp(20px,1.9vw,27px);letter-spacing:-.022em;
  color:#F3F2EE;line-height:1.12;margin-bottom:18px;
}

.card-desc{
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:clamp(15px,1.3vw,17px);color:rgba(217,215,210,.6);
  line-height:1.6;margin-bottom:36px;
  transition:color .4s;
}
.service-card:hover .card-desc{color:#D9D7D2;}

.card-cta{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;color:rgba(217,215,210,.5);
  transition:color .3s;
}
.service-card:hover .card-cta{color:#7C6447;}
.card-cta-line{
  width:20px;height:1px;background:currentColor;position:relative;
  transition:width .35s cubic-bezier(.16,1,.3,1);
}
.card-cta-line::after{
  content:'';position:absolute;right:0;top:-3px;
  width:6px;height:6px;
  border-right:1px solid currentColor;border-top:1px solid currentColor;
  transform:rotate(45deg);
}
.service-card:hover .card-cta-line{width:36px;}
.card-cta:focus{outline:1px solid rgba(124,100,71,.6);outline-offset:4px;}

/* ── Audit callout ───────────────────────── */
.audit-section{
  border-top:1px solid rgba(217,215,210,.055);
  padding:88px 56px 104px;
  display:flex;align-items:flex-start;justify-content:space-between;gap:80px;
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
}
.js .audit-section{opacity:0;transform:translateY(28px);}
.audit-section.revealed{opacity:1;transform:translateY(0);}

.audit-left{flex:1;max-width:580px;}
.audit-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.24em;text-transform:uppercase;color:#9E7855;margin-bottom:28px;
}
.audit-headline{
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:clamp(26px,3vw,40px);color:#D9D7D2;
  line-height:1.28;margin-bottom:24px;
}
.audit-body{
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(16px,1.4vw,19px);color:rgba(217,215,210,.65);line-height:1.65;
}
.audit-body em{font-style:italic;color:#D9D7D2;}

.audit-right{
  flex-shrink:0;display:flex;flex-direction:column;
  align-items:flex-end;gap:28px;padding-top:4px;
}
.audit-tags{
  text-align:right;
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.13em;text-transform:uppercase;color:rgba(217,215,210,.55);line-height:2;
}
.audit-btn{
  display:inline-flex;align-items:center;gap:14px;
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  letter-spacing:.16em;text-transform:uppercase;
  color:#F3F2EE;border:1px solid rgba(124,100,71,.5);
  padding:16px 28px;cursor:none;
  transition:border-color .3s,background .3s;
}
.audit-btn:hover{border-color:#7C6447;background:rgba(124,100,71,.08);}
.audit-btn:focus{outline:1px solid rgba(124,100,71,.6);outline-offset:4px;}
.audit-btn-arrow{
  width:20px;height:1px;background:#7C6447;position:relative;
  transition:width .3s cubic-bezier(.16,1,.3,1);
}
.audit-btn-arrow::after{
  content:'';position:absolute;right:0;top:-3px;
  width:6px;height:6px;
  border-right:1px solid #7C6447;border-top:1px solid #7C6447;
  transform:rotate(45deg);
}
.audit-btn:hover .audit-btn-arrow{width:32px;}
.audit-note{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(217,215,210,.28);
}

/* ── CTA ─────────────────────────────────── */
.cta-section{
  border-top:1px solid rgba(217,215,210,.055);
  padding:80px 56px 140px;
  transition:opacity .8s cubic-bezier(.16,1,.3,1) .1s,transform .8s cubic-bezier(.16,1,.3,1) .1s;
}
.js .cta-section{opacity:0;transform:translateY(24px);}
.cta-section.revealed{opacity:1;transform:translateY(0);}
.cta-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;}
.cta-headline{
  font-family:'Manrope',sans-serif;font-weight:800;
  font-size:clamp(36px,5vw,68px);letter-spacing:-.03em;
  color:#F3F2EE;line-height:.95;
}
.cta-headline em{
  display:block;font-family:'EB Garamond',Georgia,serif;
  font-weight:400;font-style:italic;font-size:.6em;
  color:#7C6447;letter-spacing:.02em;margin-top:8px;
}
.cta-right{text-align:right;}
.cta-sub{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.16em;text-transform:uppercase;color:rgba(217,215,210,.6);
  margin-bottom:24px;line-height:1.8;
}
.cta-btn{
  display:inline-flex;align-items:center;gap:14px;
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  letter-spacing:.16em;text-transform:uppercase;
  color:#F3F2EE;border:1px solid rgba(124,100,71,.5);
  padding:16px 28px;cursor:none;
  transition:border-color .3s,background .3s;
}
.cta-btn:hover{border-color:#7C6447;background:rgba(124,100,71,.08);}
.cta-btn:focus{outline:1px solid rgba(124,100,71,.6);outline-offset:4px;}
.cta-btn-arrow{
  width:20px;height:1px;background:#7C6447;position:relative;
  transition:width .3s cubic-bezier(.16,1,.3,1);
}
.cta-btn-arrow::after{
  content:'';position:absolute;right:0;top:-3px;
  width:6px;height:6px;
  border-right:1px solid #7C6447;border-top:1px solid #7C6447;
  transform:rotate(45deg);
}
.cta-btn:hover .cta-btn-arrow{width:32px;}

/* ── Hamburger nav ───────────────────────── */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;
  gap:6px;width:32px;height:32px;
  background:none;border:none;padding:0;cursor:none;flex-shrink:0;
}
.nav-toggle-bar{
  display:block;width:22px;height:1px;
  background:rgba(217,215,210,.65);
  transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .2s,width .3s;
}
nav.nav-open .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
nav.nav-open .nav-toggle-bar:nth-child(2){opacity:0;width:0;}
nav.nav-open .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media(pointer:coarse){
  body{cursor:auto;}
  #cursor-dot,#cursor-ring{display:none;}
}
/* ── Reduced motion ──────────────────────── */
@media (prefers-reduced-motion: reduce) {
  body::after{animation:none;}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;}
  .service-card,.section-bar,.audit-section,.cta-section,
  .page-eyebrow span,.page-headline .h-word,.page-headline em,.page-sub{
    opacity:1;transform:none;
  }
}

/* ── Responsive ──────────────────────────── */
@media (max-width:1100px){
  nav{padding:20px 40px;}
  .page-header{padding:140px 40px 72px;}
  .section-bar{padding:44px 40px 36px;}
  .audit-section{padding:72px 40px 88px;gap:56px;}
  .cta-section{padding:64px 40px 100px;}
}
@media (max-width:900px){
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .audit-section{flex-direction:column;gap:40px;}
  .audit-right{align-items:flex-start;}
  .audit-tags{text-align:left;}
}
@media (max-width:640px){
  nav{padding:18px 24px;}
  .nav-logo{height:38px;width:154px;}
  .page-header{padding:120px 24px 52px;}
  .section-bar{padding:40px 24px 28px;flex-direction:column;gap:6px;}
  .services-grid{grid-template-columns:1fr;border-left:none;}
  .service-card{border-right:none;padding:40px 24px;}
  .audit-section{padding:56px 24px 72px;}
  .cta-section{padding:56px 24px 88px;}
  .cta-inner{flex-direction:column;align-items:flex-start;gap:28px;}
  .cta-right{text-align:left;}
  .nav-toggle{display:flex;}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;flex-wrap:nowrap;
    background:rgba(14,14,16,.97);backdrop-filter:blur(24px);
    border-bottom:1px solid rgba(217,215,210,.07);
    padding:0;
    visibility:hidden;opacity:0;pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .3s,transform .3s,visibility 0s .3s;
  }
  nav.nav-open .nav-links{
    visibility:visible;opacity:1;pointer-events:auto;
    transform:translateY(0);
    transition:opacity .3s,transform .3s;
  }
  .nav-links li{border-top:1px solid rgba(217,215,210,.055);}
  .nav-links li:first-child{border-top:none;}
  .nav-links a{display:block;padding:16px 28px;font-size:13px;letter-spacing:.14em;}
}

/* ── Keyframes ───────────────────────────── */
@keyframes wordUp{to{opacity:1;transform:translateY(0);}}
@keyframes fadeUp{to{opacity:1;transform:translateY(0);}}

/* ── Service detail drawer ───────────────── */
.modal-backdrop{
  position:fixed;inset:0;z-index:800;
  background:rgba(14,14,16,.78);
  backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;
  transition:opacity .4s;
}
.modal-backdrop.open{opacity:1;pointer-events:auto;}
.modal-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:801;
  width:min(520px,100vw);
  background:#141416;
  border-left:1px solid rgba(217,215,210,.07);
  padding:80px 56px 56px;
  overflow-y:auto;
  transform:translateX(100%);
  transition:transform .55s cubic-bezier(.16,1,.3,1);
}
.modal-drawer.open{transform:translateX(0);}
.modal-close{
  position:absolute;top:28px;right:32px;
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;
  color:rgba(217,215,210,.32);background:none;border:none;
  cursor:none;padding:4px;transition:color .25s;
}
.modal-close:hover{color:#D9D7D2;}
.modal-num{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.24em;text-transform:uppercase;color:#9E7855;
  margin-bottom:20px;display:block;
}
.modal-title{
  font-family:'Manrope',sans-serif;font-weight:700;
  font-size:clamp(22px,3vw,30px);color:#F3F2EE;
  letter-spacing:-.02em;line-height:1.15;
  margin-bottom:14px;
}
.modal-sub{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:17px;color:rgba(217,215,210,.5);
  margin-bottom:36px;line-height:1.55;
}
.modal-body{
  font-size:15px;line-height:1.8;
  color:rgba(217,215,210,.78);
  margin-bottom:24px;
}
.modal-body p+p{margin-top:20px;}
.modal-includes{
  margin-top:32px;padding-top:26px;margin-bottom:40px;
  border-top:1px solid rgba(124,100,71,.15);
}
.modal-includes-label{
  display:block;
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.22em;text-transform:uppercase;
  color:#9E7855;margin-bottom:14px;
}
.modal-includes-list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-wrap:wrap;gap:8px;
}
.modal-includes-list li{
  font-family:'Manrope',sans-serif;font-size:12px;font-weight:400;
  letter-spacing:.01em;line-height:1;
  color:rgba(217,215,210,.62);
  border:1px solid rgba(124,100,71,.2);
  padding:6px 12px;
}
.modal-cta{
  display:inline-flex;align-items:center;gap:14px;
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;
  color:#D9D7D2;transition:color .25s;
}
.modal-cta:hover{color:#7C6447;}
.modal-cta-line{
  display:block;width:28px;height:1px;background:currentColor;
  transition:width .3s;
}
.modal-cta:hover .modal-cta-line{width:44px;}
.modal-content{display:none;}
.modal-content.active{display:block;}
.modal-recognition{font-size:15px;line-height:1.8;color:rgba(217,215,210,.78);}
.modal-signals{margin-top:28px;}
.modal-signals-label{
  font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:400;
  letter-spacing:.22em;text-transform:uppercase;
  color:rgba(158,120,85,.70);margin-bottom:14px;
}
.modal-signals-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.modal-signals-list li{
  font-family:'Manrope',sans-serif;font-size:14px;font-weight:300;
  color:rgba(217,215,210,.72);line-height:1.5;
  padding-left:16px;position:relative;
}
.modal-signals-list li::before{
  content:'—';position:absolute;left:0;
  color:rgba(124,100,71,.45);font-size:10px;top:2px;
}
.modal-changes{margin-top:28px;padding-top:24px;border-top:1px solid rgba(124,100,71,.12);}
.modal-changes-label{
  font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:400;
  letter-spacing:.22em;text-transform:uppercase;
  color:rgba(158,120,85,.70);margin-bottom:14px;
}
.modal-changes-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.modal-changes-list li{
  font-family:'Manrope',sans-serif;font-size:14px;font-weight:300;
  color:rgba(243,242,238,.85);line-height:1.5;
  padding-left:16px;position:relative;
}
.modal-changes-list li::before{
  content:'→';position:absolute;left:0;
  color:rgba(124,100,71,.55);font-size:10px;top:2px;
}
.modal-outcome{
  margin-top:28px;padding-top:24px;border-top:1px solid rgba(124,100,71,.12);
  font-family:'EB Garamond',Georgia,serif;font-size:clamp(15px,2vw,17px);
  font-style:italic;font-weight:300;color:#D9D7D2;line-height:1.68;
}
@media(max-width:640px){
  .modal-drawer{padding:72px 28px 48px;}
}

/* ── Footer ──────────────────────────────── */
.site-footer{
  border-top:1px solid rgba(217,215,210,.055);
  padding:96px 56px 72px;
}
.site-footer-inner{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;
}
.footer-logo-link{display:block;margin-bottom:36px;}
.footer-logo{height:44px;width:178px;opacity:.72;}
.footer-tagline{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:19px;color:rgba(217,215,210,.5);
  margin-bottom:36px;letter-spacing:.01em;
}
.footer-nav{display:flex;gap:36px;margin-bottom:32px;}
.footer-nav a{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;
  color:rgba(217,215,210,.28);transition:color .25s;
}
.footer-nav a:hover{color:rgba(217,215,210,.7);}
.footer-copy{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(217,215,210,.18);
}
@media(max-width:900px){.site-footer{padding:72px 28px 56px;}}

/* ── about.html ───── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:auto;}
body{
  background:#0e0e10;color:#D9D7D2;
  font-family:'Manrope',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;cursor:none;
}
a{color:inherit;text-decoration:none;}

/* ── Cursor ──────────────────────────────── */
#cursor-dot{
  position:fixed;width:4px;height:4px;border-radius:50%;
  background:#7C6447;pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);
}
#cursor-ring{
  position:fixed;width:30px;height:30px;
  pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%);
  transition:
    width .25s cubic-bezier(.16,1,.3,1),
    height .25s cubic-bezier(.16,1,.3,1),
    transform .25s cubic-bezier(.16,1,.3,1);
}
.cm-mark{
  position:absolute;width:7px;height:7px;
  border:1px solid rgba(243,242,238,.55);
  transition:border-color .25s;
}
.cm-tl{top:0;left:0;border-right:none;border-bottom:none;}
.cm-tr{top:0;right:0;border-left:none;border-bottom:none;}
.cm-bl{bottom:0;left:0;border-right:none;border-top:none;}
.cm-br{bottom:0;right:0;border-left:none;border-top:none;}
#cursor-ring.expanded{width:18px;height:18px;transform:translate(-50%,-50%) rotate(45deg);}
#cursor-ring.expanded .cm-mark{border-color:#9E7855;}

/* ── Grain ───────────────────────────────── */
body::after{
  content:'';position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.038;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:220px;animation:grain .45s steps(2) infinite;
}
@keyframes grain{
  0%{background-position:0 0;}25%{background-position:-40px -66px;}
  50%{background-position:66px 22px;}75%{background-position:-22px 44px;}
}

/* ── Nav ─────────────────────────────────── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:700;
  padding:22px 56px;display:flex;justify-content:space-between;align-items:center;
  background:rgba(14,14,16,.94);backdrop-filter:blur(24px);
  border-bottom:1px solid rgba(217,215,210,.05);
}
.nav-logo-link{line-height:0;}
.nav-logo{height:50px;width:202px;display:block;}
.nav-brand{flex:none;display:flex;flex-direction:column;gap:6px;}
.brand-subtitle{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.28em;text-transform:uppercase;
  color:rgba(158,120,85,.9);
}
.nav-links{display:flex;gap:40px;list-style:none;flex-wrap:nowrap;flex:none;}
.nav-links a{
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(217,215,210,.55);
  transition:color .25s;
}
.nav-links a:hover,.nav-links a.active{color:#D9D7D2;}

/* ── Page header ─────────────────────────── */
.page-header{
  position:relative;
  padding:160px 56px 88px;
  border-bottom:1px solid rgba(217,215,210,.055);
  overflow:hidden;
  min-height:560px;display:flex;flex-direction:column;justify-content:flex-end;
}
[data-barba-namespace="about"] .page-header-img{
  position:absolute;inset:-10%;
  background:url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=1920&q=85') center 40%/cover;
  will-change:transform;
}
[data-barba-namespace="about"] .page-header-img::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(14,14,16,1) 0%,rgba(14,14,16,.72) 40%,rgba(14,14,16,.35) 100%),
    linear-gradient(to right,rgba(14,14,16,.55) 0%,transparent 60%);
}
.page-header-content{position:relative;z-index:2;}

.page-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.24em;text-transform:uppercase;color:#9E7855;
  margin-bottom:28px;overflow:hidden;
}
.page-eyebrow span{
  display:inline-block;
  opacity:0;transform:translateY(100%);
  animation:wordUp .8s cubic-bezier(.16,1,.3,1) .15s forwards;
}
.page-headline{
  font-family:'Manrope',sans-serif;font-weight:800;
  font-size:clamp(36px,5.2vw,76px);line-height:.95;
  letter-spacing:-.038em;color:#F3F2EE;overflow:hidden;
}
.page-headline .h-word{
  display:inline-block;
  opacity:0;transform:translateY(110%);
  animation:wordUp 1s cubic-bezier(.16,1,.3,1) forwards;
}
.page-headline .h-word:nth-child(1){animation-delay:.3s;}
.page-headline .h-word:nth-child(2){animation-delay:.38s;}
.page-headline .h-word:nth-child(3){animation-delay:.46s;}
.page-headline .h-word:nth-child(4){animation-delay:.54s;}
.page-headline .h-word:nth-child(5){animation-delay:.62s;}
.page-headline .h-word:nth-child(6){animation-delay:.70s;}
.page-headline .h-word:nth-child(7){animation-delay:.78s;}
.page-headline em{
  display:block;font-family:'EB Garamond',Georgia,serif;
  font-weight:400;font-style:italic;font-size:.55em;
  color:#9E7855;letter-spacing:.02em;margin-top:12px;
  opacity:0;transform:translateY(80%);
  animation:wordUp .9s cubic-bezier(.16,1,.3,1) .96s forwards;
}
.page-sub{
  margin-top:36px;max-width:520px;
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:clamp(17px,1.7vw,21px);color:#9A8E82;line-height:1.6;
  opacity:0;transform:translateY(10px);
  animation:fadeUp .8s cubic-bezier(.16,1,.3,1) .75s forwards;
}

/* ── Section label bar ───────────────────── */
.section-bar{
  padding:52px 56px 44px;
  display:flex;align-items:baseline;justify-content:space-between;
  border-bottom:1px solid rgba(217,215,210,.055);
  transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);
}
.js .section-bar{opacity:0;transform:translateY(16px);}
.section-bar.revealed{opacity:1;transform:translateY(0);}
.section-tag{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.22em;text-transform:uppercase;color:rgba(217,215,210,.55);
}
.section-note{
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:16px;color:rgba(217,215,210,.6);
}

/* ── Opening editorial ───────────────────── */
.opening-section{
  padding:88px 56px 80px;
  border-bottom:1px solid rgba(217,215,210,.055);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
}
.js .opening-section{opacity:0;transform:translateY(24px);}
.opening-section.revealed{opacity:1;transform:translateY(0);}
.opening-lead{
  font-family:'Manrope',sans-serif;font-weight:800;
  font-size:clamp(22px,2.8vw,40px);letter-spacing:-.022em;
  color:#F3F2EE;line-height:1.15;
  max-width:840px;margin-bottom:52px;
}
.opening-lead em{font-style:normal;color:#9E7855;}
.opening-body{
  display:grid;grid-template-columns:1fr 1fr;
  gap:40px 100px;max-width:1060px;
}
.opening-col p{
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(16px,1.5vw,20px);color:#9A8E82;
  line-height:1.7;margin-bottom:20px;
}
.opening-col p:last-child{margin-bottom:0;}
.opening-col em{font-style:italic;color:#D9D7D2;}

/* ── Touchpoints strip ───────────────────── */
.touchpoints{
  border-bottom:1px solid rgba(217,215,210,.055);
  display:flex;align-items:stretch;
  transition:opacity .7s cubic-bezier(.16,1,.3,1) .1s,transform .7s cubic-bezier(.16,1,.3,1) .1s;
}
.js .touchpoints{opacity:0;transform:translateY(16px);}
.touchpoints.revealed{opacity:1;transform:translateY(0);}
.tp-item{
  flex:1;padding:32px 20px;
  border-right:1px solid rgba(217,215,210,.055);
  display:flex;align-items:center;justify-content:center;
  text-align:center;cursor:none;
  transition:background .3s;
}
.tp-item:last-child{border-right:none;}
.tp-item:hover{background:rgba(217,215,210,.02);}
.tp-text{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;color:rgba(217,215,210,.55);
  transition:color .25s;line-height:1.6;
}
.tp-item:hover .tp-text{color:#D9D7D2;}

/* ── Gap pull-quote ──────────────────────── */
.gap-quote{
  padding:80px 56px;
  border-bottom:1px solid rgba(217,215,210,.055);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
}
.js .gap-quote{opacity:0;transform:translateY(24px);}
.gap-quote.revealed{opacity:1;transform:translateY(0);}
.gap-line{
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:clamp(22px,3vw,44px);color:#9A8E82;
  line-height:1.4;max-width:880px;
}
.gap-line em{font-style:normal;color:#F3F2EE;}
.gap-attr{
  margin-top:28px;
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.22em;text-transform:uppercase;color:rgba(217,215,210,.55);
}

/* ── Diamond Doctrine ────────────────────── */
.doctrine-section{
  border-bottom:1px solid rgba(217,215,210,.055);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
}
.js .doctrine-section{opacity:0;transform:translateY(28px);}
.doctrine-section.revealed{opacity:1;transform:translateY(0);}
.doctrine-header{
  padding:52px 56px 44px;
  display:flex;align-items:center;gap:20px;
  border-bottom:1px solid rgba(217,215,210,.055);
}
.doctrine-diamond{
  width:16px;height:16px;
  border:1px solid rgba(124,100,71,.6);
  transform:rotate(45deg);flex-shrink:0;
}
.doctrine-tag{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.22em;text-transform:uppercase;color:rgba(217,215,210,.55);
}
.doctrine-body{
  padding:72px 56px 80px;
  display:grid;grid-template-columns:1fr 1fr;
  gap:40px 120px;align-items:start;
}
.doctrine-philosophy{
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:clamp(22px,2.6vw,36px);color:#D9D7D2;
  line-height:1.42;
}
.doctrine-philosophy strong{
  display:block;font-style:normal;font-weight:400;
  font-size:.48em;font-family:'IBM Plex Mono',monospace;
  letter-spacing:.18em;text-transform:uppercase;
  color:#9E7855;margin-bottom:28px;
}
.doctrine-text p{
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(16px,1.4vw,19px);color:rgba(217,215,210,.65);
  line-height:1.7;margin-bottom:20px;
}
.doctrine-text p:last-child{margin-bottom:0;}
.doctrine-text em{font-style:italic;color:#D9D7D2;}

/* ── What We Do ──────────────────────────── */
.what-section{
  border-bottom:1px solid rgba(217,215,210,.055);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
}
.js .what-section{opacity:0;transform:translateY(24px);}
.what-section.revealed{opacity:1;transform:translateY(0);}
.what-body{
  padding:72px 56px 64px;
  display:grid;grid-template-columns:1fr 1fr;
  gap:40px 120px;align-items:start;
}
.what-lead{
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:clamp(20px,2.2vw,30px);color:#D9D7D2;
  line-height:1.45;
}
.what-list{padding-top:4px;}
.what-list-item{
  padding:20px 0;
  border-bottom:1px solid rgba(217,215,210,.055);
  display:flex;align-items:baseline;gap:16px;
  transition:background .25s;
}
.what-list-item:first-child{border-top:1px solid rgba(217,215,210,.055);}
.what-num{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.2em;color:#9E7855;flex-shrink:0;
}
.what-text{
  font-family:'Manrope',sans-serif;font-weight:600;
  font-size:clamp(14px,1.2vw,16px);color:#D9D7D2;letter-spacing:-.01em;
}
.what-footer{
  padding:0 56px 72px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.15em;text-transform:uppercase;color:rgba(217,215,210,.55);
}
.what-footer em{
  font-style:italic;font-family:'EB Garamond',Georgia,serif;
  font-size:15px;letter-spacing:0;text-transform:none;color:#9A8E82;
}

/* ── How We Work ─────────────────────────── */
.how-section{
  border-bottom:1px solid rgba(217,215,210,.055);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
}
.js .how-section{opacity:0;transform:translateY(24px);}
.how-section.revealed{opacity:1;transform:translateY(0);}
.how-body{
  padding:72px 56px 80px;
  display:grid;grid-template-columns:1fr 1fr;
  gap:40px 120px;
}
.how-lead p{
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(16px,1.5vw,20px);color:#9A8E82;
  line-height:1.7;margin-bottom:20px;
}
.how-lead p:last-child{margin-bottom:0;}
.how-lead em{font-style:italic;color:#D9D7D2;}
.how-questions{padding-top:4px;}
.how-q{
  padding:22px 0;
  border-bottom:1px solid rgba(217,215,210,.055);
  display:flex;align-items:center;gap:20px;
  transition:background .25s;
}
.how-q:first-child{border-top:1px solid rgba(217,215,210,.055);}
.how-q-num{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.2em;color:rgba(217,215,210,.45);flex-shrink:0;width:28px;
}
.how-q-text{
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:clamp(18px,1.8vw,24px);color:#D9D7D2;
}

/* ── Not louder. Clearer. ────────────────── */
.clarifier{
  padding:88px 56px 96px;
  border-bottom:1px solid rgba(217,215,210,.055);
  text-align:center;
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
}
.js .clarifier{opacity:0;transform:translateY(20px);}
.clarifier.revealed{opacity:1;transform:translateY(0);}
.clarifier-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.28em;text-transform:uppercase;color:rgba(217,215,210,.55);
  margin-bottom:32px;
}
.clarifier-statement{
  font-family:'Manrope',sans-serif;font-weight:800;
  font-size:clamp(52px,8vw,108px);letter-spacing:-.04em;
  color:#F3F2EE;line-height:.9;
}
.clarifier-statement em{
  font-style:italic;font-family:'EB Garamond',Georgia,serif;
  font-weight:400;color:#9E7855;letter-spacing:.02em;
  display:block;margin-top:12px;font-size:.62em;
}

/* ── What We Believe ─────────────────────── */
.believe-section{
  border-bottom:1px solid rgba(217,215,210,.055);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
}
.js .believe-section{opacity:0;transform:translateY(24px);}
.believe-section.revealed{opacity:1;transform:translateY(0);}
.believe-row{
  padding:36px 56px;
  border-top:1px solid rgba(217,215,210,.055);
  display:flex;align-items:center;justify-content:space-between;gap:40px;
  cursor:none;
  transition:background .35s;
  position:relative;overflow:hidden;
}
.believe-row:first-child{border-top:none;}
.believe-row::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:2px;
  background:#7C6447;transform:scaleY(0);transform-origin:bottom;
  transition:transform .45s cubic-bezier(.16,1,.3,1);
}
.believe-row:hover{background:rgba(217,215,210,.02);}
.believe-row:hover::before{transform:scaleY(1);}
.believe-text{
  font-family:'Manrope',sans-serif;font-weight:700;
  font-size:clamp(17px,2vw,26px);letter-spacing:-.018em;
  color:#D9D7D2;line-height:1.2;
  transition:color .3s;
}
.believe-row:hover .believe-text{color:#F3F2EE;}
.believe-num{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.2em;color:rgba(217,215,210,.45);flex-shrink:0;
}

/* ── Start With Understanding ────────────── */
.understanding-section{
  padding:88px 56px 104px;
  display:flex;align-items:flex-start;justify-content:space-between;gap:80px;
  border-bottom:1px solid rgba(217,215,210,.055);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
}
.js .understanding-section{opacity:0;transform:translateY(28px);}
.understanding-section.revealed{opacity:1;transform:translateY(0);}
.understanding-left{flex:1;max-width:580px;}
.understanding-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.24em;text-transform:uppercase;color:#9E7855;margin-bottom:28px;
}
.understanding-headline{
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:clamp(26px,3vw,40px);color:#D9D7D2;
  line-height:1.28;margin-bottom:24px;
}
.understanding-body{
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(16px,1.4vw,19px);color:rgba(217,215,210,.65);line-height:1.65;
}
.understanding-body em{font-style:italic;color:#D9D7D2;}
.understanding-right{
  flex-shrink:0;display:flex;flex-direction:column;
  align-items:flex-end;gap:28px;padding-top:4px;
}
.u-note{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.13em;text-transform:uppercase;
  color:rgba(217,215,210,.55);text-align:right;line-height:2;
}
.u-btn{
  display:inline-flex;align-items:center;gap:14px;
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  letter-spacing:.16em;text-transform:uppercase;
  color:#F3F2EE;border:1px solid rgba(124,100,71,.5);
  padding:16px 28px;cursor:none;
  transition:border-color .3s,background .3s;
}
.u-btn:hover{border-color:#7C6447;background:rgba(124,100,71,.08);}
.u-btn:focus{outline:1px solid rgba(124,100,71,.6);outline-offset:4px;}
.u-btn-arrow{
  width:20px;height:1px;background:#7C6447;position:relative;
  transition:width .3s cubic-bezier(.16,1,.3,1);
}
.u-btn-arrow::after{
  content:'';position:absolute;right:0;top:-3px;
  width:6px;height:6px;
  border-right:1px solid #7C6447;border-top:1px solid #7C6447;
  transform:rotate(45deg);
}
.u-btn:hover .u-btn-arrow{width:32px;}

/* ── Footer ──────────────────────────────── */
.site-footer{
  border-top:1px solid rgba(217,215,210,.055);
  padding:96px 56px 72px;
}
.site-footer-inner{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;
}
.footer-logo-link{display:block;margin-bottom:36px;}
.footer-logo{height:44px;width:178px;opacity:.72;}
.footer-tagline{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:19px;color:rgba(217,215,210,.5);
  margin-bottom:36px;letter-spacing:.01em;
}
.footer-nav{display:flex;gap:36px;margin-bottom:32px;}
.footer-nav a{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;
  color:rgba(217,215,210,.28);transition:color .25s;
}
.footer-nav a:hover{color:rgba(217,215,210,.7);}
.footer-copy{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(217,215,210,.18);
}

/* ── Hamburger nav ───────────────────────── */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;
  gap:6px;width:32px;height:32px;
  background:none;border:none;padding:0;cursor:none;flex-shrink:0;
}
.nav-toggle-bar{
  display:block;width:22px;height:1px;
  background:rgba(217,215,210,.65);
  transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .2s,width .3s;
}
nav.nav-open .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
nav.nav-open .nav-toggle-bar:nth-child(2){opacity:0;width:0;}
nav.nav-open .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media(pointer:coarse){
  body{cursor:auto;}
  #cursor-dot,#cursor-ring{display:none;}
}
/* ── Reduced motion ──────────────────────── */
@media (prefers-reduced-motion: reduce) {
  body::after{animation:none;}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;}
  .opening-section,.touchpoints,.gap-quote,.doctrine-section,
  .what-section,.how-section,.clarifier,.believe-section,
  .understanding-section,.section-bar,
  .page-eyebrow span,.page-headline .h-word,.page-headline em,.page-sub{
    opacity:1;transform:none;
  }
}

/* ── Responsive ──────────────────────────── */
@media (max-width:1100px){
  nav{padding:20px 40px;}
  .page-header{padding:140px 40px 72px;}
  .section-bar{padding:44px 40px 36px;}
  .opening-section{padding:72px 40px 64px;}
  .gap-quote{padding:64px 40px;}
  .doctrine-header{padding:44px 40px 36px;}
  .doctrine-body{padding:60px 40px 68px;gap:40px 80px;}
  .what-body{padding:60px 40px 52px;gap:40px 80px;}
  .what-footer{padding:0 40px 60px;}
  .how-body{padding:60px 40px 68px;gap:40px 80px;}
  .clarifier{padding:72px 40px 80px;}
  .believe-row{padding:32px 40px;}
  .understanding-section{padding:72px 40px 88px;gap:56px;}
  .site-footer{padding:72px 40px 56px;}
}
@media (max-width:900px){
  .opening-body{grid-template-columns:1fr;}
  .doctrine-body{grid-template-columns:1fr;}
  .what-body{grid-template-columns:1fr;}
  .how-body{grid-template-columns:1fr;}
  .understanding-section{flex-direction:column;gap:40px;}
  .understanding-right{align-items:flex-start;}
  .u-note{text-align:left;}
  .touchpoints{flex-wrap:wrap;}
  .tp-item{flex:0 0 33.333%;border-bottom:1px solid rgba(217,215,210,.055);}
}
@media (max-width:640px){
  nav{padding:18px 24px;}
  .nav-logo{height:38px;width:154px;}
  .page-header{padding:120px 24px 52px;}
  .nav-toggle{display:flex;}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;flex-wrap:nowrap;
    background:rgba(14,14,16,.97);backdrop-filter:blur(24px);
    border-bottom:1px solid rgba(217,215,210,.07);
    padding:0;
    visibility:hidden;opacity:0;pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .3s,transform .3s,visibility 0s .3s;
  }
  nav.nav-open .nav-links{
    visibility:visible;opacity:1;pointer-events:auto;
    transform:translateY(0);
    transition:opacity .3s,transform .3s;
  }
  .nav-links li{border-top:1px solid rgba(217,215,210,.055);}
  .nav-links li:first-child{border-top:none;}
  .nav-links a{display:block;padding:16px 28px;font-size:13px;letter-spacing:.14em;}
  .section-bar{padding:40px 24px 28px;flex-direction:column;gap:6px;}
  .opening-section{padding:56px 24px 48px;}
  .touchpoints{flex-direction:column;}
  .tp-item{flex:none;width:100%;border-right:none;border-bottom:1px solid rgba(217,215,210,.055);}
  .tp-item:last-child{border-bottom:none;}
  .gap-quote{padding:48px 24px;}
  .doctrine-header{padding:36px 24px 32px;}
  .doctrine-body{padding:48px 24px 56px;}
  .what-body{padding:48px 24px 40px;}
  .what-footer{padding:0 24px 48px;}
  .how-body{padding:48px 24px 56px;}
  .clarifier{padding:56px 24px 64px;}
  .believe-row{padding:28px 24px;}
  .understanding-section{padding:56px 24px 72px;}
  .site-footer{padding:56px 24px 48px;}
}

/* ── Keyframes ───────────────────────────── */
@keyframes wordUp{to{opacity:1;transform:translateY(0);}}
@keyframes fadeUp{to{opacity:1;transform:translateY(0);}}

/* ── contact.html ───── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:auto;}
body{
  background:#0e0e10;color:#D9D7D2;
  font-family:'Manrope',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;cursor:none;
}
a{color:inherit;text-decoration:none;}

/* ── Cursor ──────────────────────────────── */
#cursor-dot{
  position:fixed;width:4px;height:4px;border-radius:50%;
  background:#7C6447;pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);
}
#cursor-ring{
  position:fixed;width:30px;height:30px;
  pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%);
  transition:
    width .25s cubic-bezier(.16,1,.3,1),
    height .25s cubic-bezier(.16,1,.3,1),
    transform .25s cubic-bezier(.16,1,.3,1);
}
.cm-mark{
  position:absolute;width:7px;height:7px;
  border:1px solid rgba(243,242,238,.55);
  transition:border-color .25s;
}
.cm-tl{top:0;left:0;border-right:none;border-bottom:none;}
.cm-tr{top:0;right:0;border-left:none;border-bottom:none;}
.cm-bl{bottom:0;left:0;border-right:none;border-top:none;}
.cm-br{bottom:0;right:0;border-left:none;border-top:none;}
#cursor-ring.expanded{width:18px;height:18px;transform:translate(-50%,-50%) rotate(45deg);}
#cursor-ring.expanded .cm-mark{border-color:#9E7855;}

/* ── Grain ───────────────────────────────── */
body::after{
  content:'';position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.038;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:220px;animation:grain .45s steps(2) infinite;
}
@keyframes grain{
  0%{background-position:0 0;}25%{background-position:-40px -66px;}
  50%{background-position:66px 22px;}75%{background-position:-22px 44px;}
}

/* ── Nav ─────────────────────────────────── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:700;
  padding:22px 56px;display:flex;justify-content:space-between;align-items:center;
  background:rgba(14,14,16,.94);backdrop-filter:blur(24px);
  border-bottom:1px solid rgba(217,215,210,.05);
}
.nav-logo-link{line-height:0;}
.nav-logo{height:50px;width:202px;display:block;}
.nav-brand{flex:none;display:flex;flex-direction:column;gap:6px;}
.brand-subtitle{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.28em;text-transform:uppercase;
  color:rgba(158,120,85,.9);
}
.nav-links{display:flex;gap:40px;list-style:none;flex-wrap:nowrap;flex:none;}
.nav-links a{
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(217,215,210,.55);
  transition:color .25s;
}
.nav-links a:hover,.nav-links a.active{color:#D9D7D2;}

/* ── Page header ─────────────────────────── */
.page-header{
  position:relative;
  padding:160px 56px 80px;
  border-bottom:1px solid rgba(217,215,210,.055);
  overflow:hidden;
  min-height:440px;display:flex;flex-direction:column;justify-content:flex-end;
}
[data-barba-namespace="contact"] .page-header-img{
  position:absolute;inset:-10%;
  background:url('https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?auto=format&fit=crop&w=1920&q=85') center 45%/cover;
  will-change:transform;
}
[data-barba-namespace="contact"] .page-header-img::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(14,14,16,1) 0%,rgba(14,14,16,.75) 40%,rgba(14,14,16,.4) 100%),
    linear-gradient(to right,rgba(14,14,16,.6) 0%,transparent 60%);
}
.page-header-content{position:relative;z-index:2;}

.page-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.24em;text-transform:uppercase;color:#9E7855;
  margin-bottom:28px;overflow:hidden;
}
.page-eyebrow span{
  display:inline-block;
  opacity:0;transform:translateY(100%);
  animation:wordUp .8s cubic-bezier(.16,1,.3,1) .15s forwards;
}
.contact-statement{
  font-family:'EB Garamond',Georgia,serif;font-style:italic;
  font-size:clamp(22px,2.8vw,40px);color:#D9D7D2;
  line-height:1.35;max-width:600px;
  opacity:0;transform:translateY(14px);
  animation:fadeUp .9s cubic-bezier(.16,1,.3,1) .4s forwards;
}

/* ── Form section ────────────────────────── */
.form-section{
  padding:80px 56px 120px;
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
}
.js .form-section{opacity:0;transform:translateY(24px);}
.form-section.revealed{opacity:1;transform:translateY(0);}

form{max-width:620px;}

/* ── Field groups ────────────────────────── */
.field-group{margin-bottom:52px;position:relative;}

.field-label{
  display:block;
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;color:rgba(217,215,210,.45);
  margin-bottom:16px;
  transition:color .3s;
}
.field-group:focus-within .field-label{color:#7C6447;}

.field-input{
  display:block;width:100%;
  background:transparent;
  border:none;border-bottom:1px solid rgba(75,83,92,.26);
  color:#D9D7D2;
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(17px,1.5vw,20px);
  font-weight:400;line-height:1.5;
  padding:10px 0 14px;
  outline:none;
  -webkit-appearance:none;appearance:none;
  border-radius:0;
  caret-color:#7C6447;
  transition:border-color 360ms ease;
  cursor:none;
}
.field-input::placeholder{
  color:rgba(75,83,92,.85);
  font-style:italic;
}
.field-input:focus{border-bottom-color:rgba(124,100,71,.4);}

.field-textarea{
  resize:none;
  overflow:hidden;
  line-height:1.7;
  min-height:120px;
}

/* ── Submit button ───────────────────────── */
.c-btn{
  display:inline-flex;align-items:center;gap:14px;
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  letter-spacing:.16em;text-transform:uppercase;
  color:#F3F2EE;border:1px solid rgba(124,100,71,.5);
  background:none;
  padding:16px 28px;cursor:none;
  transition:border-color .3s,background .3s;
  margin-top:8px;
}
.c-btn:hover{border-color:#7C6447;background:rgba(124,100,71,.08);}
.c-btn:focus{outline:1px solid rgba(124,100,71,.6);outline-offset:4px;}
.c-btn-arrow{
  width:20px;height:1px;background:#7C6447;position:relative;
  transition:width .3s cubic-bezier(.16,1,.3,1);
}
.c-btn-arrow::after{
  content:'';position:absolute;right:0;top:-3px;
  width:6px;height:6px;
  border-right:1px solid #7C6447;border-top:1px solid #7C6447;
  transform:rotate(45deg);
}
.c-btn:hover .c-btn-arrow{width:32px;}

/* ── Form note ───────────────────────────── */
.form-note{
  margin-top:32px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.13em;text-transform:uppercase;
  color:rgba(217,215,210,.55);line-height:1.8;
}

/* ── Honeypot ────────────────────────────── */
.hp-field{position:absolute;left:-9999px;opacity:0;pointer-events:none;tab-index:-1;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ── Form states ─────────────────────────── */
.form-error{
  margin-top:20px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.13em;text-transform:uppercase;
  color:rgba(200,100,80,.8);line-height:1.8;
  display:none;
}
.form-error.visible{display:block;}

.form-success{
  display:none;
  padding:64px 0;
}
.form-success.visible{display:block;}
.success-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.26em;text-transform:uppercase;color:#9E7855;
  margin-bottom:24px;
}
.success-headline{
  font-family:'Manrope',sans-serif;font-weight:800;
  font-size:clamp(28px,3.5vw,44px);line-height:.97;
  letter-spacing:-.03em;color:#F3F2EE;margin-bottom:20px;
}
.success-sub{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:clamp(16px,1.6vw,20px);color:rgba(217,215,210,.6);
  line-height:1.55;
}

/* ── Footer ──────────────────────────────── */
.site-footer{
  border-top:1px solid rgba(217,215,210,.055);
  padding:96px 56px 72px;
}
.site-footer-inner{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;
}
.footer-logo-link{display:block;margin-bottom:36px;}
.footer-logo{height:44px;width:178px;opacity:.72;}
.footer-tagline{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:19px;color:rgba(217,215,210,.5);
  margin-bottom:36px;letter-spacing:.01em;
}
.footer-nav{display:flex;gap:36px;margin-bottom:32px;}
.footer-nav a{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;
  color:rgba(217,215,210,.28);transition:color .25s;
}
.footer-nav a:hover{color:rgba(217,215,210,.7);}
.footer-copy{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(217,215,210,.18);
}

/* ── Hamburger nav ───────────────────────── */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;
  gap:6px;width:32px;height:32px;
  background:none;border:none;padding:0;cursor:none;flex-shrink:0;
}
.nav-toggle-bar{
  display:block;width:22px;height:1px;
  background:rgba(217,215,210,.65);
  transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .2s,width .3s;
}
nav.nav-open .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
nav.nav-open .nav-toggle-bar:nth-child(2){opacity:0;width:0;}
nav.nav-open .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media(pointer:coarse){
  body{cursor:auto;}
  #cursor-dot,#cursor-ring{display:none;}
}
/* ── Reduced motion ──────────────────────── */
@media (prefers-reduced-motion: reduce) {
  body::after{animation:none;}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;}
  .form-section,.page-eyebrow span,.contact-statement{
    opacity:1;transform:none;
  }
}

/* ── Responsive ──────────────────────────── */
@media (max-width:1100px){
  nav{padding:20px 40px;}
  .page-header{padding:140px 40px 64px;}
  .form-section{padding:64px 40px 100px;}
  .site-footer{padding:72px 40px 56px;}
}
@media (max-width:640px){
  nav{padding:18px 24px;}
  .nav-logo{height:38px;width:154px;}
  .page-header{padding:120px 24px 48px;}
  .form-section{padding:52px 24px 80px;}
  .field-group{margin-bottom:40px;}
  .site-footer{padding:56px 24px 48px;}
  .nav-toggle{display:flex;}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;flex-wrap:nowrap;
    background:rgba(14,14,16,.97);backdrop-filter:blur(24px);
    border-bottom:1px solid rgba(217,215,210,.07);
    padding:0;
    visibility:hidden;opacity:0;pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .3s,transform .3s,visibility 0s .3s;
  }
  nav.nav-open .nav-links{
    visibility:visible;opacity:1;pointer-events:auto;
    transform:translateY(0);
    transition:opacity .3s,transform .3s;
  }
  .nav-links li{border-top:1px solid rgba(217,215,210,.055);}
  .nav-links li:first-child{border-top:none;}
  .nav-links a{display:block;padding:16px 28px;font-size:13px;letter-spacing:.14em;}
}

/* ── Keyframes ───────────────────────────── */
@keyframes wordUp{to{opacity:1;transform:translateY(0);}}
@keyframes fadeUp{to{opacity:1;transform:translateY(0);}}
/* ── Cascade corrections ─────────────────── */
/* Inner-page nav blocks earlier in this file override the home gradient.
   These rules use the ns-home class (set by transitions.js) to restore it. */
html.ns-home nav{
  background:linear-gradient(to bottom,rgba(14,14,16,.92) 0%,rgba(14,14,16,.78) 60%,transparent 100%);
  border-bottom:1px solid transparent;
  backdrop-filter:none;
}
html.ns-home nav.scrolled{
  background:rgba(14,14,16,.94);
  border-bottom-color:rgba(217,215,210,.05);
  backdrop-filter:blur(24px);
}
/* About-section .page-headline (smaller clamp) overrides the services size.
   Scoping to namespace restores the correct size per page. */
[data-barba-namespace="services"] .page-headline{font-size:clamp(48px,7vw,96px);}

/* ── Print / no-observer fallback ────────────
   IntersectionObserver never fires when printing or in headless screenshot
   environments. Force all scroll-reveal elements visible so nothing is
   invisible in PDFs, print previews, or audit screenshots. */
@media print {
  .js .recognition-card,
  .js .service-item,
  .js .section-bar,
  .js .audit-section,
  .js .cta-section,
  .js .opening-section,
  .js .touchpoints,
  .js .gap-quote,
  .js .doctrine-section,
  .js .what-section,
  .js .how-section,
  .js .clarifier,
  .js .believe-section,
  .js .understanding-section,
  .js .form-section {
    opacity:1 !important;
    transform:none !important;
  }
  .diamond-ornament,.diamond-quote,.diamond-attribution,.diamond-method {
    opacity:1 !important;
    transform:none !important;
  }
}
[data-barba-namespace="about"] .page-headline{font-size:clamp(36px,5.2vw,76px);}
