:root{--lime: #8cc63f;--lime-ink: #3c6310;--ink: #171816;--ink-2: #464943;--ink-3: #62655e;--paper: #f4f3ee;--paper-2: #e9e8e1;--line: #d4d3cb;--char: #1f201e;--char-2: #181917;--char-3: #111210;--on-dark: #c8cbc3;--on-dark-2: #9a9d95;--line-dark: #363833;--font: "Archivo", system-ui, sans-serif;--gutter: clamp(16px, 5vw, 72px);--section: clamp(72px, 9vw, 128px)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:17px;background:var(--paper);color:var(--ink);line-height:1.6;font-variation-settings:"wdth" 100}img{max-width:100%;height:auto;display:block}a{color:var(--lime-ink);text-underline-offset:3px}a:hover{color:var(--ink)}:focus-visible{outline:3px solid var(--lime);outline-offset:2px}h1,h2,h3,p,figure{margin:0}.wrap{padding-inline:var(--gutter);max-width:1360px;margin-inline:auto}.section{padding-block:var(--section)}.stack{display:flex;flex-direction:column;gap:var(--gap, 16px)}.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:100;background:var(--lime);color:var(--char-3);padding:12px 16px}.display{font-weight:700;font-stretch:72%;font-variation-settings:"wdth" 72;line-height:.98;letter-spacing:-.02em;text-wrap:balance}.h1{font-size:clamp(46px,6.4vw,92px)}.h2{font-size:clamp(36px,4.2vw,60px)}.h3{font-size:26px;font-weight:700;font-stretch:85%;font-variation-settings:"wdth" 85;line-height:1.15}.label{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:600;color:var(--lime-ink)}.label:before{content:"";width:28px;height:2px;background:currentColor}.dark .label{color:var(--lime)}.lead{font-size:clamp(18px,1.5vw,21px);line-height:1.55;color:var(--ink-2);max-width:62ch;text-wrap:pretty}.muted{color:var(--ink-2)}.small{font-size:14px}.dark{background:var(--char);color:#fff}.dark .lead,.dark .muted{color:var(--on-dark)}.dots{background-color:var(--char);background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1.6px);background-size:7px 7px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;font:inherit;font-weight:600;font-size:16px;text-decoration:none;border:0;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}.btn-lime{background:var(--lime);color:var(--char-3)}.btn-lime:hover{background:#a2d85a;color:var(--char-3)}.btn-ghost{border:1.5px solid #686b64;color:#fff}.btn-ghost:hover{border-color:#fff;color:#fff}.btn-dark{background:var(--char-2);color:#fff}.btn-dark:hover{background:#000;color:#fff}.btn:disabled{opacity:.6;cursor:progress}.btns{display:flex;flex-wrap:wrap;gap:14px}.textlink{font-weight:600;text-decoration:none;border-bottom:2px solid var(--lime);color:var(--ink);padding-bottom:2px}.textlink:hover{color:var(--lime-ink)}.dark .textlink{color:#fff}.site-header{position:sticky;top:0;z-index:50;background:var(--char-2);border-bottom:1px solid var(--line-dark)}.site-header .wrap{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{display:inline-flex;align-items:flex-end;text-decoration:none;font-weight:800;font-style:italic;font-stretch:70%;font-variation-settings:"wdth" 70;font-size:36px;line-height:1;color:#fff}.logo:hover{color:#fff}.logo b{color:var(--lime);font-weight:800}.logo svg{margin:0 0 17px 2px}.nav{display:flex;align-items:center;gap:32px;font-size:15px;font-weight:500}.nav a:not(.btn){color:#d8dad4;text-decoration:none}.nav a:not(.btn):hover,.nav a[aria-current=page]{color:var(--lime)}.lang-switch{display:flex;gap:2px;font-size:13px;font-weight:600}.lang-switch a,.lang-switch span{padding:6px 8px}.lang-switch span{color:var(--char-3);background:var(--on-dark)}.menu-btn{display:none;background:none;border:0;color:#fff;width:48px;height:48px;padding:12px;cursor:pointer}@media(max-width:980px){.menu-btn{display:block}.nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--char-2);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--gutter) 24px;border-bottom:1px solid var(--line-dark)}.nav.open{display:flex}.nav a:not(.btn){padding:14px 0;border-bottom:1px solid var(--line-dark);font-size:18px}.nav .lang-switch{padding:16px 0}}.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:min(760px,calc(100vh - 76px))}.hero-copy{padding:clamp(56px,8vw,104px) clamp(32px,5vw,72px) clamp(56px,8vw,104px) max(var(--gutter),calc((100vw - 1360px) / 2 + var(--gutter)));--gap: 28px;justify-content:center}.hero figure{position:relative;border-left:6px solid var(--lime)}.hero figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}.hero figure figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 20px 14px;background:linear-gradient(transparent,#000000b8);color:#d7d9d2}@media(max-width:900px){.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:56px var(--gutter)}.hero figure{border-left:0;border-top:6px solid var(--lime);height:320px}}.page-hero{padding-block:clamp(64px,8vw,112px) clamp(56px,6vw,88px);--gap: 22px}.crumbs{font-size:14px;color:var(--on-dark-2)}.crumbs a{color:var(--on-dark)}.facts{background:var(--char-2);border-top:1px solid var(--line-dark)}.facts dl{margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.facts dl>div{padding:28px 24px 28px 0}.facts dl>div+div{padding-left:24px;border-left:1px solid var(--line-dark)}.facts dt{font-size:13px;color:var(--on-dark-2)}.facts dd{margin:4px 0 0;font-size:17px;font-weight:600;color:#fff;line-height:1.35}@media(max-width:900px){.facts dl{grid-template-columns:repeat(2,minmax(0,1fr))}.facts dl>div,.facts dl>div+div{padding:20px 0;border-left:0;border-top:1px solid var(--line-dark)}.facts dl>div:nth-child(2n){padding-left:16px}}.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:24px 64px;align-items:end;margin-bottom:clamp(40px,5vw,64px)}.sec-head>.stack{--gap: 18px}@media(max-width:860px){.sec-head{grid-template-columns:1fr}}.svc-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}.svc-list a{display:grid;grid-template-columns:56px minmax(0,1fr) minmax(0,1.3fr) 32px;gap:24px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:background-color .15s,padding .15s}.svc-list .num{font-size:14px;font-weight:600;color:var(--ink-3);font-variant-numeric:tabular-nums}.svc-list .h3{font-size:clamp(22px,2.2vw,28px)}.svc-list p{color:var(--ink-2);font-size:16px}.svc-list .arr{justify-self:end;color:var(--ink-3);transition:transform .15s,color .15s}.svc-list a:hover{background:#fff;padding-inline:16px}.svc-list a:hover .arr{color:var(--lime-ink);transform:translate(4px)}@media(max-width:760px){.svc-list a{grid-template-columns:40px minmax(0,1fr) 24px;gap:8px 12px}.svc-list p{grid-column:2;grid-row:2}.svc-list .arr{grid-column:3;grid-row:1}}.fig{display:flex;flex-direction:column;gap:10px}.fig img{width:100%;background:var(--paper-2)}.fig.cover img{aspect-ratio:4 / 3;object-fit:cover;object-position:50% 45%}.credit{font-size:12px;line-height:1.4;color:var(--ink-3)}.credit a{color:inherit}.dark .credit,.hero .credit{color:#b9bcb4}.diagram img{background:#121614}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,6vw,96px);align-items:center}.split.top{align-items:start}@media(max-width:860px){.split{grid-template-columns:1fr}}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}@media(max-width:1080px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.grid-3{grid-template-columns:1fr}}.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.chips li{padding:7px 12px;border:1px solid var(--line);background:#fff;font-size:14px}.dark .chips li,.band .chips li{background:transparent;border-color:#4a4d47;color:#e4e6e1}.band{background:var(--char-2);color:#fff}.band .wrap{padding-block:var(--section)}.project{background:#fff;display:flex;flex-direction:column}.project>img,.project .ph{aspect-ratio:3 / 2;width:100%;object-fit:cover;object-position:50% 45%}.ph{display:flex;align-items:center;justify-content:center;background:var(--paper-2);color:var(--ink-3);font-size:14px;border-bottom:1px solid var(--line)}.project-body{padding:28px;--gap: 12px;flex-grow:1}.project-body .tag{font-size:13px;font-weight:600;color:var(--lime-ink)}.project-body h3{font-size:21px;font-weight:600;line-height:1.3}.project-body p{font-size:15px;color:var(--ink-2)}.project-body strong{color:var(--ink)}.results{display:flex;gap:28px;flex-wrap:wrap;padding-top:16px;margin-top:auto;border-top:1px solid var(--line)}.results b{display:block;font-size:34px;font-weight:700;font-stretch:72%;font-variation-settings:"wdth" 72;line-height:1.05}.results span{font-size:13px;color:var(--ink-3)}.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));counter-reset:step}.steps li{position:relative;padding:32px 24px 0 0;--gap: 10px;counter-increment:step;border-top:2px solid var(--ink)}.steps li:before{content:counter(step);position:absolute;top:-15px;left:0;width:28px;height:28px;display:grid;place-items:center;background:var(--lime);color:var(--char-3);font-size:14px;font-weight:700;border-radius:50%}.steps h3{font-size:19px;font-weight:600}.steps p{font-size:15px;color:var(--ink-2)}@media(max-width:960px){.steps{grid-template-columns:1fr}.steps li{border-top:0;border-left:2px solid var(--ink);padding:0 0 32px 32px}.steps li:last-child{padding-bottom:0}.steps li:before{top:0;left:-15px}}.values{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink)}.values li{padding:28px 28px 0 0;--gap: 10px}.values li+li{padding-left:28px;border-left:1px solid var(--line)}.values h3{font-size:20px;font-weight:600}.values p{color:var(--ink-2);font-size:16px}@media(max-width:860px){.values{grid-template-columns:1fr}.values li,.values li+li{padding:24px 0;border-left:0;border-bottom:1px solid var(--line)}}.contact-list{--gap: 16px;list-style:none;margin:0;padding:8px 0 0}.contact-list a,.contact-list li{display:flex;align-items:flex-start;gap:14px;color:#fff;text-decoration:none;font-size:18px;line-height:1.5}.contact-list a:hover{color:var(--lime)}.contact-list svg{flex-shrink:0;margin-top:3px}.form{background:var(--paper);color:var(--ink);padding:clamp(24px,4vw,44px);--gap: 20px}.form .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:560px){.form .row{grid-template-columns:1fr}}.field{--gap: 8px}.field>label,.field>.flabel{font-size:14px;font-weight:600}.opt{font-weight:400;color:var(--ink-3)}.field input,.field textarea,.field select{width:100%;min-height:48px;padding:10px 14px;border:1.5px solid #a3a69e;background:#fff;font:inherit;font-size:16px;color:var(--ink);border-radius:0}.field select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23171816' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:40px}.field textarea{resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink);outline:2px solid var(--lime);outline-offset:0}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:#b3261e}.drop{position:relative;display:flex;align-items:center;gap:16px;padding:18px 20px;border:1.5px dashed #a3a69e;background:#fff;cursor:pointer;transition:border-color .15s,background-color .15s}.drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.drop:hover,.drop.over{border-color:var(--ink);background:#fbfbf8}.drop:focus-within{outline:2px solid var(--lime);outline-offset:0;border-color:var(--ink)}.drop-icon{flex-shrink:0;width:44px;height:44px;display:grid;place-items:center;background:var(--paper-2);color:var(--ink)}.drop-text{display:flex;flex-direction:column;font-size:15px;line-height:1.4;min-width:0}.drop-text strong{font-weight:600}.drop-text strong u{text-decoration-color:var(--lime);text-decoration-thickness:2px;text-underline-offset:3px}.drop-text span{font-size:13px;color:var(--ink-3)}.drop.has-file{border-style:solid;border-color:var(--lime-ink)}.drop.has-file .drop-icon{background:var(--lime)}.drop-file{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drop-clear{position:relative;z-index:1;margin-left:auto;flex-shrink:0;background:none;border:0;font:inherit;font-size:14px;color:var(--ink-2);text-decoration:underline;cursor:pointer;min-height:44px;padding:0 4px}.form .btn{min-height:56px;font-size:17px}.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--ink-2)}.check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--lime-ink);flex-shrink:0}.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--lime-ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.hp{position:absolute;left:-9999px}.alert{display:flex;gap:12px;padding:14px 16px;font-size:15px;line-height:1.45}.alert[hidden]{display:none}.alert svg{flex-shrink:0;margin-top:1px}.alert.ok{background:#e7f2d6;color:#24400a}.alert.err{background:#fbe4e2;color:#7a1712}.alert a{color:inherit}.modal{width:min(680px,calc(100vw - 32px));max-height:min(80vh,760px);padding:0;border:0;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px #00000059}.modal::backdrop{background:#111210b3}.modal[open]{display:flex;flex-direction:column}.modal header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line);background:#fff}.modal header h2{font-size:24px}.modal .modal-body{padding:8px 24px 24px;overflow-y:auto}.modal footer{padding:16px 24px;border-top:1px solid var(--line);background:#fff;display:flex;justify-content:flex-end}.icon-btn{width:44px;height:44px;display:grid;place-items:center;background:none;border:0;cursor:pointer;color:var(--ink)}.icon-btn:hover{background:var(--paper-2)}.detail{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(40px,6vw,88px);align-items:start}.detail h2{font-size:28px;margin-bottom:18px}.detail section+section{margin-top:56px}.ticks{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.ticks li{position:relative;padding:12px 0 12px 32px;border-bottom:1px solid var(--line)}.ticks li:before{content:"";position:absolute;left:4px;top:21px;width:12px;height:7px;border-left:2.5px solid var(--lime-ink);border-bottom:2.5px solid var(--lime-ink);transform:rotate(-45deg)}.aside{background:#fff;padding:32px;border-top:4px solid var(--lime);--gap: 14px;position:sticky;top:100px}.aside h2{font-size:22px;margin:0}.aside nav{display:flex;flex-direction:column;gap:8px;font-size:15px}@media(max-width:860px){.detail{grid-template-columns:1fr}.aside{position:static}}.prose{max-width:720px;--gap: 14px}.prose h2{font-size:22px;font-weight:600;margin-top:20px}.prose ul{margin:0;padding-left:20px}.nf{min-height:60vh;display:flex;align-items:center}.nf-code{font-size:clamp(120px,20vw,260px);line-height:.8;color:var(--lime)}.nf-links{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 28px}.site-footer{background:var(--char-3);color:#a3a69e;font-size:14px}.site-footer .wrap{display:grid;grid-template-columns:auto 1fr auto;gap:20px 40px;align-items:center;padding-block:36px}.site-footer a,.site-footer .linkbtn{color:#cfd1ca}.site-footer a:hover,.site-footer .linkbtn:hover{color:#fff}.site-footer .logo{font-size:30px}@media(max-width:800px){.site-footer .wrap{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}.split:has(>.diagram){grid-template-columns:1fr;gap:40px}.split:has(>.diagram)>.stack{max-width:760px}.diagram{width:100%}.sent-dialog{width:min(460px,calc(100vw - 32px));padding:36px 32px;border:0;border-top:4px solid var(--lime);background:#fff;color:var(--ink);box-shadow:0 24px 64px #00000059}.sent-dialog::backdrop{background:#11121099}.sent-dialog[open]{animation:sent-in .2s ease-out}.sent-dialog h2{margin:0;font-size:26px}.sent-dialog p{margin:0}.sent-dialog .btn{margin-top:10px}.sent-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--lime);color:var(--char-3)}@keyframes sent-in{0%{opacity:0;transform:translateY(12px)}}@media(prefers-reduced-motion:reduce){.sent-dialog[open]{animation:none}}
