:root {
    --paper: #f5f3ee;
    --paper-2: #ece9e1;
    --ink: #11110f;
    --muted: #68675f;
    --line: rgba(17,17,15,.14);
    --line-dark: rgba(245,243,238,.16);
    --acid: #d7f36a;
    --blue: #5f7cff;
    --white: #ffffff;
    --dark: #11110f;
    --radius: 22px;
    --radius-lg: 34px;
    --container: 1240px;
    --ease: cubic-bezier(.2,.75,.2,1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.5; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
img { max-width: 100%; display: block; }
.container { width: min(calc(100% - 64px), var(--container)); margin: 0 auto; }
.site-shell { overflow: clip; }
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(245,243,238,.88); backdrop-filter: blur(18px); border-bottom: 1px solid transparent; transition: .3s var(--ease); }
.site-header.scrolled { border-color: var(--line); }
.nav-wrap { height: 82px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand { display:inline-flex; align-items:center; gap:10px; font-weight:800; letter-spacing:-.06em; }
.brand-mark { width:29px; height:29px; display:grid; place-items:center; border:2px solid var(--ink); border-radius:50%; font-size:13px; letter-spacing:-.04em; }
.brand-name { font-size:24px; line-height:1; }
.desktop-nav { display:flex; gap:28px; align-items:center; margin-left:auto; }
.desktop-nav a { color:var(--muted); font-size:13px; font-weight:600; transition:color .2s ease; }
.desktop-nav a:hover, .desktop-nav a.is-active { color:var(--ink); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:54px; padding:0 22px; border-radius:999px; font-size:13px; font-weight:750; transition:transform .25s var(--ease), background .25s ease, color .25s ease; }
.button:hover { transform:translateY(-2px); }
.button-dark { background:var(--ink); color:var(--paper); }
.button-dark:hover { background:#292925; }
.button-light { background:var(--paper); color:var(--ink); }
.button-small { min-height:44px; padding:0 18px; font-size:12px; }
.menu-toggle, .mobile-menu { display:none; }

.hero { padding:90px 0 110px; min-height:calc(100vh - 82px); display:flex; align-items:center; }
.hero-grid { display:grid; grid-template-columns:1.02fr .98fr; gap:70px; align-items:center; }
.eyebrow { display:inline-flex; align-items:center; gap:9px; text-transform:uppercase; letter-spacing:.14em; font-size:10px; font-weight:800; color:var(--muted); }
.eyebrow-dot { width:7px; height:7px; border-radius:50%; background:var(--blue); }
.hero h1 { font-size:clamp(52px,6.5vw,94px); line-height:.92; letter-spacing:-.075em; max-width:780px; margin:24px 0 30px; font-weight:780; }
h1 em, h2 em { font-style:normal; color:var(--muted); }
.hero-lead { max-width:590px; font-size:18px; line-height:1.6; color:#4e4d47; }
.hero-actions { display:flex; align-items:center; gap:26px; margin-top:34px; }
.text-link { display:inline-flex; gap:10px; align-items:center; font-size:13px; font-weight:750; }
.text-link span { transition:transform .2s ease; }
.text-link:hover span { transform:translateX(4px); }
.hero-proof { display:flex; align-items:center; gap:12px; margin-top:58px; color:#7b7971; font-size:10px; text-transform:uppercase; letter-spacing:.12em; font-weight:750; }
.hero-proof i { width:4px; height:4px; border-radius:50%; background:#b0aea5; }

.hero-visual { min-height:600px; position:relative; display:grid; place-items:center; }
.growth-orbit { width:min(560px, 100%); aspect-ratio:1; position:relative; display:grid; place-items:center; }
.orbit-ring { position:absolute; border:1px solid var(--line); border-radius:50%; }
.ring-one { inset:7%; animation:spin 30s linear infinite; }
.ring-two { inset:19%; border-style:dashed; animation:spin-reverse 38s linear infinite; }
.ring-three { inset:31%; }
.orbit-center { width:42%; aspect-ratio:1; border-radius:50%; background:var(--ink); color:var(--paper); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; box-shadow:0 25px 70px rgba(17,17,15,.16); position:relative; z-index:2; }
.orbit-kicker { font-size:9px; letter-spacing:.22em; opacity:.55; margin-bottom:14px; }
.orbit-center strong { font-size:23px; line-height:.9; letter-spacing:-.06em; }
.orbit-caption { margin-top:17px; font-size:9px; color:#aaa89f; }
.orbit-node { position:absolute; z-index:3; display:flex; flex-direction:column; gap:3px; padding:12px 14px; background:rgba(245,243,238,.9); border:1px solid var(--line); backdrop-filter:blur(10px); border-radius:14px; box-shadow:0 10px 30px rgba(17,17,15,.06); }
.orbit-node small { font-size:8px; color:#99978e; letter-spacing:.12em; }
.orbit-node strong { font-size:12px; letter-spacing:-.02em; }
.node-one { top:9%; left:19%; }
.node-two { top:23%; right:2%; }
.node-three { bottom:13%; right:16%; }
.node-four { bottom:18%; left:6%; }
.floating-metric { position:absolute; background:var(--white); border:1px solid var(--line); border-radius:15px; padding:13px 15px; box-shadow:0 15px 35px rgba(17,17,15,.08); display:flex; flex-direction:column; gap:4px; }
.floating-metric span { font-size:9px; color:var(--muted); text-transform:uppercase; letter-spacing:.09em; }
.floating-metric strong { font-size:18px; letter-spacing:-.04em; }
.metric-one { top:14%; left:-15%; }
.metric-two { bottom:13%; right:-15%; }

.section { padding:130px 0; }
.section-tension { border-top:1px solid var(--line); }
.split-grid { display:grid; grid-template-columns:1fr 1fr; gap:90px; }
.section-intro h2, .section-heading h2, .metrics-intro h2 { font-size:clamp(42px,5vw,72px); line-height:.96; letter-spacing:-.065em; margin:18px 0 0; max-width:650px; }
.tension-copy { padding-top:44px; max-width:540px; }
.tension-copy p { color:var(--muted); font-size:18px; line-height:1.65; margin:0 0 28px; }
.tension-copy p.large { color:var(--ink); font-size:26px; line-height:1.3; letter-spacing:-.03em; }

.section-system { background:var(--ink); color:var(--paper); }
.section-system .eyebrow, .section-system .section-heading p { color:#9a9992; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:50px; margin-bottom:70px; }
.section-heading p { max-width:330px; color:var(--muted); font-size:15px; line-height:1.6; }
.system-visual { position:relative; height:250px; display:flex; justify-content:space-between; align-items:center; }
.system-line { position:absolute; top:50%; left:5%; right:5%; height:1px; background:var(--line-dark); }
.system-line:after { content:""; position:absolute; top:-2px; left:0; width:25%; height:5px; border-radius:5px; background:var(--acid); }
.system-node { position:relative; width:150px; height:150px; border:1px solid var(--line-dark); background:var(--dark); border-radius:50%; display:flex; flex-direction:column; justify-content:center; align-items:center; z-index:2; transition:.35s var(--ease); }
.system-node:hover { transform:translateY(-8px); border-color:rgba(215,243,106,.5); }
.system-node span { font-size:9px; color:#797870; letter-spacing:.12em; }
.system-node strong { font-size:17px; letter-spacing:-.04em; margin-top:7px; }
.system-node small { font-size:9px; color:#8e8d86; margin-top:3px; text-transform:uppercase; letter-spacing:.1em; }
.system-node.node-profit { background:var(--acid); color:var(--ink); border-color:var(--acid); }
.system-node.node-profit small, .system-node.node-profit span { color:#5f6d2c; }

.section-services { background:var(--paper-2); }
.service-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.service-card { min-height:390px; padding:34px; border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--paper); display:flex; flex-direction:column; position:relative; overflow:hidden; transition:transform .35s var(--ease), box-shadow .35s ease; }
.service-card:hover { transform:translateY(-5px); box-shadow:0 20px 50px rgba(17,17,15,.07); }
.service-card-dark { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.service-number { font-size:10px; color:#9a9992; letter-spacing:.12em; }
.service-card h3 { font-size:31px; line-height:1; letter-spacing:-.055em; margin:34px 0 14px; }
.service-card p { max-width:450px; color:var(--muted); font-size:14px; line-height:1.65; margin:0; }
.service-card-dark p { color:#a5a39b; }
.service-card a { margin-top:auto; font-size:12px; font-weight:750; display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:17px; }
.service-card-dark a { border-color:var(--line-dark); }
.service-icon { position:absolute; right:34px; top:30px; }
.icon-bars { display:flex; align-items:flex-end; gap:5px; height:48px; }
.icon-bars i { display:block; width:7px; border-radius:8px; background:var(--acid); }
.icon-bars i:nth-child(1){height:18px}.icon-bars i:nth-child(2){height:31px}.icon-bars i:nth-child(3){height:25px}.icon-bars i:nth-child(4){height:46px}
.icon-grid { width:45px; display:grid; grid-template-columns:repeat(2,18px); gap:6px; }
.icon-grid i { aspect-ratio:1; border:1px solid var(--ink); border-radius:5px; }
.icon-grid i:nth-child(2){background:var(--blue);border-color:var(--blue)}.icon-grid i:nth-child(3){background:var(--ink)}.icon-grid i:nth-child(4){background:var(--acid);border-color:var(--acid)}
.icon-funnel { width:50px; display:flex; flex-direction:column; align-items:center; gap:5px; }
.icon-funnel span { display:block; height:7px; border-radius:10px; background:var(--ink); }
.icon-funnel span:nth-child(1){width:50px}.icon-funnel span:nth-child(2){width:35px}.icon-funnel span:nth-child(3){width:20px}
.icon-loop { font-size:52px; line-height:1; font-weight:300; color:var(--blue); }
.service-card-wide { grid-column:1/-1; min-height:320px; display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.service-wide-copy { display:flex; flex-direction:column; }
.service-wide-copy h3 { margin-top:22px; }
.analytics-art { position:relative; border-radius:20px; background:#e4e0d7; min-height:250px; overflow:hidden; display:flex; align-items:flex-end; padding:28px; }
.analytics-chart { width:100%; height:150px; display:flex; gap:8px; align-items:flex-end; }
.analytics-chart span { flex:1; background:var(--ink); border-radius:7px 7px 0 0; opacity:.9; }
.analytics-chart span:nth-child(1){height:32%}.analytics-chart span:nth-child(2){height:47%}.analytics-chart span:nth-child(3){height:40%}.analytics-chart span:nth-child(4){height:65%}.analytics-chart span:nth-child(5){height:78%;background:var(--blue)}.analytics-chart span:nth-child(6){height:100%;background:var(--acid)}
.analytics-label { position:absolute; top:22px; right:22px; display:flex; flex-direction:column; align-items:flex-end; }
.analytics-label small { font-size:8px; color:#77756e; letter-spacing:.13em; }
.analytics-label strong { font-size:25px; letter-spacing:-.05em; }

.section-metrics { background:var(--ink); color:var(--paper); }
.metrics-intro { text-align:center; }
.metrics-intro .eyebrow { color:#9a9992; }
.metrics-intro h2 { margin-left:auto; margin-right:auto; }
.metrics-intro p { color:#96948c; max-width:420px; margin:25px auto 0; }
.metric-flow { margin-top:80px; display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); }
.metric-flow > div { min-height:170px; display:flex; flex-direction:column; justify-content:center; align-items:center; border-right:1px solid var(--line-dark); }
.metric-flow > div:last-child { border-right:0; }
.metric-flow small { color:#7e7d76; font-size:9px; letter-spacing:.15em; }
.metric-flow strong { margin-top:13px; font-size:32px; letter-spacing:-.06em; }
.metric-flow > div:not(.metric-result) strong { color:var(--acid); }
.metric-result { background:rgba(215,243,106,.04); }
.target-note { max-width:620px; margin:24px auto 0; color:#77766f; font-size:10px; line-height:1.6; text-align:center; letter-spacing:.02em; }

.section-fit { border-bottom:1px solid var(--line); }
.fit-list { padding-top:12px; }
.fit-list > div { display:grid; grid-template-columns:40px 1fr; gap:14px; padding:25px 0; border-top:1px solid var(--line); }
.fit-list span { font-size:10px; color:#9a9992; }
.fit-list strong { font-size:18px; letter-spacing:-.03em; }
.fit-list p { grid-column:2; margin:0; color:var(--muted); font-size:14px; max-width:480px; }

.section-process { background:var(--paper-2); }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.process-step { min-height:240px; padding:30px 25px; border-right:1px solid var(--line); }
.process-step:last-child { border-right:0; }
.process-step > span { font-size:10px; color:#99978e; }
.process-step h3 { font-size:28px; letter-spacing:-.05em; margin:60px 0 12px; }
.process-step p { color:var(--muted); font-size:13px; line-height:1.6; max-width:230px; }
.section-cta { padding-top:0; background:var(--paper-2); }
.cta-panel { background:var(--ink); color:var(--paper); border-radius:var(--radius-lg); padding:65px; display:flex; align-items:flex-end; justify-content:space-between; gap:40px; }
.eyebrow-light { color:#9b9991; }
.cta-panel h2 { max-width:700px; font-size:clamp(40px,5vw,67px); line-height:.96; letter-spacing:-.065em; margin:20px 0 0; }

.site-footer { background:var(--ink); color:var(--paper); padding:70px 0 25px; }
.footer-grid { display:flex; justify-content:space-between; gap:50px; padding-bottom:70px; }
.footer-brand .brand-mark { border-color:var(--paper); }
.footer-tagline { color:#89877f; font-size:14px; max-width:250px; margin-top:22px; }
.footer-links { display:flex; gap:90px; }
.footer-links > div { display:flex; flex-direction:column; gap:10px; }
.footer-label { color:#65635d; text-transform:uppercase; font-size:9px; letter-spacing:.15em; margin-bottom:7px; }
.footer-links a { color:#c0beb7; font-size:12px; }
.footer-links a:hover { color:var(--paper); }
.footer-bottom { border-top:1px solid var(--line-dark); padding-top:22px; display:flex; justify-content:space-between; color:#65635d; font-size:10px; }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }
.reveal-delay { transition-delay:.12s; }
@keyframes spin { to { transform:rotate(360deg); } }
@keyframes spin-reverse { to { transform:rotate(-360deg); } }