
:root{--dark:#0b3d2c;--green:#08744d;--lime:#7de1a7;--pale:#f2faf5;--ink:#172823;--muted:#52665b;--line:#dce9e0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}.wrap{width:min(1280px,calc(100% - 64px));margin:auto}.eyebrow{color:var(--green);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}.serif,h1,h2,.case h3,.step h3{font-family:'Playfair Display',Georgia,serif;letter-spacing:-.045em}.green{color:var(--green)}.nav{height:84px;display:flex;align-items:center;justify-content:space-between}.logo{font:bold 26px Georgia,serif;letter-spacing:-.05em;display:flex;align-items:center;gap:10px}.mark{width:31px;height:31px;border-radius:4px 18px 4px 18px;background:var(--green);transform:rotate(-20deg);display:inline-block;position:relative}.mark:after{content:'';position:absolute;width:25px;height:3px;background:white;top:15px;left:4px;transform:rotate(-25deg)}.navlinks{display:flex;align-items:center;gap:34px;font-size:14px;font-weight:600}.navlinks a:hover,.footer a:hover{color:var(--green)}.button{display:inline-flex;align-items:center;gap:25px;background:var(--green);color:white!important;border-radius:6px;padding:16px 24px;font-size:14px;font-weight:700;transition:transform .2s,background .2s}.button:hover{background:#07583d;transform:translateY(-2px)}.navlinks .button{padding:13px 21px}.menu{display:none;border:0;background:none;font-size:25px;color:var(--dark)}.textlink{font-size:14px;font-weight:700;border-bottom:1px solid var(--green);padding-bottom:6px}.hero{background:linear-gradient(105deg,#fff 40%,#edf8f0);overflow:hidden}.hero-grid{min-height:580px;display:grid;grid-template-columns:46% 54%;align-items:center;gap:20px;padding:32px 0 52px}.hero h1{font-size:clamp(50px,5vw,78px);line-height:1.06;font-weight:600;margin:20px 0 22px}.hero p{font-size:18px;color:var(--muted);line-height:1.6;max-width:530px;margin:0 0 30px}.actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.hero-art{height:500px;position:relative}.hero-art:before{content:'';position:absolute;inset:20px -80px 5px 80px;border-radius:220px 0 0;background:linear-gradient(130deg,#d5f3dc,#1b895e 75%,#063924)}.hero-art img{position:absolute;width:86%;height:380px;object-fit:cover;object-position:center;border-radius:8px;left:30px;top:56px;box-shadow:0 25px 50px #0d4d2b35}.photo-label{position:absolute;right:-15px;top:4px;padding:22px 28px;background:#fff;box-shadow:0 10px 30px #09492f20;color:var(--dark);font-size:10px;letter-spacing:.22em;line-height:1.6;font-weight:700}.scribble{position:absolute;bottom:4px;left:0;background:var(--dark);color:#fff;padding:20px 28px;font:italic 23px Georgia}.scribble em{color:var(--lime)}.band{background:var(--dark);color:#fff}.band-grid{display:grid;grid-template-columns:1.25fr repeat(3,1fr);align-items:center;min-height:105px;gap:25px}.band .eyebrow{color:#b8eacb}.band span{font-size:14px;line-height:1.4;border-left:1px solid #82bf9c80;padding-left:23px}.section{padding:95px 0}.section h2{font-size:clamp(39px,3.7vw,58px);line-height:1.14;font-weight:600;margin:13px 0 20px}.section p{color:var(--muted);line-height:1.65}.services{background:var(--pale)}.services-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:21px}.intro{padding-right:25px}.intro p{font-size:16px;margin-bottom:32px}.card{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.visual{height:155px;background:linear-gradient(135deg,#d8efe0,#5fa27a);position:relative;display:grid;place-items:center;overflow:hidden}.card:nth-child(3) .visual{background:linear-gradient(135deg,#114a36,#35a476)}.card:nth-child(4) .visual{background:linear-gradient(135deg,#b7e6cb,#156a48)}.visual:before{content:'';width:230px;height:230px;border:1px solid #ffffff80;border-radius:50%;position:absolute;right:-45px;top:25px;box-shadow:0 0 0 35px #ffffff20,0 0 0 70px #ffffff15}.visual span{position:relative;width:85px;height:73px;border-radius:9px;background:#f9fffb;display:grid;place-items:center;font-size:38px;color:var(--green);box-shadow:0 15px 28px #063f2d30}.cardbody{padding:22px;flex:1;display:flex;flex-direction:column}.card h3{font-size:18px;margin:0 0 8px}.card p{font-size:14px;margin:0 0 20px}.card a{font-size:13px;color:var(--green);font-weight:700;margin-top:auto}.work-heading{margin-bottom:22px}.cases{display:grid;grid-template-columns:1fr 1fr;gap:22px}.case{border:1px solid var(--line);border-radius:8px;overflow:hidden;display:grid;grid-template-columns:53% 47%;min-height:265px}.case-art{background:linear-gradient(145deg,#07543a,#8bc99a);padding:25px;display:flex;align-items:end;overflow:hidden}.case:nth-child(2) .case-art{background:linear-gradient(145deg,#0a2b22,#307758)}.screen{background:#fbfffc;width:100%;height:170px;border-radius:8px 8px 0 0;box-shadow:0 16px 30px #04211777;padding:15px;transform:rotate(-3deg) translateY(25px);font-size:11px;font-weight:700}.case:nth-child(2) .screen{background:#163a2b;color:#e5f7eb;transform:rotate(3deg) translateY(25px)}.screen small{display:block;border-bottom:1px solid #abc7b6;padding-bottom:12px}.blocks{display:flex;gap:8px;margin-top:20px}.blocks i{background:#d9f4e4;height:60px;flex:1;border-radius:5px}.case:nth-child(2) .blocks i{background:#246d4c}.case-copy{padding:24px;display:flex;flex-direction:column}.case-copy .eyebrow{font-size:9px}.case h3{font-size:25px;line-height:1.15;margin:14px 0}.case p{font-size:13px;margin:0 0 20px}.case a{font-size:13px;font-weight:700;color:var(--green);margin-top:auto}.process{background:var(--pale)}.process-grid{display:grid;grid-template-columns:1.25fr repeat(4,1fr);gap:28px}.process .intro p{max-width:280px}.step{border-top:1px solid #a5cfb2;padding-top:17px}.step b{width:42px;height:42px;border-radius:50%;background:#d7f5e4;display:grid;place-items:center;color:var(--dark)}.step h3{font-size:26px;margin:14px 0 8px}.step p{font-size:13px;margin:0}.step small{display:block;color:var(--green);font-size:12px;font-weight:700;margin-top:20px}.cta{background:var(--dark);color:#fff;overflow:hidden}.cta-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;min-height:330px}.cta .eyebrow{color:#b1e5ca}.cta h2{font-size:clamp(42px,4vw,62px);font-weight:600;line-height:1.1;margin:12px 0}.cta h2 em{color:var(--lime);font-style:normal}.cta p{color:#d2e8da;line-height:1.6}.cta .button{background:#16a36d;margin-top:12px}.cta img{width:100%;height:330px;object-fit:cover;mask-image:linear-gradient(90deg,transparent,#000 25%)}.footer{padding:55px 0 25px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:50px}.footer p,.footer a,.footer span{font-size:13px;color:var(--muted);line-height:1.7}.footer .logo{font-size:25px;color:var(--ink)}.footer h4{margin:4px 0 15px;font-size:13px}.footer-list{display:grid;gap:8px}.footer-bottom{border-top:1px solid var(--line);margin-top:45px;padding-top:20px;display:flex;justify-content:space-between}
@media(max-width:1000px){.services-grid{grid-template-columns:repeat(3,1fr)}.services .intro{grid-column:1/-1}.process-grid{grid-template-columns:repeat(4,1fr)}.process .intro{grid-column:1/-1}.hero h1{font-size:58px}}@media(max-width:750px){.wrap{width:min(100% - 36px,560px)}.nav{height:70px}.menu{display:block}.navlinks{display:none;position:absolute;top:70px;left:0;right:0;background:#fff;z-index:10;box-shadow:0 15px 25px #073c2720;padding:25px;flex-direction:column;align-items:flex-start}.navlinks.open{display:flex}.hero-grid{display:block;padding:55px 0 30px}.hero h1{font-size:clamp(44px,11vw,62px)}.hero p{font-size:16px}.hero-art{height:330px;margin-top:40px}.hero-art:before{inset:15px -30px 0 30px}.hero-art img{height:260px;left:10px;top:35px;width:92%}.photo-label{font-size:8px;padding:12px;right:-10px}.scribble{font-size:17px;padding:14px}.band-grid{grid-template-columns:1fr 1fr;padding:24px 0;gap:18px}.band .eyebrow{grid-column:1/-1}.band span{font-size:12px;border:0;padding:0}.section{padding:70px 0}.section h2{font-size:41px}.services-grid,.cases{grid-template-columns:1fr}.services .intro{grid-column:auto}.card .visual{height:160px}.process-grid{grid-template-columns:1fr 1fr}.process .intro{grid-column:1/-1}.cta-grid{display:block;padding-top:65px}.cta img{height:220px;margin-top:25px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{display:block}}@media(max-width:440px){.case{grid-template-columns:1fr}.case-art{height:200px}.case-copy{min-height:210px}.process-grid{grid-template-columns:1fr}.band-grid{grid-template-columns:1fr}.band .eyebrow{grid-column:auto}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}}

/* Purposeful motion: ambient hero, scroll progression, tactile cards. */
.hero-art:before{background:linear-gradient(130deg,#d5f3dc,#1b895e 75%,#063924);background-size:180% 180%;animation:heroGlow 12s ease-in-out infinite alternate}
.hero-art:after{content:"";position:absolute;inset:4% -11% 4% 8%;border:1px solid #6ec89570;border-radius:48% 52% 50% 50%;pointer-events:none;animation:orbitDrift 18s ease-in-out infinite alternate}
.hero-art img{z-index:1;animation:photoEnter 1.2s cubic-bezier(.2,.8,.2,1) both;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.hero-art:hover img{transform:translateY(-7px) scale(1.015)}
.photo-label,.scribble{z-index:2;animation:floatNote 6s ease-in-out infinite alternate}
.scribble{animation-delay:-3s}
.hero .eyebrow,.hero h1,.hero p,.hero .actions{animation:riseIn .8s cubic-bezier(.18,.8,.25,1) both}
.hero h1{animation-delay:.12s}.hero p{animation-delay:.26s}.hero .actions{animation-delay:.4s}
.band{position:relative;overflow:hidden}.band:after{content:"";position:absolute;inset:0;width:36%;transform:translateX(-160%) skewX(-22deg);background:linear-gradient(90deg,transparent,#9bf3bd12,transparent);animation:bandLight 12s linear infinite;pointer-events:none}
.card,.case{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,border-color .35s ease}
.card:hover,.case:hover{transform:translateY(-8px);box-shadow:0 22px 45px #0c5c3420;border-color:#9ed2ac}
.visual span{transition:transform .55s cubic-bezier(.2,.8,.2,1),box-shadow .4s ease}.card:hover .visual span{transform:translateY(-7px) rotate(-6deg);box-shadow:0 22px 32px #063f2d40}
.card .visual:before{transition:transform .7s ease}.card:hover .visual:before{transform:scale(1.16) translateX(-8px)}
.case .screen{transition:transform .5s cubic-bezier(.2,.8,.2,1)}.case:hover .screen{transform:rotate(0) translateY(16px)}
.step{transition:border-color .5s ease,transform .4s ease}.step:hover{transform:translateY(-4px);border-color:var(--green)}.step b{transition:background .4s ease,color .4s ease,transform .4s ease}.step:hover b,.step.is-active b{background:var(--green);color:white;transform:scale(1.08)}
.textlink,.case a,.card a{transition:color .2s ease}.textlink:hover,.case a:hover,.card a:hover{color:#12aa70}
.cta{position:relative}.cta:before{content:"";position:absolute;width:470px;height:470px;border:1px solid #87d4a437;border-radius:50%;right:8%;top:-55%;box-shadow:0 0 0 70px #a9e9b610,0 0 0 140px #a9e9b609;pointer-events:none;animation:orbitDrift 14s ease-in-out infinite alternate}.cta-grid{position:relative}
@keyframes riseIn{from{opacity:0;transform:translateY(23px)}to{opacity:1;transform:translateY(0)}}
@keyframes photoEnter{from{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes floatNote{from{transform:translateY(0)}to{transform:translateY(-12px)}}
@keyframes orbitDrift{from{transform:rotate(-5deg) scale(.97)}to{transform:rotate(6deg) scale(1.03)}}
@keyframes heroGlow{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes bandLight{0%,62%{transform:translateX(-160%) skewX(-22deg)}100%{transform:translateX(420%) skewX(-22deg)}}
@media(prefers-reduced-motion:no-preference){.motion-ready .reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1);transition-delay:var(--delay,0ms)}.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.motion-ready .reveal{opacity:1!important;transform:none!important}}

/* Interior pages */
.inner-hero{position:relative;padding:94px 0 86px;background:radial-gradient(circle at 85% 35%,#c9efd7,transparent 33%),linear-gradient(120deg,#f9fdfa,#e8f6ed);overflow:hidden}.inner-hero .wrap{position:relative}.inner-hero h1{max-width:850px;font:600 clamp(48px,5.2vw,76px)/1.08 'Playfair Display',Georgia,serif;letter-spacing:-.052em;margin:18px 0 22px}.inner-hero p{font-size:19px;line-height:1.65;color:var(--muted);max-width:650px;margin:0}.inner-hero:after{content:'';position:absolute;right:-7%;top:10%;width:300px;height:300px;border:1px solid #6ec39166;border-radius:50%;pointer-events:none;animation:orbitDrift 17s ease-in-out infinite alternate}.breadcrumb{font-size:12px;font-weight:700;color:#42745b;letter-spacing:.08em}.breadcrumb a:hover{text-decoration:underline}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.split img{width:100%;aspect-ratio:1.15;object-fit:cover;border-radius:8px}.large-copy{font-size:18px;line-height:1.75;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.detail-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:29px;min-height:235px;transition:transform .3s ease,box-shadow .3s ease}.detail-card:hover{transform:translateY(-5px);box-shadow:0 15px 35px #0c5c3415}.detail-card b{color:var(--green);font-size:12px;letter-spacing:.15em}.detail-card h3{font-size:21px;margin:20px 0 10px}.detail-card p{font-size:15px;margin:0}.tint{background:var(--pale)}.service-detail{display:grid;grid-template-columns:100px 1fr 1fr;gap:35px;border-top:1px solid var(--line);padding:42px 0}.service-detail:last-child{border-bottom:1px solid var(--line)}.service-detail .num{font:600 36px 'Playfair Display',Georgia,serif;color:var(--green)}.service-detail h2{font-size:35px;margin:0}.service-detail p{font-size:16px;margin:0}.service-detail ul{grid-column:2/-1;display:flex;gap:10px;flex-wrap:wrap;padding:0;margin:0;list-style:none}.service-detail li{background:#e5f5eb;color:#286647;border-radius:40px;padding:9px 14px;font-size:12px;font-weight:700}.faq-list{max-width:920px;margin:auto;border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line);padding:0 4px}.faq-list summary{list-style:none;cursor:pointer;padding:26px 46px 26px 0;position:relative;font-weight:700;font-size:19px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:4px;top:20px;font-size:28px;font-weight:400;color:var(--green);transition:transform .25s}.faq-list details[open] summary:after{transform:rotate(45deg)}.faq-list p{max-width:760px;margin:0 0 26px;font-size:16px}.project-note{background:#e8f6ec;border-left:3px solid var(--green);padding:16px 20px;font-size:14px;color:#315947;line-height:1.6;margin:0 0 30px}.project-list{display:grid;grid-template-columns:1fr 1fr;gap:25px}.project-list .case{grid-template-columns:1fr}.project-list .case-art{height:270px}.project-list .screen{height:215px}.project-list .case-copy{min-height:220px}.project-list .case h3{font-size:29px}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px}.contact-method{padding:26px 0;border-bottom:1px solid var(--line)}.contact-method h3{font-size:14px;color:var(--green);margin:0 0 9px;text-transform:uppercase;letter-spacing:.12em}.contact-method a{font:600 23px 'Playfair Display',Georgia,serif;overflow-wrap:anywhere}.contact-form{background:var(--pale);border:1px solid var(--line);border-radius:9px;padding:35px;display:grid;gap:18px}.contact-form h2{font-size:34px;margin:0 0 8px}.field{display:grid;gap:7px;font-size:13px;font-weight:700}.field input,.field textarea,.field select{width:100%;padding:13px 14px;border:1px solid #bfd8c8;border-radius:5px;background:#fff;color:var(--ink);font:16px 'DM Sans',sans-serif}.field textarea{min-height:120px;resize:vertical}.field :focus{outline:2px solid #48a678;outline-offset:2px}.contact-form .button{border:0;cursor:pointer;justify-self:start}.form-note{font-size:13px;color:var(--muted);margin:0}.mini-cta{text-align:center;background:var(--dark);color:white;padding:75px 0}.mini-cta h2{font-size:clamp(36px,4vw,54px);margin:12px 0 26px}.mini-cta .eyebrow{color:#b8eacb}.mini-cta .button{background:#16a36d}
@media(max-width:750px){.inner-hero{padding:70px 0}.inner-hero h1{font-size:46px}.inner-hero p{font-size:16px}.split,.contact-grid{grid-template-columns:1fr;gap:35px}.detail-grid,.project-list{grid-template-columns:1fr}.service-detail{grid-template-columns:55px 1fr;gap:18px}.service-detail p,.service-detail ul{grid-column:2}.service-detail h2{font-size:29px}.faq-list summary{font-size:17px}.contact-form{padding:23px}}
