:root{--paper:#f2f0ea;--ink:#11110f;--blue:#0031ff;--line:rgba(17,17,15,.22);--pad:clamp(18px,3vw,52px);--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px}body,button,a{cursor:auto}img{display:block;width:100%}a{color:inherit;text-decoration:none}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:200;background:var(--blue);color:#fff;padding:1rem}.skip-link:focus{top:1rem}.topbar{position:sticky;top:0;z-index:100;display:grid;grid-template-columns:1fr 1fr 2fr;align-items:center;gap:2rem;padding:18px var(--pad);border-bottom:1px solid var(--line);background:rgba(242,240,234,.94);backdrop-filter:blur(18px)}.brand{width:clamp(130px,14vw,210px)}.header-note{margin:0;font-size:.74rem;line-height:1.15;text-transform:uppercase}.topbar nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(1rem,2.6vw,3.2rem);font-size:.88rem;text-transform:uppercase}.contact-pill{border:1px solid;padding:.8rem 1.15rem;border-radius:3rem}.menu-button{display:none;border:0;background:none;font:inherit;text-transform:uppercase}.mobile-menu{position:fixed;inset:76px 0 auto;z-index:99;padding:1rem var(--pad) 2rem;background:var(--paper);border-bottom:1px solid}.mobile-menu a{display:block;padding:1rem 0;border-bottom:1px solid var(--line);font-size:1.5rem}.hero{padding:clamp(4rem,8vw,8rem) var(--pad) var(--pad)}.hero-label{display:flex;justify-content:space-between;padding-bottom:1rem;border-bottom:1px solid;font-size:.78rem;text-transform:uppercase}.hero h1{max-width:15ch;margin:clamp(2rem,5vw,5rem) 0;font-size:clamp(4rem,11vw,11rem);font-weight:500;letter-spacing:-.075em;line-height:.82}.hero h1 em,.contact h2 em{color:var(--blue);font-family:Georgia,serif;font-weight:400}.hero-feature{position:relative;display:block;overflow:hidden;background:#111}.hero-feature img{height:min(72vw,820px);object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}.hero-feature:hover img{transform:scale(1.025)}.hero-feature div{position:absolute;inset:auto 0 0;display:grid;grid-template-columns:1fr 2fr 1fr;align-items:end;padding:1.4rem;color:white;background:linear-gradient(transparent,rgba(0,0,0,.72));text-transform:uppercase}.hero-feature strong{font-size:clamp(2rem,5vw,5rem);font-weight:500;letter-spacing:-.06em}.hero-feature span:last-child{text-align:right}.section-tag{margin:0;font-size:.75rem;text-transform:uppercase}.studio-intro{display:grid;grid-template-columns:.55fr 1.6fr .7fr;gap:clamp(2rem,5vw,6rem);padding:clamp(7rem,12vw,12rem) var(--pad);border-bottom:1px solid var(--line)}.studio-copy h2,.section-head h2,.capabilities-head h2{margin:0;font-size:clamp(2.8rem,6vw,6.4rem);font-weight:500;letter-spacing:-.065em;line-height:.9}.studio-copy p{max-width:42rem;margin:3rem 0 0;font-size:clamp(1.15rem,1.8vw,1.65rem);line-height:1.25}.portrait{align-self:end;margin:0}.portrait img{aspect-ratio:1;object-fit:cover;filter:grayscale(1)}.work{padding:clamp(6rem,10vw,10rem) var(--pad)}.section-head{display:grid;grid-template-columns:.55fr 1.6fr auto;gap:2rem;align-items:start;margin-bottom:clamp(4rem,8vw,8rem)}.section-head>span{font-size:.8rem}.featured-work{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.5rem,3vw,4rem)}.work-card{grid-column:span 6;margin-bottom:clamp(3rem,7vw,8rem);transition-delay:var(--reveal-delay)}.work-card figure{position:relative;margin:0;overflow:hidden;background:var(--project-color)}.work-card figure::after{content:"";position:absolute;inset:0;background:var(--project-color);transform:translateX(0);transition:transform 1.05s cubic-bezier(.76,0,.24,1) calc(var(--reveal-delay) + 120ms);pointer-events:none}.work-card figure img{aspect-ratio:4/3;object-fit:cover;transform:scale(1.07);filter:saturate(.82);transition:transform 1.05s cubic-bezier(.2,.7,.2,1),filter .6s ease}.work-card.visible figure::after{transform:translateX(101%)}.work-card.visible figure img{transform:scale(1)}.work-card:hover figure img{transform:scale(1.035);filter:saturate(1)}.work-card-meta{display:grid;grid-template-columns:auto 1fr 1fr;gap:1rem;padding-top:1rem;border-top:1px solid;margin-top:1rem;align-items:start}.work-card-meta h3{margin:0;font-size:clamp(2rem,4vw,4.6rem);font-weight:500;letter-spacing:-.06em}.work-card-meta p,.work-card-meta small{margin:0}.work-card-meta small{grid-column:2/-1;max-width:34rem;font-size:1rem}.capabilities{padding:clamp(6rem,10vw,10rem) var(--pad);background:#111;color:white}.capabilities-head{display:grid;grid-template-columns:.55fr 2fr;gap:2rem;margin-bottom:5rem}.capability-list article{display:grid;grid-template-columns:5rem 1fr 1fr;gap:2rem;padding:2rem 0;border-top:1px solid rgba(255,255,255,.3)}.capability-list h3{margin:0;font-size:clamp(2.8rem,6vw,6.5rem);font-weight:500;letter-spacing:-.06em}.capability-list p{max-width:30rem;margin:.5rem 0 0;line-height:1.3}.ticker{overflow:hidden;padding:1.5rem 0;background:var(--blue);color:white;white-space:nowrap}.ticker div{width:max-content;font-size:clamp(2rem,5vw,5rem);letter-spacing:-.04em;animation:ticker 28s linear infinite}@keyframes ticker{to{transform:translateX(-50%)}}.contact{padding:clamp(6rem,10vw,10rem) var(--pad);background:#cad2ff}.contact h2{margin:3rem 0 6rem;font-size:clamp(4rem,10vw,10rem);font-weight:500;letter-spacing:-.075em;line-height:.82}.contact-bottom{display:flex;justify-content:space-between;align-items:end;border-top:1px solid;padding-top:1.5rem}.contact-bottom a{font-size:clamp(1.5rem,4vw,4rem);letter-spacing:-.04em}.contact-bottom p{text-align:right}footer{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;padding:3rem var(--pad);background:#111;color:white}footer img{width:min(220px,45vw);filter:invert(1)}footer p{margin:0;text-align:center}footer div{display:flex;justify-content:flex-end;gap:2rem}.reveal{opacity:0;transform:translateY(40px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}.work-card.reveal{transition-delay:var(--reveal-delay)}.case-page{--case-color:#ddd}.case-back{justify-self:end;text-transform:uppercase}.case-page .topbar{grid-template-columns:1fr 1fr}.case-hero{display:grid;grid-template-columns:.6fr 2fr;gap:2rem;padding:clamp(7rem,12vw,13rem) var(--pad) 4rem;background:var(--case-color)}.case-hero>p:first-child{margin:0;text-transform:uppercase;font-size:.8rem}.case-hero h1{grid-column:2;margin:0;font-size:clamp(5rem,14vw,14rem);font-weight:500;letter-spacing:-.085em;line-height:.78}.case-statement{grid-column:2;max-width:21ch;margin:2rem 0;font-size:clamp(1.7rem,3vw,3.4rem);letter-spacing:-.04em}.case-meta{grid-column:2;display:flex;justify-content:space-between;padding-top:1rem;border-top:1px solid}.case-cover{margin:0}.case-cover img{height:min(80vw,980px);object-fit:cover}.case-intro{display:grid;grid-template-columns:.6fr 2fr;gap:2rem;padding:clamp(6rem,10vw,10rem) var(--pad)}.case-intro h2{margin:0;max-width:22ch;font-size:clamp(2.4rem,5vw,5.5rem);font-weight:500;letter-spacing:-.06em;line-height:.95}.case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:0 var(--pad) clamp(6rem,10vw,10rem)}.case-gallery figure{margin:0}.case-gallery-1{grid-column:1/-1}.case-gallery img{height:100%;max-height:950px;object-fit:cover}.next-case{display:grid;grid-template-columns:.6fr 2fr;gap:2rem;padding:clamp(5rem,9vw,9rem) var(--pad);background:var(--blue);color:white}.next-case span{text-transform:uppercase}.next-case strong{font-size:clamp(4rem,10vw,10rem);font-weight:500;letter-spacing:-.07em;line-height:.85}
@media(max-width:800px){.topbar{grid-template-columns:1fr auto;padding:14px var(--pad)}.header-note,.topbar nav{display:none}.menu-button{display:block}.brand{width:145px}.hero{padding-top:4rem}.hero h1{font-size:clamp(4rem,19vw,7rem)}.hero-feature div{grid-template-columns:1fr auto}.hero-feature strong{grid-row:2;grid-column:1/-1}.hero-feature span:last-child{display:none}.studio-intro,.section-head,.capabilities-head,.case-hero,.case-intro,.next-case{grid-template-columns:1fr}.portrait{width:55%;margin-left:auto}.section-head>span{display:none}.featured-work{display:block}.work-card{display:block}.work-card-meta{grid-template-columns:2rem 1fr}.work-card-meta p{grid-column:2}.work-card-meta small{grid-column:2}.capability-list article{grid-template-columns:2.5rem 1fr}.capability-list p{grid-column:2}.contact-bottom,footer{display:block}.contact-bottom p{text-align:left;margin-top:3rem}footer>*{margin-bottom:2rem}footer p{text-align:left}footer div{justify-content:flex-start}.case-hero h1,.case-statement,.case-meta{grid-column:1}.case-gallery{grid-template-columns:1fr}.case-gallery-1{grid-column:1}.next-case strong{font-size:clamp(4rem,17vw,7rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Quiet editorial motion for the project grid. */
.work-card figure{background:#e5e3dc}
.work-card figure::after{display:none}
.work-card figure img{transform:scale(1.018);filter:none;transition:transform 1.1s cubic-bezier(.22,.61,.36,1)}
.work-card.visible figure img{transform:scale(1)}
.work-card:hover figure img{transform:scale(1.015);filter:none}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .9s cubic-bezier(.22,.61,.36,1)}
.reveal.visible{opacity:1;transform:none}
.brand img{height:auto;object-fit:contain}
.case-cover img{height:auto;max-height:none;object-fit:contain}
.case-gallery{align-items:start}
.case-gallery figure{align-self:start;overflow:hidden;background:#e5e3dc}
.case-gallery img{height:auto;max-height:none;object-fit:contain}
footer img{filter:invert(1);height:auto;object-fit:contain}
.social-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px}.social-icon svg{width:100%;height:100%;fill:currentColor}.social-icon:hover{color:#cad2ff}
.work-card-meta{grid-template-columns:minmax(0,1fr) auto;align-items:start}
.work-card-meta h3{font-size:clamp(1.65rem,3vw,3.25rem)}
.work-card-meta p{justify-self:end;text-align:right;padding-top:.35rem}
.topbar nav a,.mobile-menu a{position:relative;transition:color .25s ease,background-color .25s ease,transform .25s ease}
.topbar nav a:not(.contact-pill)::after{content:"";position:absolute;left:0;right:0;bottom:-.4rem;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .32s cubic-bezier(.22,.61,.36,1)}
.topbar nav a:not(.contact-pill):hover::after,.topbar nav a:not(.contact-pill):focus-visible::after{transform:scaleX(1);transform-origin:left}
.contact-pill:hover,.contact-pill:focus-visible{background:var(--ink);color:var(--paper);transform:translateY(-2px)}
.cursor-ready,.cursor-ready a,.cursor-ready button{cursor:none}
.site-cursor{position:fixed;left:0;top:0;z-index:1000;width:22px;height:22px;border:2px solid var(--blue);border-radius:50%;pointer-events:none;opacity:0;transition:width .25s ease,height .25s ease,background-color .25s ease,opacity .2s ease;will-change:transform}
.site-cursor.is-visible{opacity:1}
.site-cursor.is-active{width:38px;height:38px;background:rgba(0,49,255,.14)}
.case-page .topbar{grid-template-columns:1fr 1fr 2fr}
@media(max-width:800px){.case-page .topbar{grid-template-columns:1fr auto}.work-card-meta{grid-template-columns:minmax(0,1fr) auto}.work-card-meta p{grid-column:auto}.site-cursor{display:none}}
.capability-list article{grid-template-columns:1fr 1fr}
@media(max-width:800px){.capability-list article{grid-template-columns:1fr}.capability-list p{grid-column:1}}
.case-gallery .case-gallery-item.is-landscape{grid-column:1/-1}
.case-gallery .case-gallery-item.is-portrait,.case-gallery .case-gallery-item.is-compact{grid-column:span 1;display:grid;place-items:center;height:100%;background:transparent}
.case-gallery .case-gallery-item.is-portrait img{width:100%;height:100%;aspect-ratio:4/5;object-fit:contain}
.case-gallery .case-gallery-item.is-compact img{width:100%;height:100%;aspect-ratio:4/3;object-fit:contain}
@media(max-width:800px){.case-gallery .case-gallery-item.is-landscape,.case-gallery .case-gallery-item.is-portrait,.case-gallery .case-gallery-item.is-compact{grid-column:1}.case-gallery .case-gallery-item.is-portrait img,.case-gallery .case-gallery-item.is-compact img{height:auto;aspect-ratio:auto}}
.case-page .case-hero h1{font-size:clamp(2.125rem,5.95vw,5.95rem)}
.case-page .case-statement{font-size:clamp(1rem,1.5vw,1.7rem)}
.case-page .case-intro h2{font-size:clamp(1.2rem,2.5vw,2.75rem)}
.case-opening-visual{margin:0;padding:0 var(--pad) var(--pad);background:var(--paper)}
.case-opening-visual img{width:100%;max-height:none;object-fit:contain}
.project-brief{display:grid;grid-template-columns:.6fr 2fr;gap:1.5rem 2rem;padding:0 var(--pad) clamp(2.5rem,5vw,5rem);border-bottom:1px solid var(--line)}
.project-brief-copy{grid-column:2;max-width:58rem}
.project-brief-copy p{margin:0;font-size:clamp(1rem,1.2825vw,1.2825rem);line-height:1.42}
.project-brief-copy p+p{margin-top:1rem}
.project-brief .case-meta{grid-column:2;margin-top:1rem}
@media(max-width:800px){.case-opening-visual{padding:0 0 var(--pad)}.project-brief{grid-template-columns:1fr;gap:1.25rem;padding:0 var(--pad) 2.5rem}.project-brief-copy,.project-brief .case-meta{grid-column:1}.project-brief-copy p{font-size:1rem}}
.case-page .next-case strong{font-size:clamp(2rem,5vw,5rem)}
@media(max-width:800px){.case-page .case-hero h1{font-size:clamp(2.125rem,7.225vw,2.975rem)}.case-page .next-case strong{font-size:clamp(2rem,8.5vw,3.5rem)}}
.case-page .case-hero{padding:clamp(2.5rem,5vw,5rem) var(--pad) clamp(1.5rem,3vw,3rem);background:var(--paper)}

/* Homepage content itself performs the entrance; there is no blocking intro screen. */
.home-page .topbar{opacity:0;transform:translateY(-12px);transition:opacity .7s ease,transform .8s cubic-bezier(.22,.61,.36,1)}
.home-page.page-ready .topbar{opacity:1;transform:none}
.landing-headline span,.landing-headline em{display:block}
.landing-reveal{opacity:0;transform:translateY(30px);transition:opacity .85s ease,transform 1s cubic-bezier(.22,.61,.36,1)}
.home-page.page-ready .landing-reveal{opacity:1;transform:none}
.home-page.page-ready .landing-step-1{transition-delay:.18s}
.home-page.page-ready .landing-step-2{transition-delay:.42s}
.home-page.page-ready .landing-step-3{transition-delay:.68s}
.home-page.page-ready .landing-step-4{transition-delay:.94s}
.home-page.page-ready .landing-step-5{transition-delay:1.22s}

.menu-button{width:44px;height:40px;padding:8px;border:0;background:transparent;color:var(--ink)}
.menu-button svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s cubic-bezier(.22,.61,.36,1)}
.menu-button[aria-expanded="true"] svg{transform:rotate(180deg)}

@media(max-width:800px){
  .mobile-menu{inset:69px 0 0;min-height:calc(100svh - 69px);padding:3rem var(--pad);border-bottom:0}
  .mobile-menu a{font-size:clamp(2rem,10vw,4rem);letter-spacing:-.05em}
}
@media(prefers-reduced-motion:reduce){.home-page .topbar,.landing-reveal{opacity:1;transform:none;transition:none}}
.topbar,.case-page .topbar{grid-template-columns:1fr auto}
.brand{width:clamp(145px,15vw,225px)}
footer img{width:min(250px,55vw)}
footer{padding:3.9rem var(--pad)}
footer p{font-size:.7rem;text-align:left}
.footer-arrow{display:inline-flex;align-items:center;justify-content:center;font-size:1.7rem;line-height:1;transition:transform .25s ease}
.footer-arrow:hover{transform:translateY(-4px)}
.contact-bottom a{font-size:clamp(.6rem,1.6vw,1.6rem)}
.case-gallery .case-gallery-item.is-food-photo{grid-column:span 1!important;place-items:center;align-self:stretch;padding:clamp(.5rem,1.5vw,1.5rem);background:transparent}
.case-gallery .case-gallery-item.is-food-photo img{width:100%;max-width:680px;height:100%;max-height:760px;object-fit:contain}
@media(max-width:800px){.case-gallery .case-gallery-item.is-food-photo{grid-column:1!important;padding:0}.case-gallery .case-gallery-item.is-food-photo img{height:auto;max-height:none}}
.case-story-heading{grid-column:1/-1;display:grid;grid-template-columns:.45fr 1fr 1.15fr;gap:2rem;align-items:start;margin:clamp(3rem,7vw,7rem) 0 1rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.case-story-heading:first-child{margin-top:0}
.case-story-heading span{font-size:.75rem}
.case-story-heading h2{margin:0;font-size:clamp(1.8rem,3.6vw,3.8rem);font-weight:500;letter-spacing:-.055em;line-height:.95}
.case-story-heading p{max-width:34rem;margin:0;font-size:1rem;line-height:1.45}
@media(max-width:800px){.case-story-heading{grid-template-columns:auto 1fr;gap:1rem}.case-story-heading h2{font-size:2rem}.case-story-heading p{grid-column:2}}
@media(max-width:800px){.brand{width:145px}}
