/* GreenyLabs: white editorial layout with one coherent flat cartoon language. */
:root{--paper:#fff;--surface:#f7f9f8;--ink:#1c2924;--muted:#617068;--green:#188254;--lime:#dcefe2;--line:#e4eae6;--max:1240px;background:#fff;color:var(--ink)}
body{background:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-weight:750}h2{font-size:clamp(32px,3.5vw,47px);letter-spacing:-.05em}.container{width:min(var(--max),calc(100% - 80px))}.section{padding-block:96px}::selection{background:#d8eedf;color:#154b30}html{scroll-padding-top:86px}
.site-header{background:#ffffffed;border-bottom:1px solid #e9eeeb;backdrop-filter:blur(14px);transition:box-shadow .25s}.header-inner{min-height:76px;gap:30px}.brand-logo{width:190px;height:43px}.desktop-nav{gap:35px;font-size:14px;font-weight:650;color:#303c35}.desktop-nav a:after{bottom:4px;background:var(--green)}.header-actions{gap:22px}.language-switch{background:none;border:0;gap:5px;letter-spacing:.03em}.language-switch button{min-height:40px;min-width:31px;font-size:11px}.language-switch button[aria-pressed=true]{color:#147448;font-weight:800}.language-switch span{color:#9daaa2}.button{background:#168052;border-color:#168052;border-radius:4px;min-height:53px;padding:14px 23px;box-shadow:none;font-size:14px;font-weight:650;gap:26px;transition:background .2s,transform .2s}.button:hover{background:#0b6840;box-shadow:none;transform:translateY(-2px)}.button:active{transform:translateY(0)}.button svg{width:19px;height:19px;transition:transform .2s}.button:hover svg{transform:translateX(4px)}.button-small{min-height:40px;padding:10px 16px;font-size:12px;gap:15px}.menu-toggle{width:40px;height:40px;border-radius:4px;border-color:#dfe7e1;background:white}.mobile-nav{background:white;border-color:#e7ede9}
.hero{grid-template-columns:.94fr 1.16fr;min-height:640px;gap:10px;padding-block:45px 50px}.hero-copy{padding-block:35px;z-index:2}.hero-copy>.eyebrow{display:flex;align-items:center;gap:9px;background:none;border:0;border-radius:0;padding:0;margin-bottom:24px;font-size:11px;color:#25734b;font-weight:650;letter-spacing:.025em}.code-mark{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;letter-spacing:-.12em;padding-right:2px}.hero h1{font-size:clamp(46px,4.6vw,64px);line-height:1.25;letter-spacing:-.065em;margin-bottom:24px;color:#1c2924}.gradient-text{background:none;-webkit-text-fill-color:currentColor;color:#188254}.hero-description{font-size:15px;line-height:1.95;max-width:435px;color:#637068}.hero-buttons{gap:25px;margin-top:30px}.hero-buttons>.text-link{font-size:13px;border:0;border-bottom:1px solid #bbcfc2;border-radius:0;min-height:43px;padding:8px 0;gap:14px}.text-link:hover{color:#168052}.hero-note{margin-top:29px;gap:9px;color:#65796b;font-size:11px}.build-dots{display:flex;align-items:center;gap:3px}.build-dots i{width:4px;height:4px;border-radius:1px;background:#258751}.build-dots i:nth-child(2){background:#74b68c}.build-dots i:nth-child(3){background:#c4dfcd}.hero-visual{position:relative;margin:0 -30px 0 -10px;align-self:center;isolation:isolate;perspective:none}.hero-visual>img{width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;mix-blend-mode:multiply;animation:none;transform:translate(var(--visual-x,0px),var(--visual-y,0px));transition:transform .7s cubic-bezier(.2,.7,.3,1)}.visual-caption{position:relative;left:auto;bottom:auto;transform:none;justify-content:flex-end;gap:8px;border:0;background:none;padding:15px 20px 0;box-shadow:none;border-radius:0;font-size:10px;color:#607667}.visual-caption .status-dot{width:5px;height:5px;background:#2d8b55;box-shadow:none}.hero-orbit,.hero-floating,.visual-index{display:none}.expertise-strip{background:#fff;border-color:#e8ede9}.expertise-inner{min-height:76px}.expertise-inner>span{font-size:11px;color:#68766d}.expertise-inner>div{font-size:16px;font-weight:650;gap:43px;color:#354a3d}.expertise-inner i{font-size:15px;color:#96b39f}.section-kicker{font-size:11px;letter-spacing:.05em;color:#27744c;font-weight:650;gap:12px;margin-bottom:28px}.section-kicker>span:first-child{color:#657e6d;font-size:10px}.about-grid{gap:90px}.about-copy .lead{font-size:19px;line-height:1.7;color:#283f31;letter-spacing:-.025em}.about-copy>p:not(.lead){font-size:14px;line-height:1.95;color:#64736a}.about-copy .text-link{font-size:13px;margin-top:19px;color:#217c4e}.values{border-color:#e7ede9;gap:40px;margin-top:48px;padding-top:28px}.value-icon{width:39px;height:39px;border:0;border-radius:7px;background:#e9f4ed;box-shadow:none;transform:none;color:#25794c}.value-icon svg{width:20px;height:20px;filter:none}.values :is(h3,.subheading){font-size:15px;letter-spacing:-.025em}.values p{font-size:11px;color:#687b6d}
.services-section{background:#f7f9f8;border-block:1px solid #edf1ee}.section-heading{gap:65px;align-items:flex-end;margin-bottom:40px}.section-heading>p{color:#64766a;font-size:13px;line-height:1.9}.service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.service-card{display:flex;flex-direction:column;min-width:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;transform:none;transition:none;overflow:visible}.service-card:hover{transform:none;border:0;box-shadow:none}.card-top{position:relative;display:block;aspect-ratio:1.75;margin:0;background:#e9f4ed;overflow:hidden;border-radius:7px}.service-card:nth-child(2) .card-top{background:#fbf4df}.service-card:nth-child(3) .card-top{background:#eaf3f8}.service-card:nth-child(4) .card-top{background:#edf2e3}.card-top img{width:100%;height:100%;object-fit:contain;transition:transform .45s cubic-bezier(.2,.7,.3,1)}.service-card:hover .card-top img{transform:translateY(-3px) scale(1.035)}.card-number{position:absolute;left:12px;top:11px;color:#355d43;font-size:10px;font-weight:700;letter-spacing:.03em;width:23px;height:23px;border-radius:50%;background:#ffffffc9;display:grid;place-items:center}.service-card :is(h3,.subheading){font-size:22px;letter-spacing:-.045em;line-height:1.35;margin:22px 0 12px;min-height:59px}.service-card>p{font-size:12px;line-height:1.9;color:#627368;max-width:none;margin-bottom:18px}.tags{gap:6px;margin:0 0 22px}.tags>span{border:0;border-radius:0;padding:0;font-size:10px;color:#547861;background:none}.tags>span+span:before{content:"/";color:#a0b8a8;margin-right:7px}.service-link{margin-top:auto;border-top:1px solid #dce6de;padding-top:15px;color:#27764c;font-size:11px;font-weight:650;gap:10px}.service-link svg{width:18px;height:18px;background:none;border:0;padding:0;transition:transform .2s}.service-link:hover svg{transform:translateX(4px)}.service-card:after{display:none}
.approach-section{background:white;color:#1c2924;overflow:visible}.approach-section:before{display:none}.approach-section .section-kicker{color:#27744c}.approach-section .section-kicker>span:first-child{color:#657e6d}.approach-section .section-heading>p{color:#64766a}.process-grid{gap:35px;margin-top:55px}.process-grid li{border-color:#d6e4d9;padding-top:25px}.process-grid li:before{background:#459963;width:6px;height:6px;top:-3px}.step-number{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:16px;line-height:1;color:#357f4d;letter-spacing:-.03em}.process-grid :is(h3,.subheading){font-size:23px;margin:23px 0 14px}.process-grid p{font-size:13px;color:#65766a;line-height:1.85}.approach-footnote{border-color:#e5ede7;color:#52765f;margin-top:42px;font-size:11px}.approach-footnote svg{width:16px;height:16px}.projects-section{padding-top:75px}.project-showcase{border-color:#e1e9e3;border-radius:8px;background:#fff;box-shadow:none;overflow:hidden;grid-template-columns:1fr 1fr}.concept-art{padding:30px;min-height:405px;background:#edf6f0;perspective:none;display:grid;place-items:center}.concept-art:before,.concept-art:after{display:none}.concept-art>img{width:100%;height:auto;max-width:600px;transition:transform .5s}.project-showcase:hover .concept-art>img{transform:translateY(-5px)}.project-detail{padding:39px 42px}.pill{border:0;border-radius:0;background:none;padding:0;font-size:10px;color:#387b50;font-weight:650;letter-spacing:.025em}.project-detail :is(h3,.subheading){font-size:31px;margin:19px 0 17px;letter-spacing:-.045em}.project-detail>p{font-size:13px;color:#65776a;line-height:1.9}.concept-list{gap:13px;margin-block:23px}.concept-list li{color:#477453;font-size:12px}.concept-list svg{width:18px;height:18px}.project-detail .project-disclaimer{font-size:10px;color:#64796b;border-color:#e5ece7;padding-top:17px}
.contact-section{padding-bottom:85px}.contact-panel{background:#f5faf6;border:1px solid #e0ece3;border-radius:8px;padding:55px 58px;box-shadow:none;overflow:hidden}.contact-panel .eyebrow{font-size:11px;color:#3c8051;margin-bottom:21px}.contact-panel h2{font-size:clamp(32px,3.2vw,44px);letter-spacing:-.045em}.contact-panel p:not(.eyebrow){font-size:13px;color:#647b68;margin-top:21px;line-height:1.9}.contact-panel .button{margin-top:29px}.contact-leaf{right:87px;top:50%;opacity:1;transform:translateY(-50%) rotate(-10deg);color:#245b37;filter:none}.contact-leaf svg{width:180px;height:180px;stroke-width:.8;fill:#d2e8b5;filter:none}.contact-leaf:before,.contact-leaf:after{content:"";position:absolute;width:9px;height:9px;background:#eacb65;border-radius:50%;right:-15px;top:20px}.contact-leaf:after{width:6px;height:6px;left:-28px;top:120px;background:#6caa7e}.footer-top{border-color:#e3ebe5;padding-bottom:32px}.footer-top p{font-size:11px;color:#65796b;margin-top:11px}.footer-top nav{font-size:12px;color:#4c6755;gap:28px}.footer-bottom{padding-top:20px}.footer-bottom p{font-size:10px;color:#65776b}.back-top{color:#55765e;font-size:10px}.site-footer{padding-bottom:22px}dialog{background:#fff;border-color:#dfe9e1;border-radius:10px;box-shadow:0 25px 100px #163b2526}.dialog-inner{padding:35px}.dialog-inner h2{font-size:27px}.dialog-inner>p:not(.section-kicker){font-size:13px;color:#607869}.dialog-close{font-size:27px}.form-note{color:#62796a;font-size:11px}input,select,textarea{background:#fff;border-color:#cfded3;border-radius:4px}.form-submit{width:100%}.form-status{color:#24754a}.reading-progress{position:fixed;z-index:100;top:0;left:0;height:2px;width:100%;background:#2c9761;transform-origin:left;pointer-events:none}.site-header.is-scrolled{box-shadow:0 3px 15px #1d3b2808}.section.in-view{animation:none}
@media(min-width:1450px){.hero{min-height:675px}.hero-visual{margin-right:-45px}}
@media(max-width:1150px){.container{width:calc(100% - 64px)}.desktop-nav{gap:24px;font-size:12px}.header-actions{gap:15px}.brand-logo{width:176px}.header-inner{min-height:74px}.hero{min-height:590px;grid-template-columns:1fr 1.08fr}.hero h1{font-size:54px}.hero-description{font-size:14px}.hero-visual{margin-right:-20px}.hero-copy>.eyebrow{font-size:10px}.hero-buttons{gap:19px}.hero-buttons .button{font-size:12px;gap:17px;padding-inline:18px}.hero-buttons .text-link{font-size:12px}.service-grid{gap:22px}.service-card :is(h3,.subheading){font-size:20px;min-height:54px}.service-card>p{font-size:12px}.card-top{aspect-ratio:1.5}.about-grid{gap:65px}.values{gap:25px}.values :is(h3,.subheading){font-size:14px}.values p{font-size:10px}.section{padding-block:85px}html[lang=en] .hero h1{font-size:52px}.project-detail{padding:33px}.contact-leaf{right:55px}}
@media(max-width:850px){.container{width:calc(100% - 56px)}.header-inner{min-height:72px}.hero{min-height:540px;padding-block:30px 35px;grid-template-columns:1fr 1fr;gap:0}.hero-copy{padding-block:25px}.hero h1{font-size:43px}.hero-description{font-size:13px}.hero-copy>.eyebrow{font-size:9px;max-width:300px;line-height:1.6}.hero-buttons{flex-direction:column;align-items:flex-start;gap:13px;margin-top:25px}.hero-buttons .button{min-height:48px;font-size:12px;padding:12px 19px}.hero-buttons .text-link{min-height:33px;padding:3px 0;font-size:11px}.hero-note{font-size:10px;margin-top:25px}.hero-visual{margin-left:-10px;margin-right:-14px}.visual-caption{font-size:8px;padding:12px 8px 0}.expertise-inner{min-height:70px}.expertise-inner>div{font-size:15px;gap:24px}.expertise-inner>span{font-size:10px}.section{padding-block:75px}.about-grid{gap:40px}.about-copy .lead{font-size:17px}.about-copy>p:not(.lead){font-size:13px}.values{gap:22px}.values>div{display:block}.value-icon{margin-bottom:12px}.values :is(h3,.subheading){font-size:14px}.values p{font-size:10px}.section-heading>p{font-size:12px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 25px}.card-top{aspect-ratio:1.8}.service-card :is(h3,.subheading){font-size:23px;margin-top:19px;min-height:0}.service-card>p{font-size:13px}.service-link{font-size:12px}.tags>span{font-size:10px}.process-grid{gap:25px}.process-grid p{font-size:12px}.process-grid :is(h3,.subheading){font-size:22px}.project-detail{padding:28px}.project-detail :is(h3,.subheading){font-size:27px}.project-detail>p{font-size:12px}.concept-list li{font-size:11px}.concept-art{padding:14px;min-height:410px}.contact-panel{padding:43px}.contact-panel p:not(.eyebrow){font-size:12px}.contact-leaf{right:34px}.contact-leaf svg{width:150px;height:150px}html[lang=en] .hero h1{font-size:41px}html[lang=en] .hero-description{font-size:12px}}
@media(max-width:600px){.container{width:calc(100% - 40px)}.header-inner{min-height:67px;gap:8px}.brand-logo{width:156px;height:35px}.header-actions{gap:9px}.language-switch{gap:0}.language-switch button{min-width:28px;font-size:10px}.menu-toggle{width:35px;height:35px;border:0}.mobile-nav{padding:12px 24px 22px}.mobile-nav a{font-size:16px;padding-block:11px}.hero{grid-template-columns:1fr;min-height:0;padding-block:34px 28px}.hero-copy{padding:0}.hero-copy>.eyebrow{font-size:9px;max-width:none;margin-bottom:19px}.hero h1{font-size:clamp(35px,9.8vw,52px);margin-bottom:22px;line-height:1.24}.hero-description{font-size:13px;max-width:400px;line-height:1.9}.hero-buttons{flex-direction:row;align-items:center;gap:23px;margin-top:24px}.hero-buttons .button{font-size:11px;min-height:47px;padding:12px 17px;gap:15px}.hero-buttons .text-link{font-size:11px;min-height:38px;padding:6px 0;gap:10px}.hero-note{font-size:10px;margin-top:24px}.hero-visual{width:100%;max-width:520px;justify-self:center;margin:30px -4px 0}.hero-visual>img{width:100%;max-height:none}.visual-caption{font-size:8px;padding-top:11px;justify-content:center}.expertise-inner{flex-direction:column;min-height:97px;justify-content:center;padding-block:18px;gap:11px}.expertise-inner>div{font-size:14px;gap:20px}.expertise-inner i{font-size:13px}.expertise-inner>span{font-size:10px}.section{padding-block:62px}h2{font-size:33px;line-height:1.35}.section-kicker{font-size:10px;margin-bottom:24px}.section-kicker>span:first-child{font-size:10px}.about-grid{gap:24px}.about-copy .lead{font-size:16px}.about-copy>p:not(.lead){font-size:13px}.about-copy .text-link{font-size:12px;margin-top:14px}.values{margin-top:31px;padding-top:24px;gap:22px;grid-template-columns:1fr}.values>div{display:grid;grid-template-columns:36px 1fr;gap:1px 13px}.value-icon{width:35px;height:35px;border-radius:5px;margin:0}.values :is(h3,.subheading){font-size:14px}.values p{font-size:11px;margin-top:3px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{font-size:12px;margin-top:17px}.service-grid{grid-template-columns:1fr;gap:35px}.card-top{aspect-ratio:1.95;border-radius:6px}.card-top img{object-fit:contain}.card-number{top:13px;left:14px}.service-card :is(h3,.subheading){font-size:23px;margin:18px 0 12px;min-height:0}.service-card>p{font-size:13px;margin-bottom:16px}.tags{margin-bottom:17px}.tags>span{font-size:10px}.service-link{padding-top:13px;font-size:12px}.process-grid{grid-template-columns:1fr 1fr;gap:32px 25px;margin-top:35px}.process-grid li{padding-top:21px}.step-number{font-size:14px}.process-grid :is(h3,.subheading){font-size:22px;margin:18px 0 12px}.process-grid p{font-size:12px}.approach-footnote{font-size:10px;margin-top:32px}.project-showcase{grid-template-columns:1fr;border-radius:6px}.concept-art{min-height:230px;padding:15px 20px}.project-detail{padding:28px 25px}.project-detail :is(h3,.subheading){font-size:28px}.project-detail>p{font-size:12px}.concept-list li{font-size:12px}.project-detail .project-disclaimer{font-size:10px}.contact-section{padding-bottom:60px}.contact-panel{padding:32px 25px;border-radius:6px}.contact-panel h2{font-size:29px}.contact-panel .eyebrow{font-size:10px}.contact-panel p:not(.eyebrow){font-size:12px}.contact-panel>div:first-child{max-width:100%}.contact-panel .button{font-size:12px;min-height:48px;padding:12px 19px}.contact-leaf{right:-17px;top:78%;opacity:.25}.contact-leaf svg{width:145px;height:145px}.footer-top{display:block;padding-bottom:27px}.footer-top p{font-size:11px}.footer-top nav{font-size:11px;gap:25px;margin-top:22px}.footer-bottom p{font-size:10px}.back-top{font-size:10px;gap:9px}.dialog-inner{padding:28px 24px}.dialog-inner h2{font-size:25px}html[lang=en] .hero h1{font-size:clamp(34px,9.6vw,51px)}html[lang=en] .hero-description{font-size:13px}html[lang=en] .hero-buttons{gap:21px}html[lang=en] .hero-buttons .button{font-size:11px}html[lang=en] .hero-buttons .text-link{font-size:10px}}
@media(max-width:360px){.hero-buttons{gap:18px}.hero-buttons .button{padding-inline:14px;gap:10px;font-size:10px}.hero-buttons .text-link{font-size:10px}.expertise-inner>div{gap:14px;font-size:13px}.hero-copy>.eyebrow{font-size:8px}}
@media(prefers-reduced-motion:reduce){.hero-visual>img,.service-card:hover .card-top img,.project-showcase:hover .concept-art>img,.button:hover{transform:none!important}.reading-progress{display:none}}
@media print{.reading-progress{display:none}.container{width:100%}.hero{min-height:0}.section{padding-block:25px}.service-grid{grid-template-columns:repeat(2,1fr)}.service-card{break-inside:avoid}}
.contact-leaf img{width:230px;height:auto}.contact-leaf{right:72px;transform:translateY(-50%) rotate(-5deg)}.contact-leaf:before,.contact-leaf:after{display:none}@media(max-width:850px){.contact-leaf{right:30px}.contact-leaf img{width:190px}}@media(max-width:600px){.contact-leaf{right:-12px;opacity:.22}.contact-leaf img{width:175px}}
@media(max-width:600px){.contact-leaf{position:relative;right:auto;top:auto;transform:none;opacity:1;width:150px;margin:17px auto -6px}.contact-leaf img{width:150px}}

/* Separate menu pages, with a consistent viewport and readable page headings. */
body{min-height:100dvh;display:flex;flex-direction:column}#main{flex:1;min-height:calc(100dvh - 300px)}.site-header,.site-footer{flex-shrink:0}.page-title{font-size:clamp(32px,3.5vw,47px);line-height:1.3;letter-spacing:-.05em;font-weight:750;white-space:pre-line;margin:0}.subheading{white-space:normal}body[data-page=contact] .contact-section{padding-block:76px 70px}.contact-panel .page-title{font-size:clamp(32px,3.2vw,44px)}body[data-page=home] .site-footer{margin-top:40px}body[data-page]:not([data-page=home]) .section{padding-block:76px 82px}body[data-page=projects] .project-showcase{margin-bottom:10px}.not-found main{padding-block:100px}.not-found h1{font-size:36px;margin:20px 0}.not-found .button{margin-top:25px}@media(max-width:850px){.desktop-nav{gap:20px}.page-title{font-size:34px}}@media(max-width:600px){.page-title{font-size:33px}.contact-panel .page-title{font-size:29px}body[data-page]:not([data-page=home]) .section{padding-block:44px 55px}body[data-page=contact] .contact-section{padding-block:30px 45px}body[data-page=home] .site-footer{margin-top:28px}}
