:root{
  --navy-950:#04120f;
  --navy-900:#071c18;
  --navy-800:#0b2621;
  --navy-700:#123530;
  --brand:#0f6b4f;
  --brand-2:#184278;
  --lime:#C5F02C;
  --lime-soft:#d6f76a;
  --ink:#0a1a17;
  --steel-50:#f3f5f3;
  --steel-100:#e3e8e5;
  --steel-300:#a9bcb6;
  --steel-500:#6e837d;
  --steel-700:#3c4d48;
  --line:rgba(255,255,255,.12);
  --line-dark:rgba(10,26,23,.1);
  --grid:rgba(197,240,44,.05);
  --f-display:"Geist",system-ui,sans-serif;
  --f-body:"Geist",system-ui,sans-serif;
  --f-mono:"Geist Mono",ui-monospace,monospace;
  --wrap:1320px;
  --gut:clamp(16px,4vw,48px);
  --r:22px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--f-body);font-size:16px;line-height:1.6;color:var(--ink);background:var(--steel-50);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.mono{font-family:var(--f-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--steel-500)}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--lime)}
.dark .eyebrow{color:var(--steel-300)}
.h-xl{font-family:var(--f-display);font-weight:400;font-size:clamp(2.6rem,6.2vw,5.6rem);line-height:.98;letter-spacing:-.045em}
.h-l{font-family:var(--f-display);font-weight:400;letter-spacing:-.035em;font-size:clamp(2rem,4vw,3.4rem);line-height:1.04}
.h-m{font-family:var(--f-display);font-weight:500;letter-spacing:-.02em;font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.15}
.lead{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.55;color:var(--steel-700);max-width:62ch;font-weight:400}
.dark .lead{color:var(--steel-300)}
.hl{color:var(--lime)}
.light .hl{color:#0f6b4f}

.btn{display:inline-flex;align-items:center;gap:.7rem;padding:1rem 1.4rem;border-radius:var(--r);font-weight:600;font-size:.95rem;letter-spacing:.01em;transition:transform .2s,background .2s,color .2s,border-color .2s}
.btn svg{width:18px;height:18px;transition:transform .2s}
.btn:hover svg{transform:translateX(3px)}
.btn-lime{background:var(--lime);color:var(--navy-950)}
.btn-lime:hover{background:var(--lime-soft)}
.btn-ghost{border:1px solid var(--line);color:#fff}
.btn-ghost:hover{border-color:var(--lime);color:var(--lime)}
.btn-dark{background:var(--navy-900);color:#fff}
.btn-dark:hover{background:var(--brand)}

.hdr{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .3s,border-color .3s,backdrop-filter .3s;border-bottom:1px solid transparent}
.hdr.scrolled{background:rgba(4,18,15,.86);backdrop-filter:blur(14px);border-color:var(--line)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:2rem}
.logo{display:flex;align-items:center;gap:.7rem;color:#fff}
.logo img{width:44px;height:auto}
.logo b{display:block;font-family:"Montserrat",var(--f-display);font-weight:800;font-size:1.05rem;letter-spacing:.06em;line-height:1}
.logo small{display:block;font-family:"Montserrat",var(--f-display);font-weight:600;font-size:.58rem;letter-spacing:.42em;color:var(--lime);margin-top:3px}
.nav{display:flex;gap:1.9rem;align-items:center}
.nav a{font-size:.88rem;color:rgba(255,255,255,.78);font-weight:500;position:relative;padding:.4rem 0}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--lime);transition:right .25s}
.nav a:hover{color:#fff}.nav a:hover::after{right:0}
.hdr-cta{display:flex;align-items:center;gap:1rem}
.lang{font-family:var(--f-mono);font-size:.72rem;color:var(--steel-300);letter-spacing:.1em}
.lang b{color:#fff}
.hdr .btn{padding:.7rem 1.1rem;font-size:.85rem}
.burger{display:none;width:44px;height:44px;color:#fff}
.burger span{display:block;width:22px;height:2px;background:currentColor;margin:5px auto;transition:.25s}
@media (max-width:1080px){
  .nav,.hdr-cta .btn,.lang{display:none}
  .burger{display:block}
  .nav.open{display:flex;position:fixed;top:76px;left:0;right:0;bottom:0;flex-direction:column;align-items:flex-start;gap:0;padding:1rem var(--gut);background:var(--navy-950)}
  .nav.open a{font-size:1.5rem;font-family:var(--f-display);padding:1rem 0;border-bottom:1px solid var(--line);width:100%;color:#fff}
}

.dark{background:var(--navy-900);color:#fff}
.bp{background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:56px 56px}
section{position:relative}
.sec{padding:clamp(80px,11vw,150px) 0}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:2rem 4rem;align-items:end;margin-bottom:clamp(40px,6vw,80px)}
.sec-head .h-l{margin-top:1rem}
@media (max-width:860px){.sec-head{grid-template-columns:1fr}}
.secnum{font-family:var(--f-mono);font-size:.72rem;color:var(--steel-500);letter-spacing:.12em}
@keyframes tick{to{transform:translateX(-50%)}}

.intro{background:#fff}
.intro-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}
.intro-figure{position:relative}
.intro-figure img{border-radius:var(--r);aspect-ratio:4/5;object-fit:cover;width:100%}
.tag-pin{position:absolute;background:var(--navy-900);color:#fff;padding:.7rem .9rem;border-left:3px solid var(--lime);font-size:.8rem;line-height:1.35;max-width:220px;box-shadow:0 10px 30px rgba(4,18,15,.25)}
.tag-pin .mono{display:block;color:var(--lime);font-size:.62rem;margin-bottom:.2rem}
.checks{list-style:none;margin-top:2rem;display:grid;gap:.9rem}
.checks li{display:flex;gap:.9rem;align-items:flex-start;font-weight:500}
.checks li::before{content:"";flex:0 0 20px;height:20px;margin-top:2px;border-radius:50%;background:var(--lime) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23060d1d' stroke-width='2'/%3E%3C/svg%3E") center/14px no-repeat}
@media (max-width:860px){.intro-grid{grid-template-columns:1fr}.intro-figure{margin-left:22px}}

.process{overflow:hidden}
.flow{position:relative;display:grid;grid-template-columns:repeat(8,1fr);border:1px solid var(--line);border-radius:var(--r);background:rgba(4,18,15,.5)}
.flow-step{position:relative;padding:1.4rem 1.1rem 1.3rem;border-right:1px solid var(--line);cursor:pointer;transition:background .25s;text-align:left;min-height:250px;display:flex;flex-direction:column}
.flow-step:last-child{border-right:0}
.flow-step:hover,.flow-step.active{background:rgba(197,240,44,.07)}
.flow-step.active{box-shadow:inset 0 -3px 0 var(--lime)}
.flow-step .mono{color:var(--steel-500);font-size:.65rem}
.flow-step.active .mono{color:var(--lime)}
.flow-step svg{width:100%;height:92px;margin:1rem 0 .8rem;stroke:#fff;stroke-width:1.3;fill:none;opacity:.85}
.flow-step.active svg{stroke:var(--lime);opacity:1}
.flow-step h3{font-family:var(--f-display);font-weight:500;font-size:1.02rem;line-height:1.2;margin-top:auto}
.flow-arrow{position:absolute;right:-7px;top:50%;width:13px;height:13px;background:var(--navy-900);border:1px solid var(--line);transform:translateY(-50%) rotate(45deg);z-index:2;border-left:0;border-bottom:0}
.flow-step:last-child .flow-arrow{display:none}
.flow-detail{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(24px,4vw,64px);margin-top:2rem;border:1px solid var(--line);border-radius:var(--r);padding:clamp(20px,3vw,40px);background:rgba(4,18,15,.4)}
.flow-detail h3{margin:.6rem 0 1rem}
.flow-detail p{color:var(--steel-300)}
.eq-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem;align-content:start}
.eq-list li{padding:.85rem 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;font-size:.95rem}
.eq-list li .mono{color:var(--steel-500);font-size:.62rem;white-space:nowrap}
.flow-note{margin-top:1rem;color:var(--steel-500);font-size:.78rem}
@media (max-width:1080px){.flow{grid-template-columns:repeat(4,1fr)}.flow-step:nth-child(4){border-right:0}.flow-step:nth-child(-n+4){border-bottom:1px solid var(--line)}.flow-step:nth-child(4) .flow-arrow{display:none}}
@media (max-width:620px){.flow{grid-template-columns:repeat(2,1fr)}.flow-step{min-height:200px}.flow-step:nth-child(2n){border-right:0}.flow-step:nth-child(-n+6){border-bottom:1px solid var(--line)}.flow-arrow{display:none}.flow-detail{grid-template-columns:1fr}.eq-list{grid-template-columns:1fr}}

.projects{background:var(--steel-50)}
.filters{display:flex;flex-wrap:wrap;gap:.5rem}
.filters button{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;padding:.65rem 1rem;border:1px solid var(--line-dark);border-radius:999px;transition:.2s;background:#fff}
.filters button.on,.filters button:hover{background:var(--navy-900);color:#fff;border-color:var(--navy-900)}
.pgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.pcard{grid-column:span 4;background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid var(--line-dark);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.pcard:hover{transform:translateY(-4px);box-shadow:0 22px 50px -20px rgba(4,18,15,.3)}
.pcard.big{grid-column:span 8}
.pcard.hide{display:none}
.pcard figure{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--navy-900)}
.pcard.big figure{aspect-ratio:16/8.6}
.pcard figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.pcard:hover figure img{transform:scale(1.04)}
.pcard .flag{position:absolute;left:14px;top:14px;display:flex;gap:.4rem}
.pcard .flag span{background:rgba(4,18,15,.82);color:#fff;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;padding:.4rem .6rem;text-transform:uppercase;backdrop-filter:blur(6px)}
.pcard .flag span.l{background:var(--lime);color:var(--navy-950)}
.pbody{padding:1.4rem 1.4rem 1.2rem;display:flex;flex-direction:column;flex:1}
.pbody h3{font-family:var(--f-display);font-weight:500;font-size:1.2rem;line-height:1.2}
.pbody p{color:var(--steel-700);font-size:.92rem;margin:.6rem 0 1.2rem}
.specs{margin-top:auto;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-dark)}
.specs div{padding:.8rem .6rem 0 0}
.specs div+div{padding-left:.8rem;border-left:1px solid var(--line-dark)}
.specs .mono{font-size:.58rem;color:var(--steel-500);display:block}
.specs b{font-family:var(--f-mono);font-size:1.02rem;font-weight:600;color:var(--brand)}
@media (max-width:980px){.pcard,.pcard.big{grid-column:span 6}}
@media (max-width:640px){.pcard,.pcard.big{grid-column:span 12}}

.eng-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:start}
.params{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.6rem}
.params span{font-family:var(--f-mono);font-size:.7rem;padding:.45rem .7rem;border:1px solid var(--line);border-radius:2px;color:var(--steel-300);transition:.2s}
.params span:hover{border-color:var(--lime);color:var(--lime)}
.tools{display:grid;gap:0;border-top:1px solid var(--line)}
.tool{display:grid;grid-template-columns:120px 1fr;gap:1.4rem;padding:1.4rem 0;border-bottom:1px solid var(--line);align-items:start;cursor:default}
.tool img{width:120px;height:84px;object-fit:cover;border-radius:2px;filter:grayscale(.3) brightness(.9);transition:.3s}
.tool:hover img{filter:none}
.tool h4{font-family:var(--f-display);font-weight:500;font-size:1.08rem;display:flex;gap:.8rem;align-items:baseline}
.tool h4 .mono{color:var(--lime);font-size:.62rem}
.tool p{color:var(--steel-300);font-size:.9rem;margin-top:.35rem}
.eng-visual{position:sticky;top:110px}
.eng-visual figure{position:relative;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#d8dbe0}
.eng-visual figcaption{display:flex;justify-content:space-between;padding:.8rem 1rem;background:var(--navy-950);color:var(--steel-300);font-family:var(--f-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}
.eng-visual figcaption span{color:var(--lime)}
@media (max-width:900px){.eng-grid{grid-template-columns:1fr}.eng-visual{position:relative;top:0}.tool{grid-template-columns:88px 1fr}.tool img{width:88px;height:66px}}

.mfg{background:#fff}

.svc{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-dark);border-left:1px solid var(--line-dark)}
.svc article{padding:2rem 1.6rem 2.2rem;border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);background:#fff;transition:background .25s}
.svc article:hover{background:var(--steel-50)}
.svc .num{font-family:var(--f-mono);font-size:.7rem;color:var(--steel-500)}
.svc h3{font-family:var(--f-display);font-weight:500;font-size:1.2rem}
.svc p{font-size:.92rem;color:var(--steel-700);margin-top:.6rem}
@media (max-width:980px){.svc{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.svc{grid-template-columns:1fr}}

.global{background:var(--navy-950);overflow:hidden}
.map-wrap{position:relative;margin-top:1rem}
#worldmap{width:100%;height:auto;display:block}
#worldmap .dot{fill:rgba(255,255,255,.16)}
#worldmap .dot.on{fill:var(--lime)}
#worldmap .arc{fill:none;stroke:var(--lime);stroke-width:1;opacity:.55;stroke-dasharray:4 5;animation:dash 30s linear infinite}
#worldmap .hq{fill:var(--lime)}
#worldmap .hq-ring{fill:none;stroke:var(--lime);stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:ping 2.4s ease-out infinite}
@keyframes ping{from{transform:scale(.4);opacity:1}to{transform:scale(2.6);opacity:0}}
@keyframes dash{to{stroke-dashoffset:-600}}
.map-legend{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin-top:1.6rem;font-family:var(--f-mono);font-size:.7rem;letter-spacing:.06em;color:var(--steel-300);text-transform:uppercase}
.map-legend span::before{content:"";display:inline-block;width:6px;height:6px;background:var(--lime);border-radius:50%;margin-right:.45rem;vertical-align:middle}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);margin-top:clamp(40px,6vw,70px)}
.kpi{padding:1.6rem 1.4rem 0 0}
.kpi+.kpi{padding-left:1.4rem;border-left:1px solid var(--line)}
.kpi strong{display:block;font-family:var(--f-display);font-weight:300;font-size:clamp(2.2rem,4.4vw,3.8rem);line-height:1;color:#fff}
.kpi strong em{font-style:normal;color:var(--lime)}
.kpi span{display:block;margin-top:.7rem;color:var(--steel-300);font-size:.9rem;max-width:24ch}
@media (max-width:860px){.kpis{grid-template-columns:repeat(2,1fr)}.kpi:nth-child(3){border-left:0;padding-left:0}.kpi:nth-child(n+3){margin-top:1.6rem}}

.ind-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark)}
.ind{background:#fff;padding:1.3rem 1.1rem;min-height:120px;display:flex;flex-direction:column;justify-content:space-between;transition:.2s}
.ind:hover{background:var(--navy-900);color:#fff}
.ind .mono{font-size:.6rem;color:var(--steel-500)}
.ind:hover .mono{color:var(--lime)}
.ind b{font-family:var(--f-display);font-weight:600;font-size:1rem;line-height:1.2}
.ind.feat{grid-column:span 2;background:var(--navy-900);color:#fff;min-height:240px;position:relative;overflow:hidden}
.ind.feat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.38;transition:.5s}
.ind.feat:hover img{opacity:.5;transform:scale(1.03)}
.ind.feat>*:not(img){position:relative}
.ind.feat .mono{color:var(--lime)}
.ind.feat b{font-size:1.5rem}
.ind.feat p{font-size:.86rem;color:var(--steel-300);margin-top:.5rem;max-width:44ch}
.ind-cta{grid-column:span 3;background:var(--lime)!important;color:var(--navy-950)!important}
.ind-cta .mono{color:var(--navy-950)!important;opacity:.7}
@media (max-width:1000px){.ind-grid{grid-template-columns:repeat(3,1fr)}.ind.feat{grid-column:span 3}}
@media (max-width:560px){.ind-grid{grid-template-columns:repeat(2,1fr)}.ind.feat,.ind-cta{grid-column:span 2}}

.history{background:var(--navy-900)}
.tl{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid var(--line);position:relative}
.tl::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:var(--tl,0%);background:var(--lime);transition:width 1.6s ease}
.tl-item{padding:1.6rem 1.4rem 0 0;position:relative}
.tl-item+.tl-item{padding-left:1.4rem;border-left:1px solid var(--line)}
.tl-item::before{content:"";position:absolute;top:-6px;left:0;width:11px;height:11px;background:var(--navy-900);border:2px solid var(--lime);transform:rotate(45deg)}
.tl-item+.tl-item::before{left:-6px}
.tl-item .yr{font-family:var(--f-display);font-weight:300;font-size:clamp(2rem,3.4vw,2.9rem);line-height:1;color:#fff}
.tl-item .mono{color:var(--lime);font-size:.62rem;display:block;margin:.7rem 0 .5rem}
.tl-item p{font-size:.88rem;color:var(--steel-300)}
.tl-item img{margin-top:1.2rem;aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:2px;filter:grayscale(1) contrast(1.05)}
.tl-item .kg{font-family:var(--f-mono);font-size:.7rem;color:#fff;margin-top:.8rem;display:flex;justify-content:space-between;border-top:1px dashed var(--line);padding-top:.6rem}
.tl-item .kg span{color:var(--steel-500)}
@media (max-width:1000px){.tl{grid-template-columns:1fr 1fr}.tl-item:nth-child(odd){border-left:0;padding-left:0}.tl-item:nth-child(odd)::before{left:0}.tl-item{padding-bottom:2rem}}
@media (max-width:560px){.tl{grid-template-columns:1fr}.tl-item,.tl-item+.tl-item{border-left:0;padding-left:0}.tl-item::before,.tl-item+.tl-item::before{left:0}}

.clients{background:#fff;padding:clamp(60px,8vw,100px) 0;overflow:hidden}

.cta{background:var(--navy-800);color:#fff;overflow:hidden}
.cta .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(32px,6vw,96px);align-items:start}
.cta .h-l{margin:1rem 0 1.2rem}
.cta .lead{color:rgba(255,255,255,.82)}
.form{background:#fff;color:var(--ink);border-radius:var(--r);padding:clamp(22px,3vw,36px);position:relative;z-index:2;box-shadow:0 30px 60px -30px rgba(0,0,0,.5)}
.form .mono{color:var(--steel-500);font-size:.64rem}
.form h3{font-family:var(--f-display);font-weight:500;font-size:1.35rem;margin:.4rem 0 1.2rem}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fgrid .full{grid-column:1/-1}
.form label{display:block;font-size:.74rem;font-weight:600;color:var(--steel-700);margin-bottom:.3rem}
.form input,.form select,.form textarea{width:100%;font:inherit;font-size:.95rem;padding:.8rem .9rem;border:1px solid var(--steel-100);border-radius:var(--r);background:var(--steel-50);color:var(--ink);transition:border-color .2s}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--brand);background:#fff}
.form textarea{min-height:96px;resize:vertical}
.form .unit{position:relative}
.form .unit span{position:absolute;right:.9rem;bottom:.85rem;font-family:var(--f-mono);font-size:.72rem;color:var(--steel-500)}
.form .btn{width:100%;justify-content:center;margin-top:1rem}
.form small{display:block;font-size:.72rem;color:var(--steel-500);margin-top:.8rem;text-align:center}
.contact-lines{display:grid;gap:1.4rem;margin-top:2.4rem;border-top:1px solid rgba(255,255,255,.2);padding-top:1.8rem}
.contact-lines .mono{color:var(--lime);font-size:.62rem;display:block;margin-bottom:.3rem}
.contact-lines a,.contact-lines p{font-size:1.05rem;color:#fff}
@media (max-width:900px){.cta .wrap{grid-template-columns:1fr}}
@media (max-width:520px){.fgrid{grid-template-columns:1fr}}
.tbd{background:rgba(197,240,44,.25);outline:1px dashed var(--lime);padding:0 .2em;border-radius:2px}
.light .tbd,.form .tbd{background:#fff6c2;outline-color:#d1b900}

.ftr{background:var(--navy-950);color:var(--steel-300);padding:clamp(60px,7vw,90px) 0 2rem;font-size:.9rem}
.ftr-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:2.4rem}
.ftr h5{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:1rem;font-weight:500}
.ftr ul{list-style:none;display:grid;gap:.5rem}
.ftr a:hover{color:var(--lime)}
.ftr-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);margin-top:3rem;padding-top:1.4rem;font-size:.78rem}
.ftr .logo{margin-bottom:1.2rem}
@media (max-width:860px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ftr-grid{grid-template-columns:1fr}}

.zatio{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;align-items:center;gap:.7rem;background:var(--navy-950);color:#fff;border:1px solid var(--line);padding:.55rem 1.1rem .55rem .55rem;border-radius:999px;box-shadow:0 14px 40px -12px rgba(0,0,0,.6);font-size:.86rem;font-weight:600;transition:transform .2s}
.zatio:hover{transform:translateY(-2px)}
.zatio i{width:36px;height:36px;border-radius:50%;background:var(--lime);display:grid;place-items:center}
.zatio i svg{width:18px;height:18px;stroke:var(--navy-950);fill:none;stroke-width:2}
.zatio small{display:block;font-weight:400;font-size:.7rem;color:var(--steel-300)}
@media (max-width:520px){.zatio{padding:.5rem}.zatio span{display:none}}

.rv{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}

.line{background:var(--navy-900);height:520vh;position:relative}
.line-sticky{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding-top:96px;overflow:hidden;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:56px 56px}
.line-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;width:100%}
.line-head .h-l{margin-top:.8rem;font-size:clamp(1.8rem,3.4vw,3rem)}
.line-note{font-size:.62rem;color:var(--steel-500);text-align:right;line-height:1.8}
.line-note span{color:var(--steel-300)}
.line-stage{flex:1;min-height:0;position:relative;margin:1rem 0}
@keyframes flow{from{stroke-dashoffset:0}to{stroke-dashoffset:-.7}}
.line-hud{display:grid;grid-template-columns:110px 1.1fr 1fr;gap:1.5rem 2.5rem;align-items:start;padding-bottom:28px;position:relative;width:100%}
.hud-num{font-size:.8rem;color:var(--steel-500)}.hud-num b{font-family:var(--f-display);font-size:2.6rem;color:var(--lime);font-weight:700;display:block;line-height:1}
.hud-txt h3{margin-bottom:.4rem}.hud-txt p{color:var(--steel-300);font-size:.95rem;max-width:52ch}
.hud-eq{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;align-content:flex-start}
.hud-bar{position:absolute;left:var(--gut);right:var(--gut);bottom:12px;height:2px;background:var(--line)}
.hud-bar i{display:block;height:100%;width:0;background:var(--lime);transition:width .2s}
@media (max-width:900px){
  .line{height:auto}
  .line-sticky{position:relative;height:auto;padding:90px 0 40px}
  .line-head{flex-direction:column;align-items:flex-start}.line-note{text-align:left}
  .line-stage{height:300px;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .line-stage::after{content:none;position:sticky;left:0;font-family:var(--f-mono);font-size:.62rem;color:var(--steel-500)}
  .line-hud{grid-template-columns:1fr}.hud-bar{display:none}
}

.pcard figure .bpimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(0 100% 0 0);transition:clip-path .9s cubic-bezier(.7,0,.2,1)}
.pcard:hover figure .bpimg{clip-path:inset(0 0 0 0)}
.pcard:hover figure img:first-child{transform:none}
.pcard h3 .tbd{font-family:var(--f-mono);font-size:.6rem;vertical-align:middle;font-weight:500}
.specs-note{font-size:.62rem;color:var(--steel-500);margin-top:1.4rem}

.tl-tile{margin-top:1.2rem;aspect-ratio:4/3;border:1px solid var(--line);border-radius:2px;display:flex;flex-direction:column;justify-content:space-between;padding:.9rem;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:16px 16px}
.tl-tile .mono{font-size:.58rem;color:var(--steel-500)}
.tl-tile b{font-family:var(--f-display);font-size:2.6rem;color:var(--lime);line-height:1}

.ucap{display:flex}.ucap input{border-radius:var(--r) 0 0 var(--r)}
.ucap select{width:auto;border-radius:0 var(--r) var(--r) 0;border-left:0;font-family:var(--f-mono);font-size:.8rem}

.eyebrow{letter-spacing:.18em}
.sec{padding:clamp(96px,12vw,170px) 0}
.zatio{padding:.45rem 1rem .45rem .45rem;font-weight:500;font-size:.8rem;background:rgba(4,18,15,.82);backdrop-filter:blur(10px)}
.zatio i{width:30px;height:30px}
.zatio small{display:none}
.hdr .btn{padding:.6rem 1rem}

body{font-feature-settings:"ss01","cv11";letter-spacing:-.005em}
.h-xl{font-size:clamp(2.8rem,6.6vw,6.2rem)}
.hl{font-weight:400}
.mono,.eyebrow,.hud-num{font-family:var(--f-mono);letter-spacing:.06em}
.btn{font-weight:500;letter-spacing:0}
.kpi strong,.tl-item .yr,.hud-num b,.tl-tile b{font-weight:300;letter-spacing:-.04em}
.pbody h3,.svc h3,.tool h4,.ind b,.flow-step h3{font-weight:500;letter-spacing:-.015em}
.logo b,.logo small{font-family:"Montserrat",sans-serif}

.light,.intro,.mfg,.clients,#industries{background:#fff}
.projects,#services{background:#f5f5f7!important}
.sec-head{grid-template-columns:1fr;text-align:center;justify-items:center;gap:1.2rem}
.sec-head .lead{margin:0 auto;max-width:56ch}
.sec-head .h-l{font-size:clamp(2.4rem,5.2vw,4.6rem);line-height:1.02}
.sec-head .filters{justify-content:center}
.sec-head>div:last-child p.lead{margin-bottom:1.4rem}
.eyebrow::before{display:none}
.eyebrow{color:var(--lime)!important;font-size:.78rem;letter-spacing:.02em;text-transform:none;font-family:var(--f-body);font-weight:500}
.light .eyebrow,.intro .eyebrow,.mfg .eyebrow,#industries .eyebrow,#services .eyebrow,.projects .eyebrow,.clients .eyebrow{color:#0f6b4f!important}
.btn{border-radius:999px}
.pcard{border:0;border-radius:24px}
.pcard figure{border-radius:0}
.svc{border:0;gap:16px}
.svc article{border:0;border-radius:24px;background:#fff}
.ind-grid{gap:12px;background:none;border:0}
.ind{border-radius:20px;background:#f5f5f7}
.form{border-radius:28px}
.flow,.flow-detail{border-radius:24px}
.eng-visual figure{border-radius:24px}
.tool img{border-radius:12px}
.intro-figure img{border-radius:28px}
.tag-pin{border-radius:14px;border-left:0;background:rgba(4,18,15,.85);backdrop-filter:blur(10px)}
.intro-figure{margin-left:0}

.logo small{color:rgba(255,255,255,.72)}
.logo img{width:40px}

.film{height:330vh;background:#020a08;position:relative}
.film-sticky{position:sticky;top:0;height:100vh;overflow:hidden}
.film-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:50% 60%;will-change:transform,opacity,filter}
#holo{position:absolute;inset:0;width:100%;height:100%}
.film-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(2,10,8,.55) 0%,rgba(2,10,8,0) 30%,rgba(2,10,8,0) 55%,rgba(2,10,8,.85) 100%),linear-gradient(90deg,rgba(2,10,8,.75) 0%,rgba(2,10,8,.25) 45%,transparent 70%)}
.film-copy{position:relative;height:100%;display:flex;align-items:flex-end;padding-bottom:clamp(56px,9vh,110px)}
.fc{position:absolute;bottom:clamp(56px,9vh,110px);max-width:760px;opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s;pointer-events:none}
.fc.on{opacity:1;transform:none;pointer-events:auto}
.fc h1,.fc h2{margin:1rem 0 1.2rem;color:#fff}
.fc .lead{color:rgba(255,255,255,.8);max-width:52ch}
.scroll-cue{position:absolute;right:var(--gut);bottom:36px;font-size:.62rem;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:.7rem;opacity:calc(1 - var(--p,0)*6)}
.scroll-cue::after{content:"";width:1px;height:42px;background:linear-gradient(var(--lime),transparent);animation:cue 1.8s ease-in-out infinite;transform-origin:top}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.btn-ghost{border:1px solid rgba(255,255,255,.35);color:#fff}
.statband{background:#fff;border-bottom:1px solid var(--line-dark)}
.statband-in{display:grid;grid-template-columns:repeat(4,1fr)}
.statband-in div{padding:2.2rem 1.4rem;border-left:1px solid var(--line-dark)}
.statband-in div:first-child{border-left:0;padding-left:0}
.statband-in b{display:block;font-weight:300;font-size:clamp(2rem,3.6vw,3.2rem);letter-spacing:-.04em;line-height:1}
.statband-in span{display:block;margin-top:.5rem;font-size:.85rem;color:var(--steel-500)}
@media (max-width:760px){.statband-in{grid-template-columns:1fr 1fr}.statband-in div:nth-child(3){border-left:0;padding-left:0}.statband-in div{padding:1.4rem .8rem}}
.hdr{top:14px;left:50%;right:auto;transform:translateX(-50%);width:min(1180px,calc(100% - 28px));border-radius:16px;border:1px solid rgba(255,255,255,.1);background:rgba(4,18,15,.55);backdrop-filter:blur(16px) saturate(140%)}
.hdr.scrolled{background:rgba(4,18,15,.82);border-color:rgba(255,255,255,.12)}
.hdr .wrap{height:60px;padding:0 10px 0 18px}

:root{--bg-dark:#050E0B;--bg-light:#F2F3F1;--ink:#0B1A15;--card-dark:#0B1713;--ease:cubic-bezier(.16,1,.3,1)}
body{background:var(--bg-dark);font-size:17px}
.chapter{position:relative}
.ch-dark{background:var(--bg-dark);color:#fff}
.ch-light{background:var(--bg-light);color:var(--ink)}
.chapter section,.chapter .sec,.chapter .dark,.chapter .light{background:transparent!important}
.ch-dark .film{background:#020a08!important}
.notch{margin-top:-40px;padding-top:40px;z-index:2;
  clip-path:polygon(0 40px,calc(50% - 170px) 40px,calc(50% - 130px) 0,calc(50% + 130px) 0,calc(50% + 170px) 40px,100% 40px,100% 100%,0 100%)}
.sec{padding:160px 0}
@media (max-width:760px){.sec{padding:104px 0}.notch{clip-path:polygon(0 28px,calc(50% - 90px) 28px,calc(50% - 62px) 0,calc(50% + 62px) 0,calc(50% + 90px) 28px,100% 28px,100% 100%,0 100%);margin-top:-28px;padding-top:28px}}

h1,h2,h3{text-wrap:balance} p{text-wrap:pretty}
.h-l,.sec-head .h-l{font-size:clamp(2.5rem,5vw,4.5rem);line-height:1;letter-spacing:-.035em;font-weight:400}
.h-m{font-size:clamp(1.5rem,2.4vw,2.25rem);line-height:1.2;font-weight:400;letter-spacing:-.02em}
.lead,.sec-head .lead{font-size:1.0625rem;line-height:1.6}
.ch-light .hl{color:inherit}
.ch-light .eyebrow{color:#4c6159!important}
.ch-light .lead{color:#4c6159}
.ch-light .sec-head .h-l{color:var(--ink)}

.statband{border-bottom:1px solid rgba(11,26,21,.1)}
.statband-in div{border-color:rgba(11,26,21,.1)}
.intro .checks li::before{background-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23C5F02C' stroke-width='2'/%3E%3C/svg%3E")}

.pcard{background:var(--card-dark);color:#fff;border:0}
.pcard figure{background:#04120f}
.pcard .pbody p{color:#9fb3ac}
.pcard .specs{border-top-color:rgba(255,255,255,.1)}
.pcard .specs div+div{border-left-color:rgba(255,255,255,.1)}
.pcard .specs b{color:var(--lime)}
.pcard .specs .mono{color:#6f857e}
.pcard figure .bpimg{clip-path:none;opacity:0;transition:opacity .5s var(--ease)}
.pcard:hover figure .bpimg{opacity:1}
.pcard figure img:first-child{transition:transform 1.2s var(--ease)}
.pcard .flag span{background:rgba(5,14,11,.7)}
.filters button{background:transparent;border-color:rgba(11,26,21,.18)}
.filters button.on,.filters button:hover{background:var(--ink);border-color:var(--ink)}
.specs-note{text-align:center}

.mfg-data{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(11,26,21,.15);margin-bottom:56px}
.mfg-data div{padding:1.2rem 1.4rem 0 0}
.mfg-data div+div{padding-left:1.4rem;border-left:1px solid rgba(11,26,21,.15)}
.mfg-data b{display:block;font-family:var(--f-body);font-weight:300;font-size:2.4rem;letter-spacing:-.04em;color:var(--ink);line-height:1.1}
.mfg-data span{font-size:.7rem;color:#5c7069;letter-spacing:.04em;text-transform:none}
.mfg-shots{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:20px}
.shot{margin:0}
.shot-img{overflow:hidden;border-radius:24px;aspect-ratio:4/5;background:#dfe3e0}
.shot:first-child .shot-img{aspect-ratio:auto;height:100%;max-height:560px}
.shot-img img{width:100%;height:100%;object-fit:cover;transform:scale(var(--z,1));transition:transform .1s linear}
.shot figcaption{display:flex;flex-direction:column;gap:.3rem;margin-top:1rem}
.shot figcaption b{font-weight:500;font-size:1.05rem}
.shot figcaption .mono{font-size:.68rem;color:#5c7069}
.mfg-shots{align-items:start}
@media (max-width:900px){.mfg-data{grid-template-columns:1fr}.mfg-data div+div{border-left:0;padding-left:0;border-top:1px solid rgba(11,26,21,.15)}.mfg-shots{grid-template-columns:1fr}.shot:first-child .shot-img{aspect-ratio:4/5}}

.svc article{background:#fff}

.ind-grid.core{grid-template-columns:repeat(3,1fr);gap:20px}
.ind-grid.core .ind.feat{grid-column:auto;min-height:340px;border-radius:24px}
.ind-line{text-align:center;margin-top:2.6rem;font-size:.74rem;line-height:2.1;color:#4c6159;max-width:900px;margin-left:auto;margin-right:auto}
@media (max-width:900px){.ind-grid.core{grid-template-columns:1fr}}

.clients{padding:120px 0}
.clients .eyebrow{color:#7f938c!important}

.cta{background:transparent}

.hdr{background:transparent;border-color:transparent;backdrop-filter:none}
.hdr.scrolled{background:rgba(5,14,11,.6);backdrop-filter:blur(16px);border-color:rgba(255,255,255,.08)}
.hdr .wrap{height:64px}
.nav{gap:2.2rem}

.zatio{width:48px;height:48px;padding:0;justify-content:center;border-radius:50%;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .4s,transform .4s}
.zatio span{display:none}
.zatio i{width:48px;height:48px}
.zatio.show{opacity:1;pointer-events:auto;transform:none}

.rv{transform:translateY(24px);transition:opacity .9s var(--ease) var(--d,0s),transform .9s var(--ease) var(--d,0s)}
.shot-img,.pcard figure,.intro-figure img{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease) var(--d,0s)}
.in .shot-img,.pcard.in figure,.in .intro-figure img,.rv.in .shot-img,.intro-figure.in img{clip-path:inset(0 0 0 0)}

.tbd{display:none}
.review .tbd{display:inline}

.film{height:420vh}
.pcard figure img:first-child{opacity:1}

.sec{padding:clamp(96px,10vw,160px) 0}
.hdr.on-light{background:rgba(242,243,241,.72);border-color:rgba(11,26,21,.08)}
.hdr.on-light .logo,.hdr.on-light .nav a,.hdr.on-light .lang b{color:var(--ink)}
.hdr.on-light .lang{color:#6f857e}
.hdr.on-light .logo img{filter:brightness(0) saturate(100%)}
.hdr.on-light .logo small{color:rgba(11,26,21,.6)}
.hdr.on-light .burger{color:var(--ink)}
.shot-img,.intro-figure,.ind.feat{position:relative}
.shot-img img,.intro-figure img{filter:saturate(.75) contrast(1.06) brightness(.94)}
.shot-img::after,.intro-figure::after{content:"";position:absolute;inset:0;border-radius:inherit;background:#0B1A15;mix-blend-mode:soft-light;opacity:.18;pointer-events:none}
.intro-figure::after{border-radius:28px}
.eng-visual figure{background:#E9ECEA;border-radius:16px}
.eng-visual figure img{mix-blend-mode:multiply}
.tool img{background:#E9ECEA;mix-blend-mode:normal;filter:none;border-radius:10px}
.intro .h-l{font-size:clamp(2.5rem,4.2vw,4rem)!important;max-width:14ch}
@property --nw{syntax:'<length>';inherits:false;initial-value:0px}
.notch{--nw:0px;transition:--nw .8s var(--ease);
  clip-path:polygon(0 40px,calc(50% - var(--nw) - 40px) 40px,calc(50% - var(--nw)) 0,calc(50% + var(--nw)) 0,calc(50% + var(--nw) + 40px) 40px,100% 40px,100% 100%,0 100%)}
.notch.open{--nw:130px}
@media (max-width:760px){.notch{clip-path:polygon(0 28px,calc(50% - var(--nw) - 28px) 28px,calc(50% - var(--nw)) 0,calc(50% + var(--nw)) 0,calc(50% + var(--nw) + 28px) 28px,100% 28px,100% 100%,0 100%)}.notch.open{--nw:62px}}
.mfg-data b{text-transform:none}
.statband-in div{display:flex;flex-direction:column}
.statband-in span{order:-1;margin:0 0 .5rem}
@media (max-width:600px){
  .film-shade{background:linear-gradient(180deg,rgba(5,14,11,.4) 0%,transparent 35%,rgba(5,14,11,.85) 75%)}
  .fc .lead{margin-bottom:0}
}

.film-data{display:flex;gap:0;margin-top:1.8rem;border-top:1px solid rgba(255,255,255,.18)}
.film-data div{padding:.9rem 1.6rem 0 0}
.film-data div+div{padding-left:1.6rem;border-left:1px solid rgba(255,255,255,.18)}
.film-data dt{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.film-data dd{font-size:1.5rem;font-weight:300;letter-spacing:-.02em;color:var(--lime);margin-top:.2rem}
.pcard figure .bpimg{background:#e9ecea;object-fit:cover}
.cad-chip{position:absolute;right:12px;top:14px;font-size:.58rem;padding:.35rem .55rem;background:var(--lime);color:#050E0B;opacity:0;transition:opacity .4s}
.pcard:hover .cad-chip{opacity:1}

.film-cad{position:absolute;left:50%;top:50%;width:min(70vw,1000px);margin:0;transform:translate(-50%,-50%) scale(.94);opacity:0;border-radius:18px;overflow:hidden;background:#E9ECEA;box-shadow:0 40px 120px rgba(0,0,0,.6);pointer-events:none;z-index:1}
.film-cad img{width:100%;display:block;aspect-ratio:1038/600;object-fit:cover}
.film-shade,.film-copy{z-index:2}.scroll-cue{z-index:3}
.pgrid{align-items:start}
.pcard.more{grid-column:span 12}
.pcard.more figure{aspect-ratio:21/8}
.chapter > section.sec + section.sec,.chapter > section + section.sec{padding-top:0}
.chapter > section.sec:last-child{padding-bottom:clamp(96px,10vw,160px)}
.specs-note,.flow-note,.ind-line{margin-bottom:0}
.ind.feat img{opacity:1!important;filter:saturate(.9)}
.ind.feat::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(5,14,11,.88) 0%,rgba(5,14,11,.5) 40%,rgba(5,14,11,0) 65%);border-radius:inherit}
.ind.feat>*:not(img){z-index:1}
.ind.feat .mono{align-self:flex-start;background:rgba(5,14,11,.6);padding:.25rem .5rem;border-radius:6px}
.hdr.scrolled:not(.on-light){background:rgba(5,14,11,.86)}
.ch-light{background:#F2F3F1}
.svc{border:0}.svc article{background:#fff;border:1px solid rgba(0,0,0,.06)}
.ind{background:#fff}
.film-data dd{white-space:nowrap}
@media (max-width:600px){
  .fc{left:var(--gut);right:var(--gut)}
  .film-data div{padding-right:1rem}.film-data div+div{padding-left:1rem}
  .film-data dd{font-size:clamp(20px,6vw,28px)}
  .zatio{bottom:88px}
  .film-cad{width:88vw}
}

.say{height:280vh;position:relative;background:#020a08}
.say-sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center}
.say-bg{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;transform:scale(var(--s,1.08));will-change:transform}
.say-sticky::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 70% at 50% 60%,rgba(2,10,8,.25),rgba(2,10,8,.75))}
.say-text{position:relative;z-index:1;max-width:min(1200px,88vw);text-align:center;color:#fff;font-size:clamp(2.3rem,5.4vw,5.4rem);line-height:1.04;letter-spacing:-.04em;font-weight:400}
.say-text .w{display:inline-block;white-space:nowrap}
.say-text .c{opacity:0;transition:opacity .12s}
.say-text .c.on{opacity:1}
.say-text .c.cur{color:var(--lime)}

.ch-light{background:#fff;--ink:#0B2A24}
.ch-light .sec-head .h-l,.lw-title{color:#0B2A24;letter-spacing:-.05em}
.ch-light .sec-head .h-l{font-size:clamp(2.6rem,5.6vw,5.2rem);line-height:.98}
.svc article,.ind{background:#F4F5F4;border-color:transparent}
.statband{border-top:1px solid rgba(11,42,36,.08)}

.logowall{padding-top:clamp(110px,12vw,180px)!important}
.lw-title{text-align:center;font-size:clamp(2.6rem,5.6vw,5.4rem);line-height:.98;max-width:14ch;margin:0 auto clamp(48px,6vw,88px);font-weight:400}
.lw-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid rgba(11,42,36,.09);border-left:1px solid rgba(11,42,36,.09)}
.lw-cell{position:relative;aspect-ratio:1.35;display:grid;place-items:center;border-right:1px solid rgba(11,42,36,.09);border-bottom:1px solid rgba(11,42,36,.09)}
.lw-cell img{max-width:62%;max-height:38%;object-fit:contain;filter:brightness(0);opacity:.82;transition:opacity .3s}
.lw-cell:hover img{opacity:1}
.lw-note{text-align:center;margin-top:1.4rem;font-size:.62rem;color:#6f857e}
@media (max-width:900px){.lw-grid{grid-template-columns:repeat(3,1fr)}}
.film-cad{left:auto;right:var(--gut);top:50%;width:min(50vw,760px);transform-origin:right center}
@media (max-width:900px){.film-cad{right:50%;width:88vw;top:34%}}

.say-bg{inset:0;width:100%;height:100%;transform-origin:50% 50%}
.say-sticky::before{content:"";position:absolute;left:0;right:0;top:0;height:160px;z-index:1;background:linear-gradient(#020a08,transparent)}
.bokeh{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:var(--hol,0)}
.bokeh i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);margin:calc(var(--s)/-2);border-radius:50%;
  background:radial-gradient(circle,rgba(200,225,215,.28) 0%,rgba(200,225,215,.12) 55%,rgba(200,225,215,0) 70%);box-shadow:inset 0 0 0 1px rgba(220,240,232,.25);
  filter:blur(calc(14px - var(--d) * 6px));transform:translate(calc(var(--mx,0) * var(--d) * -60px),calc(var(--my,0) * var(--d) * -40px))}
.film-cad{background:none;box-shadow:none;border-radius:0;overflow:visible;
  -webkit-mask-image:radial-gradient(closest-side,#000 62%,transparent 100%);mask-image:radial-gradient(closest-side,#000 62%,transparent 100%)}
.film-cad img{filter:invert(1) hue-rotate(180deg) contrast(1.7) brightness(.8);mix-blend-mode:screen;aspect-ratio:auto}
@media (max-width:900px){.film-cad{display:none}}
.lw-grid{position:relative;border:0}
.lw-cell{border:0}
.lw-grid{background-image:linear-gradient(rgba(11,42,36,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(11,42,36,.04) 1px,transparent 1px);background-size:calc(100% / 7) calc(100% / 3)}
.lw-x{position:absolute;width:15px;height:15px;margin:-7px 0 0 -7px;pointer-events:none}
.lw-x::before,.lw-x::after{content:"";position:absolute;background:rgba(11,42,36,.5)}
.lw-x::before{left:7px;top:0;width:1px;height:15px}.lw-x::after{top:7px;left:0;height:1px;width:15px}
.logowall{padding-bottom:96px!important}
@media (max-width:900px){.lw-grid{background-size:calc(100% / 3) calc(100% / 7)}}
.pgrid{align-items:stretch}
.pcard .pbody{flex:1}
.pcard .specs b{font-family:var(--f-body);font-weight:400;font-size:1.3rem;letter-spacing:-.02em}
.svc article,.ind{background:#fff;border:1px solid rgba(11,42,36,.08)}
#services{padding-bottom:120px!important}
.ind-line{text-wrap:balance}
.film-shade{background:linear-gradient(180deg,rgba(2,10,8,.55) 0%,rgba(2,10,8,0) 30%,rgba(2,10,8,0) 50%,rgba(2,10,8,.88) 100%),linear-gradient(90deg,rgba(2,10,8,.7) 0%,rgba(2,10,8,.3) 45%,transparent 70%)}
.eng-visual figure img{width:100%;object-fit:cover;display:block}
.statband + .intro{padding-top:56px!important}
.form input,.form select,.form textarea{font-size:15px;padding-left:16px}
.tl-item,.tl-item+.tl-item{padding:1.6rem 1.2rem 0}
.tl-item:first-child{padding-left:1.2rem}
.tl-item img,.tl-tile{aspect-ratio:4/3;width:100%;height:auto;object-fit:cover}

.film-sticky::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(60% 50% at 85% 10%,rgba(2,10,8,.45),transparent)}
@media (max-width:600px){
  .film-photo{object-position:35% 50%}
  .film-shade{background:linear-gradient(180deg,rgba(2,10,8,.4) 0%,transparent 30%,rgba(2,10,8,.78) 62%,rgba(2,10,8,.92) 100%)}
}
@media (max-width:900px){.film-cad{display:block;top:30%;right:4vw;width:92vw}}
.line-stage{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 120px,#000 calc(100% - 120px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 120px,#000 calc(100% - 120px),transparent)}
@media (max-width:900px){.line-stage{-webkit-mask-image:none;mask-image:none}}
#equipment{padding-top:clamp(110px,12vw,160px)!important}
.lw-title{max-width:22ch}
.lw-cell.lw-wide img{max-width:54%;max-height:44%}
.lw-cell.lw-tall img{max-height:46%}
.pcard.wide{grid-column:span 8}
.pcard.wide figure{aspect-ratio:16/8.6}
.pcard-cta{grid-column:span 4;border-radius:24px;background:var(--lime);color:#050E0B;display:flex;flex-direction:column;justify-content:space-between;padding:1.6rem;min-height:240px;transition:background .25s}
.pcard-cta:hover{background:var(--lime-soft)}
.pcard-cta .mono{font-size:.66rem;opacity:.7}
.pcard-cta b{font-size:clamp(1.4rem,2.2vw,2rem);font-weight:400;letter-spacing:-.03em;line-height:1.1}
@media (max-width:980px){.pcard.wide{grid-column:span 12}.pcard-cta{grid-column:span 12}}
.shot-img,.shot:first-child .shot-img{aspect-ratio:4/5;height:auto;max-height:none}
.tl-item img,.tl-tile{height:155px;aspect-ratio:auto}
.ind-line span{white-space:nowrap}
.svc article h3{margin-top:2.2rem}
@media (max-width:480px){
  .pcard .specs{grid-template-columns:1fr}
  .pcard .specs div,.pcard .specs div+div{display:flex;justify-content:space-between;align-items:baseline;padding:.55rem 0;border-left:0;border-top:1px solid rgba(255,255,255,.08)}
  .pcard .specs div:first-child{border-top:0}
  .statband-in div{padding:18px 20px!important;min-height:0}
  .statband-in b{font-size:2.2rem}
}

.line{height:620vh}
.line-stage{position:relative;flex:1;min-height:0;margin:0;-webkit-mask-image:none;mask-image:none}
#line3d{position:absolute;inset:0;width:100%;height:100%;display:block}
.line3d-tags{position:absolute;inset:0;pointer-events:none}
  padding:.35rem .6rem;border:1px solid rgba(205,238,226,.2);border-radius:999px;background:rgba(5,14,11,.6);backdrop-filter:blur(6px);
  translate:-50% -100%;opacity:0;transition:opacity .4s,color .3s,border-color .3s}
@media (max-width:900px){
  .line{height:620vh}
  .line-sticky{position:sticky;top:0;height:100vh;padding:84px 0 20px}
  .line-stage{height:auto;overflow:visible}
  .line-stage::after{display:none}
  .line-hud{grid-template-columns:1fr;gap:.6rem}
  .hud-eq{display:none}
  .line-note{display:none}
}
.line-note{font-family:var(--f-body);font-size:.78rem;letter-spacing:0;text-transform:none;line-height:1.6}
.line{height:720vh}
.line-sticky{padding-top:0!important;background-image:none}
.line-stage{position:absolute!important;inset:0;margin:0}
.line-head{position:relative;z-index:2;padding-top:104px;opacity:var(--tourui,0)}
.line-hud{position:absolute;left:0;right:0;bottom:0;z-index:2;margin:0 auto;opacity:var(--tourui,0)}
.line-hero{position:absolute;left:0;right:0;bottom:clamp(56px,9vh,110px);z-index:3;opacity:var(--hero,1);transform:translateY(calc((1 - var(--hero,1)) * -30px));pointer-events:auto}
.line-hero h1{margin:1rem 0 1.2rem;color:#fff;max-width:12ch}
.line-hero .lead{color:rgba(255,255,255,.78);max-width:52ch}
.line-sticky::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(5,14,11,.82) 0%,rgba(5,14,11,.35) 40%,transparent 65%),linear-gradient(0deg,rgba(5,14,11,.8) 0%,transparent 35%);opacity:var(--hero,1)}
.line .scroll-cue{opacity:var(--hero,1);z-index:3}
.line3d-tags{z-index:2}
@media (max-width:900px){.line-head{padding-top:84px}.line-hero{bottom:40px}.line-hero h1{font-size:clamp(2.4rem,11vw,3.4rem)}}
.lt{position:absolute;left:0;top:0;width:0;height:0;opacity:0;transition:opacity .45s}
.lt.on{opacity:.7}.lt.cur{opacity:1}
.lt .mk{position:absolute;left:-8px;top:-8px;width:16px;height:16px;border-radius:50%;border:1px solid rgba(205,238,226,.85)}
.lt .mk::before,.lt .mk::after{content:"";position:absolute;background:rgba(205,238,226,.85)}
.lt .mk::before{left:7px;top:-5px;width:1px;height:24px}.lt .mk::after{top:7px;left:-5px;height:1px;width:24px}
.lt.cur .mk{border-color:var(--lime);animation:mkpulse 2s ease-out infinite}
.lt.cur .mk::before,.lt.cur .mk::after{background:var(--lime)}
@keyframes mkpulse{0%{box-shadow:0 0 0 0 rgba(197,240,44,.45)}100%{box-shadow:0 0 0 14px rgba(197,240,44,0)}}
.lt .ld{position:absolute;left:0;top:-58px;overflow:visible}
.lt .ld path{fill:none;stroke:rgba(205,238,226,.55);stroke-width:1}
.lt.cur .ld path{stroke:var(--lime)}
.lt .card{position:absolute;left:100px;top:-80px;display:grid;grid-template-columns:auto auto;column-gap:.6rem;row-gap:.1rem;align-items:baseline;white-space:nowrap;
  padding:.5rem .75rem .55rem;border-radius:8px;background:rgba(5,14,11,.72);border:1px solid rgba(205,238,226,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.lt.cur .card{border-color:rgba(197,240,44,.55)}
.lt .card b{grid-row:1/3;font-family:var(--f-mono);font-weight:400;font-size:.66rem;color:var(--lime);letter-spacing:.04em;align-self:start;padding-top:.15rem}
.lt .card span{font-size:.9rem;font-weight:500;color:#fff;letter-spacing:-.01em}
.lt .card small{font-size:.7rem;color:rgba(205,238,226,.6)}
.lt.flip .ld{transform:scaleX(-1);transform-origin:0 0}
.lt.flip .card{left:auto;right:100px}
@media (max-width:900px){.lt .card{transform:scale(.85);transform-origin:left bottom}.lt.flip .card{transform-origin:right bottom}.lt .card small{display:none}}

@media (max-width:900px){
  .line{height:520vh!important}
  .line-sticky{position:sticky!important;top:0;height:100vh!important;padding:0!important;overflow:hidden}
  .line-stage{position:absolute!important;inset:0;height:100%!important}
  .line-hero{top:104px;bottom:auto}
  .line-hero h1{font-size:clamp(2rem,9.5vw,2.8rem)!important}
  .line-hero .lead{font-size:.95rem}
  .line-head{padding-top:84px}
}

.film{height:300vh!important}.say{height:160vh!important}.line{height:520vh}
.mono{text-transform:none;letter-spacing:.02em}
.specs .mono,.film-data dt,.hud-num{text-transform:uppercase;letter-spacing:.06em}
.hud-eq{display:block;font-size:.85rem;color:var(--steel-300);line-height:1.6}
.hud-eq li{display:inline;padding:0;border:0;font-family:var(--f-body);font-size:inherit;letter-spacing:0;color:inherit}
.hud-eq li+li::before{content:", "}
.line-head .h-l{font-size:clamp(1.4rem,2vw,1.8rem)!important}
.line-note{font-size:.72rem!important;opacity:.7}
.line-hero > *{max-width:42%}
.line-hero .hero-actions{max-width:none}
.ind-line{font-family:var(--f-body);font-size:.92rem;letter-spacing:0;text-transform:none;line-height:1.9}
@media (max-width:900px){.line-hero > *{max-width:none}}

.ind.feat img{opacity:.55!important}
.ind.feat::after{background:linear-gradient(to top,rgba(4,18,13,.92) 0%,rgba(4,18,13,.6) 45%,rgba(4,18,13,.2) 100%)!important}
.ind.feat p{color:#fff;opacity:.85}
.params-list{list-style:none;columns:2;column-gap:2rem;margin-top:1.4rem}
.params-list li{font-size:.95rem;color:var(--steel-300);padding:.6rem 0;border-bottom:1px solid var(--line);break-inside:avoid}
.pcard figure,.pcard.big figure,.pcard.wide figure{aspect-ratio:auto!important;height:260px}
.pcard .pbody{display:flex;flex-direction:column}
.pcard .specs{margin-top:auto}
.tl-item p{min-height:5.4em}
.tl-item .kg{margin-top:1.2rem}
@media (max-width:900px){.pcard figure,.pcard.big figure,.pcard.wide figure{height:220px}.tl-item p{min-height:0}}
.worldmap{display:block;width:100%;height:auto}

.line{height:760vh!important;background:#020a08}
.line-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transform-origin:50% 60%;will-change:transform,opacity}
.line-stage{z-index:1}
.line-sticky::after{z-index:2}
.line-mid{position:absolute;left:0;right:0;bottom:clamp(56px,10vh,120px);z-index:3;text-align:center;opacity:var(--mid,0);pointer-events:none;padding:0 var(--gut)}
.line-mid .h-l{color:#fff;font-size:clamp(2rem,4vw,3.4rem)!important;max-width:18ch;margin:0 auto .8rem}
.line-mid .lead{color:rgba(255,255,255,.75);margin:0 auto}
@media (max-width:900px){.line{height:700vh!important}.line-mid{bottom:60px}}
.line-stage::before{content:"";position:absolute;inset:0;background:#050E0B;opacity:var(--bgcover,0);pointer-events:none}
#line3d{position:relative;z-index:1}

.mfg-shots{grid-template-columns:repeat(3,1fr)!important;align-items:start}
.shot-img,.shot:first-child .shot-img{aspect-ratio:auto!important;height:clamp(320px,34vw,500px)!important;max-height:none}
@media (max-width:900px){.mfg-shots{grid-template-columns:1fr!important}.shot-img,.shot:first-child .shot-img{height:380px!important}}
.line{height:1000vh!important}
canvas.line-photo{display:block}
@media (max-width:900px){.line{height:920vh!important}}
.line-sticky::after{background:linear-gradient(90deg,rgba(5,14,11,.62) 0%,rgba(5,14,11,.22) 42%,transparent 62%),linear-gradient(0deg,rgba(5,14,11,.75) 0%,transparent 32%)}
.scanbar{position:absolute;top:0;bottom:0;left:0;width:2px;margin-left:-1px;z-index:2;pointer-events:none;opacity:0;background:#C5F02C;box-shadow:0 0 18px 3px rgba(197,240,44,.55),0 0 60px 10px rgba(197,240,44,.18)}
.scanbar::before{content:"";position:absolute;top:0;bottom:0;right:2px;width:160px;background:linear-gradient(90deg,transparent,rgba(197,240,44,.07))}
.scanbar{display:none}
canvas.line-photo{filter:brightness(.84) contrast(1.08) saturate(.82)}
.grade{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,transparent 55%,rgba(4,18,15,.55) 100%),linear-gradient(180deg,transparent 55%,rgba(4,18,15,.85) 100%)}
.grade::after{content:"";position:absolute;inset:0;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.line-hud::before{content:"";position:absolute;left:-50vw;right:-50vw;bottom:0;height:260px;z-index:-1;background:linear-gradient(180deg,transparent,#050E0B 78%);pointer-events:none}
.line-note{opacity:0!important;transition:opacity .4s}
.line.st0 .line-note{opacity:.7!important}
.lt .mk{left:-2px;top:-2px;width:4px;height:4px;border:0;background:rgba(205,238,226,.9);animation:none!important}
.lt .mk::before,.lt .mk::after{display:none}
.lt.cur .mk{background:var(--lime)}
.lt .ld path{stroke:rgba(205,238,226,.6)}
.lt .card b{font-size:.68rem;letter-spacing:.16em}
.lt .card span{font-size:.875rem}
.lt .card small{font-size:.75rem}
.line{height:760vh!important}
@media (max-width:900px){.line{height:720vh!important}}
.line{height:360vh!important}
@media (max-width:900px){.line{height:350vh!important}}
.line.hold .lt .card small{display:none}
.line.hold .lt .card{row-gap:0}
