/* fonts.css */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/assets/fonts/dm-sans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/instrument-serif-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/instrument-serif-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/fonts/manrope-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* styles.css */
:root{--paper:#eeefe7;--ink:#1b302b;--muted:#586660;--line:#cbd1c4;--accent:#c7eb81;--serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--display:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #4f7734;outline-offset:6px}::selection{background:var(--accent);color:var(--ink)}h1,h2,h3,p{margin:0}em{font-family:var(--serif);font-weight:400}svg{display:block}.section-shell{max-width:1440px;padding-left:6.2%;padding-right:6.2%;margin-inline:auto}.reading-progress{height:3px;position:fixed;top:0;left:0;width:100%;background:#638145;transform:scaleX(0);transform-origin:left;z-index:40}.header{height:112px;max-width:1440px;margin:auto;padding:0 6.2%;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;gap:17px;align-items:center}.brand-mark{font-family:var(--display);font-size:42px;letter-spacing:-4px;font-weight:800}.brand-mark>span{color:#638145}.brand-name{font-size:12px;font-weight:650;letter-spacing:1px;line-height:1.9}.brand-name>span{font-size:10px;letter-spacing:.7px;color:var(--muted)}nav{display:flex;align-items:center;gap:34px;font-size:14px}nav>a{position:relative}nav>a:not(.nav-contact):after{content:'';position:absolute;left:0;right:0;bottom:-7px;background:var(--ink);height:1px;transform:scaleX(0);transform-origin:left;transition:transform .25s}nav>a:hover:after{transform:scaleX(1)}.nav-contact{display:flex;align-items:center;gap:15px;border:1px solid var(--ink);padding:13px 19px;border-radius:40px;transition:background .25s}.nav-contact:hover{background:var(--accent)}.contact-dot{width:7px;height:7px;border:1px solid currentColor;border-radius:50%}.hero{padding-top:34px}.hero-topline{display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:12px;letter-spacing:1.6px;font-weight:600;display:flex;align-items:center;gap:12px}.tiny-cross{font-size:24px;font-weight:400;line-height:1}.hero-location{font-size:11px;letter-spacing:1px;color:var(--muted)}.hero-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:38px;align-items:center;padding-top:38px}.hero h1{font-family:var(--display);font-size:clamp(64px,7.7vw,112px);line-height:1.03;letter-spacing:-6px;font-weight:600}.hero h1 em{color:#547438;letter-spacing:-3px;font-size:1.15em;line-height:.95}.hero-description{color:var(--muted);line-height:1.65;font-size:17px;max-width:440px;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;border-radius:40px;font-size:14px;font-weight:500;padding:19px 25px;transition:background .25s,transform .25s}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:#355344;transform:translateY(-3px)}.button svg{width:21px;height:21px}.hero .button{margin-top:27px}.hero-system{position:relative;width:100%;aspect-ratio:1.05;background:radial-gradient(ellipse at 50% 52%,#dce2cd 0,transparent 64%);margin-top:18px}.system-top{position:absolute;top:0;left:6%;right:6%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.5px;color:var(--muted)}.system-lines{width:100%;height:100%;position:absolute;inset:0;fill:none;stroke:#a6b299;stroke-width:.7}.system-lines circle{stroke-dasharray:3 5}.system-lines .signal-line{stroke:#5b7c38;stroke-width:1.4;stroke-dasharray:8 280;animation:signal 9s linear infinite}.system-node{position:absolute;display:flex;align-items:center;gap:12px;padding:14px 17px;background:#f7f8f0;border:1px solid #cbd3c2;box-shadow:0 10px 28px #1b302b06;font-size:11px;font-weight:600;letter-spacing:1px;border-radius:3px}.system-node small{display:block;color:var(--muted);font-size:11px;letter-spacing:0;font-weight:400;padding-top:5px}.node-icon{width:30px;height:30px;display:grid;place-items:center;font-size:25px;font-weight:400;border:1px solid #d3d9cb;border-radius:50%}.node-operation{top:18%;left:-1%;transform:rotate(-5deg)}.node-data{top:18%;right:0;transform:rotate(4deg)}.node-systems{bottom:17%;left:38%;transform:rotate(-3deg)}.system-center{position:absolute;top:33%;left:32%;height:34%;width:34%;border-radius:50%;background:var(--ink);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;box-shadow:0 0 0 10px #eeefe7,0 0 0 11px #b7c2a9}.code-brackets{font-family:var(--serif);font-size:62px;line-height:1}.system-center>span:last-child{font-size:8px;letter-spacing:1px}.system-caption{position:absolute;bottom:1%;width:100%;text-align:center;font-size:10px;letter-spacing:1.5px;color:var(--muted)}.diagram-corner{position:absolute;width:12px;height:12px;border-color:#85937c;border-style:solid}.corner-tl{top:10%;left:5%;border-width:1px 0 0 1px}.corner-br{bottom:8%;right:5%;border-width:0 1px 1px 0}.hero-bottom{margin-top:60px;padding:24px 0 29px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.hero-note,.scroll-cue{font-size:11px;letter-spacing:1.1px;color:var(--muted)}.scroll-cue{display:flex;gap:20px;align-items:center}.scroll-cue span{font-size:24px;color:var(--ink)}.expertise-strip{max-width:1440px;margin:auto;padding:26px 6.2%;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:1px}.expertise-strip i{font-size:17px;font-style:normal;color:#6a824b}.services{padding-top:112px;padding-bottom:115px}.section-intro{display:grid;grid-template-columns:1fr 1fr;column-gap:60px;align-items:end}.section-intro .eyebrow{grid-column:1/-1;margin-bottom:27px}h2{font-family:var(--display);font-size:clamp(36px,4vw,60px);font-weight:500;line-height:1.12;letter-spacing:-2.5px}h2 em{font-size:1.13em}.section-intro>p:last-child{color:var(--muted);line-height:1.7;font-size:16px;padding-bottom:5px;max-width:400px}.service-list{margin-top:65px}.service-row{display:grid;grid-template-columns:70px 1fr 66px;gap:28px;padding:33px 0;border-top:1px solid var(--line);align-items:start}.service-row:last-child{border-bottom:1px solid var(--line)}.service-number{font-family:var(--serif);font-size:29px;color:#6b7b62;line-height:1.3}.service-row h3{font-family:var(--display);font-size:28px;font-weight:500;letter-spacing:-1px}.service-row p{font-size:16px;line-height:1.65;color:var(--muted);max-width:640px;margin-top:12px}.service-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:21px}.service-tags span{font-size:10px;letter-spacing:.8px;border:1px solid #cbd1c4;border-radius:20px;padding:6px 10px}.service-contact{width:50px;height:50px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:background .25s,transform .25s}.service-contact:hover{background:var(--accent);transform:rotate(-7deg)}.service-contact svg{width:24px;height:24px}.contact{padding-top:100px;padding-bottom:100px;border-top:1px solid var(--line)}.contact h2{margin-top:26px;font-size:clamp(42px,5vw,76px)}.contact>p:not(.eyebrow){margin:24px 0;color:var(--muted);line-height:1.7}.footer{padding-top:29px;padding-bottom:29px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.footer>span:nth-child(2){letter-spacing:1px}.js-motion .reveal{opacity:0;transform:translateY(25px);transition:opacity .8s,transform .8s}.js-motion .reveal.visible{opacity:1;transform:translateY(0)}@keyframes signal{to{stroke-dashoffset:-576}}@media(min-width:1441px){.section-shell,.header{padding-left:90px;padding-right:90px}.expertise-strip{padding-left:90px;padding-right:90px}}@media(max-width:1050px){.header{height:95px}.brand-name{display:none}nav{gap:20px}.hero h1{letter-spacing:-4px}.hero-grid{gap:20px}.system-node{padding:10px;gap:8px;font-size:10px}.system-node small{font-size:10px}.node-icon{width:24px;height:24px}.system-center>span:last-child{font-size:6px}.code-brackets{font-size:48px}.section-intro{gap:30px}.expertise-strip{font-size:9px;gap:10px}}@media(max-width:700px){html{scroll-padding-top:20px}.section-shell{padding-inline:6%}.header{height:85px;padding-inline:6%;gap:12px}.brand-mark{font-size:36px}nav{gap:14px;font-size:12px}nav>a[href='#experiencia']{display:none}.nav-contact{padding:10px 13px;gap:10px}.hero{padding-top:20px}.hero-location{display:none}.eyebrow{font-size:10px;letter-spacing:1.3px}.hero-grid{grid-template-columns:1fr;padding-top:25px;gap:12px}.hero h1{font-size:clamp(60px,13.6vw,91px);letter-spacing:-3.5px;line-height:1.04}.hero h1 em{letter-spacing:-2px}.hero-description{font-size:16px;margin-top:25px}.desktop-break{display:none}.hero .button{margin-top:23px}.hero-system{width:100%;max-width:460px;margin:25px auto 0;aspect-ratio:1.2}.system-node{font-size:10px;padding:11px}.system-node small{font-size:10px}.system-center>span:last-child{font-size:7px}.node-operation{left:1%}.node-data{right:1%}.code-brackets{font-size:51px}.hero-bottom{margin-top:20px;padding-top:18px;padding-bottom:20px;gap:15px}.hero-note{font-size:9px;max-width:150px;line-height:1.7}.scroll-cue{font-size:9px;gap:10px}.expertise-strip{display:grid;grid-template-columns:1fr 1fr;padding:23px 6%;gap:17px;font-size:9px}.expertise-strip i{display:none}.services{padding-top:72px;padding-bottom:75px}.section-intro{grid-template-columns:1fr;gap:22px}.section-intro .eyebrow{margin:0}.section-intro>p:last-child{font-size:16px}h2{font-size:clamp(35px,8.2vw,53px);letter-spacing:-1.5px}.service-list{margin-top:36px}.service-row{grid-template-columns:28px 1fr 40px;gap:12px;padding-block:28px}.service-number{font-size:23px}.service-row h3{font-size:23px;letter-spacing:-.7px}.service-row p{font-size:15px;margin-top:12px}.service-tags{gap:6px;margin-top:16px}.service-tags span{font-size:8px;letter-spacing:.5px;padding:5px 8px}.service-contact{width:36px;height:36px}.service-contact svg{width:19px;height:19px}.contact{padding-block:70px}.contact h2{font-size:43px;letter-spacing:-1.6px}.footer{flex-wrap:wrap;font-size:10px;padding-block:24px}.footer>span:nth-child(2){display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}}

/* narrative.css */
.flow-section{--flow-progress:0;background:var(--ink);color:var(--paper);position:relative}
.flow-sticky{position:relative;display:grid;grid-template-columns:.94fr 1.06fr;align-items:center;gap:60px;padding-top:90px;padding-bottom:90px}
.flow-copy .eyebrow{color:#acbdab;font-size:12px}.flow-copy h2{font-size:clamp(44px,4.9vw,70px);margin-top:30px;line-height:1.12}.flow-copy h2 em{color:var(--accent)}.flow-copy>p:not(.eyebrow){color:#bcc9bd;font-size:16px;line-height:1.7;max-width:360px;margin-top:30px}
.flow-stages{display:flex;flex-wrap:wrap;gap:20px;margin-top:42px;font-size:12px;letter-spacing:.7px;color:#839688}.flow-stages span{padding-bottom:12px;border-bottom:1px solid #455a4b;transition:color .3s,border-color .3s}.flow-stages span.active{color:var(--accent);border-color:var(--accent)}
.flow-diagram{position:relative;width:100%;aspect-ratio:1.15}.flow-diagram-label,.flow-diagram-bottom{position:absolute;left:0;right:0;display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.5px;color:#a9bca9}.flow-diagram-label{top:-7%}.flow-diagram-bottom{bottom:-7%}.flow-diagram-bottom>span:last-child{font-size:24px}.flow-svg{height:100%;width:100%;overflow:visible}.flow-connector{fill:none;stroke:var(--accent);stroke-width:1.2;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--flow-progress));opacity:.8}.flow-orbit{fill:none;stroke:#536b53;stroke-width:.7;stroke-dasharray:3 5}.flow-outer-orbit{fill:none;stroke:#364d3c;stroke-width:.7}
.flow-node{position:absolute;display:flex;align-items:center;gap:10px;border:1px solid #5a745a;background:#21382d;padding:14px 15px;font-size:12px;letter-spacing:.6px;transition:background .3s}.flow-node small{display:block;font-size:12px;letter-spacing:0;color:#a7bba6;margin-top:5px}.flow-node-symbol{font-size:25px;color:var(--accent);font-weight:400}.flow-input{top:18%;left:-2%;transform:translateY(calc((1 - var(--flow-progress))*-12px)) rotate(calc((1 - var(--flow-progress))*-6deg))}.flow-data{bottom:12%;left:-2%;transform:translateY(calc((1 - var(--flow-progress))*12px)) rotate(calc((1 - var(--flow-progress))*4deg))}.flow-api{top:18%;right:-2%;transform:translateY(calc((1 - var(--flow-progress))*-12px)) rotate(calc((1 - var(--flow-progress))*5deg))}.flow-result{bottom:12%;right:-2%;background:color-mix(in srgb,#21382d,#526738 calc(var(--flow-progress)*65%));transform:translateY(calc((1 - var(--flow-progress))*12px)) rotate(calc((1 - var(--flow-progress))*-3deg))}.flow-core{position:absolute;left:35%;top:32%;width:30%;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:var(--accent);color:var(--ink);box-shadow:0 0 0 10px var(--ink),0 0 0 11px #536b53;transform:scale(calc(.93 + var(--flow-progress)*.07))}.flow-core>span{font-family:var(--serif);font-size:52px;line-height:1}.flow-core strong{font-size:12px;letter-spacing:.8px;font-weight:500}.flow-core small{font-size:12px}
.experience{padding-top:115px;padding-bottom:100px}.experience-heading .eyebrow{margin-bottom:30px}.experience-grid{display:grid;grid-template-columns:1fr 1.22fr;gap:90px;margin-top:68px}.experience-stat{padding-top:5px}.experience-years{font-family:var(--display);font-size:clamp(85px,10vw,145px);font-weight:500;letter-spacing:-8px;line-height:1}.experience-years>span{font-family:var(--serif);font-size:46px;letter-spacing:-1px;margin-left:15px;font-style:italic}.experience-stat>p{font-size:12px;letter-spacing:1.2px;margin-top:18px}.stat-rule{height:1px;background:var(--line);max-width:330px;margin-top:35px}.experience-stat .stat-description{font-size:16px;letter-spacing:0;color:var(--muted);line-height:1.7;margin-top:22px}.experience-story>p{font-size:16px;color:var(--muted);line-height:1.8;margin-bottom:22px}.experience-story .story-lead{font-size:23px;line-height:1.6;color:var(--ink);letter-spacing:-.4px}.education{display:flex;gap:16px;align-items:center;border-top:1px solid var(--line);padding-top:26px;margin-top:32px}.education-icon{font-size:35px;line-height:1}.education strong{display:block;font-size:14px;font-weight:500;margin-bottom:7px}.education div>span{display:block;font-size:14px;color:var(--muted);line-height:1.6}
.toolkit{padding-top:35px;padding-bottom:105px}.toolkit-intro{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:28px 60px}.toolkit-intro .eyebrow{grid-column:1/-1}.toolkit-intro>p:last-child{color:var(--muted);line-height:1.7;padding-bottom:5px}.toolkit-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:55px;gap:25px}.toolkit-group{border-top:1px solid var(--ink);padding-top:24px}.toolkit-number{font-size:12px;color:#6f7d65}.toolkit-group h3{font-size:19px;font-weight:500;letter-spacing:-.4px;margin-top:18px}.toolkit-group ul{padding:0;margin:22px 0 0;list-style:none;color:var(--muted);font-size:14px;line-height:1.7}.toolkit-group li+li{margin-top:9px}.additional-tech{display:flex;align-items:center;gap:28px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:14px;line-height:1.7}.additional-tech>span{font-size:12px;letter-spacing:.6px}
.method{padding-top:90px;padding-bottom:105px;background:#e4e8db;border-top:1px solid var(--line)}.method-heading .eyebrow{margin-bottom:29px}.method-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:58px;gap:35px}.method-grid article{border-top:1px solid #adb9a0;padding-top:24px}.method-grid article>span{font-family:var(--serif);font-size:29px;color:#627452}.method-grid h3{font-family:var(--display);font-size:24px;font-weight:500;letter-spacing:-.5px;margin-top:22px}.method-grid p{font-size:16px;color:var(--muted);line-height:1.7;margin-top:13px}
.contact{background:var(--ink);color:var(--paper);padding:0;border:0}.contact-inner{padding-top:85px;padding-bottom:85px}.contact-topline{display:flex;justify-content:space-between;align-items:center;gap:20px}.contact .eyebrow{font-size:12px;color:#b8c6b6}.contact-asterisk{font-size:68px;line-height:1;color:var(--accent)}.contact h2{font-size:clamp(55px,7.5vw,106px);font-weight:500;letter-spacing:-4px;line-height:1.12;margin-top:24px}.contact h2 em{color:var(--accent)}.contact-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:38px}.contact-bottom p{color:#bac9b8;font-size:16px;line-height:1.7}.button-accent{background:var(--accent);color:var(--ink)}.button-accent:hover{background:#d7f2a5;transform:translateY(-3px)}.footer{background:var(--paper)}
.service-tags span,.eyebrow,.hero-location,.hero-note,.scroll-cue,.expertise-strip,.system-top,.system-caption,.brand-name,.brand-name>span,.footer{font-size:12px}.system-node,.system-node small{font-size:12px}.system-center>span:last-child{font-size:12px;text-align:center;line-height:1.4;max-width:110px;letter-spacing:.5px}.system-center{gap:5px}.nav-contact,nav{font-size:14px}
@media(max-width:1050px){.flow-sticky{gap:32px}.flow-node{padding:10px;gap:7px}.flow-node-symbol{font-size:21px}.flow-core small{display:none}.flow-core>span{font-size:45px}.experience-grid{gap:50px}.toolkit-grid{grid-template-columns:repeat(2,1fr);gap:35px}.method-grid{gap:22px}.system-center>span:last-child{max-width:80px}.brand-name{display:none}}
@media(max-width:700px){.flow-section{height:auto;min-height:0;--flow-progress:1!important}.flow-sticky{position:relative;min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:50px;padding-top:70px;padding-bottom:70px}.flow-copy h2{font-size:49px;letter-spacing:-2px;margin-top:24px}.flow-copy>p:not(.eyebrow){max-width:100%;margin-top:23px}.flow-stages{margin-top:28px;gap:16px}.flow-diagram{width:100%;max-width:450px;margin:20px auto;aspect-ratio:1.05}.flow-diagram-label,.flow-diagram-bottom{letter-spacing:0}.flow-diagram-label>span:first-child{max-width:220px;line-height:1.5}.flow-diagram-bottom>span:first-child{max-width:230px}.flow-node{gap:6px;padding:9px 10px;letter-spacing:0}.flow-node small{max-width:90px;line-height:1.4}.flow-node-symbol{display:none}.flow-core>span{font-size:43px}.flow-core strong{letter-spacing:0}.flow-input,.flow-data{left:0}.flow-api,.flow-result{right:0}.flow-core{width:31%;left:34.5%;top:34%}.flow-input,.flow-api{top:18%}.flow-data,.flow-result{bottom:13%}.experience{padding-top:74px;padding-bottom:70px}.experience-heading .eyebrow{line-height:1.7;margin-bottom:24px}.experience-grid{grid-template-columns:1fr;gap:35px;margin-top:42px}.experience-years{font-size:106px;letter-spacing:-6px}.experience-years>span{font-size:40px}.stat-rule{max-width:100%;margin-top:27px}.experience-story .story-lead{font-size:21px}.toolkit{padding-top:10px;padding-bottom:70px}.toolkit-intro{grid-template-columns:1fr;gap:24px}.toolkit-grid{gap:32px 22px;margin-top:36px}.toolkit-group h3{font-size:17px}.toolkit-group ul{margin-top:16px}.additional-tech{align-items:start;flex-direction:column;gap:8px}.method{padding-top:70px;padding-bottom:70px}.method-grid{grid-template-columns:1fr 1fr;gap:35px 25px;margin-top:36px}.method-grid h3{font-size:23px;margin-top:16px}.contact-inner{padding-top:60px;padding-bottom:60px}.contact .eyebrow{line-height:1.7;max-width:220px}.contact-asterisk{font-size:50px}.contact h2{font-size:clamp(44px,11vw,70px);letter-spacing:-2px;margin-top:32px}.contact-bottom{flex-direction:column;align-items:start;gap:26px;margin-top:28px}.contact-bottom .button{width:100%;justify-content:space-between}.hero h1{font-size:clamp(56px,13.6vw,91px)}.hero h1 em{font-size:1.08em}.expertise-strip{line-height:1.7}.hero-note{max-width:165px}.scroll-cue{max-width:150px;line-height:1.7}.system-center>span:last-child{line-height:1.3;max-width:85px}.system-center .code-brackets{font-size:42px}.system-caption,.system-top{letter-spacing:.7px}.node-operation{left:0}.node-data{right:0}.node-systems{left:28%}.service-row{grid-template-columns:25px 1fr 36px;gap:10px}.service-row h3{font-size:21px}.service-row p{font-size:16px}.footer{line-height:1.7}.nav-contact,nav{font-size:12px}.nav-contact{padding:10px 11px}}
@media(max-width:370px){.hero h1{font-size:53px;letter-spacing:-3px}.system-node{padding:8px;gap:6px}.system-node .node-icon{display:none}.flow-node{padding:8px}.toolkit-grid{grid-template-columns:1fr}.service-row{grid-template-columns:20px 1fr;gap:10px}.service-contact{grid-column:2;justify-self:start}.method-grid{gap:25px 18px}.contact h2{font-size:41px}.nav-contact{padding:9px}.header nav{gap:10px}}
@media(prefers-reduced-motion:reduce){.flow-section{height:auto;min-height:0;--flow-progress:1!important}.flow-sticky{position:relative;min-height:0;padding-block:90px}.flow-connector{stroke-dashoffset:0}.flow-node,.flow-core{transform:none}}
@media(max-width:700px){.hero-system{aspect-ratio:1}.node-operation,.node-data{top:15%;width:48%;transform:none;align-items:start}.node-operation{left:0}.node-data{right:0}.system-node .node-icon{display:none}.system-center{left:35%;top:37%;width:30%;height:30%}.node-systems{bottom:10%;left:21%;width:58%;transform:none}.system-caption{bottom:0}}
.js-motion .reveal{transition-duration:.45s}

/* motion.css */
/* Three small SVG signals; all other continuous motion uses transform/opacity. */
.hero-grid{grid-template-columns:1.05fr 1fr;gap:42px}
.hero-system{--pointer-x:0px;--pointer-y:0px;aspect-ratio:.96;margin-top:0;background:radial-gradient(ellipse at 50% 52%,#d7e0c8 0,transparent 65%)}
.system-scene{position:absolute;inset:7% 0 9%;transform:translate3d(var(--pointer-x),var(--pointer-y),0);transition:transform .7s cubic-bezier(.22,1,.36,1)}
.system-top{left:0;right:0;top:0;font-size:12px}.system-caption{bottom:0;font-size:12px;letter-spacing:1.1px}
.hero-system .system-center{left:32%;top:33%;width:36%;height:auto;aspect-ratio:1;gap:13px;box-shadow:0 0 0 8px var(--paper),0 0 0 9px #adbba0;isolation:isolate}
.hero-system .system-center:before,.hero-system .system-center:after{content:'';position:absolute;inset:-10px;border-radius:50%;border:1px solid #7b945e;z-index:-1;pointer-events:none;animation:core-ripple 6s ease-out infinite}
.hero-system .system-center:after{animation-delay:-3s}
.hero-system .code-brackets{display:flex;justify-content:center;gap:18px;font-size:76px;line-height:1}
.hero-system .code-brackets>span{animation:bracket-breathe 6s ease-in-out infinite;--bracket-distance:-4px}.hero-system .code-brackets>span:last-child{--bracket-distance:4px}
.hero-system .system-center>span:last-child{font-size:12px;line-height:1.5;max-width:120px;letter-spacing:1px}
.hero-system .node-operation{top:13%;left:0;transform:rotate(-5deg)}.hero-system .node-data{top:13%;right:0;transform:rotate(4deg)}.hero-system .node-systems{bottom:8%;left:33%;transform:rotate(-3deg)}
.hero-system .system-node{z-index:2;padding:16px 19px;background:#f7f8f0;transition:border-color .3s,box-shadow .3s}.hero-system .system-node:hover{border-color:#819766;box-shadow:0 8px 24px #1b302b0c}
.hero-system .system-lines{stroke:#a7b49a;stroke-width:1;overflow:visible}.hero-system .system-outer-orbit{stroke:#bdc9ae;stroke-dasharray:1 8}.hero-system .system-inner-orbit{stroke:#aebda0;stroke-dasharray:2 6}.hero-system .system-orbit{stroke:#8fa47a;stroke-dasharray:2 7}.hero-system .orbit-marker{fill:#6e8a48;stroke:none}
.system-orbit-track{transform-origin:center;transform-box:fill-box;animation:context-orbit 70s linear infinite}
.hero-system .system-connector{stroke:#9caf83;stroke-dasharray:1;stroke-dashoffset:0}.hero-system.system-entered .system-connector{animation:connection-draw 1.8s cubic-bezier(.3,0,.2,1) both}
.hero-system .signal-line{stroke:#567d33;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:.03 .97;animation:context-signal 7s linear infinite}
.hero-system .signal-data{animation-delay:-2.3s}.hero-system .signal-systems{animation-delay:-4.6s}
.hero-system[data-active='false'] *, .hero-system[data-active='false'] *:before,.hero-system[data-active='false'] *:after{animation-play-state:paused!important}
@keyframes context-orbit{to{transform:rotate(360deg)}}
@keyframes context-signal{from{stroke-dashoffset:0}to{stroke-dashoffset:-1}}
@keyframes connection-draw{from{stroke-dashoffset:1;opacity:0}to{stroke-dashoffset:0;opacity:1}}
@keyframes core-ripple{0%{transform:scale(1);opacity:.4}75%,100%{transform:scale(1.5);opacity:0}}
@keyframes bracket-breathe{0%,100%{transform:translateX(0)}50%{transform:translateX(var(--bracket-distance))}}
@media(max-width:1050px){.hero-grid{gap:25px}.hero-system .system-node{padding:12px}.hero-system .node-icon{display:none}.hero-system .code-brackets{font-size:60px}.hero-system .system-center{gap:9px}.hero-system .system-center>span:last-child{max-width:105px;letter-spacing:.4px}}
@media(max-width:700px){.hero-grid{grid-template-columns:1fr;gap:12px}.hero-system{aspect-ratio:.94;margin-top:38px;max-width:480px}.system-scene{inset:8% 0 9%;transform:none}.system-top{font-size:12px;letter-spacing:1px}.hero-system .system-center{left:31%;top:34%;width:38%;gap:8px}.hero-system .code-brackets{font-size:57px;gap:15px}.hero-system .system-center>span:last-child{font-size:12px;max-width:108px}.hero-system .node-operation,.hero-system .node-data{top:12%;width:48%;padding:12px;transform:none;align-items:start}.hero-system .node-systems{bottom:5%;left:21%;width:58%;padding:13px;transform:none}.hero-system .system-node small{line-height:1.4}.system-caption{letter-spacing:.7px}.system-orbit-track{animation-duration:90s}.hero-system .signal-line{stroke-width:2;animation-duration:9s}}
@media(max-width:370px){.hero-system .system-node{padding:9px}.hero-system .code-brackets{font-size:47px}.hero-system .system-center>span:last-child{max-width:85px;letter-spacing:0}.hero-system .system-center{gap:5px}.system-caption{letter-spacing:0}}
@media(prefers-reduced-motion:reduce){.system-scene{transform:none!important;transition:none}.hero-system *, .hero-system *:before,.hero-system *:after{animation:none!important}.hero-system .system-center:before,.hero-system .system-center:after,.hero-system .signal-line{display:none}.hero-system .system-connector{stroke-dashoffset:0;opacity:1}}
@media(max-width:700px){.hero-system{aspect-ratio:.78}.hero-system .system-center{top:37%}.hero-system .node-operation,.hero-system .node-data{top:7%}.hero-system .node-systems{bottom:3%}}
@media(max-width:370px){.hero-system{aspect-ratio:.70}}
/* Cards visibly converge, while the section stays in ordinary document flow. */
.flow-node{--card-x:0px;--card-y:0px;--card-angle:0deg;transform:translate3d(calc(var(--card-x)*(1 - var(--flow-progress))),calc(var(--card-y)*(1 - var(--flow-progress))),0) rotate(calc(var(--card-angle)*(1 - var(--flow-progress)))) scale(calc(.92 + var(--flow-progress)*.08))}
.flow-input{--card-x:-40px;--card-y:-62px;--card-angle:-12deg}
.flow-data{--card-x:-48px;--card-y:62px;--card-angle:10deg}
.flow-api{--card-x:44px;--card-y:-58px;--card-angle:11deg}
.flow-result{--card-x:48px;--card-y:62px;--card-angle:-10deg}
.flow-core{transform:scale(calc(.85 + var(--flow-progress)*.15))}
@media(max-width:1050px){.flow-node{--card-x:0px;--card-angle:0deg}}
@media(max-width:700px){.flow-section{--flow-progress:var(--flow-motion-progress,1)!important}.flow-input,.flow-api{--card-y:-36px}.flow-data,.flow-result{--card-y:36px}.flow-core{transform:scale(calc(.92 + var(--flow-progress)*.08))}}
@media(prefers-reduced-motion:reduce){.flow-section{--flow-progress:1!important}.flow-node,.flow-core{transform:none!important}}

/* language.css */
.header-actions{display:flex;align-items:center;gap:28px}
.language-switch{display:flex;align-items:center;gap:2px;font-size:11px;letter-spacing:.04em;flex-shrink:0}
.language-switch a{display:flex;align-items:center;justify-content:center;min-width:32px;min-height:44px;color:var(--muted)}
.language-switch a[aria-current="page"]{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:5px}
.language-switch a:hover{color:var(--ink)}
.language-switch>span{color:var(--line)}
.language-switch a:after{display:none}
.opening-replay{white-space:nowrap;flex-shrink:0}
.profile-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin:4px 0 8px;border-bottom:1px solid currentColor;color:var(--ink);font-size:14px;font-weight:500}
.profile-link svg{width:18px;height:18px;flex-shrink:0}.profile-link:hover{color:#567d33}
@media(max-width:1050px){.header-actions{gap:16px}}
@media(max-width:700px){.header{height:auto;min-height:100px;display:grid;grid-template-columns:1fr auto;padding-block:14px;gap:4px 12px}.header-actions{display:contents}.header-actions>nav:first-child{grid-column:1/-1;grid-row:2;justify-content:flex-end;gap:18px}.language-switch{grid-column:2;grid-row:1}.brand{grid-column:1;grid-row:1}.hero{padding-top:16px}}
@media(min-width:701px){html[lang="en"] .hero h1{font-size:clamp(65px,6.7vw,112px)}}
@media(max-width:700px){html[lang="en"] .hero h1{font-size:clamp(53px,12.2vw,84px)}}

/* Vector ornaments stay consistent across emoji-capable platforms. */
.contact-asterisk{display:block;flex-shrink:0}
.contact-asterisk svg{width:1em;height:1em}
.expertise-strip i svg{width:1em;height:1em}

/* faq.css */
.faq{padding-top:90px;padding-bottom:100px;display:grid;grid-template-columns:1fr 1.2fr;gap:64px;border-top:1px solid var(--line)}
.faq h2{font-family:var(--display);font-size:clamp(32px,3.5vw,48px);font-weight:500;line-height:1.15;letter-spacing:-1.6px;margin-top:24px}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:24px;list-style:none;cursor:pointer;min-height:76px;padding:22px 0;font-size:17px;font-weight:500;line-height:1.5}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:focus-visible{outline:3px solid #4f7734;outline-offset:5px;border-radius:2px}
.faq-item summary svg{width:22px;height:22px;flex-shrink:0;transition:transform .2s ease}
.faq-item[open] summary svg{transform:rotate(45deg)}
.faq-item p{padding:0 36px 26px 0;color:var(--muted);line-height:1.75;font-size:16px;max-width:65ch}
@media(max-width:800px){.faq{grid-template-columns:1fr;gap:32px;padding-top:64px;padding-bottom:64px}.faq-item summary{font-size:16px;gap:16px}.faq-item p{padding-right:0}}
@media(prefers-reduced-motion:reduce){.faq-item summary svg{transition:none}}
