/* Alexandria, self-hosted (replaces the Google Fonts link) */
@font-face{font-family:'Alexandria';font-style:normal;font-weight:100 900;font-display:swap;src:url('/fonts/alexandria-latin-wght-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Alexandria';font-style:normal;font-weight:100 900;font-display:swap;src:url('/fonts/alexandria-arabic-wght-normal.woff2') format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EEFF}

html{scroll-padding-top:88px;scroll-behavior:smooth}
body{margin:0;background:#FDFDFD}
a{color:#1D721E}a:hover{color:#075107}
*{box-sizing:border-box}
::selection{background:#6FD213;color:#1B1B1B}
.pg{font-family:"Alexandria","Segoe UI",Arial,sans-serif;color:#45483F;font-weight:300;line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:clip;background:#FDFDFD}
.pg h1,.pg h2,.pg h3,.pg p{margin:0}
.pg h1,.pg h2,.pg h3{color:#1B1B1B;letter-spacing:-0.035em;line-height:1.02;text-wrap:balance}
.pg ul,.pg ol{margin:0;padding:0;list-style:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1440px;margin:0 auto;padding-left:clamp(20px,4.4vw,72px);padding-right:clamp(20px,4.4vw,72px)}
.sec{padding-top:clamp(112px,12vw,200px);padding-bottom:clamp(112px,12vw,200px);position:relative}
.dk{background:#1B1B1B;color:#A9ADA5}
.dk h2,.dk h3{color:#FDFDFD}
.paper{background:#F1F2ED}

/* editorial index label */
.idx{display:flex;align-items:center;gap:14px;font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:#1B1B1B}
.idx b{font-weight:700;color:#1D721E;letter-spacing:.08em}
.idx i{display:block;width:44px;height:1px;background:currentColor;opacity:.35}
.dk .idx{color:#FDFDFD}.dk .idx b{color:#6FD213}
.h2{font-size:clamp(2.2rem,1.2rem + 3.3vw,4.8rem);font-weight:250;letter-spacing:-0.045em;line-height:1.02}
.h2 strong{font-weight:700}
.big{font-size:clamp(2rem,1rem + 3.6vw,5rem);font-weight:250;letter-spacing:-0.045em;line-height:1.06}
.green{color:#1D721E}.dk .green{color:#6FD213}
.lede{font-size:clamp(1.08rem,1rem + .3vw,1.28rem);color:#5D605A;line-height:1.7;max-width:46ch}
.dk .lede{color:#A9ADA5}
.cnt{font-size:11px;font-weight:500;color:#8A8D85;letter-spacing:.06em;margin-left:8px}
.label{font-size:11.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#5D605A}
.dk .label{color:#8A8D85}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:16px;min-height:58px;padding:0 30px;font:500 15px/1 "Alexandria",Arial,sans-serif;letter-spacing:.02em;text-decoration:none;border:1px solid transparent;cursor:pointer;overflow:hidden;isolation:isolate;transition:color .6s cubic-bezier(.16,1,.3,1),border-color .6s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.btn:hover::before{transform:scaleY(1)}
.btn svg{width:18px;height:18px;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.btn:hover svg{transform:translateX(6px)}
.b-lime{background:#6FD213;color:#1B1B1B}.b-lime::before{background:#FDFDFD}.b-lime:hover{color:#1B1B1B}
.tl{display:inline-flex;align-items:center;gap:12px;font-size:15px;font-weight:500;color:#FDFDFD;text-decoration:none;padding:6px 0;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:gap .6s cubic-bezier(.16,1,.3,1)}
.tl:hover{gap:20px;color:#FDFDFD}
.tl svg{width:16px;height:16px}

/* intro */
.intro{position:fixed;inset:0;z-index:200;background:#1B1B1B;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;pointer-events:none;animation:introOut 1s cubic-bezier(.76,0,.24,1) 1.75s forwards,hideIt 0s linear 2.8s forwards}
.intro img{width:120px;height:auto;clip-path:inset(0 100% 0 0);animation:wipe 1.1s cubic-bezier(.65,0,.35,1) .15s forwards}
.intro .bar{display:block;width:120px;height:2px;background:#6FD213;transform:scaleX(0);transform-origin:left;animation:grow .9s cubic-bezier(.65,0,.35,1) .7s forwards}
.intro .wm{font-size:11px;font-weight:500;letter-spacing:.5em;color:#FDFDFD;opacity:0;animation:fade .8s ease .9s forwards;padding-left:.5em}
@keyframes introOut{to{transform:translateY(-100%)}}
@keyframes hideIt{to{visibility:hidden}}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}

/* header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(27,27,27,.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.nav a{color:#F1F2ED;text-decoration:none;font-size:13.5px;font-weight:400;letter-spacing:.04em;position:relative;padding:8px 0;white-space:nowrap;transition:color .3s}
.nav>a:not(.btn)::after,.ddt::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:#6FD213;transform:scaleX(0);transform-origin:right;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.nav>a:not(.btn):hover::after,.dd:hover .ddt::after,.dd:focus-within .ddt::after{transform:scaleX(1);transform-origin:left}
.nav a:hover{color:#FDFDFD}
.dd{position:relative;display:flex;align-items:center}
.dd::before{content:"";position:absolute;left:-24px;right:-24px;top:100%;height:34px}
.ddt{display:inline-flex!important;align-items:center;gap:7px}
.ddt svg{width:12px;height:12px;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.dd:hover .ddt svg,.dd:focus-within .ddt svg{transform:rotate(180deg)}
.ddp{position:absolute;top:calc(100% + 28px);left:-30px;width:420px;background:#FDFDFD;box-shadow:0 50px 90px -40px rgba(0,0,0,.6);padding:14px;display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(14px);filter:blur(8px);transition:opacity .45s,transform .7s cubic-bezier(.16,1,.3,1),filter .45s,visibility 0s linear .45s;z-index:60}
.ddp::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:#6FD213;transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.16,1,.3,1) .1s}
.dd:hover .ddp,.dd:focus-within .ddp{opacity:1;visibility:visible;transform:none;filter:blur(0);transition-delay:0s}
.dd:hover .ddp::before,.dd:focus-within .ddp::before{transform:scaleX(1)}
.ddp a{display:grid!important;grid-template-columns:28px 1fr;gap:4px 10px;padding:16px 18px!important;white-space:normal!important;transition:background .35s}
.ddp a:hover,.ddp a:focus-visible{background:#F1F2ED;outline:none}
.ddp a i{font-style:normal;font-size:11.5px;font-weight:600;color:#1D721E;letter-spacing:.08em;padding-top:4px}
.ddp a b{font-size:15.5px;font-weight:600;color:#1B1B1B;letter-spacing:-.01em}
.ddp a small{grid-column:2;font-size:13px;line-height:1.5;color:#5D605A;font-weight:300}
.burger{all:unset;display:none;cursor:pointer;width:48px;height:48px;align-items:center;justify-content:center;color:#FDFDFD}
.mnav a{display:block;padding:16px 0;color:#FDFDFD;text-decoration:none;font-size:26px;font-weight:300;letter-spacing:-.02em;border-bottom:1px solid #2E302C;animation:up .7s cubic-bezier(.16,1,.3,1) both}
.msub a{font-size:17px!important;color:#A9ADA5!important;padding:11px 0 11px 18px!important;border-bottom:0!important;border-left:1px solid #3A3C38}
.mgrp{font-size:11px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:#6FD213;padding:26px 0 8px}

/* hero */
.slide{position:absolute;inset:0;opacity:0;will-change:opacity,filter,transform;animation-name:slide;animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:both}
.slide img{display:block;width:100%;height:100%;object-fit:cover}
@keyframes slide{
0%{opacity:0;filter:blur(20px);transform:scale(1.12)}
7%{opacity:1;filter:blur(0)}
25%{opacity:1;filter:blur(0);transform:scale(1.03)}
34%{opacity:0;filter:blur(20px);transform:scale(1)}
100%{opacity:0;filter:blur(20px);transform:scale(1)}}
.seg{position:relative;flex:1;height:2px;background:rgba(253,253,253,.25);overflow:hidden}
.seg i{position:absolute;inset:0;background:#6FD213;transform-origin:left;transform:scaleX(0);animation-name:seg;animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:both}
@keyframes seg{0%{transform:scaleX(0);opacity:1}25%{transform:scaleX(1);opacity:1}26%,100%{transform:scaleX(1);opacity:0}}
.w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}
.w>span{display:inline-block;animation:wordUp 1.5s cubic-bezier(.16,1,.3,1) both}
.ha{animation:up 1.4s cubic-bezier(.16,1,.3,1) both}
.ray{transform-origin:0 100%;animation:ray 2.2s cubic-bezier(.16,1,.3,1) 2s both,sway 14s ease-in-out 4.2s infinite alternate}
@keyframes sway{from{transform:rotate(0)}to{transform:rotate(-2.4deg)}}


/* glance */
.glance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.gcol{padding:30px 32px 8px 0;border-top:1px solid #1B1B1B}
.gcol+.gcol{padding-left:32px;border-left:1px solid #D2D4D1}
.gcol li{font-size:17.5px;font-weight:400;color:#1B1B1B;padding:10px 0;border-bottom:1px solid #E6E7E2}

/* approach steps */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;position:relative}
.step{padding:34px 34px 0 0;position:relative}
.step+.step{padding-left:34px}
.step::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:#D2D4D1}
.step::after{content:"";position:absolute;top:0;left:0;width:56px;height:2px;background:#1D721E}
.step+.step::after{left:34px}
.step .num{font-size:13px;font-weight:600;letter-spacing:.12em;color:#1D721E}

/* services (dark) */
.svcs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid #3A3C38}
.svc{padding:44px 40px 52px 0;position:relative;display:flex;flex-direction:column;gap:20px;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.svc+.svc{padding-left:40px;border-left:1px solid #3A3C38}
.svc::before{content:"";position:absolute;top:-1px;left:0;width:100%;height:2px;background:#6FD213;transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.svc+.svc::before{left:40px;width:calc(100% - 40px)}
.svc:hover::before{transform:scaleX(1)}
.svc:hover{transform:translateY(-6px)}

/* sectors */
.sector{display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:24px;padding:24px 0;border-top:1px solid #D2D4D1;position:relative;overflow:hidden;isolation:isolate}
.sector::before{content:"";position:absolute;inset:0;background:#1B1B1B;z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.sector:hover::before{transform:scaleY(1)}
.sector h3{font-size:clamp(2.2rem,1.1rem + 3.6vw,5.2rem);font-weight:250;letter-spacing:-.045em;transition:font-weight .7s cubic-bezier(.16,1,.3,1),color .5s,transform .7s cubic-bezier(.16,1,.3,1)}
.sector .n{font-size:12px;font-weight:600;letter-spacing:.12em;color:#1D721E;padding-left:4px;transition:color .5s,transform .7s cubic-bezier(.16,1,.3,1)}
.sector .c{font-size:15px;color:#5D605A;padding-right:8px;transition:color .5s,transform .7s cubic-bezier(.16,1,.3,1)}
.sector:hover h3{font-weight:700;color:#FDFDFD;transform:translateX(18px)}
.sector:hover .n{color:#6FD213;transform:translateX(18px)}
.sector:hover .c{color:#FDFDFD;transform:translateX(-12px)}

/* delivery */
.dsteps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:36px;position:relative}
.dot{width:13px;height:13px;border-radius:50%;background:#F1F2ED;border:2px solid #1D721E;position:relative;z-index:1}

/* gallery rail */
.rail{display:flex;gap:clamp(14px,1.6vw,24px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-left:max(clamp(20px,4.4vw,72px),calc((100% - 1440px) / 2 + 72px));padding-right:clamp(20px,4.4vw,72px);scroll-padding-left:max(clamp(20px,4.4vw,72px),calc((100% - 1440px) / 2 + 72px));scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail:focus-visible{outline:2px solid #1D721E;outline-offset:4px}
.ritem{all:unset;flex:none;scroll-snap-align:start;display:flex;flex-direction:column;gap:16px;cursor:zoom-in}
.rimg{height:clamp(300px,34vw,520px);overflow:hidden;background:#E6E7E2;display:block}
.r-wide .rimg,.r-std .rimg{aspect-ratio:4/3}.r-tall .rimg{aspect-ratio:3/4}
.rimg img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.04);transition:transform 1.6s cubic-bezier(.16,1,.3,1),filter 1s}
.ritem:hover .rimg img{transform:scale(1.05);filter:saturate(1) contrast(1.04)}
.ritem:focus-visible{outline:2px solid #1D721E;outline-offset:6px}
.rbtn{all:unset;cursor:pointer;width:58px;height:58px;border:1px solid #C4C6C2;display:flex;align-items:center;justify-content:center;color:#1B1B1B;transition:background .4s,border-color .4s,color .4s}
.rbtn:hover{background:#1B1B1B;border-color:#1B1B1B;color:#FDFDFD}
.rbtn:focus-visible{outline:2px solid #1D721E;outline-offset:3px}

/* people */
.stds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid #1B1B1B}
.std{padding:36px 36px 0 0;display:flex;flex-direction:column;gap:16px}
.std+.std{padding-left:36px;border-left:1px solid #D2D4D1}
.team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,6vw,110px)}
.prow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:20px;padding:24px 0;border-top:1px solid #D2D4D1;position:relative}
.prow::after{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:#1D721E;transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.prow:hover::after{transform:scaleX(1)}
.prow b{font-size:clamp(1.25rem,1.1rem + .5vw,1.6rem);font-weight:400;color:#1B1B1B;letter-spacing:-.025em;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.prow:hover b{transform:translateX(10px)}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr);gap:clamp(40px,6vw,110px)}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.fld label{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#8A8D85}

.fld input::placeholder,.fld textarea::placeholder{color:#6E716A}
.fld input,.fld select,.fld textarea{font:300 18px/1.4 "Alexandria",Arial,sans-serif;color:#FDFDFD;background:transparent;border:0;border-bottom:1px solid #3A3C38;border-radius:0;padding:10px 0 12px;width:100%;min-height:50px;transition:border-color .5s}
.fld select option{color:#1B1B1B}
.fld textarea{min-height:110px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-bottom-color:#6FD213}
.full{grid-column:1/-1}
.copy{all:unset;cursor:pointer;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#8A8D85;margin-left:14px;border-bottom:1px solid #3A3C38;padding-bottom:1px;transition:color .3s,border-color .3s}
.copy:hover{color:#6FD213;border-color:#6FD213}
.lbtn{all:unset;cursor:pointer;width:54px;height:54px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(253,253,253,.28);color:#FDFDFD;transition:background .4s,border-color .4s,color .4s}
.lbtn:hover{background:#FDFDFD;color:#1B1B1B;border-color:#FDFDFD}
.lbtn:focus-visible,.copy:focus-visible,.burger:focus-visible{outline:2px solid #6FD213;outline-offset:3px}
.ftr{background:#111211;color:#8A8D85;font-size:15px;overflow:hidden;position:relative}
.fcols{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.8fr) minmax(0,.85fr) minmax(0,1.45fr);gap:clamp(32px,4vw,64px);padding-bottom:clamp(56px,6vw,88px);border-bottom:1px solid #222321}
.flabel{display:block;font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:#6FD213;margin-bottom:10px}
.fnav{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.fnav a,.fnav span{white-space:nowrap}
.flink{color:#A9ADA5;text-decoration:none;background:linear-gradient(#6FD213,#6FD213) 0 100%/0 1px no-repeat;padding-bottom:2px;transition:color .35s,background-size .6s cubic-bezier(.16,1,.3,1)}
.flink:hover{color:#FDFDFD;background-size:100% 1px}
.fbig{font-size:clamp(1.15rem,1rem + .4vw,1.4rem);font-weight:300;letter-spacing:-.02em;color:#FDFDFD}
.fcontact{display:flex;flex-direction:column;gap:0}
.fitem{display:grid;grid-template-columns:80px minmax(0,1fr);gap:16px;padding:12px 0;border-top:1px solid #222321;align-items:baseline}
.fitem:first-of-type{border-top:0;padding-top:0}
.fk{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#5D605A}
.fv{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:0}
.fmail{white-space:nowrap}
.fv .copy{margin:6px 0 0}
.fbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:24px;padding-bottom:28px;font-size:13px}
.ftop{display:inline-flex;align-items:center;gap:10px;color:#A9ADA5;text-decoration:none;font-size:13px;letter-spacing:.04em;transition:color .3s,gap .5s cubic-bezier(.16,1,.3,1)}
.ftop:hover{color:#6FD213;gap:14px}
.ftop:focus-visible,.flink:focus-visible{outline:2px solid #6FD213;outline-offset:3px}

.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid #D2D4D1}
.fact{padding:44px 40px 44px 0;display:flex;flex-direction:column;gap:10px}
.fact+.fact{padding-left:40px;border-left:1px solid #D2D4D1}
.namecard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(56px,8vw,140px);align-items:center}
.dir{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(48px,7vw,120px);align-items:center}
.svccta{margin-top:clamp(56px,6vw,84px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:center;padding:clamp(32px,4vw,52px);background:#1D721E;position:relative;overflow:hidden}
.ctaband{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding-top:40px;border-top:1px solid #D2D4D1}
.commit{margin-top:6px;padding-top:16px;border-top:1px dashed #C4C6C2;font-size:15px;color:#1B1B1B;line-height:1.55}
.commit b{display:block;font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#1D721E;margin-bottom:6px}
.vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid #D2D4D1}
.val{padding:32px 30px 4px 0;display:flex;flex-direction:column;gap:14px}
.val+.val{padding-left:30px;border-left:1px solid #D2D4D1}
.feat{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.55fr);gap:clamp(16px,2vw,28px);margin-bottom:clamp(56px,6vw,96px)}
.fimg{position:relative;overflow:hidden;background:#E6E7E2;display:block}
.fimg img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.04);transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
.fimg:hover img{transform:scale(1.04)}
.stat{position:absolute;right:-1px;bottom:-1px;background:#FDFDFD;padding:22px 26px;display:flex;flex-direction:column;gap:4px;max-width:250px}
.mcta{display:none}
.prog{position:absolute;left:0;right:0;top:86px;height:2px;background:rgba(253,253,253,.1);pointer-events:none;overflow:hidden}
.prog i{position:absolute;inset:0;background:linear-gradient(90deg,#1D721E,#6FD213);transform-origin:left;transform:scaleX(0);will-change:transform}
/* keyframes */
@keyframes up{from{opacity:0;transform:translateY(46px)}to{opacity:1;transform:none}}
@keyframes wordUp{from{transform:translateY(112%)}to{transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes ray{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes clipL{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes tfill{to{background-position:0 0}}
@keyframes hdr{from{background:rgba(27,27,27,0);-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{background:rgba(27,27,27,.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}}
@keyframes lbIn{from{opacity:0;filter:blur(16px);transform:scale(1.03)}to{opacity:1;filter:blur(0);transform:none}}

/* scroll-driven (progressive enhancement) */
@supports (animation-timeline: view()){
.rv{animation:up linear both;animation-timeline:view();animation-range:entry 0% entry 80%}
.rg{animation:grow linear both;animation-timeline:view();animation-range:entry 10% cover 40%;transform-origin:left}
.rl{animation:clipL linear both;animation-timeline:view();animation-range:entry 10% cover 50%}
.fillt{color:transparent;-webkit-text-fill-color:transparent;background:linear-gradient(90deg,var(--on,#1B1B1B) 50%,var(--off,#CFD1CC) 50%) 100% 0/200% 100% no-repeat;-webkit-background-clip:text;background-clip:text;animation:tfill linear both;animation-timeline:view();animation-range:cover 12% cover 52%}
.dk .fillt{--on:#FDFDFD;--off:#3E403B}
.unv{animation:unv linear both;animation-timeline:view();animation-range:entry 0% cover 38%}
.unv img,.mvbg img{animation:zoomo linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
@keyframes unv{from{clip-path:inset(22% 6% 0 6%)}to{clip-path:inset(0 0 0 0)}}
@keyframes zoomo{from{transform:scale(1.16)}to{transform:scale(1)}}
@media (max-width:640px){
#values{timeline-scope:--vals}#why{timeline-scope:--why}
.vals{scroll-timeline:--vals x}.wgrid{scroll-timeline:--why x}
.swbar{display:block;height:2px;background:#D2D4D1;margin-top:24px;position:relative;overflow:hidden}
.swbar i{position:absolute;inset:0;background:#1D721E;transform-origin:left;animation:swp linear both;animation-timeline:--vals}
#why .swbar{background:#3A3C38}
#why .swbar i{background:#6FD213;animation-timeline:--why}
}
@keyframes swp{from{transform:scaleX(.14)}to{transform:scaleX(1)}}
}
@supports (animation-timeline: scroll()){
.prog i{animation:grow linear both;animation-timeline:scroll(root)}
.hdr{animation:hdr linear both;animation-timeline:scroll(root);animation-range:0 220px}
}

/* v20 — deck structure */
.idx b{white-space:nowrap}
.onet{margin-top:8px;padding:26px 0 0;border-top:2px solid #1D721E;display:flex;flex-direction:column;gap:10px}
.onet b{font-size:clamp(1.25rem,1.1rem + .5vw,1.6rem);font-weight:600;letter-spacing:-.03em;color:#1B1B1B}
.onet p{color:#45483F}
.wgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#D2D4D1;border-top:1px solid #1B1B1B;border-bottom:1px solid #D2D4D1}
.wtile{background:#F1F2ED;padding:36px clamp(24px,2.6vw,40px) 44px 0;display:flex;flex-direction:column;gap:14px;position:relative}
.wtile:not(:nth-child(3n+1)){padding-left:clamp(24px,2.6vw,40px)}
.wtile::before{content:"";position:absolute;left:0;top:-1px;width:56px;height:2px;background:#1D721E;transition:width .9s cubic-bezier(.16,1,.3,1)}
.wtile:not(:nth-child(3n+1))::before{left:clamp(24px,2.6vw,40px)}
.wtile:hover::before{width:calc(100% - clamp(24px,2.6vw,40px))}
.wtile .n{font-size:13px;font-weight:600;letter-spacing:.12em;color:#1D721E}
.wtile h3{font-size:clamp(1.35rem,1.1rem + .8vw,2rem);font-weight:300;letter-spacing:-.035em;color:#1B1B1B;margin-top:clamp(18px,2.4vw,40px)}
.wtile p{color:#5D605A;font-size:15.5px;max-width:34ch}
.msgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.4vw,56px)}
.msg{padding-top:28px;border-top:1px solid #1B1B1B;display:flex;flex-direction:column;gap:14px;position:relative}
.msg::before{content:"";position:absolute;left:0;top:-2px;width:38%;height:3px;background:#6FD213}
.msg h4{font-size:clamp(1.2rem,1.05rem + .5vw,1.55rem);font-weight:600;letter-spacing:-.03em;line-height:1.2;color:#1B1B1B}
.msg p{color:#5D605A;font-size:15.5px}
.mv{background:#111211;overflow:hidden;min-height:min(92svh,860px);display:flex;align-items:center}
.mv>.wrap{width:100%}
.mvbg{position:absolute;inset:0}
.mvbg img{display:block;width:100%;height:100%;object-fit:cover;opacity:.32;filter:saturate(.7)}
.mvbg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,18,17,.92) 0%,rgba(17,18,17,.55) 70%,rgba(17,18,17,.35) 100%)}
.mvgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(48px,7vw,120px)}
.mvb{display:flex;flex-direction:column;gap:26px;padding-top:30px;border-top:1px solid rgba(253,253,253,.22)}
.mvb p{font-size:clamp(1.35rem,1rem + 1.25vw,2.25rem);font-weight:250;letter-spacing:-.035em;line-height:1.28;color:#FDFDFD}
.vals{gap:1px;background:#D2D4D1;border:1px solid #D2D4D1;border-top-color:#1B1B1B}
.val,.val+.val{background:#FDFDFD;padding:30px 28px 32px;border-left:0}
.val h3{font-size:clamp(1.2rem,1.05rem + .5vw,1.5rem);font-weight:500;letter-spacing:-.025em;color:#1B1B1B}
.val>p:not(.commit){color:#5D605A;font-size:15.5px}
.val .commit{margin-top:auto}
.val.safe{background:#1D721E}
.val.safe h3{color:#FDFDFD}.val.safe>p:not(.commit){color:#D4EAD4}
.val.safe .commit{color:#FDFDFD;border-top-color:rgba(253,253,253,.35)}.val.safe .commit b{color:#D4EAD4}
.val.fair{background:#1B1B1B;position:relative;overflow:hidden;justify-content:flex-end}
.val.fair h3{color:#FDFDFD}.val.fair>p:not(.commit){color:#A9ADA5}
.val.fair img{position:absolute;right:-30px;top:-20px;width:170px;opacity:.07}
.lead{display:flex;flex-direction:column;gap:clamp(56px,6vw,96px)}
.lead .pcard{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);grid-template-rows:auto 1fr;column-gap:clamp(36px,5vw,88px);row-gap:22px;align-items:start}
.lead .ph{grid-row:1/3}
.lead .pmeta{padding-top:4px}
.lead .pbio{max-width:68ch}
@media (max-width:800px){.lead .pcard{grid-template-columns:minmax(0,1fr)}.lead .ph{grid-row:auto}}
.est{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.4vw,40px)}
.pcard{display:flex;flex-direction:column;gap:20px;min-width:0}
.ph{position:relative;aspect-ratio:4/3;background:#FDFDFD;border:1px solid #D2D4D1;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ph b{font-size:clamp(2.6rem,1.6rem + 3vw,5.4rem);font-weight:200;letter-spacing:-.06em;color:#C4C6C2}
.est .ph b{font-size:clamp(2rem,1.4rem + 1.6vw,3.2rem)}
.ph img{position:absolute;right:18px;bottom:16px;width:44px;opacity:.5}
.ph::after{content:"";position:absolute;left:0;bottom:0;width:38%;height:4px;background:#6FD213;transform:scaleX(.25);transform-origin:left;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.pcard:hover .ph::after{transform:scaleX(1)}
.pmeta{display:flex;flex-direction:column;gap:6px}
.pname{font-size:clamp(1.35rem,1.15rem + .7vw,2rem);font-weight:500;letter-spacing:-.03em;color:#1B1B1B}
.est .pname{font-size:clamp(1.1rem,1rem + .35vw,1.35rem)}
.prole{font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#1D721E}
.pbio{display:flex;flex-direction:column;gap:14px;padding-top:20px;border-top:1px solid #D2D4D1}
.pbio p{font-size:15.5px;line-height:1.72;color:#45483F}
.sqband{margin-top:clamp(64px,7vw,104px);display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);gap:32px;align-items:baseline;padding:clamp(32px,4vw,52px);background:#1B1B1B}
.sqband p{font-size:clamp(1.4rem,1.05rem + 1.2vw,2.4rem);font-weight:250;letter-spacing:-.04em;line-height:1.18;color:#FDFDFD}
.fcols2{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2.2fr);gap:clamp(40px,6vw,110px);padding-bottom:clamp(56px,6vw,88px);border-bottom:1px solid #222321}
.fgrid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px clamp(32px,4vw,64px)}
.fblk{display:flex;flex-direction:column;gap:8px;align-items:flex-start;min-width:0;padding-top:20px;border-top:1px solid #222321}
.fblk .flabel{margin-bottom:4px}
.fblk .fbig{color:#FDFDFD}
@media (max-width:1100px){.est{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1000px){
.wgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.wtile,.wtile:not(:nth-child(3n+1)){padding-left:0}
.wtile:nth-child(2n){padding-left:clamp(20px,3vw,32px)}
.wtile::before,.wtile:not(:nth-child(3n+1))::before{left:0}
.wtile:nth-child(2n)::before{left:clamp(20px,3vw,32px)}
.mvgrid,.fcols2,.sqband{grid-template-columns:minmax(0,1fr)}
.vals{grid-template-columns:repeat(2,minmax(0,1fr))}
.mv{min-height:0}
}
@media (max-width:640px){
.msgs{grid-template-columns:minmax(0,1fr)!important}
.wtile,.wtile:nth-child(2n){padding-left:0;padding-right:0}
.wtile::before,.wtile:nth-child(2n)::before{left:0}
.wtile h3{margin-top:8px}
.fgrid2{grid-template-columns:minmax(0,1fr);gap:28px}
.fmail{white-space:normal;word-break:break-all}
.idx{flex-wrap:wrap;row-gap:6px}
}

/* v22 — art direction */
.pg{color:#3F423B}
.pg h4{margin:0}
.wtile p,.val>p:not(.commit),.pbio p{font-size:16px}
.nav a.on{color:#FDFDFD}
.nav>a.on:not(.btn)::after,.ddt.on::after{transform:scaleX(1)}
.unv{margin:0;overflow:hidden;background:#E6E7E2}
.unv img{display:block;width:100%;height:100%;object-fit:cover}
.amedia{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.75fr);gap:clamp(14px,2.4vw,40px);align-items:end;margin-top:clamp(72px,9vw,140px)}
.am1{aspect-ratio:16/10}
.am2{aspect-ratio:3/4;transform:translateY(clamp(20px,4vw,64px))}
.dk .wgrid{background:#3A3C38;border-top-color:#3A3C38;border-bottom-color:#3A3C38}
.dk .wtile{background:#1B1B1B;padding-top:44px;padding-bottom:56px}
.dk .wtile::before{background:#6FD213}
.dk .wtile .n{font-size:clamp(3.2rem,2rem + 3.6vw,6.2rem);font-weight:200;letter-spacing:-.05em;line-height:1;color:#6FD213;opacity:.9;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.dk .wtile:hover .n{transform:translateX(10px)}
.dk .wtile h3{color:#FDFDFD;margin-top:clamp(20px,2.4vw,36px)}
.dk .wtile p{color:#A9ADA5}
.msgs{display:block;border-bottom:1px solid #1B1B1B}
.msg{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(24px,5vw,96px);align-items:center;padding:clamp(36px,4.6vw,72px) 0;border-top:1px solid #1B1B1B}
.msg::before{top:-2px;width:clamp(56px,10vw,160px)}
.msg h4{font-size:clamp(1.7rem,.9rem + 3vw,4rem);font-weight:250;letter-spacing:-.045em;line-height:1.04;text-wrap:balance}
.msg p{font-size:17px;max-width:46ch;color:#4F524B}
.mv{min-height:100svh}
.mvbg img{opacity:.62;filter:saturate(.85)}
.mvbg::after{background:linear-gradient(180deg,rgba(17,18,17,.84) 0%,rgba(17,18,17,.52) 45%,rgba(17,18,17,.88) 100%)}
.mvgrid{display:flex;flex-direction:column;gap:clamp(64px,9vw,150px)}
.mvb{max-width:min(100%,1000px);border-top:0;padding-top:0;gap:22px}
.mvb2{align-self:flex-end}
.mvb p{font-size:clamp(1.5rem,.9rem + 2.1vw,3.1rem);line-height:1.18;letter-spacing:-.04em}
.sec.mv .fillt{--on:#FDFDFD;--off:rgba(253,253,253,.32)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:clamp(72px,8vw,120px);border-top:1px solid #1B1B1B}
.st{padding:28px 28px 8px 0;display:flex;flex-direction:column;gap:8px}
.st+.st{padding-left:28px;border-left:1px solid #D2D4D1}
.st small{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#5D605A}
.st b{font-size:clamp(2.8rem,1.6rem + 3.4vw,5.6rem);font-weight:200;letter-spacing:-.055em;line-height:1;color:#1D721E}
.st b i{display:block;font-style:normal;font-size:clamp(14px,.2em,18px);font-weight:500;letter-spacing:.02em;color:#1B1B1B;margin-top:8px}
.st p{font-size:15px;line-height:1.5;color:#1B1B1B;margin-top:8px;max-width:26ch}
.st em{font-style:normal;font-size:12.5px;color:#5D605A;margin-top:auto;padding-top:10px}
.lead .pcard{grid-template-columns:minmax(0,.46fr) minmax(0,1.54fr)}
.ph{background:#F7F8F4;border-color:#DCDED9}
.ph b{color:#D2D4D1;font-size:clamp(2rem,1.4rem + 1.8vw,3.6rem)}
.est .ph b{font-size:clamp(1.6rem,1.2rem + 1vw,2.4rem)}
.ph img{width:30px;opacity:.35;right:14px;bottom:14px}
.est{grid-template-columns:repeat(6,minmax(0,1fr))}
.rmore{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#1D721E;padding:6px 0;border-bottom:1px solid currentColor}
.rmore svg{width:14px;height:14px;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.rmore:focus-visible{outline:2px solid #1D721E;outline-offset:4px}
.bmore{animation:fade .7s ease both}
.gal .rimg{height:clamp(340px,44vw,660px);background:#2A2B28}
.gal .rimg img{filter:none}
.rail{cursor:grab}
.rail.drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto;user-select:none}
.rail.drag .ritem{pointer-events:none}
.gal .rbtn{border-color:#3A3C38;color:#FDFDFD}
.gal .rbtn:hover{background:#6FD213;border-color:#6FD213;color:#1B1B1B}
.gal .rail:focus-visible,.gal .ritem:focus-visible,.gal .rbtn:focus-visible{outline-color:#6FD213}
.gbar{flex:1;height:1px;background:#3A3C38;margin:0 clamp(12px,2vw,28px);position:relative}
.gbar i{position:absolute;left:0;right:0;top:-1px;height:3px;background:#6FD213;transform-origin:left;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.gcnt{font-size:13px;letter-spacing:.14em;color:#8A8D85;white-space:nowrap;font-variant-numeric:tabular-nums}
.gcnt b{font-weight:600;color:#FDFDFD}
.sqimg{aspect-ratio:1/1}.sqimg img{object-position:100% 50%}
@media (max-width:1100px){.est{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1000px){
.stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.st:nth-child(3){padding-left:0;border-left:0}
.st:nth-child(n+3){border-top:1px solid #D2D4D1;margin-top:20px}
}
@media (max-width:800px){
.msg{grid-template-columns:minmax(0,1fr);gap:16px}
.lead .pcard{grid-template-columns:minmax(0,1fr)}
.lead .ph{max-width:240px}
}
@media (max-width:640px){
.est{grid-template-columns:repeat(2,minmax(0,1fr))}
.gal .rimg{height:280px}
.vals,.wgrid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;background:none;border:0;margin:0 calc(-1 * clamp(20px,4.4vw,72px));padding:0 clamp(20px,4.4vw,72px);scroll-padding-left:clamp(20px,4.4vw,72px);scrollbar-width:none}
.vals::-webkit-scrollbar,.wgrid::-webkit-scrollbar{display:none}
.dk .wgrid{background:none;border:0}
.vals .val,.vals .val+.val{flex:0 0 84%;scroll-snap-align:start;border:1px solid #D2D4D1}
.vals .val.safe{border-color:#1D721E}.vals .val.fair{border-color:#1B1B1B}
.wgrid .wtile,.wgrid .wtile:nth-child(2n){flex:0 0 78%;scroll-snap-align:start;padding:28px 24px 36px;border:1px solid #3A3C38}
.wgrid .wtile::before,.wgrid .wtile:nth-child(2n)::before{left:24px;top:-1px}
.vals .rv,.wgrid .rv{animation:none}
.st{padding-right:14px}
.st+.st{padding-left:14px}
.st:nth-child(3){padding-left:0}
}

/* v23 — second half, team, photography, form */
.unv img,.svbg{filter:saturate(.86) contrast(1.05)}
.gal .rimg img{filter:saturate(.88) contrast(1.05)}
.gal .ritem:hover .rimg img{filter:saturate(1) contrast(1.05)}
.mvbg img{opacity:.72;filter:saturate(.95) contrast(1.05)}
.mvbg::after{background:linear-gradient(180deg,rgba(17,18,17,.86) 0%,rgba(10,30,10,.46) 46%,rgba(17,18,17,.9) 100%)}
.ovl{display:flex;flex-direction:column;gap:clamp(40px,5vw,72px);min-width:0}
.ovl .onet{max-width:46ch;margin-top:0}
/* services panels */
.svcs{gap:clamp(12px,1.4vw,22px);border-top:0}
.svc.pv,.svc.pv+.svc.pv{padding:34px clamp(22px,2.4vw,36px) 38px;border-left:0;min-height:clamp(380px,36vw,540px);justify-content:flex-end;overflow:hidden;background:#131413;isolation:isolate}
.svc.pv::before,.svc.pv+.svc.pv::before{top:0;left:0;width:100%;z-index:2}
.svc.pv>span:first-of-type{position:absolute;top:32px;left:clamp(22px,2.4vw,36px)}
.svbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.55;transition:opacity .9s,transform 1.6s cubic-bezier(.16,1,.3,1)}
.svc.pv::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(19,20,19,.1) 0%,rgba(19,20,19,.55) 45%,rgba(19,20,19,.94) 82%)}
.svc.pv:hover .svbg{opacity:.8;transform:scale(1.05)}
.svc.pv p{color:#D2D4D1}
/* sectors split */
.secsplit{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,6vw,110px);align-items:start}
.secph{position:sticky;top:124px;aspect-ratio:4/5}
.secsplit .sector{grid-template-columns:56px minmax(0,1fr) auto}
.secsplit .sector h3{font-size:clamp(2.1rem,1rem + 2.7vw,4.1rem)}
/* delivery timeline */
.dsplit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(48px,7vw,120px);align-items:start}
.dleft{position:sticky;top:124px;display:flex;flex-direction:column;gap:clamp(36px,4vw,60px);min-width:0}
.dfig{aspect-ratio:16/10}
.dright{margin-top:clamp(40px,5vw,72px);min-width:0}
.dright .dsteps{grid-template-columns:minmax(0,1fr)!important;gap:0!important;row-gap:0!important}
.dright .dsteps li{position:relative;padding:0 0 clamp(36px,4vw,60px) clamp(36px,4.4vw,72px);border-left:1px solid #C4C6C2;gap:10px!important}
.dright .dsteps li:last-child{padding-bottom:0;border-left-color:transparent}
.dright .dsteps .dot{position:absolute;left:-7px;top:0}
.dright .dsteps li>span:nth-child(2){margin-top:-10px!important;font-size:clamp(2.2rem,1.4rem + 2vw,3.6rem)!important;font-weight:200!important;letter-spacing:-.04em!important;line-height:1}
.dright .dsteps h3{font-size:clamp(1.3rem,1.1rem + .7vw,1.8rem)!important;font-weight:500!important}
.dright .dsteps p{font-size:16.5px!important;max-width:46ch}
/* team */
.stats{background:#1B1B1B;border-top:0;padding:clamp(24px,3.2vw,48px)}
.st{padding-top:6px}
.st+.st{border-left-color:#3A3C38}
.st small{color:#8A8D85}
.st b{color:#6FD213;font-size:clamp(3rem,1.6rem + 4vw,6rem)}
.st b i{color:#FDFDFD}
.st p{color:#FDFDFD}
.st em{color:#8A8D85}
.tgroups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(20px,2.4vw,40px);margin-top:clamp(88px,10vw,150px)}
.tgroup{grid-row:1;min-width:0}
.tg2{grid-column:2}
.tpair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2.4vw,40px)}
.tpair .pcard{gap:18px}
.tpair .ph b{font-size:clamp(2rem,1.4rem + 1.8vw,3.4rem)}
.tpair .pname{font-size:clamp(1.15rem,1rem + .6vw,1.6rem)}
.pcard.on .ph::after{transform:scaleX(1)}
.pcard.on .ph{border-color:#1D721E}
.biowrap{grid-column:1/-1;grid-row:2;min-width:0}
.biop{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,72px);margin-top:clamp(32px,4vw,56px);padding-top:clamp(28px,3vw,44px);border-top:1px solid #1B1B1B;position:relative}
.biop::before{content:"";position:absolute;left:0;top:-2px;width:clamp(56px,10vw,160px);height:3px;background:#6FD213}
.biop p{font-size:16.5px;line-height:1.75;color:#3F423B}
/* contact form */
.fld{position:relative}
.fld label{transform-origin:left top;transition:transform .5s cubic-bezier(.16,1,.3,1),color .4s}
.fld:has(input:placeholder-shown:not(:focus)) label,.fld:has(textarea:placeholder-shown:not(:focus)) label{transform:translateY(30px) scale(1.36);color:#A9ADA5;pointer-events:none}
.fld input::placeholder,.fld textarea::placeholder{opacity:0;transition:opacity .4s}
.fld input:focus::placeholder,.fld textarea:focus::placeholder{opacity:1}
.fld input,.fld select,.fld textarea{background:linear-gradient(#6FD213,#6FD213) 0 100%/0 2px no-repeat;transition:border-color .5s,background-size .7s cubic-bezier(.16,1,.3,1)}
.fld input:focus,.fld select:focus,.fld textarea:focus{background-size:100% 2px}
.okmark{display:block;width:56px;height:56px;margin-bottom:26px}
.okmark circle{stroke-dasharray:140;stroke-dashoffset:140;animation:draw 1s cubic-bezier(.65,0,.35,1) .1s forwards}
.okmark path{stroke-dasharray:36;stroke-dashoffset:36;animation:draw .6s cubic-bezier(.65,0,.35,1) .8s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.swbar{display:none}
@media (max-width:1000px){
.ovl{display:contents}
.ovl>h2{order:1}.ovr{order:2}.ovl .onet{order:3;max-width:none}
.svc.pv,.svc.pv+.svc.pv{min-height:300px;border-top:0}
.svcs{gap:12px}
.secsplit,.dsplit{grid-template-columns:minmax(0,1fr)}
.secph{position:static;aspect-ratio:16/9}
.dleft{position:static}
.dright{margin-top:0}
.st:nth-child(n+3){border-top-color:#3A3C38}
.tgroups{grid-template-columns:minmax(0,1fr);row-gap:0}
.tgroup,.tg2,.biowrap{grid-column:auto;grid-row:auto}
.tg2{margin-top:clamp(56px,8vw,88px)}
}
@media (max-width:640px){
.biop{grid-template-columns:minmax(0,1fr)}
.secsplit .sector{grid-template-columns:40px minmax(0,1fr)}
.gal .rimg{height:270px}
.fld:has(input:placeholder-shown:not(:focus)) label,.fld:has(textarea:placeholder-shown:not(:focus)) label{transform:translateY(30px) scale(1.25)}
}
@media (prefers-reduced-motion:reduce){.okmark circle,.okmark path{stroke-dashoffset:0}}


/* v24 — build sequence (Project Delivery) */
.bsec{padding-bottom:clamp(96px,10vw,150px)}
.bsec .fgrid{border-top-color:#3A3C38!important}
.bsec .fgrid .label{color:#6FD213!important}
.bsec .fgrid p{color:#FDFDFD!important}
.bsec .fgrid strong{color:#FDFDFD}
.bs{--p:0;position:relative;height:320vh;margin-top:clamp(8px,2vw,32px)}
.bstick{position:sticky;top:0;height:100vh;height:100svh;box-sizing:border-box;padding-top:88px;display:flex;align-items:center;overflow:hidden}
.bgrid{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.62fr);gap:clamp(36px,5vw,96px);align-items:center;width:100%}
.pg .bsteps{list-style:none;margin:0;padding:0 0 0 30px;position:relative;display:flex;flex-direction:column;gap:clamp(12px,1.9vh,24px)}
.bsteps::before,.bsteps::after{content:"";position:absolute;left:4px;top:12px;bottom:12px;width:1px;background:#3A3C38}
.bsteps::after{background:#6FD213;transform-origin:top;transform:scaleY(var(--p))}
.bstep{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:baseline}
.bstep::before{content:"";position:absolute;left:-30px;top:.55em;width:9px;height:9px;border-radius:50%;border:1px solid #5D605A;background:#1B1B1B;transition:background .5s,border-color .5s}
.bn{font-size:12.5px;font-weight:600;letter-spacing:.12em;color:#5D605A;transition:color .5s}
.bstep h3{font-size:clamp(1.15rem,.95rem + .7vw,1.7rem);font-weight:300;letter-spacing:-.03em;line-height:1.2;color:#7C7F78;transition:color .5s}
.bp{grid-column:2;display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .7s cubic-bezier(.16,1,.3,1),opacity .6s}
.bp>p{overflow:hidden;min-height:0;font-size:16px;line-height:1.6;color:#A9ADA5;max-width:40ch;padding-top:10px}
.bs:not([data-s]) .bp{grid-template-rows:1fr;opacity:1}
.bs[data-s="1"] .bstep:nth-child(1) .bp{grid-template-rows:1fr;opacity:1}.bs[data-s="1"] .bstep:nth-child(1) h3{color:#FDFDFD}.bs[data-s="1"] .bstep:nth-child(1) .bn{color:#6FD213}.bs[data-s="1"] .bstep:nth-child(-n+1)::before{background:#6FD213;border-color:#6FD213}.bs[data-s="2"] .bstep:nth-child(2) .bp{grid-template-rows:1fr;opacity:1}.bs[data-s="2"] .bstep:nth-child(2) h3{color:#FDFDFD}.bs[data-s="2"] .bstep:nth-child(2) .bn{color:#6FD213}.bs[data-s="2"] .bstep:nth-child(-n+2)::before{background:#6FD213;border-color:#6FD213}.bs[data-s="3"] .bstep:nth-child(3) .bp{grid-template-rows:1fr;opacity:1}.bs[data-s="3"] .bstep:nth-child(3) h3{color:#FDFDFD}.bs[data-s="3"] .bstep:nth-child(3) .bn{color:#6FD213}.bs[data-s="3"] .bstep:nth-child(-n+3)::before{background:#6FD213;border-color:#6FD213}.bs[data-s="4"] .bstep:nth-child(4) .bp{grid-template-rows:1fr;opacity:1}.bs[data-s="4"] .bstep:nth-child(4) h3{color:#FDFDFD}.bs[data-s="4"] .bstep:nth-child(4) .bn{color:#6FD213}.bs[data-s="4"] .bstep:nth-child(-n+4)::before{background:#6FD213;border-color:#6FD213}.bs[data-s="5"] .bstep:nth-child(5) .bp{grid-template-rows:1fr;opacity:1}.bs[data-s="5"] .bstep:nth-child(5) h3{color:#FDFDFD}.bs[data-s="5"] .bstep:nth-child(5) .bn{color:#6FD213}.bs[data-s="5"] .bstep:nth-child(-n+5)::before{background:#6FD213;border-color:#6FD213}
.bdraw{position:relative;margin:0;aspect-ratio:3/2;max-height:calc(100svh - 160px);overflow:hidden;background:#151615;border:1px solid #2A2B28;
background-image:linear-gradient(rgba(111,210,19,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(111,210,19,.05) 1px,transparent 1px);background-size:32px 32px}
.bdraw img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:clamp(0,(var(--p) - .8)/.13,1);transform:scale(calc(1.04 - .04 * clamp(0,(var(--p) - .8)/.2,1)))}
.bsvg{position:absolute;inset:0;width:100%;height:100%;opacity:calc(1 - clamp(0,(var(--p) - .84)/.12,1))}
.bsvg .dr{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1;stroke-dashoffset:calc(1 - clamp(0,(var(--p) - var(--a))/var(--d),1))}
.bsvg .fo{opacity:clamp(0,(var(--p) - var(--a))/var(--d),1)}
.bsvg .gr{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(clamp(0,(var(--p) - var(--a))/var(--d),1))}
.lg .dr{stroke:#6FD213;stroke-opacity:.42;stroke-width:1.4}
.lg .dsh{stroke-opacity:.22}
.ls .dr{stroke:#E9EBE6;stroke-width:2.2}
.lf .dr{stroke:#6FD213;stroke-width:2.4}
.lv .dr{stroke:#A9ADA5;stroke-width:1.6;stroke-opacity:.8}
.lc .pj{stroke:#6FD213;stroke-opacity:.6;stroke-width:1.4}
.lc .ctx{stroke:#7C7F78;stroke-width:1.5}
.lc .slab{fill:#5D605A}
.lc .colf{fill:#4A4C47}.lc .colb{fill:#353733}
.li .dr{stroke:#6FD213;stroke-width:2.6}
.li .ck{fill:rgba(111,210,19,.16)}
.bcrn{position:absolute;inset:10px;pointer-events:none;opacity:calc(1 - clamp(0,(var(--p) - .84)/.12,1));
background:linear-gradient(#6FD213,#6FD213) 0 0/18px 2px,linear-gradient(#6FD213,#6FD213) 0 0/2px 18px,linear-gradient(#6FD213,#6FD213) 100% 0/18px 2px,linear-gradient(#6FD213,#6FD213) 100% 0/2px 18px,linear-gradient(#6FD213,#6FD213) 0 100%/18px 2px,linear-gradient(#6FD213,#6FD213) 0 100%/2px 18px,linear-gradient(#6FD213,#6FD213) 100% 100%/18px 2px,linear-gradient(#6FD213,#6FD213) 100% 100%/2px 18px;background-repeat:no-repeat}
.bmeter{position:absolute;left:0;right:0;bottom:0;display:flex;gap:4px;height:3px}
.bmeter i{flex:1;background:rgba(253,253,253,.18);position:relative;overflow:hidden}
.bmeter i::after{content:"";position:absolute;inset:0;background:#6FD213;transform-origin:left;transform:scaleX(clamp(0,var(--p) * 5 - var(--i),1))}
@media (max-width:900px){
.bs{height:280vh}
.bstick{padding-top:84px;padding-bottom:84px;align-items:center}
.bgrid{grid-template-columns:minmax(0,1fr);gap:22px}
.bdraw{order:-1;aspect-ratio:16/10;max-height:none}
.bsteps{gap:8px}
.bstep{grid-template-columns:36px minmax(0,1fr)}
.bstep h3{font-size:1.05rem}
.bp>p{font-size:14.5px;padding-top:6px}
}
@media (max-height:620px) and (max-width:900px){.bdraw{aspect-ratio:2/1}.bstick{padding-top:76px;padding-bottom:76px}}
@media (prefers-reduced-motion:reduce){
.bs{height:auto}
.bstick{position:static;height:auto;padding:24px 0 0}
.bp{grid-template-rows:1fr!important;opacity:1!important}
.bstep h3{color:#FDFDFD}
}


/* v25 — PowerPoint alignment */
.promise{margin-top:clamp(96px,11vw,170px);padding-top:clamp(32px,4vw,56px);border-top:1px solid #3A3C38;display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1.58fr);gap:32px;align-items:baseline}
.promise p{font-size:clamp(1.6rem,1rem + 2.2vw,3.3rem);font-weight:250;letter-spacing:-.04em;line-height:1.16;color:#FDFDFD;text-wrap:pretty}
.pg .svlede{color:#A9ADA5!important;max-width:58ch;margin-bottom:clamp(56px,6vw,96px)}
.tpair .pname{font-size:clamp(1.05rem,.9rem + .5vw,1.4rem)}
.svc.pv,.svc.pv+.svc.pv{min-height:clamp(340px,30vw,470px)}
.svcs .svct{margin-top:0;display:flex;flex-direction:column;justify-content:flex-end;gap:24px;min-height:clamp(340px,30vw,470px)}
.svcs .svct h3{font-size:clamp(1.45rem,1.1rem + 1vw,2.1rem)!important}
.tgroups{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.tg2 .tpair{grid-template-columns:repeat(4,minmax(0,1fr))}
.tgroups .biowrap{grid-row:2}
.biohd{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#1D721E}
.biohd b{font-size:clamp(1.3rem,1.1rem + .6vw,1.8rem);font-weight:500;letter-spacing:-.03em;text-transform:none;color:#1B1B1B}
.biop.one p{max-width:82ch}
.biop.one{grid-template-columns:minmax(0,1fr)}
.dk.bsec{background:#111211}
.bsec .bstep::before{background:#111211}
#contact{border-top:1px solid #2A2B28}
@media (max-width:1100px){.tgroups{grid-template-columns:minmax(0,1fr)}.tgroup,.tg2,.tgroups .biowrap{grid-column:auto;grid-row:auto}.tg2{margin-top:clamp(56px,8vw,88px)}}
@media (max-width:1000px){.svcs{grid-template-columns:repeat(2,minmax(0,1fr))!important}.promise{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){.tg2 .tpair{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.svcs{grid-template-columns:minmax(0,1fr)!important}.svc.pv,.svc.pv+.svc.pv,.svcs .svct{min-height:280px}}

/* responsive */
@media (max-width:1280px){.nav{gap:26px!important}}
@media (max-width:1180px){.fcols{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}.fbrand,.fcontact{grid-column:1/-1}}
@media (max-width:420px){.fitem{grid-template-columns:minmax(0,1fr);gap:6px}.fnav a,.fnav span{white-space:normal}}
@media (max-width:1060px){.nav{gap:20px!important}.nav a{font-size:12.5px!important}.nav .btn{padding:0 16px!important}.hlogo{height:32px!important}}
@media (max-width:880px){.nav{display:none!important}.burger{display:inline-flex}}
@media (max-width:1000px){
.glance{grid-template-columns:repeat(2,minmax(0,1fr))}
.gcol:nth-child(3){padding-left:0;border-left:0}
.steps,.dsteps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:46px}
.step:nth-child(3){padding-left:0}
.step:nth-child(3)::after{left:0}
.svcs,.stds{grid-template-columns:minmax(0,1fr)}
.svc+.svc,.std+.std{padding-left:0;border-left:0;border-top:1px solid #3A3C38}
.std+.std{border-top-color:#D2D4D1}
.svc+.svc::before{left:0;width:100%}
.split,.contact,.team,.duo,.fgrid,.namecard,.dir,.svccta{grid-template-columns:minmax(0,1fr)!important}
.fcols{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}
.fbrand,.fcontact{grid-column:1/-1}
.facts{grid-template-columns:minmax(0,1fr)}
.fact,.fact+.fact{padding:30px 0;border-left:0}
.fact+.fact{border-top:1px solid #D2D4D1}
.dline{display:none}
.vals{grid-template-columns:repeat(2,minmax(0,1fr))}
.feat{grid-template-columns:minmax(0,1fr)}
.mcta{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:45;gap:8px;animation:up .9s cubic-bezier(.16,1,.3,1) 3s both}
.mcta .btn{flex:1;justify-content:space-between;box-shadow:0 18px 40px -16px rgba(0,0,0,.55)}
.mcall{all:unset;cursor:pointer;flex:none;width:56px;min-height:54px;display:flex;align-items:center;justify-content:center;background:#1B1B1B;color:#FDFDFD;box-shadow:0 18px 40px -16px rgba(0,0,0,.55)}
.mcall:focus-visible{outline:2px solid #6FD213;outline-offset:3px}
footer{padding-bottom:78px}
.dsteps li{position:relative;padding-left:30px;border-left:1px solid #C4C6C2}
.dsteps .dot{position:absolute;left:-7px;top:0}
.dsteps li > span:nth-child(2){margin-top:0!important}
}
@media (max-width:640px){
.steps,.dsteps,.form{grid-template-columns:minmax(0,1fr)!important}
.stat{position:static;max-width:none;background:#F1F2ED;padding:18px 0 0}
.sec{padding-top:88px;padding-bottom:88px}
.glance{grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:22px}
.gcol li{font-size:15px;padding:8px 0}
.gcol .label{font-size:10.5px;letter-spacing:.14em}
.gcol .cnt{display:none}
.gcol:nth-child(n+3){margin-top:22px}
.inl{flex-direction:column;align-items:flex-start!important;gap:10px!important}
.btn{min-height:54px;padding:0 24px}
.dsteps{row-gap:34px!important}
.gcol,.gcol+.gcol{padding-left:0;border-left:0}
.step,.step+.step{padding-left:0;padding-right:0}
.step+.step::after{left:0}
.sector{grid-template-columns:40px minmax(0,1fr)}
.sector .c{grid-column:2}
.prow{grid-template-columns:minmax(0,1fr)}
.fcols{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:44px}
.fbrand,.fcontact{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;transition:none!important}
.intro{display:none!important}
.slide:first-child{opacity:1!important;filter:none!important}
@supports (animation-timeline: scroll()){.hdr .prog i{animation:grow linear both!important;animation-timeline:scroll(root)!important}}
.fillt{background-position:0 0!important}
}

/* build: responsive <picture> wrappers lay out exactly like the bare <img> in the prototype */
picture{display:contents}picture>source{display:none}
/* lightbox: horizontal swipes change photos and must not trigger the browser's swipe-back navigation
   (pinch-zoom and vertical panning stay as they were) */
.pg [role="dialog"]{touch-action:pan-y pinch-zoom}
html:has(.pg [role="dialog"]){overscroll-behavior-x:none}
