body{background:#fafcf7;margin:0}a{color:#123c2b}a:hover{color:#14251b}.fl{color:#14251b;-webkit-font-smoothing:antialiased;background:#fafcf7;font-family:Instrument Sans,Segoe UI,system-ui,sans-serif;font-size:18px;line-height:1.6}.fl *,.fl :before,.fl :after{box-sizing:border-box}.wrap{max-width:1280px;margin:0 auto;padding:0 40px}.disp{letter-spacing:-.035em;font-family:Bricolage Grotesque,Segoe UI,system-ui,sans-serif;font-weight:700}.mono{letter-spacing:.08em;text-transform:uppercase;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:13px;font-weight:500}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fl a:focus-visible,.fl button:focus-visible{outline-offset:4px;border-radius:8px;outline:3px solid #123c2b}.on-dark a:focus-visible,.on-dark button:focus-visible{outline-color:#c7f542}.nav{z-index:30;-webkit-backdrop-filter:blur(12px);background:#fafcf7e6;border-bottom:1px solid #14251b14;position:sticky;top:0}.nav-in{justify-content:space-between;align-items:center;gap:24px;height:76px;display:flex}.logo{color:#14251b;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.logo-word{letter-spacing:-.04em;font-family:Bricolage Grotesque,system-ui,sans-serif;font-size:24px;font-weight:800}.nav-links{align-items:center;gap:36px;margin:0;padding:0;list-style:none;display:flex}.nav-links a{color:#14251b;padding:12px 2px;font-size:16px;font-weight:500;text-decoration:none;display:inline-block;position:relative}.nav-links a:after{content:"";transform-origin:0;background:#123c2b;border-radius:2px;height:2px;transition:transform .35s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:6px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover:after,.nav-links a:focus-visible:after{transform:scaleX(1)}.nav-right{align-items:center;gap:12px;display:flex}.menu-btn{color:#14251b;cursor:pointer;background:0 0;border:2px solid #14251b;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 16px;font:600 15px/1 Instrument Sans,system-ui,sans-serif;display:none}.m-panel{border-top:1px solid #14251b1a;padding:8px 0 24px}.m-panel ul{margin:0;padding:0;list-style:none}.m-panel a{color:#14251b;letter-spacing:-.02em;border-bottom:1px solid #dce5d5;justify-content:space-between;align-items:center;min-height:56px;font-family:Bricolage Grotesque,system-ui,sans-serif;font-size:26px;font-weight:600;text-decoration:none;display:flex}.btn{cursor:pointer;border:2px solid #14251b;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:54px;padding:0 26px;font:600 16px/1 Instrument Sans,system-ui,sans-serif;text-decoration:none;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s cubic-bezier(.2,.8,.2,1),background-color .25s,color .25s;display:inline-flex}.btn-primary{color:#14251b;background:#c7f542;box-shadow:0 0 #123c2b}.btn-primary:hover{color:#14251b;transform:translate(-2px,-3px);box-shadow:3px 4px #123c2b}.btn-primary:active{transform:none;box-shadow:0 0 #123c2b}.btn-ghost{color:#14251b;background:0 0}.btn-ghost:hover{color:#fafcf7;background:#14251b}.btn-sm{min-height:46px;padding:0 20px;font-size:15px}.btn .ico{transition:transform .3s cubic-bezier(.2,.8,.2,1)}.btn:hover .ico{transform:translate(3px)}.btn[disabled]{cursor:progress;box-shadow:none;background:#ddefa6;transform:none}.hero{padding:56px 0 104px;position:relative;overflow:hidden}.hero-bg{pointer-events:none;width:140%;height:auto;position:absolute;top:26%;left:-20%}.hero-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:24px;display:grid;position:relative}.eyebrow{color:#2e4135;align-items:center;gap:12px;display:inline-flex}.eyebrow .dot{background:#c7f542;border:2px solid #123c2b;border-radius:50%;width:10px;height:10px}.hero h1{z-index:0;text-wrap:balance;margin:28px 0;font-size:clamp(42px,7.4vw,112px);line-height:.94;position:relative}.hl{white-space:nowrap;display:inline-block;position:relative}.hl-band{z-index:-1;background:#c7f542;border-radius:50%;height:.46em;position:absolute;bottom:.02em;left:-3%;right:-3%;transform:rotate(-1.5deg)}.lead{color:#2e4135;text-wrap:pretty;max-width:36ch;margin:0;font-size:20px;line-height:1.6}.cta-row{flex-wrap:wrap;gap:14px;margin-top:40px;display:flex}.hero-art{margin-right:-140px;position:relative}.hero-art svg{width:100%;height:auto;display:block;overflow:visible}.fig{color:#4c5f52;font-size:12px;position:absolute;bottom:6px;right:150px}.tilt{transform-box:view-box;transform-origin:340px 340px;animation:18s ease-in-out infinite alternate tilt}@keyframes tilt{0%{transform:rotate(-6deg)}to{transform:rotate(6deg)}}.draw{stroke-dasharray:640;stroke-dashoffset:640px;animation:1.8s cubic-bezier(.6,0,.2,1) .2s forwards draw}@keyframes draw{to{stroke-dashoffset:0}}.rise{animation:.9s cubic-bezier(.2,.8,.2,1) both rise}.rise-2{animation-delay:.12s}.rise-3{animation-delay:.24s}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.sec{padding:128px 0}.sec-label{color:#2e4135;align-items:center;gap:14px;display:flex}.sec-label:before{content:"";border:2px solid #123c2b;border-radius:50%;width:34px;height:14px}.h2{text-wrap:balance;margin:20px 0 0;font-size:clamp(40px,5.4vw,80px);line-height:.98}.intro{color:#2e4135;text-wrap:pretty;max-width:44ch;margin:24px 0 0;font-size:19px}.svc-grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:72px;display:grid}.svc-head{align-self:start;position:sticky;top:120px}.svc-list{border-top:2px solid #14251b;margin:0;padding:0;list-style:none}.svc-item{border-bottom:1px solid #c9d5c2;grid-template-columns:64px minmax(0,1fr) 104px;align-items:start;gap:28px;padding:40px 20px 40px 8px;transition:background-color .35s;display:grid}.svc-item:hover{background:#f0f9d8}.svc-num{color:#4c5f52;padding-top:10px}.svc-item h3{margin:0 0 12px;font-size:clamp(28px,2.6vw,38px);line-height:1.05}.svc-item p{color:#2e4135;text-wrap:pretty;max-width:50ch;margin:0}.svc-ico{width:104px;height:104px}.spin{transform-box:fill-box;transform-origin:50%;transition:transform .9s cubic-bezier(.2,.8,.2,1)}.svc-item:hover .spin{transform:rotate(28deg)}.proj-sec{background:#f1f6e9;border-top:1px solid #dce5d5;border-bottom:1px solid #dce5d5}.proj-top{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:32px;display:flex}.proj-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 32px;margin-top:80px;display:grid}.p-a{grid-column:1/span 7}.p-b{grid-column:9/span 4;margin-top:180px}.p-c{grid-column:3/span 8;margin-top:8px}.proj{position:relative}.shot{isolation:isolate;position:relative}.shot-frame{transition:transform .6s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden}.p-a .shot-frame{aspect-ratio:16/10;background:#123c2b;border-radius:28px 240px 28px 28px/28px 150px 28px 28px}.p-b .shot-frame{aspect-ratio:3/4;background:#e2ebd6;border:1.5px solid #b7c6af;border-radius:999px 999px 28px 28px}.p-c .shot-frame{aspect-ratio:21/9;background:#c7f542;border-radius:28px 28px 260px/28px 28px 130px}.orbit-deco{opacity:.28;z-index:-1;pointer-events:none;border:1.5px solid #123c2b;border-radius:50%;transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .4s;position:absolute;inset:-7% -9%;transform:rotate(-9deg)}.p-b .orbit-deco{inset:8% -18%;transform:rotate(-24deg)}.proj:hover .orbit-deco,.proj:focus-within .orbit-deco{opacity:.7;transform:rotate(4deg)scale(1.03)}.proj:hover .shot-frame,.proj:focus-within .shot-frame{transform:translateY(-8px)}.shot-img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block;position:absolute;inset:0}.ph{text-align:center;background-image:repeating-linear-gradient(135deg,#14251b0f 0 2px,#0000 2px 16px);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:28px;display:flex;position:absolute;inset:0}.ph-dark{color:#fafcf7;background-image:repeating-linear-gradient(135deg,#fafcf712 0 2px,#0000 2px 16px)}.ph-dark .ph-sub{color:#c9d8cd}.ph-title{font-size:18px;font-weight:600}.ph-sub{color:#2e4135;font-size:12px}.p-meta{grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:6px 18px;margin-top:32px;display:grid}.p-num{color:#4c5f52}.p-meta h3{margin:0;font-size:clamp(34px,3.6vw,56px);line-height:1}.p-body{grid-column:2}.p-desc{color:#2e4135;max-width:42ch;margin:10px 0 0}.todo{color:#4c5f52;letter-spacing:.02em;border:1.5px dashed #6f8475;border-radius:10px;align-items:center;gap:8px;margin-top:12px;padding:7px 12px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px;display:inline-flex}.p-link{color:#123c2b;border-bottom:3px solid #c7f542;align-items:center;gap:8px;min-height:44px;margin-top:18px;padding:0 2px;font-weight:600;text-decoration:none;transition:border-color .25s,gap .25s;display:inline-flex}.p-link:hover{color:#123c2b;border-color:#123c2b;gap:12px}.arch{margin-top:160px}.arch-head{border-bottom:2px solid #14251b;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 32px;padding-bottom:22px;display:flex}.arch-head h3{margin:0;font-size:clamp(30px,3vw,44px);line-height:1.05}.arch-head p{color:#2e4135;max-width:46ch;margin:0;font-size:17px}.arch-list{margin:0;padding:0;list-style:none}.arch-row{border-bottom:1px solid #c9d5c2;grid-template-columns:72px minmax(0,1.1fr) minmax(0,2fr) auto;align-items:center;gap:28px;padding:28px 0;display:grid}.arch-thumb{color:#4c5f52;border:1.5px dashed #6f8475;border-radius:50%;place-items:center;width:72px;height:72px;display:grid}.arch-logo,.arch-mono{border:none;overflow:hidden}.arch-logo img{object-fit:cover;width:100%;height:100%;display:block}.arch-mono{letter-spacing:0;font-size:32px;line-height:1}.arch-row h4{margin:0;font-size:30px;line-height:1.05}.arch-row .todo{margin-top:0}.badge{color:#2e4135;letter-spacing:.04em;white-space:nowrap;background:#fafcf7;border:1.5px solid #6f8475;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;display:inline-flex}.proc-head{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;gap:40px;display:grid}.steps-wrap{margin-top:88px;position:relative}.steps-line{pointer-events:none;width:100%;height:140px;position:absolute;top:0;left:0;overflow:visible}.orbit-path{stroke-dasharray:2 12;animation:50s linear infinite dash}@keyframes dash{to{stroke-dashoffset:-700px}}.steps{grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid;position:relative}.step{text-align:center;flex-direction:column;align-items:center;padding:0 14px;display:flex}.step:first-child,.step:nth-child(5){margin-top:86px}.step:nth-child(2),.step:nth-child(4){margin-top:26px}.step:nth-child(3){margin-top:6px}.node{z-index:1;background:#fafcf7;border:2px solid #123c2b;border-radius:50%;place-items:center;width:28px;height:28px;transition:transform .4s cubic-bezier(.2,.8,.2,1);display:grid;position:relative}.node:after{content:"";background:#c7f542;border:1.5px solid #123c2b;border-radius:50%;width:12px;height:12px}.node-last{background:#c7f542}.node-last:after{background:#123c2b;border:0;width:8px;height:8px}.step:hover .node{transform:scale(1.25)}.step .mono{color:#4c5f52;margin-top:22px}.step h3{margin:8px 0 10px;font-size:26px;line-height:1.08}.step p{color:#2e4135;max-width:24ch;margin:0;font-size:16px;line-height:1.55}.contact{color:#fafcf7;background:#123c2b;border-radius:50% 50% 0 0/120px 120px 0 0;padding:150px 0 140px;position:relative;overflow:hidden}.c-orbits{pointer-events:none;opacity:.9;width:70%;position:absolute;bottom:-30%;left:-12%}.c-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:72px;display:grid;position:relative}.contact .sec-label{color:#c9d8cd}.contact .sec-label:before{border-color:#c7f542}.c-h{color:#fafcf7;margin:20px 0 0;font-size:clamp(44px,6vw,92px);line-height:.95}.c-h span{color:#c7f542;display:block}.c-lead{color:#c9d8cd;text-wrap:pretty;max-width:34ch;margin:28px 0 0;font-size:20px}.c-list{color:#e3ece5;flex-direction:column;gap:14px;margin:36px 0 0;padding:0;font-size:17px;list-style:none;display:flex}.c-list li{align-items:baseline;gap:14px;display:flex}.c-list li:before{content:"";border:1.5px solid #c7f542;border-radius:50%;flex:none;width:18px;height:8px;transform:translateY(-2px)}.card{color:#14251b;background:#fafcf7;border-radius:32px;padding:44px;box-shadow:0 30px 60px -30px #00000073}.form{flex-direction:column;gap:22px;display:flex}.f-row{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:22px;display:grid}.field{flex-direction:column;gap:8px;display:flex}.field label{font-size:15px;font-weight:600}.opt{color:#4c5f52;font-weight:400}.inp{color:#14251b;background:#fff;border:1.5px solid #6f8475;border-radius:14px;width:100%;min-height:56px;padding:14px 16px;font:400 17px/1.4 Instrument Sans,system-ui,sans-serif;transition:border-color .2s,box-shadow .2s,background-color .2s}.inp::placeholder{color:#6a7d6f}.inp:hover{border-color:#123c2b}.inp:focus{border-color:#123c2b;outline:none;box-shadow:0 0 0 4px #c7f542}textarea.inp{resize:vertical;min-height:168px;line-height:1.5}.is-invalid .inp{background:#fff8f6;border-color:#b3261e}.is-invalid .inp:focus{box-shadow:0 0 0 4px #ffd3cc}.inp[disabled]{color:#4c5f52;cursor:progress;background:#f1f4ee}.err{color:#b3261e;align-items:flex-start;gap:8px;font-size:14.5px;font-weight:500;line-height:1.4;display:flex}.err svg{flex:none;margin-top:1px}.summary{color:#7a1a14;background:#fdecea;border:1.5px solid #b3261e;border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;font-size:15.5px;line-height:1.45;display:flex}.alert-err{color:#7a1a14;background:#fdecea;border:1.5px solid #b3261e;border-radius:16px;align-items:flex-start;gap:14px;padding:16px 18px;font-size:15.5px;line-height:1.5;display:flex}.alert-err strong{color:#7a1a14;display:block}.form-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px 28px;margin-top:4px;display:flex}.privacy{color:#4c5f52;max-width:40ch;margin:0;font-size:14px;line-height:1.5}.privacy a{color:#123c2b;font-weight:600}.spinner{width:20px;height:20px}.spinner .sat{transform-origin:10px 10px;animation:1s linear infinite orbit}@keyframes orbit{to{transform:rotate(360deg)}}.sending-note{color:#2e4135;margin:0;font-size:15px}.success{flex-direction:column;align-items:flex-start;gap:18px;padding:12px 0;display:flex}.success h3{margin:0;font-size:44px;line-height:1}.success p{color:#2e4135;max-width:40ch;margin:0}.pop{animation:.7s cubic-bezier(.2,.9,.3,1.3) both pop}@keyframes pop{0%{opacity:0;transform:scale(.6)rotate(-20deg)}to{opacity:1;transform:none}}.foot{background:#fafcf7;padding:36px 0 40px}.foot-in{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;display:flex}.foot-meta{color:#4c5f52;flex-wrap:wrap;align-items:center;gap:8px 28px;font-size:15px;display:flex}.foot-meta a{color:#14251b;align-items:center;min-height:44px;display:inline-flex}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal{animation:linear both reveal;animation-timeline:view();animation-range:entry entry 45%}}}@keyframes reveal{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}@media (width<=960px){.nav-links{display:none}.menu-btn{display:inline-flex}.nav-cta{display:none}.hero{padding:32px 0 72px}.hero-grid{grid-template-columns:minmax(0,1fr);gap:8px}.hero-art{width:100%;max-width:440px;margin:8px auto 0}.fig{right:12px}.sec{padding:88px 0}.svc-grid{grid-template-columns:minmax(0,1fr);gap:40px}.svc-head{position:static}.svc-item{grid-template-columns:minmax(0,1fr);gap:12px;padding:32px 4px}.svc-ico{order:-1;width:72px;height:72px}.svc-num{padding-top:0}.proj-grid{grid-template-columns:minmax(0,1fr);gap:64px;margin-top:56px}.p-a,.p-b,.p-c{grid-column:1/-1;margin-top:0}.p-b .shot{max-width:320px}.arch{margin-top:100px}.arch-row{grid-template-columns:56px minmax(0,1fr);gap:10px 18px}.arch-thumb{grid-row:span 3;align-self:start;width:56px;height:56px}.arch-mono,.arch-row h4{font-size:26px}.arch-row .todo,.arch-row .badge{justify-self:start}.proc-head{grid-template-columns:minmax(0,1fr);gap:0}.steps-wrap{margin-top:56px}.steps-line{display:none}.steps{grid-template-columns:minmax(0,1fr);gap:36px}.steps:before{content:"";border-left:2px dashed #6f8475;position:absolute;top:14px;bottom:30px;left:13px}.step,.step:nth-child(n){text-align:left;align-items:flex-start;margin-top:0;padding:0 0 0 52px;position:relative}.node{position:absolute;top:0;left:0}.step .mono{margin-top:2px}.contact{border-radius:50% 50% 0 0/56px 56px 0 0;padding:110px 0 96px}.c-grid{grid-template-columns:minmax(0,1fr);gap:48px}.c-orbits{opacity:.6;width:160%;top:0;bottom:auto;left:-40%}}@media (width<=600px){.wrap{padding:0 20px}.fl{font-size:17px}.lead{font-size:18px}.cta-row .btn{width:100%}.seed{display:none}.card{border-radius:24px;padding:28px 22px}.form-foot .btn{width:100%}.p-a .shot-frame{border-radius:22px 120px 22px 22px/22px 80px 22px 22px}.p-c .shot-frame{aspect-ratio:16/10;border-radius:22px 22px 120px/22px 22px 80px}}@media (prefers-reduced-motion:reduce){.tilt,.draw,.rise,.orbit-path,.pop,.spinner .sat{animation:none}.draw{stroke-dashoffset:0}.seed{display:none}.fl *,.fl :before,.fl :after{transition-duration:.01ms!important}}.fl [hidden]{display:none!important}.proj-sec{overflow-x:clip}html{scroll-behavior:smooth;scroll-padding-top:76px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.contact{scroll-margin-top:-110px}@media (width<=960px){.contact{scroll-margin-top:-70px}}.lang{letter-spacing:.08em;color:#6f8475;align-items:center;gap:2px;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:13px;font-weight:500;display:inline-flex}.lang a{color:#4c5f52;border-radius:8px;justify-content:center;align-items:center;min-width:40px;min-height:44px;padding:0 4px;text-decoration:none;transition:color .25s;display:inline-flex}.lang a:hover{color:#14251b}.lang a[aria-current=page]{color:#14251b;text-underline-offset:5px;font-weight:700;-webkit-text-decoration:underline #c7f542;text-decoration:underline #c7f542;text-decoration-thickness:3px}.m-panel .lang{justify-content:center;margin-top:16px;font-size:15px;display:flex}.m-panel .lang a{letter-spacing:.08em;border-bottom:0;min-width:56px;min-height:48px;font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:15px;font-weight:500;display:inline-flex}.m-panel .lang a[aria-current=page]{font-weight:700}@media (width<=600px){.nav-right>.lang{display:none}}
