/* =============================================================
   Neosage Digital — design system
   Light, editorial layout · serif display · mono labels
   ============================================================= */
@font-face{font-family:"NS Serif";src:url("../fonts/lora.woff") format("woff");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"NS Serif";src:url("../fonts/lora-italic.woff") format("woff");font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:"NS Sans";src:url("../fonts/heros-regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"NS Sans";src:url("../fonts/heros-italic.woff") format("woff");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"NS Sans";src:url("../fonts/heros-bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"NS Mono";src:url("../fonts/mono.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}

:root{
  --ink:#0A1F3A; --navy:#0B3566; --navy-deep:#071a33;
  --teal:#1FA9B0; --teal-d:#12868C; --teal-l:#8ED9DC; --mint:#DDF2F0;
  --paper:#F5F7F3; --paper-2:#ECF1EC; --white:#fff;
  --text:#425066; --muted:#7A8799; --line:#D9E1DC; --line-d:rgba(255,255,255,.12);
  --serif:"NS Serif",Georgia,"Times New Roman",serif;
  --sans:"NS Sans","Helvetica Neue",Arial,sans-serif;
  --mono:"NS Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --r-lg:28px; --r:18px; --r-sm:10px;
  --ease:cubic-bezier(.65,.05,.36,1); --out:cubic-bezier(.16,1,.3,1);
  --wrap:1240px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px;-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
::selection{background:var(--ink);color:var(--teal-l)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;color:var(--ink);line-height:1.08;margin:0 0 .5em;letter-spacing:-.02em}
h1{font-size:clamp(2.7rem,6.4vw,5.6rem)}
h2{font-size:clamp(2.1rem,4.4vw,3.6rem)}
h3{font-size:1.45rem;letter-spacing:-.01em}
h1 em,h2 em,h3 em{font-style:italic;color:var(--teal-d);font-weight:500}
p{margin:0 0 1em}
.wrap{width:min(var(--wrap),100% - 40px);margin-inline:auto}
.ic{width:1.2em;height:1.2em;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.label{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-d)}
.label::before{content:"";width:9px;height:9px;background:var(--teal);clip-path:polygon(50% 0,100% 100%,78% 100%,50% 42%,22% 100%,0 100%)}
.on-dark .label{color:var(--teal-l)}
.muted{color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- Curtain loader ---------- */
.curtain{position:fixed;inset:0;z-index:9999;pointer-events:none}
.curtain i{position:absolute;inset:0;background:var(--navy-deep);transform-origin:top;transition:transform 1s var(--ease)}
.curtain i:nth-child(2){background:var(--teal);transition-delay:.12s;z-index:-1}
.curtain .c-mark{position:absolute;left:50%;top:50%;width:70px;height:70px;margin:-35px 0 0 -35px;z-index:2;transition:opacity .35s,transform .6s var(--ease)}
.curtain .c-mark path{stroke-dasharray:180;stroke-dashoffset:180;animation:dash 1s .1s var(--out) forwards}
@keyframes dash{to{stroke-dashoffset:0}}
.curtain.open i{transform:scaleY(0)}
.curtain.open .c-mark{opacity:0;transform:translateY(-30px)}
.curtain.gone{display:none}

/* ---------- Cursor ---------- */
.cursor,.cursor-dot{position:fixed;left:0;top:0;pointer-events:none;z-index:9998;border-radius:50%;opacity:0;transition:opacity .3s}
.cursor{width:38px;height:38px;margin:-19px 0 0 -19px;border:1.5px solid var(--teal);transition:width .3s var(--out),height .3s var(--out),margin .3s var(--out),background .3s,opacity .3s}
.cursor-dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--ink)}
.cursor.hover{width:70px;height:70px;margin:-35px 0 0 -35px;background:rgba(31,169,176,.12)}
.has-cursor .cursor,.has-cursor .cursor-dot{opacity:1}

/* ---------- Header (floating pill) ---------- */
.hdr{position:fixed;top:16px;left:0;right:0;z-index:900;transition:transform .5s var(--ease)}
.hdr.hide{transform:translateY(-130%)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:20px;background:rgba(255,255,255,.82);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(10,31,58,.08);border-radius:999px;padding:10px 10px 10px 26px;transition:box-shadow .4s,background .4s}
.hdr.solid .hdr-in{box-shadow:0 14px 40px -22px rgba(10,31,58,.45);background:rgba(255,255,255,.95)}
.logo img{height:40px;width:auto}
.nav{position:relative;display:flex;align-items:center;gap:2px}
.nav a{position:relative;z-index:1;padding:9px 16px;border-radius:999px;font-size:.94rem;color:var(--ink);transition:color .3s}
.nav a.cur{color:var(--teal-d)}
.nav a.cur::after{content:"";position:absolute;left:50%;bottom:3px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--teal)}
.nav .pill{position:absolute;top:0;left:0;height:100%;border-radius:999px;background:var(--paper-2);opacity:0;transition:transform .45s var(--out),width .45s var(--out),opacity .25s;z-index:0}
.hdr-cta{display:flex;align-items:center;gap:8px}
.menu-btn{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;transition:background .3s,border-color .3s}
.menu-btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.menu-btn span{display:grid;grid-template-columns:repeat(2,5px);gap:4px}
.menu-btn span i{width:5px;height:5px;border-radius:1px;background:currentColor;transition:transform .4s var(--out)}
.menu-btn:hover span i:nth-child(1){transform:translate(2px,2px)}
.menu-btn:hover span i:nth-child(4){transform:translate(-2px,-2px)}

/* ---------- Buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:12px;padding:15px 26px;border-radius:999px;background:var(--ink);color:#fff;font-weight:700;font-size:.95rem;border:0;overflow:hidden;isolation:isolate;transition:color .4s var(--ease)}
.btn::before{content:"";position:absolute;left:var(--bx,50%);top:var(--by,50%);width:0;height:0;border-radius:50%;background:var(--teal);transform:translate(-50%,-50%);transition:width .6s var(--out),height .6s var(--out);z-index:-1}
.btn:hover::before{width:340px;height:340px}
.btn .arr{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.14);overflow:hidden}
.btn .arr .ic{width:15px;height:15px;transition:transform .45s var(--out)}
.btn:hover .arr .ic{animation:arrow .55s var(--out)}
@keyframes arrow{0%{transform:none}49%{transform:translateX(18px)}50%{transform:translateX(-18px)}100%{transform:none}}
.btn.teal{background:var(--teal)}
.btn.teal::before{background:var(--ink)}
.btn.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.line::before{background:var(--ink)}
.btn.line:hover{color:#fff}
.btn.line .arr{background:var(--paper-2)}
.btn.light{background:#fff;color:var(--ink)}
.btn.light::before{background:var(--teal)}
.btn.light:hover{color:#fff}
.btn.light .arr{background:var(--paper-2)}
.btn.sm{padding:11px 20px;font-size:.88rem}
.tlink{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--ink);background:linear-gradient(var(--teal),var(--teal)) left bottom/0 2px no-repeat;padding-bottom:3px;transition:background-size .45s var(--out)}
.tlink:hover{background-size:100% 2px}
.tlink .ic{width:16px;height:16px;transition:transform .4s var(--out)}
.tlink:hover .ic{transform:rotate(-45deg)}

/* ---------- Full-screen menu ---------- */
.menu{position:fixed;inset:0;z-index:950;background:var(--navy-deep);color:#c7d3e3;clip-path:circle(0 at calc(100% - 60px) 50px);transition:clip-path .8s var(--ease);overflow-y:auto;visibility:hidden}
.menu.open{clip-path:circle(150% at calc(100% - 60px) 50px);visibility:visible}
.menu-top{display:flex;justify-content:space-between;align-items:center;padding:28px 0}
.menu-top img{height:38px}
.menu-close{display:flex;align-items:center;gap:10px;background:none;border:1px solid var(--line-d);border-radius:999px;padding:10px 18px;color:#fff;font-family:var(--mono);font-size:.78rem;letter-spacing:.12em}
.menu-close:hover{background:#fff;color:var(--ink)}
.menu-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;padding:30px 0 60px}
.menu-main a{display:flex;align-items:baseline;gap:18px;font-family:var(--serif);font-size:clamp(2.2rem,5vw,4.2rem);line-height:1.15;color:#fff;transition:color .3s,padding .4s var(--out)}
.menu-main a small{font-family:var(--mono);font-size:.8rem;color:var(--teal-l);letter-spacing:.1em}
.menu-main a:hover{color:var(--teal-l);padding-left:16px}
.menu-svc h4{font-family:var(--mono);font-weight:400;font-size:.76rem;letter-spacing:.14em;color:var(--teal-l);text-transform:uppercase;margin-bottom:18px}
.menu-svc a{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line-d);color:#dfe7f1;font-size:1.05rem;transition:color .3s,padding .4s var(--out)}
.menu-svc a .ic{opacity:0;transform:translateX(-10px);transition:.4s var(--out);color:var(--teal-l)}
.menu-svc a:hover{color:#fff;padding-left:10px}
.menu-svc a:hover .ic{opacity:1;transform:none}
.menu-foot{display:flex;flex-wrap:wrap;gap:30px;justify-content:space-between;border-top:1px solid var(--line-d);padding:26px 0 40px;font-size:.92rem}
.menu-foot a:hover{color:var(--teal-l)}
.menu [data-m]{opacity:0;transform:translateY(40px);transition:opacity .6s,transform .8s var(--out)}
.menu.open [data-m]{opacity:1;transform:none}

/* ---------- Reveal system ---------- */
[data-blur]{opacity:0;filter:blur(12px);transform:translateY(14px);transition:opacity 1s var(--out),filter 1s var(--out),transform 1s var(--out)}
[data-wipe]{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease)}
[data-rise]{opacity:0;transform:translateY(46px) scale(.97);transition:opacity .9s var(--out),transform 1.1s var(--out)}
[data-slide]{opacity:0;transform:translateX(-40px);transition:opacity .9s var(--out),transform 1.1s var(--out)}
.seen[data-blur],.seen[data-rise],.seen[data-slide]{opacity:1;filter:none;transform:none}
.seen[data-wipe]{clip-path:inset(0 0 0 0)}
.no-js [data-blur],.no-js [data-rise],.no-js [data-slide]{opacity:1;filter:none;transform:none}
.no-js [data-wipe]{clip-path:none}
.rule{height:1px;background:var(--line);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease)}
.rule.seen{transform:scaleX(1)}

/* ---------- Section scaffolding ---------- */
.sec{padding:130px 0;position:relative}
.sec.tight{padding:90px 0}
.sec.white{background:#fff}
.sec.dark{background:var(--navy-deep);color:#b9c6d8}
.sec.dark h2,.sec.dark h3{color:#fff}
.sec.dark h2 em{color:var(--teal-l)}
.shead{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:70px}
.shead h2{margin:16px 0 0}
.shead p{max-width:470px;justify-self:end;margin:0;font-size:1.05rem}
.shead.center{grid-template-columns:1fr;text-align:center;justify-items:center}
.shead.center p{justify-self:center}

/* ---------- Hero ---------- */
.hero{position:relative;padding:170px 0 70px;overflow:hidden;background:var(--paper)}
.hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(10,31,58,.14) 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(180deg,#000,transparent 85%);-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%)}
.spot{position:absolute;width:640px;height:640px;left:var(--sx,70%);top:var(--sy,30%);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(31,169,176,.22),transparent 65%);pointer-events:none;transition:left .9s var(--out),top .9s var(--out)}
.hero-grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.hero h1{margin:22px 0 26px}
.hero h1 .ln{display:block}
.slot{display:inline-flex;align-items:center;gap:12px;font-size:1.2rem;color:var(--ink);margin-bottom:22px}
.slot-box{position:relative;display:inline-block;height:1.6em;overflow:hidden;vertical-align:bottom;background:var(--mint);border-radius:8px;padding:0 12px;min-width:12ch}
.slot-box span{display:block;line-height:1.6em;font-weight:700;color:var(--teal-d);transition:transform .7s var(--ease)}
.hero .lead{font-size:1.12rem;max-width:560px}
.hero-act{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:34px}
.hero-meta{display:flex;gap:28px;margin-top:46px;padding-top:24px;border-top:1px solid var(--line);font-family:var(--mono);font-size:.76rem;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;flex-wrap:wrap}
.hero-meta b{display:block;font-family:var(--serif);font-size:1.6rem;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:500;margin-bottom:2px}

/* Bento widgets */
.bento{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:minmax(150px,auto);gap:16px}
.bento .big-chev{position:absolute;right:-60px;top:-90px;width:440px;z-index:0;opacity:.9}
.bento .big-chev path{stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 2.4s var(--out) .6s}
.loaded .bento .big-chev path{stroke-dashoffset:0}
.w{position:relative;z-index:1;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(10,31,58,.08);border-radius:var(--r);padding:20px;box-shadow:0 30px 60px -40px rgba(10,31,58,.45);overflow:hidden}
.w.navy{background:var(--ink);color:#c7d3e3;border-color:transparent}
.w.span2{grid-column:span 2}
.w-h{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.w.navy .w-h{color:var(--teal-l)}
.live{display:inline-flex;align-items:center;gap:6px}
.live::before{content:"";width:7px;height:7px;border-radius:50%;background:#2ecc8f;box-shadow:0 0 0 0 rgba(46,204,143,.6);animation:ping 1.8s infinite}
@keyframes ping{70%{box-shadow:0 0 0 8px rgba(46,204,143,0)}100%{box-shadow:0 0 0 0 rgba(46,204,143,0)}}
.w-t{font-family:var(--serif);font-size:1.3rem;color:var(--ink);line-height:1.2}
.w.navy .w-t{color:#fff}
.bars{display:flex;align-items:flex-end;gap:6px;height:80px;margin-top:14px}
.bars i{flex:1;border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,var(--teal),var(--teal-d));height:20%;animation:bar 3.2s var(--ease) infinite alternate}
.bars i:nth-child(odd){background:var(--mint)}
@keyframes bar{0%{height:var(--a,30%)}100%{height:var(--b,80%)}}
.radar{position:relative;width:110px;aspect-ratio:1;border-radius:50%;margin:6px auto 0;background:repeating-radial-gradient(circle,transparent 0 17px,rgba(142,217,220,.25) 17px 18px)}
.radar::before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(31,169,176,.6),transparent 70deg);animation:spin 2.6s linear infinite}
.radar i{position:absolute;width:7px;height:7px;border-radius:50%;background:#ff6b6b;box-shadow:0 0 10px #ff6b6b;animation:blip 2.6s infinite}
.radar i:nth-child(1){left:62%;top:24%}.radar i:nth-child(2){left:24%;top:62%;animation-delay:1.3s}
@keyframes blip{0%,100%{opacity:0;transform:scale(.4)}20%{opacity:1;transform:scale(1)}60%{opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}
.spark{width:100%;height:70px;margin-top:10px}
.spark path.ln{stroke-dasharray:400;stroke-dashoffset:400;animation:drawloop 4s var(--ease) infinite}
@keyframes drawloop{0%{stroke-dashoffset:400}45%,80%{stroke-dashoffset:0}100%{stroke-dashoffset:-400}}
.chat{display:grid;gap:8px;margin-top:6px}
.chat p{margin:0;padding:9px 13px;border-radius:14px;font-size:.84rem;line-height:1.4;max-width:88%;opacity:0;transform:translateY(8px);animation:msg 7s infinite}
.chat p.q{background:var(--paper-2);color:var(--ink);border-bottom-left-radius:4px}
.chat p.a{background:var(--teal);color:#fff;justify-self:end;border-bottom-right-radius:4px;animation-delay:1.4s}
.chat .typing{display:flex;gap:4px;justify-self:end;padding:10px 14px;background:var(--mint);border-radius:14px;animation:typingShow 7s infinite}
.chat .typing i{width:6px;height:6px;border-radius:50%;background:var(--teal-d);animation:dot 1s infinite}
.chat .typing i:nth-child(2){animation-delay:.15s}.chat .typing i:nth-child(3){animation-delay:.3s}
@keyframes msg{0%,5%{opacity:0;transform:translateY(8px)}12%,85%{opacity:1;transform:none}95%,100%{opacity:0}}
@keyframes typingShow{0%,6%{opacity:1}18%,100%{opacity:0;height:0;padding:0}}
@keyframes dot{50%{transform:translateY(-4px);opacity:.5}}
.tagline-w{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.tagline-w span{font-family:var(--mono);font-size:.7rem;padding:5px 10px;border-radius:999px;border:1px solid var(--line-d);color:#dfe7f1}

/* Standards row */
.std{display:flex;flex-wrap:wrap;align-items:center;gap:12px 30px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:70px}
.std .label{margin-right:10px}
.std span.s{font-family:var(--mono);font-size:.86rem;color:var(--ink);letter-spacing:.04em;display:flex;align-items:center;gap:30px}
.std span.s:not(:last-child)::after{content:"/";color:var(--line)}

/* ---------- Scroll-highlight statement ---------- */
.statement{font-family:var(--serif);font-size:clamp(1.8rem,3.6vw,3rem);line-height:1.28;color:var(--ink);letter-spacing:-.015em;margin:26px 0 0;max-width:1080px}
.statement .wd{opacity:.14;transition:opacity .3s}
.statement .wd.on{opacity:1}
.statement em{color:var(--teal-d)}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;margin-top:90px}
.pillar{padding-top:22px;position:relative}
.pillar::before{content:"";position:absolute;left:0;top:0;width:100%;height:1px;background:var(--line)}
.pillar::after{content:"";position:absolute;left:0;top:0;width:0;height:2px;background:var(--teal);transition:width 1.4s var(--ease)}
.pillar.seen::after{width:40%}
.pillar .n{font-family:var(--mono);font-size:.74rem;color:var(--teal-d);letter-spacing:.1em}
.pillar h3{margin:14px 0 10px;font-size:1.35rem}
.pillar p{font-size:.95rem;margin:0}

/* ---------- Horizontal services ---------- */
.hs{position:relative;background:var(--ink);color:#b9c6d8}
.hs-sticky{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.hs-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:46px}
.hs-head h2{color:#fff;margin:14px 0 0}
.hs-head h2 em{color:var(--teal-l)}
.hs-count{font-family:var(--mono);color:var(--teal-l);font-size:.9rem;letter-spacing:.1em;white-space:nowrap}
.hs-count b{font-weight:400;color:#fff;font-size:2rem;font-family:var(--serif)}
.hs-track{display:flex;gap:24px;padding-left:max(20px,calc((100vw - var(--wrap)) / 2));padding-right:20vw;will-change:transform}
.hs-card{position:relative;flex:0 0 clamp(300px,30vw,400px);min-height:430px;display:flex;flex-direction:column;border-radius:var(--r-lg);padding:32px;background:rgba(255,255,255,.04);border:1px solid var(--line-d);overflow:hidden;transition:background .5s var(--ease),border-color .5s}
.hs-card:hover{background:var(--teal);border-color:var(--teal)}
.hs-card .hn{font-family:var(--mono);font-size:.8rem;color:var(--teal-l);letter-spacing:.1em;transition:color .4s}
.hs-card .hi{width:64px;height:64px;margin:30px 0 auto;color:var(--teal-l);transition:color .4s,transform .7s var(--out)}
.hs-card .hi .ic{width:64px;height:64px;stroke-width:1.1}
.hs-card h3{color:#fff;font-size:1.65rem;margin:40px 0 12px}
.hs-card p{font-size:.95rem;margin:0 0 22px;transition:color .4s}
.hs-card .go{display:flex;align-items:center;justify-content:space-between;color:#fff;font-weight:700;font-size:.9rem;border-top:1px solid var(--line-d);padding-top:18px}
.hs-card .go span.c{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-d);transition:.5s var(--out)}
.hs-card:hover .hn,.hs-card:hover p{color:#e9fbfb}
.hs-card:hover .hi{color:#fff;transform:rotate(-8deg) scale(1.08)}
.hs-card:hover .go span.c{background:#fff;color:var(--ink);transform:rotate(-45deg)}
.hs-bar{height:2px;background:var(--line-d);margin-top:46px;border-radius:2px;overflow:hidden}
.hs-bar i{display:block;height:100%;width:0;background:var(--teal)}
.hs.static .hs-sticky{position:relative;height:auto;padding:110px 0}
.hs.static .hs-track{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:20px;scrollbar-width:thin}
.hs.static .hs-card{scroll-snap-align:start}

/* ---------- Odometer stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-d)}
.stat{padding:40px 30px 10px 0}
.stat+.stat{padding-left:30px;border-left:1px solid var(--line-d)}
.odo{display:flex;align-items:flex-start;font-family:var(--serif);font-size:clamp(3.2rem,6vw,5.4rem);line-height:1;color:#fff;height:1em;overflow:hidden}
.odo .col{display:flex;flex-direction:column;transition:transform 2s var(--ease)}
.odo .col span{height:1em;line-height:1}
.odo .suf{color:var(--teal-l);font-style:italic}
.stat p{margin:16px 0 0;font-size:.95rem;max-width:220px}
.stats-light .stat+.stat{border-color:var(--line)}
.stats-light{border-color:var(--line)}
.stats-light .odo{color:var(--ink)}
.stats-light .odo .suf{color:var(--teal-d)}

/* ---------- Defence layers ---------- */
.layers{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.stack{position:relative;aspect-ratio:1;max-width:520px;width:100%;margin-inline:auto}
.stack button{position:absolute;border-radius:36px;border:1.5px solid rgba(142,217,220,.35);background:rgba(31,169,176,.04);transition:background .4s,border-color .4s,transform .6s var(--out);padding:0}
.stack button span{position:absolute;top:12px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;color:var(--teal-l);text-transform:uppercase;white-space:nowrap}
.stack button:nth-child(1){inset:0}
.stack button:nth-child(2){inset:10%}
.stack button:nth-child(3){inset:20%}
.stack button:nth-child(4){inset:30%}
.stack button:nth-child(5){inset:40%;border-radius:24px}
.stack button.act{background:rgba(31,169,176,.2);border-color:var(--teal)}
.stack button.act span{color:#fff}
.stack button:hover{border-color:var(--teal-l)}
.stack .core{position:absolute;inset:40%;display:grid;place-items:center;pointer-events:none}
.stack .core img{width:46%;margin-top:14px}
.stack::after{content:"";position:absolute;inset:-6%;border-radius:50%;border:1px dashed rgba(142,217,220,.25);animation:spin 60s linear infinite}
.layer-panel{min-height:300px}
.layer-panel .lp{display:none}
.layer-panel .lp.act{display:block;animation:lpIn .7s var(--out)}
@keyframes lpIn{from{opacity:0;transform:translateY(20px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.lp .lp-n{font-family:var(--mono);color:var(--teal-l);font-size:.8rem;letter-spacing:.12em}
.lp h3{font-size:2.2rem;margin:12px 0 16px;color:#fff}
.lp ul{list-style:none;padding:0;margin:22px 0 28px;display:grid;gap:10px}
.lp li{display:flex;gap:12px;align-items:center;color:#dfe7f1}
.lp li .ic{color:var(--teal-l)}
.layer-nav{display:flex;gap:8px;margin-top:20px}
.layer-nav button{width:34px;height:4px;border:0;border-radius:4px;background:var(--line-d);padding:0;transition:background .3s,width .4s var(--out)}
.layer-nav button.act{background:var(--teal);width:60px}

/* Rotating badge */
.badge-row{display:flex;align-items:center;gap:50px;margin-top:100px;padding-top:60px;border-top:1px solid var(--line-d)}
.rbadge{position:relative;flex:none;width:170px;height:170px}
.rbadge svg.txt{width:100%;height:100%;animation:spin 22s linear infinite}
.rbadge text{font-family:var(--mono);font-size:10.4px;letter-spacing:2.4px;fill:var(--teal-l);text-transform:uppercase}
.rbadge .mid{position:absolute;inset:30%;border-radius:50%;background:var(--teal);display:grid;place-items:center}
.rbadge .mid img{width:56%;filter:brightness(0) invert(1)}
.light-badge text{fill:var(--teal-d)}
.std-list{display:flex;flex-wrap:wrap;gap:10px}
.std-list span{font-family:var(--mono);font-size:.82rem;padding:9px 16px;border:1px solid var(--line-d);border-radius:999px;color:#dfe7f1;transition:.3s}
.std-list span:hover{border-color:var(--teal);color:#fff;background:rgba(31,169,176,.15)}
.light .std-list span,.std-list.light span{border-color:var(--line);color:var(--ink)}
.std-list.light span:hover{background:var(--ink);color:#fff}

/* ---------- Timeline (process) ---------- */
.tl{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start}
.tl-side{position:sticky;top:130px}
.tl-list{position:relative;padding-left:58px}
.tl-line{position:absolute;left:17px;top:6px;bottom:6px;width:2px;background:var(--line)}
.tl-line i{position:absolute;left:0;top:0;width:100%;height:0;background:var(--teal)}
.tl-step{position:relative;padding-bottom:64px}
.tl-step:last-child{padding-bottom:0}
.tl-dot{position:absolute;left:-58px;top:0;width:36px;height:36px;border-radius:50%;background:var(--paper);border:2px solid var(--line);display:grid;place-items:center;font-family:var(--mono);font-size:.72rem;color:var(--muted);transition:.5s var(--out)}
.white .tl-dot{background:#fff}
.tl-step.on .tl-dot{background:var(--teal);border-color:var(--teal);color:#fff;transform:scale(1.12)}
.tl-step h3{font-size:1.8rem;margin-bottom:10px;transition:color .4s}
.tl-step p{max-width:520px;margin:0}
.tl-step:not(.on) h3{color:#8995a6}

/* ---------- Bento (why) ---------- */
.why{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(230px,auto);gap:18px}
.tile{position:relative;border-radius:var(--r-lg);padding:30px;background:#fff;border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;transition:transform .6s var(--out),box-shadow .6s}
.tile:hover{transform:translateY(-6px);box-shadow:0 30px 60px -40px rgba(10,31,58,.5)}
.tile .ti{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--mint);color:var(--teal-d);transition:transform .6s var(--out)}
.tile:hover .ti{transform:rotate(-10deg)}
.tile h3{font-size:1.4rem;margin:22px 0 8px}
.tile p{margin:0;font-size:.95rem}
.tile.feature{grid-column:span 2;grid-row:span 2;background:var(--ink);color:#b9c6d8;border:0}
.tile.feature h3{color:#fff;font-size:clamp(2rem,3.4vw,2.9rem)}
.tile.feature h3 em{color:var(--teal-l)}
.tile.feature .chev-bg{position:absolute;right:-60px;bottom:-60px;width:320px;opacity:.5;transition:transform 1.2s var(--out)}
.tile.feature:hover .chev-bg{transform:translate(-20px,-20px) rotate(-6deg)}
.tile.wide{grid-column:span 2}
.tile.teal{background:var(--teal);border:0;color:#e9fbfb}
.tile.teal h3{color:#fff}
.tile.teal .ti{background:rgba(255,255,255,.18);color:#fff}

/* ---------- Industries ---------- */
.ind{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.ind-i{position:relative;padding:40px 34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;isolation:isolate;transition:color .5s}
.ind-i::before{content:"";position:absolute;inset:0;background:var(--ink);clip-path:circle(0 at 0 100%);transition:clip-path .8s var(--ease);z-index:-1}
.ind-i:hover::before{clip-path:circle(150% at 0 100%)}
.ind-i .ic{width:34px;height:34px;color:var(--teal-d);stroke-width:1.3;transition:color .5s}
.ind-i h3{font-size:1.3rem;margin:28px 0 8px;transition:color .5s}
.ind-i p{margin:0;font-size:.94rem;transition:color .5s}
.ind-i:hover h3{color:#fff}.ind-i:hover p{color:#b9c6d8}.ind-i:hover .ic{color:var(--teal-l)}

/* ---------- CTA block ---------- */
.cta{position:relative;border-radius:40px;background:linear-gradient(130deg,var(--navy) 0%,var(--ink) 55%,#0d4a63 100%);color:#c7d3e3;padding:90px 80px;overflow:hidden;isolation:isolate}
.cta::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:60px 60px;z-index:-1}
.cta .chev-float{position:absolute;right:-40px;top:50%;width:480px;transform:translateY(-50%);z-index:-1;animation:bob 8s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-54%) rotate(3deg)}}
.cta h2{color:#fff;max-width:720px;margin:18px 0 20px}
.cta h2 em{color:var(--teal-l)}
.cta p{max-width:560px;font-size:1.08rem}
.cta-act{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;align-items:center}
.cta-act .phone{display:flex;align-items:center;gap:10px;color:#fff;font-family:var(--mono);font-size:.92rem;padding:0 10px}
.cta-act .phone .ic{color:var(--teal-l)}

/* ---------- Footer ---------- */
.ftr{position:relative;background:#fff;padding:110px 0 0;overflow:hidden;border-top:1px solid var(--line)}
.ftr-top{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:end;padding-bottom:70px;border-bottom:1px solid var(--line)}
.ftr-top h2{margin:0;font-size:clamp(2.4rem,5vw,4.4rem)}
.ftr-mail{display:inline-flex;align-items:center;gap:14px;font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,2rem);color:var(--ink);background:linear-gradient(var(--teal),var(--teal)) left bottom/100% 2px no-repeat;padding-bottom:6px;transition:color .3s}
.ftr-mail:hover{color:var(--teal-d)}
.ftr-mail .ic{transition:transform .5s var(--out)}
.ftr-mail:hover .ic{transform:rotate(-45deg)}
.newsletter{margin-top:26px;display:flex;gap:8px;max-width:440px;padding:6px;border:1px solid var(--line);border-radius:999px;background:var(--paper)}
.newsletter input{flex:1;min-width:0;border:0;background:none;padding:0 16px;font:inherit;font-size:.92rem;color:var(--ink)}
.newsletter input:focus{outline:none}
.ftr-cols{display:grid;grid-template-columns:1.4fr 1fr 1.2fr 1.3fr;gap:50px;padding:70px 0}
.ftr-cols h4{font-family:var(--mono);font-weight:400;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-d);margin-bottom:22px}
.ftr-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ftr-cols ul a{position:relative;color:var(--ink);transition:color .3s}
.ftr-cols ul a:hover{color:var(--teal-d)}
.ftr-cols .logo img{height:46px}
.ftr-cols .about{font-size:.94rem;margin:22px 0}
.soc{display:flex;gap:8px}
.soc a{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);color:var(--ink);transition:.4s var(--out)}
.soc a:hover{background:var(--ink);color:#fff;transform:translateY(-3px)}
.soc .ic{width:17px;height:17px}
.addr li{display:flex;gap:10px;font-size:.94rem;color:var(--text)}
.addr .ic{color:var(--teal-d);margin-top:3px}
.ftr-word{font-family:var(--serif);font-weight:600;font-size:clamp(4.5rem,19vw,17rem);line-height:.78;letter-spacing:-.04em;text-align:center;color:transparent;-webkit-text-stroke:1.5px var(--line);margin:0;overflow:hidden;user-select:none;white-space:nowrap;background:linear-gradient(90deg,var(--ink),var(--teal)) 0 0/0% 100% no-repeat;-webkit-background-clip:text;background-clip:text;transition:background-size 1.6s var(--ease)}
.ftr-word.seen{background-size:100% 100%}
.legal-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:22px 0 28px;font-size:.84rem;color:var(--muted);border-top:1px solid var(--line);margin-top:30px}
.legal-bar a:hover{color:var(--ink)}
.legal-bar nav{display:flex;gap:22px}
.side-progress{position:fixed;right:18px;top:50%;height:120px;width:2px;transform:translateY(-50%);background:var(--line);z-index:800;border-radius:2px}
.side-progress i{position:absolute;left:0;top:0;width:100%;height:0;background:var(--teal);border-radius:2px}

/* ---------- Inner page header ---------- */
.ph{position:relative;padding:190px 0 80px;overflow:hidden}
.ph::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(10,31,58,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(10,31,58,.05) 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(ellipse at 80% 0%,#000,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 80% 0%,#000,transparent 70%)}
.crumb{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 16px}
.crumb a:hover{color:var(--ink)}
.crumb .sep{color:var(--teal)}
.ph-grid{position:relative;display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:end;margin-top:30px}
.ph h1{margin:0;font-size:clamp(2.6rem,6vw,5.2rem)}
.ph .lead{font-size:1.08rem;margin:0}
.ph .wrap{position:relative}
.ph-icon{position:absolute;right:20px;top:0;width:66px;height:66px;border-radius:20px;display:grid;place-items:center;background:var(--ink);color:var(--teal-l);animation:bob2 6s ease-in-out infinite}
.ph-icon .ic{width:30px;height:30px}
@keyframes bob2{50%{transform:translateY(-10px) rotate(-4deg)}}
.ph-line{position:relative;margin-top:70px;height:1px;background:var(--line)}
.ph-line i{position:absolute;left:0;top:-1px;height:3px;width:0;background:var(--teal);transition:width 1.8s var(--ease) .4s}
.loaded .ph-line i{width:100%}
.ph-line .chev{position:absolute;top:-9px;left:0;width:18px;height:18px;color:var(--teal);transition:left 1.8s var(--ease) .4s}
.loaded .ph-line .chev{left:calc(100% - 18px)}

/* ---------- About ---------- */
.name-split{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:60px}
.ns{position:relative;border-radius:var(--r-lg);padding:46px 40px;overflow:hidden;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end}
.ns .big{position:absolute;top:10px;left:30px;font-family:var(--serif);font-style:italic;font-size:clamp(5rem,11vw,9rem);line-height:1;letter-spacing:-.04em;opacity:.18}
.ns.neo{background:var(--mint);color:var(--ink)}
.ns.neo .big{color:var(--teal-d);opacity:.35}
.ns.sage{background:var(--ink);color:#b9c6d8}
.ns.sage .big{color:var(--teal-l)}
.ns h3{font-size:1.7rem;margin:0 0 10px;position:relative}
.ns.sage h3{color:#fff}
.ns p{margin:0;position:relative}
.mv{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}
.mv>div{padding:50px 50px 50px 0}
.mv>div+div{padding-left:50px;border-left:1px solid var(--line)}
.mv h3{font-size:2rem}
.mv p{font-size:1.1rem;margin:0}
.vals{border-top:1px solid var(--line)}
.val{display:grid;grid-template-columns:90px 1fr 1.2fr 50px;gap:30px;align-items:center;padding:34px 0;border-bottom:1px solid var(--line);transition:padding .5s var(--out),background .5s}
.val:hover{padding-left:20px;background:#fff}
.val .n{font-family:var(--mono);color:var(--teal-d);font-size:.85rem}
.val h3{margin:0;font-size:2rem}
.val p{margin:0}
.val .ic{width:30px;height:30px;color:var(--teal-d);justify-self:end;transition:transform .6s var(--out)}
.val:hover .ic{transform:rotate(-20deg) scale(1.15)}
.princ{display:grid;grid-template-columns:repeat(3,1fr);gap:50px 40px}
.princ div h3{font-size:1.3rem;display:flex;align-items:center;gap:12px;margin-bottom:10px}
.princ div h3 .ic{color:var(--teal-d)}
.princ div p{margin:0;font-size:.96rem}
.visual-card{position:relative;border-radius:var(--r-lg);background:var(--ink);aspect-ratio:4/4.4;overflow:hidden;display:grid;place-items:center}
.visual-card .rings i{position:absolute;left:50%;top:50%;border-radius:50%;border:1px solid rgba(142,217,220,.25);transform:translate(-50%,-50%);animation:ripple 6s linear infinite}
.visual-card .rings i:nth-child(2){animation-delay:2s}.visual-card .rings i:nth-child(3){animation-delay:4s}
@keyframes ripple{0%{width:0;height:0;opacity:1}100%{width:140%;height:140%;opacity:0}}
.visual-card img{position:relative;width:34%}
.visual-card .vc-tag{position:absolute;left:24px;bottom:24px;right:24px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;color:var(--teal-l);text-transform:uppercase}

/* ---------- Services index ---------- */
.sx{border-top:1px solid var(--line)}
.sx-row{position:relative;display:grid;grid-template-columns:80px 1.1fr 1fr 60px;gap:30px;align-items:center;padding:34px 10px;border-bottom:1px solid var(--line);isolation:isolate;transition:color .4s}
.sx-row::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleY(0);transform-origin:bottom;transition:transform .6s var(--ease);z-index:-1;border-radius:4px}
.sx-row:hover::before{transform:scaleY(1)}
.sx-row .n{font-family:var(--mono);color:var(--teal-d);font-size:.85rem;transition:color .4s}
.sx-row h3{margin:0;font-size:clamp(1.4rem,2.4vw,2rem);transition:color .4s,transform .6s var(--out)}
.sx-row p{margin:0;font-size:.95rem;transition:color .4s}
.sx-row .go{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid var(--line);transition:.5s var(--out)}
.sx-row:hover .n{color:var(--teal-l)}
.sx-row:hover h3{color:#fff;transform:translateX(12px)}
.sx-row:hover p{color:#b9c6d8}
.sx-row:hover .go{background:var(--teal);border-color:var(--teal);color:#fff;transform:rotate(-45deg)}
.acc{border-top:1px solid var(--line)}
.acc-i{border-bottom:1px solid var(--line)}
.acc-q{width:100%;display:grid;grid-template-columns:56px 1fr auto;gap:20px;align-items:center;background:none;border:0;padding:28px 0;text-align:left}
.acc-q .ai{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:#fff;border:1px solid var(--line);color:var(--teal-d);transition:.4s}
.acc-q h3{margin:0;font-size:1.5rem}
.acc-q .pm{position:relative;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);transition:.4s var(--out)}
.acc-q .pm::before,.acc-q .pm::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;margin:-.75px 0 0 -7px;background:var(--ink);transition:transform .4s var(--out)}
.acc-q .pm::after{transform:rotate(90deg)}
.acc-i.open .pm{background:var(--ink);border-color:var(--ink);transform:rotate(180deg)}
.acc-i.open .pm::before,.acc-i.open .pm::after{background:#fff}
.acc-i.open .pm::after{transform:rotate(0)}
.acc-i.open .ai{background:var(--teal);color:#fff;border-color:var(--teal)}
.acc-a{height:0;overflow:hidden;transition:height .6s var(--ease)}
.acc-a>div{padding:0 0 34px 76px}
.acc-a ul{list-style:none;margin:0;padding:0;columns:2;column-gap:40px}
.acc-a li{break-inside:avoid;padding:9px 0 9px 24px;position:relative;border-bottom:1px dashed var(--line);font-size:.96rem}
.acc-a li::before{content:"";position:absolute;left:0;top:17px;width:10px;height:8px;background:var(--teal);clip-path:polygon(50% 0,100% 100%,0 100%)}
.acc-a p{max-width:760px}

/* ---------- Service detail ---------- */
.sd{display:grid;grid-template-columns:260px 1fr;gap:80px;align-items:start}
.toc{position:sticky;top:120px;display:grid;gap:22px}
.toc nav{display:grid;border-left:1px solid var(--line)}
.toc nav a{position:relative;padding:9px 0 9px 20px;font-size:.92rem;color:var(--muted);transition:color .3s}
.toc nav a::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:var(--teal);transform:scaleY(0);transition:transform .4s var(--out)}
.toc nav a.on{color:var(--ink);font-weight:700}
.toc nav a.on::before{transform:scaleY(1)}
.toc-cta{border-radius:var(--r);background:var(--ink);color:#b9c6d8;padding:24px;font-size:.9rem}
.toc-cta h4{color:#fff;font-size:1.25rem;margin-bottom:8px}
.toc-cta a.ph{display:block;font-family:var(--mono);color:var(--teal-l);margin:10px 0 16px;padding:0;font-size:.9rem}
.sd-sec{padding-bottom:100px}
.sd-sec:last-child{padding-bottom:0}
.sd-sec>h2{font-size:clamp(1.9rem,3.4vw,2.8rem);margin:14px 0 26px}
.sd-lead{font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.6rem);line-height:1.45;color:var(--ink);margin-bottom:22px}
.kp{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px}
.kp div{display:flex;gap:12px;align-items:center;padding:16px 18px;border-radius:14px;background:#fff;border:1px solid var(--line);font-weight:700;color:var(--ink);font-size:.95rem}
.kp .ic{color:var(--teal-d)}
.offers{counter-reset:o;display:grid;grid-template-columns:1fr 1fr;gap:0 50px;border-top:1px solid var(--line)}
.offer{position:relative;display:grid;grid-template-columns:50px 1fr;gap:14px;padding:30px 0;border-bottom:1px solid var(--line)}
.offer .oi{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--mint);color:var(--teal-d);transition:.5s var(--out)}
.offer:hover .oi{background:var(--ink);color:var(--teal-l);transform:rotate(-8deg)}
.offer h3{font-size:1.2rem;margin:6px 0 8px;font-family:var(--sans);font-weight:700;letter-spacing:0}
.offer p{margin:0;font-size:.94rem}
.ba{border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);padding:34px;position:relative;overflow:hidden}
.ba-switch{display:inline-flex;position:relative;padding:5px;border-radius:999px;background:var(--paper-2);margin-bottom:30px}
.ba-switch button{position:relative;z-index:1;border:0;background:none;padding:10px 22px;border-radius:999px;font-weight:700;font-size:.9rem;color:var(--muted);transition:color .4s}
.ba-switch button.on{color:#fff}
.ba-switch .knob{position:absolute;top:5px;bottom:5px;left:5px;border-radius:999px;background:var(--ink);transition:transform .55s var(--out),width .55s var(--out),background .55s}
.ba.after .ba-switch .knob{background:var(--teal)}
.ba-lists{position:relative}
.ba-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ba-list li{display:flex;gap:14px;align-items:center;font-size:1.05rem;color:var(--ink);padding:16px 20px;border-radius:14px;background:var(--paper);transition:transform .6s var(--out),opacity .5s}
.ba-list li .ic{flex:none}
.ba-list.before li .ic{color:#d9534f}
.ba-list.after li{background:var(--mint)}
.ba-list.after li .ic{color:var(--teal-d)}
.ba-list.after{position:absolute;inset:0}
.ba .ba-list.after li{opacity:0;transform:translateX(40px)}
.ba.after .ba-list.before li{opacity:0;transform:translateX(-40px)}
.ba.after .ba-list.after li{opacity:1;transform:none}
.ba-list li:nth-child(2){transition-delay:.06s}.ba-list li:nth-child(3){transition-delay:.12s}.ba-list li:nth-child(4){transition-delay:.18s}
.ba-hint{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin:22px 0 0}
.hsteps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:hs}
.hstep{position:relative;padding:26px 22px;border-radius:var(--r);background:#fff;border:1px solid var(--line);transition:transform .5s var(--out),background .5s}
.hstep:hover{transform:translateY(-6px);background:var(--ink)}
.hstep .sn{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:.76rem;color:var(--teal-d);margin-bottom:40px}
.hstep .sn i{display:block;width:30px;height:1px;background:var(--line)}
.hstep h3{font-family:var(--sans);font-weight:700;font-size:1.06rem;letter-spacing:0;margin-bottom:8px;transition:color .5s}
.hstep p{margin:0;font-size:.9rem;transition:color .5s}
.hstep:hover h3{color:#fff}.hstep:hover p{color:#b9c6d8}.hstep:hover .sn{color:var(--teal-l)}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips span{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:700;font-size:.92rem;color:var(--ink);transition:.4s var(--out)}
.chips span .ic{color:var(--teal-d);width:16px;height:16px}
.chips span:hover{background:var(--teal);border-color:var(--teal);color:#fff;transform:translateY(-3px)}
.chips span:hover .ic{color:#fff}
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 0;cursor:pointer;font-family:var(--serif);font-size:1.25rem;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{flex:none;width:22px;height:22px;color:var(--teal-d);transition:transform .5s var(--out)}
.faq details[open] summary .ic{transform:rotate(45deg)}
.faq .fa{padding:0 60px 26px 0;animation:faIn .6s var(--out)}
@keyframes faIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.rel{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rel a{position:relative;display:flex;flex-direction:column;gap:30px;padding:28px;border-radius:var(--r);background:#fff;border:1px solid var(--line);transition:transform .5s var(--out),border-color .4s}
.rel a:hover{transform:translateY(-6px);border-color:var(--teal)}
.rel a .ic.big{width:40px;height:40px;color:var(--teal-d);stroke-width:1.2}
.rel a h3{font-size:1.35rem;margin:0}
.rel a .tlink{align-self:flex-start}

/* ---------- Contact ---------- */
.ct{display:grid;grid-template-columns:.9fr 1.1fr;border-radius:var(--r-lg);overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 40px 80px -60px rgba(10,31,58,.5)}
.ct-info{position:relative;background:var(--ink);color:#b9c6d8;padding:56px 48px;overflow:hidden}
.ct-info h2{color:#fff;font-size:clamp(1.9rem,3vw,2.6rem)}
.ct-info h2 em{color:var(--teal-l)}
.ct-info .chev-bg{position:absolute;right:-80px;bottom:-80px;width:320px;opacity:.35}
.ct-list{list-style:none;margin:36px 0 0;padding:0;display:grid;gap:26px;position:relative}
.ct-list li{display:grid;grid-template-columns:44px 1fr;gap:14px}
.ct-list .ci{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.07);color:var(--teal-l)}
.ct-list small{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-l);margin-bottom:3px}
.ct-list a,.ct-list span{color:#fff}
.ct-list a:hover{color:var(--teal-l)}
.ct-form{padding:56px 48px}
.ct-form h3{font-size:1.8rem}
.fld{position:relative;margin-bottom:22px}
.fld input,.fld textarea{width:100%;border:0;border-bottom:1.5px solid var(--line);background:none;font:inherit;color:var(--ink);padding:24px 0 10px;border-radius:0;transition:border-color .3s}
.fld textarea{resize:vertical;min-height:110px}
.fld label{position:absolute;left:0;top:22px;color:var(--muted);pointer-events:none;transition:.35s var(--out);font-size:1rem}
.fld::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--teal);transition:width .5s var(--out)}
.fld:focus-within::after{width:100%}
.fld input:focus,.fld textarea:focus{outline:none}
.fld input:focus+label,.fld input:not(:placeholder-shown)+label,.fld textarea:focus+label,.fld textarea:not(:placeholder-shown)+label{top:0;font-size:.72rem;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--teal-d)}
.fld .invalid{border-color:#d9534f}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.pick{margin:8px 0 26px}
.pick p{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-d);margin:0 0 12px}
.pick div{display:flex;flex-wrap:wrap;gap:8px}
.pick label{position:relative;cursor:pointer}
.pick input{position:absolute;opacity:0;pointer-events:none}
.pick span{display:inline-block;padding:9px 15px;border-radius:999px;border:1px solid var(--line);font-size:.86rem;color:var(--ink);transition:.3s}
.pick label:hover span{border-color:var(--ink)}
.pick input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.pick input:focus-visible+span{outline:2px solid var(--teal);outline-offset:2px}
.hp{position:absolute!important;left:-9999px}
.form-status{margin:14px 0 0;font-size:.94rem;min-height:1.2em;font-weight:700}
.form-status.ok{color:#118a5a}.form-status.err{color:#c0392b}
.consent{font-size:.82rem;color:var(--muted);margin:16px 0 0}
.consent a{color:var(--teal-d);text-decoration:underline}
.map{position:relative;border-radius:var(--r-lg);overflow:hidden;height:500px;border:1px solid var(--line);background:var(--paper-2)}
.map iframe{width:100%;height:100%;border:0;filter:saturate(.3) contrast(1.05);transition:filter .6s}
.map:hover iframe{filter:none}
.map-card{position:absolute;right:24px;bottom:24px;max-width:340px;background:#fff;border-radius:var(--r);padding:24px;box-shadow:0 30px 60px -30px rgba(10,31,58,.5)}
.map-card h3{font-size:1.25rem;margin-bottom:8px}
.map-card p{font-size:.92rem;margin:0 0 14px}

/* ---------- Misc ---------- */
.legal{max-width:820px}
.legal h2{font-size:1.7rem;margin-top:1.6em}
.legal a{color:var(--teal-d);text-decoration:underline}
.e404{min-height:80vh;display:grid;place-items:center;text-align:center;padding:160px 0 80px}
.e404 .num{font-family:var(--serif);font-style:italic;font-size:clamp(7rem,22vw,15rem);line-height:.9;color:var(--ink)}
.e404 .num em{color:var(--teal)}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .nav{display:none}
  .hero-grid,.layers,.tl,.ph-grid,.ftr-top,.sd,.ct{grid-template-columns:1fr}
  .hero{padding-top:150px}
  .bento .big-chev{width:340px;right:-40px}
  .why{grid-template-columns:repeat(2,1fr)}
  .pillars{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(3){border-left:0;padding-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line-d)}
  .tl-side,.toc{position:static}
  .toc{display:none}
  .ftr-cols{grid-template-columns:1fr 1fr}
  .menu-grid{grid-template-columns:1fr;gap:40px}
  .shead{grid-template-columns:1fr}
  .shead p{justify-self:start}
  .ind{grid-template-columns:repeat(2,1fr)}
  .hsteps{grid-template-columns:repeat(2,1fr)}
  .val{grid-template-columns:60px 1fr 40px}
  .val p{grid-column:2/3}
  .princ{grid-template-columns:repeat(2,1fr)}
  .side-progress{display:none}
}
@media (max-width:720px){
  body{font-size:16px}
  .sec{padding:90px 0}
  .hdr{top:10px}
  .hdr-in{padding:8px 8px 8px 18px}
  .logo img{height:34px}
  .hdr-cta .btn{display:none}
  .bento{grid-template-columns:1fr}
  .w.span2{grid-column:auto}
  .bento .big-chev{display:none}
  .pillars,.why,.ind,.kp,.offers,.rel,.row2,.name-split,.mv,.princ,.hsteps{grid-template-columns:1fr}
  .tile.feature,.tile.wide{grid-column:auto;grid-row:auto}
  .mv>div,.mv>div+div{padding:36px 0;border-left:0}
  .mv>div+div{border-top:1px solid var(--line)}
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:28px 14px 10px 0}
  .stat+.stat{padding-left:14px}
  .stat:nth-child(3){padding-left:0}
  .ftr-cols{grid-template-columns:1fr;gap:36px}
  .cta{padding:60px 26px;border-radius:28px}
  .cta .chev-float{width:300px;right:-120px;opacity:.6}
  .sx-row{grid-template-columns:44px 1fr 44px;gap:14px;padding:26px 6px}
  .sx-row p{display:none}
  .sx-row .go{width:42px;height:42px}
  .acc-a>div{padding-left:0}
  .acc-a ul{columns:1}
  .acc-q{grid-template-columns:44px 1fr auto}
  .acc-q .ai{width:44px;height:44px}
  .acc-q h3{font-size:1.2rem}
  .ct-info,.ct-form{padding:40px 24px}
  .map{height:auto}
  .map iframe{height:340px}
  .map-card{position:relative;right:auto;bottom:auto;max-width:none;border-radius:0;box-shadow:none}
  .badge-row{flex-direction:column;align-items:flex-start;gap:30px}
  .hero-meta{gap:20px}
  .std span.s{gap:16px}
  .ph{padding-top:150px}
  .ph-icon{display:none}
  .val{grid-template-columns:40px 1fr}
  .val .ic{display:none}
  .val h3{font-size:1.6rem}
  .faq .fa{padding-right:0}
  .legal-bar{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  [data-blur],[data-rise],[data-slide]{opacity:1;filter:none;transform:none}
  [data-wipe]{clip-path:none}
  .statement .wd{opacity:1}
  html{scroll-behavior:auto}
}

/* compliance meters widget */
.meters{display:grid;gap:10px;margin-top:14px}
.meters div{display:grid;grid-template-columns:76px 1fr;align-items:center;gap:10px;font-family:var(--mono);font-size:.68rem;color:var(--text)}
.meters i{position:relative;height:6px;border-radius:6px;background:var(--paper-2);overflow:hidden}
.meters i::after{content:"";position:absolute;inset:0;width:var(--w);border-radius:6px;background:linear-gradient(90deg,var(--teal-d),var(--teal));transform:scaleX(0);transform-origin:left;animation:meter 2.4s 1s var(--out) forwards}
@keyframes meter{to{transform:scaleX(1)}}
