:root{
  --green:#78F409;
  --ink:#0a0a0a;
  --dark:#111;
  --hh:clamp(60px,6vw,86px);
  --px:5vw;
}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Poppins',system-ui,sans-serif;background:#fff;color:#000;line-height:1.4;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img,svg{display:block}
::selection{background:var(--green);color:#000}
.pl{display:inline-block;position:relative;width:9px;height:9px;margin-left:6px;vertical-align:middle}
.pl::before,.pl::after{content:"";position:absolute;background:currentColor;transition:transform .3s}
.pl::before{left:0;right:0;top:4px;height:1px}
.pl::after{top:0;bottom:0;left:4px;width:1px}

/* ───────── header ───────── */
#hd{position:fixed;inset:0 0 auto 0;height:var(--hh);z-index:60;display:flex;justify-content:space-between;align-items:stretch;font-size:13px;font-weight:500;color:#fff;transition:color .3s}
#hd[data-theme=light]{color:#000}
.hd-l,.hd-r{display:flex;align-items:stretch}
.mark{width:0;overflow:hidden;background:var(--green);display:flex;align-items:center;justify-content:center;transition:width .45s cubic-bezier(.7,0,.2,1)}
.mark img{height:48%;width:auto;min-width:0;flex:none}
#hd.scrolled .mark{width:var(--hh)}
.lang{position:relative;display:flex;align-items:center;padding:0 var(--px) 0 20px}
.lang button{display:flex;align-items:center;padding:8px 0}
.lang ul,.dd ul{position:absolute;top:calc(100% - 16px);left:12px;min-width:120px;background:var(--dark);color:#fff;padding:8px 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s;border:1px solid rgba(255,255,255,.12)}
.lang:hover ul,.lang:focus-within ul,.dd:hover ul{opacity:1;visibility:visible;transform:none}
.lang li a,.dd li a{display:block;padding:9px 18px;white-space:nowrap;opacity:.75;transition:opacity .2s,color .2s}
.lang li a:hover,.dd li a:hover,.lang li a.on{opacity:1;color:var(--green)}
.lang li a[aria-disabled]{opacity:.35;pointer-events:none}
.lang{padding-right:0}
.mnav{display:flex;align-items:center;gap:clamp(18px,2.4vw,36px);padding-right:clamp(18px,2.4vw,36px);transition:opacity .35s,transform .35s}
.mnav a{position:relative;transition:color .2s}
.mnav>a:hover,.dd>a:hover{color:var(--green)}
#hd[data-theme=light] .mnav>a:hover,#hd[data-theme=light] .dd>a:hover{color:#3d9400}
.dd{position:relative;height:100%;display:flex;align-items:center}
.dd:hover .pl::after{transform:scaleY(0)}
.menu-btn{display:none;align-items:center;gap:5px;padding:0 clamp(18px,2.4vw,36px);transition:color .2s}
.menu-btn:hover{color:var(--green)}
#hd[data-theme=light] .menu-btn:hover{color:#3d9400}
#hd.scrolled .menu-btn{display:flex}
#hd.scrolled .mnav{display:none}
.contact{display:flex;align-items:center;padding:0 clamp(20px,2.6vw,38px);background:#fff;color:#000;transition:background .3s,color .3s}
.contact:hover{background:var(--green)}
#hd[data-theme=light] .contact{background:#000;color:#fff}
#hd[data-theme=light] .contact:hover{background:var(--green);color:#000}
body.menu-open #hd{color:#fff}
body.menu-open #hd .contact{background:#fff;color:#000}

/* ───────── menu drawer ───────── */
:root{--cw:clamp(104px,10vw,144px)}
.contact{width:var(--cw);justify-content:center;padding:0}
.menu{position:fixed;inset:0;z-index:70;visibility:hidden;pointer-events:none}
.menu-back{position:absolute;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transition:opacity .45s ease}
.menu-panel{position:absolute;top:0;right:var(--cw);height:100%;width:51.5278rem;width:min(51.53 * 14.4px,calc(100% - var(--cw)));width:min(742px,calc(100vw - var(--cw)));overflow-y:auto;background:#fff;color:#000;padding:100px 72px 43px;box-shadow:0 25px 50px -12px rgba(0,0,0,.4);opacity:0;transition:opacity .45s ease}
body.menu-open .menu{visibility:visible;pointer-events:auto}
body.menu-open .menu-back,body.menu-open .menu-panel{opacity:1}
body.menu-open{overflow:hidden}
.menu-x{position:absolute;top:0;right:0;height:var(--hh);width:8.5vw;min-width:104px;padding:0;background:#000;color:#fff;font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:center;z-index:3;transition:background .25s,color .25s}
.menu-x:hover{background:var(--green);color:#000}
.menu-x svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6}
.sm-only{display:none}
.mp-row{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.mp-main{display:flex;flex-direction:column;gap:21.6px}
.mp-main>li{opacity:0;transform:translateX(-20px);transition:opacity .5s ease,transform .5s ease}
body.menu-open .mp-main>li{opacity:1;transform:none}
body.menu-open .mp-main>li:nth-child(1){transition-delay:.12s}
body.menu-open .mp-main>li:nth-child(2){transition-delay:.18s}
body.menu-open .mp-main>li:nth-child(3){transition-delay:.24s}
body.menu-open .mp-main>li:nth-child(4){transition-delay:.3s}
body.menu-open .mp-main>li:nth-child(5){transition-delay:.36s}
body.menu-open .mp-main>li:nth-child(6){transition-delay:.42s}
.h2l{display:block;font-size:clamp(25px,3vw,43.2px);font-weight:600;line-height:1.15;text-align:left;transition:color .2s}
a.h2l:hover{color:#3d9400}
.acc{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;cursor:default}
.acc svg{display:none;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .3s}
.sub{display:grid;gap:14.4px 0;padding-top:14.4px;font-size:clamp(17px,1.5vw,21.6px)}
.sub a{display:flex;flex-direction:column;transition:color .2s}
.sub a:hover{color:#3d9400}
.sub.svc{grid-template-columns:17.1vw 1fr}
.sub.sec{grid-template-columns:17.1vw 1fr}
.sub.svc a span{margin-top:2px;font-size:clamp(11px,1vw,14.4px);color:#c4c4c4;line-height:1.45;max-width:240px}
.mp-contact{display:flex;flex-direction:column;gap:6px;margin-top:26px;font-size:14.4px;font-weight:700}
.mp-contact a{text-decoration:underline;text-underline-offset:3px;transition:color .2s}
.mp-contact a:hover{color:#3d9400}
.mp-soc{display:flex;flex-direction:column;gap:17px;padding-top:12px;min-width:119px}
.mp-soc a{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #000;padding-bottom:14px;font-size:14.4px;font-weight:600;transition:color .2s,border-color .2s}
.mp-soc a:hover{color:#3d9400;border-color:#3d9400}
.mp-soc svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6}
@media (max-width:1023px){
  .menu-panel{right:0;width:100%;padding:24px;padding-top:86px}
  .menu-x{width:var(--hh);padding:0}
  .lg-only{display:none}.sm-only{display:block}
  .mp-row{flex-direction:column;gap:46px}
  .mp-main{width:100%;gap:20px}
  .acc svg{display:block}
  .acc[aria-expanded=true] svg{transform:rotate(180deg)}
  .grp .sub{display:none}
  .grp .sub.open{display:grid;grid-template-columns:1fr 1fr}
  .mp-soc{width:100%;flex-direction:row;padding:0}
  .mp-soc li{flex:1}
}
@media (max-width:560px){.grp .sub.open{grid-template-columns:1fr}}

/* ───────── dark wrapper + particle stage ───────── */
.dark{position:relative;background:var(--dark);color:#fff}
.stage{position:sticky;top:0;height:100vh;height:100svh;margin-bottom:-100vh;margin-bottom:-100svh;z-index:0;pointer-events:none}
.stage canvas{width:100%;height:100%;display:block}
.dark>section{position:relative;z-index:1}

.bul{position:relative;padding-left:20px}
.bul::before{content:"";position:absolute;left:0;top:.5em;width:7px;height:7px;background:var(--green)}
.sq{position:relative;padding-left:26px;font-size:clamp(15px,1.15vw,17px);font-weight:500}
.sq::before{content:"";position:absolute;left:0;top:50%;width:13px;height:13px;margin-top:-6px;background:var(--green)}
.sq.w::before{background:#fff}

/* hero */
.hero{padding:76vh 0 0;min-height:2118px}
.hero>*:not(h1):not(.hero-p){margin-left:var(--px);margin-right:var(--px)}
.hero h1{margin-left:12.7vw;max-width:56vw;font-size:clamp(34px,5.5vw,100px);font-weight:600;line-height:1.09}
.hero h1 .ln{display:inline}
.hero-p{position:absolute;left:68.4vw;top:calc(76vh + 281px);width:26.6vw;font-size:clamp(14px,1.375vw,20px);line-height:1.27;color:rgba(255,255,255,.8)}
.awards-h{margin-top:259px;max-width:56vw;font-size:clamp(28px,3.75vw,68px);font-weight:600;line-height:1.07;position:relative}
.awards{margin-top:clamp(70px,11.4vw,205px);display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid rgba(255,255,255,.2);padding-top:30px}
.awards h3{font-size:12.6px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;margin-bottom:35px}
.awards article svg{width:42px;height:42px;margin-bottom:20px;color:#fff}
.awards .num{font-size:clamp(48px,8vw,140px);font-weight:600;line-height:1;letter-spacing:-.03em}
.notes{margin-top:34px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;display:grid;grid-template-columns:repeat(5,1fr)}
.notes li{grid-column:1;margin-bottom:10px;max-width:200px;color:rgba(255,255,255,.85)}

/* services */
.services{display:grid;grid-template-columns:47.15vw 1fr;padding:82px var(--px) 0;align-items:start;min-height:3105px}
.svc-l{position:sticky;top:calc(var(--hh) + 3vh);padding-top:18px;max-width:365px}
.svc-l h2{margin-bottom:24px;font-weight:500}
.svc-l p{font-size:clamp(14px,1.375vw,20px);line-height:1.27;color:rgba(255,255,255,.7)}
.cards{padding-bottom:225px}
.card{position:sticky;top:calc(var(--hh) + 1vh + var(--i) * 58px);display:flex;flex-direction:column;width:30.4vw;max-width:520px;height:min(34vw,540px);min-height:430px;margin-bottom:210px;padding:3vw 2.8vw 2.4vw;background:#fff;color:#000;transform-origin:50% 0;transform:scale(calc(1 - var(--dim,0) * .04));filter:brightness(calc(1 - var(--dim,0) * .13));transition:filter .1s}
.card .ct{display:flex;justify-content:space-between;align-items:flex-start}
.card h3{font-size:clamp(26px,2.82vw,50px);font-weight:800;letter-spacing:-.025em;line-height:.95}
.card h3 .u{font-weight:800;background:var(--green);padding:0 .14em .04em;margin-right:.14em;border-radius:3px;display:inline-block}
.card h3 .dot{color:var(--green);-webkit-text-stroke:0}
.card .ar{width:22px;height:22px;fill:none;stroke:#000;stroke-width:1.6;transition:transform .35s}
.card:hover .ar{transform:translate(4px,-4px)}
.card .sub{margin-top:14px;font-size:clamp(14px,1.25vw,18px);color:#6d6d6d}
.card p{margin-top:auto;font-size:clamp(12.5px,1.125vw,16.2px);line-height:1.37;color:#5d5d5d;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}

/* brands */
.brands{padding:clamp(80px,12vh,140px) 0 0;min-height:780px}
.br-top{position:relative;padding:0 var(--px);display:flex;justify-content:space-between;align-items:flex-start;gap:30px}
.br-top h2{font-weight:500}
.br-top p{width:27vw;margin-right:12vw;font-size:clamp(14px,1.375vw,20px);line-height:1.27;color:rgba(255,255,255,.85)}
.grid{overflow:hidden;margin-top:clamp(70px,9vw,130px);border-top:1px solid rgba(255,255,255,.18)}
.row{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid rgba(255,255,255,.18)}
.row.r2{margin-left:calc(100vw / 14 * -1);margin-right:calc(100vw / 14 * -1);grid-template-columns:repeat(8,1fr)}
.row.r2 .b{border-left:1px solid rgba(255,255,255,.18)}
.row.r1 .b{border-left:1px solid rgba(255,255,255,.18)}
.b{height:clamp(110px,12vw,170px);display:flex;align-items:center;justify-content:center;font-size:clamp(16px,1.6vw,24px);letter-spacing:-.01em;transition:color .3s,background .3s;cursor:default}
.b:hover{color:var(--green)}
.b1{font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:clamp(13px,1.3vw,19px)}
.b2{font-weight:800;letter-spacing:.14em;font-size:clamp(14px,1.4vw,21px)}
.b3{font-weight:500;font-style:italic}
.b4{font-weight:600;letter-spacing:-.04em}
.b5{font-weight:700;color:#fff}
.b6{font-weight:400;letter-spacing:.06em}
.b7{font-weight:800;letter-spacing:-.02em}

/* ───────── projects ───────── */
.projects{background:#fff;padding:clamp(94px,9.9vw,142px) 5.5vw clamp(78px,7.7vw,127px);position:relative;z-index:2}
.pj-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(30px,3vw,48px)}
.projects .sq::before{background:#000}
.projects .sq{font-weight:500}
.btn-o{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(0,0,0,.35);padding:12px 22px;font-size:14px;font-weight:500;transition:background .25s,color .25s,border-color .25s}
.btn-o svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;transition:transform .3s}
.btn-o:hover{background:#000;color:#fff;border-color:#000}
.btn-o:hover svg{transform:translateX(4px)}
.pj-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:2vw;row-gap:clamp(40px,4vw,64px)}
.pj{display:block}
.pj .shot{position:relative;overflow:hidden;aspect-ratio:1.7/1;background:#ececee}
.pj .shot>*{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.pj:hover .shot>*{transform:scale(1.04)}
.pj .meta{display:flex;justify-content:space-between;align-items:center;margin-top:16px;font-size:12px;color:#666}
.pj .ar{width:15px;height:15px;fill:none;stroke:var(--green);stroke-width:2;transition:transform .3s}
.pj:hover .ar{transform:translate(3px,3px)}
.pj h3{margin-top:12px;font-size:clamp(20px,2vw,28.8px);font-weight:600;line-height:1.25;max-width:90%}
.pj small{display:block;margin-top:4px;font-size:clamp(12px,.95vw,14px);color:#555}

/* mock shots */
.shot::after{content:"";position:absolute;inset:0;pointer-events:none}
.s-web,.s-dash,.s-phone{background:linear-gradient(135deg,#e6e8ea,#f4f4f5)}
.s-web .win{position:absolute;left:8%;right:8%;top:12%;bottom:-6%;background:#fff;border-radius:6px 6px 0 0;box-shadow:0 8px 28px rgba(0,0,0,.18);overflow:hidden}
.win .bar{height:7%;min-height:10px;background:#f1f1f2;display:flex;align-items:center;gap:4px;padding-left:8px}
.win .bar i{width:5px;height:5px;border-radius:50%;background:#c9c9cc}
.win .nv{height:9%;display:flex;align-items:center;justify-content:space-between;padding:0 7%}
.win .nv b{width:16%;height:38%;background:#0a0a0a;border-radius:2px}
.win .nv span{width:10%;height:24%;background:var(--green);border-radius:2px}
.win .hr{margin:0 3% ;height:44%;border-radius:4px;position:relative;overflow:hidden;background:linear-gradient(120deg,#0a0a0a,#1c2a12)}
.win .hr::before{content:"";position:absolute;left:7%;top:20%;width:42%;height:14%;background:#fff;border-radius:2px;box-shadow:0 18px 0 -2px rgba(255,255,255,.7),0 34px 0 -3px rgba(255,255,255,.35)}
.win .hr::after{content:"";position:absolute;right:-6%;top:-10%;width:48%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--green),transparent 68%);opacity:.9}
.g2 .hr{background:linear-gradient(120deg,#16260a,#78F409 140%)}
.g3 .hr{background:linear-gradient(120deg,#e2e5e8,#bfc5cb)}
.g3 .hr::before{background:#0a0a0a;box-shadow:0 18px 0 -2px rgba(0,0,0,.6),0 34px 0 -3px rgba(0,0,0,.3)}
.win .tl{display:flex;gap:2.5%;padding:3% 3% 0}
.win .tl i{flex:1;height:34px;background:#f1f1f2;border-radius:3px;border-top:3px solid var(--green)}
.s-phone .ph{position:absolute;left:50%;top:9%;width:26%;aspect-ratio:9/18.5;transform:translateX(-50%);background:#0a0a0a;border-radius:10% / 5%;padding:2.2%;box-shadow:0 10px 30px rgba(0,0,0,.28)}
.s-phone .ph i{display:block;width:100%;height:100%;border-radius:8% / 4%;background:#fff;position:relative;overflow:hidden}
.ph i::before{content:"";position:absolute;left:8%;right:8%;top:8%;height:26%;border-radius:6px;background:linear-gradient(135deg,#0a0a0a,#26391a)}
.ph i::after{content:"";position:absolute;left:8%;right:8%;top:40%;height:9%;border-radius:4px;background:#ececee;box-shadow:0 22px 0 #ececee,0 44px 0 #ececee,0 66px 0 var(--green)}
.s-phone .c1,.s-phone .c2{position:absolute;width:20%;background:#fff;border-radius:6px;box-shadow:0 6px 18px rgba(0,0,0,.14);padding:2%}
.c1{left:14%;top:34%;height:22%}.c2{right:14%;top:22%;height:26%}
.c1::before,.c2::before{content:"";display:block;height:6px;width:60%;background:#0a0a0a;border-radius:2px;margin:6% 0 8%}
.c1::after,.c2::after{content:"";display:block;height:40%;background:linear-gradient(90deg,var(--green) 55%,#e6e6e8 55%);border-radius:3px}
.p2{background:linear-gradient(135deg,#0a0a0a,#1d2c12)}
.p2 .ph{background:#fff}
.s-dash{background:#dfe7f2}
.s-dash .win{background:#fff;display:flex;flex-direction:column}
.dash{display:flex;flex:1;min-height:0}
.dash .sd{width:18%;background:#0a0a0a}
.dash .mn{flex:1;padding:4%}
.dash .kp{display:flex;gap:3%}
.dash .kp i{flex:1;height:34px;background:#f1f1f2;border-radius:3px;border-left:3px solid var(--green)}
.dash .bars{margin-top:5%;height:48%;display:flex;align-items:flex-end;gap:3%}
.dash .bars i{flex:1;background:#0a0a0a;border-radius:2px 2px 0 0}
.dash .bars i:nth-child(odd){background:var(--green)}

/* ───────── cta ───────── */
.cta{position:relative;z-index:2;background:var(--dark);color:#fff;padding:clamp(95px,9.4vw,135px) var(--px) clamp(60px,6vw,90px);min-height:720px;overflow:hidden}
.cta canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.cta h2{position:relative;margin-left:10.7vw;max-width:46vw;font-size:clamp(34px,5.5vw,100px);font-weight:600;line-height:1.09}
.cta-r{position:absolute;left:66vw;top:calc(100% - clamp(250px,25vw,330px));width:28vw;z-index:1}
.cta-r p{font-size:clamp(14px,1.375vw,20px);line-height:1.27;color:rgba(255,255,255,.85)}
.cta-act{display:flex;align-items:center;gap:22px;margin-top:22px;flex-wrap:wrap}
.btn-w{display:inline-flex;align-items:center;gap:14px;border:1px solid #fff;padding:13px 22px;font-size:14px;font-weight:500;transition:background .25s,color .25s,border-color .25s}
.btn-w svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;transition:transform .3s}
.btn-w:hover{background:var(--green);color:#000;border-color:var(--green)}
.btn-w:hover svg{transform:translateX(4px)}
.mail{font-size:13px;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:2px;transition:color .2s,border-color .2s}
.mail:hover{color:var(--green);border-color:var(--green)}

/* ───────── footer ───────── */
footer{position:relative;z-index:2;background:#fff;color:#000;padding-top:11.05vw}
.f-lead{margin:0 5vw;font-size:3vw;font-weight:600;line-height:1.167;color:#b0b0b0;max-width:none}
.f-lead span{color:#000}
.f-marq{margin-top:3vw;border-top:1px solid #c9c9c9;border-bottom:1px solid #c9c9c9;overflow:hidden;white-space:nowrap;padding:1.55vw 0}
.f-track{display:inline-flex;gap:1.95vw;animation:mq 40s linear infinite}
.f-track span{font-size:8vw;font-weight:600;line-height:122.4px;line-height:8.5vw;letter-spacing:-.05em;color:#111}
.f-track span:nth-child(odd){color:#fff;text-shadow:-1px -1px 0 #111,1px -1px 0 #111,-1px 1px 0 #111,1px 1px 0 #111,0 0 0 #111;-webkit-text-stroke:0}
@keyframes mq{to{transform:translateX(-50%)}}
.f-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:2.22vw;padding:9vw 5.55vw}
.f-c1{display:grid;grid-template-columns:11.6vw 1fr;gap:1.95vw;border-right:1px solid #f0f0f0}
.f-links,.f-soc{display:flex;flex-direction:column;gap:14.4px;font-size:1.125vw;line-height:1.5}
.f-links a,.f-soc a{display:flex;padding:3.6px 0;transition:color .2s}
.f-links a{font-weight:700}
.f-soc a{justify-content:space-between;align-items:center;gap:10px;font-weight:400;width:max-content;min-width:150px}
.f-soc svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4}
.f-links a:hover,.f-soc a:hover,.f-loc a:hover{color:#3d9400}
.f-loc{display:flex;gap:2.22vw;padding-right:2vw}
.f-code{flex:none;width:9vw;font-size:3.75vw;font-weight:600;line-height:1.067}
.f-info{display:flex;flex-direction:column;gap:14.4px}
.f-info h3{font-size:2vw;font-weight:600;line-height:1.25;margin-bottom:14.4px}
.f-info a{display:block;padding:3.6px 0;font-size:1.125vw;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.f-info address{font-style:normal;font-size:1.125vw;line-height:1.5;color:#7a7a7a;text-transform:uppercase;max-width:190px}
.f-big{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;padding:8.6vw 5vw;border-top:1px solid #000}
.f-big img{width:63.75vw;height:auto;display:block}
.f-big ul{display:flex;gap:2.22vw;font-size:1.125vw;margin-left:auto;flex:none}
.f-big a{display:block;padding:3.6px 0;text-decoration:underline;text-underline-offset:3px;transition:color .2s}
.f-big a:hover{color:#3d9400}

.more{position:relative;z-index:2;background:#000;color:#fff;height:25.5vw;min-height:260px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.more canvas{position:absolute;inset:0;width:100%;height:100%}
.more a{position:relative;font-size:clamp(22px,3vw,43.2px);font-weight:600;text-align:center;padding:0 var(--px);transition:color .3s}
.more a span{color:#6d6d6d;transition:color .3s}
.more a:hover{color:var(--green)}
.more a:hover span{color:var(--green)}

/* reveal */
.rv{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}

/* ───────── responsive ───────── */
@media (max-width:1100px){
  .mnav{display:none}
  .menu-btn{display:flex}
}
@media (max-width:900px){
  :root{--px:6vw}
  .hero{padding-top:62vh;min-height:0;padding-bottom:60px}
  .hero h1{margin-left:0;max-width:92vw;font-size:clamp(34px,9.5vw,64px)}
  .hero-p{position:static;width:auto;margin:36px 0 0 0;font-size:16px}
  .awards-h{margin-top:90px;max-width:none;font-size:clamp(28px,7.6vw,52px)}
  .awards{grid-template-columns:repeat(2,1fr);row-gap:44px}
  .awards article svg{width:42px;height:42px;margin-bottom:20px;color:#fff}
.awards .num{font-size:clamp(56px,17vw,96px)}
  .notes{grid-template-columns:1fr;margin-top:40px}
  .notes li{max-width:none}
  .services{display:block;min-height:0;margin-top:90px}
  .svc-l{position:static;max-width:none;margin-bottom:46px}
  .svc-l p{font-size:16px}
  .cards{padding:0}
  .card{width:100%;max-width:none;height:auto;min-height:340px;padding:26px 24px 24px;margin-bottom:22px;top:calc(var(--hh) + 10px + var(--i) * 46px)}
  .card h3{font-size:30px}
  .card p{font-size:14px;-webkit-line-clamp:7;margin-top:30px}
  .brands{min-height:0;padding-bottom:20px}
  .br-top{flex-direction:column}
  .br-top p{width:auto;margin:0;font-size:16px}
  .row{grid-template-columns:repeat(3,1fr)}
  .row.r1,.row.r2{grid-template-columns:repeat(3,1fr);margin-left:0;margin-right:0}
  .row.r1 .b:nth-child(n+7),.row.r2 .b:nth-child(n+7){display:none}
  .row .b:nth-child(1),.row .b:nth-child(4){border-left:0}
        .row.r1 .b:nth-child(4),.row.r2 .b:nth-child(4){border-top:1px solid rgba(255,255,255,.18)}
    .row.r1 .b:nth-child(5),.row.r1 .b:nth-child(6),.row.r2 .b:nth-child(5),.row.r2 .b:nth-child(6){border-top:1px solid rgba(255,255,255,.18)}
  .pj-grid{grid-template-columns:1fr}
  .pj-head{flex-wrap:wrap;gap:16px}
  .cta{min-height:0;padding-bottom:70px}
  .cta h2{margin-left:0;max-width:90vw;font-size:clamp(34px,9.5vw,64px)}
  .cta-r{position:static;width:auto;margin-top:calc(34vw + 40px)}
  .cta-r p{font-size:16px}
  footer{padding-top:90px}
  .f-lead{font-size:clamp(24px,6.4vw,40px);margin:0 6vw}
  .f-marq{margin-top:28px;padding:10px 0}
  .f-track span{font-size:16vw;line-height:1.2}
  .f-cols{grid-template-columns:1fr;gap:44px;padding:60px 6vw}
  .f-c1{border:0;grid-template-columns:1fr 1fr}
  .f-links,.f-soc,.f-info a,.f-info address,.f-big ul{font-size:15px}
  .f-code{font-size:46px;width:90px}
  .f-info h3{font-size:22px}
  .f-loc{padding:0}
  .f-big{flex-direction:column;padding:60px 6vw}
  .f-big img{width:100%}
  .f-big ul{margin:0;flex-wrap:wrap}
  .more{height:260px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .f-track{animation:none}
  .rv{opacity:1;transform:none;transition:none}
}

/* polish */
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--green);color:#000;padding:10px 16px;font-size:13px;font-weight:600;transition:top .2s}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.card,.pj,.btn-o,.btn-w{will-change:transform}
.pj .shot{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}
.pj h3{transition:color .25s}
.pj:hover h3{color:#2c7a00}
.hero h1,.cta h2{text-wrap:balance}
.card{box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
@media(max-width:900px){.awards article p{max-width:none}}

/* contact page (frank.com.tr style) */
body.inner{background:#000}
body.ctpage{background:#fff}
.ct-hero{background:#000;color:#fff;min-height:100vh;display:flex;align-items:center;padding:calc(var(--hh) + 40px) var(--px) clamp(60px,8vw,110px);position:relative;z-index:1}
.ct-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(40px,6vw,96px);width:100%;max-width:1400px;margin:0 auto;align-items:start}
.ct-hero-l{display:flex;flex-direction:column}
.ct-eyebrow{font-size:15px;font-weight:600;color:rgba(255,255,255,.75);margin:0 0 20px;text-transform:uppercase;letter-spacing:.04em}
.ct-hero-l h1{font-size:clamp(44px,5.5vw,76px);font-weight:700;line-height:1.05;letter-spacing:-.03em;margin:0 0 22px;color:#fff}
.ct-lead{font-size:clamp(18px,1.6vw,25px);font-weight:400;line-height:1.35;color:rgba(255,255,255,.85);margin:0 0 32px;max-width:520px}
.ct-lead span{color:var(--green);font-weight:600}
.ct-hero-mail{display:inline-block;font-size:clamp(18px,1.5vw,24px);font-weight:400;color:#fff;text-decoration:underline;text-underline-offset:6px;transition:color .25s,text-underline-offset .25s}
.ct-hero-mail:hover{color:var(--green);text-underline-offset:8px}

@keyframes ctFadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.ct-fade{opacity:0;animation:ctFadeUp .75s cubic-bezier(.22,1,.36,1) forwards}
.ct-d1{animation-delay:.05s}
.ct-d2{animation-delay:.15s}
.ct-d3{animation-delay:.25s}
.ct-d4{animation-delay:.35s}
.ct-d5{animation-delay:.45s}

.ct-hero-r #ctForm{display:flex;flex-direction:column;gap:20px;width:100%}
.ct-fields{display:flex;flex-direction:column;gap:18px}
.fld{display:block;position:relative;width:100%}
.fld input{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.25);color:#fff;font:500 15px 'Poppins',sans-serif;padding:14px 0 10px;outline:0;border-radius:0;transition:border-color .25s}
.fld input::placeholder{color:rgba(255,255,255,.55);font-weight:400}
.fld input:focus{border-bottom-color:var(--green)}
.fld.bad input{border-bottom-color:#ff5a4d}
.err{display:none;font-size:12px;color:#ff7a6e;margin-top:6px;font-weight:500}
.fld.bad .err{display:block}
.chk{display:flex;align-items:flex-start;gap:14px;margin-top:14px;cursor:pointer;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.85)}
.chk input{position:absolute;opacity:0;pointer-events:none}
.chk i{flex:none;width:20px;height:20px;border:1px solid rgba(255,255,255,.6);position:relative;transition:background .2s,border-color .2s;margin-top:2px}
.chk input:checked+i{background:var(--green);border-color:var(--green)}
.chk input:checked+i::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #000;border-width:0 2px 2px 0;transform:rotate(45deg)}
.chk a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.chk a:hover{color:var(--green)}
.chk-err{display:none;font-size:12px;color:#ff7a6e;margin-top:6px}
.chk-err.bad{display:block}
.send{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:#1a1a1a;color:#fff;border:1px solid rgba(255,255,255,.12);padding:18px 48px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;align-self:flex-start;margin-top:10px;transition:background .3s,color .3s,border-color .3s}
.send svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .3s}
.send:hover{background:var(--green);color:#000;border-color:var(--green)}
.send:hover svg{transform:translateX(4px)}
.ok{margin-top:20px;padding:16px 20px;border-left:3px solid var(--green);background:rgba(120,244,9,.08);color:#fff;font-size:14px}

/* FAQ section (Light) */
.ct-faq{background:#fff;color:#000;padding:clamp(80px,9vw,140px) var(--px);position:relative;z-index:1}
.ct-faq-c{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:clamp(40px,5vw,64px)}
.ct-faq-h{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:clamp(24px,4vw,64px);align-items:start}
.ct-faq-tag{display:inline-flex;align-items:center;gap:12px;font-size:15px;font-weight:700;color:#111;text-transform:uppercase;letter-spacing:.04em}
.ct-faq-tag .sq-dot{width:8px;height:8px;background:var(--green);display:inline-block;flex:none}
.ct-faq-h h2{font-size:clamp(30px,3.6vw,52px);font-weight:600;line-height:1.12;letter-spacing:-.02em;margin:0;color:#111}
.ct-faq-list{display:flex;flex-direction:column;border-bottom:1px solid rgba(0,0,0,.12)}
.ct-fq{border-top:1px solid rgba(0,0,0,.12)}
.ct-fq button{width:100%;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:26px 0;background:none;border:0;text-align:left;cursor:pointer;color:#111;transition:color .25s}
.ct-fq button:hover{color:#2c7a00}
.ct-fq button h3{font-size:clamp(17px,1.4vw,21px);font-weight:600;line-height:1.35;margin:0;color:inherit}
.ct-fq .ct-ico{width:24px;height:24px;flex:none;display:flex;align-items:center;justify-content:center;margin-top:2px}
.ct-fq .ct-ico svg{width:20px;height:20px;fill:none;stroke:#3d9400;stroke-width:2;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.ct-fq.open .ct-ico svg{transform:rotate(45deg)}
.ct-fa{display:grid;grid-template-rows:0fr;transition:grid-template-rows .38s ease}
.ct-fq.open .ct-fa{grid-template-rows:1fr}
.ct-fa>div{overflow:hidden}
.ct-fa p{margin:0;padding-bottom:28px;font-size:clamp(14.5px,1.1vw,16.5px);line-height:1.65;color:#555;max-width:820px}

/* Articles / Blog Section (Light) */
.ct-art{background:#fff;color:#000;padding:clamp(40px,4vw,60px) var(--px) clamp(80px,8vw,120px);border-top:1px solid #111;position:relative;z-index:1}
.ct-art-c{max-width:1400px;margin:0 auto}
.ct-art-track{display:flex;gap:40px;overflow-x:auto;padding:20px 0 30px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab}
.ct-art-track.drag{cursor:grabbing;user-select:none;scroll-snap-type:none}
.ct-art-track::-webkit-scrollbar{display:none}
.ct-art-card{flex:0 0 clamp(480px,46vw,680px);display:flex;flex-direction:row;align-items:stretch;gap:32px;border-right:1px solid #eee;padding-right:40px;scroll-snap-align:start;text-decoration:none;color:#111;transition:transform .3s}
.ct-art-card:hover{transform:translateY(-4px)}
.ct-art-card:last-child{border-right:0}
.ct-art-body{display:flex;flex-direction:column;justify-content:space-between;flex:1;min-height:220px}
.ct-art-tag{font-size:13.5px;font-weight:500;color:#666;margin:0 0 10px}
.ct-art-title{font-size:clamp(19px,1.55vw,23px);font-weight:700;line-height:1.25;margin:0 0 24px;transition:color .25s;color:#111}
.ct-art-card:hover .ct-art-title{color:#2c7a00}
.ct-art-link{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:#2c7a00;border-bottom:1px solid #2c7a00;padding-bottom:3px;align-self:flex-start;transition:gap .25s}
.ct-art-link svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .25s}
.ct-art-card:hover .ct-art-link{gap:12px}
.ct-art-card:hover .ct-art-link svg{transform:translate(3px,-3px)}
.ct-art-visual{width:220px;height:220px;flex-shrink:0;background:#0d0d0d;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 10px 30px -12px rgba(0,0,0,.25)}

/* Architectural Footer Sketches */
.f-side{display:flex;flex-direction:column;gap:14px;width:9vw;min-width:90px}
.f-sketch{width:100%;max-width:80px;opacity:.85;transition:opacity .25s}
.f-sketch svg{width:100%;height:auto;display:block}
.f-loc:hover .f-sketch{opacity:1}

@media(max-width:1024px){
  .ct-hero-grid{grid-template-columns:1fr;gap:48px}
  .ct-faq-h{grid-template-columns:1fr;gap:20px}
  .ct-art-card{flex-direction:column;flex:0 0 85vw;border-right:0;border-bottom:1px solid #eee;padding-right:0;padding-bottom:36px}
  .ct-art-visual{width:100%;height:200px;order:-1}
}

body.inner #hd .mark{width:var(--hh)}
body.inner #hd .menu-btn{display:flex}
body.inner #hd .mnav{display:none}
@media(min-width:1101px){body.inner #hd .mnav{display:flex}body.inner #hd .menu-btn{display:none}}

/* contact drawer */
.cp{position:fixed;inset:0;z-index:80;visibility:hidden;pointer-events:none}
.cp.open{visibility:visible;pointer-events:auto}
.cp-back{position:absolute;inset:0;background:rgba(0,0,0,.25);opacity:0;transition:opacity .45s ease}
.cp.open .cp-back{opacity:1}
.cp-panel{position:absolute;top:0;right:0;height:100%;width:100%;overflow-y:auto;background:#fff;color:#000;padding:32px 24px;transform:translateX(100%);transition:transform .55s cubic-bezier(.7,0,.2,1);box-shadow:0 25px 50px -12px rgba(0,0,0,.35)}
.cp.open .cp-panel{transform:none}
@media(min-width:1024px){.cp-panel{width:66.667%;padding:48px}}
@media(min-width:1280px){.cp-panel{width:40%}}
.cp-x{position:absolute;top:0;right:0;width:var(--hh);height:var(--hh);background:#000;display:flex;align-items:center;justify-content:center;transition:background .25s}
.cp-x svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.6;transition:transform .35s,stroke .25s}
.cp-x:hover{background:var(--green)}
.cp-x:hover svg{stroke:#000;transform:rotate(90deg)}
.cp h3{font-size:clamp(24px,2vw,28.8px);font-weight:600;line-height:1.25;padding-right:90px}
.cp-sub{margin-top:30px;font-size:clamp(16px,1.375vw,19.8px);font-weight:600;line-height:1.3;color:#b0b0b0}
.cp-links{display:flex;gap:28px;flex-wrap:wrap;margin-top:26px;font-size:14.4px;font-weight:600}
.cp-links a{border-bottom:1px solid #000;transition:color .2s,border-color .2s}
.cp-links a:hover{color:#3d9400;border-color:#3d9400}
.cp .cform{margin-top:28px}
.cp .fld input{color:#000;border-bottom-color:#d1d1d1;font-size:14.4px;padding:18px 0 14px}
.cp .fld input::placeholder{color:#5e5e5e}
.cp .fld input:focus{border-color:#000}
.cp .err{color:#d6291c}
.cp .fld.bad input{border-color:#d6291c}
.cp .chk{margin-top:26px;font-size:14.4px}
.cp .chk i{border-color:#000}
.cp .chk input:checked+i{background:#000;border-color:#000}
.cp .chk input:checked+i::after{border-color:#fff}
.cp .send{background:#000;color:#fff;margin-top:26px;padding:19px 34px}
.cp .send:hover{background:var(--green);color:#000}
.cp .ok{background:#f2f9ea;color:#000}
body.cp-open{overflow:hidden}

/* keep copy crisp above the particle field */
.dark .hero h1,.dark .hero-p,.dark .awards-h,.dark .awards article,.dark .notes li,.dark .svc-l,.dark .br-top,.cta h2,.cta-r{text-shadow:0 0 14px rgba(17,17,17,.95),0 0 32px rgba(17,17,17,.85)}
.dark .brands .b{text-shadow:0 0 12px rgba(17,17,17,.9)}

/* mega panels */
.mnav .trig{position:relative;display:flex;align-items:center;height:100%}
.mnav .trig::after{content:"";position:absolute;left:0;right:0;bottom:calc(50% - 15px);height:1px;background:currentColor;opacity:0;transition:opacity .25s}
#hd.mega-open .trig.on::after{opacity:1}
#hd.mega-open .trig.on .pl::after{transform:scaleY(0)}
#hd.mega-open{background:#fff;color:#000;backdrop-filter:blur(24px)}
#hd.mega-open .contact{background:#000;color:#fff}
#hd{transition:color .5s,background .5s}
.mega{position:absolute;left:0;right:0;top:100%;background:#fff;color:#000;visibility:hidden;opacity:0;transform:translateY(-6px);transition:opacity .35s ease,transform .35s ease,visibility 0s linear .35s;box-shadow:0 30px 40px -30px rgba(0,0,0,.25)}
#hd.mega-open .mega{visibility:visible;opacity:1;transform:none;transition-delay:0s}
.mg{display:none;padding:3vw 6vw 6vw}
.mg.on{display:block;animation:mgIn .4s ease both}
@keyframes mgIn{from{opacity:0}to{opacity:1}}
.mg-h{display:inline-flex;align-items:center;gap:10px;position:relative;padding-left:15px;font-size:14px;font-weight:700;margin-bottom:27px}
.mg-h::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;background:var(--green)}
.mg-h svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.mg-grid{display:grid;grid-template-columns:5fr 7fr;gap:4.45vw;align-items:start}
.mi{display:flex;flex-direction:column;border-bottom:1px solid #f0f0f0;padding:14.4px 0}
.mi .mt{font-size:2.25vw;font-weight:700;line-height:1.15;letter-spacing:-.03em;transition:color .3s}
.mi .mt .u{font-weight:800;margin-right:.18em}
.mi .ms{margin-top:4px;font-size:14.4px;font-weight:500}
.mi:hover .mt{color:#3d9400}
.mi.sc{flex-direction:row;align-items:center;justify-content:space-between;gap:20px}
.mi.sc svg{width:28px;height:28px;flex:none;fill:none;stroke:#3d9400;stroke-width:2;opacity:0;transform:translateX(-8px);transition:all .3s}
.mi.sc:hover svg{opacity:1;transform:none}
.mg-art{display:flex;justify-content:center;padding-top:.3vw}
.mgmark{position:relative;width:32.1vw;max-width:462px;aspect-ratio:1}
.mgmark i{position:absolute;background:var(--green);transition:left .6s cubic-bezier(.22,1,.36,1),top .6s cubic-bezier(.22,1,.36,1),width .6s cubic-bezier(.22,1,.36,1),height .6s cubic-bezier(.22,1,.36,1),background-color .45s}
.mgmark{--u:calc(100% / 48)}
.mgmark[data-m=full] i:nth-child(1){left:calc(var(--u)*4);top:calc(var(--u)*4);width:calc(var(--u)*20);height:calc(var(--u)*20)}
.mgmark[data-m=full] i:nth-child(2){left:calc(var(--u)*24);top:calc(var(--u)*4);width:calc(var(--u)*20);height:calc(var(--u)*20)}
.mgmark[data-m=full] i:nth-child(3){left:calc(var(--u)*4);top:calc(var(--u)*24);width:calc(var(--u)*20);height:calc(var(--u)*20)}
.mgmark[data-m=full] i:nth-child(4){left:calc(var(--u)*24);top:calc(var(--u)*24);width:calc(var(--u)*20);height:calc(var(--u)*20)}
.mgmark[data-m=pulse] i:nth-child(1){left:calc(var(--u)*4);top:calc(var(--u)*30);width:calc(var(--u)*9);height:calc(var(--u)*14);background:#e8e8e8}
.mgmark[data-m=pulse] i:nth-child(2){left:calc(var(--u)*14);top:calc(var(--u)*22);width:calc(var(--u)*9);height:calc(var(--u)*22);background:#cfcfcf}
.mgmark[data-m=pulse] i:nth-child(3){left:calc(var(--u)*24);top:calc(var(--u)*26);width:calc(var(--u)*9);height:calc(var(--u)*18);background:#f4f4f4}
.mgmark[data-m=pulse] i:nth-child(4){left:calc(var(--u)*34);top:calc(var(--u)*8);width:calc(var(--u)*10);height:calc(var(--u)*36)}
.mgmark[data-m=design] i:nth-child(1){left:calc(var(--u)*4);top:calc(var(--u)*4);width:calc(var(--u)*18);height:calc(var(--u)*28)}
.mgmark[data-m=design] i:nth-child(2){left:calc(var(--u)*22);top:calc(var(--u)*4);width:calc(var(--u)*22);height:calc(var(--u)*14);background:#cfcfcf}
.mgmark[data-m=design] i:nth-child(3){left:calc(var(--u)*34);top:calc(var(--u)*18);width:calc(var(--u)*10);height:calc(var(--u)*26);background:#e8e8e8}
.mgmark[data-m=design] i:nth-child(4){left:calc(var(--u)*4);top:calc(var(--u)*32);width:calc(var(--u)*30);height:calc(var(--u)*12);background:#f4f4f4}
.mgmark[data-m=suite] i:nth-child(1){left:calc(var(--u)*4);top:calc(var(--u)*4);width:calc(var(--u)*19);height:calc(var(--u)*19);background:#cfcfcf}
.mgmark[data-m=suite] i:nth-child(2){left:calc(var(--u)*25);top:calc(var(--u)*4);width:calc(var(--u)*19);height:calc(var(--u)*19)}
.mgmark[data-m=suite] i:nth-child(3){left:calc(var(--u)*4);top:calc(var(--u)*25);width:calc(var(--u)*19);height:calc(var(--u)*19);background:#e8e8e8}
.mgmark[data-m=suite] i:nth-child(4){left:calc(var(--u)*25);top:calc(var(--u)*25);width:calc(var(--u)*19);height:calc(var(--u)*19);background:#f4f4f4}
.logos{display:flex;flex-wrap:wrap;justify-content:center;width:calc(12.25vw*4);max-width:706px;margin:0 auto;row-gap:38px}
.lg{width:25%;height:55px;display:flex;align-items:center;justify-content:center;font-size:1.5vw;color:#111;transition:opacity .35s}
.logos.f .lg{opacity:.2}
.logos.f .lg.hit{opacity:1}
.lg.w1{font-weight:800;letter-spacing:.04em}.lg.w2{font-weight:800;letter-spacing:.12em;font-size:1.2vw}.lg.w3{font-style:italic;font-weight:500}
.lg.w4{font-weight:700;letter-spacing:-.04em}.lg.w5{font-weight:600}.lg.w6{font-weight:400;letter-spacing:.05em}
.lg.w7{font-weight:800;letter-spacing:-.02em;text-transform:uppercase;font-size:1.2vw}.lg.w8{font-weight:500;letter-spacing:.02em}.lg.w9{font-weight:700;font-style:italic}
@media(max-width:1100px){.mega{display:none}}

/* language popover */
.lang-btn{display:flex;align-items:center;gap:0;padding:0 var(--px) 0 20px;height:100%;font-size:13px;font-weight:600;color:inherit}
.lang-btn .pl{transition:none}
.lang-btn:hover .pl::after,body.lp-open .lang-btn .pl::after{transform:scaleY(0)}
.lp{position:fixed;inset:0;z-index:90;visibility:hidden;pointer-events:none}
.lp-back{position:absolute;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transition:opacity .45s ease}
.lp-card{position:absolute;top:0;left:var(--hh);width:min(630px,calc(100% - var(--hh)));background:#fff;color:#000;box-shadow:0 25px 50px -12px rgba(0,0,0,.45);transform:translateY(-14px);opacity:0;transition:opacity .4s ease,transform .5s cubic-bezier(.22,1,.36,1)}
body.lp-open .lp{visibility:visible;pointer-events:auto}
body.lp-open .lp-back{opacity:1}
body.lp-open .lp-card{opacity:1;transform:none}
body.lp-open{overflow:hidden}
.lp-x{position:absolute;top:0;right:0;z-index:2;width:50px;height:50px;background:#fff;color:#000;display:flex;align-items:center;justify-content:center;transition:background .25s,color .25s}
.lp-x svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6}
.lp-x:hover{background:#000;color:#fff}
.lp-row{display:flex;align-items:center;padding:14.4px 21.6px 14.4px 50px;transition:background .25s,color .25s}
.lp-row+.lp-row{border-top:0}
.lp-row:not(:last-child){border-bottom:1px solid #000}
.lp-row:hover{background:#000;color:#fff}
.lp-t{display:flex;flex-direction:column;gap:14.4px}
.lp-t span{font-size:16.2px}
.lp-t h6{font-size:clamp(30px,3vw,43.2px);font-weight:600;line-height:1.17}
.lp-t p{font-size:16.2px}
.lp-i{margin-left:auto;width:173px;height:173px;display:flex;align-items:center;justify-content:center;flex:none;padding:0 29px}
.lp-i svg{width:100%;height:100%}
@media(max-width:640px){.lp-card{left:0;width:100%}.lp-row{padding-left:24px}.lp-i{width:120px;height:120px;padding:0}}

/* project page */
body.proj{background:#fff}
.pg{background:#fff;color:#000;padding-top:var(--hh)}
.pg-c{max-width:1280px;margin:0 auto}
.pg-hero,.pg-s{margin-left:5vw;margin-right:5vw}
.pg-hero{padding-top:5vw}
.pg-hero h1{font-size:3.75vw;font-weight:600;line-height:1.067;letter-spacing:0}
.pg-hero h1 span{color:#d1d1d1}
.pg-cols{display:grid;grid-template-columns:446px 618px;column-gap:0;justify-content:space-between;margin-top:59px}
.pg-cols p{font-size:1.375vw;line-height:1.273}
.pg-l{color:#6d6d6d;max-width:446px}
.pg-r{color:#000}
.pg-img{margin-top:72px}
.pg-img .shot{aspect-ratio:16/9;width:100%}
.pg-s{margin-top:29px;border-top:1px solid #000;padding:113px 0 40px}
.pg-s.first{padding-top:40px}
.pg-eb{font-size:16.2px;font-weight:500;margin-bottom:73px;line-height:24px}
.pg-eb.sq::before{background:#000}
.pg-grid{display:grid;grid-template-columns:446px 618px;justify-content:space-between;align-items:start}
.pg-s h2{font-size:3vw;font-weight:600;line-height:1.167;max-width:none}
.pg-t h3{font-size:1.75vw;font-weight:400;line-height:1.286;margin-bottom:21px}
.pg-t p,.pg-faq p{font-size:1.125vw;line-height:1.5;margin-bottom:22px}
.pg-t p:last-child{margin-bottom:0}
.pg-facts>div{display:flex;justify-content:space-between;gap:30px;padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid #e8e8e8;font-size:1.125vw;line-height:1.5}
.pg-facts dt{color:#b0b0b0;flex:none}
.pg-facts dd{font-weight:600;text-align:right;flex:0 0 500px}
.pg-faq .pgq{margin-bottom:36px}
.pg-faq h3{font-size:1.375vw;font-weight:600;line-height:1.273;margin-bottom:11px}
.pg-faq p{margin:0}
.pg-more{padding:41px 0 0}
.pg-more .pg-eb{margin-bottom:0}
.pg-mh{display:flex;justify-content:space-between;align-items:flex-start;gap:30px}
.pg-mh p{width:631px;max-width:60%;font-size:3vw;font-weight:600;line-height:1.167;color:#b0b0b0;margin-right:0}
.pgc{display:flex;gap:2.15vw;overflow-x:auto;padding:30px 0 0;margin-top:13px;scrollbar-width:none;cursor:grab;user-select:none;-webkit-user-select:none}
.pgc::-webkit-scrollbar{display:none}
.pgc.drag{cursor:grabbing}
.pgc.drag a{pointer-events:none}
.pgcard{flex:none;width:29vw;max-width:418px;min-width:260px;background:#fff;border:1px solid #e6e6e6;border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:transform .35s,box-shadow .35s;display:flex;flex-direction:column}
.pgcard:hover{transform:translateY(-6px);box-shadow:0 18px 30px -18px rgba(0,0,0,.25)}
.pgcard .shot{aspect-ratio:418/235;width:100%}
.pgct{padding:21.6px;display:flex;flex-direction:column;flex:1}
.pgct h3{font-size:1.75vw;font-weight:600;line-height:1.286;margin-bottom:11px}
.pgct p{font-size:14.4px;line-height:1.5;color:#888;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pgk{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;margin:22px 0 4px;padding:0 0 4px;border-bottom:1px solid #3d9400;color:#3d9400;font-size:14.4px;font-weight:600}
.pgk svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .3s}
.pgcard:hover .pgk svg{transform:translate(3px,3px)}
.pg-more{padding-bottom:0}
@media(max-width:900px){
  .pg-hero{padding-top:36px}
  .pg-hero h1{font-size:clamp(30px,8vw,48px)}
  .pg-cols,.pg-grid{grid-template-columns:1fr;gap:28px}
  .pg-cols{margin-top:34px}
  .pg-cols p{font-size:17px}
  .pg-img{margin-top:40px}
  .pg-s{padding:64px 0 32px}.pg-s.first{padding-top:28px}
  .pg-eb{margin-bottom:36px}
  .pg-s h2{font-size:clamp(28px,7.4vw,40px)}
  .pg-t h3{font-size:22px}.pg-t p,.pg-faq p,.pg-facts>div{font-size:15px}
  .pg-faq h3{font-size:17px}
  .pg-mh{flex-direction:column}.pg-mh p{width:auto;max-width:none;font-size:clamp(26px,7vw,38px)}
  .pgcard{width:78vw}.pgct h3{font-size:22px}
}
.shot{position:relative;overflow:hidden;background:#ececee}
.pg-img .shot,.pgcard .shot{background:linear-gradient(135deg,#e6e8ea,#f4f4f5)}
#hd.scrolled[data-theme=light]{background:rgba(255,255,255,.72);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
#hd.scrolled[data-theme=light] .mark{box-shadow:none}

/* ───────── service pages ───────── */
body.svcpage{background:#fff}
.sv{background:#fff;color:#000}
.sv .sq::before{background:#000}
.sv-sq{font-size:16.2px;font-weight:500}
.sv-hero{background:var(--dark);color:#fff;min-height:826px;padding:144px 5.55vw 90px}
.sv-hc{max-width:1280px;margin:0 auto}
.sv-eb{display:block;font-size:1.375vw;font-weight:600;line-height:1.273;color:rgba(255,255,255,.8)}
.sv-hero h1{margin-top:11px;font-size:3.75vw;font-weight:600;line-height:1.067;letter-spacing:0}
.sv-hero .g,.sv-hero .dt{color:var(--green);font-weight:600}
.sv-hero p{margin-top:25px;max-width:605px;font-size:1.375vw;line-height:1.273;color:rgba(255,255,255,.65)}
.sv-btns{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap}
.sv-btn{display:inline-flex;align-items:center;gap:14px;height:56px;padding:0 22px;border:1px solid #fff;color:#fff;font-size:14.4px;font-weight:500;transition:background .25s,color .25s,border-color .25s}
.sv-btn.w{background:#fff;color:#000}
.sv-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;transition:transform .3s}
.sv-btn:hover{background:var(--green);color:#000;border-color:var(--green)}
.sv-btn:hover svg{transform:translateX(4px)}
.sv-why{background:#f6f6f6;padding:96px 5.55vw 90px}
.sv-wc{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:611px 582px;justify-content:space-between;align-items:start}
.sv-wl .sv-sq{margin-bottom:35px}
.sv-wl p{font-size:1.375vw;line-height:1.273;color:#6d6d6d;margin-bottom:14px}
.sv-wl p.lead{color:#000;font-weight:600;margin-bottom:14px}
.sv-stats{display:grid;grid-template-columns:1fr 1fr;gap:27px 24px}
.sv-stats>div{background:#fff;padding:28px 28px 26px;border:1px solid #ececec;transition:transform .35s,box-shadow .35s}
.sv-stats>div:hover{transform:translateY(-5px);box-shadow:0 18px 28px -20px rgba(0,0,0,.25)}
.sv-stats span{display:block;font-size:3.75vw;font-weight:600;line-height:1.07}
.sv-stats p{margin-top:14px;font-size:12.6px;line-height:1.43;color:#6d6d6d}
.sv-incl{padding:90px 5.55vw}
.sv-ic{max-width:1280px;margin:0 auto}
.sv-incl h2{margin-top:30px;max-width:48vw;font-size:3.75vw;font-weight:600;line-height:1.067}
.sv-mgrid{display:grid;grid-template-columns:584px 611px;justify-content:space-between;margin-top:70px;align-items:start}
.sv-mlist{border-top:1px solid #e0e0e0}
.mth{display:flex;align-items:center;justify-content:space-between;width:100%;padding:22px 0;border-bottom:1px solid #e0e0e0;text-align:left;font-size:1.75vw;font-weight:600;line-height:1.286;color:#888;transition:color .25s}
.mth i{width:10px;height:10px;background:var(--green);opacity:0;transition:opacity .25s}
.mth:hover,.mth.on{color:#000}
.mth.on i{opacity:1}
.sv-mpanel{position:sticky;top:120px}
.sv-mline{border-top:1px solid #000;margin-bottom:36px}
.sv-mark{position:relative;width:min(21.8vw,314px);aspect-ratio:1}
.sv-mark i{position:absolute;transition:left .55s cubic-bezier(.22,1,.36,1),top .55s cubic-bezier(.22,1,.36,1),width .55s cubic-bezier(.22,1,.36,1),height .55s cubic-bezier(.22,1,.36,1),background-color .4s}
.sv-mpanel h3{margin-top:44px;font-size:3vw;font-weight:600;line-height:1.167}
.sv-mpanel p{margin-top:22px;max-width:518px;font-size:1.375vw;line-height:1.273;color:#6d6d6d}
.sv-how{background:var(--dark);color:#fff;padding:0 5.55vw}
.sv-hw{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:42.5% 1fr;align-items:start}
.sv-hl{position:sticky;top:0;height:100vh;padding-top:86px}
.sv-hl .sq{position:relative;z-index:1}
.sv-ico{position:absolute;inset:0}
.sv-ico canvas{width:100%;height:100%;display:block}
.sv-hr{padding-top:90px;padding-bottom:30vh}
.sv-hr h2{font-size:3.75vw;font-weight:600;line-height:1.067;max-width:none}
.sv-steps{margin-top:clamp(120px,22vw,320px)}
.st{min-height:clamp(380px,43vw,620px);color:#5d5d5d;transition:color .5s}
.st .sn{display:block;font-size:2vw;line-height:1.25;color:#5d5d5d;transition:color .5s}
.st h3{margin-top:14px;font-size:3.75vw;font-weight:600;line-height:1.067}
.st p{margin-top:18px;max-width:461px;font-size:1.375vw;line-height:1.273;color:#5d5d5d}
.st.on{color:#fff}
.st.on .sn{color:var(--green)}
.st.on p{color:#b0b0b0}
.sv-proj{padding:86px 5.55vw 40px}
.sv-pc{max-width:1280px;margin:0 auto}
.sv-proj .btn-o{margin-top:28px}
.sv-pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:50px}
.spc{display:block}
.spc .shot{aspect-ratio:16/9;width:100%}
.spm{display:flex;justify-content:space-between;align-items:flex-start;margin-top:16px}
.spm h3{font-size:1.75vw;font-weight:600;line-height:1.286}
.spm small{display:block;margin-top:6px;font-size:1.125vw;color:#888}
.spm svg{flex:none;width:15px;height:15px;margin-top:10px;fill:none;stroke:var(--green);stroke-width:2;transition:transform .3s}
.spc:hover .spm svg{transform:translate(3px,3px)}
.sv-faq{padding:86px 5.55vw}
.sv-fc{max-width:1280px;margin:0 auto}
.sv-fh{display:grid;grid-template-columns:42.5% 1fr}
.sv-fh h2{font-size:3.75vw;font-weight:600;line-height:1.067;max-width:none}
.sv-flist{margin-top:60px;border-bottom:1px solid #e0e0e0}
.sf{border-top:1px solid #e0e0e0}
.sf button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:29px 0;text-align:left;font-size:1.75vw;font-weight:600;line-height:1.286;transition:color .25s}
.sf button:hover{color:#3d9400}
.sf .pl{width:16px;height:16px;flex:none;margin-left:20px}
.sf .pl::before{top:7.5px;background:var(--green)}
.sf .pl::after{left:7.5px;background:var(--green)}
.sf.open .pl::after{transform:scaleY(0)}
.sa{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease}
.sa p{overflow:hidden;max-width:760px;font-size:1.125vw;line-height:1.5;color:#6d6d6d}
.sf.open .sa{grid-template-rows:1fr}
.sf.open .sa p{padding-bottom:28px}
.sv-oth{padding:60px 5.55vw 110px}
.sv-oc{max-width:1280px;margin:0 auto}
.sv-olist{margin-top:50px;border-bottom:1px solid #e0e0e0}
.oth{display:grid;grid-template-columns:768px 1fr 40px;align-items:center;border-top:1px solid #e0e0e0;padding:26px 0}
.oth .on{font-size:5vw;font-weight:800;line-height:1.1;letter-spacing:-.03em;transition:color .3s}
.oth .on b{color:#3d9400;margin-right:.15em;font-weight:800}
.oth .os{font-size:1.25vw;color:#6d6d6d;max-width:300px;line-height:1.4}
.oth svg{width:28px;height:28px;fill:none;stroke:#000;stroke-width:1.6;transition:transform .3s}
.oth:hover .on{color:#3d9400}
.oth:hover svg{transform:translate(4px,-4px)}
.sv .cta{position:relative}
.sv .cta-r p{max-width:none}
@media(max-width:1000px){
  .sv-hero{padding-top:120px;min-height:0}
  .sv-eb{font-size:17px}.sv-hero h1{font-size:clamp(38px,10vw,60px)}.sv-hero p{font-size:16px;max-width:none}
  .sv-wc,.sv-mgrid,.sv-hw,.sv-fh{grid-template-columns:1fr;gap:40px}
  .sv-wl p{font-size:16px}.sv-stats span{font-size:44px}
  .sv-incl h2,.sv-hr h2,.sv-fh h2{font-size:clamp(30px,8vw,44px);max-width:none}
  .mth{font-size:20px}.sv-mpanel{position:static}.sv-mark{width:70vw;max-width:314px}
  .sv-mpanel h3{font-size:30px}.sv-mpanel p{font-size:16px}
  .sv-hl{position:relative;height:60vw;min-height:260px;padding:0}.sv-hl .sv-sq{position:absolute;top:0;left:0}
  .sv-steps{margin-top:60px}.st{min-height:0;margin-bottom:56px;color:#fff}.st h3{font-size:34px}.st .sn{font-size:20px;color:var(--green)}.st p{font-size:16px;color:#b0b0b0}
  .sv-hr{padding-bottom:60px}
  .sv-pgrid{grid-template-columns:1fr}.spm h3{font-size:22px}.spm small{font-size:14px}
  .sf button{font-size:18px}.sa p{font-size:15px}
  .oth{grid-template-columns:1fr 32px;gap:6px}.oth .on{font-size:44px}.oth .os{grid-column:1;font-size:14px}.oth svg{grid-row:1;grid-column:2}
}
.sv .sq.w::before{background:#fff}

/* ───────── about page ───────── */
body.aboutpage{background:#fff}
.ab{background:#fff;color:#000}
.ab-c{max-width:1280px;margin:0 auto}
.ab-hero{background:radial-gradient(ellipse 60% 55% at 50% 100%,rgba(120,244,9,.12),transparent 70%),var(--dark);color:#fff;min-height:800px;padding:112px 5.55vw 90px;position:relative;z-index:0}
.ab-hc{max-width:1280px;margin:0 auto}
.ab-eb{font-size:1.375vw;font-weight:600;line-height:1.273;color:rgba(255,255,255,.8)}
.ab-hero h1{margin-top:18px;max-width:806px;font-size:3.75vw;font-weight:600;line-height:1.067}
.ab-hp{margin-top:25px;max-width:605px;font-size:1.375vw;line-height:1.273;color:rgba(255,255,255,.8)}
.ab-who{position:relative;z-index:1;margin-top:-58px;background:#fff;padding:86px 5.55vw 40px}
.ab-who-g{display:grid;grid-template-columns:611px 582px;justify-content:space-between;align-items:start}
.ab-who .sv-sq{margin-bottom:35px}
.ab-who p{font-size:1.375vw;line-height:1.273;color:#6d6d6d;margin-bottom:14px}
.ab-st{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ab-st>div{background:#fff;border:1px solid #ececec;padding:26px 24px;box-shadow:0 1px 3px rgba(0,0,0,.04);transition:transform .35s,box-shadow .35s}
.ab-st>div:hover{transform:translateY(-5px);box-shadow:0 18px 28px -20px rgba(0,0,0,.25)}
.ab-st span{display:block;font-size:3.75vw;font-weight:600;line-height:1.07}
.ab-st p{margin:12px 0 0;font-size:12.6px;line-height:1.43}
.ab-proc{display:grid;grid-template-columns:repeat(5,1fr);margin-top:70px;border-top:1px solid #e0e0e0;padding-top:28px}
.ab-proc svg{width:38px;height:38px;margin-bottom:16px;color:#000}
.ab-proc h3{font-size:12.6px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;margin-bottom:10px}
.ab-proc .num{font-size:clamp(40px,6.2vw,92px);font-weight:600;line-height:1;letter-spacing:-.03em}
.ab-mk{margin-top:70px}
.ab-tiles{display:grid;grid-template-columns:repeat(8,1fr);gap:12px;margin-top:30px}
.ab-tiles .b{height:clamp(54px,5vw,72px);display:flex;align-items:center;justify-content:center;border:1px solid #ececec;background:#fff;color:#111;font-size:clamp(11px,1.15vw,16px);box-shadow:0 1px 3px rgba(0,0,0,.04);transition:color .25s,border-color .25s,transform .25s}
.ab-tiles .b:hover{color:#3d9400;border-color:#78F409;transform:translateY(-3px)}
.ab-do{padding:86px 5.55vw 70px}
.ab-do .btn-o{margin-top:26px}
.ab-svcs{display:grid;grid-template-columns:repeat(4,1fr);gap:29px;margin-top:50px}
.ab-svc{position:relative;display:block;border-top:1px solid #000;padding-top:16px;transition:transform .35s}
.ab-svc:hover{transform:translateY(-4px)}
.ab-svc .n{font-size:12.6px;color:#6d6d6d}
.ab-svc svg{position:absolute;right:0;top:14px;width:16px;height:16px;fill:none;stroke:#3d9400;stroke-width:2;transition:transform .3s}
.ab-svc:hover svg{transform:translate(3px,-3px)}
.ab-svc h3{margin-top:26px;font-size:1.375vw;font-weight:600;line-height:1.273}
.ab-svc small{display:block;margin-top:6px;font-size:12.6px;color:#888}
.ab-svc p{margin-top:16px;font-size:1.125vw;line-height:1.5;color:#6d6d6d}
.ab-split{display:grid;grid-template-columns:575px 611px;justify-content:space-between;align-items:start}
.ab-sticky{position:sticky;top:120px}
.ab-think,.ab-manif,.ab-how{padding:60px 5.55vw}
.ab-r h2{font-size:3.75vw;font-weight:600;line-height:1.067;max-width:none;margin-bottom:60px}
.ab-think .dmi{padding:0 0 62px;opacity:.45;transition:opacity .4s}
.ab-think .dmi.on{opacity:1}
.ab-think .dmi h3{font-size:1.375vw;font-weight:600;line-height:1.273;margin-bottom:12px}
.ab-think .dmi p{font-size:1.125vw;line-height:1.5;color:#6d6d6d}
.ab-manif .ab-split{margin-top:30px}
.ab-manif .mf{background:#f3f3f3;padding:36px 36px 40px;margin-bottom:24px;min-height:340px;opacity:.55;transition:opacity .4s,background .4s}
.ab-manif .mf.on{opacity:1;background:#f0f0f0}
.mf .mn{display:block;font-size:14px;color:#3d9400;margin-bottom:18px}
.mf h3{font-size:3vw;font-weight:600;line-height:1.167;margin-bottom:18px}
.mf p{font-size:1.125vw;line-height:1.5;color:#6d6d6d}
.ab-how{padding-bottom:20px}
.ab-how .sv-sq{margin-bottom:26px}
.ab-r .sub{font-size:1.75vw;color:#888;margin:8px 0 22px;line-height:1.286}
.ab-hsteps .hs{min-height:clamp(380px,43vw,620px);color:#bdbdbd;transition:color .5s}
.hs .sn{display:block;font-size:2vw;color:#bdbdbd;transition:color .5s}
.hs .sl{display:none}
.hs h3{margin-top:14px;font-size:3.75vw;font-weight:600;line-height:1.067}
.hs p{max-width:461px;font-size:1.375vw;line-height:1.273}
.hs .sub{max-width:none}
.hs.on{color:#000}.hs.on .sn{color:#3d9400}
.hs.on p:not(.sub){color:#6d6d6d}.hs p:not(.sub){color:#bdbdbd}
.hs.on .sub{color:#888}
.ab-proj{padding-top:86px}
.ab-sub{margin-top:18px;font-size:16.2px;color:#6d6d6d}
.ab-proj .sv-pgrid{margin-top:40px}
/* dark mock windows */
.dm{background:#141414;color:#fff;border:1px solid #2b2b2b;border-radius:12px;padding:16px 18px 18px;box-shadow:0 30px 60px -30px rgba(0,0,0,.55);min-height:min(560px,78vh)}
.dm-top{display:flex;align-items:center;gap:10px;font-size:11px;color:#bdbdbd}
.dm-top .dm-dot{margin-left:auto;width:12px;height:12px;border-radius:50%;background:#78F409}
.dm-back{color:#78F409}
.dm-bar{height:2px;background:#2b2b2b;margin:14px 0 18px;border-radius:2px;overflow:hidden}
.dm-bar i{display:block;height:100%;width:25%;background:#78F409;transition:width .5s}
.dm-title{font-size:1.5vw;font-weight:600;margin-bottom:14px}
.dm-card{background:#1b1b1b;border:1px solid #2b2b2b;border-radius:10px;padding:14px;margin-bottom:10px}
.dm-card small{display:block;font-size:10.5px;color:#888;margin-bottom:6px}
.dm-card strong{font-size:14px}
.dm-card p{font-size:12px;margin:0;color:#fff}
.dm-card.hl{border-color:#78F409;color:#fff;font-size:12px}
.dm-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dm-row{display:flex;align-items:center;gap:12px;padding:14px 12px;border:1px solid transparent;border-radius:8px;margin-bottom:6px;transition:border-color .3s,background .3s;opacity:.55}
.dm-row.on{opacity:1;border-color:#78F409;background:rgba(120,244,9,.06)}
.dm-row .ic{width:26px;height:26px;border-radius:50%;background:#2b2b2b;display:flex;align-items:center;justify-content:center;font-size:11px}
.dm-row strong{display:block;font-size:12.6px}
.dm-row em{display:block;font-size:10.8px;color:#888;font-style:normal}
.dm-row u{margin-left:auto;width:36px;height:8px;border-radius:4px;background:repeating-linear-gradient(90deg,#78F409 0 4px,transparent 4px 8px)}
.dm-foot{margin-top:14px;font-size:10.8px;color:#b0b0b0}
.dm-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}
.dm-steps span{padding:10px 8px;border-radius:8px;background:#1b1b1b;border:1px solid #2b2b2b;font-size:12px;font-weight:600;opacity:.5;transition:all .4s}
.dm-steps span em{display:block;font-style:normal;font-size:10px;font-weight:400;color:#888;margin-top:2px}
.dm-steps span.on{opacity:1;border-color:#78F409}
.dm-form>div{border:1px solid #2b2b2b;border-radius:8px;background:#1b1b1b;padding:13px 12px;margin-bottom:10px;font-size:12px;color:#888}
.dm-form .ta{height:90px}
.dm-form button{width:100%;margin-top:6px;background:#78F409;color:#000;font-weight:600;font-size:12.6px;padding:13px;border-radius:8px}
.dm-panes .dm-pane{display:none}
.dm-panes .dm-pane.on{display:block;animation:mgIn .4s ease both}
.dm-chart{display:flex;align-items:flex-end;gap:8px;height:150px;margin-top:10px}
.dm-chart i{flex:1;background:#3a3a3a;border-radius:3px 3px 0 0}
.dm-chart i.a{background:#78F409}
@media(max-width:1000px){
  .ab-hero{min-height:0;padding-top:110px}.ab-eb{font-size:17px}.ab-hero h1{font-size:clamp(32px,8.6vw,52px)}.ab-hp{font-size:16px}
  .ab-who{margin-top:-30px}.ab-who-g,.ab-split{grid-template-columns:1fr;gap:34px}
  .ab-who p,.ab-think .dmi p,.mf p,.ab-svc p{font-size:15.5px}
  .ab-st span{font-size:34px}.ab-proc{grid-template-columns:repeat(2,1fr);gap:24px}.ab-tiles{grid-template-columns:repeat(3,1fr)}
  .ab-svcs{grid-template-columns:1fr 1fr}.ab-svc h3{font-size:18px}
  .ab-sticky{position:static}.dm{min-height:0}.dm-title{font-size:20px}
  .ab-r h2{font-size:clamp(28px,7.6vw,40px)}.ab-think .dmi h3{font-size:18px}.ab-think .dmi,.ab-manif .mf,.hs{opacity:1;min-height:0;margin-bottom:30px;color:#000}
  .mf h3{font-size:28px}.hs h3{font-size:34px}.hs p{font-size:16px}.hs .sn{font-size:20px;color:#3d9400}.ab-r .sub{font-size:20px}
}
@media(max-width:600px){.ab-svcs{grid-template-columns:1fr}.ab-st{grid-template-columns:1fr}}
.sv-hero{position:relative;overflow:hidden}
.sv-3d{position:absolute;inset:0;pointer-events:none;z-index:0}
.sv-hc{position:relative;z-index:1}

/* contact page (mirrors the original layout) */
body.ctpage{background:#fff}
.ctp{background:#fff;color:#000}
.ctp-top{background:#000;color:#fff;min-height:100vh;padding:calc(var(--hh) + 148px) 0 100px 10vw}
.ctp-g{display:grid;grid-template-columns:40.7vw 36vw;align-items:start}
.ctp-eb{font-size:1.375vw;font-weight:600;line-height:1.273;color:rgba(255,255,255,.8)}
.ctp-top h1{margin-top:18px;font-size:3.75vw;font-weight:600;line-height:1.067}
.ctp-lead{margin-top:14px;font-size:1.375vw;line-height:1.273}
.ctp-lead span{color:var(--green)}
.ctp-mail{display:inline-block;margin-top:24px;font-size:1.75vw;line-height:1.286;border-bottom:1px solid #fff;transition:color .2s,border-color .2s}
.ctp-mail:hover{color:var(--green);border-color:var(--green)}
.ctp-top .fld{margin-bottom:29px}
.ctp-top .fld input{height:37px;padding:0 0 10px;font-size:1.125vw;border-bottom:1px solid rgba(255,255,255,.45)}
.ctp-top .fld input::placeholder{color:#888}
.ctp-top .chk{margin-top:40px;font-size:1.125vw}
.ctp-top .send{margin-top:28px}
.ctp-faq{padding-top:86px}
.ctp-faq .sv-fh{grid-template-columns:46.5% 1fr}
.ctp-news{padding:20px 0 120px 5vw;overflow:hidden}
.ctp-nw{gap:72px;padding-top:30px;margin-top:0}
.nw{flex:none;display:grid;grid-template-columns:288px 288px;gap:22px;align-items:start}
.nwt{display:flex;flex-direction:column;min-height:288px}
.nwt p{font-size:1.125vw;color:#000}
.nwt h4{margin-top:22px;font-size:2vw;font-weight:600;line-height:1.25}
.nwt .pgk{margin-top:auto}
.nw .shot{width:288px;height:288px;aspect-ratio:1}
@media(max-width:1000px){
  .ctp-top{padding:calc(var(--hh) + 60px) 6vw 70px}
  .ctp-g{grid-template-columns:1fr;gap:44px}
  .ctp-eb,.ctp-lead{font-size:17px}.ctp-top h1{font-size:clamp(36px,10vw,56px)}.ctp-mail{font-size:22px}
  .ctp-top .fld input,.ctp-top .chk{font-size:15px}
  .ctp-faq .sv-fh{grid-template-columns:1fr}
  .nw{grid-template-columns:200px 200px}.nw .shot{width:200px;height:200px}.nwt{min-height:200px}.nwt p{font-size:14px}.nwt h4{font-size:20px}
  .ctp-nw{gap:40px}
}

/* legal pages */
body.legalpage{background:#fff}
.lgl{background:#fff;color:#000;padding:calc(var(--hh) + 87px) 5vw 120px 10vw}
.lgl-in{max-width:48vw}
.lgl h1{font-size:3.75vw;font-weight:600;line-height:1.067}
.lgl-date{margin-top:21px;font-size:12.6px;color:#6d6d6d}
.lgl-lead{margin-top:22px;font-size:1.375vw;line-height:1.273;color:#6d6d6d}
.lgl h2{margin-top:57px;font-size:1.75vw;font-weight:600;line-height:1.286;max-width:none}
.lgl p{font-size:1.125vw;line-height:1.5;color:#5d5d5d}
.lgl h2+p,.lgl h2+ul{margin-top:15px}
.lgl p+p,.lgl p+ul{margin-top:15px}
.lgl ul{padding-left:18px;list-style:disc}
.lgl li{font-size:1.125vw;line-height:1.5;color:#5d5d5d;margin-bottom:8px}
.lgl li::marker{color:#3d9400}
.lgl b{color:#000;font-weight:600}
.lgl .lgl-lead,.lgl .lgl-date{max-width:none}
@media(max-width:1000px){
  .lgl{padding:calc(var(--hh) + 50px) 6vw 80px}.lgl-in{max-width:none}
  .lgl h1{font-size:clamp(34px,9vw,52px)}.lgl-lead{font-size:17px}.lgl h2{font-size:22px;margin-top:44px}.lgl p,.lgl li{font-size:15.5px}
}

/* projects index */
body.prjpage{background:#fff}
.prj{background:#fff;color:#000;padding:calc(var(--hh) + 72px) 5vw 0}
.prj-top,.prj-grid{max-width:1280px;margin-left:auto;margin-right:auto}
.prj-top h1{font-size:3.75vw;font-weight:600;line-height:1.067}
.prj-st{display:flex;gap:44px;margin-top:59px;padding-top:26px;border-top:1px solid #e6e6e6}
.prj-st span{display:flex;align-items:baseline;gap:12px;font-size:16.2px}
.prj-st b{font-size:3.75vw;font-weight:600;line-height:1}
.prj-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:57px;row-gap:56px;margin-top:28px}
.pr{display:block}
.pr .shot{aspect-ratio:611/344;width:100%;border-radius:8px}
.pr .shot>*{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.pr:hover .shot>*{transform:scale(1.04)}
.pr h2{margin-top:29px;font-size:2vw;font-weight:600;line-height:1.25;max-width:none;transition:color .25s}
.pr:hover h2{color:#2c7a00}
.pr small{display:block;margin-top:8px;font-size:14.4px;color:#888}
.pr p{margin-top:22px;font-size:1.375vw;line-height:1.273;color:#000}
.pr .tg{display:block;margin-top:18px;font-size:14.4px;font-weight:600;color:#3d9400;line-height:1.5}
.prj .ctp-faq{margin:60px -5vw 0;padding-left:5.55vw;padding-right:5.55vw}
@media(max-width:1000px){
  .prj{padding-top:calc(var(--hh) + 40px)}.prj-top h1{font-size:clamp(34px,9vw,52px)}.prj-st b{font-size:34px}
  .prj-grid{grid-template-columns:1fr;row-gap:44px}.pr h2{font-size:24px}.pr p{font-size:16px}
}
/* menu marks: crisp svg per service */
.mgmark i{display:none}
.mgmark .mk{position:absolute;inset:0;width:100%;height:100%;opacity:0;transform:scale(.94);transition:opacity .35s ease,transform .5s cubic-bezier(.22,1,.36,1);pointer-events:none}
.mgmark .m-full{opacity:1;transform:none}
.mgmark[data-m=grow] .m-grow,.mgmark[data-m=create] .m-create,.mgmark[data-m=brand] .m-brand,.mgmark[data-m=build] .m-build,.mgmark[data-m=run] .m-run,.mgmark[data-m=mind] .m-mind{opacity:1;transform:none}
.mgmark[data-m=grow] .m-full,.mgmark[data-m=create] .m-full,.mgmark[data-m=brand] .m-full,.mgmark[data-m=build] .m-full,.mgmark[data-m=run] .m-full,.mgmark[data-m=mind] .m-full{opacity:0;transform:scale(.94)}
.mgmark .mk *{transform-box:fill-box;transform-origin:center}
.mgmark .mk .dr{stroke-dasharray:100;stroke-dashoffset:var(--o,0)}
.mgmark[data-m=grow] .m-grow .dr,.mgmark[data-m=create] .m-create .dr,.mgmark[data-m=brand] .m-brand .dr,.mgmark[data-m=build] .m-build .dr,.mgmark[data-m=mind] .m-mind .dr{animation:mgDraw .9s cubic-bezier(.4,0,.2,1) var(--d,0s) both}
.mgmark[data-m=grow] .m-grow .pp,.mgmark[data-m=create] .m-create .pp,.mgmark[data-m=brand] .m-brand .pp,.mgmark[data-m=run] .m-run .pp,.mgmark[data-m=mind] .m-mind .pp{animation:mgPop .5s cubic-bezier(.22,1,.36,1) var(--d,0s) both}
.mgmark[data-m=grow] .m-grow .rs,.mgmark[data-m=run] .m-run .rs{animation:mgRise .6s cubic-bezier(.22,1,.36,1) var(--d,0s) both}
.mgmark .m-grow .rs{transform-origin:50% 100%}
.mgmark .m-run .rs{transform-origin:0 50%}
.mgmark[data-m=full] .m-full .pp{animation:mgPop .5s cubic-bezier(.22,1,.36,1) var(--d,0s) both}
.mgmark[data-m=run] .m-run circle{animation:mgBlink 1.6s ease-in-out infinite}
@keyframes mgDraw{from{stroke-dashoffset:calc(100 + var(--o,0))}to{stroke-dashoffset:var(--o,0)}}
@keyframes mgPop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}
@keyframes mgRise{from{opacity:0;transform:scale(0)}to{opacity:1;transform:none}}
@keyframes mgBlink{0%,100%{opacity:1}50%{opacity:.35}}
/* sectors */
.mi.sc .scx{display:flex;flex-direction:column}
.mi.sc .ms{margin-top:4px;font-size:14.4px;font-weight:500;color:#6d6d6d}
.sec-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.sec-c{position:relative;background:rgba(17,17,17,.66);padding:clamp(26px,3vw,46px) var(--px) clamp(26px,3vw,46px) clamp(22px,2.4vw,40px);border-bottom:1px solid rgba(255,255,255,.18);border-left:1px solid rgba(255,255,255,.18);min-height:clamp(210px,19vw,290px);display:flex;flex-direction:column;transition:background .35s}
.sec-c:nth-child(3n+1){border-left:0}
.sec-c:hover{background:rgba(30,30,30,.78)}
.sec-n{font-size:12.6px;color:rgba(255,255,255,.5)}
.sec-c h3{margin-top:14px;font-size:clamp(28px,3.1vw,52px);font-weight:700;letter-spacing:-.03em;line-height:1;transition:color .3s}
.sec-c:hover h3{color:var(--green)}
.sec-p{margin-top:12px;font-size:clamp(14px,1.25vw,18px);color:var(--green)}
.sec-i{margin-top:auto;padding-top:22px;font-size:clamp(12.5px,1.05vw,15px);line-height:1.5;color:rgba(255,255,255,.62)}
.sec-note{padding:26px var(--px) 0;font-size:clamp(13px,1.1vw,16px);color:rgba(255,255,255,.62)}
@media(max-width:1000px){.sec-grid{grid-template-columns:1fr 1fr}.sec-c:nth-child(3n+1){border-left:1px solid rgba(255,255,255,.18)}.sec-c:nth-child(2n+1){border-left:0}}
@media(max-width:600px){.sec-grid{grid-template-columns:1fr}.sec-c{border-left:0!important;min-height:0}}
