/* =========================================================================
   FAM SOLUTION — Performance Marketing
   Design system: editorial / financial-press typography, near-black ground,
   warm paper light sections, single brass accent, hairline structure.
   ========================================================================= */

:root{
  /* Ground */
  --ink:#0A0A0B;
  --ink-2:#101012;
  --ink-3:#17171A;
  --ink-line:rgba(255,255,255,.10);
  --ink-line-soft:rgba(255,255,255,.055);

  /* Paper */
  --paper:#F2EFE8;
  --paper-2:#E8E4DA;
  --paper-line:rgba(18,18,20,.12);
  --paper-line-soft:rgba(18,18,20,.07);

  /* Type colour */
  --on-dark:#EAE7E1;
  --on-dark-mute:#9B978E;
  --on-dark-faint:#6A665F;
  --on-paper:#131315;
  --on-paper-mute:#5C5952;

  /* Accent — the only chromatic voice on the site */
  --brass:#C8A15A;
  --brass-soft:rgba(200,161,90,.16);
  --brass-line:rgba(200,161,90,.32);

  --wa:#3FAE6A;

  /* Type */
  --sans:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --serif:'Newsreader',Georgia,'Times New Roman',serif;

  /* Motion */
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-2:cubic-bezier(.22,.61,.36,1);

  /* Rhythm */
  --shell:1320px;
  --gutter:clamp(1.25rem,4vw,3.5rem);
  --sec-y:clamp(5rem,9.5vw,9rem);
  --hdr:84px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 16px)}
body{
  margin:0;background:var(--ink);color:var(--on-dark);
  font-family:var(--sans);font-weight:400;font-size:clamp(.95rem,.35vw + .88rem,1.0625rem);
  line-height:1.65;letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
body.nav-open{overflow:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol,dl,dd{margin:0;padding:0;list-style:none}
p{margin:0}
h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.032em;line-height:1.02}
::selection{background:var(--brass);color:#0A0A0B}

:where(a,button,summary,input,select,textarea):focus-visible{
  outline:1px solid var(--brass);outline-offset:3px;border-radius:2px;
}

.skip-link{
  position:fixed;top:10px;left:10px;z-index:200;padding:.7rem 1rem;
  background:var(--paper);color:var(--on-paper);font-size:.8rem;font-weight:600;
  transform:translateY(-160%);transition:transform .25s var(--ease);
}
.skip-link:focus{transform:none}

/* Film grain — ties the photography and the flat surfaces together */
.grain{
  position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}

.shell{width:100%;max-width:var(--shell);margin:0 auto;padding:0 var(--gutter)}

/* ============================ SURFACES ============================ */
.section{position:relative;padding:var(--sec-y) 0}
.section-paper{background:var(--paper);color:var(--on-paper)}
.section-dark{background:var(--ink-2);color:var(--on-dark)}
.section-black{background:var(--ink);color:var(--on-dark)}
.section-paper + .section-paper{padding-top:0}
.section-dark::before,.section-black::before{
  content:"";position:absolute;inset-inline:0;top:0;height:1px;background:var(--ink-line-soft);
}
.section-paper::before{
  content:"";position:absolute;inset-inline:0;top:0;height:1px;background:var(--paper-line-soft);
}

/* Fine engineering grid used sparingly on dark surfaces */
.grid-lines{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(90deg,var(--ink-line-soft) 1px,transparent 1px);
  background-size:clamp(90px,10vw,160px) 100%;
  mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent);
}

/* ============================ TYPE ============================ */
.label{
  margin:0 0 1.35rem;font-size:.66rem;font-weight:600;letter-spacing:.26em;
  text-transform:uppercase;color:var(--on-dark-mute);display:flex;align-items:center;gap:.85rem;
}
.label::before{content:"";width:clamp(18px,3vw,34px);height:1px;background:var(--brass);flex:none}
.section-paper .label{color:var(--on-paper-mute)}
.label.small{font-size:.6rem;letter-spacing:.24em;margin-bottom:.8rem}
.label .slash{color:var(--brass);margin:0 .2rem}
.brass{color:var(--brass)}

.h2{font-size:clamp(1.95rem,3.9vw,3.5rem);letter-spacing:-.038em}
.h2 em,.hero-title em,.cta-title em{
  font-family:var(--serif);font-style:italic;font-weight:300;
  letter-spacing:-.02em;color:var(--brass);
}
.section-paper .h2 em{color:#8C6B2A}

.lede{
  font-size:clamp(1rem,.5vw + .92rem,1.18rem);line-height:1.62;color:var(--on-dark-mute);
  max-width:56ch;margin-top:1.5rem;
}
.section-paper .lede{color:var(--on-paper-mute)}

.sec-head{max-width:70ch;margin-bottom:clamp(2.75rem,5vw,4.5rem)}
.sec-head-center{margin-inline:auto;text-align:center}
.sec-head-center .label{justify-content:center}
.sec-head-note{margin-top:1.4rem;color:var(--on-dark-mute);max-width:56ch;font-size:.98rem}
.sec-head-center .sec-head-note{margin-inline:auto}
.section-paper .sec-head-note{color:var(--on-paper-mute)}

/* ============================ BUTTONS ============================ */
.btn{
  --mx:0;--my:0;
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1.02rem 1.6rem;font-size:.815rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid transparent;overflow:hidden;isolation:isolate;
  transform:translate3d(calc(var(--mx)*1px),calc(var(--my)*1px),0);
  transition:transform .45s var(--ease),border-color .35s,background-color .35s,color .35s;
}
.btn>span{position:relative;z-index:2}
.btn svg{position:relative;z-index:2;width:17px;height:17px;transition:transform .45s var(--ease)}
.btn::after{
  content:"";position:absolute;inset:0;z-index:1;background:var(--brass);
  transform:translateY(101%);transition:transform .5s var(--ease);
}
.btn:hover::after{transform:translateY(0)}

.btn-light{background:var(--paper);color:var(--on-paper)}
.btn-light:hover{color:#0A0A0B}
.btn-ghost{border-color:var(--ink-line);color:var(--on-dark)}
.btn-ghost:hover{border-color:var(--brass);color:#0A0A0B}
.btn-outline{border-color:currentColor;color:inherit}
.btn-outline:hover{color:#0A0A0B;border-color:var(--brass)}
.section-paper .btn-ghost{border-color:var(--paper-line);color:var(--on-paper)}
.btn-sm{padding:.78rem 1.15rem;font-size:.72rem}
.btn-lg{padding:1.2rem 2.1rem;font-size:.86rem}
.btn-block{width:100%}
.btn .btn-arrow{width:18px}
.btn:hover .btn-arrow{transform:translateX(5px)}
.btn .wa{width:16px;height:16px;opacity:.75}

.link-arrow{
  display:inline-flex;align-items:center;gap:.6rem;margin-top:2rem;
  font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  padding-bottom:.45rem;border-bottom:1px solid currentColor;
  transition:color .3s,gap .35s var(--ease);
}
.link-arrow svg{width:17px;height:17px;transition:transform .4s var(--ease)}
.link-arrow:hover{color:var(--brass)}
.link-arrow:hover svg{transform:translateX(4px)}
.section-paper .link-arrow:hover{color:#8C6B2A}

/* ============================ HEADER ============================ */
.site-header{
  position:fixed;inset-inline:0;top:0;z-index:100;
  background:rgba(10,10,11,0);backdrop-filter:blur(0px);
  border-bottom:1px solid transparent;
  transition:background-color .45s var(--ease-2),backdrop-filter .45s,border-color .45s;
}
.header-inner{
  display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem);
  height:var(--hdr);transition:height .45s var(--ease-2);
}
.site-header.is-stuck{
  background:rgba(10,10,11,.82);backdrop-filter:blur(16px) saturate(140%);
  border-bottom-color:var(--ink-line-soft);
}
.site-header.is-stuck .header-inner{height:64px}
.site-header.is-stuck .logo-type em{opacity:0;transform:translateY(-4px)}

.header-progress{
  position:absolute;left:0;bottom:-1px;height:1px;width:100%;
  transform:scaleX(var(--p,0));transform-origin:0 50%;
  background:linear-gradient(90deg,transparent,var(--brass));
  transition:transform .12s linear;
}

.logo{display:flex;align-items:center;gap:.7rem;flex:none}
.logo-mark{width:34px;height:34px;color:var(--on-dark);flex:none}
.logo-mark svg{width:100%;height:100%}
.logo-type{display:flex;flex-direction:column;line-height:1.1;font-size:.98rem;letter-spacing:-.01em}
.logo-word{white-space:nowrap}
.logo-type strong{font-weight:800;letter-spacing:.01em}
.logo-type em{
  font-style:normal;font-size:.55rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--on-dark-faint);margin-top:.25rem;
  transition:opacity .35s,transform .35s;
}

.nav-desktop{display:flex;align-items:center;gap:clamp(1rem,2.2vw,2.1rem);margin-left:auto}
.nav-desktop a{
  position:relative;font-size:.8rem;font-weight:500;letter-spacing:.03em;
  color:var(--on-dark-mute);padding:.4rem 0;transition:color .3s;
}
.nav-desktop a::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--brass);
  transform:scaleX(0);transform-origin:0 50%;transition:transform .45s var(--ease);
}
.nav-desktop a:hover,.nav-desktop a.active{color:var(--on-dark)}
.nav-desktop a:hover::after,.nav-desktop a.active::after{transform:scaleX(1)}

.header-actions{display:flex;align-items:center;gap:.9rem;margin-left:auto}
.nav-desktop ~ .header-actions{margin-left:0}

.burger{display:none;width:42px;height:42px;position:relative;border:1px solid var(--ink-line)}
.burger span{
  position:absolute;left:11px;width:20px;height:1px;background:var(--on-dark);
  transition:transform .45s var(--ease),opacity .3s;
}
.burger span:first-child{top:18px}
.burger span:last-child{top:24px}
body.nav-open .burger span:first-child{transform:translateY(3px) rotate(45deg)}
body.nav-open .burger span:last-child{transform:translateY(-3px) rotate(-45deg)}

/* ============================ MOBILE NAV ============================ */
.mobile-nav{
  position:fixed;inset:0;z-index:99;background:var(--ink);
  clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease);
  visibility:hidden;
}
body.nav-open .mobile-nav{clip-path:inset(0 0 0 0);visibility:visible}
.mobile-nav-inner{
  height:100%;padding:calc(var(--hdr) + 2rem) var(--gutter) 2.5rem;
  display:flex;flex-direction:column;overflow-y:auto;
}
.mobile-nav nav{display:flex;flex-direction:column;margin-top:.5rem}
.mobile-nav nav a{
  display:flex;align-items:baseline;gap:1rem;padding:.85rem 0;
  font-size:clamp(1.7rem,7vw,2.5rem);font-weight:700;letter-spacing:-.035em;
  border-bottom:1px solid var(--ink-line-soft);
  opacity:0;transform:translateY(22px);
}
body.nav-open .mobile-nav nav a{
  animation:mnIn .7s var(--ease) forwards;
  animation-delay:calc(var(--i,0)*55ms + 140ms);
}
@keyframes mnIn{to{opacity:1;transform:none}}
.mn-num{font-size:.6rem;font-weight:600;letter-spacing:.2em;color:var(--brass);flex:none}
.mobile-nav-foot{margin-top:auto;padding-top:2rem}
.mn-meta{margin-top:1.4rem;font-size:.8rem;color:var(--on-dark-mute);line-height:1.8}

/* ============================ HERO ============================ */
.hero{position:relative;padding:calc(var(--hdr) + clamp(3rem,7vw,6rem)) 0 clamp(4rem,7vw,6.5rem);overflow:hidden}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 85% at 78% 12%,rgba(200,161,90,.09),transparent 58%);
}
.hero-rules{position:absolute;inset:0;pointer-events:none;display:flex;justify-content:space-evenly;opacity:.5}
.hero-rules i{width:1px;background:linear-gradient(180deg,transparent,var(--ink-line-soft) 30%,transparent)}
.hero-grid{
  position:relative;z-index:2;display:grid;grid-template-columns:1.14fr .86fr;
  gap:clamp(2.5rem,5vw,5rem);align-items:center;
}
.hero-label{margin-bottom:clamp(1.5rem,3vw,2.2rem);color:var(--on-dark)}

.hero-title{
  font-size:clamp(2.5rem,6.1vw,5.1rem);line-height:1;letter-spacing:-.045em;font-weight:700;
}
.hero-title .line{display:block;overflow:hidden;padding-bottom:.06em}
.hero-title .line>span{display:block;transition:transform 1.1s var(--ease)}
.js .hero-title .line>span{transform:translateY(105%)}
.hero-title.in .line:nth-child(1)>span{transition-delay:.08s}
.hero-title.in .line:nth-child(2)>span{transition-delay:.17s}
.hero-title.in .line:nth-child(3)>span{transition-delay:.26s}
.hero-title.in .line:nth-child(4)>span{transition-delay:.35s}
.hero-title.in .line>span{transform:none}

.hero-lede{margin-top:clamp(1.5rem,3vw,2.1rem);max-width:54ch;color:var(--on-dark-mute);font-size:clamp(.98rem,.4vw + .9rem,1.1rem)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:clamp(2rem,4vw,2.8rem)}

.hero-ticker{display:flex;align-items:center;gap:.9rem;margin-top:clamp(2.5rem,5vw,3.6rem)}
.tick-dot{width:6px;height:6px;border-radius:50%;background:var(--brass);flex:none;position:relative}
.tick-dot::after{
  content:"";position:absolute;inset:-5px;border:1px solid var(--brass-line);border-radius:50%;
  animation:pulse 2.6s var(--ease-2) infinite;
}
@keyframes pulse{0%{transform:scale(.7);opacity:1}70%,100%{transform:scale(1.6);opacity:0}}
.ticker-mask{height:1.1rem;overflow:hidden;min-width:150px}
.ticker-list{transition:transform .8s var(--ease)}
.ticker-list li{
  height:1.1rem;font-size:.68rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  display:flex;align-items:center;
}
.ticker-rule{flex:1;height:1px;background:linear-gradient(90deg,var(--ink-line),transparent)}

/* Hero composed visual */
.hero-visual{position:relative}
.hv-frame{
  position:relative;aspect-ratio:4/5;border:1px solid var(--ink-line);
  background:var(--ink-3);
}
.hv-photo{width:100%;height:100%;object-fit:cover;filter:contrast(1.05) saturate(.85)}
.hv-veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,10,11,.25),rgba(10,10,11,.7) 72%,rgba(10,10,11,.92));
}
.hv-frame::after{
  content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.07);pointer-events:none;
}

.hv-card{
  position:absolute;z-index:3;padding:.95rem 1.05rem;width:min(74%,268px);
  background:rgba(14,14,16,.74);backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 26px 60px -30px rgba(0,0,0,.9);
}
.hv-card-a{left:-6%;top:16%}
.hv-card-b{right:-5%;bottom:14%;width:min(70%,246px)}
.hvc-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.8rem}
.hvc-ico{width:20px;height:20px;color:var(--on-dark-mute);flex:none}
.hvc-ico svg{width:100%;height:100%}
.hvc-label{font-size:.63rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.hvc-live{
  margin-left:auto;display:flex;align-items:center;gap:.35rem;
  font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-faint);
}
.hvc-live i{width:5px;height:5px;border-radius:50%;background:var(--brass);animation:blink 2.2s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.hvc-chart{width:100%;height:58px}
.spark-line{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.6s var(--ease) .6s forwards}
.spark-fill{opacity:0;animation:fadeIn 1.6s var(--ease) 1.6s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadeIn{to{opacity:1}}
.hvc-foot{
  display:flex;justify-content:space-between;margin-top:.6rem;
  font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-faint);
}
.hvc-trend{color:var(--brass)}
.hvc-bars li{margin-bottom:.6rem;font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;color:var(--on-dark-faint)}
.hvc-bars li:last-child{margin-bottom:0}
.hvc-bars span{display:block;margin-bottom:.3rem}
.hvc-bars i{
  display:block;height:3px;background:rgba(255,255,255,.1);position:relative;overflow:hidden;
}
.hvc-bars i::after{
  content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:var(--brass);
  transform:scaleX(0);transform-origin:0 50%;animation:barIn 1.4s var(--ease) 1s forwards;
}
@keyframes barIn{to{transform:scaleX(1)}}

.hv-chip{
  position:absolute;z-index:3;padding:.55rem .85rem;font-size:.58rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-mute);
  border:1px solid rgba(255,255,255,.12);background:rgba(10,10,11,.6);backdrop-filter:blur(8px);
}
.hv-chip-a{top:6%;right:4%}
.hv-chip-b{bottom:4%;left:2%}
.hv-orbit{position:absolute;inset:0;z-index:2;width:100%;height:100%}

.float-a{animation:fl 9s ease-in-out infinite}
.float-b{animation:fl 11s ease-in-out .8s infinite reverse}
.float-c{animation:fl 8s ease-in-out .4s infinite reverse}
.float-d{animation:fl 12s ease-in-out 1.2s infinite}
@keyframes fl{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-11px,0)}}

.hv-caption{
  margin-top:1.1rem;font-size:.68rem;letter-spacing:.06em;color:var(--on-dark-faint);
  max-width:34ch;
}

.scroll-cue{
  position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;gap:.7rem;
  width:max-content;margin:clamp(2.5rem,5vw,4rem) auto 0;
  font-size:.58rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--on-dark-faint);
  transition:color .3s;
}
.scroll-cue:hover{color:var(--on-dark)}
.sc-line{width:1px;height:54px;background:var(--ink-line);position:relative;overflow:hidden}
.sc-line i{position:absolute;inset:0;background:var(--brass);animation:cue 2.4s var(--ease-2) infinite}
@keyframes cue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}

/* ============================ CAPABILITY BAR ============================ */
.capability{background:var(--ink);border-block:1px solid var(--ink-line-soft);padding:clamp(1.4rem,2.4vw,2rem) 0}
.cap-list{display:flex;align-items:center;justify-content:space-between;gap:clamp(1rem,2.5vw,2rem);flex-wrap:wrap}
.cap-list li{
  position:relative;display:flex;align-items:baseline;gap:.6rem;
  font-size:clamp(.66rem,.9vw,.78rem);font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--on-dark-mute);transition:color .35s;flex:1 1 auto;justify-content:center;
}
.cap-list li:first-child{justify-content:flex-start}
.cap-list li:last-child{justify-content:flex-end}
.cap-list li + li::before{
  content:"";position:absolute;left:calc(clamp(1rem,2.5vw,2rem)/-2);top:50%;
  width:1px;height:13px;background:var(--ink-line);transform:translateY(-50%);
}
.cap-i{font-size:.55rem;color:var(--brass);letter-spacing:.1em}
.cap-list li:hover{color:var(--on-dark)}

/* ============================ APPROACH ============================ */
.approach-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.approach-points{margin-top:clamp(2.2rem,4vw,3rem);border-top:1px solid var(--paper-line-soft)}
.approach-points li{display:flex;gap:1.3rem;padding:1.5rem 0;border-bottom:1px solid var(--paper-line-soft)}
.ap-n{
  font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--brass);
  min-width:26px;padding-top:.1rem;
}
.approach-points h3{font-size:1.02rem;letter-spacing:-.02em;margin-bottom:.35rem}
.approach-points p{font-size:.93rem;color:var(--on-paper-mute);line-height:1.6}

.approach-figure{position:relative;margin:0}
.img-mask{overflow:hidden;position:relative;background:var(--ink-3)}
.img-mask img{transition:transform 1.4s var(--ease),filter 1s}
.img-mask::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);
}
.approach-figure .img-mask{aspect-ratio:4/5}
.approach-figure img{width:100%;height:100%;object-fit:cover}
.approach-figure:hover img{transform:scale(1.035)}
.approach-figure figcaption{
  margin-top:1rem;font-size:.74rem;letter-spacing:.02em;color:var(--on-paper-mute);
  display:flex;gap:.5rem;
}
.fig-stamp{
  position:absolute;right:-1px;top:-1px;padding:.9rem .85rem;text-align:center;
  background:var(--paper);border-left:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line);
  display:flex;flex-direction:column;line-height:1.3;
}
.fig-stamp span{font-size:.52rem;letter-spacing:.2em;text-transform:uppercase;color:var(--on-paper-mute)}
.fig-stamp strong{font-size:.85rem;letter-spacing:.1em;font-weight:800}

/* ============================ SERVICES ============================ */
.svc-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--ink-line-soft);border-left:1px solid var(--ink-line-soft);
}
.svc{
  position:relative;padding:clamp(1.9rem,3vw,2.7rem);overflow:hidden;
  border-right:1px solid var(--ink-line-soft);border-bottom:1px solid var(--ink-line-soft);
  min-height:clamp(250px,26vw,310px);display:flex;flex-direction:column;
  transition:background-color .55s var(--ease);
}
.svc::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:radial-gradient(120% 120% at 50% 110%,rgba(200,161,90,.12),transparent 62%);
  opacity:0;transform:translateY(24%);transition:opacity .6s var(--ease),transform .7s var(--ease);
}
.svc:hover{background:var(--ink-3)}
.svc:hover::before{opacity:1;transform:translateY(0)}
.svc>*{position:relative;z-index:1}
.svc-num{
  font-size:.6rem;font-weight:700;letter-spacing:.2em;color:var(--brass);
}
.svc-ico{
  width:38px;height:38px;margin:1.6rem 0 auto;color:var(--on-dark);
  transition:transform .6s var(--ease),color .4s;
}
.svc-ico svg{width:100%;height:100%}
.svc:hover .svc-ico{transform:translateY(-4px) rotate(-4deg)}
.svc h3{font-size:clamp(1.15rem,1.6vw,1.42rem);margin:1.8rem 0 .7rem;letter-spacing:-.028em}
.svc p{font-size:.92rem;line-height:1.6;color:var(--on-dark-mute);max-width:34ch;padding-right:2.2rem}
.svc-arrow{
  position:absolute;right:clamp(1.9rem,3vw,2.7rem);bottom:clamp(1.9rem,3vw,2.7rem);
  width:22px;height:22px;color:var(--on-dark-faint);
  transition:transform .5s var(--ease),color .4s;
}
.svc-arrow svg{width:100%;height:100%}
.svc:hover .svc-arrow{transform:translate(5px,-5px);color:var(--brass)}

/* ============================ FUNNEL ============================ */
.funnel-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(3rem,7vw,7rem);align-items:start}
.funnel-metrics{margin-top:clamp(2.4rem,4vw,3.2rem);border-top:1px solid var(--ink-line-soft)}
.funnel-metrics li{
  display:flex;align-items:center;gap:1.4rem;padding:1.05rem 0;
  border-bottom:1px solid var(--ink-line-soft);
}
.fm-label{
  font-size:clamp(1rem,1.5vw,1.28rem);font-weight:700;letter-spacing:.02em;text-transform:uppercase;
  min-width:9.5rem;
}
.fm-rule{flex:1;height:2px;background:rgba(255,255,255,.07);position:relative;overflow:hidden}
.fm-rule i{
  position:absolute;inset:0;background:linear-gradient(90deg,var(--brass),rgba(200,161,90,.25));
  transform-origin:0 50%;transition:transform 1.5s var(--ease);
}
.js .fm-rule i{transform:scaleX(0)}
.funnel-metrics li.in .fm-rule i{transform:scaleX(1)}
.funnel-metrics li:nth-child(2) .fm-rule i{transition-delay:.12s}
.funnel-metrics li:nth-child(3) .fm-rule i{transition-delay:.24s}
.funnel-metrics li:nth-child(4) .fm-rule i{transition-delay:.36s}
.funnel-note{margin-top:1.4rem;font-size:.72rem;color:var(--on-dark-faint);letter-spacing:.02em}

.flow{position:relative;padding-left:clamp(2.2rem,4vw,3.4rem)}
.flow-track{
  position:absolute;left:clamp(.55rem,1.1vw,.95rem);top:.6rem;bottom:.6rem;width:1px;
  background:var(--ink-line);
}
.flow-fill{
  position:absolute;inset:0 0 auto 0;height:100%;background:var(--brass);
  transform:scaleY(var(--p,1));transform-origin:50% 0;transition:transform .2s linear;
}
.flow-step{position:relative;padding:0 0 clamp(1.8rem,3.4vw,2.6rem)}
.flow-step:last-child{padding-bottom:0}
.fs-dot{
  position:absolute;left:calc(clamp(2.2rem,4vw,3.4rem)*-1 + clamp(.55rem,1.1vw,.95rem) - 3px);
  top:.55rem;width:7px;height:7px;border-radius:50%;background:var(--ink-2);
  border:1px solid var(--on-dark-faint);transition:background-color .4s,border-color .4s,transform .5s var(--ease);
}
.flow-step.lit .fs-dot{background:var(--brass);border-color:var(--brass);transform:scale(1.25)}
.fs-i{
  display:block;font-size:.58rem;font-weight:700;letter-spacing:.2em;color:var(--brass);
  margin-bottom:.4rem;transition:color .4s;
}
.js .fs-i{color:var(--on-dark-faint)}
.flow-step.lit .fs-i{color:var(--brass)}
.fs-t{
  display:block;font-size:clamp(1.25rem,2.6vw,2rem);font-weight:700;letter-spacing:-.035em;
  transition:color .55s var(--ease);
}
.js .fs-t{color:var(--on-dark-faint)}
.flow-step.lit .fs-t{color:var(--on-dark)}
.fs-d{display:block;margin-top:.4rem;font-size:.9rem;color:var(--on-dark-mute);max-width:44ch;transition:opacity .5s}
.js .fs-d{opacity:.55}
.flow-step.lit .fs-d{opacity:1}

/* ============================ RESEARCH ============================ */
.research-head{
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);
  align-items:end;margin-bottom:clamp(2.5rem,4vw,3.5rem);
}
.research-head .lede{margin-top:0}
.research-figure{margin:0 0 clamp(2.5rem,4.5vw,4rem)}
.research-figure .img-mask{aspect-ratio:21/9}
.research-figure img{width:100%;height:100%;object-fit:cover}
.research-figure:hover img{transform:scale(1.03)}
.res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--paper-line-soft)}
.res-card{
  background:var(--paper);padding:clamp(1.5rem,2.6vw,2.2rem);position:relative;
  transition:background-color .5s var(--ease),transform .5s var(--ease);
}
.res-card:hover{background:#fff;transform:translateY(-3px)}
.rc-i{font-size:.58rem;font-weight:700;letter-spacing:.2em;color:var(--brass)}
.res-card h3{font-size:1.08rem;margin:1.1rem 0 .55rem;letter-spacing:-.025em}
.res-card p{font-size:.9rem;color:var(--on-paper-mute);line-height:1.6}

/* ============================ PROCESS ============================ */
.proc{position:relative;max-width:900px;margin:0 auto;padding-left:clamp(2.6rem,5vw,4.5rem)}
.proc-track{position:absolute;left:clamp(.6rem,1.2vw,1.1rem);top:1rem;bottom:1rem;width:1px;background:var(--ink-line)}
.proc-fill{
  position:absolute;inset:0 0 auto 0;height:100%;
  background:linear-gradient(180deg,var(--brass),rgba(200,161,90,.35));
  transform:scaleY(var(--p,1));transform-origin:50% 0;transition:transform .2s linear;
}
.proc-step{position:relative;padding:0 0 clamp(2rem,3.6vw,3rem)}
.proc-step:last-child{padding-bottom:0}
.ps-dot{
  position:absolute;left:calc(clamp(2.6rem,5vw,4.5rem)*-1 + clamp(.6rem,1.2vw,1.1rem) - 4px);
  top:1rem;width:9px;height:9px;border-radius:50%;background:var(--ink-2);
  border:1px solid var(--on-dark-faint);transition:all .45s var(--ease);
}
.proc-step.lit .ps-dot{background:var(--brass);border-color:var(--brass);box-shadow:0 0 0 5px var(--brass-soft)}
.ps-n{
  display:block;font-size:.6rem;font-weight:700;letter-spacing:.22em;color:var(--brass);
  margin-bottom:.55rem;transition:color .4s;
}
.js .ps-n{color:var(--on-dark-faint)}
.proc-step.lit .ps-n{color:var(--brass)}
.proc-step h3{
  font-size:clamp(1.35rem,2.9vw,2.15rem);letter-spacing:-.04em;text-transform:uppercase;
  transition:color .5s var(--ease);
}
.js .proc-step h3{color:var(--on-dark-faint)}
.proc-step.lit h3{color:var(--on-dark)}
.proc-step p{margin-top:.55rem;font-size:.95rem;color:var(--on-dark-mute);max-width:52ch;transition:opacity .5s}
.js .proc-step p{opacity:.5}
.proc-step.lit p{opacity:1}

/* ============================ METRICS ============================ */
.met-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--paper-line)}
.met{
  background:var(--paper);padding:clamp(1.8rem,3vw,2.6rem);
  display:flex;flex-direction:column;min-height:clamp(240px,24vw,290px);
  transition:background-color .5s var(--ease);
}
.met:hover{background:#fff}
.met-top{display:flex;align-items:baseline;gap:.9rem}
.met-n{font-size:.58rem;font-weight:700;letter-spacing:.2em;color:var(--brass)}
.met h3{font-size:clamp(1.5rem,2.6vw,2.05rem);letter-spacing:-.04em;text-transform:uppercase}
.met p{margin-top:.8rem;font-size:.95rem;color:var(--on-paper-mute);max-width:40ch}
.met-viz{width:100%;height:clamp(76px,8vw,96px);margin-top:auto}
.viz-bars rect{
  fill:rgba(19,19,21,.16);transform-origin:50% 100%;
  transition:transform .9s var(--ease),fill .4s;
}
.js .viz-bars rect{transform:scaleY(0)}
.met.in .viz-bars rect{transform:scaleY(1)}
.met.in .viz-bars rect:nth-child(1){transition-delay:.05s}
.met.in .viz-bars rect:nth-child(2){transition-delay:.12s}
.met.in .viz-bars rect:nth-child(3){transition-delay:.19s}
.met.in .viz-bars rect:nth-child(4){transition-delay:.26s}
.met.in .viz-bars rect:nth-child(5){transition-delay:.33s}
.met.in .viz-bars rect:nth-child(6){transition-delay:.4s;fill:#8C6B2A}
.met.in .viz-bars rect:nth-child(7){transition-delay:.47s}
.viz-line{stroke:#8C6B2A}
.js .viz-line{stroke-dasharray:1;stroke-dashoffset:1}
.met.in .viz-line{animation:draw 1.8s var(--ease) .15s forwards}
.viz-nodes circle{fill:#131315}
.js .viz-nodes circle{opacity:0}
.met.in .viz-nodes circle{animation:fadeIn .5s var(--ease) forwards}
.met.in .viz-nodes circle:nth-child(1){animation-delay:.9s}
.met.in .viz-nodes circle:nth-child(2){animation-delay:1.2s}
.met.in .viz-nodes circle:nth-child(3){animation-delay:1.5s}
.viz-steps rect{fill:rgba(19,19,21,.16);transform-origin:0 50%;transition:transform .9s var(--ease)}
.js .viz-steps rect{transform:scaleX(0)}
.met.in .viz-steps rect{transform:scaleX(1)}
.met.in .viz-steps rect:nth-child(2){transition-delay:.12s}
.met.in .viz-steps rect:nth-child(3){transition-delay:.24s;fill:#8C6B2A}
.viz-arc-bg{stroke:rgba(19,19,21,.13)}
.viz-arc{stroke:#8C6B2A;stroke-dasharray:.62 1}
.js .viz-arc{stroke-dasharray:0 1}
.met.in .viz-arc{animation:arc 1.6s var(--ease) .2s forwards}
@keyframes arc{to{stroke-dasharray:.62 1}}
.viz-needle{stroke:#131315;transform-origin:150px 90px;transition:transform 1.6s var(--ease) .3s}
.js .viz-needle{transform:rotate(-58deg)}
.met.in .viz-needle{transform:rotate(0)}
.viz-hub{fill:#131315}

/* ============================ ABOUT / CEO ============================ */
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.ceo{margin:0}
.ceo-frame{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--ink-line);background:var(--ink-3)}
.ceo-img{width:100%;height:100%;object-fit:cover;opacity:.62;filter:grayscale(.3)}
.ceo-placeholder{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;
  background:linear-gradient(180deg,rgba(10,10,11,.3),rgba(10,10,11,.72));
}
.ceo-placeholder::before{
  content:"";position:absolute;inset:clamp(14px,2.5vw,26px);border:1px dashed rgba(234,231,225,.2);
}
.ceo-corner{position:absolute;width:16px;height:16px;border:1px solid var(--brass);opacity:.8}
.ceo-corner.tl{top:clamp(14px,2.5vw,26px);left:clamp(14px,2.5vw,26px);border-right:0;border-bottom:0}
.ceo-corner.tr{top:clamp(14px,2.5vw,26px);right:clamp(14px,2.5vw,26px);border-left:0;border-bottom:0}
.ceo-corner.bl{bottom:clamp(14px,2.5vw,26px);left:clamp(14px,2.5vw,26px);border-right:0;border-top:0}
.ceo-corner.br{bottom:clamp(14px,2.5vw,26px);right:clamp(14px,2.5vw,26px);border-left:0;border-top:0}
.ceo-ph-label{
  font-size:.78rem;font-weight:700;letter-spacing:.34em;text-transform:uppercase;color:var(--on-dark);
  padding-bottom:.7rem;border-bottom:1px solid var(--brass-line);
}
.ceo-ph-sub{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--on-dark-faint)}
.ceo figcaption{
  margin-top:1.2rem;display:flex;flex-direction:column;gap:.25rem;
  padding-top:1.2rem;border-top:1px solid var(--ink-line-soft);
}
.ceo-name{font-size:1.15rem;font-weight:700;letter-spacing:-.025em}
.ceo-role{font-size:.66rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}

.pull{margin:clamp(2rem,3.6vw,2.8rem) 0 0;padding-left:clamp(1.2rem,2.4vw,2rem);border-left:1px solid var(--brass-line)}
.pull p{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(1.1rem,1.9vw,1.5rem);line-height:1.45;letter-spacing:-.015em;color:var(--on-dark);
}
.pull footer{margin-top:.9rem;font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark-mute);display:flex;gap:.5rem}
.about-facts{display:flex;flex-wrap:wrap;gap:clamp(1.5rem,4vw,3.5rem);margin-top:clamp(2rem,3.5vw,2.8rem);padding-top:1.6rem;border-top:1px solid var(--ink-line-soft)}
.about-facts dt{font-size:.58rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--on-dark-faint);margin-bottom:.35rem}
.about-facts dd{font-size:.95rem;font-weight:500}

/* ============================ CLIENT TYPES ============================ */
.client-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.5rem,3vw,2.5rem)}
.client{position:relative;border:1px solid var(--paper-line);background:var(--paper);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.client:hover{transform:translateY(-5px);box-shadow:0 34px 70px -44px rgba(19,19,21,.45)}
.client-img{aspect-ratio:16/10}
.client-img img{width:100%;height:100%;object-fit:cover}
.client:hover .client-img img{transform:scale(1.045)}
.client-body{padding:clamp(1.6rem,3vw,2.4rem)}
.client-body h3{font-size:clamp(1.3rem,2.2vw,1.8rem);letter-spacing:-.035em;text-transform:uppercase;margin-bottom:.8rem}
.client-body>p{font-size:.96rem;color:var(--on-paper-mute);max-width:44ch}
.client-body .link-arrow{margin-top:1.6rem}

/* ============================ PRICING ============================ */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,1.8vw,1.6rem);align-items:stretch}
.plan{
  position:relative;display:flex;flex-direction:column;
  padding:clamp(1.8rem,2.8vw,2.5rem);
  border:1px solid var(--ink-line);background:linear-gradient(180deg,var(--ink-2),var(--ink));
  transition:transform .6s var(--ease),border-color .5s,box-shadow .6s var(--ease);
}
.plan:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.2)}
.plan-featured{
  border-color:var(--brass-line);
  background:linear-gradient(180deg,rgba(200,161,90,.09),var(--ink-2) 38%,var(--ink));
  box-shadow:0 46px 90px -56px rgba(200,161,90,.35);
  padding-top:clamp(2.4rem,3.4vw,3rem);
}
.plan-featured:hover{border-color:var(--brass)}
.plan-badge{
  position:absolute;top:0;left:50%;transform:translate(-50%,-50%);
  padding:.45rem 1rem;background:var(--brass);color:#0A0A0B;
  font-size:.56rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;
}
.plan-head{padding-bottom:1.5rem;border-bottom:1px solid var(--ink-line-soft)}
.plan-name{font-size:.68rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--on-dark-mute)}
.plan-featured .plan-name{color:var(--brass)}
.plan-price{
  margin-top:1.1rem;font-size:clamp(2.4rem,4.4vw,3.4rem);font-weight:700;letter-spacing:-.05em;
  line-height:1;display:flex;align-items:baseline;
}
.plan-price .cur{font-size:.44em;font-weight:500;margin-right:.14em;color:var(--on-dark-mute)}
.plan-price .per{font-size:.235em;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-faint);margin-left:.5em}
.plan-desc{margin-top:1rem;font-size:.92rem;color:var(--on-dark-mute);max-width:32ch}
.plan-inherit{
  margin-top:1.4rem;font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass);
}
.plan-list{margin:1.4rem 0 2rem;flex:1}
.plan-list li{
  position:relative;padding:.44rem 0 .44rem 1.6rem;font-size:.9rem;color:var(--on-dark);
}
.plan-list li::before{
  content:"";position:absolute;left:0;top:.95rem;width:9px;height:5px;
  border-left:1.4px solid var(--brass);border-bottom:1.4px solid var(--brass);
  transform:rotate(-45deg);
}
.price-note{
  margin-top:clamp(2rem,3.5vw,3rem);text-align:center;font-size:.8rem;letter-spacing:.06em;
  color:var(--on-dark-mute);
}

/* ============================ CASES ============================ */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.4vw,2rem)}
.case{margin:0}
.case-link{display:block;border:1px solid var(--paper-line);background:var(--paper);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.case-link:hover{transform:translateY(-5px);box-shadow:0 30px 60px -42px rgba(19,19,21,.4)}
.case-img{aspect-ratio:3/2;position:relative}
.case-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15)}
.case-link:hover .case-img img{transform:scale(1.05)}
.case-tag{
  position:absolute;top:0;left:0;padding:.55rem .75rem;background:var(--paper);
  font-size:.56rem;font-weight:700;letter-spacing:.2em;color:var(--on-paper);
}
.case-body{padding:clamp(1.3rem,2.2vw,1.8rem)}
.case-body h3{font-size:clamp(1.05rem,1.7vw,1.3rem);letter-spacing:-.03em}
.case-soon{
  display:inline-flex;align-items:center;gap:.5rem;margin-top:1.1rem;
  font-size:.6rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--on-paper-mute);
}
.case-soon i{width:5px;height:5px;border-radius:50%;background:var(--brass);animation:blink 2.4s infinite}

/* ============================ WHY ============================ */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ink-line-soft);border:1px solid var(--ink-line-soft)}
.why-card{
  background:var(--ink-2);padding:clamp(1.7rem,2.8vw,2.4rem);min-height:clamp(200px,20vw,240px);
  display:flex;flex-direction:column;transition:background-color .5s var(--ease)
}
.why-card:hover{background:var(--ink-3)}
.why-n{font-family:var(--serif);font-style:italic;font-weight:300;font-size:1.6rem;color:var(--brass);line-height:1;margin-bottom:clamp(2rem,3.6vw,3rem)}
.why-card h3{font-size:1.05rem;letter-spacing:.02em;text-transform:uppercase;margin:0 0 .7rem}
.why-card p{font-size:.92rem;color:var(--on-dark-mute)}

/* ============================ FAQ ============================ */
.faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.faq-list{border-top:1px solid var(--paper-line)}
.faq-item{border-bottom:1px solid var(--paper-line)}
.faq-item summary{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:1.35rem 0;cursor:pointer;list-style:none;
  font-size:clamp(1rem,1.4vw,1.14rem);font-weight:600;letter-spacing:-.02em;
  transition:color .3s;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:#8C6B2A}
.faq-item summary i{
  position:relative;flex:none;width:14px;height:14px;
}
.faq-item summary i::before,.faq-item summary i::after{
  content:"";position:absolute;background:var(--brass);transition:transform .45s var(--ease),opacity .3s;
}
.faq-item summary i::before{left:0;top:6.5px;width:14px;height:1.4px}
.faq-item summary i::after{left:6.5px;top:0;width:1.4px;height:14px}
.faq-item[open] summary i::after{transform:scaleY(0)}
.faq-item[open] summary{color:#8C6B2A}
.faq-body{overflow:hidden;padding-bottom:1.4rem;max-width:62ch}
.faq-body p{font-size:.95rem;line-height:1.68;color:var(--on-paper-mute)}
.faq-item[open] .faq-body{animation:faqIn .5s var(--ease)}
@keyframes faqIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ============================ CTA ============================ */
.cta{position:relative;padding:clamp(5rem,11vw,10rem) 0;overflow:hidden;background:var(--ink)}
.cta-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72}
.cta-veil{
  position:absolute;inset:0;
  background:radial-gradient(90% 75% at 50% 45%,rgba(10,10,11,.32),rgba(10,10,11,.9) 80%);
}
.cta-inner{position:relative;z-index:2;text-align:center;max-width:960px}
.cta-inner .label{justify-content:center}
.cta-title{
  font-size:clamp(2.1rem,5.4vw,4.5rem);letter-spacing:-.045em;line-height:1.02;margin-inline:auto;
  max-width:24ch;
}
.cta-copy{margin:clamp(1.5rem,3vw,2.2rem) auto 0;max-width:56ch;color:var(--on-dark-mute);font-size:clamp(1rem,.5vw + .9rem,1.14rem)}
.cta .btn{margin-top:clamp(2rem,4vw,2.8rem)}

/* ============================ CONTACT ============================ */
.contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.contact-details{margin-top:clamp(2.2rem,4vw,3rem);border-top:1px solid var(--ink-line-soft)}
.contact-details>div{display:flex;gap:1.5rem;padding:.95rem 0;border-bottom:1px solid var(--ink-line-soft)}
.contact-details dt{font-size:.58rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--on-dark-faint);min-width:6.5rem;padding-top:.22rem}
.contact-details dd{font-size:.98rem;font-weight:500}
.contact-details a{border-bottom:1px solid var(--brass-line);transition:color .3s,border-color .3s}
.contact-details a:hover{color:var(--brass)}

.contact-form{
  padding:clamp(1.6rem,3vw,2.6rem);border:1px solid var(--ink-line);
  background:linear-gradient(180deg,var(--ink-2),var(--ink));
}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.9rem,1.8vw,1.4rem)}
.field{margin-bottom:clamp(.9rem,1.8vw,1.3rem);display:flex;flex-direction:column}
.field label{
  font-size:.58rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--on-dark-faint);margin-bottom:.55rem;
}
.field input,.field select,.field textarea{
  width:100%;padding:.9rem .95rem;font-family:inherit;font-size:.94rem;color:var(--on-dark);
  background:rgba(255,255,255,.028);border:1px solid var(--ink-line);border-radius:0;
  transition:border-color .35s,background-color .35s;appearance:none;
}
.field textarea{resize:vertical;min-height:110px;line-height:1.6}
.field input::placeholder,.field textarea::placeholder{color:var(--on-dark-faint)}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(255,255,255,.18)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--brass);background:rgba(200,161,90,.045);
}
.field input:user-invalid,.field select:user-invalid{border-color:#B4593F}
.select-wrap{position:relative}
.select-wrap select{padding-right:2.6rem;cursor:pointer}
.select-wrap select option{background:var(--ink-2);color:var(--on-dark)}
.select-wrap svg{position:absolute;right:.9rem;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--on-dark-faint);pointer-events:none}
.cf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;margin-top:.6rem}
.cf-note{font-size:.78rem;color:var(--on-dark-faint)}
.cf-note a{color:var(--on-dark-mute);border-bottom:1px solid var(--brass-line)}
.cf-note a:hover{color:var(--brass)}
.cf-status{margin-top:1.2rem;font-size:.82rem;color:var(--brass);min-height:1.2em}
.cf-status[data-state="error"]{color:#D08A73}
.cf-status[data-state="sending"]{color:var(--on-dark-mute)}
.hp-field{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.btn[disabled]{opacity:.55;pointer-events:none}

/* ============================ FOOTER ============================ */
.site-footer{background:var(--ink);border-top:1px solid var(--ink-line-soft);padding:clamp(3rem,6vw,5rem) 0 2rem}
.foot-top{display:grid;grid-template-columns:1.6fr repeat(3,.8fr);gap:clamp(2rem,4vw,3.5rem)}
.foot-brand .logo{margin-bottom:1.2rem}
.foot-tag{font-size:.92rem;color:var(--on-dark-mute);max-width:32ch;margin-bottom:1.6rem}
.foot-col ul li{padding:.32rem 0}
.foot-col a{font-size:.92rem;color:var(--on-dark-mute);transition:color .3s,padding-left .35s var(--ease)}
.foot-col a:hover{color:var(--on-dark);padding-left:.3rem}
.foot-bottom{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  margin-top:clamp(2.5rem,5vw,4rem);padding-top:1.6rem;border-top:1px solid var(--ink-line-soft);
  font-size:.76rem;color:var(--on-dark-faint);
}
.foot-legal{display:flex;gap:1.6rem}
.foot-legal a:hover{color:var(--on-dark)}

/* ============================ WHATSAPP FLOAT ============================ */
.wa-float{
  position:fixed;right:clamp(1rem,2.5vw,2rem);bottom:clamp(1rem,2.5vw,2rem);z-index:95;
  display:flex;align-items:center;gap:.6rem;padding:.9rem 1.05rem;
  background:var(--paper);color:#0A0A0B;
  box-shadow:0 18px 44px -18px rgba(0,0,0,.75);
  font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  opacity:0;transform:translateY(20px) scale(.96);pointer-events:none;
  transition:opacity .5s var(--ease),transform .5s var(--ease),background-color .3s;
}
.wa-float.show{opacity:1;transform:none;pointer-events:auto}
.wa-float:hover{background:var(--brass)}
.wa-float svg{width:19px;height:19px;flex:none}
.wa-float-text{white-space:nowrap}
/* Desktop keeps the header CTA pinned instead — the float collided with
   the pricing buttons and footer legal links. */
@media (min-width:1025px){.wa-float{display:none}}

/* ============================ REVEAL ============================ */
.js .reveal{
  opacity:0;transform:translateY(22px);
  transition:opacity .95s var(--ease),transform .95s var(--ease);
  transition-delay:var(--d,0ms);
}
.reveal.in{opacity:1;transform:none}
.reveal-lines .line>span{will-change:transform}

/* ============================ RESPONSIVE ============================ */
@media (max-width:1180px){
  .foot-top{grid-template-columns:1fr 1fr 1fr;row-gap:2.5rem}
  .foot-brand{grid-column:1/-1}
  .hv-card-a{left:0}
  .hv-card-b{right:0}
}

@media (max-width:1024px){
  :root{--hdr:72px}
  .nav-desktop{display:none}
  .burger{display:block}
  .header-actions{margin-left:auto}
  .hero-grid{grid-template-columns:1fr;gap:clamp(2.5rem,6vw,4rem)}
  .hero-visual{max-width:540px}
  .hero-title{font-size:clamp(2.6rem,9vw,4.6rem)}
  .approach-grid,.about-grid,.faq-grid,.contact-grid,.funnel-grid,.research-head{grid-template-columns:1fr}
  .about-grid .ceo{max-width:420px;order:2}
  .about-grid .about-copy{order:1}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .res-grid{grid-template-columns:repeat(2,1fr)}
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .price-grid{grid-template-columns:1fr;max-width:560px;margin-inline:auto;gap:1.6rem}
  .plan-featured{order:-1}
  .case-grid{grid-template-columns:1fr 1fr}
  .research-figure .img-mask{aspect-ratio:16/9}
  .hero-rules{display:none}
}

@media (max-width:768px){
  .cap-list{justify-content:flex-start;gap:.7rem 1.4rem}
  .cap-list li{flex:0 1 auto;justify-content:flex-start}
  .cap-list li + li::before{display:none}
  .cap-list li:last-child{justify-content:flex-start}
  .client-grid{grid-template-columns:1fr}
  .met-grid{grid-template-columns:1fr}
  .case-grid{grid-template-columns:1fr;max-width:480px;margin-inline:auto}
  .header-actions .btn-light{display:none}
  .foot-top{grid-template-columns:1fr 1fr}
  .about-facts{gap:1.4rem 2.5rem}
  .fig-stamp{display:none}
}

@media (max-width:620px){
  .svc-grid{grid-template-columns:1fr}
  .res-grid{grid-template-columns:1fr}
  .why-grid{grid-template-columns:1fr}
  .cf-row{grid-template-columns:1fr;gap:0}
  .hv-card{position:relative;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:100%}
  .hv-card,.hv-chip,.hv-orbit{animation:none}
  .hv-frame{aspect-ratio:3/4}
  .hv-card-a,.hv-card-b{display:none}
  .hv-chip-a{top:auto;bottom:1rem;right:1rem}
  .hv-chip-b{left:1rem;bottom:1rem}
  .hero-ticker{margin-top:2rem}
  .hero-label{font-size:.58rem;letter-spacing:.18em;gap:.6rem;flex-wrap:wrap}
  .hero-label::before{width:16px}
  .wa-float-text{display:none}
  .wa-float{padding:1rem;border-radius:50%}
  .foot-bottom{flex-direction:column;align-items:flex-start}
  .fm-label{min-width:7.5rem;font-size:1rem}
  .contact-details>div{flex-direction:column;gap:.35rem}
  .cta-title{letter-spacing:-.035em}
}

/* ============================ REDUCED MOTION ============================ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
  .reveal{opacity:1;transform:none}
  .hero-title .line>span{transform:none}
  .spark-line,.viz-line,.viz-arc{stroke-dashoffset:0}
  .viz-bars rect,.viz-steps rect{transform:none}
  .viz-needle{transform:rotate(0)}
  .hvc-bars i::after{transform:scaleX(1)}
  .flow-fill,.proc-fill{transform:scaleY(1)}
  .fm-rule i{transform:scaleX(1)}
  .wa-float{opacity:1;transform:none;pointer-events:auto}
}

@media print{
  .site-header,.wa-float,.grain,.scroll-cue,.mobile-nav{display:none}
  body{background:#fff;color:#000}
}
