
:root{--ink:#06100c;--ink2:#0a1711;--green:#4d8f43;--green2:#76b566;--lime:#b6d99b;--cream:#f1f2e9;--paper:#f7f7f1;--blue:#152a3b;--muted:#9da8a1;--line:rgba(255,255,255,.14);--header:82px;--pad:clamp(22px,4vw,72px);--radius:28px;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ink)}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--ink);color:#fff;overflow-x:hidden;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea{font:inherit}.skip-link{position:fixed;left:16px;top:-60px;background:#fff;color:#111;padding:12px 16px;z-index:9999}.skip-link:focus{top:16px}.site-header{height:var(--header);position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);transition:transform .5s var(--ease),background .5s,border-color .5s;background:linear-gradient(to bottom,rgba(3,10,7,.62),transparent);border-bottom:1px solid transparent}.site-header.scrolled{background:rgba(5,13,10,.78);backdrop-filter:blur(18px);border-color:rgba(255,255,255,.08)}.site-header.header-hidden{transform:translateY(-100%)}.brand{display:flex;align-items:center;min-width:150px}.brand-logo{width:148px;height:56px;object-fit:contain;object-position:left center}.brand-fallback{display:flex;flex-direction:column;line-height:.82;color:#8fbd5e;font-family:Georgia,serif}.brand-fallback strong{font-size:27px}.brand-fallback small{font-size:12px;letter-spacing:.14em;margin-left:46px}.desktop-nav{display:flex;gap:clamp(18px,2vw,34px);align-items:center}.desktop-nav a{font-size:13px;color:rgba(255,255,255,.68);letter-spacing:.02em;position:relative;padding:12px 0;transition:color .3s}.desktop-nav a:hover,.desktop-nav a[aria-current=page]{color:#fff}.desktop-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:5px;height:1px;background:var(--lime);transition:right .4s var(--ease)}.desktop-nav a:hover::after,.desktop-nav a[aria-current=page]::after{right:0}.menu-toggle{display:none;width:44px;height:44px;border:0;background:transparent;position:relative}.menu-toggle span{position:absolute;left:9px;right:9px;height:1px;background:#fff;top:18px;transition:.3s}.menu-toggle span+span{top:26px}.menu-open .menu-toggle span{transform:rotate(45deg);top:22px}.menu-open .menu-toggle span+span{transform:rotate(-45deg);top:22px}.mobile-nav{position:fixed;inset:0;background:rgba(4,12,9,.98);z-index:900;display:grid;place-items:center;opacity:0;visibility:hidden;transition:.4s}.mobile-nav[aria-hidden=false]{opacity:1;visibility:visible}.mobile-nav-inner{display:flex;flex-direction:column;gap:18px;width:min(80vw,520px)}.mobile-nav a{font-size:clamp(32px,8vw,64px);font-weight:520;letter-spacing:-.04em}.mobile-nav p{color:var(--muted);margin-top:28px;line-height:1.7}.eyebrow{margin:0 0 18px;text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:700;color:var(--lime)}.eyebrow.dark{color:#386f36}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border-radius:999px;background:#fff;color:#0a100c;font-weight:650;font-size:14px;border:1px solid rgba(255,255,255,.2);transition:transform .25s,background .25s,color .25s}.button--dark{background:var(--ink);color:#fff}.button--ghost{background:transparent;color:#fff;margin-left:10px}.text-link{display:inline-flex;gap:10px;align-items:center;margin-top:18px;font-size:14px;font-weight:650;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:6px}.text-link.dark{color:var(--ink);border-color:rgba(0,0,0,.2)}.text-link span{transition:transform .3s}.text-link:hover span{transform:translate(4px,-4px)}.theme-light{background:var(--paper);color:var(--ink)}.theme-ink{background:var(--ink);color:#fff}.theme-green{background:#2f5f34;color:#fff}.theme-blue{background:var(--blue);color:#fff}.hero-scroll{height:380dvh;background:var(--ink)}.hero-scene{height:100dvh;min-height:620px;position:relative;overflow:hidden;display:flex;align-items:center;padding:var(--header) var(--pad) 0}.hero-media,.hero-media video,.hero-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-fallback{display:block}.hero-vignette{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,8,6,.76) 0%,rgba(2,8,6,.22) 54%,rgba(2,8,6,.34) 100%),linear-gradient(to top,rgba(2,8,6,.55),transparent 50%)}.hero-grid{position:absolute;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:8vw 8vw;mask-image:linear-gradient(to right,transparent,#000 55%,transparent)}.hero-copy{position:absolute;left:var(--pad);top:50%;transform:translateY(-44%);max-width:min(900px,76vw);z-index:2}.hero-copy h1,.hero-copy h2{font-size:clamp(52px,7.3vw,124px);line-height:.88;letter-spacing:-.065em;font-weight:510;margin:0}.hero-copy h2{font-size:clamp(48px,6.6vw,108px)}.hero-copy em,.page-hero h1 em,.scene h2 em{font-family:Georgia,"Times New Roman",serif;font-weight:400;color:var(--lime)}.hero-lede{max-width:620px;color:rgba(255,255,255,.72);font-size:clamp(16px,1.25vw,21px);line-height:1.55;margin:26px 0 0}.hero-copy--alt{opacity:0}.hero-scroll-indicator{position:absolute;right:var(--pad);bottom:30px;display:flex;gap:14px;align-items:center;color:rgba(255,255,255,.55);font-size:11px;text-transform:uppercase;letter-spacing:.14em;z-index:3}.hero-scroll-indicator i{display:block;width:50px;height:1px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}.hero-scroll-indicator i::after{content:"";position:absolute;inset:0;background:#fff;animation:scan 1.8s infinite}.scene{min-height:100dvh;min-height:100svh;position:relative;padding:calc(var(--header) + 6vh) var(--pad) 7vh;display:grid;align-items:center;overflow:hidden}.scene-index{position:absolute;right:var(--pad);top:calc(var(--header) + 24px);font-size:clamp(80px,13vw,220px);letter-spacing:-.08em;font-weight:700;opacity:.08;line-height:.8;pointer-events:none}.scene-copy{max-width:780px;z-index:2}.scene-copy h2,.metrics-copy h2,.systems-title h2,.capability-kicker h2{font-size:clamp(42px,5.4vw,84px);line-height:.95;letter-spacing:-.055em;font-weight:520;margin:0 0 24px}.scene-copy p{font-size:clamp(16px,1.35vw,21px);line-height:1.65;color:rgba(6,16,12,.66);max-width:670px}.theme-ink .scene-copy p,.theme-green .scene-copy p,.theme-blue .scene-copy p{color:rgba(255,255,255,.66)}.scene--intro{grid-template-columns:1.05fr .95fr;gap:6vw}.strategy-rings{aspect-ratio:1;max-width:580px;width:90%;justify-self:center;border-radius:50%;position:relative;display:grid;place-items:center}.strategy-rings span{position:absolute;border:1px solid rgba(30,86,43,.22);border-radius:50%;animation:orbit 18s linear infinite}.strategy-rings span:nth-child(1){inset:5%}.strategy-rings span:nth-child(2){inset:18%;animation-direction:reverse;animation-duration:13s}.strategy-rings span:nth-child(3){inset:31%;animation-duration:9s}.strategy-rings span::after{content:"";width:11px;height:11px;background:#4e8b45;border-radius:50%;position:absolute;top:14%;right:14%;box-shadow:0 0 30px rgba(78,139,69,.4)}.strategy-rings b{font-size:clamp(22px,3vw,44px);font-weight:520}.scene--services{display:block;padding-top:calc(var(--header) + 7vh)}.services-content{position:relative;z-index:2}.services-content>h2{font-size:clamp(40px,5.5vw,88px);line-height:.93;letter-spacing:-.055em;font-weight:510;margin:0 0 6vh;max-width:1100px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.glass-card{min-height:280px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.045);border-radius:24px;padding:24px;display:flex;flex-direction:column;backdrop-filter:blur(10px);transition:transform .5s var(--ease),background .5s}.glass-card:hover{transform:translateY(-8px);background:rgba(255,255,255,.08)}.glass-card>span{font-size:11px;color:var(--lime)}.glass-card h3{font-size:22px;margin:auto 0 14px;letter-spacing:-.025em}.glass-card p{font-size:14px;line-height:1.6;color:rgba(255,255,255,.6);margin:0}.scene--metrics{grid-template-columns:1fr 1.25fr;gap:7vw}.metrics-copy h2{max-width:650px}.metrics-grid{display:grid;gap:12px}.metric{display:grid;grid-template-columns:190px 1fr;align-items:center;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.18)}.metric strong{font-size:clamp(46px,6vw,90px);font-weight:500;letter-spacing:-.06em}.metric span{color:rgba(255,255,255,.72);font-size:16px}.scene--ecosystem{grid-template-columns:.9fr 1.1fr;gap:6vw}.ecosystem-copy h2{font-size:clamp(42px,5vw,78px);line-height:.95;letter-spacing:-.055em;margin:0 0 20px;font-weight:520}.ecosystem-copy p{font-size:17px;line-height:1.65;color:rgba(6,16,12,.64)}.ecosystem-diagram{position:relative;aspect-ratio:1;max-width:650px;width:95%;justify-self:center}.ecosystem-diagram svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:rgba(39,92,48,.2);stroke-width:1}.eco-core,.eco-node{position:absolute;border:1px solid rgba(39,92,48,.22);background:rgba(255,255,255,.75);backdrop-filter:blur(9px);border-radius:999px;padding:12px 18px;font-size:12px;white-space:nowrap}.eco-core{left:50%;top:50%;transform:translate(-50%,-50%);width:130px;height:130px;display:grid;place-items:center;text-align:center;border-radius:50%;font-weight:700}.n1{left:50%;top:2%;transform:translateX(-50%)}.n2{right:4%;top:30%}.n3{right:13%;bottom:10%}.n4{left:10%;bottom:12%}.n5{left:2%;top:33%}.cta-scene{min-height:82dvh;padding:12vh var(--pad);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.cta-scene h2{font-size:clamp(52px,8vw,126px);line-height:.88;letter-spacing:-.065em;font-weight:510;max-width:1200px;margin:0 0 40px}.cta-scene h2.dark{color:var(--ink)}.cta-lines{position:absolute;inset:-20%;background:repeating-radial-gradient(circle at 72% 50%,transparent 0 34px,rgba(122,187,103,.08) 35px 36px);transform:skewX(-10deg)}.page-hero{height:100dvh;min-height:620px;padding:var(--header) var(--pad) 7vh;display:flex;align-items:flex-end;position:relative;overflow:hidden}.page-hero-bg,.page-hero-canvas{position:absolute;inset:0;width:100%;height:100%}.page-hero-bg{background:radial-gradient(circle at 72% 35%,rgba(105,166,91,.38),transparent 25%),radial-gradient(circle at 48% 64%,rgba(77,121,93,.16),transparent 32%),linear-gradient(135deg,#06100c,#0d1d15 55%,#0f2a1c)}.page-hero--technical{background:#06100c}.page-hero--advisory .page-hero-bg{background:radial-gradient(circle at 70% 30%,rgba(115,138,119,.22),transparent 26%),linear-gradient(145deg,#07100d,#151a18)}.page-hero--contact .page-hero-bg{background:radial-gradient(circle at 74% 25%,rgba(104,157,91,.32),transparent 28%),linear-gradient(135deg,#06100c,#10251b)}.page-hero--privacy .page-hero-bg{background:linear-gradient(135deg,#07100c,#14241d)}.page-hero-inner{position:relative;z-index:2;max-width:1100px}.page-hero h1{font-size:clamp(56px,8vw,130px);line-height:.86;letter-spacing:-.07em;font-weight:510;margin:0;max-width:1100px}.page-hero p:not(.eyebrow){max-width:670px;color:rgba(255,255,255,.68);font-size:clamp(16px,1.4vw,22px);line-height:1.55;margin-top:26px}.page-hero-tag{position:absolute;right:var(--pad);bottom:7vh;border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:12px 16px;font-size:11px;color:rgba(255,255,255,.64);letter-spacing:.1em;text-transform:uppercase}.page-hero-orb{position:absolute;border-radius:50%;filter:blur(1px);border:1px solid rgba(168,216,145,.12)}.orb-a{width:42vw;height:42vw;right:-9vw;top:-10vw}.orb-b{width:28vw;height:28vw;right:16vw;top:17vw}.sustainability-partners{grid-template-columns:1fr 1.1fr;gap:5vw}.partner-network{position:relative;aspect-ratio:1.4;max-width:700px}.partner-network svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:rgba(57,111,58,.3);stroke-width:1.2}.partner-node{position:absolute;z-index:2;padding:13px 18px;border:1px solid rgba(47,100,50,.24);border-radius:999px;background:rgba(255,255,255,.8);font-size:12px}.p1{left:4%;top:47%}.p2{right:13%;top:22%}.p3{right:0;top:47%}.p4{right:14%;bottom:18%}.nexus-scene{display:grid;grid-template-columns:.85fr 1.15fr;gap:6vw}.nexus-copy h2{font-size:clamp(46px,5.5vw,86px);line-height:.92;letter-spacing:-.055em;margin:0 0 22px;font-weight:520}.nexus-copy p{color:rgba(255,255,255,.62);line-height:1.65}.nexus-flow{display:grid;gap:0}.nexus-item{display:grid;grid-template-columns:44px 1fr 180px;align-items:center;padding:20px 0}.nexus-item span{font-size:10px;color:var(--lime)}.nexus-item strong{font-size:clamp(26px,3vw,48px);font-weight:520}.nexus-item small{color:rgba(255,255,255,.55);text-align:right}.nexus-line{height:1px;background:rgba(255,255,255,.18)}.systems-scene{display:grid;grid-template-columns:.9fr 1.1fr;gap:7vw}.systems-title h2{max-width:640px}.systems-stack{display:grid;gap:12px}.system-card{display:grid;grid-template-columns:70px 1fr;gap:22px;padding:22px;border:1px solid rgba(255,255,255,.18);border-radius:20px;background:rgba(255,255,255,.06)}.system-card>span{width:54px;height:54px;border-radius:50%;border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;font-family:Georgia,serif;font-size:24px}.system-card h3{font-size:22px;margin:0 0 8px}.system-card p{margin:0;color:rgba(255,255,255,.63);line-height:1.55;font-size:14px}.tech-focus{grid-template-columns:1fr 1fr;gap:6vw}.tech-topology{position:relative;aspect-ratio:1;max-width:560px;justify-self:center;width:90%;background:radial-gradient(circle,rgba(75,143,67,.1),transparent 60%);border:1px solid rgba(48,101,58,.15);border-radius:50%}.tech-topology i,.tech-topology b{position:absolute;width:12px;height:12px;background:#5d9e58;border-radius:50%;box-shadow:0 0 30px rgba(76,147,73,.32)}.tech-topology i:nth-child(1){left:20%;top:30%}.tech-topology i:nth-child(2){left:48%;top:12%}.tech-topology i:nth-child(3){right:18%;top:28%}.tech-topology i:nth-child(4){right:12%;bottom:27%}.tech-topology i:nth-child(5){left:45%;bottom:12%}.tech-topology i:nth-child(6){left:13%;bottom:27%}.tech-topology b{width:160px;height:1px;background:rgba(48,101,58,.24);box-shadow:none;border-radius:0;left:50%;top:50%;transform-origin:left}.tech-topology b:nth-of-type(1){transform:rotate(-62deg)}.tech-topology b:nth-of-type(2){transform:rotate(4deg)}.tech-topology b:nth-of-type(3){transform:rotate(128deg)}.capability-scene{display:grid;grid-template-columns:.85fr 1.15fr;gap:7vw}.capability-list{border-top:1px solid rgba(255,255,255,.16)}.cap-row{display:grid;grid-template-columns:52px 1fr 170px;gap:16px;align-items:center;border-bottom:1px solid rgba(255,255,255,.16);padding:21px 0}.cap-row span{font-size:10px;color:var(--lime)}.cap-row strong{font-size:clamp(22px,2.4vw,38px);font-weight:510;letter-spacing:-.03em}.cap-row small{text-align:right;color:rgba(255,255,255,.55)}.intelligence-scene,.secure-scene,.esg-scene{grid-template-columns:1fr 1fr;gap:7vw}.data-field{position:relative;aspect-ratio:1;max-width:570px;justify-self:center;width:90%;border-radius:50%;border:1px solid rgba(255,255,255,.13);display:grid;place-items:center}.data-field span{position:absolute;border-radius:50%;border:1px solid rgba(169,197,224,.16);inset:10%;animation:orbit 15s linear infinite}.data-field span:nth-child(2){inset:20%;animation-duration:11s;animation-direction:reverse}.data-field span:nth-child(3){inset:30%;animation-duration:8s}.data-field span:nth-child(4){inset:40%;animation-duration:6s;animation-direction:reverse}.data-field span:nth-child(5){width:9px;height:9px;inset:auto;top:16%;left:52%;background:#b4d9bf;border:0;box-shadow:0 0 30px rgba(180,217,191,.45)}.data-core{text-align:center;color:rgba(255,255,255,.78);font-size:13px}.secure-stack{height:min(62vh,550px);position:relative}.secure-stack div{position:absolute;left:10%;right:10%;height:120px;border:1px solid rgba(42,94,50,.22);border-radius:24px;background:rgba(255,255,255,.76);box-shadow:0 24px 70px rgba(17,39,23,.08);display:flex;align-items:center;padding:0 28px;font-size:22px;font-weight:600;letter-spacing:-.03em}.secure-stack div:nth-child(1){top:0;transform:translateX(-4%)}.secure-stack div:nth-child(2){top:23%;transform:translateX(4%)}.secure-stack div:nth-child(3){top:46%;transform:translateX(-2%)}.secure-stack div:nth-child(4){top:69%;transform:translateX(6%)}.esg-radar{aspect-ratio:1;max-width:520px;width:90%;justify-self:center;border-radius:50%;border:1px solid rgba(255,255,255,.2);position:relative;display:grid;place-items:center;background:conic-gradient(from 0deg,rgba(255,255,255,.02),rgba(182,217,155,.18),rgba(255,255,255,.02) 22%);animation:spinbg 12s linear infinite}.esg-radar span{position:absolute;border:1px solid rgba(255,255,255,.14);border-radius:50%;inset:20%}.esg-radar span:nth-child(2){inset:35%}.esg-radar span:nth-child(3){inset:47%}.esg-radar b{font-size:46px;font-weight:500;letter-spacing:-.05em}.advisory-intro{min-height:65dvh;padding:12vh var(--pad);display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:center}.advisory-intro h2{font-size:clamp(42px,5vw,80px);line-height:.95;letter-spacing:-.055em;margin:0}.advisory-intro>p{font-size:19px;line-height:1.65;color:rgba(6,16,12,.64)}.advisor-scene{min-height:100dvh;min-height:100svh;padding:calc(var(--header) + 5vh) var(--pad) 6vh;display:grid;grid-template-columns:.72fr 1.28fr;gap:7vw;align-items:center;position:relative;overflow:hidden}.advisor-number{position:absolute;right:var(--pad);top:10vh;font-size:clamp(110px,18vw,280px);font-weight:700;letter-spacing:-.09em;opacity:.06}.advisor-photo{aspect-ratio:4/5;max-height:68vh;border-radius:28px;overflow:hidden;position:relative;background:radial-gradient(circle at 50% 30%,rgba(92,145,83,.28),transparent 40%),#dfe6db}.advisor-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.75) contrast(1.03);transform:scale(1.04)}.advisor-photo span{display:none;position:absolute;inset:0;place-items:center;font-family:Georgia,serif;font-size:110px;color:#386f36}.advisor-photo.photo-fallback img{display:none}.advisor-photo.photo-fallback span{display:grid}.advisor-copy{position:relative;z-index:2;max-width:820px}.advisor-copy h2{font-size:clamp(48px,6.5vw,104px);line-height:.88;letter-spacing:-.06em;font-weight:510;margin:0 0 30px}.advisor-copy p{font-size:clamp(15px,1.2vw,18px);line-height:1.68;max-width:760px;color:rgba(6,16,12,.62)}.theme-ink .advisor-copy p{color:rgba(255,255,255,.63)}.advisor-copy .advisor-intro{font-size:clamp(19px,1.6vw,25px);line-height:1.5;color:inherit}.contact-layout{min-height:100dvh;padding:12vh var(--pad);display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}.contact-panel h2{font-size:clamp(38px,4.5vw,70px);line-height:1.02;letter-spacing:-.05em;font-weight:510}.hours{margin-top:8vh;display:grid;grid-template-columns:1fr 1fr;gap:14px 30px;padding-top:26px;border-top:1px solid rgba(6,16,12,.16)}.hours span{color:rgba(6,16,12,.55)}.form-panel{padding:38px;border:1px solid rgba(6,16,12,.12);border-radius:30px;background:#fff}.contact-form{display:grid;gap:20px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-form label{display:grid;gap:8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#435048}.contact-form input,.contact-form textarea{width:100%;border:0;border-bottom:1px solid #c9d0c9;background:transparent;padding:12px 0;color:#0a130e;outline:none;border-radius:0}.contact-form input:focus,.contact-form textarea:focus{border-color:#356c38}.contact-form textarea{resize:vertical;min-height:140px}.hp-field{position:absolute!important;left:-9999px!important}.submit-button{justify-self:start;min-width:170px}.button-spinner{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.submit-button.sending .button-label{display:none}.submit-button.sending .button-spinner{display:block}.form-status{min-height:24px;font-size:14px}.form-status.success{color:#2d6a35}.form-status.error{color:#9c2e2e}.privacy-layout{padding:12vh var(--pad);display:grid;grid-template-columns:280px 1fr;gap:8vw}.privacy-nav{position:sticky;top:120px;align-self:start;display:grid;gap:14px}.privacy-nav a{font-size:13px;color:rgba(6,16,12,.55);border-bottom:1px solid rgba(6,16,12,.1);padding-bottom:12px}.privacy-copy{max-width:850px}.privacy-copy section{padding:0 0 9vh;margin-bottom:9vh;border-bottom:1px solid rgba(6,16,12,.12)}.privacy-copy h2{font-size:clamp(36px,4vw,62px);letter-spacing:-.05em;margin:0 0 20px}.privacy-copy p{font-size:18px;line-height:1.7;color:rgba(6,16,12,.65)}.privacy-copy a{text-decoration:underline}.error-page{min-height:100dvh;padding:var(--header) var(--pad);display:flex;flex-direction:column;justify-content:center}.error-page h1{font-size:clamp(64px,10vw,150px);letter-spacing:-.07em;margin:0}.error-page p{color:rgba(255,255,255,.6);font-size:18px}.error-page .button{align-self:flex-start;margin-top:24px}.site-footer{background:#030806;border-top:1px solid rgba(255,255,255,.08);padding:8vh var(--pad) 4vh;display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:4vw;color:#fff}.footer-mark{display:flex;align-items:center;gap:14px;font-weight:650}.orb{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#c9e2a5,#4e8d48 60%,#174522);box-shadow:0 0 30px rgba(92,161,79,.3)}.footer-copy p{margin:0 0 8px;color:rgba(255,255,255,.52);font-size:13px}.footer-links{display:flex;gap:18px;justify-content:flex-end;font-size:13px}.footer-links a{color:rgba(255,255,255,.62)}.footer-meta{grid-column:1/-1;margin-top:7vh;padding-top:22px;border-top:1px solid rgba(255,255,255,.08);font-size:10px;letter-spacing:.16em;color:rgba(255,255,255,.35)}.cursor-dot{position:fixed;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:rgba(190,225,165,.8);pointer-events:none;z-index:9999;mix-blend-mode:difference;transition:width .2s,height .2s,margin .2s}.cursor-dot.active{width:34px;height:34px;margin:-11px}.reveal{will-change:transform,opacity,filter}.no-js .reveal{opacity:1!important;transform:none!important}.dark{color:var(--ink)}@keyframes scan{0%{transform:translateX(-100%)}100%{transform:translateX(120%)}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinbg{to{transform:rotate(360deg)}}

/* ===== 2026 motion + section-scroll refinement ===== */
@media (min-width:821px){
  .scene,.advisor-scene,.advisory-intro,.cta-scene{height:100dvh;min-height:100svh;}
  .snap-stage{scroll-margin-top:0;isolation:isolate;position:relative;}
  .snap-stage::before{content:"";position:absolute;left:0;top:0;width:0;height:2px;background:linear-gradient(90deg,transparent,var(--lime),transparent);opacity:.45;z-index:8;pointer-events:none;transition:width 1.05s var(--ease)}
  .snap-stage.is-stage-active::before{width:100%}
  .advisory-intro{position:relative;overflow:hidden;}
}

/* Use the supplied original logo at a size that preserves the full mark. */
.brand{min-width:168px}.brand-logo{width:154px;height:68px;object-fit:contain;object-position:left center;filter:drop-shadow(0 8px 22px rgba(0,0,0,.2));transition:transform .55s var(--ease),filter .55s var(--ease)}
.brand:hover .brand-logo{transform:translateY(-2px) scale(1.025);filter:drop-shadow(0 12px 28px rgba(91,151,74,.22))}
.footer-logo{width:152px;height:90px;object-fit:contain;object-position:left center;opacity:.94;filter:drop-shadow(0 12px 30px rgba(81,142,67,.16))}
.footer-mark{align-items:flex-start;flex-direction:column;gap:8px}.footer-mark span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.48)}

/* Ambient motion across the home page. */
.hero-grid{animation:gridDrift 16s linear infinite}.hero-vignette::after{content:"";position:absolute;inset:-30%;background:radial-gradient(circle at 65% 42%,rgba(104,174,96,.12),transparent 28%);animation:heroGlow 11s ease-in-out infinite alternate;pointer-events:none}
.strategy-rings::before{content:"";position:absolute;inset:2%;border-radius:50%;background:conic-gradient(from 20deg,transparent 0 70%,rgba(78,139,69,.12) 82%,transparent 100%);animation:orbit 24s linear infinite;filter:blur(2px)}
.strategy-rings b{position:relative;z-index:3}.strategy-rings b::after{content:"";display:block;width:34px;height:1px;background:#4e8b45;margin:12px auto 0;animation:lineBreathe 2.4s ease-in-out infinite}
.service-orbit{position:absolute;inset:-30% -12%;pointer-events:none;opacity:.55;overflow:hidden}
.service-orbit::before,.service-orbit::after{content:"";position:absolute;left:55%;top:52%;border:1px solid rgba(182,217,155,.12);border-radius:50%;transform:translate(-50%,-50%);animation:serviceOrbit 24s linear infinite}
.service-orbit::before{width:52vw;height:52vw}.service-orbit::after{width:34vw;height:34vw;animation-duration:16s;animation-direction:reverse;border-style:dashed}
.glass-card{position:relative;overflow:hidden;transform-style:preserve-3d}.glass-card::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 15%,rgba(255,255,255,.09) 45%,transparent 70%);transform:translateX(-130%);transition:transform .85s var(--ease);pointer-events:none}.glass-card:hover::before{transform:translateX(130%)}
.metric{position:relative;overflow:hidden}.metric::after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:2px;background:rgba(216,238,205,.68);transition:width .9s var(--ease)}.metric.is-visible::after,.metric:hover::after{width:100%}

/* Circular-economy labels now orbit continuously around the system. */
.ecosystem-diagram{overflow:visible}.ecosystem-diagram svg{animation:ecoSvgSpin 44s linear infinite;transform-origin:50% 50%}.eco-core{z-index:4;box-shadow:0 22px 55px rgba(39,92,48,.08);animation:corePulse 4.5s ease-in-out infinite}.eco-node{left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;z-index:5;will-change:transform;box-shadow:0 12px 32px rgba(40,85,47,.08);transition:box-shadow .3s,border-color .3s}.eco-node:hover{box-shadow:0 18px 40px rgba(40,85,47,.17);border-color:rgba(39,92,48,.44)}

/* Motion for the sustainability and technology diagrams. */
.partner-network{will-change:transform}.partner-node{animation:nodeFloat 4.8s ease-in-out infinite}.partner-node:nth-of-type(2){animation-delay:-1.2s}.partner-node:nth-of-type(3){animation-delay:-2.4s}.partner-node:nth-of-type(4){animation-delay:-3.6s}.partner-network svg path{stroke-dasharray:8 12;animation:dashFlow 18s linear infinite}
.system-card{transition:transform .45s var(--ease),background .45s,border-color .45s}.system-card:hover{transform:translateX(10px);background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3)}
.tech-topology{animation:topologyBreathe 5.5s ease-in-out infinite}.tech-topology i{animation:nodePulse 2.8s ease-in-out infinite}.tech-topology i:nth-child(2){animation-delay:-.5s}.tech-topology i:nth-child(3){animation-delay:-1s}.tech-topology i:nth-child(4){animation-delay:-1.5s}.tech-topology i:nth-child(5){animation-delay:-2s}.tech-topology i:nth-child(6){animation-delay:-2.5s}.tech-topology b{animation:lineSignal 3.4s ease-in-out infinite;transform-origin:left center}
.data-field{background:radial-gradient(circle at 50% 50%,rgba(95,144,188,.08),transparent 60%)}.data-core{animation:coreFloat 3.5s ease-in-out infinite}.secure-stack div{will-change:transform;animation:stackFloat 5.8s ease-in-out infinite}.secure-stack div:nth-child(2){animation-delay:-1.2s}.secure-stack div:nth-child(3){animation-delay:-2.4s}.secure-stack div:nth-child(4){animation-delay:-3.6s}
.esg-radar::after{content:"";position:absolute;inset:8%;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 74%,rgba(231,247,220,.27) 86%,transparent 100%);animation:spinbg 5.5s linear infinite;mix-blend-mode:screen}.esg-radar b{position:relative;z-index:2;animation:coreFloat 3.2s ease-in-out infinite}
.cta-lines{animation:ctaWave 18s linear infinite}.cta-scene .button{position:relative;z-index:3}

/* Advisory portraits from the supplied image pack. */
.advisor-photo::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.22);border-radius:inherit;pointer-events:none}.theme-light .advisor-photo::after{border-color:rgba(43,89,49,.16)}.advisor-photo img{transition:filter .7s var(--ease),transform 1s var(--ease)}.advisor-photo:hover img{filter:saturate(.95) contrast(1.04);transform:scale(1.075)}.advisor-number{will-change:transform}

/* Stage transition polish: each full-screen composition gains depth as it becomes active. */
.snap-stage>.scene-copy,.snap-stage>.metrics-copy,.snap-stage>.services-content,.snap-stage>.systems-title,.snap-stage>.capability-kicker,.snap-stage>.nexus-copy,.snap-stage>.ecosystem-copy,.snap-stage>.advisor-copy,.snap-stage>.contact-panel,.snap-stage>.form-panel{transition:transform .7s var(--ease),opacity .7s var(--ease)}
@media (min-width:821px){.snap-stage:not(.is-stage-active)>.scene-copy,.snap-stage:not(.is-stage-active)>.metrics-copy,.snap-stage:not(.is-stage-active)>.services-content,.snap-stage:not(.is-stage-active)>.systems-title,.snap-stage:not(.is-stage-active)>.capability-kicker,.snap-stage:not(.is-stage-active)>.nexus-copy,.snap-stage:not(.is-stage-active)>.ecosystem-copy,.snap-stage:not(.is-stage-active)>.advisor-copy{opacity:.72;transform:translateY(12px)}}

@keyframes gridDrift{0%{background-position:0 0,0 0}100%{background-position:8vw 8vw,8vw 8vw}}
@keyframes heroGlow{0%{transform:translate3d(-3%,-1%,0) scale(.96);opacity:.45}100%{transform:translate3d(4%,2%,0) scale(1.05);opacity:.85}}
@keyframes lineBreathe{0%,100%{transform:scaleX(.55);opacity:.45}50%{transform:scaleX(1);opacity:1}}
@keyframes serviceOrbit{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes ecoSvgSpin{to{transform:rotate(360deg)}}
@keyframes corePulse{0%,100%{transform:translate(-50%,-50%) scale(1);box-shadow:0 22px 55px rgba(39,92,48,.08)}50%{transform:translate(-50%,-50%) scale(1.035);box-shadow:0 25px 70px rgba(39,92,48,.16)}}
@keyframes nodeFloat{0%,100%{translate:0 0}50%{translate:0 -8px}}
@keyframes dashFlow{to{stroke-dashoffset:-200}}
@keyframes topologyBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}
@keyframes nodePulse{0%,100%{box-shadow:0 0 20px rgba(76,147,73,.24);transform:scale(.9)}50%{box-shadow:0 0 42px rgba(76,147,73,.5);transform:scale(1.18)}}
@keyframes lineSignal{0%,100%{opacity:.28}50%{opacity:.72}}
@keyframes coreFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes stackFloat{0%,100%{translate:0 0}50%{translate:0 -9px}}
@keyframes ctaWave{to{transform:skewX(-10deg) rotate(360deg)}}

@media(max-width:820px){
 .brand{min-width:145px}.brand-logo{width:135px;height:60px}.footer-logo{width:138px;height:82px}
 .ecosystem-diagram{width:min(94vw,520px)}
 .eco-node{font-size:10px;padding:9px 12px}
}
@media(prefers-reduced-motion:reduce){.hero-grid,.hero-vignette::after,.strategy-rings::before,.strategy-rings b::after,.service-orbit::before,.service-orbit::after,.ecosystem-diagram svg,.eco-core,.partner-node,.partner-network svg path,.tech-topology,.tech-topology i,.tech-topology b,.data-core,.secure-stack div,.esg-radar::after,.esg-radar b,.cta-lines{animation:none!important}.snap-stage::before{display:none}.eco-node{transform:none!important}}

/* ===== Final contact/footer + header polish v3 ===== */
/* The supplied image is the complete header brand; do not render a second wordmark. */
.site-header .brand-fallback{display:none!important}
.site-header .brand{min-width:0}

/* Large pale section counters were decorative only and are intentionally removed site-wide. */
.scene-index,.advisor-number{display:none!important}

/* Contact must own the full height of its form. It can still behave as one scroll scene when
   it fits the viewport, but it is never clipped to 100dvh and can never paint over the footer. */
.contact-layout{
  position:relative;
  z-index:2;
  height:auto!important;
  min-height:100dvh;
  overflow:visible!important;
  align-items:center;
  padding-top:calc(var(--header) + clamp(34px,5vh,64px));
  padding-bottom:clamp(64px,8vh,100px);
}
.contact-panel,.form-panel{position:relative;z-index:2;align-self:center;min-width:0}
.form-panel{max-width:100%}
.site-footer{position:relative;z-index:1;clear:both;min-height:clamp(300px,38dvh,470px)}

/* Compact the contact composition on laptop-height desktop screens without changing the
   section's intrinsic height. If the form still needs more room the section simply grows. */
@media (min-width:821px) and (max-height:900px){
  .contact-layout{padding-top:calc(var(--header) + 24px);padding-bottom:52px;gap:5vw}
  .contact-panel h2{font-size:clamp(34px,4vw,58px);margin-top:0}
  .hours{margin-top:4vh;padding-top:20px;gap:10px 24px}
  .form-panel{padding:24px 30px;border-radius:26px}
  .contact-form{gap:12px}
  .contact-form label{gap:5px;font-size:11px}
  .contact-form input,.contact-form textarea{padding:8px 0}
  .contact-form textarea{min-height:92px;max-height:130px}
  .submit-button{min-height:48px}
  .form-status{min-height:18px;font-size:13px}
}
@media (min-width:821px) and (max-height:720px){
  .contact-layout{padding-top:calc(var(--header) + 16px);padding-bottom:42px}
  .contact-panel h2{font-size:clamp(31px,3.5vw,48px)}
  .hours{margin-top:22px}
  .form-panel{padding:18px 26px}
  .contact-form{gap:9px}
  .contact-form input,.contact-form textarea{padding:6px 0}
  .contact-form textarea{min-height:70px;max-height:92px}
  .submit-button{min-height:44px}
}
@media (max-width:820px){
  .contact-layout{height:auto!important;min-height:0;padding-top:10vh;padding-bottom:10vh;overflow:visible!important}
  .contact-panel,.form-panel{align-self:auto}
}
\n\n/* ===== Cinematic hero integration v4 =====\n   The Veo film is treated as the hero, not as a texture behind UI chrome. */\n.hero-scroll{height:360dvh;background:#07100c}\n.hero-scene{min-height:100svh;background:#07100c;isolation:isolate}\n.hero-media{background:#07100c}\n.hero-media video{\n  object-fit:cover;\n  object-position:50% 50%;\n  transform:scale(1.012);\n  filter:saturate(.90) contrast(1.06) brightness(.88);\n  backface-visibility:hidden;\n}\n.hero-vignette{\n  z-index:1;\n  background:\n    linear-gradient(90deg,rgba(2,9,6,.80) 0%,rgba(2,9,6,.57) 25%,rgba(2,9,6,.24) 48%,rgba(2,9,6,.04) 72%,rgba(2,9,6,.10) 100%),\n    linear-gradient(180deg,rgba(1,7,5,.34) 0%,transparent 28%,transparent 66%,rgba(1,7,5,.48) 100%);\n}\n.hero-vignette::after{\n  content:"";position:absolute;inset:0;\n  background:radial-gradient(circle at 82% 36%,rgba(190,220,164,.08),transparent 34%);\n  animation:none;pointer-events:none;\n}\n/* The old perspective grid looked artificial over real aerial footage. */\n.hero-grid{display:none}\n.hero-copy{\n  z-index:3;\n  top:auto;bottom:clamp(96px,13vh,150px);\n  transform:none;\n  max-width:min(790px,66vw);\n  text-shadow:0 2px 28px rgba(0,0,0,.18);\n}\n.hero-copy .eyebrow{margin-bottom:14px;color:#c0dda8}\n.hero-copy h1,.hero-copy h2{\n  font-size:clamp(48px,5.65vw,94px);\n  line-height:.92;\n  letter-spacing:-.058em;\n  text-wrap:balance;\n}\n.hero-copy h2{font-size:clamp(44px,5vw,82px);max-width:780px}\n.hero-copy em{color:#c2dfa8}\n.hero-lede{\n  max-width:600px;\n  margin-top:22px;\n  font-size:clamp(15px,1.08vw,18px);\n  line-height:1.6;\n  color:rgba(255,255,255,.78);\n}\n.hero-copy .text-link{margin-top:18px;color:rgba(255,255,255,.92);border-color:rgba(255,255,255,.38)}\n.hero-scroll-indicator{display:none!important}\n.hero-progress{\n  position:absolute;z-index:4;right:var(--pad);bottom:34px;\n  width:min(310px,28vw);display:grid;grid-template-columns:auto 1fr;\n  gap:8px 14px;align-items:center;color:rgba(255,255,255,.68);\n}\n.hero-progress-copy{display:flex;align-items:baseline;gap:5px;font-size:11px;letter-spacing:.15em;font-weight:700}\n.hero-progress-copy em{font-style:normal;font-weight:500;color:rgba(255,255,255,.34)}\n.hero-progress-copy span::after{content:" /";color:rgba(255,255,255,.34);margin-left:4px}\n.hero-progress-track{height:1px;background:rgba(255,255,255,.22);overflow:hidden;position:relative}\n.hero-progress-track i{display:block;width:100%;height:100%;background:#c0dda8;transform:scaleX(0);transform-origin:left center;will-change:transform}\n.hero-progress-label{grid-column:2;text-transform:uppercase;font-size:9px;letter-spacing:.16em;color:rgba(255,255,255,.46)}\n\n@media(max-width:820px){\n  .hero-scroll{height:320dvh}\n  .hero-media video{object-position:58% 50%;filter:saturate(.92) contrast(1.05) brightness(.82)}\n  .hero-vignette{background:linear-gradient(180deg,rgba(2,9,6,.38),rgba(2,9,6,.20) 32%,rgba(2,9,6,.63) 100%),linear-gradient(90deg,rgba(2,9,6,.42),transparent 85%)}\n  .hero-copy{left:24px;right:24px;bottom:clamp(92px,13vh,128px);max-width:none}\n  .hero-copy h1,.hero-copy h2{font-size:clamp(43px,11.5vw,72px);line-height:.92}\n  .hero-copy h2{font-size:clamp(40px,10vw,64px)}\n  .hero-lede{font-size:15px;max-width:520px}\n  .hero-progress{right:24px;left:24px;bottom:28px;width:auto;grid-template-columns:auto 1fr}\n}\n@media(max-width:540px){\n  .hero-scene{min-height:100svh;height:100svh}\n  .hero-media video{object-position:61% center;transform:scale(1.02)}\n  .hero-copy{bottom:112px}\n  .hero-copy h1,.hero-copy h2{font-size:clamp(40px,12vw,58px)}\n  .hero-copy .text-link{font-size:13px}\n  .hero-progress-label{display:none}\n}\n@media(prefers-reduced-motion:reduce){.hero-media video{filter:saturate(.9) contrast(1.04) brightness(.84)}}\n
/* ===== Hero scrub performance v5 =====
   Frame-sprite canvas replaces random-access MP4 seeking for deterministic forward/reverse scrub. */
.hero-scroll{height:360dvh;position:relative}
.hero-scene{position:sticky!important;top:0;height:100dvh;min-height:100svh}
.hero-media{overflow:hidden}
.hero-poster,.hero-scrub-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-poster{object-fit:cover;object-position:50% 50%;filter:saturate(.90) contrast(1.06) brightness(.88);transition:opacity .22s linear;z-index:0}
.hero-scrub-canvas{z-index:0;background:#07100c;filter:saturate(.90) contrast(1.06) brightness(.88);backface-visibility:hidden}
@media(max-width:820px){
  .hero-scroll{height:320dvh}
  .hero-poster{object-position:58% 50%;filter:saturate(.92) contrast(1.05) brightness(.82)}
  .hero-scrub-canvas{filter:saturate(.92) contrast(1.05) brightness(.82)}
}
@media(max-width:540px){.hero-poster{object-position:61% center}}

/* ===== Expanded footer v7 ===== */
.site-footer{
  position:relative;
  z-index:1;
  clear:both;
  min-height:0;
  padding:clamp(62px,8vh,96px) var(--pad) clamp(28px,4vh,46px);
  display:block;
  overflow:hidden;
  background:
    radial-gradient(circle at 7% 5%,rgba(99,151,78,.12),transparent 30%),
    radial-gradient(circle at 92% 100%,rgba(126,169,100,.06),transparent 28%),
    #030806;
  border-top:1px solid rgba(255,255,255,.08);
  color:#fff;
}
.site-footer::before{
  content:"";
  position:absolute;
  width:420px;height:420px;
  right:-260px;top:-280px;
  border:1px solid rgba(182,217,155,.08);
  border-radius:50%;
  box-shadow:0 0 0 70px rgba(182,217,155,.025),0 0 0 140px rgba(182,217,155,.018);
  pointer-events:none;
}
.footer-main{
  position:relative;
  display:grid;
  grid-template-columns:minmax(270px,1.35fr) minmax(145px,.62fr) minmax(210px,.9fr) minmax(235px,.9fr);
  gap:clamp(34px,5vw,82px);
  align-items:start;
}
.footer-brand-block{max-width:390px}
.footer-brand{display:inline-flex;align-items:center;margin-bottom:24px}
.footer-logo{width:158px;height:68px;object-fit:contain;object-position:left center}
.footer-statement{margin:0 0 14px;max-width:330px;font-size:clamp(18px,1.45vw,23px);line-height:1.35;letter-spacing:-.025em;color:rgba(255,255,255,.92)}
.footer-address{margin:0;color:rgba(255,255,255,.48);font-size:13px;line-height:1.65}
.footer-cta{display:inline-flex;align-items:center;gap:9px;margin-top:28px;padding-bottom:7px;border-bottom:1px solid rgba(182,217,155,.45);font-size:13px;font-weight:650;color:#d5e7c6;transition:color .3s,border-color .3s}
.footer-cta span{transition:transform .3s var(--ease)}
.footer-cta:hover{color:#fff;border-color:#fff}.footer-cta:hover span{transform:translate(3px,-3px)}
.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.footer-heading{margin:2px 0 11px;text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:750;color:#a9ce8c}
.footer-column>a{position:relative;font-size:13px;line-height:1.45;color:rgba(255,255,255,.58);transition:color .28s,transform .28s}
.footer-column>a:hover{color:#fff;transform:translateX(3px)}
.footer-hours-block{gap:0}
.footer-hours-row{width:100%;display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:12.5px}
.footer-hours-row span{color:rgba(255,255,255,.48)}
.footer-hours-row strong{font-weight:620;color:rgba(255,255,255,.84);white-space:nowrap}
.footer-small-label{margin:25px 0 7px;text-transform:uppercase;letter-spacing:.14em;font-size:9px;font-weight:700;color:rgba(182,217,155,.7)}
.footer-office{margin:0;font-size:13px;color:rgba(255,255,255,.55)}
.footer-bottom{position:relative;margin-top:clamp(52px,7vh,82px);padding-top:24px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;gap:30px}
.footer-meta{grid-column:auto;margin:0;padding:0;border:0;font-size:10px;letter-spacing:.16em;color:rgba(255,255,255,.32)}
.footer-bottom-links{display:flex;align-items:center;gap:24px;font-size:11px}
.footer-bottom-links a{color:rgba(255,255,255,.46);transition:color .25s}
.footer-bottom-links a:hover{color:#fff}
.footer-bottom-links span{display:inline-block;margin-left:4px;transition:transform .25s}
.footer-bottom-links a:hover span{transform:translateY(-3px)}
