:root {
  --forest: #0f2b1a;
  --forest-2: #163a24;
  --forest-3: #1d482c;
  --night: #091d11;
  --paper: #f7f4ea;
  --sage: #b9c9bb;
  --line: rgba(247,244,234,.18);
  --line-dark: rgba(15,43,26,.18);
  --lemon: #ffe45c;
  --lime: #b7f34a;
  --ink: #101a13;
  --display: "Fraunces", Georgia, serif;
  --sans: "DM Sans", sans-serif;
  --mono: "DM Mono", monospace;
  --max: 1320px;
  --ease: cubic-bezier(.22,1,.36,1);
  /* Motion system — durations */
  --dur-fast: .25s;
  --dur-normal: .5s;
  --dur-premium: .85s;
  --dur-ambient: 6s;
  /* Motion system — easings */
  --ease-out: cubic-bezier(.16,1,.3,1);
  --ease-inout: cubic-bezier(.65,0,.35,1);
  --ease-soft: cubic-bezier(.4,0,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--forest); overflow-x:clip; }
body { margin: 0; color: var(--paper); background: var(--forest); font-family: var(--sans); font-size:17px; line-height:1.6; letter-spacing:-.006em; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x:clip; }
p { line-height:1.6; }
body::before { content:""; position:fixed; inset:0; z-index:1000; pointer-events:none; opacity:.045; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E"); }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
img, svg { display:block; max-width:100%; }
h1,h2,h3,p { margin-top:0; }
:focus-visible { outline: 3px solid var(--lime); outline-offset: 5px; }
.scroll-progress { position:fixed; inset:0 auto auto 0; z-index:200; width:100%; height:3px; transform:scaleX(0); transform-origin:0 50%; background:linear-gradient(90deg, var(--lime), var(--lemon)); pointer-events:none; will-change:transform; }
.skip-link { position:fixed; top:10px; left:10px; z-index:2000; padding:12px 16px; color:var(--ink); background:var(--lime); transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.shell { width:min(calc(100% - 64px),var(--max)); margin-inline:auto; }

.site-header { position:fixed; inset:0 0 auto; z-index:100; transition:background .3s var(--ease-out), border-color .3s var(--ease-out), box-shadow .3s var(--ease-out); }
.site-header.is-scrolled { background:rgba(15,43,26,.88); border-bottom:1px solid var(--line); backdrop-filter:blur(18px); box-shadow:0 10px 30px -18px rgba(9,29,17,.8); }
@keyframes header-drop { from { opacity:0; transform:translateY(-100%); } to { opacity:1; transform:none; } }
.js .site-header { animation:header-drop .7s var(--ease-out) both; }
.nav-shell { height:84px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.brand { display:inline-flex; align-items:center; gap:10px; text-decoration:none; font-size:20px; font-weight:700; letter-spacing:-.04em; white-space:nowrap; }
.brand b { color:var(--sage); font-weight:500; }
/* Show the full logo lockup (checkmark + wordmark + tagline) at its natural ratio */
.brand-logo { height:68px; width:auto; display:block; transition:transform var(--dur-normal) var(--ease-out); }
.brand:hover .brand-logo { transform:scale(1.04); }
.site-footer .brand-logo { height:62px; }
.brand-symbol { width:36px; height:36px; overflow:visible; }
.brand-path { fill:none; stroke-width:8; stroke-linecap:round; }
.brand-path-light { stroke:var(--paper); }
.brand-path-yellow { stroke:var(--lemon); }
.brand-symbol circle, .hero-brand circle { fill:var(--lemon); }
.site-nav { display:flex; align-items:center; gap:30px; }
.site-nav > a:not(.button) { position:relative; color:var(--sage); text-decoration:none; font-size:14px; transition:color var(--dur-fast) var(--ease-out); }
.site-nav > a:not(.button)::after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:1px; background:var(--lemon); transition:right .25s var(--ease); }
.site-nav > a:not(.button):hover { color:var(--paper); }
.site-nav > a:not(.button):hover::after { right:0; }
.nav-toggle { display:none; width:48px; height:48px; padding:0; border:1px solid var(--line); background:transparent; border-radius:50%; }
.nav-toggle span { display:block; width:18px; height:1px; margin:5px auto; background:var(--paper); transition:transform .2s ease; }

.button { min-height:54px; display:inline-flex; align-items:center; justify-content:center; gap:14px; padding:0 24px; border:1px solid transparent; border-radius:999px; font-weight:700; text-decoration:none; cursor:pointer; transition:transform .25s var(--ease), background .2s ease, color .2s ease, box-shadow .25s var(--ease); }
.button:hover { transform:translateY(-3px); }
.button:active { transform:translateY(-1px) scale(.985); transition-duration:.08s; }
.button > span[aria-hidden] { transition:transform var(--dur-fast) var(--ease-out); }
.button:hover > span[aria-hidden] { transform:translate(2px,-2px); }
.button-primary { color:var(--ink); background:var(--lime); border-color:var(--lime); box-shadow:0 0 0 0 rgba(183,243,74,.25); }
.button-primary:hover { box-shadow:0 0 0 9px rgba(183,243,74,.12), 0 14px 28px -12px rgba(183,243,74,.5); }
.button-small { min-height:44px; padding-inline:19px; font-size:13px; }
.button-outline { color:var(--paper); background:transparent; border-color:rgba(247,244,234,.42); }
.button-outline:hover { color:var(--ink); background:var(--paper); }
.text-link { display:inline-flex; align-items:center; gap:10px; padding:6px 0; color:var(--paper); background:none; border:0; border-bottom:1px solid rgba(247,244,234,.45); text-decoration:none; cursor:pointer; transition:border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
.text-link > span[aria-hidden] { transition:transform var(--dur-fast) var(--ease-out); }
.text-link:hover { border-color:var(--lemon); }
.text-link:hover > span[aria-hidden] { transform:translateY(3px); }
.eyebrow, .section-index { margin:0; color:var(--lemon); font:500 11px/1.3 var(--mono); letter-spacing:.12em; text-transform:uppercase; }

.hero { position:relative; min-height:820px; padding-top:150px; padding-bottom:90px; display:flex; flex-direction:column; justify-content:center; }
.hero::before { content:""; position:absolute; width:56vw; aspect-ratio:1; right:-25vw; top:-20vw; border:1px solid rgba(255,228,92,.28); border-radius:50%; box-shadow:0 0 0 9vw rgba(255,228,92,.045),0 0 0 18vw rgba(255,228,92,.03); pointer-events:none; }

/* Orbiting dots that travel along the hero ring (ngrok-style) */
.hero-orbit { position:absolute; z-index:0; width:56vw; aspect-ratio:1; right:-25vw; top:-20vw; pointer-events:none; }
.hero-orbit-track { position:absolute; inset:0; border-radius:50%; border:1px solid rgba(255,228,92,.16); }
.hero-orbit-track-2 { inset:9vw; border-color:rgba(183,243,74,.16); }
.hero-orbit-dot { position:absolute; top:-4px; left:calc(50% - 4px); width:8px; height:8px; border-radius:50%; background:var(--lime); box-shadow:0 0 10px 2px rgba(183,243,74,.65); }
.hero-orbit-track-2 .hero-orbit-dot { background:var(--lemon); box-shadow:0 0 10px 2px rgba(255,228,92,.6); }
@keyframes hero-orbit-spin { to { transform:rotate(360deg); } }
.js .hero-orbit-track { animation:hero-orbit-spin 18s linear infinite; }
.js .hero-orbit-track-2 { animation-duration:26s; animation-direction:reverse; }

/* Hero entrance — plays once on load, GPU-friendly (opacity/transform only) */
@keyframes hero-rise { from { opacity:0; transform:translateY(30px) scale(.98); filter:blur(4px); } to { opacity:1; transform:none; filter:blur(0); } }
@keyframes hero-ring-in { from { opacity:0; transform:scale(.9); } to { opacity:1; transform:scale(1); } }
@keyframes hero-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
.js .hero::before { opacity:0; transform-origin:center; animation:hero-ring-in 1.4s var(--ease-out) .1s forwards, hero-float var(--dur-ambient) var(--ease-inout) 1.5s infinite; }
.js .hero > .reveal, .js .hero > .hero-bottom > .reveal { opacity:0; }
.js .hero-loaded .hero-brand { animation:hero-rise var(--dur-premium) var(--ease-out) .15s forwards; }
.js .hero-loaded .eyebrow { animation:hero-rise var(--dur-premium) var(--ease-out) .25s forwards; }
.js .hero-loaded .hero-title { animation:hero-rise var(--dur-premium) var(--ease-out) .38s forwards; }
.js .hero-loaded .hero-lede { animation:hero-rise var(--dur-premium) var(--ease-out) .58s forwards; }
.js .hero-loaded .hero-actions { animation:hero-rise var(--dur-premium) var(--ease-out) .72s forwards; }
.js .hero-loaded .hero-brand svg { animation:hero-float var(--dur-ambient) var(--ease-inout) 1.6s infinite; }
.hero-brand { position:absolute; top:120px; right:0; display:flex; align-items:center; gap:18px; color:var(--sage); font:11px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.hero-brand svg { width:34px; height:34px; padding:10px; background:rgba(255,228,92,.08); border:1px solid rgba(255,228,92,.28); border-radius:50%; box-sizing:content-box; }
.hero-brand .brand-path { stroke-width:8; }
.hero-brand span { padding:7px 14px; border:1px solid var(--line); border-radius:999px; background:rgba(15,43,26,.4); font-size:10px; }
.hero .eyebrow { margin-bottom:26px; }
.hero-title { max-width:1120px; margin:0; font:600 clamp(52px,6.4vw,98px)/1 var(--display); letter-spacing:-.028em; font-variation-settings:"SOFT" 62,"WONK" 1; }
.cloud { position:relative; display:inline-block; z-index:0; color:var(--ink); font-family:var(--display); font-variation-settings:"SOFT" 100,"WONK" 1; letter-spacing:-.025em; }
.cloud::before { content:""; position:absolute; z-index:-1; inset:-.08em -.18em -.1em; background:var(--lemon); border-radius:48% 52% 44% 56% / 58% 45% 55% 42%; transform:rotate(-1.5deg); }
.cloud-hero { display:inline-block; margin:.3em 0 0; font-size:.5em; line-height:1.12; vertical-align:top; transform:translateY(var(--parallax-y,0)) rotate(-1deg); }
.cloud-hero::before { inset:-.05em -.28em -.07em; border-radius:999px; transform:rotate(-1deg); }
.mobile-break { display:none; }
.hero-bottom { margin-top:55px; display:grid; grid-template-columns:minmax(300px,580px) 1fr; gap:70px; align-items:end; }
.hero-lede { margin:0; color:var(--sage); font-size:clamp(19px,1.7vw,23px); line-height:1.55; letter-spacing:-.01em; }
.hero-actions { display:flex; align-items:center; justify-content:flex-end; gap:25px; flex-wrap:wrap; }

.promise-strip { background:var(--night); }
.promise-grid { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:40px; padding-top:60px; }
/* The connecting track that steps link along */
.promise-grid::before { content:""; position:absolute; left:0; right:0; top:16px; height:2px; background:var(--line); border-radius:2px; }
/* The green "link" line that draws across as steps activate */
.promise-grid::after { content:""; position:absolute; left:0; top:16px; height:2px; width:0; background:linear-gradient(90deg, var(--lime), var(--lemon)); border-radius:2px; box-shadow:0 0 8px rgba(183,243,74,.45); }
.js .promise-grid.is-visible::after { animation:promise-link 2.6s var(--ease-out) .15s forwards; }
@keyframes promise-link { from { width:0; } to { width:100%; } }

.promise-grid p { position:relative; min-height:96px; margin:0; padding:44px 0 44px; display:flex; align-items:flex-start; gap:16px; color:var(--paper); font-size:20px; line-height:1.4; letter-spacing:-.015em; }
/* A node dot on the track above each step */
.promise-grid p::before { content:""; position:absolute; left:0; top:-52px; width:14px; height:14px; border-radius:50%; background:var(--forest-2); border:2px solid var(--line); transition:background .35s var(--ease-out), border-color .35s var(--ease-out), box-shadow .35s var(--ease-out), transform .35s var(--ease-out); }
.promise-grid strong { color:var(--lemon); font:14px var(--mono); }

/* Sequential, linked step reveal */
.js .promise-grid.reveal { opacity:1; transform:none; }
.js .promise-grid p { opacity:0; transform:translateY(24px); transition:opacity .55s var(--ease-out), transform .55s var(--ease-out); }
.js .promise-grid.is-visible p { opacity:1; transform:none; }
.js .promise-grid.is-visible p:nth-child(1) { transition-delay:.25s; }
.js .promise-grid.is-visible p:nth-child(2) { transition-delay:.9s; }
.js .promise-grid.is-visible p:nth-child(3) { transition-delay:1.55s; }
.js .promise-grid.is-visible p:nth-child(4) { transition-delay:2.2s; }
/* Each node lights up green as the link line reaches it */
.js .promise-grid.is-visible p::before { animation:promise-node .5s var(--ease-out) forwards; }
.js .promise-grid.is-visible p:nth-child(1)::before { animation-delay:.3s; }
.js .promise-grid.is-visible p:nth-child(2)::before { animation-delay:.95s; }
.js .promise-grid.is-visible p:nth-child(3)::before { animation-delay:1.6s; }
.js .promise-grid.is-visible p:nth-child(4)::before { animation-delay:2.25s; }
@keyframes promise-node { from { background:var(--forest-2); border-color:var(--line); box-shadow:0 0 0 0 rgba(183,243,74,0); transform:scale(1); } to { background:var(--lime); border-color:var(--lime); box-shadow:0 0 0 6px rgba(183,243,74,.14); transform:scale(1.15); } }

.assessment-section { padding-block:150px; display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(60px,9vw,130px); align-items:start; }
.assessment-intro { position:sticky; top:135px; }
.assessment-intro h2, .section-heading h2, .audit-copy h2, .operations-copy h2 { margin:22px 0; font:600 clamp(38px,4vw,60px)/1.04 var(--display); letter-spacing:-.024em; }
.assessment-intro > p:not(.eyebrow), .section-heading > p:not(.section-index), .audit-copy > p:not(.section-index), .operations-copy > p:not(.section-index) { color:var(--sage); font-size:17px; line-height:1.65; letter-spacing:-.005em; }
.assessment-proof { display:flex; gap:12px; align-items:center; margin-top:35px; color:var(--sage); font:12px var(--mono); }
.assessment-proof span { width:9px; height:9px; background:var(--lemon); border-radius:50%; box-shadow:0 0 0 6px rgba(255,228,92,.13); }
.assessment-card { min-height:610px; padding:32px; color:var(--paper); background:var(--forest-3); border:1px solid rgba(255,228,92,.56); border-radius:26px; box-shadow:18px 18px 0 var(--night); transition:transform var(--dur-normal) var(--ease-out), box-shadow var(--dur-normal) var(--ease-out); }
.assessment-card:hover { transform:translateY(-4px); box-shadow:22px 24px 0 var(--night); }
.assessment-topline { display:flex; justify-content:space-between; align-items:center; padding-bottom:22px; border-bottom:1px solid var(--line); color:var(--sage); font:11px var(--mono); text-transform:uppercase; letter-spacing:.07em; }
.progress { display:flex; gap:7px; }
.progress i { width:42px; height:3px; background:rgba(247,244,234,.16); border-radius:3px; transition:background .3s ease; }
.progress i.is-active { background:var(--lemon); }
.assessment-step { display:none; margin:0; padding:30px 0 0; border:0; }
.assessment-step.is-active { display:block; animation:step-in .45s var(--ease); }
.assessment-step legend { width:100%; margin-bottom:26px; font:600 clamp(30px,3vw,42px)/1.12 var(--display); letter-spacing:-.02em; }
.answer-list { display:grid; gap:10px; }
.answer-list button { min-height:62px; width:100%; padding:0 18px; display:flex; align-items:center; justify-content:space-between; gap:15px; color:var(--paper); background:transparent; border:1px solid var(--line); border-radius:12px; text-align:left; cursor:pointer; transition:transform .22s var(--ease),border-color .2s ease,background .2s ease; }
.answer-list button:hover { transform:translateX(5px); border-color:var(--lemon); background:rgba(255,228,92,.08); }
.answer-list button b { color:var(--lemon); font:11px var(--mono); }
.assessment-result { padding:22px; background:var(--lemon); color:var(--ink); border-radius:18px 24px 16px 26px; }
.assessment-result span { font:10px var(--mono); text-transform:uppercase; letter-spacing:.08em; }
.assessment-result strong { display:block; margin:8px 0 10px; font:650 27px/1.1 var(--display); }
.assessment-result p { margin:0; font-size:14px; line-height:1.45; }
.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:24px; }
.contact-fields label { display:grid; gap:8px; color:var(--sage); font-size:12px; }
.contact-fields small { opacity:.7; }
.contact-fields input { width:100%; height:52px; padding:0 15px; color:var(--paper); background:rgba(15,43,26,.5); border:1px solid var(--line); border-radius:10px; outline:none; }
.contact-fields input:focus { border-color:var(--lime); }
.contact-fields input:user-invalid { border-color:#ff9a86; }
.field-wide { grid-column:1/-1; }
.form-actions { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:24px; }
.back-button { color:var(--sage); background:none; border:0; cursor:pointer; }
.form-note { margin:16px 0 0; color:var(--sage); font:10px var(--mono); text-align:right; }
.assessment-success { display:none; min-height:510px; padding:70px 20px; place-items:center; align-content:center; text-align:center; }
.assessment-success.is-active { display:grid; animation:step-in .5s var(--ease); }
.success-mark { width:72px; height:72px; display:grid; place-items:center; margin-bottom:25px; color:var(--ink); background:var(--lemon); border-radius:50%; font-size:30px; }
.assessment-success h3 { margin-bottom:14px; font:600 42px/1 var(--display); }
.assessment-success p { max-width:520px; color:var(--sage); line-height:1.55; }

.problem-section { padding-block:150px; color:var(--ink); background:
    radial-gradient(120% 90% at 12% 0%, rgba(183,243,74,.18), rgba(183,243,74,0) 55%),
    radial-gradient(120% 100% at 100% 30%, rgba(29,72,44,.1), rgba(29,72,44,0) 50%),
    linear-gradient(180deg, #eef4ea 0%, var(--paper) 60%); }
.problem-section .section-index { color:var(--forest-2); }
.statement { max-width:980px; margin:50px 0 96px; font:600 clamp(32px,3.6vw,52px)/1.18 var(--display); letter-spacing:-.02em; }
.cloud-major { color:var(--paper); white-space:nowrap; padding:0 .1em; margin-right:.28em; }
.cloud-major::before { background:var(--forest-2); inset:-.1em -.22em -.12em; border-radius:46% 54% 46% 54% / 52% 48% 52% 48%; }
.problem-grid { display:grid; grid-template-columns:1fr 1fr; border-block:1px solid var(--line-dark); }
.workflow-noise, .signal-list { min-height:480px; padding:48px 48px 48px 0; }
.signal-list { padding-left:60px; padding-right:0; border-left:1px solid var(--line-dark); }
.problem-grid h3 { margin-bottom:40px; font-size:22px; letter-spacing:-.03em; }
.noise-field { display:flex; flex-wrap:wrap; gap:10px; }
.noise-field span { position:relative; padding:13px 20px; border:1px solid var(--forest-2); border-radius:999px; color:var(--paper); background:var(--forest-2); font:15px var(--mono); transition:transform var(--dur-normal) var(--ease-out); }
/* Animated green line travelling around each pill's border */
@property --noise-angle { syntax:"<angle>"; initial-value:0deg; inherits:false; }
.noise-field span::before { content:""; position:absolute; inset:-1px; border-radius:999px; padding:1.5px; pointer-events:none; opacity:0;
  background:conic-gradient(from var(--noise-angle), transparent 0deg, transparent 250deg, var(--lime) 300deg, var(--forest-2) 330deg, transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite:exclude; }
@keyframes noise-spin { to { --noise-angle:360deg; } }
.js .noise-field.is-visible span::before { opacity:1; animation:noise-spin 3.2s linear infinite; }
.js .noise-field.is-visible span:nth-child(2)::before { animation-delay:-.4s; }
.js .noise-field.is-visible span:nth-child(3)::before { animation-delay:-.8s; }
.js .noise-field.is-visible span:nth-child(4)::before { animation-delay:-1.2s; }
.js .noise-field.is-visible span:nth-child(5)::before { animation-delay:-1.6s; }
.js .noise-field.is-visible span:nth-child(6)::before { animation-delay:-2s; }
.js .noise-field.is-visible span:nth-child(7)::before { animation-delay:-2.4s; }
.noise-field span:hover { transform:translateY(-2px); }
.signal-list article { position:relative; display:grid; grid-template-columns:44px 1fr; gap:18px; padding:20px 0; }
/* Base connector track */
.signal-list article::after { content:""; position:absolute; left:21px; top:65px; width:2px; height:calc(100% - 45px); background:var(--line-dark); border-radius:2px; overflow:hidden; }
.signal-list article:last-child::after { display:none; }
/* Traveling "current" pulse that flows down each connector */
.signal-list article::before { content:""; position:absolute; left:20px; top:65px; width:4px; height:calc(100% - 45px); border-radius:4px; pointer-events:none; opacity:0;
  background:linear-gradient(180deg, rgba(183,243,74,0) 0%, rgba(183,243,74,0) 30%, var(--lime) 50%, rgba(183,243,74,0) 70%, rgba(183,243,74,0) 100%);
  background-size:100% 260%; background-position:0 -160%; filter:drop-shadow(0 0 5px rgba(183,243,74,.7)); }
.signal-list article:last-child::before { display:none; }
.signal-list article > b { position:relative; z-index:1; width:44px; height:44px; display:grid; place-items:center; color:var(--paper); background:var(--forest-2); border-radius:50%; font:12px var(--mono); transition:background .4s var(--ease-out), color .4s var(--ease-out), box-shadow .4s var(--ease-out), transform .4s var(--ease-out); }
.signal-list article:last-child > b { color:var(--paper); background:var(--forest-2); }

/* Play the current + node light-up when the list scrolls into view (loops) */
@keyframes signal-current { 0% { background-position:0 -160%; opacity:0; } 12% { opacity:1; } 60% { opacity:1; } 100% { background-position:0 160%; opacity:0; } }
@keyframes signal-node-pulse { 0%,100% { background:var(--forest-2); color:var(--paper); box-shadow:0 0 0 0 rgba(183,243,74,0); transform:scale(1); } 45% { background:var(--lime); color:var(--ink); box-shadow:0 0 0 8px rgba(183,243,74,.16); transform:scale(1.08); } }
.js .signal-list.is-visible article:not(:last-child)::before { animation:signal-current 3s var(--ease-inout) infinite; }
.js .signal-list.is-visible article:nth-child(1)::before { animation-delay:0s; }
.js .signal-list.is-visible article:nth-child(2)::before { animation-delay:1s; }
.js .signal-list.is-visible article:nth-child(1) > b { animation:signal-node-pulse 3s var(--ease-inout) infinite; animation-delay:.2s; }
.js .signal-list.is-visible article:nth-child(2) > b { animation:signal-node-pulse 3s var(--ease-inout) infinite; animation-delay:1.2s; }
/* Final node lights up green as the current arrives */
.js .signal-list.is-visible article:last-child > b { animation:signal-node-pulse 3s var(--ease-inout) infinite; animation-delay:2.2s; }
.signal-list article strong { font-size:19px; }
.signal-list article p { margin:5px 0 0; color:rgba(16,26,19,.6); }

.case-study-section { position:relative; padding-block:150px; overflow:hidden; background:var(--forest-2); border-bottom:1px solid var(--line); }
.case-study-section::before { content:""; position:absolute; width:680px; height:680px; right:-280px; top:120px; border:1px solid rgba(255,228,92,.16); border-radius:50%; box-shadow:0 0 0 110px rgba(255,228,92,.018),0 0 0 220px rgba(255,228,92,.012); pointer-events:none; }
.case-study-heading { display:grid; grid-template-columns:.46fr 1.25fr .65fr; gap:45px; align-items:start; margin-bottom:90px; }
.case-study-heading h2 { max-width:830px; margin:0; font:600 clamp(40px,4.6vw,70px)/1.02 var(--display); letter-spacing:-.026em; }
.case-study-heading > p:last-child { margin:0; color:var(--sage); font-size:17px; line-height:1.65; letter-spacing:-.005em; }
.cloud-case { display:block; width:max-content; margin-top:.24em; color:var(--ink); font-size:.72em; line-height:1.15; white-space:nowrap; padding:0 .12em; }
.cloud-case::before { inset:-.1em -.34em -.14em; border-radius:47% 53% 46% 54% / 54% 46% 52% 48%; }
.case-study { position:relative; display:grid; grid-template-columns:1.05fr .95fr; border:1px solid rgba(255,228,92,.38); background:var(--night); transition:border-color var(--dur-normal) var(--ease-out), box-shadow var(--dur-normal) var(--ease-out); }
.case-study:hover { border-color:rgba(255,228,92,.65); box-shadow:0 30px 60px -30px rgba(9,29,17,.7); }
.case-copy { padding:clamp(38px,5vw,72px); }
.case-brandline { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-bottom:32px; border-bottom:1px solid var(--line); }
.case-logo { width:190px; min-height:62px; display:grid; place-items:center; padding:10px 14px; background:#fffaf8; border-radius:7px; }
.case-logo img { width:100%; height:auto; }
.case-status { display:inline-flex; align-items:center; gap:9px; color:var(--sage); font:10px var(--mono); letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.case-status i { width:8px; height:8px; background:var(--lime); border-radius:50%; box-shadow:0 0 0 6px rgba(183,243,74,.12); }
.case-kicker { margin:42px 0 15px; color:var(--lemon); font:500 10px var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.case-copy > h3 { max-width:650px; margin:0; font:600 clamp(36px,3.9vw,58px)/1.02 var(--display); letter-spacing:-.026em; }
.case-summary { max-width:640px; margin:28px 0 45px; color:var(--sage); font-size:17px; line-height:1.65; letter-spacing:-.005em; }
.case-agent-list { border-top:1px solid var(--line); }
.case-agent-list article { display:grid; grid-template-columns:52px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid var(--line); }
.case-agent-list b { width:42px; height:42px; display:grid; place-items:center; color:var(--ink); background:var(--lemon); border-radius:50%; font:11px var(--mono); transition:transform var(--dur-normal) var(--ease-out); }
.case-agent-list article:hover b { transform:scale(1.1) rotate(-4deg); }
.case-agent-list h4 { margin:0 0 7px; font:600 21px/1.1 var(--display); letter-spacing:-.025em; }
.case-agent-list p { margin:0; color:var(--sage); font-size:14px; line-height:1.55; }
.case-actions { display:flex; align-items:center; gap:28px; margin-top:38px; flex-wrap:wrap; }
.case-link { display:inline-flex; align-items:center; gap:10px; color:var(--paper); text-decoration:none; border-bottom:1px solid rgba(247,244,234,.45); padding:7px 0; }
.case-link:hover { color:var(--lemon); }
.case-disclosure { margin:26px 0 0; color:rgba(185,201,187,.68); font:10px/1.55 var(--mono); }
.case-visual { position:relative; min-height:790px; display:grid; place-items:center; overflow:hidden; background:var(--lemon); }
.case-visual::before { content:""; position:absolute; width:570px; height:570px; border:1px solid rgba(16,26,19,.18); border-radius:50%; box-shadow:0 0 0 80px rgba(16,26,19,.035),0 0 0 160px rgba(16,26,19,.025); }
.case-phone { position:relative; z-index:2; width:min(57%,340px); margin:0; padding:10px; overflow:hidden; background:#fffaf8; border:2px solid var(--ink); border-radius:36px; box-shadow:20px 24px 0 rgba(16,26,19,.16); transform:rotate(2deg); transition:transform .5s var(--ease); }
.case-visual:hover .case-phone { transform:rotate(0deg) translateY(-8px); }
.case-phone-top { height:29px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 6px 7px; color:rgba(16,26,19,.55); font:8px var(--mono); }
.case-phone-top span { width:8px; height:8px; background:#ad3959; border-radius:50%; }
.case-phone-top i { justify-self:end; width:16px; height:4px; border-radius:4px; background:rgba(16,26,19,.18); }
.case-phone img { width:100%; aspect-ratio:390/844; object-fit:cover; object-position:top; border-radius:22px; border:1px solid rgba(16,26,19,.12); }
.case-phone figcaption { display:flex; justify-content:space-between; gap:10px; padding:12px 5px 3px; color:rgba(16,26,19,.65); font:8px var(--mono); text-transform:uppercase; }
.case-phone figcaption strong { color:var(--ink); font-weight:500; }
.case-orbit { position:absolute; z-index:3; width:230px; padding:18px; color:var(--paper); background:var(--forest-2); border:1px solid rgba(247,244,234,.28); border-radius:17px; box-shadow:0 15px 35px rgba(16,26,19,.18); }
.case-orbit span, .case-orbit strong { display:block; }
.case-orbit span { margin-bottom:9px; color:var(--lemon); font:10px var(--mono); text-transform:uppercase; letter-spacing:.08em; }
.case-orbit strong { font-size:14px; }
.case-orbit i { position:absolute; width:10px; height:10px; background:var(--lime); border-radius:50%; box-shadow:0 0 0 7px rgba(183,243,74,.14); }
.case-orbit-content { left:4%; top:17%; transform:translateY(var(--parallax-y,0)) rotate(-3deg); }
.case-orbit-content i { right:18px; top:18px; }
.case-orbit-leads { right:3%; bottom:17%; transform:translateY(var(--parallax-y,0)) rotate(3deg); }
.case-orbit-leads i { left:18px; bottom:-34px; }

.legal-case-study { position:relative; display:grid; grid-template-columns:.78fr 1.22fr; margin-top:34px; border:1px solid rgba(255,228,92,.38); background:var(--forest-3); transition:border-color var(--dur-normal) var(--ease-out), box-shadow var(--dur-normal) var(--ease-out); }
.legal-case-study:hover { border-color:rgba(255,228,92,.65); box-shadow:0 30px 60px -30px rgba(9,29,17,.7); }
.legal-portrait-panel { position:relative; min-height:760px; display:grid; place-items:center; padding:clamp(40px,5vw,72px); overflow:hidden; color:var(--ink); background:var(--paper); }
.legal-portrait-panel::before { content:"CASE / 02"; position:absolute; top:28px; left:30px; color:rgba(16,26,19,.5); font:9px var(--mono); letter-spacing:.12em; }
.legal-portrait-panel::after { content:""; position:absolute; width:480px; height:480px; left:-260px; bottom:-250px; border:1px solid rgba(15,43,26,.18); border-radius:50%; box-shadow:0 0 0 70px rgba(15,43,26,.025),0 0 0 140px rgba(15,43,26,.018); }
.legal-portrait { position:relative; z-index:2; width:min(100%,360px); margin:0; padding:13px; background:#fff; border:1px solid var(--line-dark); box-shadow:17px 20px 0 var(--lemon); transform:rotate(-1.5deg); transition:transform .5s var(--ease); }
.legal-case-study:hover .legal-portrait { transform:rotate(0deg) translateY(-7px); }
.legal-portrait img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:54% 50%; filter:saturate(.82) contrast(1.04); }
.legal-portrait figcaption { display:grid; gap:5px; padding:17px 8px 6px; }
.legal-portrait figcaption strong { font:600 24px/1.08 var(--display); letter-spacing:-.02em; }
.legal-portrait figcaption span { color:rgba(16,26,19,.62); font:9px/1.45 var(--mono); text-transform:uppercase; letter-spacing:.05em; }
.legal-proof-note { position:absolute; z-index:3; right:4%; bottom:9%; width:240px; padding:18px 20px; color:var(--paper); background:var(--forest-2); border-radius:16px 20px 15px 23px; box-shadow:0 17px 35px rgba(16,26,19,.18); transform:translateY(var(--parallax-y,0)) rotate(2deg); }
.legal-proof-note span { display:block; margin-bottom:8px; color:var(--lemon); font:9px var(--mono); text-transform:uppercase; letter-spacing:.08em; }
.legal-proof-note strong { display:block; font:600 17px/1.15 var(--display); }
.legal-case-copy { padding:clamp(38px,5vw,72px); }
.legal-case-topline { display:flex; align-items:center; justify-content:space-between; gap:22px; padding-bottom:27px; border-bottom:1px solid var(--line); }
.legal-case-topline p { margin:0; color:var(--lemon); font:10px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.legal-case-topline > span { display:inline-flex; align-items:center; gap:9px; color:var(--sage); font:9px var(--mono); text-transform:uppercase; letter-spacing:.08em; white-space:nowrap; }
.legal-case-topline i { width:8px; height:8px; background:var(--lime); border-radius:50%; box-shadow:0 0 0 6px rgba(183,243,74,.12); }
.legal-case-copy > h3 { max-width:760px; margin:42px 0 0; font:600 clamp(36px,4vw,60px)/1.02 var(--display); letter-spacing:-.026em; }
.cloud-legal { color:var(--ink); font-size:.72em; line-height:.95; white-space:nowrap; }
.cloud-legal::before { background:var(--lemon); inset:-.09em -.2em -.12em; }
.legal-case-summary { max-width:720px; margin:31px 0 42px; color:var(--sage); font-size:17px; line-height:1.65; letter-spacing:-.005em; }
.legal-workflows { border-top:1px solid var(--line); }
.legal-workflows article { display:grid; grid-template-columns:52px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid var(--line); }
.legal-workflows b { width:42px; height:42px; display:grid; place-items:center; color:var(--ink); background:var(--lemon); border-radius:50%; font:11px var(--mono); transition:transform var(--dur-normal) var(--ease-out); }
.legal-workflows article:hover b { transform:scale(1.1) rotate(-4deg); }
.legal-workflows h4 { margin:0 0 7px; font:600 22px/1.1 var(--display); letter-spacing:-.025em; }
.legal-workflows p { margin:0; color:var(--sage); font-size:14px; line-height:1.55; }
.legal-guardrails { display:flex; flex-wrap:wrap; gap:8px; margin:28px 0; }
.legal-guardrails span { padding:9px 12px; color:var(--paper); border:1px solid rgba(247,244,234,.25); border-radius:999px; font:9px var(--mono); text-transform:uppercase; letter-spacing:.04em; }
.legal-case-copy .case-disclosure { max-width:740px; }

.approach-section { padding-block:150px; background:var(--night); }
.section-heading { display:grid; grid-template-columns:.5fr 1.25fr .65fr; gap:45px; align-items:start; margin-bottom:80px; }
.section-heading h2 { margin:0; }
.cloud-dark { margin-top:.16em; color:var(--ink); font-size:.7em; white-space:nowrap; }
.decision-rail { border-top:1px solid var(--line); }
.decision { display:grid; grid-template-columns:.35fr 1fr .55fr; gap:40px; align-items:center; min-height:185px; padding:34px 24px; border-bottom:1px solid var(--line); transition:background .35s ease, color .35s ease; }
.decision > span, .decision > strong { color:var(--sage); font:11px/1.45 var(--mono); }
.decision > strong { text-align:right; font-weight:400; }
.decision h3 { margin:0 0 10px; font:600 clamp(30px,3.2vw,46px)/1.06 var(--display); letter-spacing:-.02em; }
.decision p { margin:0; color:var(--sage); }
.decision.is-active { color:var(--ink); background:var(--lemon); }
.decision.is-active p, .decision.is-active > span, .decision.is-active > strong { color:rgba(16,26,19,.68); }

.audit-section { padding-block:160px; display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(70px,9vw,140px); align-items:center; }
.audit-copy h2 { margin-top:25px; }
.cloud-small { margin-top:.12em; color:var(--ink); font-size:.64em; line-height:1; }
.audit-copy ul { margin:38px 0; padding:0; list-style:none; border-top:1px solid var(--line); }
.audit-copy li { padding:16px 0; display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.audit-copy li b { color:var(--lemon); font:11px var(--mono); }
.report-stage { position:relative; width:min(100%,650px); aspect-ratio:.82; margin-left:auto; perspective:1800px; }
.report-underlay { position:absolute; inset:24px -24px -24px 24px; background:var(--lemon); transform:rotate(3deg); border-radius:5px; }
.report-book { position:absolute; inset:0; transform-style:preserve-3d; }
.report-page, .report-cover { position:absolute; inset:0; border-radius:5px; }
.report-page { padding:34px 38px 30px; color:var(--ink); background:var(--paper); border:1px solid var(--line-dark); overflow:hidden; }
.report-page header, .report-cover-face header { display:flex; justify-content:space-between; gap:20px; font:9px var(--mono); text-transform:uppercase; letter-spacing:.04em; }
.report-workflow { margin:25px 0 20px; padding-bottom:16px; border-bottom:1px solid var(--line-dark); }
.report-workflow span, .audit-decision span, .audit-opportunities > span, .audit-outcome span { display:block; margin-bottom:7px; color:rgba(16,26,19,.58); font:9px var(--mono); text-transform:uppercase; letter-spacing:.06em; }
.report-workflow strong { font:600 clamp(24px,2.5vw,34px)/1 var(--display); letter-spacing:-.035em; }
.audit-score-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:24px; align-items:end; }
.audit-score > strong { display:flex; align-items:flex-end; font:650 clamp(60px,7vw,96px)/.68 var(--display); letter-spacing:-.08em; }
.audit-score small { padding:0 0 4px 5px; font:500 17px var(--mono); letter-spacing:-.05em; }
.audit-score p { margin:13px 0 0; color:rgba(16,26,19,.58); font:9px var(--mono); text-transform:uppercase; }
.audit-decision { padding:17px; background:var(--lemon); border-radius:12px 18px 12px 20px; }
.audit-decision strong { display:block; font:600 23px/1 var(--display); letter-spacing:-.03em; }
.audit-decision p { margin:9px 0 0; color:rgba(16,26,19,.62); font:9px var(--mono); }
.audit-score-components { margin:25px 0 21px; padding-block:13px; border-block:1px solid var(--line-dark); }
.audit-score-components > div { min-height:30px; display:grid; grid-template-columns:145px 1fr 24px; gap:12px; align-items:center; }
.audit-score-components span, .audit-score-components strong { font:9px var(--mono); }
.audit-score-components i { height:4px; overflow:hidden; background:rgba(15,43,26,.12); border-radius:4px; }
.audit-score-components b { display:block; width:100%; height:100%; background:var(--forest-2); transform:scaleX(0); transform-origin:left; transition:transform .8s var(--ease); }
.report-stage.is-open .audit-score-components b { transform:scaleX(var(--value)); }
.audit-opportunities ul { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0; padding:0; list-style:none; }
.audit-opportunities li { position:relative; padding:12px 12px 12px 31px; background:rgba(15,43,26,.06); font-size:11px; line-height:1.35; }
.audit-opportunities li::before { content:""; position:absolute; left:12px; top:15px; width:8px; height:8px; background:var(--lemon); border-radius:50%; }
.audit-outcome { display:grid; grid-template-columns:100px 1fr; gap:14px; align-items:start; margin-top:18px; }
.audit-outcome span { margin:2px 0 0; }
.audit-outcome p { margin:0; color:rgba(16,26,19,.68); font-size:10px; line-height:1.4; }
.audit-page-cta { position:absolute; right:38px; bottom:24px; color:var(--forest-2); font:600 10px var(--mono); text-decoration:none; border-bottom:1px solid var(--forest-2); }
.report-cover { z-index:3; padding:0; color:var(--ink); background:transparent; border:0; text-align:left; cursor:pointer; transform-origin:left center; transform-style:preserve-3d; transition:transform 1.05s var(--ease),filter .8s ease; }
.report-cover-face, .report-cover-back { position:absolute; inset:0; padding:44px; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line-dark); border-radius:5px; backface-visibility:hidden; }
.report-cover-face { background:var(--paper); transform:rotateY(0deg) translateZ(1px); transition:opacity .12s linear .4s; }
.report-cover-face::after { content:""; position:absolute; width:460px; height:460px; right:-270px; top:95px; border:1px solid rgba(15,43,26,.12); border-radius:50%; box-shadow:0 0 0 70px rgba(15,43,26,.025),0 0 0 140px rgba(15,43,26,.018); }
.report-cover-back { align-items:center; justify-content:center; color:var(--paper); background:var(--forest-2); transform:rotateY(180deg) translateZ(1px); opacity:0; transition:opacity .12s linear .4s; }
.report-cover-back > span { max-width:280px; font:600 42px/.95 var(--display); letter-spacing:-.045em; }
.report-logo { width:58px; margin:65px 0 24px; }
.brand-path-dark { stroke:var(--forest-2); }
.report-logo circle { fill:var(--forest-2); }
.report-cover-face > strong { position:relative; z-index:1; max-width:470px; font:650 clamp(40px,4.4vw,64px)/1 var(--display); letter-spacing:-.028em; }
.report-cover-footer { position:absolute; left:44px; right:44px; bottom:38px; display:flex; justify-content:space-between; gap:20px; padding-top:18px; border-top:1px solid var(--line-dark); font:9px var(--mono); text-transform:uppercase; }
.report-cover-footer i { color:rgba(16,26,19,.58); font-style:normal; }
.report-cover-footer b { font-weight:500; }
.report-stage.is-open .report-cover { transform:translateX(-2%) rotateY(-88deg); filter:drop-shadow(-12px 12px 18px rgba(9,29,17,.16)); }
.report-stage.is-open .report-cover-face { opacity:0; }
.report-stage.is-open .report-cover-back { opacity:1; }
.report-replay { position:absolute; z-index:5; right:0; top:-34px; padding:5px 0; color:var(--sage); background:none; border:0; border-bottom:1px solid var(--line); font:9px var(--mono); text-transform:uppercase; cursor:pointer; opacity:0; pointer-events:none; transition:opacity .3s ease; }
.report-stage.is-open .report-replay { opacity:1; pointer-events:auto; }
.report-caption { position:absolute; left:0; bottom:-45px; margin:0; color:var(--sage); font:9px var(--mono); text-transform:uppercase; }

.build-section { padding-block:150px; background:var(--forest-3); }
.section-heading-wide { grid-template-columns:.4fr 1.6fr; }
.section-heading-wide h2 { max-width:1000px; }
.system-flow { position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:18px; margin-top:90px; }
.flow-line { position:absolute; left:10%; right:10%; top:29px; height:1px; background:var(--line); }
.flow-line span { display:block; width:0; height:100%; background:var(--lemon); transition:width .6s var(--ease); }
.flow-node { position:relative; z-index:1; padding:0; color:var(--sage); background:none; border:0; text-align:left; cursor:pointer; }
.flow-node > span { width:58px; height:58px; display:grid; place-items:center; margin-bottom:32px; color:var(--paper); background:var(--forest-2); border:1px solid var(--line); border-radius:50%; font:11px var(--mono); transition:background .25s ease, color .25s ease, transform .25s var(--ease), border-color .25s ease; }
.flow-node:hover:not(.is-active) > span { transform:scale(1.06); border-color:rgba(255,228,92,.5); }
.flow-node strong, .flow-node small { display:block; }
.flow-node strong { margin-bottom:8px; color:var(--paper); font-size:18px; }
.flow-node small { font-size:12px; }
.flow-node.is-active > span { color:var(--ink); background:var(--lemon); border-color:var(--lemon); transform:scale(1.12); }
.flow-readout { margin-top:75px; padding:26px 0; display:grid; grid-template-columns:.4fr 1.4fr auto; gap:35px; border-block:1px solid var(--line); align-items:center; }
.flow-readout span, .flow-readout b { color:var(--lemon); font:10px var(--mono); text-transform:uppercase; }
.flow-readout p { margin:0; font-size:18px; }

.operations-section { padding-block:150px; display:grid; grid-template-columns:.8fr 1.2fr; gap:100px; align-items:start; }
.operations-ledger { border-top:1px solid var(--line); }
.operations-ledger > div { min-height:105px; display:grid; grid-template-columns:.4fr 1fr auto; gap:25px; align-items:center; border-bottom:1px solid var(--line); }
.operations-ledger span { font:600 30px/1.1 var(--display); letter-spacing:-.02em; }
.operations-ledger p { margin:0; color:var(--sage); }
.operations-ledger b { color:var(--lemon); font:11px var(--mono); }

.about-section { padding-block:150px; color:var(--ink); background:var(--lemon); }
.about-section .section-index { color:var(--forest-2); }
.about-section .statement { margin-bottom:90px; }
.about-section .cloud-major { color:var(--paper); padding:0 .14em; margin-right:.2em; }
.about-section .cloud-major::before { background:var(--forest-2); inset:-.12em -.34em -.16em; border-radius:47% 53% 46% 54% / 53% 47% 52% 48%; }
.team-list { border-top:1px solid rgba(16,26,19,.25); }
.team-list article { min-height:150px; display:grid; grid-template-columns:90px 1fr .45fr; gap:35px; align-items:center; border-bottom:1px solid rgba(16,26,19,.25); transition:background var(--dur-fast) var(--ease-out); }
.team-list article:hover { background:rgba(15,43,26,.05); }
.team-list article > span { width:58px; height:58px; display:grid; place-items:center; color:var(--paper); background:var(--forest-2); border-radius:50%; font:12px var(--mono); transition:transform var(--dur-normal) var(--ease-out); }
.team-list article:hover > span { transform:scale(1.08); }
.team-list h3 { margin:0 0 6px; font:600 32px/1.1 var(--display); letter-spacing:-.02em; }
.team-list p { margin:0; color:rgba(16,26,19,.65); }
.team-list b { color:var(--forest-2); font:11px var(--mono); text-align:right; text-transform:uppercase; }

.fit-section { padding-block:150px; }
.fit-grid { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--line); }
.fit-grid article { padding:42px; transition:background var(--dur-normal) var(--ease-out); }
.fit-grid article + article { border-left:1px solid var(--line); }
.fit-grid article:hover { background:rgba(255,228,92,.04); }
.fit-yes:hover { background:rgba(183,243,74,.05); }
.fit-grid h3 { display:flex; align-items:center; gap:13px; margin-bottom:30px; font:600 30px/1.1 var(--display); letter-spacing:-.02em; }
.fit-grid h3 span { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; }
.fit-yes h3 span { color:var(--ink); background:var(--lemon); }
.fit-no h3 span { border:1px solid var(--line); }
.fit-grid ul { margin:0; padding:0; list-style:none; }
.fit-grid li { padding:14px 0; color:var(--sage); border-bottom:1px solid var(--line); }

.contact-section { padding-block:150px; display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(50px,8vw,110px); align-items:center; }
.contact-intro h2 { margin:22px 0; font:600 clamp(38px,4vw,60px)/1.04 var(--display); letter-spacing:-.024em; }
.contact-intro > p:not(.eyebrow) { margin:0; color:var(--sage); font-size:17px; line-height:1.65; letter-spacing:-.005em; }
.cloud-contact { color:var(--ink); font-size:.82em; line-height:1.15; white-space:nowrap; padding:0 .06em; }
.cloud-contact::before { inset:-.06em -.26em -.1em; border-radius:48% 52% 46% 54% / 54% 46% 52% 48%; }
/* Highlight draws in when the contact section scrolls into view */
@keyframes cloud-sweep { from { clip-path:inset(0 100% 0 0); } to { clip-path:inset(0 0 0 0); } }
.js .cloud-contact::before { clip-path:inset(0 100% 0 0); }
.js .contact-intro.is-visible .cloud-contact::before { animation:cloud-sweep .8s var(--ease-out) .25s forwards; }
.contact-cards { display:grid; gap:18px; }
.contact-card { display:grid; gap:10px; padding:30px 32px; text-decoration:none; color:var(--paper); background:var(--forest-3); border:1px solid var(--line); border-radius:20px; transition:transform var(--dur-normal) var(--ease-out), border-color var(--dur-normal) var(--ease-out), box-shadow var(--dur-normal) var(--ease-out), background var(--dur-normal) var(--ease-out); }
.contact-card:hover { transform:translateY(-4px); border-color:rgba(255,228,92,.55); background:var(--forest-2); box-shadow:0 24px 48px -28px rgba(9,29,17,.8); }
.contact-card-label { color:var(--lemon); font:11px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.contact-card-value { font:600 clamp(20px,2.1vw,26px)/1.2 var(--display); letter-spacing:-.02em; word-break:break-word; }
.contact-card-cue { display:inline-flex; align-items:center; gap:9px; margin-top:4px; color:var(--sage); font:12px var(--mono); text-transform:uppercase; letter-spacing:.06em; }
.contact-card-cue span[aria-hidden] { transition:transform var(--dur-fast) var(--ease-out); }
.contact-card:hover .contact-card-cue { color:var(--paper); }
.contact-card:hover .contact-card-cue span[aria-hidden] { transform:translate(3px,-3px); }

.final-cta { padding-block:130px; background:var(--night); }
.final-inner { display:grid; grid-template-columns:1.4fr auto; gap:70px; align-items:end; }
.final-inner h2 { max-width:920px; margin:26px 0 20px; font:600 clamp(46px,5.2vw,78px)/1.04 var(--display); letter-spacing:-.026em; }
.final-inner p:last-child { color:var(--sage); }
.site-footer { padding-block:45px; border-top:1px solid var(--line); background:var(--night); }
.footer-grid { display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:30px; }
.footer-grid > p { margin:0; color:var(--sage); text-align:center; }
.footer-grid > div { display:flex; justify-content:flex-end; gap:22px; color:var(--sage); font:10px var(--mono); }

.reveal { opacity:1; transform:none; }
.js .reveal { opacity:0; transform:translateY(38px) scale(.99); filter:blur(4px); transition:opacity var(--dur-premium) var(--ease-out), transform var(--dur-premium) var(--ease-out), filter var(--dur-premium) var(--ease-out); }
.js .reveal.is-visible { opacity:1; transform:none; filter:blur(0); }

/* Staggered children reveal (ngrok-style cascade) */
.js [data-stagger] > * { opacity:0; transform:translateY(30px); transition:opacity var(--dur-premium) var(--ease-out), transform var(--dur-premium) var(--ease-out); }
.js .system-flow[data-stagger] > .flow-line { opacity:1; transform:none; transition:none; }
.js [data-stagger].is-visible > * { opacity:1; transform:none; }
.js [data-stagger].is-visible > *:nth-child(1) { transition-delay:.04s; }
.js [data-stagger].is-visible > *:nth-child(2) { transition-delay:.12s; }
.js [data-stagger].is-visible > *:nth-child(3) { transition-delay:.2s; }
.js [data-stagger].is-visible > *:nth-child(4) { transition-delay:.28s; }
.js [data-stagger].is-visible > *:nth-child(5) { transition-delay:.36s; }
.js [data-stagger].is-visible > *:nth-child(6) { transition-delay:.44s; }
.js [data-stagger].is-visible > *:nth-child(7) { transition-delay:.52s; }
.js [data-stagger].is-visible > *:nth-child(n+8) { transition-delay:.6s; }
@keyframes step-in { from { opacity:0; transform:translateY(15px); } to { opacity:1; transform:none; } }

@media (max-width:1024px) {
  .shell { width:min(calc(100% - 40px),var(--max)); }
  .site-nav { gap:17px; }
  .site-nav > a:not(.button) { display:none; }
  .hero-title { font-size:clamp(68px,11vw,112px); }
  .hero-brand { top:130px; }
  .hero-bottom { grid-template-columns:1fr; gap:35px; }
  .hero-actions { justify-content:flex-start; }
  .promise-grid { grid-template-columns:1fr 1fr; gap:28px; }
  .assessment-section, .audit-section, .operations-section, .contact-section { grid-template-columns:1fr; }
  .assessment-intro { position:static; }
  .assessment-card { max-width:760px; }
  .section-heading { grid-template-columns:1fr 1.6fr; }
  .section-heading > p:last-child { grid-column:2; }
  .case-study-heading { grid-template-columns:1fr 1.6fr; }
  .case-study-heading > p:last-child { grid-column:2; }
  .case-study { grid-template-columns:1fr; }
  .case-visual { min-height:720px; }
  .legal-case-study { grid-template-columns:1fr; }
  .legal-portrait-panel { min-height:680px; }
  .report-stage { margin:55px auto 0; }
  .operations-ledger { max-width:850px; }
  .system-flow { gap:8px; }
  .flow-node small { max-width:120px; }
}

@media (max-width:720px) {
  .shell { width:min(calc(100% - 30px),var(--max)); }
  .nav-shell { height:72px; }
  /* Lighter motion on mobile: drop the costly blur, keep fade/translate */
  .js .reveal { filter:none; transform:translateY(28px); }
  .js .hero::before { animation-name:hero-ring-in; }
  .brand-logo { height:52px; width:auto; }
  .site-nav { position:fixed; inset:72px 0 auto; padding:24px 15px 30px; display:none; flex-direction:column; align-items:stretch; background:var(--forest); border-bottom:1px solid var(--line); }
  .site-nav.is-open { display:flex; }
  .site-nav > a:not(.button) { display:block; min-height:48px; padding:13px 5px; border-bottom:1px solid var(--line); }
  .nav-toggle { display:block; }
  .nav-toggle.is-open span:first-child { transform:translateY(3px) rotate(45deg); }
  .nav-toggle.is-open span:last-child { transform:translateY(-3px) rotate(-45deg); }
  .hero { min-height:auto; padding-top:145px; padding-bottom:75px; }
  .hero-brand { display:none; }
  .hero-orbit { display:none; }
  .hero-title { font-size:clamp(42px,12vw,64px); line-height:1; }
  .cloud-hero { display:block; width:max-content; max-width:100%; margin:.3em 0 .12em; font-size:.5em; line-height:1.15; vertical-align:0; }
  .mobile-break { display:block; }
  .hero-bottom { margin-top:52px; }
  .hero-actions { display:grid; align-items:stretch; }
  .hero-actions .text-link { justify-self:start; }
  .promise-grid { grid-template-columns:1fr; gap:0; padding-top:24px; }
  .promise-grid::before, .promise-grid::after { display:none; }
  .promise-grid p { min-height:0; padding:22px 0 22px 26px; font-size:19px; }
  .promise-grid p::before { top:26px; left:0; }
  /* Vertical connector between stacked steps on mobile */
  .promise-grid p:not(:last-child)::after { content:""; position:absolute; left:6px; top:38px; width:2px; height:calc(100% - 20px); background:var(--line); }
  .assessment-section, .problem-section, .case-study-section, .approach-section, .audit-section, .build-section, .operations-section, .about-section, .fit-section, .contact-section { padding-block:92px; }
  .cloud-contact { white-space:normal; }
  .contact-card { padding:24px; }
  .assessment-card { min-height:0; padding:22px; box-shadow:9px 9px 0 var(--night); border-radius:18px; }
  .contact-fields { grid-template-columns:1fr; }
  .field-wide { grid-column:auto; }
  .form-actions { align-items:stretch; flex-direction:column-reverse; }
  .form-note { text-align:left; }
  .statement { margin:34px 0 64px; font-size:clamp(30px,9vw,46px); }
  .cloud-major { white-space:normal; }
  .problem-grid { grid-template-columns:1fr; }
  .workflow-noise, .signal-list { min-height:0; padding:35px 0; }
  .signal-list { border-left:0; border-top:1px solid var(--line-dark); }
  .case-study-heading { grid-template-columns:1fr; gap:24px; margin-bottom:55px; }
  .case-study-heading > p:last-child { grid-column:auto; }
  .cloud-case { width:auto; white-space:normal; }
  .case-copy { padding:30px 22px 36px; }
  .case-brandline { align-items:flex-start; flex-direction:column; }
  .case-copy > h3 { font-size:clamp(43px,13vw,62px); }
  .case-actions { align-items:stretch; flex-direction:column; }
  .case-link { align-self:flex-start; }
  .case-visual { min-height:625px; }
  .case-phone { width:min(68%,280px); }
  .case-orbit { width:190px; padding:14px; }
  .case-orbit-content { left:2%; top:10%; }
  .case-orbit-leads { right:2%; bottom:10%; }
  .legal-portrait-panel { min-height:570px; padding:68px 28px 82px; }
  .legal-portrait { width:min(78%,300px); box-shadow:11px 13px 0 var(--lemon); }
  .legal-proof-note { right:3%; bottom:6%; width:205px; }
  .legal-case-copy { padding:34px 22px 40px; }
  .legal-case-topline { align-items:flex-start; flex-direction:column; }
  .legal-case-copy > h3 { font-size:clamp(43px,13vw,62px); }
  .cloud-legal { white-space:normal; }
  .section-heading, .section-heading-wide { grid-template-columns:1fr; gap:24px; margin-bottom:55px; }
  .section-heading > p:last-child { grid-column:auto; }
  .cloud-dark { white-space:normal; }
  .decision { grid-template-columns:1fr; gap:18px; min-height:0; padding:30px 18px; }
  .decision > strong { text-align:left; }
  .report-stage { width:calc(100% - 20px); aspect-ratio:.52; margin-bottom:35px; }
  .report-underlay { inset:12px -12px -12px 12px; }
  .report-page { padding:22px 20px 26px; }
  .report-page header, .report-cover-face header { font-size:7px; }
  .report-workflow { margin:20px 0 16px; }
  .report-workflow strong { font-size:25px; }
  .audit-score-grid { grid-template-columns:.72fr 1.28fr; gap:12px; }
  .audit-score > strong { font-size:62px; }
  .audit-score small { font-size:12px; }
  .audit-decision { padding:12px; }
  .audit-decision strong { font-size:18px; }
  .audit-score-components { margin:18px 0 16px; }
  .audit-score-components > div { grid-template-columns:108px 1fr 21px; gap:8px; }
  .audit-score-components span, .audit-score-components strong { font-size:7px; }
  .audit-opportunities li { padding:10px 8px 10px 24px; font-size:9px; }
  .audit-opportunities li::before { left:9px; top:13px; width:7px; height:7px; }
  .audit-outcome { grid-template-columns:76px 1fr; gap:9px; margin-top:13px; }
  .audit-outcome p { font-size:8px; }
  .audit-page-cta { right:20px; bottom:17px; font-size:8px; }
  .report-cover-face, .report-cover-back { padding:26px; }
  .report-logo { margin:38px 0 20px; }
  .report-cover-face > strong { font-size:clamp(46px,15vw,66px); }
  .report-cover-footer { left:26px; right:26px; bottom:24px; font-size:7px; }
  .report-cover-back > span { font-size:32px; }
  .report-stage.is-open .report-cover { transform:translateY(-8%) rotateX(92deg); opacity:0; pointer-events:none; }
  .report-caption { bottom:-32px; font-size:7px; }
  .system-flow { grid-template-columns:1fr; gap:0; margin-top:50px; }
  .flow-line { left:28px; right:auto; top:0; bottom:0; width:1px; height:auto; }
  .flow-line span { width:100%; height:0; transition:height .6s var(--ease); }
  .flow-node { min-height:110px; display:grid; grid-template-columns:58px 1fr; column-gap:24px; align-items:center; }
  .flow-node > span { grid-row:1/3; margin:0; }
  .flow-node strong { align-self:end; }
  .flow-node small { align-self:start; max-width:none; }
  .flow-readout { grid-template-columns:1fr auto; gap:15px; }
  .flow-readout p { grid-column:1/-1; grid-row:2; }
  .operations-ledger > div { grid-template-columns:1fr auto; padding:22px 0; }
  .operations-ledger p { grid-column:1/-1; grid-row:2; }
  .team-list article { grid-template-columns:64px 1fr; padding:25px 0; }
  .team-list article > b { grid-column:2; text-align:left; }
  .fit-grid { grid-template-columns:1fr; }
  .fit-grid article { padding:28px 22px; }
  .fit-grid article + article { border-left:0; border-top:1px solid var(--line); }
  .final-cta { padding-block:90px; }
  .final-inner { grid-template-columns:1fr; gap:40px; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-grid > p { text-align:left; }
  .footer-grid > div { justify-content:flex-start; flex-direction:column; gap:7px; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
  /* Force all motion-hidden content visible so nothing is stuck invisible */
  .reveal,
  .js .reveal,
  .js .hero > .reveal,
  .js .hero > .hero-bottom > .reveal,
  .js [data-stagger] > *,
  .js .promise-grid p { opacity:1 !important; transform:none !important; filter:none !important; }
  .js .hero::before { opacity:1 !important; }
  .js .cloud-contact::before { clip-path:none !important; }
  .js .promise-grid::after { width:100% !important; }
  .js .promise-grid p::before { background:var(--lime) !important; border-color:var(--lime) !important; }
  .hero-orbit { display:none !important; }
  .scroll-progress { display:none !important; }
}
