@font-face{font-family:Manrope;src:url('assets/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root{--green:#5da87a;--cream:#f5f0e4;--ink:#132d23;--muted:#4f6255;--line:#d7d9c8;--tint:#e8ecdf;--radius:10px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:5px}img{display:block;width:100%;height:100%;object-fit:cover}p{line-height:1.65;color:var(--muted);max-width:58ch;font-size:.94rem}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.055em}h1{font-weight:700;line-height:1.06;font-size:clamp(2.65rem,5.8vw,5rem);margin-bottom:24px}h2{font-size:clamp(2rem,3.6vw,3rem);line-height:1.13;font-weight:600;margin-bottom:20px}h3{font-size:1.25rem;line-height:1.3;font-weight:700}figure{margin:0}.wrap{width:min(1240px,calc(100% - 100px));margin-inline:auto}.nav{height:80px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{font-size:1.55rem;font-weight:800;letter-spacing:-.065em;white-space:nowrap}.nav-links{display:flex;align-items:center;gap:30px;font-size:.78rem;font-weight:600}.nav-links a:not(.button):hover{text-decoration:underline;text-underline-offset:5px}.button{display:inline-flex;justify-content:center;align-items:center;gap:18px;background:var(--green);color:var(--ink);font-size:.82rem;font-weight:700;padding:15px 20px;min-height:48px;border:0;border-radius:var(--radius);white-space:nowrap;transition:transform .18s,background .18s}.button:hover{background:#6eb98a;transform:translateY(-2px)}.button.outline{background:transparent;border:1px solid var(--ink)}.arrow{font-size:1.1rem}.mobile-menu{display:none}.section{padding-block:76px}.section>p{margin-bottom:34px}.section .intro{max-width:50ch}.hero{padding-top:42px;padding-bottom:58px}.hero p{font-size:.98rem;margin-bottom:26px;max-width:40ch}.hero-split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.hero-split .hero-media{height:440px}.media{overflow:hidden;border-radius:var(--radius);background:var(--tint)}.media img{transition:transform .45s}.media:hover img{transform:scale(1.025)}.image-note{font-size:.7rem;color:var(--muted);margin-top:10px;line-height:1.4}.intro-strip{display:flex;align-items:center;gap:80px;border-top:1px solid var(--line);padding:30px 0}.intro-strip strong{font-size:1.1rem;max-width:22ch;letter-spacing:-.025em;font-weight:600}.intro-strip p{max-width:56ch;margin:0;font-size:.83rem}.work-grid{display:grid;grid-template-columns:1.32fr 1fr;gap:30px;align-items:start}.work-grid figure:nth-child(2){margin-top:72px}.work-grid .media{height:330px}.work-grid figure:nth-child(2) .media{height:270px}.caption{display:flex;justify-content:space-between;align-items:start;gap:15px;padding-top:16px}.caption h3{font-size:1rem;margin:0 0 5px}.caption small{color:var(--muted);font-size:.7rem}.crop-detail img{object-position:70% center;transform:scale(1.22)}.crop-detail:hover img{transform:scale(1.26)}.services{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.services-list{display:grid;gap:22px}.service{border-bottom:1px solid var(--line);padding-bottom:22px;display:grid;grid-template-columns:1fr 1.2fr;gap:30px}.service h3{margin-bottom:0;font-size:1.05rem}.service p{font-size:.83rem;margin:0}.process{background:var(--tint)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}.step{padding-top:16px;border-top:2px solid var(--green)}.step h3{font-size:1rem}.step p{font-size:.85rem}.about{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.about .media{height:320px}.about h2{max-width:12ch}.contact{padding-block:60px 76px}.contact-inner{padding:48px;background:var(--green);border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:30px}.contact h2{font-size:2.5rem;margin-bottom:12px;max-width:17ch}.contact p{color:var(--ink);margin:0}.contact .button{background:var(--cream)}.footer{padding:28px 0 34px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:.7rem}.footer .brand{font-size:1.15rem}.footer p{font-size:.7rem;margin:0}.footer-links{display:flex;gap:20px}.footer-links span{color:var(--muted)}
/* B: one consistent light palette; broad green surfaces and a sharp radius system. */
.graphic{--radius:2px}.graphic .nav{border-bottom:1px solid var(--ink)}.graphic .hero{padding-top:34px}.graphic .hero-stage{display:grid;grid-template-columns:1.3fr 1fr;gap:32px;background:var(--green);padding:44px;align-items:center}.graphic h1{font-size:clamp(2.8rem,5.5vw,4.8rem);max-width:12ch}.graphic .hero-stage p{color:var(--ink)}.graphic .hero-stage .button{background:var(--cream)}.graphic .hero-media{height:320px}.graphic .intro-strip{gap:80px;border-top:0;padding-top:4px}.graphic .work-grid{grid-template-columns:1fr 1fr;gap:24px}.graphic .work-grid figure:nth-child(2){margin-top:0}.graphic .work-grid .media,.graphic .work-grid figure:nth-child(2) .media{height:280px}.graphic .services{grid-template-columns:1fr;gap:28px}.graphic .services-list{grid-template-columns:1fr 1fr;gap:40px}.graphic .service{grid-template-columns:1fr;border:0;background:var(--tint);padding:30px}.graphic .process{background:var(--cream)}.graphic .steps{gap:40px}.graphic .step{border-top:1px solid var(--ink)}.graphic .about{grid-template-columns:1.2fr 1fr}.graphic .about .media{height:310px}.graphic .contact-inner{padding:44px;border:1px solid var(--ink);background:transparent}.graphic .contact .button{background:var(--green)}
/* C: portfolio-led with large photographic space and compact navigation. */
.portfolio{--radius:14px}.portfolio .nav{height:76px}.portfolio .hero{padding-top:36px;padding-bottom:48px}.portfolio .hero-top{display:grid;grid-template-columns:1.3fr .7fr;gap:80px;align-items:end;margin-bottom:28px}.portfolio h1{font-size:clamp(2.7rem,5.5vw,4.6rem);max-width:14ch;margin-bottom:0}.portfolio .hero-top p{font-size:.88rem;margin-bottom:18px}.portfolio .hero-media{height:365px}.portfolio .hero-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:16px}.portfolio .hero-bottom p{margin:0;font-size:.72rem}.portfolio .intro-strip{border-top:0}.portfolio .section{padding-block:64px}.portfolio .work-grid{grid-template-columns:1fr 1fr;gap:34px}.portfolio .work-grid figure:nth-child(2){margin-top:0}.portfolio .work-grid .media,.portfolio .work-grid figure:nth-child(2) .media{height:280px}.portfolio .services{grid-template-columns:1fr 1.1fr;gap:80px}.portfolio .service{grid-template-columns:1fr;gap:10px}.portfolio .process{background:var(--cream)}.portfolio .about .media{height:300px}.portfolio .contact-inner{background:var(--tint)}.portfolio .contact .button{background:var(--green)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.media img{transition:none}.button:hover{transform:none}.media:hover img{transform:none}.crop-detail:hover img{transform:scale(1.22)}}
@media(max-width:900px){.wrap{width:calc(100% - 56px)}.nav-links{gap:18px}.hero-split{gap:35px}.hero-split .hero-media{height:360px}.services{gap:40px}.graphic .hero-stage{padding:30px;gap:24px}.graphic .hero-media{height:280px}.portfolio .hero-top{gap:35px}.contact-inner{padding:32px}.about{gap:40px}.work-grid .media{height:260px}.work-grid figure:nth-child(2) .media{height:220px}}
@media(max-width:767px){.wrap{width:calc(100% - 40px)}.nav{height:70px}.nav-links{display:none}.mobile-menu{display:block;position:relative}.mobile-menu summary{font-size:.8rem;font-weight:700;cursor:pointer;list-style:none;padding:12px 0}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu[open] .menu-links{position:absolute;top:44px;right:0;background:var(--cream);border:1px solid var(--line);padding:20px;display:grid;gap:18px;width:180px;border-radius:var(--radius);z-index:5;font-size:.85rem}.hero{padding-top:24px;padding-bottom:34px}h1{font-size:clamp(2.5rem,10vw,3.8rem);max-width:12ch;line-height:1.1}h2{font-size:2rem}.hero-split,.about,.services,.portfolio .services{grid-template-columns:1fr;gap:28px}.hero p{font-size:.88rem;max-width:38ch}.hero-split .hero-media{height:310px}.intro-strip{display:grid;gap:16px;padding-block:28px}.intro-strip strong{max-width:none}.intro-strip p{font-size:.85rem}.section,.portfolio .section{padding-block:42px}.work-grid,.graphic .work-grid,.portfolio .work-grid{grid-template-columns:1fr;gap:30px}.work-grid figure:nth-child(2){margin-top:0}.work-grid .media,.work-grid figure:nth-child(2) .media,.graphic .work-grid .media,.graphic .work-grid figure:nth-child(2) .media,.portfolio .work-grid .media,.portfolio .work-grid figure:nth-child(2) .media{height:270px}.service{gap:18px}.steps{grid-template-columns:1fr;gap:22px}.about .media,.graphic .about .media,.portfolio .about .media{height:270px}.about h2{max-width:18ch}.contact{padding-block:32px 42px}.contact-inner{padding:28px;display:grid;gap:24px}.contact h2{font-size:2rem}.contact .button{justify-self:start}.footer{display:grid;gap:16px}.graphic .hero-stage{grid-template-columns:1fr;padding:28px;gap:26px}.graphic h1{font-size:clamp(2.45rem,9.5vw,3.5rem)}.graphic .hero-media{height:270px}.graphic .intro-strip{gap:16px;padding-top:12px}.graphic .services-list{grid-template-columns:1fr;gap:18px}.graphic .service{padding:24px}.graphic .about{grid-template-columns:1fr}.graphic .contact-inner{padding:28px}.portfolio .hero-top{grid-template-columns:1fr;gap:22px}.portfolio h1{font-size:clamp(2.5rem,10vw,3.5rem)}.portfolio .hero-media{height:280px}.portfolio .hero-top p{max-width:40ch}.portfolio .hero-bottom{align-items:start;gap:18px}.portfolio .hero-bottom p{max-width:20ch}}
/* Mobile disclosure navigation: explicit state and touch-sized controls. */
.mobile-menu .menu-links[hidden]{display:none!important}
@media(max-width:767px){.mobile-menu{z-index:20}.menu-toggle{display:block;min-height:48px;min-width:104px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--cream);color:var(--ink);font-size:.88rem;font-weight:700;cursor:pointer}.mobile-menu.is-open .menu-links{position:absolute;top:calc(100% + 8px);right:0;display:grid;gap:4px;width:min(260px,calc(100vw - 40px));padding:12px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 32px #132d231a}.menu-links a{display:flex;align-items:center;min-height:48px;padding:10px 12px;font-size:.9rem}.menu-links a:hover{background:var(--tint)}}

/* Stable text sizing on mobile; pinch zoom remains available. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
