/* ============================================================
   Rajipo Consulting Group — design system
   Editorial paper + surgical green. Cormorant Garamond display,
   Hanken Grotesk text. One signature: the helix.
   ============================================================ */

:root{
  --paper:#F4F0E7;--paper-2:#ECE6D9;--ink:#15140E;--ink-soft:#46423A;--muted:#6E6A5C;
  --line:#D8D1C2;--line-soft:#E3DCCE;--line-2:#C9C1B1;
  --green:#0E6A52;--green-deep:#0A4435;--green-bright:#1EB97E;
  --dark:#0A1C17;--dark-2:#0E2A22;--cream-on-dark:#EDE8DC;
  --ease:cubic-bezier(.19,1,.22,1);--maxw:1240px;
  --ff-display:"Source Serif 4",Georgia,serif;
  --ff-body:"Inter",system-ui,-apple-system,sans-serif;
  --ff-mono:"IBM Plex Mono",ui-monospace,"SF Mono",monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ff-body);
  font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
body.locked{overflow:hidden;}
::selection{background:var(--green);color:var(--paper);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px;}

/* paper grain — barely-there texture so flat fields feel printed, not painted */
body::before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.4;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .04 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");}
main,header,footer,nav{position:relative;z-index:2;}

/* type */
.serif{font-family:var(--ff-display);}
h1,h2,h3{font-family:var(--ff-display);font-weight:600;line-height:1.0;letter-spacing:-.005em;margin:0;}
h1 em,h2 em,h3 em{font-style:italic;color:var(--green);}
.label{font-family:var(--ff-body);font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--green);}
.label.muted{color:var(--muted);}
p{margin:0;}

/* accessibility */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:var(--paper);
  padding:.8em 1.4em;border-radius:0 0 10px 0;font-weight:600;font-size:.9rem;}
.skip:focus{left:0;}
:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px;}
.nav a:focus-visible,.btn:focus-visible{outline-offset:4px;}

/* buttons + text links */
.btn{font-family:var(--ff-body);font-size:.88rem;font-weight:600;letter-spacing:.02em;
  padding:.95em 1.7em;border-radius:999px;cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:var(--paper);
  display:inline-flex;align-items:center;gap:.5em;
  transition:background .35s var(--ease),color .35s,transform .35s var(--ease),border-color .35s;}
.btn:hover{background:transparent;color:var(--ink);transform:translateY(-2px);}
.btn.on-dark{border-color:var(--cream-on-dark);background:var(--cream-on-dark);color:var(--dark);}
.btn.on-dark:hover{background:transparent;color:var(--cream-on-dark);}
.tlink{font-family:var(--ff-body);font-size:.92rem;font-weight:600;color:var(--ink);
  display:inline-flex;align-items:center;gap:.45em;padding-bottom:3px;border-bottom:1px solid var(--ink);
  transition:gap .3s var(--ease),color .3s,border-color .3s;}
.tlink:hover{gap:.8em;color:var(--green);border-color:var(--green);}
.tlink.on-dark{color:var(--cream-on-dark);border-color:rgba(237,232,220,.5);}
.tlink.on-dark:hover{color:var(--green-bright);border-color:var(--green-bright);}

/* announcement strip + nav */
.strip{text-align:center;padding:10px;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);border-bottom:1px solid var(--line-soft);}
.strip b{color:var(--green);font-weight:600;}
.nav{position:sticky;top:0;z-index:50;transition:background .4s var(--ease),border-color .4s;border-bottom:1px solid transparent;}
.nav.scrolled,.nav.menu-open{background:rgba(244,240,231,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);}
.nav-in{display:flex;align-items:center;justify-content:space-between;padding:20px 40px;max-width:1400px;margin:0 auto;}
.brand{display:flex;align-items:center;gap:12px;}
.brand .mark{width:30px;height:30px;flex:none;}
.brand .name{font-family:var(--ff-display);font-weight:600;font-size:1.7rem;line-height:1;}
.brand .name b{color:var(--green);font-weight:600;}
.nav-links{display:flex;align-items:center;gap:36px;}
.nav-item{position:relative;}
.nav-link{font-size:.9rem;font-weight:500;color:var(--ink-soft);transition:color .25s;cursor:pointer;
  display:inline-flex;align-items:center;gap:.4em;background:none;border:none;padding:0;font-family:inherit;}
.nav-link:hover,.nav-link[aria-current="page"],.nav-item.active>.nav-link{color:var(--green);}
.nav-link .caret{width:9px;height:9px;transition:transform .3s var(--ease);}
.nav-item:hover .nav-link .caret,.nav-item:focus-within .nav-link .caret{transform:rotate(180deg);}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:9px;cursor:pointer;}

/* mega menu */
.mega{position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%) translateY(10px);width:min(900px,94vw);
  background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:30px;
  box-shadow:0 40px 90px -40px rgba(20,18,12,.4);opacity:0;visibility:hidden;
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;z-index:60;}
.nav-item:hover .mega,.nav-item:focus-within .mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.mega::before{content:"";position:absolute;top:-16px;left:0;right:0;height:16px;}
.mega-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--line-soft);}
.mega-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.mcat .label{display:block;margin-bottom:14px;font-size:.64rem;}
.mcat .label .em{color:var(--green-bright);margin-left:.4em;}
.mlink{display:block;padding:9px 0;transition:padding-left .25s var(--ease);}
.mlink:hover{padding-left:6px;}
.mlink .mn{font-family:var(--ff-display);font-size:1.32rem;line-height:1.1;transition:color .25s;}
.mlink:hover .mn{color:var(--green);}
.mlink .md{font-size:.78rem;color:var(--muted);margin-top:1px;}

/* mobile menu */
.mobile-menu{position:fixed;inset:0;z-index:70;background:var(--paper);transform:translateY(-100%);
  transition:transform .5s var(--ease);overflow-y:auto;padding:26px 28px 50px;visibility:hidden;}
.mobile-menu.open{transform:none;visibility:visible;}
.mm-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;}
.mm-close{background:none;border:1px solid var(--line);border-radius:8px;padding:9px;cursor:pointer;color:var(--ink);}
.m-link{display:flex;justify-content:space-between;align-items:center;font-family:var(--ff-display);
  font-size:2.1rem;padding:16px 0;border-bottom:1px solid var(--line);width:100%;background:none;border-left:none;border-right:none;border-top:none;color:var(--ink);cursor:pointer;text-align:left;}
.m-sub{overflow:hidden;max-height:0;transition:max-height .4s var(--ease);}
.m-sub.open{max-height:600px;}
.m-sub-inner{padding:8px 0 18px;}
.m-cat{font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin:14px 0 6px;}
.m-prod{display:block;font-family:var(--ff-display);font-size:1.4rem;padding:7px 0;}
.m-cta{margin-top:30px;}
.m-rot{transition:transform .3s var(--ease);}
.m-rot.open{transform:rotate(45deg);}

/* hero */
.hero{padding:54px 0 40px;}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:40px;align-items:center;}
.hero h1{font-size:clamp(3.1rem,7.4vw,6.6rem);margin:.28em 0 .42em;letter-spacing:-.015em;}
.hero p.lead{font-size:clamp(1.08rem,1.45vw,1.32rem);color:var(--ink-soft);max-width:480px;line-height:1.6;margin:0 0 2.3em;}
.hero-cta{display:flex;flex-wrap:wrap;gap:24px;align-items:center;}
.hero-stats{margin-top:3em;display:flex;gap:48px;flex-wrap:wrap;}
.hero-stats .hs .n{font-family:var(--ff-display);font-size:2.5rem;font-weight:600;line-height:1;}
.hero-stats .hs .l{font-size:.78rem;letter-spacing:.06em;color:var(--muted);margin-top:4px;}
.hero-visual{position:relative;height:clamp(440px,62vh,660px);}
.hero-visual .halo{position:absolute;inset:8% 10%;border-radius:50%;background:radial-gradient(circle,rgba(14,106,82,.13),transparent 68%);filter:blur(8px);}
#helix{position:absolute;inset:0;display:block;width:100%;height:100%;}
.v-tag{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);font-size:.66rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:.6em;white-space:nowrap;}
.v-tag .vd{width:6px;height:6px;border-radius:50%;background:var(--green-bright);animation:blink 2.4s var(--ease) infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.3;}}

/* ticker */
.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;padding:18px 0;}
.ticker-track{display:inline-flex;animation:scroll 48s linear infinite;}
.ticker-track span{font-size:.8rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);
  padding:0 30px;display:inline-flex;align-items:center;gap:30px;}
.ticker-track span::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--green);}
@keyframes scroll{to{transform:translateX(-50%);}}
.ticker:hover .ticker-track{animation-play-state:paused;}

/* sections */
.sec{padding:130px 0;}
.sec.tight{padding:100px 0;}
.sec.top{padding-top:70px;}
.sec-head{max-width:760px;margin-bottom:18px;}
.sec-head h2{font-size:clamp(2.4rem,5vw,4.3rem);margin:.32em 0;letter-spacing:-.015em;}
.sec-head p{color:var(--ink-soft);font-size:1.12rem;max-width:560px;margin-top:14px;}
.page-head{padding:70px 0 10px;}
.page-head .crumb{font-size:.78rem;letter-spacing:.1em;color:var(--muted);margin-bottom:24px;}
.page-head .crumb a{transition:color .25s;}
.page-head .crumb a:hover{color:var(--green);}
.page-head h1{font-size:clamp(2.8rem,6vw,5.4rem);letter-spacing:-.02em;}
.page-head .sub{font-size:clamp(1.1rem,1.5vw,1.4rem);color:var(--ink-soft);max-width:600px;margin-top:22px;line-height:1.55;}

/* editorial index rows */
.index{margin-top:50px;border-top:1px solid var(--line);}
.cat-title{font-size:.74rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--green);padding:34px 0 6px;}
.row{display:grid;grid-template-columns:58px 1.15fr 1.35fr auto;gap:34px;align-items:baseline;padding:38px 0;
  border-bottom:1px solid var(--line);transition:padding-left .4s var(--ease);}
.row:hover{padding-left:14px;}
.row .idx{font-size:.82rem;font-weight:600;letter-spacing:.1em;color:var(--muted);padding-top:.7em;}
.row h3{font-size:clamp(1.7rem,3vw,2.5rem);transition:color .35s var(--ease);}
.row:hover h3{color:var(--green);}
.row .desc{color:var(--ink-soft);font-size:1.04rem;line-height:1.55;}
.row .stat-side{display:flex;flex-direction:column;align-items:flex-end;gap:10px;padding-top:.5em;}
.row .status{font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green);}
.row .status.dev{color:#0E6470;}
.row .for{font-size:.78rem;color:var(--muted);white-space:nowrap;}
.row .arrow{opacity:0;transform:translateX(-8px);transition:opacity .35s var(--ease),transform .35s var(--ease);color:var(--green);font-size:1.3rem;}
.row:hover .arrow{opacity:1;transform:none;}

/* dark band */
.band-dark{background:var(--dark);color:var(--cream-on-dark);position:relative;overflow:hidden;}
.band-dark::before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;right:-160px;top:-180px;
  background:radial-gradient(circle,rgba(30,185,126,.16),transparent 70%);}
.band-dark .wrap{padding-top:120px;padding-bottom:120px;position:relative;z-index:2;}
.flag-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;}
.flag-grid .label{color:var(--green-bright);}
.flag-grid h2{color:#fff;font-size:clamp(2.2rem,4.4vw,3.7rem);margin:18px 0 24px;letter-spacing:-.01em;}
.flag-grid p{color:rgba(237,232,220,.78);font-size:1.12rem;max-width:440px;margin-bottom:34px;line-height:1.6;}
.flag-list{list-style:none;padding:0;margin:0;}
.flag-list li{display:flex;align-items:center;gap:18px;padding:20px 0;border-top:1px solid rgba(237,232,220,.16);font-size:1.12rem;}
.flag-list li:last-child{border-bottom:1px solid rgba(237,232,220,.16);}
.flag-list .lnum{font-family:var(--ff-display);font-style:italic;font-size:1.5rem;color:var(--green-bright);width:30px;flex:none;}
.band-cta{text-align:center;}
.band-cta .big{font-family:var(--ff-display);font-size:clamp(1.8rem,3.4vw,2.8rem);color:#fff;max-width:720px;margin:20px auto 32px;line-height:1.2;}

/* statement */
.statement{background:var(--paper-2);}
.statement .wrap{padding-top:140px;padding-bottom:140px;text-align:center;}
.statement p.big{font-family:var(--ff-display);font-size:clamp(2rem,4.4vw,3.6rem);font-weight:400;
  line-height:1.22;letter-spacing:-.01em;max-width:960px;margin:26px auto 40px;}
.statement p.big em{font-style:italic;color:var(--green);}

/* stats */
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;margin-top:60px;}
.stat{border-top:1px solid var(--ink);padding-top:26px;}
.stat .n{font-family:var(--ff-display);font-weight:600;font-size:clamp(3.2rem,6vw,5rem);line-height:.92;letter-spacing:-.02em;}
.stat .n em{font-style:italic;color:var(--green);}
.stat .l{font-weight:600;font-size:.96rem;margin-top:16px;}
.stat .d{color:var(--muted);font-size:.9rem;margin-top:6px;line-height:1.5;}

/* industries */
.ind-row{display:grid;grid-template-columns:repeat(4,1fr);gap:46px;margin-top:56px;}
.ind{border-top:1px solid var(--line);padding-top:26px;position:relative;display:block;transition:border-color .35s;}
.ind:hover{border-top-color:var(--green);}
.ind .no{font-size:.78rem;font-weight:600;letter-spacing:.1em;color:var(--muted);}
.ind h3{font-size:1.9rem;margin:14px 0 12px;}
.ind.primary h3{color:var(--green);}
.ind p{color:var(--ink-soft);font-size:.96rem;line-height:1.55;}
.ind .flag{font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-top:14px;display:inline-block;}
.ind-detail{display:grid;grid-template-columns:.5fr 1fr;gap:40px;padding:50px 0;border-bottom:1px solid var(--line);}
.ind-detail:first-of-type{border-top:1px solid var(--ink);}
.ind-detail .ix{font-family:var(--ff-display);font-style:italic;font-size:1.5rem;color:var(--green);}
.ind-detail h3,.ind-detail h2{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:6px;}
.ind-detail .who{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;}
.ind-detail p{color:var(--ink-soft);font-size:1.06rem;line-height:1.6;max-width:640px;}
.ind-detail ul{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-wrap:wrap;gap:10px;}
.ind-detail li{font-size:.84rem;color:var(--ink-soft);border:1px solid var(--line-2);border-radius:999px;padding:.4em 1em;}
.ind-detail li a{display:block;}
.ind-detail .flag{font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green);display:inline-block;margin-top:10px;}

/* process */
.proc-row{display:grid;grid-template-columns:repeat(4,1fr);gap:44px;margin-top:56px;}
.pstep{padding-top:30px;border-top:1px solid var(--line);}
.pstep .pn{font-family:var(--ff-display);font-style:italic;font-size:2.4rem;color:var(--green);line-height:1;}
.pstep h3{font-size:1.7rem;margin:14px 0 12px;}
.pstep p{color:var(--ink-soft);font-size:.96rem;line-height:1.55;}

/* comparison table */
.cmp{margin-top:60px;border-top:1px solid var(--ink);}
.crow{display:grid;grid-template-columns:1.8fr .7fr .7fr;align-items:center;padding:28px 0;border-bottom:1px solid var(--line);}
.crow.head{padding:18px 0;}
.crow.head .ch{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-align:center;color:var(--muted);}
.crow.head .ch.us{color:var(--green);}
.crow .feat{font-family:var(--ff-display);font-size:1.7rem;}
.crow .feat span{display:block;font-family:var(--ff-body);font-size:.92rem;color:var(--muted);margin-top:5px;line-height:1.5;}
.crow .cell{display:flex;justify-content:center;}
.crow .cell svg{width:24px;height:24px;stroke-width:2;fill:none;}
.crow .cell.yes svg{stroke:var(--green);}
.crow .cell.no svg{stroke:var(--line-2);}

/* product detail */
.detail{padding:60px 0 0;}
.detail .back{margin-bottom:30px;}
.detail .d-cat{margin:24px 0 14px;display:block;}
.detail h1{font-size:clamp(2.8rem,6vw,5.2rem);letter-spacing:-.02em;}
.detail .d-tagline{font-family:var(--ff-display);font-style:italic;font-size:clamp(1.4rem,2.4vw,2rem);color:var(--green);margin-top:14px;}
.detail .d-lead{font-size:1.18rem;color:var(--ink-soft);max-width:680px;margin-top:26px;line-height:1.6;}
.detail-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:64px;margin-top:64px;padding-top:10px;}
.does{list-style:none;padding:0;margin:18px 0 0;border-top:1px solid var(--line);}
.does li{display:flex;align-items:flex-start;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);font-size:1.06rem;color:var(--ink);}
.does svg{width:20px;height:20px;flex:none;margin-top:3px;stroke:var(--green);fill:none;stroke-width:2.4;}
.d-side .who-txt{font-size:1.04rem;color:var(--ink-soft);margin:16px 0 38px;line-height:1.6;}
.glance{margin:16px 0 36px;}
.glance .g{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);}
.glance .gt{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.glance .gv{font-family:var(--ff-display);font-size:1.3rem;text-align:right;}
.d-nav{display:flex;justify-content:space-between;gap:20px;margin-top:30px;padding:40px 0;border-top:1px solid var(--line);flex-wrap:wrap;}
.d-nav a{font-weight:600;font-size:.92rem;color:var(--ink-soft);transition:color .25s;}
.d-nav a:hover{color:var(--green);}
.d-nav a .pl{font-family:var(--ff-display);font-size:1.3rem;display:block;margin-top:4px;color:var(--ink);}

/* FAQ */
.faq{margin-top:50px;border-top:1px solid var(--ink);max-width:860px;}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{display:flex;justify-content:space-between;align-items:baseline;gap:24px;cursor:pointer;
  padding:28px 0;list-style:none;font-family:var(--ff-display);font-size:clamp(1.4rem,2.4vw,1.9rem);
  transition:color .3s var(--ease);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--green);}
.faq summary .fx{font-family:var(--ff-display);font-style:italic;color:var(--green);font-size:1.4rem;
  flex:none;transition:transform .35s var(--ease);}
.faq details[open] summary .fx{transform:rotate(45deg);}
.faq .fa{color:var(--ink-soft);font-size:1.04rem;line-height:1.65;max-width:680px;padding:0 0 28px;}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:30px;align-items:start;}
.contact-grid h2{font-size:clamp(2.4rem,4.6vw,4rem);margin:.3em 0;}
.contact-grid .lead{color:var(--ink-soft);font-size:1.12rem;max-width:420px;margin:18px 0 36px;line-height:1.6;}
.domains{display:flex;flex-direction:column;gap:14px;}
.domain{font-weight:500;font-size:1.04rem;color:var(--ink);display:flex;align-items:center;gap:13px;transition:color .25s;}
.domain .d{width:6px;height:6px;border-radius:50%;background:var(--green);flex:none;}
.domain:hover{color:var(--green);}
.field{margin-bottom:30px;}
.field label{display:block;font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.field input,.field textarea{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line-2);
  border-radius:0;color:var(--ink);font-family:var(--ff-body);font-size:1.08rem;padding:8px 2px;
  transition:border-color .3s;resize:vertical;}
.field input::placeholder,.field textarea::placeholder{color:#B3AC9C;}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--green);}
.form-note{display:none;border:1px solid var(--green);border-radius:14px;padding:20px 24px;margin-bottom:34px;
  background:rgba(14,106,82,.06);color:var(--green-deep);font-size:.98rem;line-height:1.5;}
.form-note.show{display:block;}

/* footer */
.footer{background:var(--dark);color:var(--cream-on-dark);padding:90px 0 44px;}
.footer-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:44px;}
.footer .brand .name{color:#fff;font-size:1.9rem;}
.footer .brand .name b{color:var(--green-bright);}
.footer-tag{font-family:var(--ff-display);font-style:italic;font-size:1.5rem;color:rgba(237,232,220,.6);max-width:260px;margin-top:18px;line-height:1.3;}
.footer-links{display:flex;gap:64px;flex-wrap:wrap;}
.footer-col .fh{font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(237,232,220,.72);margin:0 0 18px;}
.footer-col a{display:block;color:rgba(237,232,220,.82);font-size:.94rem;margin-bottom:11px;transition:color .25s;}
.footer-col a:hover{color:var(--green-bright);}
.footer-bottom{margin-top:64px;padding-top:26px;border-top:1px solid rgba(237,232,220,.14);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.82rem;color:rgba(237,232,220,.72);}

/* 404 */
.nf{min-height:52vh;display:flex;align-items:center;}
.nf h1{font-size:clamp(3rem,8vw,7rem);}
.nf .n4{font-family:var(--ff-display);font-style:italic;color:var(--green);}

/* reveal */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.no-js .reveal{opacity:1;transform:none;}

/* responsive */
@media(max-width:940px){
  .nav-links{display:none;}
  .menu-btn{display:block;}
  .hero-grid{grid-template-columns:1fr;gap:20px;}
  .hero-visual{height:clamp(360px,52vh,460px);order:-1;}
  .flag-grid,.contact-grid,.detail-grid{grid-template-columns:1fr;gap:46px;}
  .stat-row,.ind-row,.proc-row{grid-template-columns:1fr 1fr;gap:44px 40px;}
  .ind-detail{grid-template-columns:1fr;gap:14px;}
}
@media(max-width:620px){
  .wrap{padding:0 24px;}
  .nav-in{padding:16px 24px;}
  .sec{padding:88px 0;}
  .sec.tight{padding:70px 0;}
  .statement .wrap,.band-dark .wrap{padding-top:80px;padding-bottom:80px;}
  .row{grid-template-columns:1fr;gap:10px;padding:30px 0;}
  .row .idx{padding-top:0;}
  .row .stat-side{flex-direction:row;align-items:center;justify-content:flex-start;gap:18px;}
  .row .arrow{display:none;}
  .stat-row,.ind-row,.proc-row{grid-template-columns:1fr;gap:40px;}
  .crow{grid-template-columns:1.5fr .55fr .55fr;}
  .crow .feat{font-size:1.35rem;}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  .reveal{opacity:1;transform:none;}
  .ticker-track{animation:none;}
}
@media print{
  .nav,.strip,.mobile-menu,.footer,.ticker,.hero-visual,.scene-bg{display:none !important;}
  body::before{display:none;}
  .reveal{opacity:1;transform:none;}
}

/* ============================================================
   Cinematic layer — dark hero, 3D tilt, counters, progress
   ============================================================ */

/* scroll progress thread */
.progress{position:fixed;top:0;left:0;height:2px;width:0;z-index:120;pointer-events:none;
  background:linear-gradient(90deg,var(--green),var(--green-bright));}

/* full-viewport dark hero */
.hero-dark{position:relative;background:var(--dark);color:var(--cream-on-dark);
  min-height:100svh;display:flex;align-items:center;overflow:hidden;}
.hero-dark::before{content:"";position:absolute;width:820px;height:820px;border-radius:50%;
  right:-220px;top:-260px;background:radial-gradient(circle,rgba(30,185,126,.14),transparent 68%);}
.hero-dark::after{content:"";position:absolute;width:640px;height:640px;border-radius:50%;
  left:-260px;bottom:-300px;background:radial-gradient(circle,rgba(14,106,82,.18),transparent 70%);}
.hero-dark .wrap{position:relative;z-index:2;width:100%;padding-top:40px;padding-bottom:90px;}
.hero-dark .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;}
.hero-dark .label{color:var(--green-bright);}
.hero-dark h1{font-size:clamp(3.3rem,7.6vw,7.2rem);margin:.26em 0 .4em;letter-spacing:-.015em;color:#F8F4EA;}
.hero-dark h1 em{color:var(--green-bright);}
.hero-dark p.lead{font-size:clamp(1.08rem,1.45vw,1.34rem);color:rgba(237,232,220,.75);max-width:500px;line-height:1.65;margin:0 0 2.4em;}
.hero-dark .btn{border-color:var(--cream-on-dark);background:var(--cream-on-dark);color:var(--dark);}
.hero-dark .btn:hover{background:transparent;color:var(--cream-on-dark);}
.hero-dark .tlink{color:var(--cream-on-dark);border-color:rgba(237,232,220,.5);}
.hero-dark .tlink:hover{color:var(--green-bright);border-color:var(--green-bright);}
.hero-dark .hero-stats .hs .n{color:#F8F4EA;}
.hero-dark .hero-stats .hs .l{color:rgba(237,232,220,.55);}
.hero-dark .hero-visual{height:clamp(460px,72vh,760px);}
.hero-dark .v-tag{color:rgba(237,232,220,.5);}

/* staged entrance */
.rise{opacity:0;transform:translateY(26px);animation:rise 1.1s var(--ease) forwards;}
.rise.d1{animation-delay:.1s}.rise.d2{animation-delay:.22s}.rise.d3{animation-delay:.36s}.rise.d4{animation-delay:.5s}
@keyframes rise{to{opacity:1;transform:none;}}

/* scroll cue */
.scroll-cue{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:10px;color:rgba(237,232,220,.45);
  font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;}
.scroll-cue .line{width:1px;height:44px;background:rgba(237,232,220,.25);position:relative;overflow:hidden;}
.scroll-cue .line::after{content:"";position:absolute;left:0;top:-40%;width:100%;height:40%;
  background:var(--green-bright);animation:cue 2.2s var(--ease) infinite;}
@keyframes cue{0%{top:-40%;}60%,100%{top:110%;}}

/* transparent nav over the dark hero */
body.dark-hero .strip{background:var(--dark);color:rgba(237,232,220,.75);border-bottom-color:rgba(237,232,220,.1);}
body.dark-hero .strip b{color:var(--green-bright);}
body.dark-hero .nav:not(.scrolled){background:var(--dark);border-bottom-color:transparent;}
body.dark-hero .nav:not(.scrolled) .brand .name{color:#fff;}
body.dark-hero .nav:not(.scrolled) .brand .name b{color:var(--green-bright);}
body.dark-hero .nav:not(.scrolled) .brand .mark g>path:nth-of-type(1){stroke:#1EB97E;}
body.dark-hero .nav:not(.scrolled) .brand .mark g>path:nth-of-type(2){stroke:#6FDCB4;}
body.dark-hero .nav:not(.scrolled) .brand .mark g>line{stroke:#6FDCB4;}
body.dark-hero .nav:not(.scrolled) .nav-link{color:rgba(237,232,220,.85);}
body.dark-hero .nav:not(.scrolled) .nav-link:hover,
body.dark-hero .nav:not(.scrolled) .nav-link[aria-current="page"]{color:var(--green-bright);}
body.dark-hero .nav:not(.scrolled) .nav-links>.tlink{color:var(--cream-on-dark);border-color:rgba(237,232,220,.5);}
body.dark-hero .nav:not(.scrolled) .nav-links>.tlink:hover{color:var(--green-bright);border-color:var(--green-bright);}
body.dark-hero .nav:not(.scrolled) .menu-btn{color:var(--cream-on-dark);border-color:rgba(237,232,220,.3);}

/* services — 3D tilt cards */
.svc-row{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:60px;perspective:1200px;}
.svc{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:24px;padding:40px 36px 44px;
  background:linear-gradient(165deg,rgba(255,255,255,.55),rgba(255,255,255,0) 55%);
  transition:border-color .4s,box-shadow .6s var(--ease);transform-style:preserve-3d;will-change:transform;}
.svc:hover{border-color:var(--green);box-shadow:0 60px 90px -60px rgba(10,28,23,.45);}
.svc .sn{font-family:var(--ff-display);font-style:italic;font-size:1.6rem;color:var(--green);line-height:1;}
.svc h3{font-size:clamp(1.7rem,2.4vw,2.2rem);margin:20px 0 14px;transform:translateZ(30px);}
.svc>p{color:var(--ink-soft);font-size:1rem;line-height:1.6;flex:1;}
.svc ul{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-wrap:wrap;gap:8px;}
.svc li{font-size:.8rem;color:var(--ink-soft);border:1px solid var(--line-2);border-radius:999px;padding:.35em .95em;}
.svc .tlink{margin-top:28px;align-self:flex-start;}
.svc.on-page{border-radius:0;border:none;border-top:1px solid var(--line);padding:34px 0 10px;background:none;}
.svc.on-page:hover{box-shadow:none;}

@media(max-width:940px){
  .hero-dark{min-height:auto;}
  .hero-dark .hero-grid{grid-template-columns:1fr;}
  .hero-dark .hero-visual{position:absolute;inset:0;height:auto;opacity:.3;pointer-events:none;}
  .hero-dark .wrap{padding-top:70px;padding-bottom:110px;}
  .hero-dark .v-tag,.scroll-cue{display:none;}
  .svc-row{grid-template-columns:1fr;gap:24px;}
}

/* checklists nested inside detail sections must not inherit chip pills */
.ind-detail .does{display:block;margin:18px 0 24px;}
.ind-detail .does li{border:none;border-radius:0;padding:18px 0;display:flex;font-size:1.02rem;color:var(--ink);}

/* ============================================================
   Professional type detail — mono for technical labels
   ============================================================ */
.label,.strip,.page-head .crumb,.ticker-track span,.v-tag,.scroll-cue,.cat-title,
.row .idx,.row .status,.row .for,.ind .no,.glance .gt,.field label,.m-cat,
.footer-col .fh,.crow.head .ch,.ind-detail .who,.ind .flag,.ind-detail .flag{
  font-family:var(--ff-mono);}
.label{font-size:.68rem;font-weight:500;letter-spacing:.16em;}
.strip{font-size:.68rem;letter-spacing:.12em;}
.ticker-track span{font-size:.74rem;letter-spacing:.14em;font-weight:500;}
.page-head .crumb{font-size:.72rem;letter-spacing:.08em;}
.footer-col .fh{font-size:.66rem;letter-spacing:.12em;font-weight:500;}
.field label{font-size:.64rem;letter-spacing:.1em;font-weight:500;}
.ind-detail .who{font-size:.66rem;letter-spacing:.1em;}
.sec-head p,.page-head .sub{line-height:1.68;}
h1{letter-spacing:-.022em;}
h2{letter-spacing:-.018em;}
.brand .name{letter-spacing:-.01em;}

/* capabilities grid + deployment timeline (services) */
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 34px;margin-top:56px;}
.cap{border-top:1px solid var(--line);padding-top:22px;}
.cap .cn{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.08em;color:var(--muted);}
.cap h3{font-size:1.45rem;margin:12px 0 10px;line-height:1.15;}
.cap p{color:var(--ink-soft);font-size:.95rem;line-height:1.62;}
.pstep .wk{display:inline-block;font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.08em;
  color:var(--muted);text-transform:uppercase;margin-top:12px;border:1px solid var(--line-2);
  border-radius:999px;padding:.3em .9em;}
.fine{font-family:var(--ff-mono);font-size:.68rem;color:var(--muted);letter-spacing:.04em;margin-top:26px;}
@media(max-width:940px){.cap-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.cap-grid{grid-template-columns:1fr;}}
.hero-dark .v-tag{bottom:-34px;}
/* vignette the full-bleed hero scene so forms fade at the frame, never clip hard */
.hero-dark .scene-bg{-webkit-mask-image:radial-gradient(85% 90% at 62% 45%,#000 45%,transparent 96%);
  mask-image:radial-gradient(85% 90% at 62% 45%,#000 45%,transparent 96%);}
.hero-dark .wrap{z-index:2;}
@media(max-width:940px){.hero-dark .scene-bg{display:none;}}

/* field readouts — dark viewing panels holding the mini 3D forms */
.viz-slide{position:relative;display:block;background:var(--dark);border-radius:18px;overflow:hidden;
  aspect-ratio:4/3;border:1px solid rgba(14,106,82,.25);}
.viz-slide::before{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 42%,rgba(30,185,126,.1),transparent 72%);}
.viz-slide canvas{position:absolute;inset:0;width:100%;height:100%;}
.viz-slide.wide{aspect-ratio:16/10;}
.ind .viz-slide{aspect-ratio:16/10;margin-bottom:20px;transition:border-color .35s;}
.ind:hover .viz-slide{border-color:rgba(30,185,126,.55);}
.pstep .viz-slide{aspect-ratio:16/10;margin-bottom:22px;}
.ind-detail .viz-slide{margin-top:18px;max-width:320px;}

/* agent-trace console — a terminal that types an illustrative agent log */
.console{background:var(--dark);border:1px solid rgba(30,185,126,.28);border-radius:16px;overflow:hidden;
  max-width:880px;margin-top:54px;}
.console-head{display:flex;align-items:center;gap:7px;padding:12px 18px;border-bottom:1px solid rgba(237,232,220,.09);}
.console-head .cdot{width:9px;height:9px;border-radius:50%;background:rgba(237,232,220,.16);}
.console-head .c-title{margin-left:10px;font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(237,232,220,.45);}
.console-body{padding:20px 22px 24px;min-height:230px;}
.console-body p{font-family:var(--ff-mono);font-size:.79rem;line-height:2;color:rgba(150,235,200,.8);
  white-space:pre-wrap;margin:0;}
.console-body p b{color:#B8F5DC;font-weight:500;}
.console-body p.typing::after{content:"▌";color:var(--green-bright);animation:blink 1s steps(1) infinite;}

/* engineering page layout */
.eng-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;}
.eng-grid .viz-slide{aspect-ratio:4/3;}
.band-dark h2 em{color:var(--green-bright);}
.stack-rows{border-top:1px solid var(--ink);margin-top:14px;}
.stack-row{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);}
.stack-row .sn2{font-family:var(--ff-mono);font-size:.68rem;color:var(--green);letter-spacing:.08em;padding-top:.5em;}
.stack-row h3{font-size:1.35rem;margin-bottom:6px;}
.stack-row p{color:var(--ink-soft);font-size:.95rem;line-height:1.6;}
.stack-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center;margin-top:40px;}
.chips{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:10px;}
.chips li{font-family:var(--ff-mono);font-size:.76rem;color:var(--ink-soft);border:1px solid var(--line-2);
  border-radius:999px;padding:.45em 1.05em;}
@media(max-width:940px){
  .eng-grid,.stack-grid{grid-template-columns:1fr;gap:40px;}
}

/* readouts as instruments: designation tag + hairline inner bezel */
.viz-slide::after{content:"";position:absolute;inset:9px;border:1px solid rgba(237,232,220,.07);
  border-radius:11px;pointer-events:none;}
.viz-tag{position:absolute;left:15px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:7px;
  font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(237,232,220,.55);}
.viz-tag i{display:block;width:5px;height:5px;border-radius:50%;background:var(--green-bright);
  animation:blink 2.4s var(--ease) infinite;font-style:normal;}

/* ============================================================
   Cinematic layer — glass panels, 3D scenes
   ============================================================ */

/* glass panels — apply alongside existing card classes */
.card-glass{background:linear-gradient(165deg,rgba(255,255,255,.6),rgba(255,255,255,.12) 60%);
  border:1px solid var(--line);border-radius:18px;
  box-shadow:0 18px 50px -34px rgba(20,18,12,.25);
  transition:border-color .35s var(--ease),box-shadow .35s var(--ease);}
.card-glass:hover{border-color:var(--green);
  box-shadow:0 24px 60px -34px rgba(10,28,23,.4);}

.pre-footer{border-top:1px solid var(--line-soft);}

/* booking */
.book-fallback{padding:44px;max-width:760px;}
.book-fallback h2{font-size:2rem;margin:14px 0;}
.book-fallback p{color:var(--ink-soft);margin-bottom:24px;line-height:1.6;}

/* case studies */
.cs-grid,.cs-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px;}
.cs-card{padding:30px;display:flex;flex-direction:column;gap:16px;}
.cs-ind{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green);}
.cs-card .cs-t{font-family:var(--ff-display);font-weight:600;font-size:1.4rem;line-height:1.2;flex:1;letter-spacing:-.005em;}
.cs-metric{font-family:var(--ff-display);font-style:italic;font-size:1.4rem;color:var(--green);line-height:1.2;display:block;}
.cs-mlabel{color:var(--muted);font-size:.84rem;margin-top:8px;line-height:1.45;}
.cs-card .tlink{font-size:.86rem;align-self:flex-start;}
.cs-results{display:grid;grid-template-columns:1fr;gap:26px;margin:16px 0 8px;}
.cs-results .stat .n.cs-oname{font-size:1.5rem;font-style:italic;color:var(--green);line-height:1.25;}
.cs-problem svg{stroke:#C96A5A;}
@media(max-width:960px){.cs-grid,.cs-row{grid-template-columns:1fr;}}

/* engagement packages */
.pkg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:44px;}
.pkg{padding:34px;display:flex;flex-direction:column;align-items:flex-start;}
.pkg-top{display:flex;justify-content:space-between;align-items:center;width:100%;}
.pn2{font-family:var(--ff-mono);color:var(--green);font-size:.85rem;letter-spacing:.08em;}
.pkg-tag{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:#04120C;
  background:var(--green-bright);padding:.45em 1em;border-radius:999px;font-weight:700;}
.pkg h3{font-size:1.7rem;margin-top:14px;}
.pkg-time{font-family:var(--ff-mono);font-size:.78rem;color:var(--muted);margin-top:6px;letter-spacing:.04em;}
.pkg-blurb{color:var(--ink-soft);margin-top:14px;line-height:1.65;}
.pkg-does{display:block;margin-top:10px;width:100%;flex:1;}
.pkg-who{color:var(--muted);font-size:.9rem;margin:16px 0 22px;font-style:italic;}
.pkg-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:start;margin-top:44px;}
.pkg-layout .pkg-grid.stacked{grid-template-columns:1fr;margin-top:0;}
.pipeline-stick{position:sticky;top:110px;height:min(70vh,640px);border-radius:18px;overflow:hidden;
  background:var(--dark);border:1px solid rgba(30,185,126,.2);}
.pipeline-stick canvas{position:absolute;inset:0;width:100%;height:100%;}
.pipeline-stick .viz-tag{position:absolute;left:16px;bottom:14px;}
@media(max-width:960px){.pkg-layout{grid-template-columns:1fr;}.pipeline-stick{display:none;}}
.pkg-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:48px;}
.pkg-mini{padding:26px 24px;display:flex;flex-direction:column;gap:8px;}
.pkg-mini h3{font-size:1.3rem;line-height:1.15;}
.pkg-mini-who{color:var(--muted);font-size:.84rem;line-height:1.5;flex:1;}
.pkg-mini .tlink{font-size:.82rem;align-self:flex-start;border-color:transparent;color:var(--green);}
.pkg-mini:hover .tlink{color:var(--green-bright);}
@media(max-width:960px){.pkg-grid{grid-template-columns:1fr;}.pkg-row{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.pkg-row{grid-template-columns:1fr;}}

/* full-viewport scene canvas (scene3d.js mounts) */
.scene-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;}
.scene-host{position:relative;}
.scene-host>.wrap{position:relative;z-index:1;}
.scene-host.no-webgl .scene-bg{display:none;}
.scene-host.no-webgl::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 80% at 70% 30%,rgba(30,185,126,.14),transparent 70%);}
