:root{--ink: #141414;--ink-soft: #3a3a3a;--ink-muted: #5e5e5e;--paper: #ffffff;--stone: #ebe8e2;--stone-2: #f6f5f1;--pink: #f9aee0;--pink-deep: #f08acb;--coral: #ee5a4f;--lilac: #d9c8ea;--line: rgba(20, 20, 20, .14);--font-display: "Jost", "Futura", "Century Gothic", system-ui, sans-serif;--font-body: "Jost", "Futura", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-hand: "Caveat", "Segoe Print", cursive;--font-hand-caps: "Amatic SC", "Caveat", cursive;--fs-h1: clamp(2.75rem, 1.6rem + 4.6vw, 5.5rem);--lh-h1: .98;--fw-h1: 700;--fs-h2: clamp(2.1rem, 1.4rem + 2.6vw, 3.6rem);--lh-h2: 1.02;--fw-h2: 700;--fs-project-title: clamp(2.25rem, 1.5rem + 3vw, 4.25rem);--lh-project-title: .98;--fw-project-title: 700;--fs-chapter: clamp(1.5rem, 1.2rem + 1vw, 2.125rem);--lh-chapter: 1.1;--fw-chapter: 700;--fs-card-featured: clamp(1.25rem, 1.1rem + .5vw, 1.5rem);--lh-card-featured: 1.2;--fw-card-featured: 600;--fs-card: 1.0625rem;--lh-card: 1.2;--fw-card: 600;--fs-ill-card: 1.125rem;--lh-ill-card: 1.25;--fw-ill-card: 600;--fs-ws-card: 1.1875rem;--lh-ws-card: 1.25;--fw-ws-card: 600;--fs-cta: clamp(1.25rem, 1rem + 1vw, 1.75rem);--lh-cta: 1.2;--fw-cta: 600;--fs-lead: clamp(1.075rem, 1rem + .3vw, 1.25rem);--lh-lead: 1.55;--fw-lead: 300;--fs-body: 1.0625rem;--lh-body: 1.6;--fw-body: 400;--fs-prose: 1.125rem;--lh-prose: 1.6;--fw-prose: 300;--fs-small: .9375rem;--lh-small: 1.6;--fw-small: 400;--fs-card-meta: .9375rem;--lh-card-meta: 1.45;--fw-card-meta: 400;--fs-ws-text: .9375rem;--lh-ws-text: 1.55;--fw-ws-text: 400;--fs-ws-formats: .875rem;--lh-ws-formats: 1.6;--fw-ws-formats: 400;--fs-tags: .875rem;--lh-tags: 1.6;--fw-tags: 400;--fs-eyebrow: .875rem;--lh-eyebrow: 1.6;--fw-eyebrow: 500;--fs-label: .75rem;--lh-label: 1.6;--fw-label: 400;--fs-label-sm: .6875rem;--lh-label-sm: 1.6;--fw-label-sm: 500;--fs-progress: .75rem;--lh-progress: 1.6;--fw-progress: 400;--fs-award: clamp(.625rem, .603rem + .094vw, .6875rem);--lh-award: 1.2;--fw-award: 600;--fs-brand: 1.0625rem;--lh-brand: 1.6;--fw-brand: 600;--fs-nav: .9375rem;--lh-nav: 1.6;--fw-nav: 400;--fs-nav-mobile: 2rem;--lh-nav-mobile: 1.6;--fw-nav-mobile: 600;--fs-lang: .75rem;--lh-lang: 1.6;--fw-lang: 400;--fs-footer-claim: clamp(1.75rem, 1.2rem + 2.2vw, 3rem);--lh-footer-claim: 1.08;--fw-footer-claim: 600;--fs-footer-mail: 1.125rem;--lh-footer-mail: 1.6;--fw-footer-mail: 500;--fs-footer-bottom: .875rem;--lh-footer-bottom: 1.6;--fw-footer-bottom: 400;--fs-btn: .9375rem;--lh-btn: 1.6;--fw-btn: 500;--fs-btn-sm: .875rem;--lh-btn-sm: 1.6;--fw-btn-sm: 500;--btn1-bg: var(--ink);--btn1-fg: #fff;--btn1-bd: var(--ink);--btn1-bg-h: var(--coral);--btn1-fg-h: #fff;--btn1-bd-h: var(--coral);--btn2-bg: transparent;--btn2-fg: var(--ink);--btn2-bd: var(--ink);--btn2-bg-h: var(--ink);--btn2-fg-h: #fff;--btn2-bd-h: var(--ink);--btn3-bg: #fff;--btn3-fg: var(--ink);--btn3-bd: #fff;--btn3-bg-h: var(--coral);--btn3-fg-h: #fff;--btn3-bd-h: var(--coral);--arrow-bg: rgba(255, 255, 255, .55);--arrow-fg: var(--ink);--arrow-bd: rgba(20, 20, 20, .14);--arrow-bg-h: var(--ink);--arrow-fg-h: #fff;--arrow-bd-h: var(--ink);--gutter: clamp(20px, 5vw, 64px);--container: 1280px;--section-y: clamp(80px, 9vw, 144px);--radius: 16px;--radius-lg: 24px;--header-h: 76px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--modal-inset: clamp(12px, 3.6vw, 48px)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:var(--header-h)}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);font-weight:var(--fw-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body.is-locked{overflow:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit}button{font:inherit;color:inherit}h1,h2,h3,h4,p,figure,dl,dd,ul{margin:0}ul{padding:0;list-style:none}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;left:16px;top:-60px;z-index:200;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;text-decoration:none;transition:top .2s}.skip-link:focus{top:16px}.container{width:100%;max-width:calc(var(--container) + var(--gutter) * 2);margin-inline:auto;padding-inline:var(--gutter)}.admin-bar .site-header{top:32px}@media (max-width: 782px){.admin-bar .site-header{top:46px}}.eyebrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--fs-eyebrow);line-height:var(--lh-eyebrow);font-weight:var(--fw-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}.eyebrow__index{color:var(--ink-muted)}.eyebrow__rule{width:32px;height:1px;background:currentColor;opacity:.5}.eyebrow__sep{opacity:.4}.display{font-family:var(--font-display);font-weight:700;line-height:.98;letter-spacing:-.025em}.h1{font-size:var(--fs-h1);line-height:var(--lh-h1);font-weight:var(--fw-h1)}.h2{font-size:var(--fs-h2);line-height:var(--lh-h2);font-weight:var(--fw-h2)}.lead{font-size:var(--fs-lead);font-weight:var(--fw-lead);line-height:var(--lh-lead);color:var(--ink-soft);max-width:62ch}.prose{display:grid;gap:20px}.prose p,.prose li{color:var(--ink-soft);font-weight:var(--fw-prose);font-size:var(--fs-prose);line-height:var(--lh-prose)}.prose a{text-decoration:underline;text-underline-offset:3px}.prose strong{font-weight:500;color:var(--ink)}.prose ul{list-style:disc;padding-left:1.2em}.btn{--btn-bg: var(--btn2-bg);--btn-fg: var(--btn2-fg);--btn-bd: var(--btn2-bd);display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;border:1px solid var(--btn-bd);border-radius:999px;background:var(--btn-bg);color:var(--btn-fg);font-family:var(--font-body);font-size:var(--fs-btn);line-height:var(--lh-btn);font-weight:var(--fw-btn);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background-color .3s var(--ease-out),color .3s var(--ease-out),border-color .3s,transform .3s var(--ease-out)}.btn:hover{--btn-bg: var(--btn2-bg-h);--btn-fg: var(--btn2-fg-h);--btn-bd: var(--btn2-bd-h)}.btn:active{transform:scale(.98)}.btn--solid{--btn-bg: var(--btn1-bg);--btn-fg: var(--btn1-fg);--btn-bd: var(--btn1-bd)}.btn--solid:hover{--btn-bg: var(--btn1-bg-h);--btn-fg: var(--btn1-fg-h);--btn-bd: var(--btn1-bd-h)}.btn--footer{--btn-bg: var(--btn3-bg);--btn-fg: var(--btn3-fg);--btn-bd: var(--btn3-bd)}.btn--footer:hover{--btn-bg: var(--btn3-bg-h);--btn-fg: var(--btn3-fg-h);--btn-bd: var(--btn3-bd-h)}.btn__icon{width:16px;height:16px;transition:transform .35s var(--ease-out)}.btn:hover .btn__icon{transform:translate(3px)}.btn:hover .btn__icon--down{transform:translateY(2px)}.actions{display:flex;flex-wrap:wrap;gap:12px}.actions--center{justify-content:center}.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:500;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease-out);padding-bottom:2px}.link-arrow:hover{background-size:100% 1px}.link-arrow svg{width:16px;height:16px;transition:transform .35s var(--ease-out)}.link-arrow:hover svg{transform:translate(4px)}.arrow{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid var(--arrow-bd);background:#ffffff8c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--arrow-bg);color:var(--arrow-fg);cursor:pointer;transition:background-color .3s var(--ease-out),color .3s,transform .3s var(--ease-out),opacity .3s,border-color .3s}.arrow svg{width:20px;height:20px;transition:transform .35s var(--ease-out)}.arrow:hover{background:var(--arrow-bg-h);color:var(--arrow-fg-h);border-color:var(--arrow-bd-h)}.arrow--prev:hover svg{transform:translate(-2px)}.arrow--next:hover svg{transform:translate(2px)}.arrow:active{transform:scale(.94)}.arrow[disabled]{opacity:.3;pointer-events:none}.progress{display:flex;align-items:center;gap:16px;font-family:var(--font-mono);font-size:var(--fs-progress);line-height:var(--lh-progress);font-weight:var(--fw-progress);letter-spacing:.1em;color:var(--ink)}.progress__bar{position:relative;width:120px;height:2px;background:#14141426;border-radius:2px;overflow:hidden}.progress__bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink);transform:scaleX(0);transform-origin:left}.is-ticking .progress__bar:after{animation:tick var(--autoplay, 8s) linear forwards}.is-paused .progress__bar:after{animation-play-state:paused}@keyframes tick{to{transform:scaleX(1)}}.site-header{position:sticky;top:0;z-index:50}.site-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;transition:background-color .35s,box-shadow .35s}.site-header.is-scrolled:before{background:#ffffffc7;-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 1px 0 var(--line)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:var(--header-h)}.brand{font-family:var(--font-display);font-weight:var(--fw-brand);font-size:var(--fs-brand);line-height:var(--lh-brand);letter-spacing:-.005em;text-decoration:none;white-space:nowrap}.nav,.nav__list{display:flex;align-items:center;gap:4px}.nav__link{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font-size:var(--fs-nav);line-height:var(--lh-nav);font-weight:var(--fw-nav);text-decoration:none}.nav__link:after{content:"";position:absolute;left:12px;right:12px;bottom:10px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}.nav__link:hover:after,.nav__link[aria-current]:after{transform:scaleX(1);transform-origin:left}.lang{display:flex;align-items:center;margin-left:12px;padding-left:16px;border-left:1px solid var(--line);font-family:var(--font-mono);font-size:var(--fs-lang);line-height:var(--lh-lang);letter-spacing:.08em}.lang a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;text-decoration:none;color:var(--ink-muted);font-weight:var(--fw-lang)}.lang a[aria-current=true]{color:var(--ink);font-weight:600}.nav-toggle{display:none;width:44px;height:44px;border:0;background:none;cursor:pointer;position:relative;border-radius:50%}.nav-toggle span{position:absolute;left:12px;right:12px;height:1.5px;background:var(--ink);transition:transform .4s var(--ease-out),opacity .2s}.nav-toggle span:nth-child(1){top:17px}.nav-toggle span:nth-child(2){top:26px}.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(4.5px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){transform:translateY(-4.5px) rotate(-45deg)}@media (max-width: 960px){.nav-toggle{display:inline-block;z-index:2}.nav{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;flex-direction:column;align-items:flex-start;justify-content:safe center;gap:24px;padding:96px var(--gutter) 48px;overflow-y:auto;overscroll-behavior:contain;background:var(--stone);opacity:0;visibility:hidden;transition:opacity .4s var(--ease-out),visibility .4s}.nav.is-open{opacity:1;visibility:visible}.nav__list{flex-direction:column;align-items:flex-start;gap:0}.nav__link{font-family:var(--font-display);font-weight:var(--fw-nav-mobile);font-size:var(--fs-nav-mobile);line-height:var(--lh-nav-mobile);padding:4px 0;letter-spacing:-.02em}.nav__link:after{left:0;right:0;bottom:6px}.lang{margin:0;padding:0;border:0}}.hero{position:relative;background:var(--stone);margin-top:calc(var(--header-h) * -1);padding:calc(var(--header-h) + clamp(48px,7vw,104px)) 0 clamp(56px,6vw,88px);overflow:hidden}.hero__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:clamp(32px,4vw,64px)}.hero__copy{display:grid;gap:28px}.hero__title{max-width:12ch}.hero__lead{max-width:52ch}@media (max-width: 860px){.hero__grid{grid-template-columns:1fr}.hero__bubbles{order:-1}}.bubbles{--mx: 0;--my: 0;position:relative;width:100%;max-width:520px;margin-inline:auto;aspect-ratio:520/340}.bubble{position:absolute;left:var(--x);top:var(--y);translate:-50% -50%;transform:translate(calc(var(--mx) * var(--depth, 10) * 1px),calc(var(--my) * var(--depth, 10) * 1px));transition:transform 1.2s var(--ease-out);font-size:clamp(14px,1.15vw + 8px,24px)}.bubble__float{display:block;animation:bubble-float var(--float-dur, 6s) ease-in-out var(--float-delay, 0s) infinite alternate}.bubble__body{--bg: #fff;--fg: var(--ink);position:relative;display:inline-flex;align-items:center;justify-content:center;padding:.45em 1.05em .5em;background:var(--bg);color:var(--fg);border-radius:999px;font-family:var(--font-hand);font-weight:700;font-size:1.7em;line-height:1;white-space:nowrap;cursor:default;-webkit-user-select:none;user-select:none;rotate:var(--r, 0deg);transform-origin:var(--tail-x, 30%) 110%;box-shadow:0 10px 24px -14px #14141459;animation:bubble-pop .8s var(--ease-spring) calc(.25s + var(--i, 0) * .14s) both}.bubble__body:after{content:"";position:absolute;bottom:-.42em;left:var(--tail-x, 30%);width:.7em;height:.55em;background:inherit;clip-path:polygon(0 0,100% 0,15% 100%)}.bubble--right .bubble__body:after{clip-path:polygon(0 0,100% 0,85% 100%)}.bubble--block .bubble__body{--bg: var(--coral);--fg: #fff;border-radius:.3em;padding:.2em .45em .1em;font-family:var(--font-hand-caps);font-size:2.3em;letter-spacing:.02em}.bubble--pink .bubble__body{--bg: var(--pink)}.bubble--image .bubble__body{padding:0;background:none;border-radius:0;box-shadow:none;filter:drop-shadow(0 10px 12px rgba(20,20,20,.16))}.bubble--image .bubble__body:after{content:none}.bubble--image .bubble__body img{display:block;width:auto;height:var(--bubble-h, 2.4em);max-width:6em;object-fit:contain;pointer-events:none}.bubble--s{--bubble-h: 1.8em}.bubble--l{--bubble-h: 3em}.bubble--ink .bubble__body{--bg: var(--ink);--fg: #fff;width:2.2em;height:2.2em;padding:0;border-radius:50%;font-family:var(--font-hand-caps);font-size:2.1em}.bubble--ink .bubble__body:after{bottom:-.22em;width:.5em;height:.45em}@media (prefers-reduced-motion: reduce){.bubble{transition:none}.bubble__float,.bubble__body{animation:none}}@keyframes bubble-pop{0%{opacity:0;transform:scale(.2) translateY(20px)}60%{opacity:1}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes bubble-float{0%{transform:translateY(calc(var(--amp, 6px) * -1)) rotate(-1.2deg)}to{transform:translateY(var(--amp, 6px)) rotate(1.2deg)}}.section{padding-block:var(--section-y)}.section--pink{background:var(--pink)}.section--stone{background:var(--stone-2)}.section__head{display:grid;gap:20px;margin-bottom:clamp(40px,5vw,72px)}.section__title{max-width:18ch}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tag{display:inline-flex;align-items:center;min-height:32px;padding:4px 14px;border:1px solid var(--line);border-radius:999px;font-size:var(--fs-tags);line-height:var(--lh-tags);font-weight:var(--fw-tags);color:var(--ink-soft);background:#fff6}.projects{display:grid;gap:clamp(16px,2vw,24px)}.projects--featured{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr))}.projects--grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));margin-top:clamp(40px,5vw,64px);row-gap:clamp(32px,3vw,40px)}.projects--featured+.projects--grid{margin-top:clamp(40px,5vw,64px)}.projects--grid:first-child{margin-top:0}@media (max-width: 640px){.projects--grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}}.card{position:relative;display:grid;gap:16px;align-content:start;text-decoration:none;color:inherit}.card[hidden]{display:none}.card__media{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--stone);aspect-ratio:4/3;isolation:isolate}.card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-out)}.projects--featured .card__media{aspect-ratio:16/11}.card:hover .card__media img{transform:scale(1.045)}.card__badge{position:absolute;top:16px;left:16px;z-index:1;padding:6px 12px;border-radius:999px;background:#ffffffe0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--font-mono);font-size:var(--fs-label-sm);line-height:var(--lh-label-sm);font-weight:var(--fw-label-sm);letter-spacing:.12em;text-transform:uppercase}.card__open{position:absolute;right:16px;bottom:16px;z-index:1;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px;border-radius:999px;background:var(--btn1-bg);color:var(--btn1-fg);font-size:var(--fs-btn-sm);line-height:var(--lh-btn-sm);font-weight:var(--fw-btn-sm);opacity:0;transform:translateY(10px);transition:opacity .4s var(--ease-out),transform .5s var(--ease-out)}.card__open svg{width:16px;height:16px}.card:hover .card__open,.card:focus-visible .card__open{opacity:1;transform:none}.projects--grid .card__open{height:38px;width:38px;padding:0;justify-content:center;right:12px;bottom:12px}.projects--grid .card__open span{display:none}.card__body{display:grid;gap:2px}.card__title{font-family:var(--font-display);font-size:var(--fs-card-featured);font-weight:var(--fw-card-featured);line-height:var(--lh-card-featured);letter-spacing:-.01em}.projects--grid .card__title{font-size:var(--fs-card);line-height:var(--lh-card);font-weight:var(--fw-card)}.card__meta{font-size:var(--fs-card-meta);font-weight:var(--fw-card-meta);color:var(--ink-muted);line-height:var(--lh-card-meta);margin-top:2px}@media (hover: none){.card__open{opacity:1;transform:none}}@media (max-width: 640px){.projects--grid .card__open{display:none}}.projects-more{display:flex;justify-content:center;margin-top:clamp(32px,4vw,48px)}.slider{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--stone)}.slider__viewport{overflow:hidden;touch-action:pan-y}.slider__track{display:flex;transition:transform .8s var(--ease-out);will-change:transform}.slider__slide{flex:0 0 100%;aspect-ratio:16/10;margin:0}.slider__slide img{width:100%;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.slider--contain .slider__slide img{object-fit:contain}.slider--tall .slider__slide{aspect-ratio:4/3}.slider__arrow{position:absolute;top:50%;translate:0 -50%;z-index:2;opacity:0}.slider__arrow--prev{left:16px}.slider__arrow--next{right:16px}.slider:hover .slider__arrow,.slider:focus-within .slider__arrow{opacity:1}@media (hover: none){.slider__arrow{opacity:1;width:44px;height:44px}}.slider__dots{position:absolute;left:50%;bottom:16px;translate:-50% 0;z-index:2;display:flex;gap:4px;padding:6px 10px;border-radius:999px;background:#fff9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.slider__dot{position:relative;width:24px;height:24px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}.slider__dot:before{content:"";width:8px;height:8px;border-radius:999px;background:#1414144d;transition:width .5s var(--ease-out),background-color .3s}.slider__dot:after{content:"";position:absolute;left:4px;top:50%;translate:0 -50%;width:28px;height:8px;border-radius:999px;background:var(--ink);transform:scaleX(0);transform-origin:left;opacity:0}.slider__dot[aria-current=true]{width:36px}.slider__dot[aria-current=true]:before{width:28px;background:#14141433}.slider__dot[aria-current=true]:after{opacity:1;transform:scaleX(1)}.slider.is-ticking .slider__dot[aria-current=true]:after{animation:tick-dot var(--autoplay, 7s) linear forwards}.slider.is-paused .slider__dot[aria-current=true]:after{animation-play-state:paused}.slider.is-single .slider__arrow,.slider.is-single .slider__dots{display:none}@keyframes tick-dot{0%{transform:scaleX(.29)}to{transform:scaleX(1)}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;visibility:hidden;transition:visibility 0s .7s}.modal.is-open{visibility:visible;transition:visibility 0s 0s}.modal.is-swapping .modal__content{opacity:0;transform:translateY(12px);transition-delay:0s;transition-duration:.25s}.modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#14141400;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);transition:background-color .5s var(--ease-out),backdrop-filter .6s var(--ease-out),-webkit-backdrop-filter .6s var(--ease-out);cursor:zoom-out}.modal.is-open .modal__backdrop{background:#14141447;-webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1)}.modal__panel{position:absolute;inset:var(--modal-inset);display:flex;flex-direction:column;background:var(--paper);border-radius:var(--radius-lg);box-shadow:0 40px 120px -30px #00000073;overflow:hidden;opacity:0;transform:translateY(32px) scale(.985);transition:opacity .45s var(--ease-out),transform .7s var(--ease-out)}.modal__panel:focus{outline:none}.modal.is-open .modal__panel{opacity:1;transform:none}.modal__bar{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 16px 16px clamp(20px,4vw,48px);pointer-events:none}.modal__bar>*{pointer-events:auto}.modal__crumb{font-family:var(--font-mono);font-size:var(--fs-label-sm);line-height:var(--lh-label-sm);font-weight:var(--fw-label-sm);letter-spacing:.14em;text-transform:uppercase;padding:8px 14px;border-radius:999px;background:#ffffffbf;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .3s}.modal.is-scrolled .modal__crumb{opacity:1}.modal__close{margin-left:auto}.modal__close svg{width:18px;height:18px}.modal__close:hover svg{transform:rotate(90deg)}.modal__scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal__content{opacity:0;transform:translateY(12px);transition:opacity .5s .15s var(--ease-out),transform .7s .15s var(--ease-out)}.modal.is-open .modal__content{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.modal__panel,.modal__content,.modal__backdrop{transition-duration:.01ms!important;transition-delay:0s!important}}.project{padding:clamp(72px,7vw,96px) clamp(20px,5vw,72px) clamp(48px,6vw,80px);max-width:1240px;margin-inline:auto}.project__head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:end;margin-bottom:clamp(32px,4vw,56px)}.project__title{font-size:var(--fs-project-title);line-height:var(--lh-project-title);font-weight:var(--fw-project-title);margin-top:16px}.project__subtitle{display:inline-block;margin-top:14px;font-size:var(--fs-lead);line-height:var(--lh-lead);font-weight:calc(var(--fw-lead) + 100);color:var(--ink-soft)}.project__lead{margin-top:24px}.project__lead p+p{margin-top:1em}.project__hero{margin-bottom:clamp(56px,7vw,112px)}.project__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;margin-top:clamp(40px,5vw,72px);padding-top:32px;border-top:1px solid var(--ink)}.project--compact .project__head{align-items:start}.project--compact .project__hero{margin-bottom:0}@media (max-width: 860px){.project__head{grid-template-columns:1fr}}.facts{display:grid;border-top:1px solid var(--ink)}.facts__row{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.facts dt{font-family:var(--font-mono);font-size:var(--fs-label);line-height:var(--lh-label);font-weight:var(--fw-label);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding-top:3px}.facts--values .facts__row{grid-template-columns:1fr}.facts dd{font-size:var(--fs-small);line-height:var(--lh-small);font-weight:var(--fw-small)}@media (max-width: 860px){.facts__row{grid-template-columns:110px 1fr}}.chapter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(24px,5vw,80px);align-items:center;padding-block:clamp(40px,5vw,72px);border-top:1px solid var(--line)}.chapter:nth-of-type(2n) .chapter__text{order:2}.chapter__text{display:grid;gap:16px;align-content:start}.chapter__text p{color:var(--ink-soft);max-width:52ch}.chapter__title{font-family:var(--font-display);font-size:var(--fs-chapter);font-weight:var(--fw-chapter);letter-spacing:-.02em;line-height:var(--lh-chapter)}.chapter--text-only{grid-template-columns:minmax(0,1fr)}@media (max-width: 860px){.chapter{grid-template-columns:1fr}.chapter:nth-of-type(2n) .chapter__text{order:0}}.next-project{display:grid;gap:6px;text-align:right;text-decoration:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:0}.next-project__label{font-family:var(--font-mono);font-size:var(--fs-label);line-height:var(--lh-label);font-weight:var(--fw-label);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.next-project__label svg{width:14px;height:14px;vertical-align:-2px}.next-project__title{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;font-family:var(--font-display);font-size:var(--fs-cta);line-height:var(--lh-cta);font-weight:var(--fw-cta);letter-spacing:-.015em}.next-project__title svg{width:20px;height:20px;transition:transform .35s var(--ease-out)}.next-project:hover .next-project__title svg{transform:translate(4px)}@media (max-width: 860px){.next-project{text-align:left;margin-left:0}.next-project__title{justify-content:flex-start}}.project-page{background:var(--stone-2);padding-block:clamp(24px,4vw,48px) var(--section-y)}.project-page .project{background:var(--paper);border-radius:var(--radius-lg)}.project-page__back{margin-bottom:20px}.coverflow{--stage: min(100vw, 1600px);--side-scale: .52;--gap: clamp(16px, 1.6vw, 24px);--card-w: clamp(300px, (var(--stage) - 4 * var(--gap)) / (1 + 3 * var(--side-scale)), 620px);--fade: calc(var(--card-w) * var(--side-scale) * .15);--first: calc(var(--card-w) * (1 + var(--side-scale)) / 2 + var(--gap));--side-step: calc(var(--card-w) * var(--side-scale) + var(--gap));position:relative;height:clamp(600px,50vw,760px);margin-top:clamp(-40px,-2vw,0px);overflow:hidden;overflow:clip visible;touch-action:pan-y}.coverflow__track{position:absolute;top:-80px;right:0;bottom:-80px;left:0;list-style:none;margin:0;padding:0;-webkit-mask-image:linear-gradient(to right,transparent calc(50% - var(--stage) / 2),#000 calc(calc(50% - var(--stage) / 2) + var(--fade)),#000 calc(100% - calc(50% - var(--stage) / 2) - var(--fade)),transparent calc(100% - calc(50% - var(--stage) / 2)));mask-image:linear-gradient(to right,transparent calc(50% - var(--stage) / 2),#000 calc(calc(50% - var(--stage) / 2) + var(--fade)),#000 calc(100% - calc(50% - var(--stage) / 2) - var(--fade)),transparent calc(100% - calc(50% - var(--stage) / 2)))}.coverflow__item{--d: 0;--ad: 0;--dir: 0;position:absolute;left:50%;top:50%;width:var(--card-w);transform:translate(-50%,-50%) translate(calc(var(--dir) * (var(--first) + (var(--ad) - 1) * var(--side-step)))) scale(calc(1 - min(var(--ad),1) * (1 - var(--side-scale))));z-index:calc(10 - var(--ad));transition:transform .9s var(--ease-out),opacity .6s var(--ease-out)}.coverflow__item.is-far{opacity:0;pointer-events:none}.coverflow__controls{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--gutter)}.coverflow__controls .arrow{pointer-events:auto}@media (max-width: 640px){.coverflow{--card-w: 74vw;--side-scale: .8;--gap: 12px;height:640px}.coverflow__track{-webkit-mask-image:none;mask-image:none}.coverflow__controls{align-items:flex-end;padding-bottom:8px}}.ill-card{position:relative;display:block;width:100%;padding:0;border:0;text-align:center;text-decoration:none;background:#fff;border-radius:var(--radius-lg);cursor:pointer;color:inherit;box-shadow:0 30px 60px -36px #500a3c73;transition:box-shadow .6s var(--ease-out)}.ill-card__media{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--stone)}.ill-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-out)}.ill-card__media--empty{display:grid;place-items:center;background:#e9e3da;font-family:var(--font-mono);font-size:var(--fs-label);line-height:var(--lh-label);font-weight:var(--fw-label);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}.ill-card__body{display:grid;gap:4px;padding:20px 24px 24px}.ill-card__title{font-family:var(--font-display);font-weight:var(--fw-ill-card);font-size:var(--fs-ill-card);line-height:var(--lh-ill-card);letter-spacing:-.01em}.ill-card__meta{font-size:var(--fs-card-meta);font-weight:var(--fw-card-meta);color:var(--ink-muted);line-height:var(--lh-card-meta)}.ill-card__details{display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease-out)}.ill-card__details>div{overflow:hidden}.ill-card__details .facts{margin-top:16px;text-align:left}.ill-card__details .facts__row{grid-template-columns:96px 1fr;padding:8px 0}.ill-card__details .facts--values .facts__row{grid-template-columns:1fr}.coverflow__item.is-active .ill-card__details{grid-template-rows:1fr}.coverflow__item.is-active .ill-card{cursor:zoom-in;box-shadow:0 50px 90px -36px #500a3cb3}.coverflow__item.is-active .ill-card:hover .ill-card__media img{transform:scale(1.04)}.coverflow__item:not(.is-active) .ill-card__title,.coverflow__item:not(.is-active) .ill-card__meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.award{position:absolute;top:-28px;right:-24px;z-index:3;display:grid;place-items:center;text-align:center;width:128px;height:128px;padding:18px;border-radius:50%;background:var(--coral);color:#fff;font-family:var(--font-display);font-weight:var(--fw-award);font-size:var(--fs-award);line-height:var(--lh-award);rotate:12deg;scale:0;box-shadow:0 12px 24px -10px #78141480;transition:scale .6s var(--ease-spring) .25s}.coverflow__item.is-active .award{scale:1}@media (max-width: 640px){.award{width:88px;height:88px;right:-8px;top:-20px}}.carousel--no-foot .coverflow,.carousel.is-static:not(:has(.carousel-foot .btn)) .coverflow{margin-bottom:calc(-1 * var(--cf-spare, 0px))}@media (max-width: 640px){.carousel--no-foot .coverflow,.carousel.is-static:not(:has(.carousel-foot .btn)) .coverflow{margin-bottom:0}}.carousel-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;margin-top:clamp(24px,3vw,40px)}.carousel-foot>.btn,.carousel-foot>.actions{margin-left:auto}.rail{position:relative}.rail__track{--per-view: 3;--rail-gap: clamp(16px, 2vw, 24px);display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--per-view) - 1) * var(--rail-gap)) / var(--per-view));gap:var(--rail-gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:4px}.rail__track::-webkit-scrollbar{display:none}@media (max-width: 1024px){.rail__track{--per-view: 2}}@media (max-width: 640px){.rail__track{--per-view: 1.12}}.rail__item{scroll-snap-align:start}.rail__controls{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;align-items:center;justify-content:space-between}.rail__controls .arrow{pointer-events:auto}.rail__controls .arrow--prev{translate:-50% -40px}.rail__controls .arrow--next{translate:50% -40px}@media (max-width: 1400px){.rail__controls .arrow--prev{translate:12px -40px}.rail__controls .arrow--next{translate:-12px -40px}}.rail.is-static .rail__controls,.carousel.is-static .coverflow__controls,.carousel.is-static .progress{display:none}.carousel.is-static .carousel-foot:not(:has(.btn)){display:none}.ws-card{display:flex;flex-direction:column;height:100%;border-radius:var(--radius-lg);overflow:hidden;background:var(--card-bg, var(--lilac));color:var(--card-fg, var(--ink))}.ws-card__media{aspect-ratio:5/4;overflow:hidden}.ws-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-out)}.ws-card:hover .ws-card__media img{transform:scale(1.04)}.ws-card__body{display:grid;gap:12px;align-content:start;padding:24px 24px 28px;flex:1}.ws-card__title{font-family:var(--font-display);font-weight:var(--fw-ws-card);font-size:var(--fs-ws-card);letter-spacing:-.01em;line-height:var(--lh-ws-card)}.ws-card__text{font-size:var(--fs-ws-text);font-weight:var(--fw-ws-text);color:var(--card-fg-soft, var(--ink-soft));line-height:var(--lh-ws-text)}.ws-card__formats{font-size:var(--fs-ws-formats);line-height:var(--lh-ws-formats);font-weight:var(--fw-ws-formats);padding-top:12px;border-top:1px solid color-mix(in srgb,currentColor 18%,transparent)}.ws-card__formats strong{display:block;font-family:var(--font-mono);font-size:var(--fs-label-sm);line-height:var(--lh-label-sm);font-weight:var(--fw-label-sm);letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}.about{display:grid;grid-template-columns:minmax(200px,300px) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}.about__aside{display:grid;gap:24px;justify-items:center}.about__photo{width:100%;max-width:260px;aspect-ratio:1;border-radius:50%;object-fit:cover}.about__body{display:grid;gap:20px;max-width:64ch}.about__clients{padding-top:20px;border-top:1px solid var(--line);font-size:var(--fs-small);line-height:var(--lh-small);font-weight:var(--fw-small);color:var(--ink-soft)}.about__clients strong{font-weight:500;color:var(--ink)}@media (max-width: 760px){.about{grid-template-columns:1fr}.about__aside{justify-items:start}.about__photo{max-width:180px}}.site-footer{background:var(--ink);color:#fff;padding:clamp(56px,7vw,96px) 0 32px}.site-footer__top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px}.site-footer__claim{font-family:var(--font-display);font-weight:var(--fw-footer-claim);font-size:var(--fs-footer-claim);letter-spacing:-.02em;line-height:var(--lh-footer-claim);max-width:20ch}.site-footer__button{margin-top:28px}.site-footer__mail{display:inline-block;margin-top:20px;font-size:var(--fs-footer-mail);line-height:var(--lh-footer-mail);font-weight:var(--fw-footer-mail);color:#fff}.site-footer__bottom{margin-top:clamp(48px,6vw,80px);padding-top:24px;border-top:1px solid rgba(255,255,255,.16);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:var(--fs-footer-bottom);line-height:var(--lh-footer-bottom);font-weight:var(--fw-footer-bottom);color:#ffffffa6}.social{display:flex;gap:10px}.social a{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#ffffff1a;color:#fff;transition:background-color .3s,color .3s,transform .3s var(--ease-out)}.social a:hover{background:#fff;color:var(--ink);transform:translateY(-2px)}.social svg{width:22px;height:22px}.basic-page{padding-block:clamp(48px,6vw,96px) var(--section-y)}.basic-page__head{display:grid;gap:20px;margin-bottom:clamp(32px,4vw,56px)}.basic-page__body{max-width:72ch}.basic-page .actions{margin-top:32px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease-out),transform 1s var(--ease-out);transition-delay:var(--reveal-delay, 0s)}.reveal.is-visible,.no-js .reveal{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}}
