@property --tone-bg{syntax:"<color>";inherits:true;initial-value:#fff}@property --tone-fg{syntax:"<color>";inherits:true;initial-value:#0a0a0a}@property --tone-muted{syntax:"<color>";inherits:true;initial-value:#6a6a6a}@property --tone-pending{syntax:"<color>";inherits:true;initial-value:#bdbdbd}@property --tone-line{syntax:"<color>";inherits:true;initial-value:#e2e2e0}@property --tone-raised{syntax:"<color>";inherits:true;initial-value:#efefed}:root{--color-primary:#0a0a0a;--color-secondary:#6a6a6a;--color-neutral:#fff;--color-surface:#fff;--color-on-surface:#0a0a0a;--color-on-surface-variant:#6a6a6a;--color-surface-muted:#efefed;--color-surface-inverse:#6a6a6a;--color-on-surface-inverse:#fff;--color-on-surface-inverse-variant:#ebebeb;--color-surface-inverse-raised:#7a7a7a;--color-outline:#e2e2e0;--color-outline-inverse:#8a8a8a;--color-text-reveal-pending:#bdbdbd;--color-text-reveal-pending-inverse:#828282;--color-scrim:#00000059;--font-family:"Inter Tight", "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;--fs-display-hero:clamp(64px, 11vw, 144px);--fs-display-cta:clamp(56px, 8.6vw, 112px);--fs-headline-statement:clamp(30px, 3.7vw, 48px);--fs-headline-list:clamp(28px, 3.1vw, 40px);--fs-headline-stat:clamp(44px, 5vw, 64px);--fs-headline-card:clamp(24px, 2.2vw, 28px);--fs-title-project:18px;--fs-body-lg:17px;--fs-body-md:15px;--fs-body-sm:13px;--fs-label-md:12px;--fs-label-sm:11px;--rounded-none:0px;--rounded-xs:2px;--rounded-sm:4px;--space-xxs:4px;--space-xs:8px;--space-sm:16px;--space-md:24px;--space-lg:40px;--space-xl:80px;--space-xxl:160px;--space-section:clamp(96px, 14vw, 200px);--gutter:24px;--margin:40px;--container-max:1440px;--statement-max:960px;--nav-height:72px;--ease:cubic-bezier(.16, 1, .3, 1);--dur-slow:.9s;--dur-hover:.25s}@media (width<=767px){:root{--gutter:16px;--margin:16px;--nav-height:60px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-surface);color:var(--color-on-surface);font-family:var(--font-family);font-size:var(--fs-body-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.5}img,svg{max-width:100%;display:block}[hidden]{display:none!important}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0;padding:0}ul,ol{list-style:none}h1,h2,h3{font-weight:inherit;text-wrap:balance}:focus-visible{outline-offset:4px;outline:1px solid}.skip-link{left:var(--margin);z-index:100;background:var(--color-surface);color:var(--color-on-surface);padding:var(--space-xs) var(--space-sm);position:absolute;top:-100px}.skip-link:focus{top:var(--space-xs)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.tone-root{--tone-bg:var(--color-surface);--tone-fg:var(--color-on-surface);--tone-muted:var(--color-on-surface-variant);--tone-pending:var(--color-text-reveal-pending);--tone-line:var(--color-outline);--tone-raised:var(--color-surface-muted);background:var(--tone-bg);color:var(--tone-fg);transition:--tone-bg var(--dur-slow) var(--ease), --tone-fg var(--dur-slow) var(--ease), --tone-muted var(--dur-slow) var(--ease), --tone-pending var(--dur-slow) var(--ease), --tone-line var(--dur-slow) var(--ease), --tone-raised var(--dur-slow) var(--ease)}.tone-root[data-tone=dark]{--tone-bg:var(--color-surface-inverse);--tone-fg:var(--color-on-surface-inverse);--tone-muted:var(--color-on-surface-inverse-variant);--tone-pending:var(--color-text-reveal-pending-inverse);--tone-line:var(--color-outline-inverse);--tone-raised:var(--color-surface-inverse-raised)}.container{width:100%;max-width:var(--container-max);padding-inline:var(--margin);margin-inline:auto}.section{padding-block:var(--space-section)}.split{column-gap:var(--gutter);row-gap:var(--space-md);grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;display:grid}.split__label{grid-column:1/span 3}.split__body{grid-column:5/-1}@media (width<=1279px){.split{grid-template-columns:repeat(8,minmax(0,1fr))}.split__label{grid-column:1/span 2}.split__body{grid-column:3/-1}}@media (width<=767px){.split{grid-template-columns:repeat(4,minmax(0,1fr))}.split__label,.split__body{grid-column:1/-1}}.label{font-size:var(--fs-label-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--tone-muted,var(--color-on-surface-variant));font-weight:500;line-height:1.2}.label--md{font-size:var(--fs-label-md);letter-spacing:.06em}.numeric{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.statement{font-size:var(--fs-headline-statement);letter-spacing:-.025em;max-width:var(--statement-max);text-wrap:pretty;font-weight:400;line-height:1.1}.body-lg{font-size:var(--fs-body-lg);max-width:60ch;line-height:1.5}.body-sm{font-size:var(--fs-body-sm);line-height:1.45}.muted{color:var(--tone-muted)}.link-arrow{font-size:var(--fs-body-md);padding-block:var(--space-xxs);transition:color var(--dur-hover) var(--ease), background-size .5s var(--ease);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;align-items:center;gap:.6em;line-height:1.2;display:inline-flex}.link-arrow__icon{transition:transform var(--dur-hover) var(--ease);display:inline-block}.link-arrow:hover{color:var(--tone-muted,var(--color-on-surface-variant));background-size:100% 1px}.link-arrow:hover .link-arrow__icon{transform:translate(4px)}@keyframes bot-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes box-forward{0%{opacity:0;clip-path:inset(6% 5% 0);transform:perspective(1200px)translate3d(0,64px,-140px)}to{opacity:1;clip-path:inset(0);transform:perspective(1200px)translate(0,0)}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@keyframes rule-draw{0%{background-size:0% 1px}}.rule-top{background:linear-gradient(var(--tone-line), var(--tone-line)) 0 0 / 100% 1px no-repeat}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.reveal__w{color:var(--tone-pending);transition:color .4s var(--ease)}.reveal__w.is-on{color:var(--tone-fg)}@media print{*,:before,:after{transition:none!important;animation:none!important}[data-inview=false] *{opacity:1!important;stroke-dashoffset:0!important;clip-path:none!important;transform:none!important}.nav{position:absolute}}.nav{z-index:50;padding-top:env(safe-area-inset-top,0px);color:var(--nav-fg);transition:color var(--dur-hover) var(--ease);position:fixed;inset:0 0 auto}.nav--on-dark{--nav-fg:var(--color-on-surface-inverse);--nav-muted:#f5f5f3c7;--tone-muted:#f5f5f3c7}.nav--on-light{--nav-fg:var(--color-on-surface);--nav-muted:var(--color-on-surface-variant);--tone-muted:var(--color-on-surface-variant)}.nav:before{content:"";z-index:-1;background-color:var(--nav-bar,transparent);border-bottom:1px solid var(--nav-rule,transparent);opacity:0;pointer-events:none;transition:opacity .45s var(--ease), background-color var(--dur-slow) var(--ease), border-color var(--dur-slow) var(--ease);position:absolute;inset:0}.nav--solid:before{opacity:1}.nav--bar-light{--nav-bar:var(--color-surface);--nav-rule:var(--color-outline)}.nav--bar-muted{--nav-bar:var(--color-surface-muted);--nav-rule:var(--color-outline)}.nav--bar-dark{--nav-bar:var(--color-surface-inverse);--nav-rule:var(--color-outline-inverse)}.nav--solid.nav--on-dark .nav__inner{text-shadow:none}.nav--on-dark .nav__inner{text-shadow:0 1px 12px #00000059}.nav__inner{max-width:var(--container-max);padding-inline:var(--margin);height:var(--nav-height);justify-content:space-between;align-items:center;gap:var(--space-md);margin-inline:auto;display:flex}.nav__brand{white-space:nowrap;align-items:center;gap:10px;display:inline-flex}.nav__mark{display:inline-flex}.nav__mark-line{stroke-dasharray:1;animation:bot-draw 1.6s var(--ease) .1s both}.nav__mark-line--base{animation-delay:.5s}.nav__name{font-size:var(--fs-body-md);letter-spacing:-.01em;font-weight:500}.nav__tag{font-size:var(--fs-label-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--nav-muted);border-left:1px solid;border-color:color-mix(in srgb, var(--nav-muted) 50%, transparent);padding-left:10px;font-weight:500}.nav__links{align-items:center;gap:var(--space-lg);display:flex}.nav__links ul{gap:var(--space-md);display:flex}.nav__links ul a,.nav__panel ul a{font-size:var(--fs-label-md);letter-spacing:.06em;text-transform:uppercase;transition:color var(--dur-hover) var(--ease);font-weight:500}.nav__links ul a:hover{color:var(--nav-muted)}.nav__cta{font-size:var(--fs-body-sm)}.nav__toggle{min-width:44px;min-height:44px;margin-right:calc(var(--space-xs) * -1);padding:0 var(--space-xs);font-size:var(--fs-label-md);letter-spacing:.06em;text-transform:uppercase;font-weight:500;display:none}.nav__panel{background:var(--color-surface-inverse);color:var(--color-on-surface-inverse);padding:var(--space-lg) var(--margin) var(--space-xl);min-height:calc(100svh - var(--nav-height));gap:var(--space-xl);flex-direction:column;display:flex}.nav__panel ul{gap:var(--space-sm);display:grid}.nav__panel ul a{letter-spacing:-.02em;text-transform:none;font-size:40px;font-weight:400;line-height:1.1}@media (width>=900px){.nav__panel{display:none!important}}@media (width<=899px){.nav__links{display:none}.nav__toggle{justify-content:center;align-items:center;display:inline-flex}.nav:has(.nav__panel:not([hidden])){background:var(--color-surface-inverse)}}@media (width<=420px){.nav__tag{display:none}}.photo{background:var(--color-surface-inverse-raised);border-radius:var(--rounded-none);max-width:100%;display:block;position:relative;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease);display:block}.photo--contain{background:var(--color-surface)}.photo--contain img{object-fit:contain}.hero{background:var(--color-surface-inverse);min-height:min(100svh,980px);color:var(--color-on-surface-inverse);--tone-muted:#f5f5f3e6;display:flex;position:relative;overflow:hidden}.hero__media{will-change:transform;position:absolute;inset:-12% 0}.hero__media .photo{height:100%}.hero__media .photo img{transform-origin:62% 58%;animation:32s ease-in-out infinite alternate hero-breathe}@keyframes hero-breathe{0%{transform:scale(1)}to{transform:scale(1.07)}}.hero__scrim{background:linear-gradient(#0000 45%,#0006 76%,#0000009e 100%),linear-gradient(#00000094 0%,#00000057 28%,#0000 48%);position:absolute;inset:0}.hero__content{justify-content:space-between;gap:var(--space-xl);padding-top:calc(var(--nav-height) + var(--space-xl));padding-bottom:var(--space-lg);min-height:inherit;flex-direction:column;display:flex;position:relative}.hero__top{column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.hero__kicker{grid-column:1/span 3}.hero__lede{font-size:var(--fs-body-lg);grid-column:9/-1;max-width:32ch;line-height:1.4}.hero__bottom{justify-content:space-between;align-items:flex-end;gap:var(--space-lg);flex-wrap:wrap;display:flex}.hero__title{font-size:var(--fs-display-hero);letter-spacing:-.04em;margin-left:-.04em;font-weight:500;line-height:.9}.hero__featured{gap:6px;min-width:200px;padding-bottom:.6em;display:grid}.hero__featured-name{font-size:var(--fs-title-project);letter-spacing:-.01em;transition:color var(--dur-hover) var(--ease);font-weight:500}.hero__featured:hover .hero__featured-name{color:var(--color-on-surface-inverse-variant)}@media (width<=767px){.hero{min-height:min(92svh,760px)}.hero__top{gap:var(--space-sm);flex-direction:column;display:flex}.hero__featured{min-width:0}}.bot{fill:none;stroke:currentColor;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;display:block;overflow:visible}.bot svg{display:block;overflow:visible}.bot path,.bot circle{vector-effect:non-scaling-stroke}.bot .bot-dot{fill:currentColor;stroke:none}.bot .bot-fine{stroke-width:.75px}.bot-draw{stroke-dasharray:1;stroke-dashoffset:0}.bot[data-inview=false]:not([data-seen]) .bot-draw{stroke-dashoffset:1px}.bot[data-seen] .bot-draw{animation:bot-draw 1.8s var(--ease) both}.bot-spin,.bot-sway{animation-play-state:paused}.bot[data-inview=true] .bot-spin,.bot[data-inview=true] .bot-sway{animation-play-state:running}.bot-spin{transform-origin:50%;animation-name:bot-spin;animation-timing-function:linear;animation-iteration-count:infinite}.bot-sway{transform-origin:50% 100%;animation-name:bot-sway;animation-timing-function:ease-in-out;animation-iteration-count:infinite}@keyframes bot-spin{to{transform:rotate(360deg)}}@keyframes bot-sway{0%,to{transform:rotate(-2.4deg)}12.5%{transform:rotate(2.6deg)}25%{transform:rotate(-1.8deg)}37.5%{transform:rotate(3deg)}50%{transform:rotate(-2.8deg)}62.5%{transform:rotate(1.9deg)}75%{transform:rotate(-2.2deg)}87.5%{transform:rotate(2.8deg)}}.bot-cluster{aspect-ratio:1;width:100%;color:var(--tone-pending);position:relative}.bot-cluster .bot-layer{position:absolute}.bot-cluster .bot-layer--full{width:100%;height:100%;inset:0}.bot-ground{height:80px;color:var(--tone-pending);position:relative;overflow:clip visible}.bot-ground__inner{width:2560px;height:80px;margin-left:-1280px;position:absolute;top:0;left:50%}.bot-ground__base{width:100%;height:100%;position:absolute;inset:0}.bot-ground .bot-hatch{stroke:var(--tone-line)}.bot-tuft{transform-origin:50% 100%;width:80px;height:70px;position:absolute;top:0}.bot-tuft__blades{transform-origin:50% 100%;width:100%;height:100%}.bot-ground[data-inview=false] .bot-tuft{opacity:0;transform:translateY(7px)scale(.86,.5)}.bot-ground[data-inview=true] .bot-tuft{animation:tuft-pop .9s var(--ease) backwards}@keyframes tuft-pop{0%{opacity:0;transform:translateY(7px)scale(.86,.5)}55%{opacity:1;transform:translateY(-2px)scale(1.03,1.09)}78%{transform:translateY(0)scale(.99,.975)}to{opacity:1;transform:none}}.bot-ground .bot-seed{stroke-width:.75px}.bot-ground .bot-tuft .bot-draw{animation-duration:.9s}.bot-ground[data-inview=false]:not([data-seen]) .bot-ground__base{clip-path:inset(0 50%)}.bot-ground[data-seen] .bot-ground__base{animation:ground-spread 1.8s var(--ease) both}@keyframes ground-spread{0%{clip-path:inset(0 50%)}to{clip-path:inset(0)}}.bot-ground[data-inview=false]:not([data-seen]) .bot-seed{opacity:0}.bot-ground[data-seen] .bot-seed{animation:bot-fade .7s var(--ease) both}.bot-tuft[data-band]{display:none}.bot-tuft[data-band="0"]{display:block}@media (width>=480px){.bot-tuft[data-band="1"]{display:block}}@media (width>=960px){.bot-tuft[data-band="2"]{display:block}}@media (width>=1440px){.bot-tuft[data-band="3"]{display:block}}@media (width>=1920px){.bot-tuft[data-band="4"]{display:block}}@media (width>=2400px){.bot-tuft[data-band="5"]{display:block}}.bot-sprout{vertical-align:-.34em;transform-origin:50% 100%;width:1.35em;height:1.35em;margin-right:.5em;display:inline-block}.bot-sprout .bot-leaf{fill:currentColor;stroke:none;transform-box:fill-box}.bot-sprout .bot-leaf--l{transform-origin:100% 100%}.bot-sprout .bot-leaf--r{transform-origin:0 100%}.bot-sprout[data-inview=false]:not([data-seen]) .bot-leaf{transform:scale(0)}.bot-sprout[data-seen] .bot-draw{animation-duration:.8s}.bot-sprout[data-seen] .bot-leaf{animation:leaf-unfurl .9s var(--ease) both}.bot-sprout[data-seen] .bot-leaf--l{animation-delay:.35s}.bot-sprout[data-seen] .bot-leaf--r{animation-delay:.55s}.bot-sprout[data-inview=true]{animation:44s ease-in-out 1.6s infinite sprout-nod}@keyframes leaf-unfurl{0%{transform:scale(0)rotate(-35deg)}}@keyframes sprout-nod{0%,to{transform:rotate(-4deg)}12.5%{transform:rotate(4deg)}25%{transform:rotate(-3deg)}37.5%{transform:rotate(4.5deg)}50%{transform:rotate(-4.2deg)}62.5%{transform:rotate(3.2deg)}75%{transform:rotate(-3.6deg)}87.5%{transform:rotate(4deg)}}@keyframes bot-fade{0%{opacity:0}}.bot-glyph{vertical-align:.12em;width:.5em;height:.5em;display:inline-block}@media (prefers-reduced-motion:reduce){.bot-spin,.bot-sway,.bot-sprout{animation:none!important}.bot .bot-draw{stroke-dashoffset:0!important}.bot .bot-leaf,.bot .bot-seed{opacity:1!important;transform:none!important}.bot-ground .bot-ground__base{clip-path:none!important}.bot-ground .bot-tuft{opacity:1!important;transform:none!important}}.intro{padding-bottom:var(--space-xl);position:relative}.intro__aside{gap:var(--space-lg);align-content:start;display:grid}.intro__cluster{width:min(100%,280px);margin-top:var(--space-md)}.intro__ground{margin-top:calc(var(--space-xl) + var(--space-lg) - 8px)}.intro__body{gap:var(--space-lg);display:grid}.intro__services{gap:var(--gutter);margin-top:var(--space-sm);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.intro__services li{padding-top:var(--space-sm);font-size:var(--fs-headline-card);letter-spacing:-.015em;font-weight:400;line-height:1.1}.intro__recent{margin-top:calc(var(--space-sm) * -1)}.intro__services[data-inview=false]:not([data-seen]) li{opacity:0}.intro__services[data-seen] li{animation:rise .9s var(--ease) backwards, rule-draw 1.3s var(--ease) backwards;animation-delay:calc(var(--i) * .12s), calc(var(--i) * .12s + 80ms)}@media (width<=1279px){.intro__cluster{width:min(100%,190px)}}@media (width<=767px){.intro__aside{position:relative}.intro__cluster{width:108px;margin:0;position:absolute;top:-8px;right:-4px}.intro__body .statement{padding-right:100px}.intro__ground{margin-top:calc(var(--space-xl) - 8px)}.intro__services{grid-template-columns:1fr;gap:0}.intro__services li{padding-block:12px}.intro__services li:last-child{border-bottom:1px solid var(--tone-line)}.intro__recent{margin-top:0}}.ticker{align-items:center;gap:var(--space-md);margin-top:var(--space-xxl);padding:var(--space-md) var(--margin);border-block:1px solid var(--tone-line);grid-template-columns:auto minmax(0,1fr);display:grid;position:relative}.ticker__label{white-space:nowrap}.ticker__viewport{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.ticker__track{width:max-content;animation:95s linear infinite ticker-drift;display:flex}.ticker[data-inview=false] .ticker__track,.ticker:hover .ticker__track{animation-play-state:paused}.ticker__list{align-items:center;gap:var(--space-lg);padding-right:var(--space-lg);display:flex}.ticker__item{white-space:nowrap;font-size:var(--fs-headline-card);letter-spacing:-.01em;color:var(--tone-fg);align-items:center;gap:.55em;font-weight:300;line-height:1.1;display:inline-flex}.ticker__item i{font-style:italic}.ticker__item .bot-glyph{color:var(--tone-muted)}@keyframes ticker-drift{to{transform:translate(-50%)}}@media (width<=767px){.ticker{gap:var(--space-xs);grid-template-columns:1fr}.ticker__item{font-size:22px}}@media (prefers-reduced-motion:reduce){.ticker{align-items:start}.ticker__viewport{-webkit-mask-image:none;mask-image:none}.ticker__track{width:auto;animation:none!important}.ticker__list{gap:var(--space-xs) var(--space-md);flex-wrap:wrap;padding-right:0}.ticker__list[aria-hidden=true]{display:none}.ticker__item{font-size:var(--fs-body-lg);font-weight:400}}.viewer{z-index:90;gap:var(--space-xs);padding:calc(env(safe-area-inset-top,0px) + var(--space-xs)) var(--margin) calc(env(safe-area-inset-bottom,0px) + var(--space-sm));background:var(--color-surface-inverse);color:var(--color-on-surface-inverse);--tone-muted:var(--color-on-surface-inverse-variant);animation:viewer-in .28s var(--ease);grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}@keyframes viewer-in{0%{opacity:0}to{opacity:1}}.viewer__top,.viewer__bar{justify-content:space-between;align-items:center;gap:var(--space-sm);min-height:44px;display:flex}.viewer__count{min-width:4em}.viewer__close{font-size:var(--fs-label-md);letter-spacing:.06em;text-transform:uppercase;transition:color var(--dur-hover) var(--ease);align-items:center;gap:10px;padding:12px 0;font-weight:500;display:inline-flex}.viewer__close:hover{color:var(--color-on-surface-inverse-variant)}.viewer__stage{touch-action:manipulation;min-height:0;position:relative}.viewer__img{object-fit:contain;width:100%;height:100%;animation:viewer-in .38s var(--ease);position:absolute;inset:0}.viewer__cap{align-items:baseline;gap:4px var(--space-sm);flex-wrap:wrap;min-width:0;display:flex}.viewer__title{font-size:var(--fs-title-project);letter-spacing:-.01em;font-weight:500}.viewer__nav{gap:var(--space-xs);flex-shrink:0;display:flex}.viewer__nav button{background:var(--color-surface-inverse-raised);border-radius:var(--rounded-xs);width:44px;height:44px;transition:background-color var(--dur-hover) var(--ease);place-items:center;font-size:18px;display:grid}.viewer__nav button:hover{background:var(--color-outline-inverse)}@media (width<=767px){.viewer,.viewer__top,.viewer__bar{padding-inline:var(--space-xs)}}.work{padding-top:0;padding-bottom:0}.work__head{padding-bottom:var(--space-md);margin-bottom:var(--space-xl);border-bottom:1px solid var(--tone-line);justify-content:space-between;align-items:center;display:flex}.work__list{gap:var(--space-xxl);display:grid}.work__row{column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;display:grid}.work__media{aspect-ratio:16/9;cursor:zoom-in;width:100%;display:block;position:relative;overflow:hidden}.work__parallax{will-change:transform;display:block;position:absolute;inset:-8% 0}.work__parallax .photo{height:100%}.work__media:hover img{transform:scale(1.03)}.work__media:focus-visible{outline-offset:3px}.work__expand{right:var(--space-sm);top:var(--space-sm);background:var(--color-surface-inverse);width:36px;height:36px;color:var(--color-on-surface-inverse);border-radius:var(--rounded-xs);opacity:0;transition:opacity var(--dur-hover) var(--ease);place-items:center;display:grid;position:absolute}.work__media:hover .work__expand,.work__media:focus-visible .work__expand{opacity:1}@media (hover:none){.work__expand{opacity:1}}.work__row--left .work__media{grid-column:1/span 8}.work__row--left .work__info{grid-column:10/-1}.work__row--right .work__media{aspect-ratio:3/2;grid-area:1/5/auto/-1}.work__row--right .work__info{grid-area:1/1/auto/span 3}.work__info{gap:var(--space-sm);padding-block:var(--space-xs);display:grid}.work__name{font-size:var(--fs-headline-card);letter-spacing:-.015em;font-weight:500;line-height:1.1}.work__summary{font-size:var(--fs-body-md);color:var(--tone-muted);line-height:1.5}.work__meta{font-size:var(--fs-label-md);display:grid}.work__meta div{justify-content:space-between;gap:var(--space-sm);padding-block:7px;display:flex}.work__meta dd{text-align:right}.work__meta dt{color:var(--tone-muted);text-transform:uppercase;letter-spacing:.06em;font-size:var(--fs-label-sm)}.work__more-shots{grid-template-columns:repeat(var(--n,2), minmax(0, 1fr));gap:var(--space-xs);padding-top:var(--space-xs);display:grid}.work__thumb{text-align:left;cursor:zoom-in;gap:6px;width:100%;display:grid}.work__thumb .photo{aspect-ratio:4/3}.work__thumb .photo--contain{background:var(--color-surface)}.work__thumb .photo--contain img{padding:3px}.work__thumb:hover img{transform:scale(1.04)}.work__thumb--plan:hover img{transform:none}.work__thumb-label{transition:color var(--dur-hover) var(--ease);align-items:center;gap:6px;display:inline-flex}.work__thumb:hover .work__thumb-label{color:var(--color-on-surface-inverse)}.work__row[data-inview=false]:not([data-seen]) :is(.work__media,.work__info){opacity:0}.work__row[data-seen] .work__media{animation:box-forward 1.3s var(--ease) backwards}.work__row[data-seen] .work__info{animation:rise 1s var(--ease) .25s backwards}.work__row[data-seen] .work__meta div{animation:rule-draw 1.1s var(--ease) backwards;animation-delay:calc(.45s + var(--k,0) * 90ms)}@media (width<=1279px){.work__row--left .work__media{grid-column:1/span 5}.work__row--left .work__info{grid-column:6/-1}.work__row--right .work__media{grid-column:4/-1}.work__row--right .work__info{grid-column:1/span 3}}@media (width<=767px){.work__list{gap:var(--space-xl)}.work__row{align-items:stretch;gap:var(--space-sm);flex-direction:column;display:flex}.work__row .work__media{aspect-ratio:4/3;width:100%}.work__parallax{inset:0}}.show{background:var(--color-surface-muted);color:var(--color-on-surface);--tone-muted:var(--color-on-surface-variant)}.show__head{column-gap:var(--gutter);row-gap:var(--space-sm);margin-bottom:var(--space-lg);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.show__head .label{grid-column:1/span 3}.show__intro{color:var(--color-on-surface-variant);grid-column:5/-1}.show__stage{height:min(62.5vw, 900px, calc(100svh - var(--nav-height) - 140px));background:var(--color-surface);touch-action:pan-y;cursor:zoom-in;max-width:100%;min-height:260px;position:relative;overflow:hidden}.show__stage:focus-visible{outline:1px solid var(--color-on-surface);outline-offset:4px}.show__slide{opacity:0;visibility:hidden;transition:opacity .9s var(--ease), visibility 0s linear .9s;position:absolute;inset:0}.show__slide.is-active{opacity:1;visibility:visible;transition:opacity .9s var(--ease)}.show__slide .photo{height:100%}.show__slide--plan .photo{background:var(--color-surface)}.show__slide--plan img{padding:clamp(8px,1.6vw,24px)}.show__slide--photo img{transition:transform 7s linear;transform:scale(1.04)}.show__slide--photo.is-active img{transform:scale(1)}.show__nav{background:var(--color-surface-inverse);width:44px;height:44px;color:var(--color-on-surface-inverse);border-radius:var(--rounded-xs);opacity:0;transition:opacity var(--dur-hover) var(--ease), background-color var(--dur-hover) var(--ease);place-items:center;font-size:18px;display:grid;position:absolute;top:50%;translate:0 -50%}.show__nav--prev{left:var(--space-sm)}.show__nav--next{right:var(--space-sm)}.show__stage:hover .show__nav,.show__stage:focus-within .show__nav{opacity:1}.show__nav:hover{background:var(--color-surface-inverse-raised)}@media (hover:none){.show__nav{opacity:1;width:36px;height:36px}}.show__expand{right:var(--space-sm);top:var(--space-sm);font-size:var(--fs-label-sm);letter-spacing:.08em;text-transform:uppercase;background:var(--color-surface-inverse);color:var(--color-on-surface-inverse);border-radius:var(--rounded-xs);opacity:0;pointer-events:none;transition:opacity var(--dur-hover) var(--ease);align-items:center;gap:8px;padding:9px 12px;font-weight:500;display:inline-flex;position:absolute}.show__stage:hover .show__expand,.show__stage:focus-visible .show__expand{opacity:1}.show__progress{pointer-events:none;height:16px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.show__vine{background:var(--color-primary);width:100%;height:2px;animation:linear forwards show-vine;position:absolute;bottom:0;left:0;transform:translate(-100%)}.show__leaf{transform-origin:0 100%;width:18px;height:11px;animation:14s ease-in-out infinite leaf-bob;position:absolute;bottom:1px;right:-1px;overflow:visible}.show__leaf path{fill:var(--color-primary)}.show__leaf .show__leaf-rib{fill:none;stroke:var(--color-surface);stroke-width:.8px}@keyframes show-vine{to{transform:translate(0)}}@keyframes leaf-bob{0%,to{transform:rotate(-10deg)}10%{transform:rotate(6deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(7deg)}40%{transform:rotate(-11deg)}50%{transform:rotate(5deg)}60%{transform:rotate(-9deg)}70%{transform:rotate(6deg)}80%{transform:rotate(-10deg)}90%{transform:rotate(7deg)}}.show__slide--plan{overflow:hidden}.show__slide--plan:after{content:"";background:var(--color-surface);pointer-events:none;position:absolute;inset:0;transform:translate(100%)}.show__slide--plan.is-active:after{animation:plan-wipe 1.2s var(--ease) both}@keyframes plan-wipe{0%{transform:translate(0)}to{transform:translate(100%)}}.show__bar{justify-content:space-between;align-items:baseline;gap:var(--space-sm);padding-top:var(--space-sm);display:flex}.show__cap{align-items:baseline;gap:6px var(--space-sm);flex-wrap:wrap;display:flex}.show__title{font-size:var(--fs-title-project);letter-spacing:-.01em;font-weight:500}.show__tools{align-items:center;gap:var(--space-md);flex-shrink:0;display:flex}.show__count{white-space:nowrap}.show__full{font-size:var(--fs-label-md);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;transition:color var(--dur-hover) var(--ease);align-items:center;gap:8px;padding:10px 0;font-weight:500;display:inline-flex}.show__full:hover{color:var(--color-on-surface-variant)}.show__dots{padding-top:var(--space-xs);flex-wrap:wrap;gap:0;margin-inline:-4px;display:flex}.show__dot{width:32px;height:32px;display:block;position:relative}.show__dot:after{content:"";transition:background-color var(--dur-hover) var(--ease);background:#c9c9c6;position:absolute;inset:14px 6px}.show__dot--photo:after{inset:14px 11px}.show__dot:hover:after{background:var(--color-on-surface-variant)}.show__dot.is-active:after{background:var(--color-on-surface)}@media (width<=767px){.show__head .label,.show__intro{grid-column:1/-1}.show__stage{height:75vw;min-height:0;margin-inline:calc(var(--margin) * -1);max-width:none}.show__bar{flex-direction:column;align-items:stretch;gap:4px}.show__tools{justify-content:space-between}}@media (prefers-reduced-motion:reduce){.show__slide--photo img{transform:none}}.show__frame[data-inview=false]:not([data-seen]) .show__stage{opacity:0}.show__frame[data-seen] .show__stage{animation:box-forward 1.3s var(--ease) backwards}.process{padding-bottom:var(--space-lg)}.process__row{gap:var(--gutter);perspective:1100px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.process__card{--tone-muted:var(--color-on-surface-inverse-variant);--rx:0deg;--ry:0deg;min-height:340px;padding:var(--space-md);justify-content:space-between;gap:var(--space-md);background:var(--color-surface-inverse);color:var(--color-on-surface-inverse);border-radius:var(--rounded-xs);transform:translate3d(0, 0, 0) rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;transition:transform .65s var(--ease), background-color .3s var(--ease);will-change:transform;flex-direction:column;display:flex;position:relative}.process__card-top{transition:opacity .45s var(--ease);justify-content:space-between;align-items:baseline;gap:var(--space-sm);display:flex}.process__title{font-size:var(--fs-headline-card);letter-spacing:-.015em;font-weight:500;line-height:1.1}.process__text{font-size:var(--fs-body-md);color:var(--color-on-surface-inverse-variant);transition:color .3s var(--ease), opacity .45s var(--ease);line-height:1.5}.process__art{aspect-ratio:2;width:min(100%,256px);color:var(--color-on-surface-inverse-variant);opacity:.5;transition:opacity .45s var(--ease), color .45s var(--ease);margin:auto;position:relative}.process__art .art-layer{position:absolute}.process__art .fine{stroke-width:.75px}.process__art .art-text{fill:currentColor;stroke:none;letter-spacing:.06em;font-size:9px;font-family:var(--font-family)}.process__art .art-flag{fill:currentColor;stroke:none}.process__art .draw{stroke-dasharray:1;stroke-dashoffset:0}.process__card.is-active{transform:translate3d(0, -14px, 70px) rotateX(var(--rx)) rotateY(var(--ry));background:var(--color-surface-inverse-raised)}.process__card.is-active .process__art{opacity:1;color:var(--color-on-surface-inverse)}.process__card.is-active .process__text{color:var(--color-on-surface-inverse)}.process__card.is-active .draw{animation:bot-draw 1.3s var(--ease) both}.process__row.has-active .process__card:not(.is-active) :is(.process__card-top,.process__text){opacity:.4}.process__row.has-active .process__card:not(.is-active) .process__art{opacity:.22}@media (hover:hover) and (width>=1024px){.process__card:hover{transform:translate3d(0, -14px, 70px) rotateX(var(--rx)) rotateY(var(--ry));background:var(--color-surface-inverse-raised)}.process__card:hover .process__art{opacity:1;color:var(--color-on-surface-inverse)}.process__card:hover .process__text{color:var(--color-on-surface-inverse)}.process__card:hover .draw{animation:bot-draw 1.3s var(--ease) both}.process__row:hover .process__card:not(:hover){transform:translateZ(-40px)}.process__row:hover .process__card:not(:hover) :is(.process__card-top,.process__text){opacity:.4}.process__row:hover .process__card:not(:hover) .process__art{opacity:.22}}.process__row[data-seen] .process__card{animation:card-rise 1s var(--ease) backwards;animation-delay:calc(var(--i) * .13s)}@keyframes card-rise{0%{transform:translateY(48px)}}.process__art .art-breathe{animation:48s ease-in-out infinite art-breathe}.process__art .art-flag{transform-origin:0%;animation:18s ease-in-out infinite art-flag}.process__art .art-spin{transform-origin:50%;animation:70s linear infinite bot-spin}.process__art .art-spin--rev{animation-duration:50s;animation-direction:reverse}.process__art .art-pencil{animation:12.8s linear infinite art-sketch}.process__art .art-leaf{transform-origin:0 100%;animation:36s ease-in-out infinite art-leaf}.process__art :is(.art-breathe,.art-spin,.art-pencil,.art-leaf,.art-flag){animation-play-state:paused}.process__row[data-inview=true] .process__art :is(.art-breathe,.art-spin,.art-pencil,.art-leaf,.art-flag){animation-play-state:running}@keyframes art-breathe{0%,to{transform:translateY(-1.6px)}12.5%{transform:translateY(1.6px)}25%{transform:translateY(-1.2px)}37.5%{transform:translateY(1.8px)}50%{transform:translateY(-1.5px)}62.5%{transform:translateY(1.3px)}75%{transform:translateY(-1.7px)}87.5%{transform:translateY(1.5px)}}@keyframes art-flag{0%,to{transform:skewY(-6deg)scaleX(.92)}10%{transform:skewY(5deg)scaleX(1)}20%{transform:skewY(-4deg)scaleX(.95)}30%{transform:skewY(6deg)scaleX(1)}40%{transform:skewY(-7deg)scaleX(.9)}50%{transform:skewY(4deg)scaleX(.98)}60%{transform:skewY(-5deg)scaleX(.93)}70%{transform:skewY(5.5deg)scaleX(1)}80%{transform:skewY(-6.5deg)scaleX(.91)}90%{transform:skewY(4.5deg)scaleX(.99)}}@keyframes art-sketch{0%,to{transform:translate(0)}3.125%{transform:translate(-2.5px,1.2px)}6.25%{transform:translateY(2.4px)}9.375%{transform:translate(2.5px,1.2px)}12.5%{transform:translate(0)}15.625%{transform:translate(-2px,.96px)}18.75%{transform:translateY(1.92px)}21.875%{transform:translate(2px,.96px)}25%{transform:translate(0)}28.125%{transform:translate(-2.75px,1.32px)}31.25%{transform:translateY(2.64px)}34.375%{transform:translate(2.75px,1.32px)}37.5%{transform:translate(0)}40.625%{transform:translate(-2.25px,1.08px)}43.75%{transform:translateY(2.16px)}46.875%{transform:translate(2.25px,1.08px)}50%{transform:translate(0)}53.125%{transform:translate(-2.5px,1.2px)}56.25%{transform:translateY(2.4px)}59.375%{transform:translate(2.5px,1.2px)}62.5%{transform:translate(0)}65.625%{transform:translate(-2.12px,1.02px)}68.75%{transform:translateY(2.04px)}71.875%{transform:translate(2.12px,1.02px)}75%{transform:translate(0)}78.125%{transform:translate(-2.62px,1.26px)}81.25%{transform:translateY(2.52px)}84.375%{transform:translate(2.62px,1.26px)}87.5%{transform:translate(0)}90.625%{transform:translate(-2.38px,1.14px)}93.75%{transform:translateY(2.28px)}96.875%{transform:translate(2.38px,1.14px)}}@keyframes art-leaf{0%,to{transform:rotate(-7deg)}12.5%{transform:rotate(5deg)}25%{transform:rotate(-5deg)}37.5%{transform:rotate(6deg)}50%{transform:rotate(-8deg)}62.5%{transform:rotate(4deg)}75%{transform:rotate(-6deg)}87.5%{transform:rotate(5deg)}}.process__ground{margin-top:calc(var(--space-xl) - 8px)}@media (width<=1023px){.process__row{gap:var(--space-sm);grid-template-columns:1fr}.process__card{gap:var(--space-sm);min-height:0}.process__art{width:min(100%,220px)}.process__card.is-active{transform:translateY(-4px)scale(1.03)}}@media (prefers-reduced-motion:reduce){.process__card{transform:none!important}.process__art *{animation:none!important}}.inquiry{gap:var(--space-sm);width:min(460px,100%);padding:var(--space-md);background:var(--color-surface-inverse);color:var(--color-on-surface-inverse);border-radius:var(--rounded-xs);display:grid}.inquiry__title{font-size:var(--fs-body-lg);letter-spacing:-.01em;font-weight:500}.inquiry__note{font-size:var(--fs-body-sm);color:var(--color-on-surface-inverse-variant);margin-bottom:var(--space-xs)}.inquiry__row{gap:var(--space-sm);grid-template-columns:1fr 1fr;display:grid}.field{gap:6px;display:grid}.field>span{font-size:var(--fs-label-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-on-surface-inverse-variant);font-weight:500}.field em{text-transform:none;letter-spacing:0;font-style:normal}.field input,.field select,.field textarea{width:100%;font:inherit;font-size:var(--fs-body-md);color:var(--color-on-surface-inverse);border:0;border-bottom:1px solid var(--color-outline-inverse);border-radius:var(--rounded-none);transition:border-color var(--dur-hover) var(--ease);background:0 0;padding:8px 0}.field select option{color:var(--color-on-surface)}.field textarea{resize:vertical;min-height:88px}.field input::placeholder,.field textarea::placeholder{color:#5c5c5c}.field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--color-on-surface-inverse);outline:none}.inquiry__foot{gap:var(--space-xs);padding-top:var(--space-xs);display:grid}.inquiry__submit{font-size:var(--fs-body-md);background:var(--color-on-surface-inverse);color:var(--color-surface-inverse);border-radius:var(--rounded-xs);transition:background-color var(--dur-hover) var(--ease);justify-self:start;gap:.6em;padding:12px 18px;display:inline-flex}.inquiry__submit:hover{background:#d9d9d6}.inquiry__submit:disabled{opacity:.6;cursor:progress}.inquiry__msg{font-size:var(--fs-body-sm);color:var(--color-on-surface-inverse-variant)}.inquiry__msg--error{color:#f2b8b5}.inquiry--done{gap:var(--space-xs)}@media (width<=480px){.inquiry__row{grid-template-columns:1fr}}.closing{background:var(--color-surface-inverse);min-height:min(100svh,900px);color:var(--color-on-surface-inverse);--tone-muted:#f5f5f3bf;display:flex;position:relative;overflow:hidden}.closing__media{position:absolute;inset:0}.closing__media .photo{height:100%}.closing__scrim{background:linear-gradient(to top, #00000080 0%, var(--color-scrim) 40%, #0000001a 100%);position:absolute;inset:0}.closing__content{justify-content:space-between;gap:var(--space-xl);padding-block:calc(var(--nav-height) + var(--space-lg)) var(--space-lg);flex-direction:column;display:flex;position:relative}.closing__bottom{justify-content:space-between;align-items:flex-end;gap:var(--space-lg);flex-wrap:wrap;display:flex}.closing__title{font-size:var(--fs-display-cta);letter-spacing:-.04em;max-width:8ch;font-weight:500;line-height:.95}.closing__bottom[data-inview=false]:not([data-seen])>*{opacity:0}.closing__bottom[data-seen] .closing__title{animation:rise 1.1s var(--ease) backwards}.closing__bottom[data-seen] .inquiry{animation:box-forward 1.2s var(--ease) .2s backwards}.closing__cards{gap:var(--space-xs);width:min(320px,100%);display:grid}.closing__mail{font-size:var(--fs-body-md)}.cta-card{gap:var(--space-xl);padding:var(--space-md);background:var(--color-surface-inverse);color:var(--color-on-surface-inverse);border-radius:var(--rounded-xs);transition:background-color var(--dur-hover) var(--ease);display:grid}.cta-card:hover{background:var(--color-surface-inverse-raised)}.cta-card__top{justify-content:space-between;gap:var(--space-sm);display:flex}.cta-card__title{font-size:var(--fs-body-lg);letter-spacing:-.01em;font-weight:500}.cta-card__arrow{transition:transform var(--dur-hover) var(--ease)}.cta-card:hover .cta-card__arrow{transform:translate(3px,-3px)}.cta-card__text{font-size:var(--fs-body-sm);color:var(--color-on-surface-inverse-variant)}@media (width<=767px){.closing{min-height:min(92svh,760px)}}.footer{background:var(--color-surface-inverse);color:var(--color-on-surface-inverse-variant);font-size:var(--fs-body-sm);padding-block:var(--space-lg);--tone-muted:var(--color-on-surface-inverse-variant);line-height:1.6}.footer a{transition:color var(--dur-hover) var(--ease)}.footer a:hover{color:var(--color-on-surface-inverse)}.footer__grid{column-gap:var(--gutter);row-gap:var(--space-lg);padding-bottom:var(--space-xl);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.footer__grid>*{grid-column:span 2;align-content:start;gap:2px;display:grid}.footer__grid>.footer__brand{grid-column:1/span 4}.footer__grid .label{margin-bottom:var(--space-xs)}.footer__name{color:var(--color-on-surface-inverse);font-size:var(--fs-headline-card);letter-spacing:-.015em;margin-bottom:var(--space-xs);font-weight:500;line-height:1.1}.footer__legal{justify-content:space-between;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--color-outline-inverse);display:flex}.footer__legal:before{content:none}@media (width>=1280px){.footer__grid>:nth-child(2){grid-column:7/span 2}}@media (width<=1279px){.footer__grid>*{grid-column:span 3}.footer__grid>.footer__brand{grid-column:1/-1}}@media (width<=767px){.footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer__grid>*{grid-column:span 1}}
