    :root{--dark:#10251e;--deep:#0b1b15;--lime:#b5e253;--green:#91b63e;--mint:#eaf4dc;--white:#f8f9f3;--muted:#c2cebf}
    *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--deep);color:var(--white);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{ -webkit-tap-highlight-color:transparent }a:focus-visible{outline:3px solid var(--lime);outline-offset:5px}
    .wrap{width:min(1280px,calc(100% - 88px));margin:auto}.top{height:105px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5}.brand{width:228px;height:66px;display:flex;align-items:center;justify-content:center;background:transparent;padding:0;border-radius:0}.brand img{width:100%;height:100%;object-fit:contain}.status{display:flex;align-items:center;gap:11px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700}.dot{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 6px #b5e25324;animation:pulse 2s infinite}.navlink{border:1px solid #ffffff57;border-radius:40px;padding:14px 23px;font-size:13px;font-weight:700;transition:.25s}.navlink:hover{background:var(--lime);color:var(--dark);border-color:var(--lime)}
    .hero{min-height:760px;position:relative;overflow:hidden;background:radial-gradient(ellipse 68% 70% at 74% 46%,#285b3d 0%,#153829 43%,#10251e 77%);border-bottom:1px solid #ffffff16}.hero::after{content:"";position:absolute;inset:0;pointer-events:none;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='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");opacity:.12}.heroGrid{position:relative;z-index:2;min-height:650px;display:flex;align-items:center}.copy{width:min(760px,68%);position:relative;z-index:3;padding:44px 0 100px}.eyebrow{color:var(--lime);letter-spacing:.2em;text-transform:uppercase;font-weight:700;font-size:12px;display:flex;align-items:center;gap:13px;margin-bottom:30px}.eyebrow::before{content:"";display:block;width:36px;height:1px;background:var(--lime)}h1,h2,h3,p{margin-top:0}h1{font:800 clamp(62px,7.3vw,112px)/.96 'DM Sans',sans-serif;letter-spacing:-.075em;margin-bottom:31px;max-width:920px}h1 em{font-style:normal;color:var(--lime)}.lead{max-width:515px;font-size:clamp(17px,1.7vw,21px);line-height:1.6;color:#e0e9db;margin-bottom:38px}.actions{display:flex;flex-wrap:wrap;gap:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:19px 26px;border-radius:40px;font-size:14px;font-weight:700;transition:transform .25s,background .25s}.btn:hover{transform:translateY(-4px)}.btn.primary{background:var(--lime);color:var(--dark)}.btn.secondary{border:1px solid #ffffff65}.btn.secondary:hover{background:#ffffff20}.arrow{font-size:21px;line-height:0}.tiny{font-size:12px;color:var(--muted);margin-top:25px;letter-spacing:.04em}
    .orb{position:absolute;right:-65px;top:80px;width:min(50vw,660px);aspect-ratio:1;border-radius:50%;transform:rotate(-19deg);background:radial-gradient(circle at 28% 24%,#e6ff95 0%,#b7e651 14%,#80aa2c 34%,#326e37 59%,#0a261b 78%);box-shadow:inset -35px -55px 110px #071e17,0 0 110px #a2df3138,0 0 0 1px #c3f46555;animation:float 9s ease-in-out infinite}.orb::before{content:"";position:absolute;inset:-10%;border-radius:50%;border:1px solid #c7ef6a50;transform:rotate(-22deg) scaleY(.38)}.orb::after{content:"";position:absolute;inset:-21%;border-radius:50%;border:1px solid #c7ef6a30;transform:rotate(35deg) scaleY(.61)}.orbText{position:absolute;right:9%;top:45%;color:#fff;font-size:clamp(15px,2vw,27px);font-weight:700;letter-spacing:-.04em;transform:rotate(12deg);text-shadow:0 2px 20px #103422b3}.star{position:absolute;color:#c4ef76;font-size:40px;animation:spin 18s linear infinite}.s1{right:48%;top:11%}.s2{right:5%;bottom:12%;font-size:25px}.scroll{position:absolute;bottom:32px;left:0;color:#b6c4b7;font-size:11px;letter-spacing:.18em;text-transform:uppercase}
    .ticker{background:var(--lime);color:var(--dark);overflow:hidden;width:100%;white-space:nowrap;padding:20px 0;font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.ticker-track{display:flex;width:max-content;animation:marquee 36s linear infinite}.ticker-group{display:flex;align-items:center;flex:none}.ticker-group span{display:inline-block;padding:0 22px}.ticker b{margin:0 18px;font-size:18px}
    .section{padding:120px 0}.sectionHead{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:52px}.kicker{font-size:12px;text-transform:uppercase;letter-spacing:.2em;color:var(--lime);font-weight:700;margin-bottom:22px}.section h2{font:700 clamp(44px,6vw,82px)/.98 'Space Grotesk',sans-serif;letter-spacing:-.065em;margin:0}.sectionHead p{max-width:310px;line-height:1.65;color:var(--muted);font-size:16px;margin-bottom:3px}.services{background:#10251e}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{position:relative;min-height:280px;padding:30px;background:#1c382a;border:1px solid #ffffff15;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;transition:background .25s,transform .25s}.card:hover{background:#244d34;transform:translateY(-5px)}.card:after{content:"";position:absolute;width:240px;height:240px;border:1px solid #a4d44e45;border-radius:50%;right:-100px;bottom:-120px;box-shadow:0 0 0 35px #a4d44e0b,0 0 0 70px #a4d44e08}.number{font-size:13px;color:var(--lime)}.card h3{font:600 clamp(24px,2.5vw,34px)/1.12 'Space Grotesk',sans-serif;letter-spacing:-.045em;margin-bottom:12px;position:relative;z-index:1}.card p{font-size:14px;color:#becbbf;max-width:265px;margin-bottom:0;line-height:1.6;position:relative;z-index:1}.card .mark{font-size:36px;align-self:flex-end;color:var(--lime)}
    .contact{background:var(--mint);color:var(--dark);position:relative;overflow:hidden}.contact::before{content:"2";position:absolute;right:-20px;bottom:-135px;font:700 500px/.8 'Space Grotesk',sans-serif;color:#91b63e20;pointer-events:none}.contact .kicker{color:#527d22}.contact h2{max-width:820px}.contact p{font-size:18px;max-width:580px;line-height:1.7;color:#456047;margin:32px 0}.contact .btn.primary{background:var(--dark);color:white}.contactLinks{display:flex;gap:22px;flex-wrap:wrap;margin-top:38px}.contactLinks a{border-bottom:1px solid #78986d;padding-bottom:5px;font-weight:700}.contactLinks a:hover{color:#4d8b19}.footer{padding:33px 0;background:#081712;color:#aec0b0}.footerInner{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:13px}.footer strong{color:#fff}
    @keyframes pulse{50%{box-shadow:0 0 0 10px #b5e25307}}@keyframes float{50%{transform:rotate(-14deg) translateY(-24px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes marquee{to{transform:translateX(-50%)}}@media(max-width:900px){.wrap{width:min(100% - 42px,700px)}.top{height:90px}.brand{width:187px;height:58px}.status{display:none}.hero{min-height:760px}.heroGrid{min-height:660px;align-items:flex-end}.copy{width:100%;padding:0 0 98px}.orb{width:420px;top:30px;right:-130px;opacity:.88}.orbText{right:20%;top:43%}h1{font-size:clamp(58px,9vw,86px)}.cards{grid-template-columns:repeat(2,1fr)}.sectionHead{align-items:flex-start;flex-direction:column}.section{padding:85px 0}}@media(max-width:580px){.navlink{padding:12px 14px;font-size:12px}.brand{width:160px;height:52px}.hero{min-height:740px}.heroGrid{min-height:650px}.copy{padding-bottom:80px}.orb{width:345px;top:42px;right:-135px;opacity:.72}.orbText{right:23%;font-size:18px}.eyebrow{font-size:10px}h1{font-size:clamp(46px,10.3vw,66px);letter-spacing:-.07em}.lead{font-size:17px}.cards{grid-template-columns:1fr}.card{min-height:220px}.section h2{font-size:clamp(43px,11vw,62px)}.footerInner{flex-direction:column;align-items:flex-start}.contactLinks{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

    /* Keep the supplied SVG logo free of decorative borders or glow. */
    .brand, .brand img, .brand:hover, .brand:focus-visible {border:0;box-shadow:none;filter:none;background:transparent;}
    .brand:focus-visible{outline:2px solid #ffffff;outline-offset:5px;}

    /* Keep the marquee flush with the bottom of the first screen. */
    :root{--ticker-height:56px}
    .hero{min-height:calc(100vh - var(--ticker-height));min-height:calc(100svh - var(--ticker-height));display:flex;flex-direction:column}
    .hero>.wrap{display:flex;flex-direction:column;flex:1;min-height:0}
    .heroGrid{flex:1;min-height:0}
    .copy{padding-bottom:60px}
    .ticker{height:var(--ticker-height);padding:0;display:flex;align-items:center;overflow:hidden}
    .ticker-track{flex:none;will-change:transform;animation:marquee var(--ticker-duration,36s) linear infinite}
    .ticker-group{flex:none;white-space:nowrap}
    @media(max-width:900px){.hero,.heroGrid{min-height:0}.hero{min-height:calc(100vh - var(--ticker-height));min-height:calc(100svh - var(--ticker-height))}.copy{padding-bottom:62px}}
    @media(max-width:580px){.copy{padding-bottom:58px}.heroGrid{align-items:center}.orb{opacity:.55}}
    @media(max-height:650px){.hero{min-height:590px}}

    /* Desktop-only E2E animation. The phrase remains on the layer above. */
    .e2e-animation{display:none}
    @media(min-width:901px){
      .orbText{z-index:3;top:34%}
      .e2e-animation{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;gap:0;transform:rotate(19deg);pointer-events:none;z-index:2}
      .e2e-piece{position:relative;display:block;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 8px 12px rgba(6,24,15,.23));animation-duration:7s;animation-timing-function:cubic-bezier(.22,.7,.23,1);animation-iteration-count:infinite;animation-fill-mode:both}
      .e2e-left,.e2e-right{width:18.75%;height:23.25%;margin-top:8%;z-index:2}
      .e2e-two{width:38%;height:44%;margin:0 -1%;z-index:1;animation-name:e2e-center}
      .e2e-left{margin-right:-13%;animation-name:e2e-enter-left}
      .e2e-right{margin-left:-6%;animation-name:e2e-enter-right}
    }
    @keyframes e2e-enter-left{0%,7%{opacity:0;transform:translateX(-95%) rotate(-17deg) scale(.75)}23%,82%{opacity:1;transform:translateX(0) rotate(0) scale(1)}96%,100%{opacity:0;transform:translateX(-18%) scale(.96)}}
    @keyframes e2e-center{0%,13%{opacity:0;transform:translateY(-24%) scale(.65)}31%,82%{opacity:1;transform:translateY(0) scale(1)}96%,100%{opacity:0;transform:translateY(8%) scale(.95)}}
    @keyframes e2e-enter-right{0%,19%{opacity:0;transform:translateX(95%) rotate(17deg) scale(.75)}39%,82%{opacity:1;transform:translateX(0) rotate(0) scale(1)}96%,100%{opacity:0;transform:translateX(18%) scale(.96)}}
    @media(prefers-reduced-motion:reduce) and (min-width:901px){.e2e-piece{animation:none!important;opacity:1!important;transform:none!important}}

/* Browser-consistent decorative asterisks. SVGs prevent iOS emoji substitution. */
.star{display:block;width:1em;height:1em;}
.ticker b{display:inline-block;width:18px;height:18px;vertical-align:middle;font-size:0;}

/* Embedded vector stars use no external resources and cannot turn into emoji. */
.star svg,.ticker b svg{display:block;width:100%;height:100%}

/* Fix desktop/iOS SVG decorative size at their original intended dimensions. */
.star.s1{width:40px;height:40px;font-size:0;line-height:0}
.star.s2{width:25px;height:25px;font-size:0;line-height:0}
.star.s1 svg{width:40px;height:40px;max-width:100%;max-height:100%}
.star.s2 svg{width:25px;height:25px;max-width:100%;max-height:100%}
.ticker b{width:18px;height:18px;font-size:0;line-height:0}
.ticker b svg{width:18px;height:18px;max-width:100%;max-height:100%}

/* v17: Rotate the SVG artwork itself, preserving all decorative dimensions and positions. */
.star.s1,.star.s2{animation:none}
.star.s1 svg,.star.s2 svg{animation:edge2edge-star-rotation 7s linear infinite;transform-origin:50% 50%;transform-box:view-box;will-change:transform}
@keyframes edge2edge-star-rotation{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.star.s1 svg,.star.s2 svg{animation:none!important}}

/* v18: centre each star between its adjacent service names in the ticker. */
.ticker-group span{display:inline-flex;align-items:center;gap:30px;padding:0 15px}
.ticker b{margin:0}
