:root{
  --bg:#0c0c0e;
  --ink:#f8f6f1;
  --muted:rgba(248,246,241,.52);
  --faint:rgba(248,246,241,.32);
  --line:rgba(248,246,241,.12);
  --gold:#c79a3c;
  --serif:"EB Garamond",Georgia,serif;
  --sans:"DM Sans",system-ui,sans-serif;
  --mono:"Fragment Mono",ui-monospace,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-weight:400;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;overflow-x:hidden;position:relative;
}
a{color:inherit;text-decoration:none}

/* atmosphere: soft gold glow + fine grain */
.glow{position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(75vw 55vh at 50% 112%, rgba(204,116,38,.10), transparent 62%),
    radial-gradient(55vw 45vh at 80% -8%, rgba(199,154,60,.08), transparent 70%);
}
.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* nav */
nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:26px clamp(24px,6vw,80px);
  transition:background .4s ease,backdrop-filter .4s ease,padding .4s ease;
}
nav.scrolled{background:rgba(12,12,14,.78);backdrop-filter:blur(14px);padding-top:18px;padding-bottom:18px}
.wordmark{font-family:var(--mono);font-size:13px;letter-spacing:.32em;text-transform:uppercase}
.wordmark a{color:inherit;text-decoration:none;transition:color .25s}
.wordmark a:hover{color:var(--gold)}
.wm-sep{margin:0 .5em;color:var(--muted)}
.navlinks{display:flex;gap:34px;font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.navlinks a{color:var(--muted);transition:color .25s}
.navlinks a:hover,.navlinks a.active{color:var(--ink)}
.navlinks .book{color:var(--gold)}
/* Services dropdown (used in nav across the site) */
.svc{position:relative;display:inline-block}
.svc>summary{list-style:none;cursor:pointer;color:var(--muted);transition:color .25s}
.svc>summary::-webkit-details-marker{display:none}
.svc>summary::after{content:"\25BE";margin-left:7px;color:var(--gold);font-size:.85em}
.svc[open]>summary,.svc>summary:hover{color:var(--ink)}
.svc-menu{position:absolute;top:calc(100% + 14px);left:0;display:flex;flex-direction:column;gap:2px;
  background:#141416;border:1px solid var(--line);border-radius:10px;padding:8px;min-width:210px;z-index:60;
  box-shadow:0 14px 34px rgba(0,0,0,.45)}
.svc-menu a{padding:10px 12px;border-radius:7px;color:var(--muted);white-space:nowrap;letter-spacing:.1em;transition:color .2s,background .2s}
.svc-menu a:hover{color:var(--ink);background:rgba(199,154,60,.08)}
@media(max-width:560px){.svc-menu{left:auto;right:0}}
@media(max-width:640px){
  nav{padding:18px clamp(14px,4vw,22px)}
  .wordmark{font-size:11px;letter-spacing:.14em}
  .navlinks{gap:clamp(11px,3.4vw,18px);font-size:10px;letter-spacing:.07em}
}

/* layout */
section{
  padding:clamp(44px,7vh,84px) clamp(24px,6vw,80px);
  max-width:1280px;margin:0 auto;
}
section.tight{padding-top:clamp(24px,3.5vh,46px);padding-bottom:clamp(24px,3.5vh,46px)}
.eyebrow{
  font-family:var(--mono);font-size:12px;letter-spacing:.28em;
  text-transform:uppercase;color:var(--gold);margin-bottom:0;
}
/* section eyebrow->title gap scales with title size */
.eyebrow + h2{margin-top:.2em}
/* hero eyebrow->title gap set per-page (scales with line count for even optical rhythm) */
.hero .eyebrow + h1{margin-top:var(--hgap,.14em)}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;line-height:1.02}
h1{font-size:clamp(2.9rem,9vw,7rem)}
h2{font-size:clamp(2.3rem,6.5vw,5rem)}
.lead{
  font-size:clamp(1.05rem,1.7vw,1.4rem);color:var(--muted);
  max-width:34ch;margin-top:18px;line-height:1.55;
}
.gold{color:var(--gold)}

/* hero */
.hero{min-height:80vh;display:flex;flex-direction:column;justify-content:center;position:relative}
.hero > *{position:relative;z-index:1}
.hero h1{max-width:16ch}
.hero-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:clamp(30px,4.5vw,64px);align-items:center;width:100%}
.hero-copy h1{font-size:clamp(2.5rem,5vw,4.2rem)}
.hero-chart{width:100%;margin:0}
.hero-chart .gx{font-size:11px}
@media(max-width:880px){
  .hero-grid{grid-template-columns:1fr;gap:clamp(28px,5vw,44px)}
  .hero-copy h1{font-size:clamp(2.9rem,9vw,5rem)}
  .hero-chart{max-width:540px}
}

/* about portrait — modest, text leads, photo close + top-aligned to headline */
.about-grid{grid-template-columns:auto 126px;justify-content:start;
  column-gap:clamp(22px,2.5vw,38px);align-items:start}
.about-grid .hero-copy{max-width:560px}
.about-grid .hero-copy h1{font-size:clamp(2.9rem,6.2vw,6rem)}
.about-grid .portrait{margin-top:var(--phototop,30px)}
.portrait{margin:0;width:100%;max-width:126px;position:relative}
.portrait img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:center 26%;
  display:block;border-radius:50%;
  filter:contrast(1.01);
  box-shadow:0 0 0 1px rgba(248,246,241,.09), 0 22px 44px -26px rgba(0,0,0,.65)}
.portrait::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 50% 42%, transparent 60%, rgba(12,12,14,.26))}
@media(max-width:880px){
  .about-grid{grid-template-columns:1fr;column-gap:0}
  .about-grid .portrait{margin-top:0}
  .portrait{max-width:105px}
}
.net{position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:100vw;height:100%;z-index:0;opacity:.6;pointer-events:none}
.net[data-dense]{opacity:.85}

/* cta link */
.cta{
  display:inline-flex;align-items:center;gap:.6em;margin-top:48px;
  font-family:var(--mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);border-bottom:1px solid var(--gold);padding-bottom:8px;width:fit-content;
  transition:gap .25s,color .25s;
}
.cta:hover{gap:1.1em;color:var(--gold)}
.cta .arw{color:var(--gold);font-family:var(--sans)}

/* lighter inline link variant (secondary CTAs) */
.cta-link{
  font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);white-space:nowrap;
  border-bottom:1px solid rgba(199,154,60,.4);padding-bottom:2px;
  transition:color .25s,border-color .25s;
}
.cta-link:hover{color:var(--ink);border-color:var(--gold)}
.cta-link .arw{color:var(--gold);font-family:var(--sans)}

/* statement */
.statement{text-align:left}
.statement h2{font-size:clamp(2.6rem,7.5vw,6rem);max-width:18ch}
.statement .dim{color:var(--muted)}

/* stages (homepage compact table) */
.stages{border-top:1px solid var(--line)}
.stage{
  border-bottom:1px solid var(--line);
  display:flex;align-items:baseline;gap:clamp(20px,5vw,80px);
  padding:clamp(26px,4vh,46px) 0;
}
.stage .num{font-family:var(--mono);font-size:12px;color:var(--gold);letter-spacing:.2em;min-width:48px}
.stage .name{font-family:var(--serif);font-size:clamp(2rem,5vw,3.6rem);line-height:1}
.stage .desc{font-size:1rem;color:var(--muted);margin-left:auto;max-width:30ch;text-align:right}
@media(max-width:680px){.stage{flex-wrap:wrap;gap:10px}.stage .desc{margin-left:0;text-align:left;flex-basis:100%}}

/* animated system flow */
.system-flow{margin-top:20px}
.rail{position:relative;height:44px;margin-bottom:14px}
.rail .line{position:absolute;top:50%;left:12.5%;right:12.5%;height:1px;background:rgba(248,246,241,.14)}
.rail .grow{position:absolute;top:50%;left:12.5%;height:1px;background:linear-gradient(90deg,transparent,var(--gold));width:0}
.rail.in .grow{animation:grow 2.4s cubic-bezier(.6,0,.2,1) forwards}
@keyframes grow{to{width:75%}}
.rail .dot{position:absolute;top:50%;width:11px;height:11px;border-radius:50%;background:var(--gold);transform:translate(-50%,-50%)}
.rail .dot::after{content:"";position:absolute;inset:-7px;border:1px solid rgba(199,154,60,.45);border-radius:50%;animation:ring 3.2s ease-out infinite}
.rail .pulse{position:absolute;top:50%;width:8px;height:8px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 14px 4px rgba(199,154,60,.85);animation:travel 4.6s cubic-bezier(.45,0,.55,1) infinite}
@keyframes ring{0%{transform:scale(.5);opacity:.9}70%,100%{transform:scale(2);opacity:0}}
@keyframes travel{0%{left:12.5%;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:87.5%;opacity:0}}
.flowcols{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.flowcols .num{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--gold)}
.flowcols .name{font-family:var(--serif);font-size:clamp(1.3rem,2.15vw,1.75rem);line-height:1;margin-top:10px;white-space:nowrap}
.flowcols p{color:var(--muted);font-size:.95rem;margin-top:12px}
@media(max-width:880px){
  .rail{display:none}
  .flowcols{grid-template-columns:1fr;gap:30px;text-align:left;border-left:1px solid var(--line);padding-left:24px}
  .flowcols .name{white-space:normal}
}

/* stage blocks (how-it-works) */
.block{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,7vw,110px);align-items:start;position:relative}
.block .head{position:relative}
.block .ghost{position:absolute;top:-.34em;left:-.04em;font-family:var(--serif);font-size:clamp(8rem,15vw,15rem);line-height:.8;color:rgba(199,154,60,.07);z-index:0;pointer-events:none;user-select:none}
.block .name{font-family:var(--serif);font-size:clamp(2.4rem,6vw,4.4rem);line-height:1;margin-top:18px;position:relative;z-index:1}
.block .eyebrow{position:relative;z-index:1}
.block .body p{color:var(--muted);font-size:1.08rem;margin-top:22px;max-width:42ch}
.block .out{color:var(--ink);font-size:1.08rem;margin-top:26px;border-left:1px solid var(--gold);padding-left:18px;max-width:42ch}
.block .body p.turn{font-family:var(--serif);font-weight:400;font-size:clamp(1.3rem,2.35vw,1.7rem);line-height:1.25;color:rgba(199,154,60,.78);margin-top:26px;max-width:42ch;position:relative;z-index:1}
@media(max-width:760px){.block{grid-template-columns:1fr;gap:8px}}

/* growth charts */
.gchart-wrap{margin-top:40px;max-width:780px}
.engine-charts{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:end;margin-top:40px}
.engine-charts .gchart-wrap{margin-top:0;max-width:none}
@media(max-width:720px){.engine-charts{grid-template-columns:1fr;gap:44px}}
.gchart{width:100%;height:auto;display:block;overflow:visible}
.gx{font-family:var(--mono);font-size:12px;letter-spacing:.12em;fill:var(--faint);text-transform:uppercase}
.gstart{font-family:var(--mono);font-size:12px;fill:var(--faint)}
.gend{font-family:"EB Garamond",Georgia,serif;font-size:30px;fill:var(--gold)}
.gline{stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.9s cubic-bezier(.6,0,.2,1) .1s}
.in .gline{stroke-dashoffset:0}
.garea,.gglow,.gcore,.gend,.gstart,.gpt{opacity:0;transition:opacity .9s ease}
.in .garea{opacity:1;transition-delay:.9s}
.in .gglow{opacity:1;transition-delay:1.5s;animation:gpulse 3.6s ease-in-out 2.3s infinite}
.in .gcore{opacity:1;transition-delay:1.7s}
.in .gend{opacity:1;transition-delay:1.85s}
.in .gstart{opacity:.9;transition-delay:.3s}
.in .gpt{opacity:1;transition-delay:var(--d)}
.gglow{transform-box:fill-box;transform-origin:center}
@keyframes gpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}
.gbar{transform:scaleY(0);transform-box:fill-box;transform-origin:bottom;transition:transform .9s cubic-bezier(.5,0,.2,1) var(--d)}
.in .gbar{transform:scaleY(1)}
.gbval{font-family:var(--mono);font-size:13px;letter-spacing:.05em;fill:var(--muted);opacity:0;transition:opacity .6s ease}
.in .gbval{opacity:1;transition-delay:.9s}
.leak{display:block;width:100%;height:190px;margin-top:44px}
.pulse{display:block;width:100%;height:150px;margin-top:32px}
.spark{height:72px}
.statbig{font-family:var(--serif);font-size:clamp(2.2rem,5vw,3.6rem);line-height:1;margin-top:14px}
.statcap{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:12px}
@media(prefers-reduced-motion:reduce){
  .gline{transition:none;stroke-dashoffset:0}
  .garea,.gglow,.gcore,.gend,.gstart,.gpt{opacity:1;transition:none}
  .gbar{transform:none;transition:none}
  .in .gglow{animation:none}
}

/* stats */
.stats{display:flex;flex-wrap:wrap;gap:clamp(40px,8vw,110px);margin-top:54px}
.stats.charts{gap:clamp(28px,5vw,56px);align-items:flex-start}
.stats.charts .statchart{flex:1;min-width:210px}
.stat .big{font-family:var(--serif);font-size:clamp(2.6rem,6vw,4.4rem);line-height:1}
.stat .cap{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:14px}

/* marquee quote */
.bigquote{font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem,5.2vw,3.9rem);line-height:1.12;letter-spacing:-.01em;max-width:20ch}
.cite{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:34px}

/* steps (book a call) */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,5vw,64px);margin-top:60px;border-top:1px solid var(--line);padding-top:48px}
.step .num{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--gold)}
.step h3{font-family:var(--serif);font-weight:400;font-size:1.7rem;margin-top:16px}
.step p{color:var(--muted);margin-top:12px;font-size:1rem}
@media(max-width:760px){.steps{grid-template-columns:1fr;gap:34px}}

/* scheduler embed */
.embed{margin-top:56px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.embed iframe{width:100%;height:680px;border:0;display:block}

/* handoff timeline */
.handoff-fig{margin-top:44px;max-width:620px}
.handoff-fig .gchart{width:100%;height:auto;display:block;overflow:visible}

/* close */
.close{min-height:58vh;display:flex;flex-direction:column;justify-content:center}
.close h2{max-width:none}

footer{
  border-top:1px solid var(--line);
  padding:48px clamp(24px,6vw,80px);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  max-width:1280px;margin:0 auto;
}
footer a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(248,246,241,.22);padding-bottom:1px;transition:color .2s,border-color .2s}
footer a:hover{color:var(--ink);border-color:var(--gold)}

/* one-line authority strip (hub + AWS hero) */
.authline{margin-top:26px;font-family:var(--mono);font-size:12px;letter-spacing:.07em;color:var(--faint);line-height:1.7;max-width:62ch}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
