:root {
  --ivory:#F8F5EF;--cream:#F2EDE3;--cream-dark:#E8E0D0;
  --petroleum:#1C2E3A;--petroleum-2:#243648;--petroleum-3:#0F1C26;
  --warm-gray:#8A8178;--warm-gray-2:#6B6259;
  --gold:#B8975A;--gold-light:#CEB07A;--gold-pale:#E8D9B8;--white:#FDFBF8;
  --ff-display:'Cormorant Garamond',Georgia,serif;
  --ff-body:'DM Sans',system-ui,sans-serif;
  --ff-italic:'Cormorant',Georgia,serif;
  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --ease-in-out:cubic-bezier(0.65,0,0.35,1);
  --nav-h:76px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{background-color:var(--ivory);color:var(--petroleum);font-family:var(--ff-body);font-weight:300;line-height:1.7;overflow-x:hidden;cursor:none}

/* cursor */
.cursor{width:6px;height:6px;background:var(--gold);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:opacity .3s,transform .1s}
.cursor-ring{width:30px;height:30px;border:1px solid rgba(184,151,90,.5);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .35s var(--ease-out),height .35s var(--ease-out),border-color .35s,background .35s}
.cursor-ring.hover{width:48px;height:48px;border-color:rgba(184,151,90,.8);background:rgba(184,151,90,.05)}
.cursor-ring.clicking{transform:translate(-50%,-50%) scale(.85)}

/* typography */
h1,h2,h3,h4{font-family:var(--ff-display);font-weight:300;line-height:1.1;letter-spacing:-.01em}
.display-xl{font-size:clamp(2.8rem,5.8vw,7rem);font-weight:300;line-height:1.05;letter-spacing:-.03em}
.display-lg{font-size:clamp(2.4rem,5vw,5.5rem);font-weight:300;line-height:1.05;letter-spacing:-.02em}
.display-md{font-size:clamp(1.8rem,3vw,3.2rem);font-weight:300;line-height:1.15;letter-spacing:-.01em}
.label{font-family:var(--ff-body);font-size:.68rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.body-lg{font-size:clamp(1rem,1.2vw,1.15rem);font-weight:300;line-height:1.8;color:var(--warm-gray-2)}
.body-md{font-size:.95rem;font-weight:300;line-height:1.75;color:var(--warm-gray)}
em.editorial{font-family:var(--ff-italic);font-style:italic;font-weight:300;color:var(--gold)}

/* layout */
.container{max-width:1280px;margin:0 auto;padding:0 clamp(1.5rem,5vw,6rem)}
.container--narrow{max-width:860px;margin:0 auto;padding:0 clamp(1.5rem,5vw,6rem)}
.gold-line--short{width:60px;height:1px;background:var(--gold);opacity:.7}

/* keyframes */
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes subtlePulse{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes shimmer{0%{background-position:-200% center}100%{background-position:200% center}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes orbPulse{0%,100%{opacity:.07;transform:scale(1)}50%{opacity:.12;transform:scale(1.08)}}

/* reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.32s}.reveal-delay-4{transition-delay:.44s}.reveal-delay-5{transition-delay:.56s}

/* progress bar */
.progress-bar{position:fixed;top:0;left:0;height:2px;width:100%;background:transparent;z-index:300;pointer-events:none}
.progress-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--gold),var(--gold-light),var(--gold));background-size:200% auto;animation:shimmer 3s linear infinite;transition:width .1s linear}

/* ===== NAV ===== */
nav{position:fixed;top:0;left:0;right:0;z-index:200;height:var(--nav-h);padding:0 clamp(1.5rem,5vw,6rem);display:flex;align-items:center;justify-content:space-between;transition:background .5s var(--ease-out),box-shadow .5s}
nav.scrolled{background:rgba(248,245,239,.96);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 1px 0 rgba(184,151,90,.15)}
.nav-logo{display:flex;flex-direction:column;gap:3px;text-decoration:none}
.nav-logo-name{font-family:var(--ff-display);font-size:1.2rem;font-weight:400;letter-spacing:.09em;color:var(--ivory);line-height:1;transition:color .4s}
nav.scrolled .nav-logo-name{color:var(--petroleum)}
.nav-logo-sub{font-size:.52rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);line-height:1}
.logo-amp{color:var(--gold);font-style:normal}
.nav-links{display:flex;align-items:center;gap:2.5rem;list-style:none}
.nav-links a{font-size:.72rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:rgba(248,245,239,.65);transition:color .3s;position:relative}
nav.scrolled .nav-links a{color:var(--warm-gray-2)}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--gold);transition:width .4s var(--ease-out)}
.nav-links a:hover{color:var(--ivory)}
nav.scrolled .nav-links a:hover{color:var(--petroleum)}
.nav-links a:hover::after{width:100%}
.nav-cta{font-size:.7rem!important;letter-spacing:.12em!important;color:var(--ivory)!important;border:1px solid rgba(248,245,239,.3)!important;padding:.55rem 1.3rem;transition:background .3s,border-color .3s,color .3s!important}
nav.scrolled .nav-cta{color:var(--petroleum)!important;border-color:rgba(28,46,58,.3)!important}
.nav-cta:hover{background:var(--gold)!important;border-color:var(--gold)!important;color:var(--petroleum-3)!important}
.nav-cta::after{display:none!important}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:none;padding:4px}
.hamburger span{display:block;width:24px;height:1px;background:var(--ivory);transition:all .3s}
nav.scrolled .hamburger span{background:var(--petroleum)}
.nav-overlay{position:fixed;inset:0;background:var(--petroleum-3);z-index:190;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;opacity:0;pointer-events:none;transition:opacity .4s var(--ease-out)}
.nav-overlay.open{opacity:1;pointer-events:all}
.nav-overlay a{font-family:var(--ff-display);font-size:2.2rem;font-weight:300;color:var(--ivory);text-decoration:none;letter-spacing:.02em;opacity:0;transform:translateY(16px);transition:color .3s,opacity .5s var(--ease-out),transform .5s var(--ease-out)}
.nav-overlay.open a{opacity:1;transform:translateY(0)}
.nav-overlay.open a:nth-child(1){transition-delay:.05s}.nav-overlay.open a:nth-child(2){transition-delay:.1s}.nav-overlay.open a:nth-child(3){transition-delay:.15s}.nav-overlay.open a:nth-child(4){transition-delay:.2s}.nav-overlay.open a:nth-child(5){transition-delay:.25s}
.nav-overlay a:hover{color:var(--gold-light)}

/* ===== HERO ===== */
#hero{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding-bottom:0;
  position:relative;
  overflow:hidden;
  background-color:var(--petroleum-3);
}
.hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 75% 35%,rgba(184,151,90,.05) 0%,transparent 65%),radial-gradient(ellipse 50% 80% at 10% 65%,rgba(184,151,90,.06) 0%,transparent 55%),linear-gradient(155deg,#0F1C26 0%,#1A2B38 50%,#101C28 100%)}
.hero-grain{position:absolute;inset:0;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:200px 200px;pointer-events:none}
.hero-grid{position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 79px,rgba(184,151,90,.03) 80px),repeating-linear-gradient(90deg,transparent,transparent 79px,rgba(184,151,90,.03) 80px);pointer-events:none}
.hero-orb{position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(184,151,90,.07) 0%,transparent 68%);top:-8%;right:-120px;animation:orbPulse 10s ease-in-out infinite;pointer-events:none}
.hero-orb-2{position:absolute;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(36,54,72,.55) 0%,transparent 70%);bottom:12%;left:-80px;animation:orbPulse 14s ease-in-out infinite reverse;pointer-events:none}

/* content fills between nav padding and stats bar */
.hero-content{
  position:relative;
  z-index:3;
  width:100%;
  flex:1;
  display:flex;
  align-items:center;
}
.hero-text{
  display:flex;flex-direction:column;
  padding-top:calc(var(--nav-h) + 2rem);
  padding-bottom:clamp(6rem,13vh,10rem);
  padding-left:clamp(1.5rem,5vw,6rem);
  padding-right:2rem;
  max-width:52%;
  position:relative;
  z-index:4;
}
.hero-image{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
}
.hero-image img{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
  filter:saturate(.7) brightness(.55);
  animation:fadeIn 1.2s var(--ease-out) 0s both;
}
/* dark overlay so text stays readable */
.hero-image::before{
  content:'';
  position:absolute;inset:0;
  background:
    linear-gradient(to right, rgba(15,28,38,.75) 0%, rgba(15,28,38,.35) 55%, rgba(15,28,38,.1) 100%),
    linear-gradient(to bottom, rgba(15,28,38,.4) 0%, transparent 30%),
    linear-gradient(to top, rgba(15,28,38,.6) 0%, transparent 30%);
  z-index:2;
}
.hero-headline{color:var(--ivory);margin-bottom:2rem;max-width:100%;animation:fadeUp 1.1s var(--ease-out) .45s both;text-align:left}
.hero-headline .italic-line{display:block;font-family:var(--ff-italic);font-style:italic;font-weight:300;color:var(--gold-light)}
.hero-sub{font-size:clamp(.88rem,1.1vw,1.04rem);font-weight:300;color:rgba(248,245,239,.5);max-width:440px;line-height:1.85;margin-bottom:3rem;animation:fadeUp 1.1s var(--ease-out) .65s both}
.hero-actions{display:flex;align-items:center;gap:2.5rem;animation:fadeUp 1.1s var(--ease-out) .85s both}

/* buttons */
.btn-primary{display:inline-flex;align-items:center;gap:1.2rem;background:var(--gold);color:var(--petroleum-3);text-decoration:none;font-size:.68rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;padding:1rem 2.4rem;position:relative;overflow:hidden;transition:transform .35s var(--ease-out),box-shadow .35s;white-space:nowrap;flex-wrap:nowrap;min-width:0}
.btn-primary::before{content:'';position:absolute;inset:0;background:var(--gold-light);transform:translateX(-101%);transition:transform .42s var(--ease-out)}
.btn-primary:hover::before{transform:translateX(0)}
.btn-primary span,.btn-primary .btn-arrow{position:relative;z-index:1}
.btn-primary:hover{box-shadow:0 8px 32px rgba(184,151,90,.35);transform:translateY(-2px)}
.btn-ghost{display:inline-flex;align-items:center;gap:.7rem;color:rgba(248,245,239,.55);text-decoration:none;font-size:.7rem;font-weight:400;letter-spacing:.13em;text-transform:uppercase;transition:color .3s;white-space:nowrap}
.btn-ghost:hover{color:var(--ivory)}
.btn-arrow{width:18px;height:1px;background:currentColor;position:relative;transition:width .35s var(--ease-out);flex-shrink:0;display:block}
.btn-arrow::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)}
.btn-ghost:hover .btn-arrow{width:28px}

/* ── hero node diagram ── */
.node-svg{width:min(100%,400px);height:auto;overflow:visible}
@keyframes ringPulse{0%,100%{opacity:.6;r:58}50%{opacity:1;r:63}}
@keyframes haloPulse{0%,100%{opacity:.4}50%{opacity:.7}}
@keyframes dashFlow{to{stroke-dashoffset:-16}}
.ring-pulse{animation:ringPulse 3.5s ease-in-out infinite}
.halo{animation:haloPulse 4s ease-in-out infinite}
.dl{animation:dashFlow 1.8s linear infinite}

/* hero scroll indicator */
.hero-scroll{position:absolute;bottom:5.5rem;right:clamp(1.5rem,5vw,6rem);display:flex;flex-direction:column;align-items:center;gap:.7rem;animation:fadeIn 2s var(--ease-out) 1.4s both;z-index:2}
.hero-scroll-text{font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(248,245,239,.28);writing-mode:vertical-rl}
.hero-scroll-line{width:1px;height:48px;background:linear-gradient(to bottom,rgba(184,151,90,.65),transparent);animation:subtlePulse 2.8s ease-in-out infinite}

/* stats bar — absolute at bottom edge */
.hero-bottom-bar{
  position:absolute;
  bottom:0;left:0;right:0;
  z-index:3;
  border-top:1px solid rgba(184,151,90,.13);
  display:flex;align-items:center;flex-wrap:wrap;
  padding:1.1rem clamp(1.5rem,5vw,6rem);
  gap:2rem;
  background:rgba(15,28,38,.6);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  animation:fadeIn .6s var(--ease-out) 1s both;
}
.hero-stat{
  display:flex;flex-direction:column;gap:4px;flex-shrink:0;
  opacity:0;transform:translateY(12px);
  animation:fadeUp .65s var(--ease-out) both;
}
.hero-stat:nth-child(1){animation-delay:1.1s}
.hero-stat:nth-child(3){animation-delay:1.28s}
.hero-stat:nth-child(5){animation-delay:1.46s}
.hero-stat:nth-child(7){animation-delay:1.64s}
.hero-stat-num{font-family:var(--ff-display);font-size:1.1rem;font-weight:300;color:var(--ivory);line-height:1;white-space:nowrap}
.hero-stat-label{font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(248,245,239,.32);white-space:nowrap}
.hero-stat-divider{
  width:1px;height:30px;background:rgba(184,151,90,.18);flex-shrink:0;
  opacity:0;animation:fadeIn .4s var(--ease-out) 1.5s both;
}

/* ===== POSITIONING ===== */
#positioning{padding:clamp(5rem,11vh,9rem) 0;background:var(--ivory)}
.positioning-inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(4rem,8vw,10rem);align-items:center}
.positioning-statement{margin-top:2rem;margin-bottom:2.5rem;color:var(--petroleum)}
.positioning-body{margin-bottom:1.8rem}
.positioning-right{display:flex;flex-direction:column}
.position-pillar{padding:1.8rem 0;border-bottom:1px solid rgba(28,46,58,.1);display:flex;flex-direction:column;gap:.45rem;transition:padding-left .45s var(--ease-out),border-color .3s;cursor:default;position:relative;overflow:hidden}
.position-pillar:first-child{border-top:1px solid rgba(28,46,58,.1)}
.position-pillar::before{
  content:'';position:absolute;left:0;top:0;
  width:2px;height:0;
  background:linear-gradient(to bottom,var(--gold),var(--gold-light));
  transition:height .5s var(--ease-out);
  opacity:.7;
}
.position-pillar:hover::before{height:100%}
.position-pillar:hover{padding-left:1.2rem;border-bottom-color:rgba(184,151,90,.3)}
.position-pillar-num{
  font-size:.58rem;letter-spacing:.22em;color:var(--gold);font-weight:500;
  transition:letter-spacing .4s var(--ease-out),opacity .3s;
}
.position-pillar:hover .position-pillar-num{letter-spacing:.38em;opacity:1}
.position-pillar-title{font-family:var(--ff-display);font-size:1.35rem;font-weight:400;color:var(--petroleum);line-height:1.2;transition:color .3s}
.position-pillar:hover .position-pillar-title{color:var(--petroleum-2)}
.position-pillar-text{font-size:.84rem;color:var(--warm-gray);font-weight:300;line-height:1.7;max-width:340px}
/* keyword underline animation on pillar hover */
.position-pillar .kw{
  background-image:linear-gradient(var(--gold),var(--gold));
  background-size:0% 1px;
  background-repeat:no-repeat;
  background-position:left bottom;
  transition:background-size .5s var(--ease-out);
  padding-bottom:1px;
}
.position-pillar:hover .kw{background-size:100% 1px}

/* offices */
.offices-bar{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.office-pill{display:inline-flex;align-items:center;gap:.55rem;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:400}
.office-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;background:rgba(184,151,90,.25)}
.office-pill .office-dot.active{background:var(--gold);box-shadow:0 0 0 3px rgba(184,151,90,.18)}
.office-pill .office-dot.soon{background:transparent;border:1px solid rgba(184,151,90,.4)}
.office-name{color:var(--warm-gray-2)}
.office-badge{font-size:.52rem;letter-spacing:.16em;color:var(--gold);border:1px solid rgba(184,151,90,.35);padding:.15rem .45rem;opacity:.8}
.offices-bar.dark .office-name{color:rgba(248,245,239,.38)}
.offices-bar.dark .office-badge{color:var(--gold-light);border-color:rgba(184,151,90,.25)}

/* ===== MANIFESTO ===== */
#manifesto{background:var(--petroleum-3);padding:clamp(4rem,8vh,7rem) 0;position:relative;overflow:hidden}
#manifesto::before,#manifesto::after{content:'';position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--gold) 70%,transparent);opacity:.25}
#manifesto::before{top:0}#manifesto::after{bottom:0}
.manifesto-bg-text{position:absolute;font-family:var(--ff-display);font-size:clamp(8rem,16vw,18rem);font-weight:300;color:rgba(255,255,255,.018);top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;letter-spacing:.15em;user-select:none}
.manifesto-content{text-align:center;position:relative;z-index:1}
.manifesto-quote{font-family:var(--ff-display);font-size:clamp(1.9rem,4.2vw,4.8rem);font-weight:300;color:var(--ivory);line-height:1.18;letter-spacing:-.02em;margin:2rem 0}
.manifesto-quote em{font-family:var(--ff-italic);font-style:italic;color:var(--gold-light)}
/* word animation */
.manifesto-quote .mw{
  display:inline-block;
  opacity:0;
  transform:translateY(12px);
  transition:opacity .55s var(--ease-out), transform .55s var(--ease-out);
}
.manifesto-quote.words-visible .mw{ opacity:1; transform:translateY(0); }
.manifesto-attribution{font-size:.67rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(248,245,239,.28);margin-top:2.5rem}

/* ===== SERVICES ===== */
#services{padding:clamp(5rem,11vh,9rem) 0;background:var(--cream)}
.services-header{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,8rem);align-items:end;margin-bottom:clamp(3rem,6vh,5rem)}
.services-body{align-self:end;padding-bottom:.3rem}
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(28,46,58,.1)}
.service-card{background:var(--cream);padding:clamp(2.5rem,4vw,3.8rem);display:flex;flex-direction:column;gap:1.4rem;position:relative;overflow:hidden;transition:background .45s var(--ease-out)}
.service-card::before{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--gold),var(--gold-light));transition:width .55s var(--ease-out)}
.service-card::after{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(105deg,transparent 40%,rgba(248,245,239,.06) 50%,transparent 60%);transition:left .65s var(--ease-out);pointer-events:none}
.service-card:hover{background:var(--ivory)}
.service-card:hover::before{width:100%}
.service-card:hover::after{left:160%}
.service-num{font-family:var(--ff-display);font-size:3.2rem;font-weight:300;color:rgba(28,46,58,.055);line-height:1;position:absolute;top:2rem;right:2.5rem;transition:color .4s;pointer-events:none}
.service-card:hover .service-num{color:rgba(184,151,90,.13)}
.service-tag{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:500}
.service-title{font-family:var(--ff-display);font-size:clamp(1.35rem,1.9vw,1.9rem);font-weight:300;color:var(--petroleum);line-height:1.2;max-width:280px}
.service-desc{font-size:.87rem;color:var(--warm-gray);font-weight:300;line-height:1.78}
.service-result{font-size:.78rem;color:var(--gold);font-weight:400;letter-spacing:.02em;font-style:italic;font-family:var(--ff-italic);margin-top:auto;padding-top:1rem;border-top:1px solid rgba(28,46,58,.07);opacity:0;transform:translateY(6px);transition:opacity .4s var(--ease-out),transform .4s var(--ease-out)}
.service-card:hover .service-result{opacity:1;transform:translateY(0)}
.service-items{list-style:none;display:flex;flex-direction:column;gap:.45rem;padding-top:1rem;border-top:1px solid rgba(28,46,58,.07)}
.service-items li{font-size:.77rem;color:var(--warm-gray-2);display:flex;align-items:center;gap:.8rem}
.service-items li::before{content:'';width:12px;height:1px;background:var(--gold);opacity:.55;flex-shrink:0;transition:width .3s var(--ease-out)}
.service-card:hover .service-items li::before{width:18px}

/* ===== PHILOSOPHY ===== */
#philosophy{padding:clamp(5rem,11vh,9rem) 0;background:var(--cream)}
.philosophy-inner{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(4rem,8vw,10rem);align-items:start}
.philosophy-left{position:sticky;top:calc(var(--nav-h) + 3rem)}
.philosophy-statement{margin:2.2rem 0 1.8rem;color:var(--petroleum)}
.philosophy-right{display:flex;flex-direction:column}

@keyframes goldSweep{from{transform:translateX(-100%)}to{transform:translateX(0)}}

.philosophy-item{
  padding:1.4rem 0;
  border-bottom:1px solid rgba(28,46,58,.08);
  display:flex;
  flex-direction:row;
  align-items:center;  /* number and title share the same vertical centre */
  gap:1.6rem;
  position:relative;
  overflow:hidden;
  cursor:default;
}
.philosophy-item:first-child{border-top:1px solid rgba(28,46,58,.08)}

/* gold shimmer on hover */
.philosophy-item::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(184,151,90,.11) 0%,rgba(206,176,122,.05) 50%,transparent 75%);
  transform:translateX(-100%);opacity:0;
  transition:transform .55s var(--ease-out),opacity .4s;pointer-events:none;
}
.philosophy-item:hover::before{transform:translateX(0);opacity:1}

/* left border accent */
.philosophy-item::after{
  content:'';position:absolute;left:0;top:0;
  width:2px;height:0;background:var(--gold);opacity:0;
  transition:height .5s var(--ease-out),opacity .3s;
}
.philosophy-item:hover::after{height:100%;opacity:.5}

.philosophy-num{
  font-family:var(--ff-display);font-size:2rem;font-weight:300;
  color:rgba(28,46,58,.1);line-height:1;flex-shrink:0;
  width:2.8rem;
  text-align:center;   /* centred between left border and text start */
  padding-top:0;       /* no offset needed — align-items:center handles it */
  transition:color .4s;position:relative;z-index:1;
}
.philosophy-item:hover .philosophy-num{color:rgba(184,151,90,.35)}

.philosophy-item-body{flex:1;min-width:0;position:relative;z-index:1;display:flex;flex-direction:column}

.philosophy-item-title{
  font-family:var(--ff-display);font-size:1.3rem;font-weight:400;
  color:var(--petroleum);line-height:1.3;
  margin-bottom:0;
  transition:color .3s;
}

/* text hidden by default, expands on hover via max-height */
.philosophy-item-text{
  font-size:.87rem;color:var(--warm-gray);line-height:1.78;
  max-height:0;
  overflow:hidden;
  opacity:0;
  margin-top:0;
  transition:max-height .55s var(--ease-out), opacity .45s var(--ease-out), margin-top .35s;
}
.philosophy-item:hover .philosophy-item-text{
  max-height:200px;
  opacity:1;
  margin-top:.75rem;
}

/* ===== WHY US ===== */
#why{
  padding:clamp(5rem,11vh,9rem) 0;
  position:relative;overflow:hidden;
  background:var(--petroleum-2);
}
#why::before{
  content:'';
  position:absolute;inset:0;
  background:url('why-bg.png') center center / cover no-repeat;
  opacity:.18;
  z-index:0;
}
#why .container{position:relative;z-index:1;}
.why-label{color:var(--gold-light)}
.why-headline{color:var(--ivory);margin:1.5rem 0 clamp(3rem,6vh,5rem);max-width:700px}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,3rem)}
.why-item{display:flex;flex-direction:column;gap:1.1rem;padding:2.2rem;border:1px solid rgba(184,151,90,.1);position:relative;overflow:hidden;transition:border-color .4s var(--ease-out),transform .4s var(--ease-out),background .4s}
.why-item::after{content:'';position:absolute;bottom:0;left:0;right:0;height:0;background:rgba(184,151,90,.04);transition:height .4s var(--ease-out)}
.why-item:hover{border-color:rgba(184,151,90,.35);transform:translateY(-5px)}
.why-item:hover::after{height:100%}
.why-item-icon{width:28px;height:1px;background:var(--gold);opacity:.6;transition:width .4s var(--ease-out)}
.why-item:hover .why-item-icon{width:42px}
.why-item-title{font-family:var(--ff-display);font-size:1.35rem;font-weight:300;color:var(--ivory);line-height:1.2;position:relative;z-index:1}
.why-item-text{font-size:.83rem;color:rgba(248,245,239,.48);line-height:1.82;font-weight:300;position:relative;z-index:1}

/* ===== PROCESS ===== */
#process{padding:clamp(5rem,11vh,9rem) 0;background:var(--ivory)}
.process-header{margin-bottom:clamp(3rem,6vh,5rem)}
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);position:relative}
/* static fallback line hidden — replaced by animated SVG */
.process-steps::before{display:none}
.process-line-svg{
  position:absolute;
  top:17px; left:17px;
  width:calc(100% - 34px - calc(25% - 17px));
  height:2px;
  overflow:visible;
  pointer-events:none;
  z-index:0;
}
.process-line-path{
  stroke:var(--gold);
  stroke-width:1;
  opacity:.45;
  fill:none;
  stroke-dasharray:1000;
  stroke-dashoffset:1000;
  transition:stroke-dashoffset 1.4s var(--ease-out);
}
.process-line-svg.draw .process-line-path{
  stroke-dashoffset:0;
}
.process-step{display:flex;flex-direction:column;gap:1.4rem;padding:0 2rem 0 0;position:relative;z-index:1}
.process-step-num{width:34px;height:34px;border:1px solid rgba(184,151,90,.38);display:flex;align-items:center;justify-content:center;font-family:var(--ff-display);font-size:.88rem;font-weight:300;color:var(--gold);background:var(--ivory);transition:background .35s,border-color .35s,transform .35s var(--ease-out)}
.process-step:hover .process-step-num{background:var(--gold);color:var(--ivory);border-color:var(--gold);transform:scale(1.08)}
.process-step-title{font-family:var(--ff-display);font-size:1.25rem;font-weight:400;color:var(--petroleum);line-height:1.2}
.process-step-text{font-size:.82rem;color:var(--warm-gray);line-height:1.78}

/* ===== CREDENTIALS ===== */
#credentials{padding:clamp(5rem,11vh,9rem) 0;background:var(--ivory)}
.credentials-inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,8rem);align-items:stretch}
.credentials-left{display:flex;flex-direction:column;justify-content:center}
.credentials-statement{margin:1.8rem 0 2rem;color:var(--petroleum)}
.credentials-tags{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:2rem}
.cred-tag{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--warm-gray-2);border:1px solid rgba(28,46,58,.14);padding:.38rem .85rem;font-weight:400;transition:border-color .3s,color .3s,transform .3s}
.cred-tag:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}
.credentials-right{display:flex;flex-direction:column;justify-content:center;align-items:center}

/* ── ticket carousel ── */
.ticket-carousel{
  width:100%;
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:2.4rem;          /* generous space between cards and nav arrows */
  user-select:none;
}
.ticket-stack{
  position:relative;
  flex:1;
  height:360px;
}
/* ticket-nav: vertical column, centred alongside stack */
.ticket-nav{
  display:flex;flex-direction:column;align-items:center;gap:.9rem;flex-shrink:0;
}
.ticket-dots{display:flex;flex-direction:column;gap:.55rem;align-items:center}
.ticket-nav-old-remove{display:none}
/* base */
.ticket{
  position:absolute;
  left:0;right:0;
  background:var(--ivory);
  border:1px solid rgba(28,46,58,.1);
  border-left:3px solid var(--gold);
  padding:1.6rem 2rem;
  display:flex;flex-direction:column;gap:.8rem;
  transition:transform .6s var(--ease-out),opacity .5s var(--ease-out),box-shadow .4s,left .5s var(--ease-out),right .5s var(--ease-out);
  will-change:transform,opacity;
  box-sizing:border-box;
  cursor:default;
}

/* ── prev: peeking from top, narrower, behind ── */
.ticket[data-pos="prev"]{
  top:0;
  left:5%;right:5%;
  transform:translateY(0) scale(.95);
  opacity:.4;z-index:1;
  box-shadow:none;
  pointer-events:none;
}

/* ── active: middle, widest, front, full opacity ── */
.ticket[data-pos="active"]{
  top:0;
  left:-3%;right:-3%;
  transform:translateY(3.8rem) scale(1);
  opacity:1;z-index:3;
  box-shadow:0 14px 44px rgba(28,46,58,.16);
  background:var(--white);
  cursor:pointer;
}

/* ── next: peeking from bottom, narrower, behind ── */
.ticket[data-pos="next"]{
  top:0;
  left:5%;right:5%;
  transform:translateY(7.4rem) scale(.95);
  opacity:.4;z-index:2;
  box-shadow:none;
  pointer-events:none;
}

/* hidden */
.ticket[data-pos="hidden"]{
  left:5%;right:5%;
  transform:translateY(11rem) scale(.92);
  opacity:0;z-index:0;pointer-events:none;
}

/* exit upward */
.ticket[data-pos="exit-up"]{
  left:-3%;right:-3%;
  transform:translateY(-2rem) scale(.98);
  opacity:0;z-index:4;pointer-events:none;
}

/* enter from bottom */
.ticket[data-pos="enter-down"]{
  left:5%;right:5%;
  transform:translateY(12rem) scale(.92);
  opacity:0;z-index:0;pointer-events:none;
}

.ticket-header{display:flex;align-items:center;justify-content:space-between}
.ticket-tag{font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:500}
.ticket-num{font-size:.58rem;letter-spacing:.14em;color:var(--warm-gray);font-family:var(--ff-display);font-weight:300}
.ticket-title{font-family:var(--ff-display);font-size:1.2rem;font-weight:400;color:var(--petroleum);line-height:1.25}
.ticket-detail{font-size:.82rem;color:var(--warm-gray);line-height:1.72;font-weight:300}

.ticket-nav-old-remove{display:none}
.ticket-btn{
  width:32px;height:32px;border:1px solid rgba(28,46,58,.18);
  background:transparent;color:var(--warm-gray-2);
  display:flex;align-items:center;justify-content:center;
  cursor:none;transition:border-color .3s,color .3s,background .3s;flex-shrink:0;
}
.ticket-btn:hover{border-color:var(--gold);color:var(--gold);background:rgba(184,151,90,.06)}
.ticket-dots{display:flex;gap:.55rem;align-items:center}
.ticket-dot{
  width:5px;height:5px;border-radius:50%;background:rgba(28,46,58,.18);
  transition:background .3s,transform .3s;cursor:none;border:none;padding:0;
}
.ticket-dot.active{background:var(--gold);transform:scale(1.3)}

/* ===== CTA ===== */
#contact{padding:clamp(6rem,13vh,11rem) 0;background:var(--petroleum-3);text-align:center;position:relative;overflow:hidden}
.contact-bg-word{position:absolute;font-family:var(--ff-display);font-size:clamp(10rem,20vw,22rem);font-weight:300;color:rgba(255,255,255,.02);top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;letter-spacing:.1em;user-select:none}
.contact-label{color:var(--gold-light)}
.contact-headline{color:var(--ivory);margin:2rem auto 2.5rem;max-width:720px}
.contact-body{color:rgba(248,245,239,.48);max-width:480px;margin:0 auto 4rem;font-size:1rem;line-height:1.8}
.contact-actions{display:flex;align-items:center;justify-content:center;gap:2.5rem;flex-wrap:wrap}
.btn-primary-light{display:inline-flex;align-items:center;gap:1.2rem;background:var(--ivory);color:var(--petroleum-3);text-decoration:none;font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:1rem 2.8rem;position:relative;overflow:hidden;transition:transform .35s var(--ease-out),box-shadow .35s}
.btn-primary-light::before{content:'';position:absolute;inset:0;background:var(--gold-pale);transform:translateX(-101%);transition:transform .42s var(--ease-out)}
.btn-primary-light:hover::before{transform:translateX(0)}
.btn-primary-light span,.btn-primary-light .btn-arrow{position:relative;z-index:1}
.btn-primary-light:hover{box-shadow:0 10px 44px rgba(0,0,0,.45);transform:translateY(-2px)}
.contact-note{margin-top:3rem;font-size:.67rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(248,245,239,.22)}
/* CTA btn override */
#contact .btn-primary::before{background:var(--gold-pale)}

/* ── CTA morph form ── */
.contact-cta-wrap{display:flex;justify-content:center}
.cta-btn-state{transition:opacity .35s,transform .35s}
.cta-form-state{
  width:100%;max-width:560px;
  opacity:0;
  transform:translateY(16px) scale(.97);
  pointer-events:none;
  position:absolute;
  transition:opacity .5s var(--ease-out),transform .55s var(--ease-out);
}
.cta-form-state.visible{
  opacity:1;transform:translateY(0) scale(1);pointer-events:auto;position:relative;
}
.cta-btn-state.hidden{opacity:0;transform:scale(.9);pointer-events:none;position:absolute}

.contact-form{display:flex;flex-direction:column;gap:1.1rem}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.cf-row--full{grid-template-columns:1fr}
.cf-field{display:flex;flex-direction:column;gap:.4rem}
.cf-label{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(248,245,239,.45);font-weight:500}
.cf-input{
  background:rgba(248,245,239,.07);
  border:1px solid rgba(248,245,239,.15);
  color:var(--ivory);
  font-family:var(--ff-body);font-size:.88rem;font-weight:300;
  padding:.75rem 1rem;
  outline:none;
  transition:border-color .3s,background .3s;
  width:100%;
}
.cf-input::placeholder{color:rgba(248,245,239,.22)}
.cf-input:focus{border-color:var(--gold);background:rgba(248,245,239,.1)}
.cf-actions{display:flex;align-items:center;gap:1.5rem;margin-top:.5rem;flex-wrap:wrap}
.cf-submit{
  background:var(--gold);color:var(--petroleum-3);
  border:none;font-family:var(--ff-body);font-size:.68rem;font-weight:500;
  letter-spacing:.15em;text-transform:uppercase;
  padding:.9rem 2.2rem;cursor:none;
  position:relative;overflow:hidden;
  transition:transform .3s var(--ease-out),box-shadow .3s,background .3s;
  z-index:1;
}
/* subtle brightness shift on hover — no full overlay, text always visible */
.cf-submit:hover{
  background:var(--gold-light);
  color:var(--petroleum-3);
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(184,151,90,.4);
}
.cf-cancel{
  background:transparent;border:none;
  color:rgba(248,245,239,.3);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  cursor:none;transition:color .3s;font-family:var(--ff-body);
}
.cf-cancel:hover{color:rgba(248,245,239,.65)}
.cf-success{
  font-size:.82rem;color:var(--gold-light);text-align:center;
  min-height:1.2em;letter-spacing:.05em;
}

/* ===== FOOTER ===== */
footer{background:var(--petroleum-3);border-top:1px solid rgba(184,151,90,.13);padding:2.8rem clamp(1.5rem,5vw,6rem)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:2rem}
.footer-logo-name{font-family:var(--ff-display);font-size:1rem;font-weight:400;letter-spacing:.09em;color:rgba(248,245,239,.55)}
.footer-tagline{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(248,245,239,.22);margin-top:4px}
.footer-links{display:flex;gap:2rem;list-style:none}
.footer-links a{font-size:.67rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(248,245,239,.28);text-decoration:none;transition:color .3s}
.footer-links a:hover{color:var(--gold-light)}
.footer-copy{font-size:.62rem;color:rgba(248,245,239,.18);letter-spacing:.05em}

/* ── lateral scroll progress indicator ── */
.scroll-progress-lateral{
  position:fixed;
  left:0; top:0; bottom:0;
  width:3px;
  z-index:500;
  pointer-events:none;
}
.scroll-progress-lateral-fill{
  position:absolute;
  left:0; top:0;
  width:100%;
  height:0%;
  background:linear-gradient(to bottom, transparent 0%, var(--gold) 8%, var(--gold-light) 50%, var(--gold) 92%, transparent 100%);
  transition:height .08s linear;
}

/* misc */
.mag-wrap{display:inline-block}
.section-divider{width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(184,151,90,.2) 30%,rgba(184,151,90,.2) 70%,transparent)}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .positioning-inner,.philosophy-inner,.credentials-inner{grid-template-columns:1fr;gap:3rem}
  .philosophy-left{position:static}
  .services-header{grid-template-columns:1fr;gap:2rem}
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .process-steps{grid-template-columns:repeat(2,1fr);gap:3rem}
  .process-steps::before{display:none}
}
@media(max-width:768px){
  .nav-links{display:none}
  .hamburger{display:flex}
  body{cursor:auto}
  .cursor,.cursor-ring{display:none}
  .hero-bottom-bar{gap:1.2rem}
  .hero-content{padding-right:clamp(1.5rem,5vw,6rem)}
  .hero-text{max-width:100%}
  .hero-image{display:none}
  .hero-text{padding-right:0}
  .services-grid,.why-grid{grid-template-columns:1fr}
  .process-steps{grid-template-columns:1fr;gap:2.5rem}
  .footer-inner{flex-direction:column;align-items:flex-start;gap:1.5rem}
  .services-header{grid-template-columns:1fr}
  .hero-scroll{display:none}
}
@media(max-width:480px){
  .hero-actions{flex-direction:column;align-items:flex-start;gap:1.5rem}
}