:root{
  color-scheme:dark;
  --g950:#0D0F11;--g900:#111316;--g850:#15181B;--g800:#1A1D21;--g700:#23272C;--g600:#30353B;--g500:#474D55;--g400:#6E757E;--g300:#9EA5AD;--g200:#C9CDD1;
  --paper:#F2EEE9;--paper2:#E8E2DA;--paper3:#D9D1C6;--ink:#17191C;--ink2:#4A4E54;
  --cu:#C08A6E;--cuL:#E7BB9C;--cuD:#8A5A44;
  --D:"Space Grotesk",system-ui,sans-serif;--B:"Inter",system-ui,sans-serif;--M:"IBM Plex Mono",ui-monospace,monospace;
  --gl:max(20px,env(safe-area-inset-left));--gr:max(20px,env(safe-area-inset-right));
  --ease:cubic-bezier(.2,.65,.3,1);
  --max:1240px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{background:var(--g900);color:#EDEBE8;font:400 16px/1.65 var(--B);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--cuL);outline-offset:3px}
::selection{background:var(--cu);color:var(--g900)}

.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gl);padding-right:var(--gr)}
.lbl{font:500 11px/1.4 var(--M);letter-spacing:.14em;text-transform:uppercase}
.cu{color:var(--cu)}
.mut{color:var(--g300)}
.skip{position:absolute;left:-999px;top:8px;background:var(--cu);color:var(--g900);padding:8px 14px;z-index:99}
.skip:focus{left:8px}

/* ---------- header ---------- */
.hd{position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(255,255,255,.07)}
/* blur lives on a pseudo-element: backdrop-filter on .hd would trap the fixed mobile menu inside the header box */
.hd::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(17,19,22,.86);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px)}
.hd .wrap{display:flex;align-items:center;height:76px;gap:32px}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand svg{width:30px;height:auto}
.brand b{display:block;font:700 19px/1 var(--D);letter-spacing:.2em}
.brand small{display:block;font:500 8.5px/1 var(--M);letter-spacing:.2em;text-transform:uppercase;color:var(--g400);margin-top:5px}
.nav{display:flex;gap:30px;margin-left:auto;font-size:14px}
.nav a{position:relative;color:var(--g300);padding:6px 0;transition:color .25s}
.nav a:hover,.nav a[aria-current="page"]{color:#fff}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--cu);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.tools{display:flex;align-items:center;gap:18px}
.lang{display:flex;font:500 12px/1 var(--M);letter-spacing:.08em;border:1px solid var(--g600)}
.lang a{padding:8px 10px;color:var(--g400);transition:color .25s,background .25s}
.lang a[aria-current="true"]{background:var(--g700);color:#fff}
.lang a:hover{color:#fff}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--g600);background:none;cursor:pointer;position:relative}
.menu-btn span{position:absolute;left:12px;right:12px;height:1.5px;background:#fff;transition:transform .35s var(--ease),opacity .2s}
.menu-btn span:nth-child(1){top:16px}.menu-btn span:nth-child(2){top:21px}.menu-btn span:nth-child(3){top:26px}
.menu-open .menu-btn span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.menu-open .menu-btn span:nth-child(2){opacity:0}
.menu-open .menu-btn span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:12px;padding:15px 22px;font:600 14px/1 var(--B);border:1px solid transparent;cursor:pointer;transition:background .3s,color .3s,border-color .3s,transform .35s var(--ease)}
.btn .ar{display:inline-block;transition:transform .35s var(--ease)}
.btn:hover .ar,.tl:hover .ar{transform:translateX(5px)}
.btn-cu{background:var(--cu);color:var(--g950)}
.btn-cu:hover{background:var(--cuL)}
.btn-ln{border-color:rgba(255,255,255,.28);color:#fff}
.btn-ln:hover{border-color:var(--cu);color:var(--cuL)}
.btn-dk{background:var(--ink);color:#fff}
.btn-dk:hover{background:var(--cuD)}
.btn-sm{padding:11px 16px;font-size:13px}
.tl{display:inline-flex;align-items:center;gap:10px;font:600 14px/1 var(--B);border-bottom:1px solid currentColor;padding-bottom:6px}

/* ---------- drawing-sheet details ---------- */
.ticks{position:absolute;inset:0;pointer-events:none}
.ticks i{position:absolute;width:14px;height:14px;border-color:var(--cuD);border-style:solid;border-width:0}
.ticks i:nth-child(1){top:0;left:0;border-top-width:1px;border-left-width:1px}
.ticks i:nth-child(2){top:0;right:0;border-top-width:1px;border-right-width:1px}
.ticks i:nth-child(3){bottom:0;right:0;border-bottom-width:1px;border-right-width:1px}
.ticks i:nth-child(4){bottom:0;left:0;border-bottom-width:1px;border-left-width:1px}
.sheet{display:flex;gap:28px;flex-wrap:wrap;font:500 10.5px/1.4 var(--M);letter-spacing:.14em;text-transform:uppercase;color:var(--g400)}
.sheet b{color:var(--g200);font-weight:500}

/* ---------- page hero (inner pages) ---------- */
.ph{position:relative;padding:92px 0 72px;border-bottom:1px solid rgba(255,255,255,.07);overflow:hidden}
.ph .grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%)}
.ph .wrap{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.ph .sheet{grid-column:1/-1;margin-bottom:40px}
.ph h1{grid-column:1/9;font:500 clamp(40px,6vw,80px)/1 var(--D);letter-spacing:-.035em}
.ph h1 em{font-style:normal;color:var(--cu)}
.ph p{grid-column:9/13;align-self:end;color:var(--g300);font-size:16.5px}

/* ---------- home hero ---------- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.07)}
.hero .grid-bg{position:absolute;inset:-10% 0 0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 70% 80% at 72% 40%,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse 70% 80% at 72% 40%,#000 25%,transparent 75%);will-change:transform}
.hero .warm{position:absolute;right:-12%;top:-30%;width:62vw;max-width:900px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(192,138,110,.22),transparent 62%);animation:breathe 10s ease-in-out infinite}
@keyframes breathe{50%{transform:scale(1.08);opacity:.7}}
.hero-in{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding-top:72px;padding-bottom:0}
.hero .sheet{grid-column:1/-1;margin-bottom:56px}
.hero-copy{grid-column:1/8}
.hero .kick{color:var(--cu);margin-bottom:22px}
.hero h1{font:500 clamp(46px,7.4vw,108px)/.96 var(--D);letter-spacing:-.045em}
.hero h1 span{display:block}
.hero h1 .c{color:var(--cu)}
.hero .lead{max-width:540px;margin-top:34px;font-size:18px;color:var(--g300)}
.hero .lead b{color:#fff;font-weight:500}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
.hero-mark{grid-column:8/13;position:relative;align-self:center;padding:28px}
.hero-mark .iso{width:min(100%,380px);margin:0 auto;overflow:visible;filter:drop-shadow(0 30px 50px rgba(0,0,0,.45))}
.hero-mark .note{position:absolute;font:400 10.5px/1.5 var(--M);letter-spacing:.06em;color:var(--g400)}
.hero-mark .n1{top:0;left:0}.hero-mark .n2{bottom:0;right:0;text-align:right}
.hero-mark .cross{position:absolute;inset:0;pointer-events:none}
.facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);margin-top:88px;border-top:1px solid rgba(255,255,255,.12)}
.fact{padding:26px 24px 34px 0;border-right:1px solid rgba(255,255,255,.07);margin-right:24px}
.fact:last-child{border-right:0;margin-right:0}
.fact b{display:block;font:500 40px/1 var(--D);letter-spacing:-.02em;margin-bottom:12px;font-variant-numeric:tabular-nums}
.fact span{display:block;font-size:13.5px;color:var(--g300);max-width:200px}

/* draw-in of svg lines */
.iso .ln{stroke-dasharray:1;stroke-dashoffset:0}
.iso.go .ln{animation:draw 2.1s var(--ease) both}
.iso.go .ln:nth-of-type(2){animation-delay:.35s}.iso.go .ln:nth-of-type(3){animation-delay:.55s}.iso.go .ln:nth-of-type(4){animation-delay:.75s}
.iso.go .faces{animation:fade 1.1s ease 1.5s both}
@keyframes draw{from{stroke-dashoffset:1}}
@keyframes fade{from{opacity:0}}
@keyframes rise{from{opacity:0;transform:translateY(22px)}}
.in{animation:rise .9s var(--ease) both}
.in.d1{animation-delay:.1s}.in.d2{animation-delay:.22s}.in.d3{animation-delay:.34s}.in.d4{animation-delay:.5s}

/* ---------- clients ---------- */
.clients{position:relative;background:var(--g950);border-bottom:1px solid rgba(255,255,255,.07);padding:38px 0 44px;overflow:hidden}
.clients::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--cu),transparent);opacity:.6}
.cl-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px 32px;flex-wrap:wrap;margin-bottom:30px}
.cl-head .lbl{color:var(--cu)}
.cl-note{font-size:14px;color:var(--g400)}
.marquee{display:flex;width:max-content;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.clients .marquee{width:100%}
.marquee ul{list-style:none;display:flex;align-items:flex-start;flex:none;gap:56px;padding-right:56px;animation:marq 42s linear infinite}
.marquee:hover ul{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-100%)}}
.marquee li{flex:none;cursor:default}
.marquee b{display:block;font:500 clamp(28px,3.4vw,46px)/1 var(--D);letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1px var(--g300);transition:color .4s,-webkit-text-stroke-color .4s}
.marquee li:hover b{color:var(--paper);-webkit-text-stroke-color:transparent}
.marquee small{display:block;margin-top:10px;font:400 11px/1 var(--M);letter-spacing:.12em;text-transform:uppercase;color:var(--g500);transition:color .4s}
.marquee li:hover small{color:var(--cuL)}
.marquee .hx{width:12px;height:14px;background:var(--cu);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);opacity:.8;margin-top:clamp(8px,1.1vw,16px)}

/* ---------- sections ---------- */
.sec{padding:128px 0;position:relative}
.sec.paper{background:var(--paper);color:var(--ink)}
.sec.paper .mut{color:var(--ink2)}
.sec.deep{background:var(--g850)}
.shead{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;margin-bottom:64px}
.shead .lbl{grid-column:1/4;padding-top:12px;border-top:1px solid var(--cu);align-self:start;color:var(--cu)}
.shead h2{grid-column:4/11;font:500 clamp(32px,4.2vw,56px)/1.04 var(--D);letter-spacing:-.03em}
.shead p{grid-column:4/10;margin-top:22px;font-size:17px}
.paper .shead .lbl{color:var(--cuD);border-color:var(--cuD)}

/* services list (home) */
.svc-list{border-top:1px solid var(--paper3)}
.svc-row{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding:34px 0;border-bottom:1px solid var(--paper3);position:relative;transition:padding .45s var(--ease)}
.svc-row::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.svc-row:hover::before{transform:scaleX(1)}
.svc-row .n{grid-column:1/2;font:500 13px/1 var(--M);color:var(--cuD);padding-top:12px}
.svc-row h3{grid-column:2/7;font:500 clamp(24px,2.6vw,34px)/1.1 var(--D);letter-spacing:-.02em}
.svc-row p{grid-column:7/11;color:var(--ink2);font-size:15.5px}
.svc-row .go{grid-column:11/13;justify-self:end;align-self:start;width:46px;height:46px;border:1px solid var(--paper3);display:grid;place-items:center;transition:background .35s,border-color .35s,color .35s,transform .45s var(--ease)}
.svc-row:hover .go{background:var(--ink);border-color:var(--ink);color:#fff;transform:rotate(-45deg)}

/* industries grid (home) */
.ind-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08)}
.ind{position:relative;background:var(--g900);padding:36px 36px 32px;display:flex;flex-direction:column;min-height:420px;overflow:hidden;transition:background .5s}
.ind:hover{background:var(--g850)}
.ind .top{display:flex;justify-content:space-between;align-items:baseline}
.ind h3{font:500 30px/1.1 var(--D);letter-spacing:-.02em}
.ind .lbl{color:var(--g400)}
.ind .art{flex:1;display:flex;align-items:center;justify-content:center;padding:18px 0}
.ind .art svg{width:100%;max-width:440px;height:auto}
.ind p{color:var(--g300);font-size:15px;max-width:440px}
.ind .tl{margin-top:20px;color:var(--cuL);align-self:flex-start}

/* technical drawings */
.dw{fill:none;stroke:var(--cu);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.dw .thin{stroke:var(--g500);stroke-width:1}
.dw .dim{stroke:var(--g400);stroke-width:.8}
.dw .gnd{stroke:var(--g400);stroke-width:1}
.dw .hatch{stroke:var(--g600);stroke-width:.8}
.dw .fill{fill:rgba(192,138,110,.08)}
.dw text{fill:var(--g400);stroke:none;font:400 9px var(--M);letter-spacing:.06em}
.dw .p{stroke-dasharray:1;stroke-dashoffset:0}
.dw.go .p{animation:draw 2.4s var(--ease) both}
.dw.go text{animation:fade 1s ease .9s both}
.paper .dw{stroke:var(--cuD)}
.paper .dw .thin,.paper .dw .gnd{stroke:#A79D91}
.paper .dw .dim{stroke:#A79D91}
.paper .dw .hatch{stroke:#CFC6BA}
.paper .dw text{fill:#857B70}

/* method */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid rgba(255,255,255,.1);counter-reset:s}
.step{padding:30px 22px 10px 0;position:relative}
.step::before{content:"";position:absolute;top:-1px;left:0;height:2px;width:0;background:var(--cu)}
.steps.run .step::before{animation:bar 12.5s linear infinite}
.steps.run .step:nth-child(2)::before{animation-delay:2.5s}
.steps.run .step:nth-child(3)::before{animation-delay:5s}
.steps.run .step:nth-child(4)::before{animation-delay:7.5s}
.steps.run .step:nth-child(5)::before{animation-delay:10s}
@keyframes bar{0%{width:0;opacity:1}18%{width:100%;opacity:1}20%,100%{width:100%;opacity:0}}
.step .k{font:500 12px/1 var(--M);color:var(--cu);display:block;margin-bottom:22px}
.step h3,.step h4{font:500 20px/1.2 var(--D);margin-bottom:10px;letter-spacing:-.01em}
.step p{font-size:14.5px;color:var(--g300)}
.paper .steps{border-color:var(--paper3)}
.paper .step p{color:var(--ink2)}

/* cta band */
.cta{position:relative;overflow:hidden;background:var(--g950);border-top:1px solid rgba(255,255,255,.07)}
.cta .wrap{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding-top:120px;padding-bottom:120px;align-items:end}
.cta h2{grid-column:1/9;font:500 clamp(36px,5vw,68px)/1.02 var(--D);letter-spacing:-.035em}
.cta h2 em{font-style:normal;color:var(--cu)}
.cta .act{grid-column:9/13;display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.cta .act p{color:var(--g300);font-size:15px}
.cta .wm{pointer-events:none;position:absolute;right:-80px;bottom:-140px;width:520px;opacity:.07}

/* ---------- about ---------- */
.split{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.bio-card{grid-column:1/6;position:relative;background:var(--g850);border:1px solid rgba(255,255,255,.08);aspect-ratio:4/5;display:flex;flex-direction:column;justify-content:space-between;padding:28px;overflow:hidden}
.bio-card .mono-dt{font:500 clamp(120px,16vw,220px)/.8 var(--D);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px var(--g600)}
.bio-card .cap{font:400 11px/1.5 var(--M);letter-spacing:.08em;color:var(--g400);text-transform:uppercase}
.bio{grid-column:7/13;align-self:center}
.bio blockquote{font:400 clamp(24px,2.5vw,32px)/1.3 var(--D);letter-spacing:-.015em;margin:20px 0 28px}
.bio p{color:var(--g300);margin-bottom:16px}
.bio .who{display:flex;align-items:center;gap:20px;margin-top:30px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap}
.bio .who b{display:block;font:500 17px/1.2 var(--D)}
.bio .who span{font:400 11px/1.4 var(--M);letter-spacing:.12em;text-transform:uppercase;color:var(--cu)}
.princ{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.pr{border-top:1px solid var(--paper3);padding-top:24px}
.pr .k{font:500 11px/1 var(--M);color:var(--cuD);letter-spacing:.12em}
.pr h3{font:500 21px/1.2 var(--D);margin:16px 0 10px;letter-spacing:-.01em}
.pr p{font-size:14.5px;color:var(--ink2)}
.exp{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid rgba(255,255,255,.08)}
.exp div{padding:30px 22px;border-right:1px solid rgba(255,255,255,.08);font:600 15px/1.2 var(--D);letter-spacing:.08em;text-transform:uppercase;color:var(--g200);transition:color .3s,background .4s}
.exp div:last-child{border-right:0}
.exp div:hover{background:var(--g850);color:var(--cuL)}
.exp small{display:block;margin-top:10px;font:400 11px/1.4 var(--M);letter-spacing:.06em;text-transform:none;color:var(--g400)}

/* ---------- services page ---------- */
.subnav{position:sticky;top:76px;z-index:40;background:rgba(242,238,233,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--paper3);color:var(--ink)}
.subnav .wrap{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.subnav a{flex:none;padding:16px 16px;font:500 13px/1 var(--B);color:var(--ink2);border-bottom:2px solid transparent;transition:color .25s,border-color .25s}
.subnav a:hover{color:var(--ink)}
.subnav a.on{color:var(--ink);border-color:var(--cuD)}
.subnav.dark{background:rgba(17,19,22,.9);border-color:rgba(255,255,255,.08);color:#fff}
.subnav.dark a{color:var(--g400)}.subnav.dark a:hover,.subnav.dark a.on{color:#fff}.subnav.dark a.on{border-color:var(--cu)}
.srv{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding:112px 0;border-bottom:1px solid var(--paper3)}
.srv:last-child{border-bottom:0}
.srv .side{grid-column:1/5;position:sticky;top:150px;align-self:start}
.srv .side .big{font:500 clamp(80px,10vw,150px)/.85 var(--D);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.2px var(--cuD)}
.srv .side .lbl{margin-top:22px;color:var(--cuD)}
.srv .body{grid-column:5/13}
.srv h2{font:500 clamp(30px,3.6vw,48px)/1.05 var(--D);letter-spacing:-.03em;margin-bottom:22px}
.srv .intro{font-size:18px;color:var(--ink2);max-width:640px}
.srv .cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:44px}
.srv h4{font:500 11px/1.4 var(--M);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);padding-bottom:14px;border-bottom:1px solid var(--ink)}
.chk{list-style:none}
.chk li{padding:13px 0 13px 26px;border-bottom:1px solid var(--paper3);position:relative;font-size:15px}
.chk li::before{content:"";position:absolute;left:2px;top:21px;width:12px;height:1px;background:var(--cuD)}
.chk li::after{content:"";position:absolute;left:10px;top:18px;width:4px;height:4px;border-top:1px solid var(--cuD);border-right:1px solid var(--cuD);transform:rotate(45deg)}
.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.pill-row span{font:400 12px/1 var(--M);border:1px solid var(--paper3);padding:9px 11px;color:var(--ink2);background:rgba(255,255,255,.35)}

/* ---------- industries page ---------- */
.inds{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding:112px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.inds:last-of-type{border-bottom:0}
.inds .art{grid-column:1/7;position:relative;border:1px solid rgba(255,255,255,.08);background:var(--g850);padding:32px;align-self:start}
.inds .art .sheet{margin-bottom:18px}
.inds .art svg{width:100%;height:auto}
.inds .body{grid-column:8/13}
.inds .body .lbl{color:var(--cu)}
.inds h2{font:500 clamp(32px,4vw,52px)/1.03 var(--D);letter-spacing:-.03em;margin:16px 0 20px}
.inds .intro{color:var(--g300);font-size:17px}
.inds .two{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:36px}
.inds h4{font:500 11px/1.4 var(--M);letter-spacing:.14em;text-transform:uppercase;color:var(--g400);padding-bottom:12px;border-bottom:1px solid var(--g600)}
.dl{list-style:none}
.dl li{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:14.5px;color:var(--g200)}
.inds.rev .art{grid-column:7/13;grid-row:1}
.inds.rev .body{grid-column:1/6;grid-row:1}
.callout{margin-top:30px;padding:20px 22px;border-left:2px solid var(--cu);background:rgba(192,138,110,.06);font-size:15px;color:var(--g200)}
.callout b{color:#fff;font-weight:500}

/* ---------- contact ---------- */
.ct{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.ct-info{grid-column:1/5}
.ct-info .row{padding:22px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.ct-info .row:first-child{border-top:1px solid rgba(255,255,255,.08)}
.ct-info .lbl{color:var(--g400);margin-bottom:8px}
.ct-info a{overflow-wrap:anywhere}
.ct-info a,.ct-info .v{font:500 20px/1.3 var(--D);letter-spacing:-.01em;transition:color .25s}
.ct-info a:hover{color:var(--cuL)}
.ct-info .s{font-size:13.5px;color:var(--g400);margin-top:4px}
.wa-btn{display:inline-flex;align-items:center;gap:10px;margin-top:28px;padding:14px 20px;border:1px solid #2F7A4C;color:#BFF0D0;font:600 14px/1 var(--B);transition:background .3s,border-color .3s}
.wa-btn:hover{background:#163A26;border-color:#3FA466}
.wa-btn svg{width:18px;height:18px}
.form{grid-column:6/13;position:relative;background:var(--g850);border:1px solid rgba(255,255,255,.08);padding:44px 44px 40px}
.form h2{font:500 28px/1.15 var(--D);letter-spacing:-.02em;margin-bottom:8px}
.form>p{color:var(--g300);font-size:15px;margin-bottom:34px}
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--g600);margin-bottom:28px}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;cursor:pointer}
.seg span{display:block;padding:14px 16px;text-align:center;font-size:14px;color:var(--g300);transition:background .25s,color .25s}
.seg input:checked+span{background:var(--cu);color:var(--g950);font-weight:600}
.seg input:focus-visible+span{outline:2px solid var(--cuL);outline-offset:-2px}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:26px 28px}
.f{display:flex;flex-direction:column;gap:8px;min-width:0}
.f.full{grid-column:1/-1}
.f label{font:500 10.5px/1 var(--M);letter-spacing:.14em;text-transform:uppercase;color:var(--g400)}
.f input,.f select,.f textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--g600);border-radius:0;padding:8px 0 11px;font-size:16px;outline:none;transition:border-color .3s}
.f select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--g300) 50%),linear-gradient(135deg,var(--g300) 50%,transparent 50%);background-position:calc(100% - 10px) 50%,calc(100% - 5px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.f select option{background:var(--g900)}
.f textarea{resize:vertical;min-height:96px}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--cu)}
.f input::placeholder,.f textarea::placeholder{color:var(--g500)}
.consent{display:flex;gap:12px;align-items:flex-start;margin-top:28px;font-size:13.5px;color:var(--g300)}
.consent input{flex:none;width:18px;height:18px;margin-top:2px;accent-color:var(--cu)}
.consent a{color:var(--cuL);border-bottom:1px solid rgba(231,187,156,.4)}
.form .btn{margin-top:28px;width:100%;justify-content:center}
.form .ok{display:none;margin-top:20px;padding:16px 18px;border-left:2px solid var(--cu);background:rgba(192,138,110,.07);font-size:14.5px}
.form.sent .ok{display:block}
.form .err{display:none;margin-top:20px;padding:16px 18px;border-left:2px solid #D9534F;background:rgba(217,83,79,.08);font-size:14.5px}
.form.fail .err{display:block}
.form .err a{color:var(--cuL)}
.form .hp{position:absolute;left:-9999px;opacity:0}

/* ---------- legal ---------- */
.legal{max-width:760px}
.legal h2{font:500 24px/1.2 var(--D);margin:48px 0 14px;letter-spacing:-.01em}
.legal p,.legal li{color:var(--ink2);margin-bottom:12px;font-size:16px}
.legal ul{padding-left:20px}
.legal .note{padding:16px 18px;border-left:2px solid var(--cuD);background:rgba(138,90,68,.07);font-size:14px}

/* ---------- footer ---------- */
.ft{background:var(--g950);border-top:1px solid rgba(255,255,255,.08);padding-top:72px;color:var(--g300);font-size:14px}
.ft-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding-bottom:56px}
.ft-brand{grid-column:1/5}
.ft-brand p{margin-top:18px;max-width:320px}
.ft-col{grid-column:span 2}
.ft-col:last-child{grid-column:span 3}
.ft-col .lbl{color:var(--g500);margin-bottom:16px}
.ft-col ul{list-style:none;display:grid;gap:9px}
.ft-col a{transition:color .25s}
.ft-col a:hover{color:#fff}
.tblock{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;border-top:1px solid rgba(255,255,255,.08)}
.tblock div{padding:16px 18px 18px 0;border-right:1px solid rgba(255,255,255,.08);margin-right:18px;font:400 11px/1.5 var(--M);letter-spacing:.06em;color:var(--g500)}
.tblock div:last-child{border-right:0;margin-right:0}
.tblock b{display:block;font-weight:500;color:var(--g300);text-transform:uppercase;letter-spacing:.12em;font-size:9.5px;margin-bottom:4px}
.tblock a:hover{color:#fff}

.wa-float{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:45;width:54px;height:54px;border-radius:50%;background:#1F9D55;display:grid;place-items:center;box-shadow:0 12px 30px -10px rgba(0,0,0,.6);transition:transform .35s var(--ease),background .3s}
.wa-float:hover{transform:translateY(-3px);background:#22B060}
.wa-float svg{width:26px;height:26px}

/* reveal: visible at rest; .show replays a soft rise just before entering view */
.rv.show{animation:rise .95s var(--ease) both}
.rv.show.r2{animation-delay:.08s}.rv.show.r3{animation-delay:.16s}.rv.show.r4{animation-delay:.24s}.rv.show.r5{animation-delay:.32s}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .nav{gap:22px}
  .hero-copy{grid-column:1/-1}
  .hero-mark{grid-column:1/-1;width:100%;max-width:280px;margin:48px auto 0;padding:18px}
  .hero-mark .note{display:none}
  .facts{grid-template-columns:1fr 1fr;margin-top:56px}
  .fact{margin-right:0;padding-left:0;padding-right:16px}
  .fact:nth-child(even){padding-left:20px}
  .fact:nth-child(2){border-right:0}
  .fact:nth-child(n+3){border-top:1px solid rgba(255,255,255,.07)}
  .ph h1,.ph p{grid-column:1/-1}
  .inds .art,.inds .body,.inds.rev .art,.inds.rev .body{grid-column:1/-1;grid-row:auto}
  .srv .side,.srv .body{grid-column:1/-1}
  .srv .side{display:flex;align-items:flex-end;gap:20px;position:static}
  .bio-card{grid-column:1/-1;aspect-ratio:16/10}
  .bio{grid-column:1/-1}
  .ct-info,.form{grid-column:1/-1}
  .princ{grid-template-columns:1fr 1fr}
  .exp{grid-template-columns:1fr 1fr}
  .exp div{border-bottom:1px solid rgba(255,255,255,.08)}
}
@media (max-width:860px){
  .nav{position:fixed;inset:76px 0 0 0;flex-direction:column;gap:0;background:var(--g900);padding:24px var(--gr) 24px var(--gl);transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .3s,transform .4s var(--ease),visibility 0s .4s}
  .menu-open .nav{opacity:1;visibility:visible;transform:none;transition:opacity .3s,transform .4s var(--ease)}
  .nav a{font:500 30px/1 var(--D);padding:20px 0;border-bottom:1px solid rgba(255,255,255,.07);color:#fff}
  .nav a::after{display:none}
  .nav a[aria-current="page"]{color:var(--cu)}
  .menu-btn{display:block}
  .tools{margin-left:auto}
  .tools .btn{display:none}
  .shead .lbl,.shead h2,.shead p{grid-column:1/-1}
  .svc-row .n{grid-column:1/-1;padding:0}
  .svc-row h3{grid-column:1/11}
  .svc-row p{grid-column:1/-1}
  .svc-row .go{grid-column:11/13;grid-row:2}
  .ind-grid{grid-template-columns:1fr}
  .ind{min-height:0;padding:28px 22px}
  .steps{grid-template-columns:1fr}
  .step{padding:24px 0;border-bottom:1px solid rgba(255,255,255,.08)}
  .paper .step{border-color:var(--paper3)}
  .cta h2,.cta .act{grid-column:1/-1}
  .cta .wrap{padding-top:88px;padding-bottom:88px}
  .srv .cols,.inds .two{grid-template-columns:1fr}
  .fg{grid-template-columns:1fr}
  .form{padding:30px 22px}
  .ft-brand{grid-column:1/-1}
  .ft-col,.ft-col:last-child{grid-column:span 6}
  .tblock{grid-template-columns:1fr 1fr}
  .tblock div{border-right:0;margin-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
  .sec{padding:88px 0}
  .srv,.inds{padding:80px 0}
  .ph{padding:64px 0 52px}
  .ph .sheet,.hero .sheet{margin-bottom:28px}
  .princ{grid-template-columns:1fr}
}
@media (max-width:480px){
  .exp{grid-template-columns:1fr}
  .hero h1{font-size:44px}
  .fact b{font-size:32px}
}
/* reduced motion: drop movement, keep fades, drawing and colour changes */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  @keyframes rise{from{opacity:0}}
  .hero .warm{animation:none}
  .marquee ul{animation:none}.marquee ul+ul{display:none}.marquee{-webkit-mask-image:none;mask-image:none}.marquee ul{flex-wrap:wrap;gap:28px 40px;padding:0 var(--gr) 0 var(--gl)}
  .btn:hover,.wa-float:hover{transform:none}
}


/* WhatsApp prompt bubble: appears once the visitor engages, closable, stays closed for a week */
.wa-tip{position:fixed;right:calc(max(20px,env(safe-area-inset-right)) + 66px);bottom:max(20px,env(safe-area-inset-bottom));z-index:45;display:flex;align-items:flex-start;max-width:calc(100vw - 110px);background:var(--paper);color:var(--ink);border-radius:12px;box-shadow:0 14px 34px -12px rgba(0,0,0,.65);opacity:0;transform:translateY(6px);transition:opacity .4s,transform .5s var(--ease)}
.wa-tip::after{content:"";position:absolute;right:-5px;bottom:22px;width:10px;height:10px;background:var(--paper);transform:rotate(45deg)}
.wa-tip.on{opacity:1;transform:none}
.wa-tip[hidden]{display:none}
.wa-tip a{display:grid;gap:2px;padding:11px 0 11px 14px;font:400 13px/1.3 var(--B);color:var(--ink2)}
.wa-tip a b{font:600 14px/1.25 var(--B);color:var(--ink)}
.wa-tip a span{color:#1F7A44;font-weight:500}
.wa-tip a:hover span{text-decoration:underline}
.wa-tip button{flex:none;width:32px;height:32px;margin:4px;border:0;border-radius:8px;background:none;color:var(--ink2);font-size:18px;line-height:1;cursor:pointer}
.wa-tip button:hover{background:var(--paper2);color:var(--ink)}
.menu-open .wa-tip{display:none}
.wa-float.ping::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #1F9D55;animation:waPing 1.6s var(--ease) 2}
@keyframes waPing{from{transform:scale(1);opacity:.8}to{transform:scale(1.6);opacity:0}}
@media (prefers-reduced-motion:reduce){.wa-tip{transition:none;transform:none}.wa-float.ping::after{animation:none}}
