@font-face{font-family:"Spline Sans";src:url("../fonts/spline-sans-regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Spline Sans";src:url("../fonts/spline-sans-medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Spline Sans";src:url("../fonts/spline-sans-semibold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}

:root{
  --color-dark-green:#1f322f;--color-medium-green:#778c75;--color-light-green:#dce5d2;
  --color-pale-green:#f1f4ea;--color-off-white:#fafaf5;--color-text:#18211f;--color-highlight:#a9d88f;--color-menu-hover:#7fb464;--color-line:rgba(31,50,47,.18);
  --radius-sm:12px;--radius-md:20px;--radius-lg:32px;--radius-pill:999px;
  --space-section:clamp(5rem,11vw,10.5rem);--gutter:clamp(1.25rem,4vw,4.5rem);--max-width:1440px;
  --ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--ease-drawer:cubic-bezier(.32,.72,0,1);
  --duration-fast:180ms;--duration-medium:360ms;--duration-reveal:700ms;
  --shadow-soft:0 8px 30px rgba(23,39,36,.07)
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--color-off-white)}
body{margin:0;font-family:"Spline Sans",sans-serif;font-size:clamp(1rem,.95rem + .18vw,1.125rem);line-height:1.58;color:var(--color-text);background:var(--color-off-white);text-rendering:optimizeLegibility;overflow-x:hidden;transition:opacity 140ms ease}
body.nav-open{overflow:hidden}body.is-leaving{opacity:.25}
img{display:block;width:100%;height:100%;object-fit:cover;background:var(--color-light-green)}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}
p,h1,h2,h3,h4{margin:0}p{max-width:650px}ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--color-medium-green);outline-offset:4px}
.skip-link{position:fixed;z-index:1000;top:12px;left:12px;transform:translateY(-150%);background:var(--color-off-white);padding:.7rem 1rem;border-radius:var(--radius-pill)}.skip-link:focus{transform:none}
.container{width:min(calc(100% - (2 * var(--gutter))),var(--max-width));margin-inline:auto}
.section{padding-block:var(--space-section)}.section--tight{padding-block:clamp(4rem,8vw,7rem)}
.eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;margin-bottom:1.2rem}
.display{font-size:clamp(3.25rem,7.5vw,6.25rem);line-height:.94;letter-spacing:-.055em;font-weight:500}
.h1{font-size:clamp(3rem,6.8vw,5.75rem);line-height:.98;letter-spacing:-.052em;font-weight:500;max-width:1100px}
.h2{font-size:clamp(2.5rem,5vw,4.5rem);line-height:1;letter-spacing:-.045em;font-weight:500}
.h3{font-size:clamp(1.8rem,3vw,3rem);line-height:1.05;letter-spacing:-.035em;font-weight:500}
.intro{font-size:clamp(1.2rem,1.6vw,1.65rem);line-height:1.4;letter-spacing:-.015em}
.muted{color:rgba(24,33,31,.68)}
.section-head{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.5rem,3vw,2rem);align-items:end;margin-bottom:clamp(3rem,6vw,5rem)}
.section-head h2{grid-column:1/span 7}.section-head p{grid-column:9/-1}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;min-height:48px;padding:.7rem 1.25rem;border:1px solid transparent;border-radius:var(--radius-pill);font-size:.95rem;font-weight:500;transition:transform 140ms var(--ease-out),background-color var(--duration-fast) ease,color var(--duration-fast) ease,border-color var(--duration-fast) ease}
.button::after,.text-link::after{content:"→";transition:transform var(--duration-fast) var(--ease-out)}
.button--primary{background:var(--color-dark-green);color:var(--color-off-white)}
.button--secondary{background:transparent;color:var(--color-dark-green);border-color:var(--color-dark-green)}
.button--light{background:var(--color-off-white);color:var(--color-dark-green)}
.button:active{transform:scale(.97)}
.text-link{display:inline-flex;align-items:center;gap:.65rem;padding-bottom:.22rem;font-weight:500;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size var(--duration-fast) ease}
@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-2px)}.button:hover::after,.text-link:hover::after{transform:translateX(4px)}.button--primary:hover{background:var(--color-menu-hover);color:var(--color-off-white)}.button--secondary:hover{background:var(--color-dark-green);color:var(--color-off-white)}.button--light:hover{background:var(--color-light-green)}.text-link:hover{background-size:35% 1px}}

/* Header */
.site-header{position:fixed;z-index:100;top:18px;left:50%;width:min(calc(100% - 2rem),1380px);transform:translateX(-50%);will-change:transform;transition:transform 280ms var(--ease-out)}.site-header.is-hidden{transform:translate(-50%,calc(-100% - 32px))}
.nav-shell{display:flex;align-items:center;min-height:68px;padding:.55rem .65rem .55rem 1.25rem;border:1px solid rgba(255,255,255,.56);border-radius:var(--radius-pill);background:rgba(250,250,245,.78);box-shadow:var(--shadow-soft);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:min-height var(--duration-fast) var(--ease-out),background-color var(--duration-fast) ease}
.site-header.is-scrolled .nav-shell{min-height:58px;background:rgba(250,250,245,.91)}
.brand{display:flex;align-items:center;flex:0 0 auto}.brand-logo{display:block;width:clamp(8.75rem,12vw,10.25rem);height:auto;object-fit:contain;background:transparent}.desktop-nav{display:flex;align-items:center;gap:.1rem;margin-left:auto}.desktop-nav a{padding:.65rem .9rem;border-radius:var(--radius-pill);font-size:.9rem;font-weight:500;transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease}.desktop-nav a[aria-current="page"]{background:var(--color-light-green)}
.desktop-nav .nav-cta{margin-left:.5rem;padding:.7rem 1.15rem;background:var(--color-dark-green);color:var(--color-off-white)}
.desktop-nav .nav-cta[aria-current="page"]{background:var(--color-dark-green);color:var(--color-off-white)}
.header-social,.social-list,.mobile-social{display:flex;align-items:center;gap:.4rem}.header-social{margin-left:.35rem}.desktop-nav .social-icon,.footer-column .social-icon,.mobile-social .social-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--color-line);border-radius:50%;transition:transform 140ms var(--ease-out),background-color var(--duration-fast) ease,border-color var(--duration-fast) ease}.social-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.social-icon:active{transform:scale(.94)}
@media(hover:hover) and (pointer:fine){.desktop-nav>a:not(.nav-cta):not([aria-current="page"]):hover{background:transparent;color:var(--color-menu-hover)}.desktop-nav .nav-cta:hover{background:var(--color-menu-hover);color:var(--color-off-white)}.social-icon:hover{transform:translateY(-2px);background:var(--color-light-green)}.mobile-panel nav a:hover{color:var(--color-menu-hover)}}
.menu-toggle{display:none;margin-left:auto;width:46px;height:46px;border:0;border-radius:50%;background:var(--color-dark-green);color:var(--color-off-white);position:relative}
.menu-toggle span,.menu-toggle::after{content:"";position:absolute;left:14px;width:18px;height:1px;background:currentColor;transition:transform 180ms var(--ease-out),top 180ms var(--ease-out)}.menu-toggle span{top:19px}.menu-toggle::after{top:26px}.menu-toggle[aria-expanded="true"] span{top:23px;transform:rotate(45deg)}.menu-toggle[aria-expanded="true"]::after{top:23px;transform:rotate(-45deg)}
.mobile-panel{display:none}

/* Hero */
.home-hero{min-height:100svh;padding:clamp(8rem,14vw,11rem) 0 clamp(3rem,6vw,5rem);background:var(--color-pale-green);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1rem,2vw,2rem);align-items:end;min-height:calc(100svh - 13rem)}
.hero-copy{grid-column:1/span 8;position:relative;z-index:2}.hero-copy .display{max-width:980px}.hero-highlight{color:var(--color-highlight)}.hero-copy .intro{max-width:610px;margin-top:clamp(1.5rem,3vw,2.5rem)}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.hero-visual{--hero-cycle:5200ms;grid-column:9/-1;align-self:stretch;min-height:410px;border-radius:11rem 11rem var(--radius-lg) var(--radius-lg);overflow:hidden;position:relative;background:var(--color-light-green)}.hero-slides,.hero-slide,.hero-slide img{position:absolute;inset:0}.hero-slide{margin:0;opacity:0;transform:scale(1.015);transition:opacity 620ms ease,transform 720ms var(--ease-out);pointer-events:none}.hero-slide.is-active{z-index:1;opacity:1;transform:none}.hero-carousel-meta{position:absolute;z-index:2;right:1rem;bottom:1rem;left:1rem;display:grid;gap:.65rem}.hero-carousel-meta>[data-hero-label]{justify-self:end;padding:.45rem .8rem;border-radius:var(--radius-pill);background:rgba(250,250,245,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-size:.78rem;font-weight:500}.hero-progress{display:block;justify-self:center;width:clamp(7rem,34%,10rem);height:3px;overflow:hidden;border-radius:var(--radius-pill);background:rgba(250,250,245,.42)}.hero-progress span{display:block;width:100%;height:100%;border-radius:inherit;background:var(--color-off-white);transform:scaleX(0);transform-origin:left center}.hero-visual.is-running .hero-progress span{transform:scaleX(1);transition:transform var(--hero-cycle) linear}

/* Work */
.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(2rem,5vw,5.5rem) clamp(1rem,2.2vw,2rem);align-items:start}
.project-card{grid-column:span 6;transition:transform 360ms var(--ease-out)}.project-card--wide{grid-column:1/-1}.project-card--large{grid-column:1/span 8}.project-card--small{grid-column:9/-1;margin-top:25%}.project-card--offset{grid-column:2/span 5}.project-card--end{grid-column:8/-1;margin-top:15%}
.project-media{position:relative;overflow:hidden;border-radius:var(--radius-md);background:var(--color-light-green);aspect-ratio:4/3}.project-card--wide .project-media{aspect-ratio:16/7}.project-card--large .project-media{aspect-ratio:5/4}.project-card--small .project-media{aspect-ratio:3/4}.project-card--offset .project-media{aspect-ratio:4/5}
.home-project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-project-grid .project-card{grid-column:auto;margin-top:0;cursor:default}.home-project-grid .project-media{aspect-ratio:4/5}.home-project-grid .project-meta{display:block}.home-project-grid .project-categories{display:block;margin-top:.4rem;text-align:left}
.project-media img{transition:transform 420ms var(--ease-out)}.project-overlay{position:absolute;right:1rem;bottom:1rem;padding:.6rem .9rem;border-radius:var(--radius-pill);background:rgba(250,250,245,.83);backdrop-filter:blur(16px);font-size:.84rem;font-weight:500;opacity:0;transform:translateY(8px);transition:opacity 220ms ease,transform 220ms var(--ease-out)}
.project-meta{display:flex;justify-content:space-between;gap:1rem;padding-top:1rem}.project-name{font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.15;font-weight:500}.project-categories{font-size:.82rem;color:var(--color-menu-hover);text-align:right}.project-categories::before{content:"→";margin-right:.45rem;color:var(--color-text)}
.more-link{margin-top:4rem}
@media(hover:hover) and (pointer:fine){.project-card:hover{transform:translateY(-5px)}.project-card:hover .project-media img{transform:scale(1.03)}.project-card:hover .project-overlay{opacity:1;transform:none}}

/* Services */
.home-services-section{padding-top:clamp(2.5rem,5vw,5rem)}
.services-list{border-top:1px solid var(--color-line)}.service-row{position:relative;display:grid;grid-template-columns:1fr 8fr 2fr;gap:2rem;align-items:center;min-height:130px;border-bottom:1px solid var(--color-line);overflow:visible;isolation:isolate}.service-row::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;background:var(--color-light-green);transform:translateX(-50%);clip-path:inset(100% 0 0);transition:clip-path 240ms var(--ease-in-out)}.service-number{font-size:.82rem}.service-title{font-size:clamp(2rem,4vw,4rem);line-height:1}.service-arrow{justify-self:end;font-size:1.6rem;transition:transform var(--duration-fast) var(--ease-out)}
@media(hover:hover) and (pointer:fine){.service-row:hover::before{clip-path:inset(0)}.service-row:hover .service-arrow{transform:translateX(5px)}}
.direction-block{position:relative;overflow:hidden;padding:clamp(3rem,7vw,7rem);border-radius:var(--radius-lg);background:var(--color-dark-green);color:var(--color-off-white)}.direction-block h2{max-width:900px}.direction-block .intro{margin-top:2rem;color:rgba(250,250,245,.74)}.direction-cta{margin-top:clamp(2.5rem,5vw,4.5rem)}

/* About, manifesto, CTA */
.about-split{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;align-items:center}.about-copy{grid-column:1/span 6}.about-copy p{margin-top:1.5rem}.about-copy .text-link{margin-top:2rem}.about-image{grid-column:8/-1;aspect-ratio:4/5;border-radius:10rem 10rem var(--radius-lg) var(--radius-lg);overflow:hidden}
.about-editorial{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;padding-top:clamp(2rem,4vw,3.5rem);border-top:1px solid var(--color-line);align-items:start}.about-editorial>.h2{grid-column:1/span 5;max-width:560px}.about-editorial-copy{grid-column:7/-1;max-width:650px}.about-editorial-copy p+p{margin-top:1.5rem}
.manifesto{padding-block:clamp(6rem,14vw,12rem);background:var(--color-dark-green);color:var(--color-off-white)}.manifesto p{max-width:1100px;font-size:clamp(2.6rem,5.8vw,5.5rem);line-height:1.02;letter-spacing:-.045em}.manifesto p span{display:block}.manifesto p span+span{margin-top:.28em}
.final-cta{padding-block:clamp(5rem,10vw,9rem);background:var(--color-light-green)}.final-cta .h2{font-size:clamp(2.2rem,4.6vw,4rem);white-space:nowrap}.cta-grid{display:grid;grid-template-columns:2fr 1fr;gap:2rem;align-items:end}.cta-grid p{margin-top:1.5rem}.cta-grid .button{justify-self:end}

/* Instagram */
.instagram-section{padding-block:clamp(5rem,10vw,9rem);background:var(--color-off-white)}
.instagram-header{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;align-items:end;margin-bottom:clamp(2.5rem,5vw,4rem)}.instagram-header>div{grid-column:1/span 8}.instagram-header .eyebrow{margin-bottom:1rem}.instagram-header .text-link{grid-column:10/-1;justify-self:end}
.instagram-grid{display:grid;width:80%;margin-inline:auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.65rem,1.15vw,1rem)}.instagram-grid>*:nth-child(2){transition-delay:55ms}.instagram-grid>*:nth-child(3){transition-delay:110ms}.instagram-grid>*:nth-child(4){transition-delay:165ms}.instagram-grid>*:nth-child(5){transition-delay:220ms}.instagram-grid>*:nth-child(6){transition-delay:275ms}.instagram-post{position:relative;display:block;aspect-ratio:1;overflow:hidden;border-radius:var(--radius-sm);background:var(--color-light-green)}.instagram-post img{transition:transform 420ms var(--ease-out)}.instagram-post::after{content:"↗";position:absolute;top:.8rem;right:.8rem;display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:50%;background:rgba(250,250,245,.86);color:var(--color-dark-green);font-size:1rem;opacity:0;transform:translateY(5px);transition:opacity 220ms ease,transform 220ms var(--ease-out);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
@media(hover:hover) and (pointer:fine){.instagram-post:hover img{transform:scale(1.03)}.instagram-post:hover::after{opacity:1;transform:none}}

/* Inner pages */
.page-hero{padding:clamp(10rem,18vw,14rem) 0 clamp(5rem,9vw,8rem);background:var(--color-pale-green)}.page-hero .intro{margin-top:2rem;max-width:680px}.page-hero--dark{background:var(--color-dark-green);color:var(--color-off-white)}
.detail-section{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;padding-block:clamp(4rem,8vw,7rem);border-top:1px solid var(--color-line)}.detail-heading{grid-column:1/span 4}.detail-copy{grid-column:6/-1}.detail-copy>.intro{margin-bottom:2.5rem}.detail-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem 2rem;border-top:1px solid var(--color-line);padding-top:1.5rem}.detail-list li::before{content:"—";margin-right:.65rem;color:var(--color-highlight)}
.creative-continuous{background:var(--color-dark-green);color:var(--color-off-white)}.creative-continuous .detail-section{border-color:rgba(255,255,255,.18)}.service-popular-badge{display:inline-flex;width:max-content;align-items:center;margin-top:1.25rem;padding:.42rem .8rem;border-radius:var(--radius-pill);background:var(--color-highlight);color:var(--color-dark-green);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.creative-continuous .detail-list{margin-top:2.5rem;border-color:rgba(255,255,255,.18)}
.process-list{counter-reset:process;border-top:1px solid var(--color-line)}.process-list li{display:grid;grid-template-columns:1fr 5fr;align-items:baseline;padding:1.5rem 0;border-bottom:1px solid var(--color-line)}.process-list li::before{counter-increment:process;content:"0" counter(process);font-size:.8rem}.process-list span{font-size:clamp(1.8rem,4vw,3.75rem);line-height:1}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:clamp(3rem,6vw,5rem)}.filter-button{min-height:44px;padding:.55rem 1rem;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:transparent;font-size:.88rem;transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease,transform 140ms var(--ease-out)}.filter-button[aria-pressed="true"]{background:var(--color-dark-green);color:var(--color-off-white)}.filter-button:active{transform:scale(.97)}
.portfolio-grid .project-card.is-hidden{display:none}.portfolio-grid .project-card.is-filtering{opacity:0;transform:translateY(8px)}.portfolio-grid .project-card{transition:opacity 220ms ease,transform 220ms var(--ease-out)}.portfolio-grid article.project-card{cursor:default}

/* Case studies */
.case-hero{padding-top:clamp(10rem,16vw,13rem)}.case-title-row{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;align-items:end;margin-bottom:3rem}.case-title-row h1{grid-column:1/span 9}.case-tags{grid-column:10/-1;text-align:right;font-size:.9rem}.case-hero-image{aspect-ratio:16/8;overflow:hidden;border-radius:var(--radius-lg)}
.case-intro{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem}.case-intro .eyebrow{grid-column:1/span 3}.case-intro .intro{grid-column:5/span 7}.case-full{aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius-md)}.case-pair{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.case-pair figure{margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-md)}.case-pair--uneven{grid-template-columns:5fr 7fr;align-items:end}.case-pair--uneven figure:last-child{aspect-ratio:4/3}.result-block{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem}.result-block h2{grid-column:1/span 5}.result-block p{grid-column:7/-1}.next-project{display:flex;justify-content:space-between;align-items:end;padding-block:clamp(4rem,8vw,7rem);border-top:1px solid var(--color-line)}.next-project span{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}.next-project strong{display:block;margin-top:.6rem;font-size:clamp(2rem,5vw,4.5rem);font-weight:500;line-height:1}.next-project::after{content:"→";font-size:clamp(2rem,4vw,4rem)}

/* About and contact */
.principles{border-top:1px solid var(--color-line)}.principle{display:grid;grid-template-columns:1fr 5fr 5fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--color-line)}.principle h3{font-size:clamp(1.5rem,2.5vw,2.3rem)}.principle p{color:rgba(24,33,31,.7)}
.visual-band{aspect-ratio:16/7;border-radius:var(--radius-lg);overflow:hidden}.sector-note{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem}.sector-note h2{grid-column:1/span 6}.sector-note .intro{grid-column:8/-1}
.contact-layout{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem}.contact-aside{grid-column:1/span 4}.contact-aside .text-link{margin-top:2rem}.contact-form{grid-column:6/-1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.field{display:grid;gap:.55rem}.field--full{grid-column:1/-1}.field label{font-size:.85rem;font-weight:500}.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid rgba(31,50,47,.4);border-radius:0;background:transparent;padding:.8rem 0;outline:none;transition:border-color var(--duration-fast) ease,background-color var(--duration-fast) ease}.field textarea{min-height:150px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-dark-green);background:rgba(220,229,210,.25)}.field-error{min-height:1.2em;color:#8a3028;font-size:.78rem}.recaptcha-field{display:grid;gap:.55rem;margin-top:1.5rem}.recaptcha-field:focus-visible{outline:2px solid var(--color-medium-green);outline-offset:5px}.recaptcha-label{font-size:.85rem;font-weight:500}.recaptcha-shell{display:flex;min-height:92px;align-items:center;padding:.45rem 0}.recaptcha-widget:empty{display:none}.recaptcha-message{max-width:520px;color:rgba(24,33,31,.68);font-size:.86rem}.recaptcha-field[data-state="ready"] .recaptcha-message{font-size:.76rem}.recaptcha-note{color:rgba(24,33,31,.58);font-size:.72rem}.form-actions{display:flex;align-items:center;gap:1rem;margin-top:2rem}.form-status{font-size:.88rem}.button[disabled]{opacity:.55;cursor:not-allowed;transform:none}

/* Legal */
.legal{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem}.legal-nav{grid-column:1/span 3;position:sticky;top:120px;align-self:start}.legal-content{grid-column:5/span 7}.legal-updated{margin-bottom:3rem;color:rgba(24,33,31,.62);font-size:.9rem}.legal-content section+section{margin-top:3.5rem}.legal-content h2{font-size:clamp(1.5rem,2.5vw,2.3rem);margin-bottom:1rem}.legal-content h3{margin:2rem 0 .7rem;font-size:clamp(1.1rem,1.5vw,1.35rem);font-weight:600}.legal-content p+p{margin-top:1rem}.legal-content ul{display:grid;gap:.55rem;margin:1.2rem 0}.legal-content li{position:relative;padding-left:1.25rem}.legal-content li::before{content:"—";position:absolute;left:0;color:var(--color-medium-green)}.legal-data{display:grid;grid-template-columns:minmax(130px,.7fr) 1.5fr;gap:.55rem 1.5rem;margin:1.4rem 0}.legal-data dt{color:rgba(24,33,31,.62)}.legal-data dd{margin:0}.legal-content a{text-decoration:underline;text-decoration-color:rgba(31,50,47,.35);text-underline-offset:.18em}.placeholder-notice{padding:1rem 1.2rem;border-left:3px solid var(--color-medium-green);background:var(--color-pale-green);font-size:.9rem;margin-bottom:2.5rem}

/* Footer and cookies */
.site-footer{padding:clamp(5rem,9vw,8rem) 0 2rem;background:var(--color-dark-green);color:var(--color-off-white)}.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;padding-bottom:clamp(4rem,8vw,7rem)}.footer-brand{display:flex;align-items:center}.footer-logo{display:block;width:clamp(15rem,32vw,27rem);height:auto;object-fit:contain;background:transparent}.footer-column h2{font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(250,250,245,.55);margin-bottom:1.2rem}.footer-column>a{display:block;width:max-content;padding:.2rem 0}.footer-column .social-icon{color:var(--color-off-white);border-color:rgba(250,250,245,.28)}.footer-column .social-icon:hover{background:rgba(250,250,245,.12);border-color:rgba(250,250,245,.5)}.footer-bottom{display:flex;justify-content:space-between;gap:2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.18);font-size:.78rem;color:rgba(250,250,245,.6)}.legal-links{display:flex;flex-wrap:wrap;gap:1.2rem}
.cookie-banner{position:fixed;z-index:200;left:50%;bottom:18px;width:min(calc(100% - 2rem),680px);transform:translate(-50%,130%);padding:1rem 1.1rem;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-md);background:rgba(31,50,47,.94);color:var(--color-off-white);box-shadow:var(--shadow-soft);backdrop-filter:blur(18px);transition:transform 260ms var(--ease-drawer, var(--ease-out))}.cookie-banner.is-visible{transform:translate(-50%,0)}.cookie-inner{display:flex;align-items:center;gap:1.2rem}.cookie-inner p{font-size:.82rem;line-height:1.4}.cookie-inner a{text-decoration:underline}.cookie-actions{display:flex;gap:.45rem;margin-left:auto}.cookie-actions button{min-height:40px;padding:.45rem .8rem;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius-pill);background:transparent;color:inherit;font-size:.8rem}.cookie-actions .accept{background:var(--color-off-white);color:var(--color-dark-green)}

/* Reveals */
.reveal{opacity:0;transform:translateY(26px);transition:opacity var(--duration-reveal) ease,transform var(--duration-reveal) var(--ease-out)}.reveal.is-visible{opacity:1;transform:none}.reveal-image{clip-path:inset(0 0 8% 0);transform:scale(.98);transition:clip-path var(--duration-reveal) var(--ease-out),transform var(--duration-reveal) var(--ease-out)}.reveal-image.is-visible{clip-path:inset(0);transform:none}.stagger>*{transition-delay:calc(var(--i,0) * 55ms)}

@media(max-width:900px){
  :root{--gutter:2rem;--space-section:clamp(6rem,12vw,7.5rem)}
  .header-social{display:none}.section-head h2{grid-column:1/span 8}.section-head p{grid-column:9/-1}.hero-grid{min-height:auto}.hero-copy{grid-column:1/span 9}.hero-visual{grid-column:9/-1;min-height:360px;margin-left:-2rem}.home-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card--large{grid-column:1/span 8}.project-card--small{grid-column:9/-1}.direction-block{padding:4rem 3rem}.about-copy{grid-column:1/span 7}.about-image{grid-column:8/-1}.detail-heading{grid-column:1/span 4}.detail-copy{grid-column:5/-1}.contact-aside{grid-column:1/span 4}.contact-form{grid-column:5/-1}.cta-grid{grid-template-columns:1fr}.cta-grid .button{justify-self:start;margin-top:2rem}.instagram-header>div{grid-column:1/span 8}.instagram-header .text-link{grid-column:9/-1}
}

@media(max-width:720px){
  :root{--gutter:1.25rem;--space-section:clamp(4.5rem,20vw,6rem)}
  .site-header{top:10px;width:calc(100% - 1rem)}.nav-shell{min-height:60px;padding:.4rem .45rem .4rem 1rem}.desktop-nav{display:none}.menu-toggle{display:block}.mobile-panel{display:flex;position:fixed;z-index:90;inset:0;padding:7rem var(--gutter) 2rem;background:var(--color-pale-green);flex-direction:column;justify-content:flex-start;opacity:0;visibility:hidden;transform:translateY(-12px);transform-origin:calc(100% - 2rem) 2rem;transition:opacity 180ms ease,transform 220ms var(--ease-out),visibility 0s linear 220ms}.mobile-panel.is-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}.mobile-panel nav a{display:block;padding:.55rem 0;font-size:clamp(2.3rem,11vw,4rem);line-height:1;font-weight:500;letter-spacing:-.045em}.mobile-panel small{margin-top:auto;font-size:.8rem;color:rgba(24,33,31,.6)}.mobile-social{margin-top:1.25rem}.mobile-panel nav+.mobile-social{margin-top:auto}
  .display{font-size:clamp(3rem,15vw,4.25rem)}.h1{font-size:clamp(2.8rem,13vw,4rem)}.h2{font-size:clamp(2.35rem,11vw,3.3rem)}
  .home-hero{padding-top:8rem}.hero-grid{display:flex;flex-direction:column;align-items:stretch}.hero-copy{order:1}.hero-visual{order:2;min-height:0;aspect-ratio:4/5;margin:3rem 0 0;width:82%;align-self:flex-end;border-radius:8rem 8rem var(--radius-md) var(--radius-md)}.hero-actions{gap:.6rem}.hero-actions .button{flex:1}
  .section-head{display:block}.section-head p{margin-top:1.5rem}.project-grid{display:block}.project-card,.project-card--large,.project-card--small,.project-card--wide,.project-card--offset,.project-card--end{margin:0 0 3.5rem}.project-card--wide .project-media,.project-card--large .project-media{aspect-ratio:4/3}.project-card--small .project-media,.project-card--offset .project-media,.home-project-grid .project-media{aspect-ratio:4/5}.project-meta{display:block}.project-categories{text-align:left;margin-top:.35rem}
  .service-row{grid-template-columns:2.5rem 1fr 1.5rem;min-height:96px;gap:.5rem}.service-title{font-size:clamp(1.7rem,8vw,2.5rem)}.direction-block{margin-inline:-.5rem;padding:3.5rem 1.5rem;border-radius:var(--radius-md)}.instagram-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem}.instagram-header .h2{font-size:clamp(2rem,9vw,3rem)}.instagram-grid{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.instagram-post{border-radius:10px}.instagram-post::after{display:none}
  .about-split{display:flex;flex-direction:column;gap:3rem}.about-image{width:85%;align-self:flex-end;aspect-ratio:4/5}.about-editorial{display:block;padding-top:1.5rem}.about-editorial-copy{margin-top:2rem}.manifesto p{font-size:clamp(2.5rem,11.5vw,3.6rem)}.final-cta .h2{white-space:normal}.cta-grid{display:block}.cta-grid .button{margin-top:2rem}
  .page-hero{padding-top:9rem}.detail-section{display:block}.detail-heading{margin-bottom:2rem}.detail-list{grid-template-columns:1fr}.process-list li{grid-template-columns:3rem 1fr}.case-title-row{display:block}.case-tags{text-align:left;margin-top:1.5rem}.case-hero-image{aspect-ratio:4/3;border-radius:var(--radius-md)}.case-intro{display:block}.case-intro .intro{margin-top:1.5rem}.case-pair,.case-pair--uneven{grid-template-columns:1fr;gap:1rem}.case-pair--uneven figure:last-child{aspect-ratio:4/3}.result-block{display:block}.result-block p{margin-top:1.5rem}.next-project{align-items:center}.next-project::after{font-size:2rem}
  .principle{grid-template-columns:2.5rem 1fr}.principle p{grid-column:2}.visual-band{aspect-ratio:4/3;border-radius:var(--radius-md)}.sector-note{display:block}.sector-note .intro{margin-top:2rem}.contact-layout{display:block}.contact-aside{margin-bottom:4rem}.form-grid{grid-template-columns:1fr}.field--full{grid-column:auto}.form-actions{align-items:flex-start;flex-direction:column}.legal{display:block}.legal-nav{display:none}.legal-data{grid-template-columns:1fr;gap:.1rem}.legal-data dd+dt{margin-top:.7rem}.footer-top{grid-template-columns:1fr 1fr}.footer-intro{grid-column:1/-1;margin-bottom:2rem}.footer-bottom{display:block}.legal-links{margin-top:1rem}.cookie-inner{align-items:flex-start;flex-direction:column}.cookie-actions{margin-left:0;width:100%}.cookie-actions button{flex:1}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.reveal-image{opacity:1;transform:none;clip-path:none;transition:opacity 180ms ease}.project-card,.project-media img,.project-overlay,.service-row::before,.site-header,.mobile-panel,.cookie-banner,.hero-slide,.hero-progress span{transition-duration:0ms}.hero-progress span{transform:scaleX(1)}body{transition:none}}
