:root{--bg: #f3f1ec;--bg-2: #ebe8e1;--ink: #0b0b0b;--ink-2: #1a1a1a;--muted: #6b6862;--line: #d9d5cc;--accent: #2e5bff;--accent-ink: #ffffff;--font-display: "Space Grotesk", "Inter", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-hero: clamp(2.4rem, 7vw, 7.75rem);--fs-h1: clamp(2.25rem, 6vw, 6rem);--fs-h2: clamp(1.75rem, 4vw, 3.5rem);--fs-h3: clamp(1.25rem, 2vw, 1.75rem);--fs-lead: clamp(1.25rem, 2.2vw, 2.25rem);--fs-body: clamp(1rem, 1.05vw, 1.125rem);--fs-small: .8125rem;--maxw: 1600px;--gutter: clamp(1.25rem, 4vw, 4.5rem);--section-y: clamp(5rem, 12vw, 12rem);--radius: 14px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-inout: cubic-bezier(.65, 0, .35, 1);--dur: .8s;--z-canvas: 1;--z-content: 2;--z-nav: 50;--z-cursor: 9998;--z-preloader: 9999}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:auto}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:clip}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:.98;letter-spacing:-.02em;margin:0;text-wrap:balance}p{margin:0}a{color:inherit;text-decoration:none}img,canvas{display:block;max-width:100%}ul{margin:0;padding:0;list-style:none}button{font:inherit;color:inherit;border:none;background:none;cursor:pointer}::selection{background:var(--accent);color:var(--accent-ink)}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.eyebrow{font-family:var(--font-display);font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.18em;color:var(--muted);font-weight:500}.section{position:relative;padding-block:var(--section-y);z-index:var(--z-content)}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;z-index:9994;pointer-events:none}.page-curtain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9995;background:var(--ink);transform:scaleY(0);pointer-events:none;will-change:transform}.grain{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:9990;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.grain{display:none}}.preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-preloader);background:var(--ink);color:var(--bg);display:grid;place-items:center;overflow:hidden}.preloader__count{font-family:var(--font-display);font-size:clamp(4rem,18vw,16rem);font-weight:600;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.preloader__brand{display:flex;flex-direction:column;align-items:center;gap:clamp(1rem,2.5vw,1.75rem);color:var(--bg)}.preloader__mark{width:clamp(64px,12vw,132px);height:clamp(64px,12vw,132px);display:inline-flex}.preloader__mark svg{width:100%;height:100%}.preloader__mark .mark__orbit{transform-box:view-box;transform-origin:20px 20px;animation:orbit 6s linear infinite}.preloader__name{font-family:var(--font-display);font-weight:600;font-size:clamp(1.75rem,5vw,3.25rem);letter-spacing:-.02em;overflow:hidden}.preloader__word{position:absolute;bottom:clamp(1.5rem,4vw,3rem);left:var(--gutter);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.16em;font-size:var(--fs-small);opacity:.6}.cursor{position:fixed;top:0;left:0;width:10px;height:10px;border-radius:50%;background:var(--accent);border:1px solid transparent;pointer-events:none;z-index:var(--z-cursor);transform:translate(-50%,-50%);display:grid;place-items:center;transition:background .3s var(--ease),border-color .3s var(--ease)}.cursor--hover,.cursor--stick{background:#2e5bff1a;border-color:var(--accent)}.cursor__label{font-family:var(--font-display);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);opacity:0;transition:opacity .2s var(--ease);white-space:nowrap}.cursor--hover .cursor__label,.cursor--stick .cursor__label{opacity:1}@media (hover: none),(pointer: coarse){.cursor{display:none}}.nav{position:fixed;top:0;left:0;width:100%;z-index:var(--z-nav);display:flex;align-items:center;justify-content:space-between;padding:clamp(1rem,2vw,1.75rem) var(--gutter);mix-blend-mode:difference;color:#fff}.nav__brand{font-family:var(--font-display);font-weight:600;font-size:1.05rem;letter-spacing:-.02em;display:flex;align-items:center;gap:.55rem}.nav__brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);display:inline-block}.nav__mark{width:22px;height:22px;display:inline-flex}.nav__mark svg{width:100%;height:100%}.nav__mark .mark__orbit{transform-box:view-box;transform-origin:20px 20px;animation:orbit 8s linear infinite}@keyframes orbit{to{transform:rotate(360deg)}}.nav__links{display:flex;gap:clamp(1.25rem,2.5vw,2.5rem);align-items:center}.nav__links a{font-family:var(--font-display);font-size:.9rem;letter-spacing:.01em;position:relative;padding-block:2px}.nav__links a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}.nav__links a:hover:after{transform:scaleX(1);transform-origin:left}.nav__toggle{display:none}@media (max-width: 820px){.nav__links{display:none}.nav__toggle{display:block;font-family:var(--font-display);font-size:.85rem;text-transform:uppercase;letter-spacing:.12em}}.menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--ink);color:var(--bg);padding:clamp(1.5rem,5vw,3rem) var(--gutter);display:flex;flex-direction:column;justify-content:center;clip-path:inset(0 0 100% 0);pointer-events:none;transition:clip-path .7s var(--ease)}.menu-overlay.is-open{clip-path:inset(0 0 0 0);pointer-events:auto}.menu-overlay__close{position:absolute;top:clamp(1rem,2vw,1.75rem);right:var(--gutter);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;font-size:.85rem;color:var(--bg)}.menu-overlay__links{display:grid;gap:.4rem}.menu-overlay__links a{font-family:var(--font-display);font-size:clamp(2.5rem,12vw,4.5rem);font-weight:600;letter-spacing:-.02em;line-height:1.05;display:inline-block}.menu-overlay__links a:hover{color:var(--accent)}.menu-overlay__foot{position:absolute;bottom:clamp(1.5rem,4vw,3rem);left:var(--gutter);display:flex;flex-direction:column;gap:.4rem;color:#fff9;font-size:var(--fs-small)}.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding-bottom:clamp(2.5rem,6vw,6rem);overflow:hidden}.hero__canvas{position:absolute;width:min(64vh,50vw);height:min(64vh,50vw);opacity:0}@media (max-width: 820px){.hero__canvas{width:min(70vw,70vw);height:min(70vw,70vw)}}.hero__inner{position:relative;z-index:var(--z-content);width:100%}.hero__title{font-size:var(--fs-hero);max-width:20ch}.hero__title .line{display:block;overflow:hidden}.hero__title .line>span{display:block}.hero__meta{display:flex;flex-wrap:wrap;gap:1.5rem 3rem;justify-content:space-between;align-items:flex-end;margin-top:clamp(2rem,5vw,4rem);border-top:1px solid var(--line);padding-top:1.5rem}.hero__lead{max-width:44ch;font-size:var(--fs-h3);line-height:1.25;letter-spacing:-.01em}.hero__scroll{font-family:var(--font-display);font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);display:flex;align-items:center;gap:.6rem}.hero__scroll .arrow{display:inline-block;animation:bob 1.8s var(--ease-inout) infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.statement{font-family:var(--font-display);font-weight:500;font-size:var(--fs-h2);line-height:1.12;letter-spacing:-.02em;max-width:24ch}.statement .word{display:inline-block}.statement .accent{color:var(--accent)}.statement em{font-style:normal}[data-fill] .word{transition:none}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(2.5rem,6vw,5rem)}.section-head h2{font-size:var(--fs-h2)}.services__list{border-top:1px solid var(--line)}.service{display:grid;grid-template-columns:4rem 1fr auto;gap:1.5rem;align-items:center;padding:clamp(1.5rem,3vw,2.5rem) 0;border-bottom:1px solid var(--line);position:relative}.service__num{font-family:var(--font-display);color:var(--muted);font-size:var(--fs-small)}.service__name{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:500;letter-spacing:-.01em;transition:transform .5s var(--ease)}.service__desc{color:var(--muted);max-width:40ch;font-size:var(--fs-body)}.service:hover .service__name{transform:translate(1.25rem);color:var(--accent)}@media (max-width: 720px){.service{grid-template-columns:2.5rem 1fr}.service__desc{grid-column:2}}.work__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.5rem,4vw,4rem) clamp(1.5rem,3vw,3rem)}.work-card{position:relative}.work-card:nth-child(2n){margin-top:clamp(0rem,8vw,7rem)}.work-card__media{position:relative;aspect-ratio:4 / 3;overflow:hidden;border-radius:var(--radius);background:var(--bg-2)}.work-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .9s var(--ease);filter:saturate(.9)}.work-card:hover .work-card__media img{transform:scale(1.06);filter:saturate(1.05)}.work-card__meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:1.1rem;gap:1rem}.work-card__title{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:500;letter-spacing:-.01em}.work-card__tag{font-size:var(--fs-small);color:var(--muted);text-transform:uppercase;letter-spacing:.1em}@media (max-width: 720px){.work__grid{grid-template-columns:1fr}.work-card:nth-child(2n){margin-top:0}}.caps{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}.caps__stage{position:sticky;top:14vh;aspect-ratio:4 / 3;border-radius:var(--radius);background:radial-gradient(120% 120% at 30% 20%,#faf8f3,#ece9e2 85%);overflow:hidden;box-shadow:0 30px 70px -45px #0b0b0b59}.caps__stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(11,11,11,.08);border-radius:var(--radius);pointer-events:none}.caps__stage canvas{width:100%;height:100%;display:block}.caps__panel{display:flex;flex-direction:column}.caps__list{display:grid}.caps__readout{margin-top:clamp(1.25rem,3vw,2rem);min-height:4.75rem;max-width:48ch;color:var(--muted);font-size:var(--fs-body);transition:opacity .25s var(--ease)}.cap{border-top:1px solid var(--line);padding:clamp(.9rem,2vw,1.4rem) 0}.cap:last-child{border-bottom:1px solid var(--line)}.cap__btn{display:flex;align-items:baseline;gap:1.2rem;width:100%;text-align:left}.cap__num{font-family:var(--font-display);font-size:var(--fs-small);color:var(--muted)}.cap__name{font-family:var(--font-display);font-size:clamp(1.4rem,3vw,2.4rem);font-weight:500;letter-spacing:-.01em;line-height:1.05;color:var(--muted);transition:color .4s var(--ease),transform .5s var(--ease)}.cap.is-active .cap__name{color:var(--ink);transform:translate(.5rem)}.cap.is-active .cap__num{color:var(--accent)}.caps__also{margin-top:clamp(2rem,4vw,3rem);color:var(--muted);font-size:var(--fs-small);letter-spacing:.02em}@media (max-width: 900px){.caps{grid-template-columns:1fr}.caps__stage{position:relative;top:0;order:-1}}.work-h{position:relative;padding-block:var(--section-y);overflow:hidden}.work-h__head{display:flex;justify-content:space-between;align-items:baseline;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(2rem,5vw,4rem)}.work-h__head h2{font-size:var(--fs-h2)}.work-h__viewport{width:100%;overflow:hidden}.work-h__viewport.is-swipe{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.work-h__track{display:flex;gap:clamp(1.5rem,3vw,3rem);padding-inline:var(--gutter);width:max-content;will-change:transform}.work-panel{flex:0 0 auto;width:min(68vw,640px);position:relative;scroll-snap-align:center}.work-panel__index{font-family:var(--font-display);font-size:var(--fs-small);color:var(--muted);letter-spacing:.1em}.work-panel__media{position:relative;aspect-ratio:5 / 4;overflow:hidden;border-radius:var(--radius);background:var(--bg-2);margin-top:.8rem}.work-panel__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter 1s var(--ease);filter:saturate(.92)}.work-panel:hover .work-panel__media img{transform:scale(1.05);filter:saturate(1.08)}.work-panel__meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:1.1rem;gap:1rem}.work-panel__title{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:500;letter-spacing:-.01em}.work-panel__tag{font-size:var(--fs-small);color:var(--muted);text-transform:uppercase;letter-spacing:.1em}@media (max-width: 720px){.work-panel{width:82vw}}.marquee{overflow:hidden;border-block:1px solid var(--line);padding-block:clamp(1.25rem,2.5vw,2rem);white-space:nowrap}.marquee__track{display:inline-flex;gap:3.5rem;align-items:center;will-change:transform}.marquee__item{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,3rem);font-weight:500;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:3.5rem;color:var(--ink)}.marquee__item .star{color:var(--accent)}.cta{text-align:center;display:grid;place-items:center;gap:2rem}.cta__title{font-size:var(--fs-h1)}.cta__title em{font-style:italic;color:var(--accent)}.btn{--pad: 1.1rem 2.4rem;display:inline-flex;align-items:center;gap:.7rem;padding:var(--pad);border-radius:999px;background:var(--ink);color:var(--bg);font-family:var(--font-display);font-size:1rem;letter-spacing:.01em;position:relative;overflow:hidden;isolation:isolate;will-change:transform}.btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1}.btn:hover:before{transform:translateY(0)}.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}.btn--ghost:hover{color:var(--bg)}.footer{background:var(--ink);color:var(--bg);padding-block:clamp(4rem,9vw,8rem) 2.5rem;position:relative;z-index:var(--z-content)}.footer a{color:var(--bg)}.footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:3rem;padding-bottom:clamp(3rem,7vw,6rem);border-bottom:1px solid rgba(255,255,255,.14)}.footer__big{font-family:var(--font-display);font-size:var(--fs-h2);letter-spacing:-.02em;max-width:14ch}.footer__col h4{font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.14em;color:#ffffff80;margin-bottom:1.25rem;font-weight:500}.footer__col ul{display:grid;gap:.7rem}.footer__col a:hover{color:var(--accent)}.footer__bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding-top:2rem;font-size:var(--fs-small);color:#ffffff80}@media (max-width: 720px){.footer__top{grid-template-columns:1fr;gap:2.5rem}}.footer__mega{display:flex;align-items:center;gap:clamp(.75rem,2vw,2rem);padding:clamp(2rem,5vw,4rem) var(--gutter) clamp(1.5rem,3vw,2.5rem);overflow:hidden}.footer__mark{width:clamp(40px,7vw,96px);height:clamp(40px,7vw,96px);flex:0 0 auto;display:inline-flex;color:var(--bg)}.footer__mark svg{width:100%;height:100%}.footer__mark .mark__orbit{transform-box:view-box;transform-origin:20px 20px;animation:orbit 9s linear infinite}.footer__mega-text{font-family:var(--font-display);font-weight:600;letter-spacing:-.03em;font-size:clamp(2.25rem,11.5vw,11.5rem);line-height:1.05;white-space:nowrap;color:var(--bg)}.footer__mega-text .line{overflow:hidden;display:block;padding:.12em 0}.footer__mega-text .line>span{display:block}[data-reveal]{opacity:0}.line-mask{overflow:hidden;display:block}
