@font-face{font-family:Abel;font-style:normal;font-weight:400;font-display:swap;src:url('./assets/abel.woff2') format('woff2')}
@font-face{font-family:'Libre Caslon Display';font-style:normal;font-weight:400;font-display:swap;src:url('./assets/libre-caslon-display.woff2') format('woff2')}
:root{--olive:#686743;--gold:#e2cd7a;--white:#f0eae0;--blue:#cad4dd;--gutter:2vw;--max-width:1400px;--body-size:calc(1rem + .48vmax);--small-size:calc(1rem + .12vmax);--large-size:calc(1rem + .84vmax);--heading-medium:calc(1rem + 3.12vmax);--heading-small:calc(1rem + 2.64vmax)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--olive);background:var(--white);font-family:Abel,'Arial Narrow',sans-serif;font-size:var(--body-size);line-height:1.2;letter-spacing:.02em}p{margin:0 0 1rem}p:last-child{margin-bottom:0}h1,h2{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;letter-spacing:-.01em;margin:0;line-height:1.185}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:.2em}button,input,textarea{font:inherit}button,a,input,textarea,[tabindex]{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid currentColor;outline-offset:6px}img{display:block;max-width:100%}button{cursor:pointer}.skip-link{position:fixed;left:1rem;top:-8rem;z-index:100;background:var(--gold);color:var(--olive);padding:1rem}.skip-link:focus{top:1rem}
.olive-surface{background:var(--olive) url('./assets/papier-olive.webp') center/cover;color:var(--white)}
.site-header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:2vw 4vw;border-bottom:2px solid var(--gold);min-height:100px}.brand img{height:55px;width:auto}.contact-link{color:var(--gold);font-size:1.25rem;padding:1rem 1.3rem;border:1px solid var(--gold)}.contact-link:hover{background:var(--gold);color:var(--olive);text-decoration:none}.menu-toggle{display:none;background:none;border:0;color:var(--white);width:40px;height:40px;padding:0;position:relative}.menu-toggle span{position:absolute;left:5px;top:19px;width:29px;height:1px;background:currentColor;transition:transform .25s}.menu-toggle span:last-child{transform:rotate(90deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:rotate(0)}.mobile-menu{position:absolute;top:100%;left:0;right:0;z-index:20;background:var(--olive);padding:2rem 6vw;border-bottom:2px solid var(--gold)}.mobile-menu a{display:block;padding:.65rem 0;color:var(--gold)}.mobile-menu[hidden]{display:none}
.layout-grid{--container-width:min(var(--max-width),calc(100vw - var(--gutter)*2));--cell-max-width:calc((var(--max-width) - 11px*23)/24);display:grid;grid-template-columns:minmax(calc(var(--gutter) - 11px),1fr) repeat(24,minmax(0,var(--cell-max-width))) minmax(calc(var(--gutter) - 11px),1fr);gap:11px;position:relative}
.hero{padding:2.8vw 0}.hero-grid{grid-template-rows:repeat(15,minmax(calc(var(--container-width)*.0215),auto))}.hero-portrait{grid-area:2/3/15/11}.hero-portrait img{height:100%;width:100%;object-fit:cover;object-position:center}.hero h1{grid-area:3/12/7/23;align-self:center;font-size:var(--heading-medium);color:var(--gold);line-height:1.1648}.hero-intro{grid-area:8/12/10/23;align-self:start;color:var(--gold);font-size:var(--large-size);margin:0}.hero-description{grid-area:10/12/14/22;align-self:center}
.services{background:var(--blue)}.service-grid{grid-template-rows:repeat(10,minmax(calc(var(--container-width)*.0215),auto))}.service{display:contents}.service:focus-visible{outline:none}.service-letter{background:var(--gold);mask-image:var(--letter-image);-webkit-mask-image:var(--letter-image);mask-position:center;mask-size:contain;mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;pointer-events:auto;transition:background-color .35s ease}.service-letter.white{background:var(--white)}.service:hover .service-letter,.service:focus-visible .service-letter{background:var(--white)}.service:hover .service-letter.white,.service:focus-visible .service-letter.white{background:var(--gold)}.service-copy{position:relative;z-index:1;align-self:center}.service h3{font-family:Abel,'Arial Narrow',sans-serif;font-size:var(--body-size);font-weight:700;line-height:1.2;letter-spacing:.02em;margin:0 0 1rem}.service p{font-size:var(--small-size)}
.service-corporate .service-letter{grid-area:2/2/6/6}.service-corporate .service-copy{grid-area:2/4/6/10}.service-print .service-letter{grid-area:6/6/10/10}.service-print .service-copy{grid-area:6/4/10/9}.service-packaging .service-letter{grid-area:6/15/10/19}.service-packaging .service-copy{grid-area:6/12/10/17}.service-events .service-letter{grid-area:2/9/6/13}.service-events .service-copy{grid-area:2/12/6/18}.service-web .service-letter{grid-area:2/18/6/22}.service-web .service-copy{grid-area:2/20/6/26}.service-special .service-letter{grid-area:6/21/10/26}.service-special .service-copy{grid-area:6/19/10/25}
.work{padding:3.3vw 0;background:linear-gradient(#f0eae026,#f0eae026),url('./assets/papier-beige-1200.webp') center/cover}.work-grid{grid-template-rows:repeat(17,minmax(calc(var(--container-width)*.0215),auto))}.moodboard{grid-area:1/15/18/25;width:100%;height:100%;object-fit:cover}.project{margin:0;transition:transform .35s ease;z-index:1;position:relative}.project img{width:100%;height:100%;object-fit:cover}.project:hover,.project:focus-visible{transform:scale(1.045);z-index:2}.project-spread{grid-area:1/3/7/8}.project-cover{grid-area:1/8/7/13}.project-invitation{grid-area:7/3/13/8}.project-menu{grid-area:7/8/13/13}.work h2{grid-area:13/3/16/13;align-self:center;font-size:var(--heading-small);color:var(--gold)}.work-description{grid-area:15/3/18/13;align-self:center;margin:0}
.contact{padding:2vw;background:var(--white);scroll-margin-top:1rem}.contact-grid{background:var(--blue);padding:3.3vw 0;grid-template-rows:repeat(11,minmax(calc(var(--container-width)*.0215),auto))}.contact h2{grid-area:1/3/7/13;align-self:center;font-size:var(--heading-small)}.contact-form{grid-area:1/14/12/26;align-self:center;display:flex;flex-direction:column}.contact-form label{margin:0 0 .55rem;font-size:var(--body-size)}.contact-form label span{font-size:var(--small-size)}.contact-form input,.contact-form textarea{width:100%;padding:.65rem 1rem;border:1px solid var(--olive);border-radius:0;color:var(--olive);background:transparent;margin:0 0 1.1rem;min-height:48px}.contact-form textarea{resize:vertical;min-height:100px}.contact-form input:focus,.contact-form textarea:focus{background:#ffffff26}.contact-form button{align-self:flex-start;border:1px solid var(--olive);border-radius:0;color:var(--white);background:var(--olive);padding:1rem 1.3rem;font-size:1.25rem}.contact-form button:hover{background:var(--white);color:var(--olive)}.form-note{font-size:.875rem;margin:.65rem 0 0}.form-status{font-size:1rem;margin:.75rem 0 0}.form-status[hidden]{display:none}
.site-footer{background:var(--olive);color:var(--white);padding:2vw 0}.footer-grid{grid-template-rows:repeat(4,minmax(calc(var(--container-width)*.0215),auto))}.site-footer h2{grid-area:1/2/4/11;align-self:center;color:var(--gold);font-size:var(--heading-small)}.footer-role{grid-area:3/2/4/12;align-self:end;color:var(--gold);margin:0}.site-footer address{grid-area:2/14/4/21;align-self:start;font-style:normal;font-size:var(--small-size)}.footer-email{color:var(--gold)}.copyright{grid-area:2/21/4/26;align-self:start;font-size:var(--small-size);margin:0}
@media(max-width:1000px) and (min-width:768px){.hero h1{font-size:2.8rem}.hero-intro{font-size:1.3rem}.hero-description,.work-description{font-size:1.15rem}.service h3{font-size:1.2rem}.service p{font-size:1rem}.service-grid{grid-template-rows:repeat(10,minmax(38px,auto))}.work-grid{grid-template-rows:repeat(17,minmax(29px,auto))}.work h2,.contact h2{font-size:2.2rem}.contact-grid{grid-template-rows:repeat(11,minmax(34px,auto))}.footer-grid{grid-template-rows:repeat(4,minmax(32px,auto))}.copyright,.site-footer address{font-size:.9rem}.site-footer h2{font-size:2.2rem}}
@media(max-width:767px){:root{--gutter:6vw;--body-size:1.225rem;--small-size:1.05rem;--large-size:1.4rem;--heading-medium:2.5rem;--heading-small:2.25rem}.site-header{justify-content:center;padding:26px 6vw;min-height:108px}.brand img{width:176px;height:auto}.menu-toggle{display:block;position:absolute;left:6vw}.contact-link{display:none}.layout-grid{--cell-max-width:calc((var(--max-width) - 11px*7)/8);grid-template-columns:minmax(calc(var(--gutter) - 11px),1fr) repeat(8,minmax(0,var(--cell-max-width))) minmax(calc(var(--gutter) - 11px),1fr)}.hero{padding:35px 0}.hero-grid{grid-template-rows:none;row-gap:28px}.hero-portrait{grid-area:1/3/2/9;height:clamp(320px,75vw,480px)}.hero h1{grid-area:2/2/3/10;align-self:start}.hero-intro{grid-area:3/2/4/10;align-self:start}.hero-description{grid-area:4/2/5/10;align-self:start}.service-grid{grid-template-rows:none;row-gap:0;padding:12px 0 24px}.service-letter{min-height:145px}.service-copy{padding:22px 0;min-height:140px}.service-corporate .service-letter{grid-area:1/2/2/6}.service-corporate .service-copy{grid-area:1/3/2/10}.service-print .service-letter{grid-area:2/6/3/10}.service-print .service-copy{grid-area:2/3/3/9}.service-packaging .service-letter{grid-area:3/2/4/6}.service-packaging .service-copy{grid-area:3/3/4/9}.service-events .service-letter{grid-area:4/6/5/10}.service-events .service-copy{grid-area:4/3/5/9}.service-web .service-letter{grid-area:5/2/6/6}.service-web .service-copy{grid-area:5/3/6/10}.service-special .service-letter{grid-area:6/6/7/10}.service-special .service-copy{grid-area:6/3/7/9}.work{padding:25px 0}.work-grid{grid-template-rows:none;row-gap:22px}.moodboard{grid-area:1/2/2/10;height:clamp(400px,98vw,660px);object-position:center}.work h2{grid-area:2/2/3/10}.work-description{grid-area:3/2/4/10;padding-bottom:16px}.project-spread{grid-area:4/2/5/6;height:clamp(150px,33vw,220px)}.project-cover{grid-area:4/6/5/10;height:clamp(150px,33vw,220px)}.project-invitation{grid-area:5/2/6/7;height:clamp(150px,33vw,220px)}.project-menu{grid-area:5/7/6/10;height:clamp(150px,33vw,220px)}.contact{padding:12px}.contact-grid{padding:30px 0;grid-template-rows:none;row-gap:30px}.contact h2{grid-area:1/2/2/10}.contact-form{grid-area:2/2/3/10}.site-footer{padding:32px 0}.footer-grid{grid-template-rows:none;row-gap:10px}.site-footer h2{grid-area:1/2/2/10}.footer-role{grid-area:2/2/3/10;margin-bottom:18px}.site-footer address{grid-area:3/2/4/10}.copyright{grid-area:4/2/5/10;margin-top:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Reference refinements: header, project gallery and contact form. */
:root{--header-height:90px}
.olive-surface{padding-top:var(--header-height)}
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;min-height:0;height:var(--header-height);padding:16px 4vw;background:linear-gradient(rgba(0,0,0,.10),rgba(0,0,0,.10)),var(--olive) url('./assets/papier-olive.webp') center/cover;border-bottom-width:1px;transition:transform .25s ease;}
.site-header.is-hidden{transform:translateY(-100%);pointer-events:none}
.brand img{height:48px;width:auto}
.contact-link{border:0;padding:10px 0;background:none}
.contact-link:hover{background:none;color:var(--white);text-decoration:none}
.work{padding:3.3vw 0}
.work-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto;gap:9%;width:88%;max-width:1400px;margin:0 auto}
.work-left{grid-column:1;grid-row:1;min-width:0}
.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.project-gallery .project{grid-area:auto;height:auto;aspect-ratio:1.125;min-width:0;overflow:hidden}
.project-gallery .project img{width:100%;height:100%;object-fit:cover;object-position:center}
.work-grid .moodboard{position:absolute;top:0;right:0;width:45.5%;height:100%;min-height:0;object-fit:cover;object-position:50% 50%}
.work-grid h2{font-size:var(--heading-small);margin:28px 0 0;line-height:1.14}
.work-grid .work-description{margin:0;max-width:100%;padding:0}
.contact{padding:24px 0;background:var(--blue);scroll-margin-top:100px}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);grid-template-rows:auto;gap:5%;width:88%;max-width:1400px;margin:0 auto;padding:0;background:none}
.contact h2{grid-area:auto;align-self:start;margin-top:12px;font-size:var(--heading-small);line-height:1.2}
.contact-form{grid-area:auto;align-self:start}
.contact-form label{margin:0 0 5px}
.contact-form input,.contact-form textarea{background:rgba(240,234,224,.72);border:1px solid transparent;border-radius:28px;min-height:44px;padding:9px 17px;margin:0 0 18px}
.contact-form textarea{min-height:98px;border-radius:24px}
.contact-form input:focus,.contact-form textarea:focus{background:var(--white);outline:none;box-shadow:none;border-color:transparent}
.contact-form button{border:0;border-radius:30px;background:var(--gold);color:var(--olive);font-size:1rem;padding:15px 20px;min-height:48px}
.contact-form button:hover{background:var(--olive);color:var(--gold)}
.required-note[hidden]{display:none}
.contact-form [aria-invalid=true]{border-color:var(--olive)}
@media(max-width:767px){
 :root{--header-height:80px}
 .site-header{padding:14px 6vw}.brand img{width:160px;height:auto}
 .work-grid{display:flex;flex-direction:column;width:88%;gap:26px}
 .work-grid .moodboard{position:static;order:0;width:100%;height:auto;aspect-ratio:.78;object-fit:cover}
 .work-left{order:1}.project-gallery{gap:10px}
 .work-grid h2{margin-top:25px;font-size:2.2rem}
 .work-description{margin-top:10px!important}
 .contact{padding:28px 0}.contact-grid{display:flex;flex-direction:column;width:88%;gap:26px}
 .contact h2{margin:0;font-size:2.25rem}.contact-form{width:100%}
}

.contact-form button:disabled{opacity:.7;cursor:wait}

.portfolio-strip{position:relative;min-width:0}
.project-clone,.portfolio-pause{display:none}

.hero-copy{display:contents}

/* Desktop spacing refinements; phone layouts retain their separate rules. */
@media(min-width:768px){
  .site-header .brand img{height:57.6px;width:auto}
  .hero{padding:clamp(24px,2vw,36px) 0}
  .hero-grid{grid-template-rows:auto auto auto;row-gap:12px;min-height:clamp(430px,36vw,520px);align-content:center}
  .hero-portrait{grid-area:1/3/4/11;width:100%;height:auto;aspect-ratio:4/5;align-self:center}
  .hero-portrait img{object-position:center 12%}
  .hero-copy{display:grid;grid-area:1/12/4/23;grid-template-columns:repeat(11,minmax(0,1fr));row-gap:24px;column-gap:11px;align-self:center;min-width:0}
  .hero h1{grid-area:1/1/2/12;align-self:start;font-size:clamp(2.8rem,calc(1rem + 3.12vmax),3.8rem)}
  .hero-intro{grid-area:2/1/3/12;align-self:start}
  .hero-description{grid-area:3/1/4/11;align-self:start;margin-top:0}
  .work-grid h2{margin-top:14px;margin-bottom:14px;color:var(--olive)}
  .work-grid .moodboard{position:static;grid-column:2;grid-row:1;width:100%;height:auto;aspect-ratio:.86;object-position:center 25%;align-self:start}
  .site-footer{padding:24px 0}
  .footer-grid{grid-template-rows:auto auto;row-gap:8px;align-items:center}
  .site-footer h2{grid-area:1/2/2/12;align-self:end}
  .footer-role{grid-area:2/2/3/12;align-self:start}
  .site-footer address{grid-area:1/14/3/21;align-self:center}
  .copyright{grid-area:1/21/3/26;align-self:center}
}

.services-title{display:flex;align-items:center;gap:clamp(20px,3vw,48px);grid-area:1/3/2/25;align-self:center;margin:0;padding:0 0 12px;font-family:'Libre Caslon Display',Georgia,serif;font-size:clamp(1.8rem,calc(.8rem + 2.2vmax),2.8rem);font-weight:400;line-height:1.14;letter-spacing:-.01em;text-align:center;color:var(--olive);min-width:0}
.services-title span{flex:0 1 auto;min-width:0;text-wrap:balance}
.services-title::before,.services-title::after{content:'';flex:1 1 0;min-width:48px;height:2px;background:currentColor;opacity:.4}
@media(min-width:768px){.service-grid{padding-top:32px}}
