@import"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Outfit:wght@400;500;600&display=swap";:root{--paper: #f6f1f1;--paper-deep: #eee8e6;--ink: #141210;--ink-heading: #373a40;--ink-soft: #686d76;--line: #686d76;--line-faint: color-mix(in srgb, #373a40 22%, transparent);--line-strong: #373a40;--capsule: color-mix(in srgb, #f0f0f0 70%, transparent);--accent: #8c4a2f;--footer-bg: #373a40;--footer-ink: #f6f1f1;--background: var(--paper);--text: var(--ink);--font-display: "Instrument Serif", "Iowan Old Style", Palatino, serif;--font-sans: "Outfit", "Avenir Next", "Segoe UI", sans-serif;--font-editorial: var(--font-display);--fs-display: clamp(2.35rem, 8.6vw + .55rem, 12rem);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--fs-display-md: clamp(1.35rem, 3.4vw + .35rem, 2.5rem);--fs-ui: 1rem;--fs-label: clamp(.68rem, .35vw + .62rem, .75rem);--fs-kicker: var(--fs-label);--fs-data: var(--fs-ui);--fs-body: var(--fs-ui);--fs-body-lg: var(--fs-ui);--fs-btn: var(--fs-label);--fs-btn-sm: var(--fs-label);--fs-intro: var(--fs-display-md);--fs-name: var(--fs-display);--fs-section: var(--fs-display);--fs-quote: var(--fs-display-md);--fs-chapter: var(--fs-display-md);--fs-nav-brand: var(--fs-label);--fs-wordmark: var(--fs-display-md);--lh-name: .88;--lh-intro: 1.12;--lh-body: 1.5;--lh-quote: 1.08;--lh-display: .9;--tracking-btn: .08em;--tracking-section: -.03em;--void-portfolio: clamp(8rem, 42vh, 18rem);--tracking-data: .08em;--tracking-nav: .08em;--tracking-label: .1em;--tracking-ui: .01em;--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--space-6: 3rem;--space-7: 4rem;--space-8: 5rem;--space-9: 6rem;--space-10: 7rem;--space-11: 10rem;--gutter: clamp(1.15rem, 5vw, 5%);--nav-h: 4.5rem;--nav-max: 48rem;--max: 80rem;--max-measure: 25rem;--max-quote: 40rem;--hairline: 1px;--radius-btn: 4px;--radius-capsule: 50px;--frame-pad: .75rem;--frame-ink: #000;--gallery-col: min(40rem, 100%);--gallery-max-h: calc(100vh - var(--nav-h) - 2.75rem);--gallery-max-h: calc(100dvh - var(--nav-h) - 2.75rem);--ease: cubic-bezier(.22, 1, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-power2: cubic-bezier(.215, .61, .355, 1);--dur-nav: .9s;--dur-char: .55s;--dur-cutout-in: 1.1s;--dur-hover: .8s;--stagger-char: 28ms;--nav-enter-y: -6rem;--cutout-enter-y: 7rem;--cutout-factor: .6;--cutout-lag: .4;--featured-band: clamp(2.85rem, 7.2svh, 4.35rem);--z-paper: 0;--z-identity: 10;--z-portfolio: 12;--z-cutout: 20;--z-featured: 26;--z-meta: 21;--z-nav: 40;--z-lightbox: 60}@media(max-width:991px){:root{--nav-h: 4.25rem}}@media(max-width:767px){:root{--nav-h: 4.25rem;--frame-pad: .7rem;--featured-band: clamp(2.55rem, 6.8svh, 3.65rem)}}@media(max-width:479px){:root{--nav-h: 2.85rem}}@media(max-width:359px){:root{--nav-h: 2.85rem}}@media(min-width:768px){:root{--featured-band: clamp(3.1rem, 6.4svh, 4.6rem)}}@media(max-width:767px)and (max-height:500px){:root{--featured-band: 2.55rem}}@media(prefers-reduced-motion:reduce){:root{--dur-nav: 1ms;--dur-char: 1ms;--dur-cutout-in: 1ms;--dur-hover: 1ms;--stagger-char: 0ms;--cutout-factor: 1;--cutout-lag: 0}}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);font-weight:400;line-height:var(--lh-body)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overflow-x:clip;overflow-y:auto}html,body{margin:0;min-height:100%;max-width:100%;background:var(--paper);color:var(--ink);overflow-x:clip}body{font-family:var(--font-sans);font-weight:400;font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:.01em}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}h1,h2,h3,p,ul,dl,dd,figure{margin:0}:focus-visible{outline:1px solid var(--ink);outline-offset:3px}a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}a:active:not(.project-tile),button:active:not(.gallery__hit){opacity:.72}.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}.app{min-height:100svh;max-width:100%;overflow-x:clip}.nav{position:fixed;top:max(.75rem,var(--safe-top));left:50%;z-index:var(--z-nav);display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.35rem .75rem;width:min(calc(100% - 2 * var(--gutter) - var(--safe-left) - var(--safe-right)),var(--nav-max));max-width:calc(100% - 2 * var(--gutter));min-height:2.75rem;padding:.28rem .85rem .28rem 1.05rem;overflow:hidden;border:var(--hairline) solid var(--line-faint);border-radius:var(--radius-capsule);background:var(--capsule);backdrop-filter:blur(18px) saturate(1.15);-webkit-backdrop-filter:blur(18px) saturate(1.15);transform:translate(-50%);animation:nav-enter var(--dur-nav) var(--ease-out) both}@keyframes nav-enter{0%{transform:translate(-50%) translateY(var(--nav-enter-y))}to{transform:translate(-50%) translateY(0)}}.nav a.nav__brand{flex:0 1 auto;gap:.28em;min-width:0;padding-left:.15rem;font-family:var(--font-sans);font-size:var(--fs-label);font-weight:500;letter-spacing:.04em;text-transform:none;color:var(--ink);white-space:nowrap}.nav__links{position:absolute;left:50%;display:flex;flex-wrap:nowrap;align-items:center;gap:.1rem;transform:translate(-50%)}.nav__item{display:inline-flex;flex-shrink:0;align-items:center;gap:.15rem;white-space:nowrap}.nav__dot{padding:0 .15rem;color:var(--ink-soft);font-weight:400}.nav a{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:0 .55rem;border-radius:var(--radius-btn);font-size:var(--fs-label);font-weight:400;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}.nav a:hover{color:var(--ink)}.nav a.is-active{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:.28em;background:none}.nav__end{display:flex;flex:0 0 auto;align-items:center;gap:.2rem}.nav a.nav__ig{flex:0 0 auto;width:44px;min-width:44px;min-height:44px;padding:0}.nav a.nav__ig svg{display:block;width:1.54rem;height:1.54rem}.nav a.nav__ig:hover{opacity:.82}.nav a.nav__book{flex:0 0 auto;border:var(--hairline) solid var(--ink);border-radius:var(--radius-btn);padding:0 .85rem;background:transparent;color:var(--ink);letter-spacing:var(--tracking-btn)}.nav a.nav__book:hover,.nav a.nav__book:focus-visible{background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink)}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.75rem 2.5rem;padding:3rem var(--gutter) calc(2.25rem + var(--safe-bottom));background:var(--footer-bg);color:var(--footer-ink);font-size:var(--fs-ui);line-height:var(--lh-body);letter-spacing:var(--tracking-ui)}.site-footer__brand,.site-footer__agency,.site-footer__nav{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:min(100%,12rem)}.site-footer__agency{flex:1 1 16rem;max-width:28rem}.site-footer__address{display:block;max-width:22rem;padding-block:.35rem;overflow-wrap:break-word}.site-footer__link{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding-inline:.1rem;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb,var(--footer-ink) 38%,transparent)}.site-footer a:hover{color:color-mix(in srgb,var(--footer-ink) 80%,white)}@media(max-width:767px){.site-footer{flex-direction:column;gap:1.5rem}.site-footer__brand,.site-footer__agency,.site-footer__nav{width:100%;min-width:0}}.gallery{position:relative;z-index:var(--z-portfolio);display:flex;flex-direction:column;gap:clamp(2.5rem,8vw,7rem);padding:0 var(--gutter) clamp(4rem,12vw,8rem);background:var(--paper)}.gallery__block{display:flex;flex-direction:column;gap:clamp(1.5rem,5vw,3.5rem);width:100%}.gallery__item{width:100%;margin:0;padding:var(--frame-pad);border:var(--hairline) solid var(--line-faint);background:transparent;overflow:hidden}.gallery__hit{display:block;width:100%;min-height:44px;overflow:hidden;cursor:pointer;appearance:none}.gallery__item img{width:100%;max-width:100%;height:auto;object-fit:cover;vertical-align:middle}.gallery__fragment{font-family:var(--font-display);font-style:italic;font-size:var(--fs-display-md);line-height:var(--lh-quote);letter-spacing:var(--tracking-section);color:var(--ink-soft);max-width:var(--max-quote)}.lightbox{position:fixed;inset:0;z-index:var(--z-lightbox);display:grid;place-items:center;padding:max(var(--gutter),var(--safe-top)) max(3.25rem,var(--safe-right)) max(var(--gutter),var(--safe-bottom)) max(3.25rem,var(--safe-left));background:color-mix(in srgb,var(--ink) 72%,transparent)}.lightbox img{max-width:min(calc(100vw - 7.5rem),72rem);max-height:88svh;width:auto;height:auto}.lightbox__nav{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:2.75rem;height:2.75rem;min-width:44px;min-height:44px;color:var(--paper);transform:translateY(-50%);transition:transform .45s var(--ease)}.lightbox__nav svg{display:block;width:1.35rem;height:1.35rem;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.lightbox__nav--prev{left:max(.2rem,var(--safe-left))}.lightbox__nav--next{right:max(.2rem,var(--safe-right))}.lightbox__nav:hover svg,.lightbox__nav:focus-visible svg{transform:none}.lightbox__nav--prev:hover,.lightbox__nav--prev:focus-visible{transform:translateY(-50%) translate(-.12em)}.lightbox__nav--next:hover,.lightbox__nav--next:focus-visible{transform:translateY(-50%) translate(.12em)}.lightbox__close{position:absolute;top:max(1rem,var(--safe-top));right:max(1rem,var(--safe-right));z-index:3;min-height:44px;padding:0 .85rem;color:var(--paper);letter-spacing:var(--tracking-label);text-transform:uppercase;font-size:var(--fs-label)}@media(max-width:767px){.lightbox{padding:max(3.5rem,calc(var(--safe-top) + 2.75rem)) max(2.75rem,var(--safe-right)) max(1rem,var(--safe-bottom)) max(2.75rem,var(--safe-left))}.lightbox img{max-width:calc(100vw - 5.6rem);max-height:min(80svh,calc(100svh - 5.25rem))}.lightbox__nav{width:2.75rem;height:3.15rem}.lightbox__nav svg{width:1.2rem;height:1.2rem}.nav{flex-wrap:nowrap;gap:.25rem .4rem}.nav__links{position:static;transform:none;flex:1 1 auto;flex-wrap:nowrap;justify-content:center;min-width:0}.nav a{min-height:44px}}@media(max-width:479px){.nav{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.08rem .15rem;min-height:44px;padding:.12rem .7rem .12rem .55rem;width:min(calc(100% - 1.25rem - var(--safe-left) - var(--safe-right)),var(--nav-max));max-width:calc(100% - 1.25rem)}.nav__brand-last{display:none}.nav a.nav__brand{flex:0 0 auto;max-width:none;overflow:visible;min-height:44px;padding:0 .08rem;line-height:1}.nav__item{flex-shrink:1}.nav__links{flex:1 1 auto;flex-wrap:nowrap;justify-content:center;gap:0;width:auto;min-width:0}.nav__links a{padding:0 .18rem;min-width:0;min-height:44px}.nav__end{gap:.12rem;flex:0 0 auto}.nav a.nav__ig{display:inline-flex;width:44px;min-width:44px;min-height:44px}.nav a.nav__book{display:inline-flex;flex:0 0 auto;min-width:44px;min-height:36px;padding:0 .45rem;color:var(--ink);background:transparent}.nav a.nav__book:hover,.nav a.nav__book:focus-visible{background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink)}}@media(max-width:359px){.nav{padding:.12rem .6rem .12rem .4rem;gap:.04rem}.nav__dot{padding:0 .04rem}.nav__links a{padding:0 .12rem}.nav a.nav__book{padding:0 .35rem}}@media(prefers-reduced-motion:reduce){.nav{animation:none;transform:translate(-50%)}.lightbox__nav,.lightbox__nav--prev:hover,.lightbox__nav--prev:focus-visible,.lightbox__nav--next:hover,.lightbox__nav--next:focus-visible{transition:none;transform:translateY(-50%)}}.home-bridge{position:relative;z-index:1;isolation:isolate;background-color:var(--paper);max-width:100%;display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"hero" "featured";height:100svh;min-height:100svh;max-height:100svh;overflow:visible}.hero{--hero-name-size: clamp(2.5rem, min(13.5vw, 12.5svh), 7rem);grid-area:hero;position:relative;display:flex;flex-direction:column;min-height:0;height:100%;max-width:100%;padding:calc(var(--nav-h) + 1.35rem + var(--safe-top)) var(--gutter) 0;overflow:visible;background-color:transparent;container-type:inline-size;container-name:hero}.hero-copy{position:relative;z-index:var(--z-identity)}.hero-kicker{max-width:22rem;font-family:var(--font-sans);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-soft)}.hero-intro{--intro-from-y: .8em;max-width:36rem;margin-top:clamp(.35rem,1.5svh,1rem);font-family:var(--font-display);font-style:italic;font-size:var(--fs-intro);font-weight:400;line-height:var(--lh-intro);color:var(--ink)}.hero-intro__glyphs{display:inline}.hero-intro__glyph{display:inline-block;animation:intro-glyph var(--dur-char) var(--ease-out) both}@keyframes intro-glyph{0%{opacity:0;transform:translateY(var(--intro-from-y, .8em))}to{opacity:1;transform:translateY(0)}}.hero-name{position:relative;z-index:var(--z-identity);display:flex;flex:0 0 auto;flex-direction:column;flex-wrap:nowrap;row-gap:0;margin-top:clamp(.45rem,2svh,1.2rem);max-width:100%;overflow:visible;padding-right:.12em;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--hero-name-size);line-height:var(--lh-display);letter-spacing:-.04em}.hero-name>span{display:block;max-width:100%;overflow:visible;white-space:nowrap;animation:rise-beat var(--dur-char) var(--ease-out) both}.hero-name__char{display:inline-block}.hero-meta{position:relative;z-index:auto;display:grid;flex:1 1 auto;grid-template-areas:"measures" "." "actions" ".";grid-template-rows:auto minmax(.5rem,.75fr) auto minmax(.85rem,1.2fr);align-content:stretch;gap:0;margin-top:clamp(.7rem,3svh,2rem);max-width:16.5rem;min-height:0}.hero-meta .measures{grid-area:measures}.hero-meta .hero-actions{grid-area:actions}@keyframes rise-beat{0%{opacity:0;transform:translateY(.85rem)}to{opacity:1;transform:none}}.measures{position:relative;z-index:auto;display:grid;width:min(11.35rem,100%);max-width:100%;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);column-gap:clamp(.42rem,.9vw,.68rem);row-gap:clamp(.45rem,1.3svh,.85rem);mix-blend-mode:normal;color:var(--ink)}.measures div{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.12rem;width:80%;padding:0 0 .45rem;border:0}.measures div:after{content:"";position:absolute;left:0;right:auto;bottom:0;z-index:0;width:80%;height:var(--hairline);pointer-events:none;background:var(--line-faint)}.measures div:nth-child(2),.measures div:nth-child(4){justify-self:start}.measures div:last-child{grid-column:1}.measures dt,.measures dd{position:relative;z-index:var(--z-meta);animation:rise-beat var(--dur-char) var(--ease-out) both;animation-delay:inherit}.measures dt{font-family:var(--font-sans);font-size:clamp(.68rem,.22vw + .64rem,.8rem);font-weight:500;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-soft)}.measures dd{font-family:var(--font-sans);font-size:clamp(1rem,.28vw + .94rem,1.18rem);font-weight:400;color:var(--ink)}.cta{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-width:44px;min-height:44px;padding:0 1.35rem;border:var(--hairline) solid var(--ink);border-radius:var(--radius-btn);background:var(--paper);font-family:var(--font-sans);font-size:var(--fs-label);font-weight:400;letter-spacing:var(--tracking-btn);text-transform:uppercase;transition:background var(--dur-hover) var(--ease),color var(--dur-hover) var(--ease),border-color var(--dur-hover) var(--ease)}.cta:hover{background:var(--ink);color:var(--paper)}.hero-actions{position:relative;z-index:var(--z-meta);display:flex;flex-direction:column;flex-wrap:nowrap;align-items:flex-start;align-self:start;width:100%;max-width:100%;gap:clamp(.55rem,1.8svh,.9rem)}@container hero (min-width: 54rem){.hero-actions{flex-direction:row;flex-wrap:nowrap;align-items:center;width:max-content;gap:.85rem 1.35rem}}.hero-actions .cta,.hero-actions .cta-text{animation-delay:inherit}.hero-actions .cta{position:relative;z-index:var(--z-meta);animation:rise-beat var(--dur-char) var(--ease-out) both}.cta-text{position:relative;z-index:var(--z-meta);display:inline-flex;align-items:center;gap:.4em;min-width:44px;min-height:44px;padding-inline:.1rem;font-family:var(--font-sans);font-size:var(--fs-label);font-weight:400;letter-spacing:var(--tracking-btn);text-transform:uppercase;white-space:nowrap;color:var(--ink);text-decoration:none;mix-blend-mode:normal;animation:rise-beat var(--dur-char) var(--ease-out) both;transition:color var(--dur-hover) var(--ease)}.cta-text span{display:inline-block;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.32em;text-decoration-color:color-mix(in srgb,var(--ink) 38%,transparent);transition:transform .45s var(--ease),letter-spacing .45s var(--ease),text-decoration-color var(--dur-hover) var(--ease),text-underline-offset var(--dur-hover) var(--ease)}.cta-text:after{content:"→";font-size:1.05em;font-weight:400;letter-spacing:0;line-height:1;text-decoration:none;transition:transform .45s var(--ease)}.cta-text:hover,.cta-text:focus-visible{color:var(--ink)}.cta-text:hover span,.cta-text:focus-visible span{letter-spacing:.14em;transform:translate(.1em);text-decoration-color:var(--ink);text-underline-offset:.42em}.cta-text:hover:after,.cta-text:focus-visible:after{transform:translate(.32em)}.hero-cutout{grid-area:hero;position:absolute;left:0;right:0;top:auto;z-index:var(--z-cutout);display:flex;justify-content:center;width:auto;max-width:min(78vw,34rem);height:calc(clamp(11.5rem,50%,30rem) + var(--featured-band));max-height:none;margin:0 auto;bottom:calc(-1 * var(--featured-band));pointer-events:none;opacity:1;mix-blend-mode:normal;background:transparent;background-color:transparent}.hero-cutout__motion{display:block;height:100%;width:max-content;max-width:100%;pointer-events:none}.hero-cutout img{display:block;position:relative;left:10px;width:auto;height:100%;max-width:100%;pointer-events:none;background:transparent;background-color:transparent;object-fit:contain;object-position:bottom center;opacity:1;mix-blend-mode:normal;filter:none;animation:cutout-in var(--dur-cutout-in) var(--ease-out) both}@keyframes cutout-in{0%{transform:translateY(var(--cutout-enter-y))}to{transform:translateY(0)}}.featured{grid-area:featured;position:relative;z-index:var(--z-featured);display:grid;gap:.22rem;flex-shrink:0;padding:.28rem 0 .45rem;min-height:var(--featured-band);border:0;outline:0;box-shadow:none;mix-blend-mode:normal;background:transparent;overflow:hidden}.featured__label{position:relative;z-index:1;margin:0;padding-inline:var(--gutter);font-family:var(--font-sans);font-size:var(--fs-label);font-weight:500;letter-spacing:var(--tracking-label);line-height:1.2;text-transform:uppercase;color:var(--ink-soft)}.featured__viewport{position:relative;z-index:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}.featured__track{display:flex;width:max-content;align-items:center;animation:featured-marquee 42s linear infinite}.featured__set{display:flex;flex:0 0 auto;align-items:baseline;gap:clamp(2.5rem,6vw,4.5rem);padding:0;margin:0;list-style:none;padding-right:clamp(2.5rem,6vw,4.5rem)}.featured__mark{flex:0 0 auto;color:var(--ink)}.featured__type{display:block;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--fs-display-md);letter-spacing:-.02em;line-height:1.15;white-space:nowrap}@keyframes featured-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.void{position:relative;z-index:0;height:var(--void-portfolio, clamp(6rem, 28svh, 14rem));background:transparent}.portfolio-head{position:relative;z-index:0;isolation:isolate;display:grid;justify-items:center;gap:var(--space-4);padding:.5rem var(--gutter) clamp(2rem,6vw,4.5rem);background:var(--paper);text-align:center}.portfolio-title{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--tracking-section)}.portfolio-hairline{width:min(100%,80rem);height:var(--hairline);background:var(--ink-heading);transform:scaleX(0);transform-origin:center;animation:hairline-in 1.1s var(--ease-out) .2s both}@keyframes hairline-in{to{transform:scaleX(1)}}.portfolio-credit{font-family:var(--font-sans);font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-soft)}.gallery--editorial{width:100%;max-width:100%;min-width:0;overflow-x:clip;align-items:center;gap:clamp(3rem,9vw,6.25rem)}.gallery--editorial .gallery__block,.gallery--editorial .gallery__block:nth-child(n){width:var(--gallery-col);max-width:100%;min-width:0;align-self:center}.gallery--editorial .gallery__item{width:100%;max-width:100%;min-width:0;padding:var(--frame-pad);border:1px solid var(--frame-ink)}.gallery--editorial .gallery__hit{display:flex;justify-content:center;width:100%;max-width:100%;min-width:0}.gallery--editorial .gallery__item img{display:block;width:100%;max-width:100%;height:auto;max-height:100vh;max-height:100dvh;max-height:var(--gallery-max-h);object-fit:contain;object-position:center}.gallery--editorial .gallery__fragment{max-width:min(100%,var(--max-quote))}.book{position:relative;z-index:12;display:grid;justify-items:center;gap:var(--space-3);padding:clamp(4rem,12vw,8rem) var(--gutter);background:var(--paper);text-align:center;scroll-margin-top:calc(var(--nav-h) + 1.5rem)}.book__title{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--fs-display-md);line-height:var(--lh-display)}.book__contacts{display:flex;flex-direction:column;align-items:center;gap:.1rem;max-width:22rem;font-family:var(--font-sans);font-size:var(--fs-ui);line-height:var(--lh-body);letter-spacing:.03em}.book__link{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 .35rem;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb,var(--ink) 28%,transparent)}.book__address{display:block;padding-block:.4rem;overflow-wrap:break-word}.book__contacts a:hover{color:var(--accent)}@media(min-width:768px){.hero-cutout{left:22%;right:0;bottom:calc(-1 * var(--featured-band));top:auto;max-width:min(52vw,38rem);height:calc(100% - var(--nav-h) - var(--safe-top) + var(--featured-band));max-height:none}.featured{padding:.4rem 0 .65rem;gap:.3rem}}@media(min-width:1024px){.hero{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto minmax(0,1fr);align-content:stretch;column-gap:2rem;padding:calc(var(--nav-h) + 2rem + var(--safe-top)) var(--gutter) 0}.hero-copy{grid-column:1}.hero-name{grid-column:1 / -1;flex-direction:row;flex-wrap:nowrap;column-gap:.22em;line-height:var(--lh-display);letter-spacing:var(--tracking-section);padding-inline:.08em .18em;padding-block:.06em;overflow:visible}.hero-meta{grid-column:1;align-self:stretch;margin-top:clamp(.7rem,3.2svh,2.1rem)}.hero-cutout{grid-area:hero;left:28%;right:0;top:auto;bottom:calc(-1 * var(--featured-band));width:auto;max-width:min(48vw,40rem);height:calc(100% - var(--nav-h) - var(--safe-top) + var(--featured-band));max-height:none}.featured{z-index:var(--z-featured)}.void{height:clamp(12rem,40svh,28rem)}.portfolio-head{padding-top:.5rem;padding-bottom:clamp(2.25rem,5vw,4.5rem)}}@media(min-width:1440px){.hero-cutout{left:32%;right:0;bottom:calc(-1 * var(--featured-band));width:auto;max-width:min(42vw,42rem);height:calc(100% - var(--nav-h) - var(--safe-top) + var(--featured-band));max-height:none}}@media(max-width:479px){.hero{min-height:0;padding-top:max(3.85rem,calc(var(--nav-h) + .85rem + var(--safe-top)));padding-bottom:0}.hero-name{line-height:.84;letter-spacing:-.05em}.hero-meta{position:relative;z-index:auto;max-width:12.5rem;padding:0}.featured{z-index:var(--z-featured);padding:.18rem 0 .32rem;gap:.12rem}.featured__type{font-size:clamp(1.15rem,4.4vw,1.55rem);line-height:1.1}}@media(max-height:740px)and (min-width:45rem){.hero-actions{flex-direction:row;flex-wrap:wrap;align-items:center;width:max-content;max-width:100%;gap:.45rem 1rem}}@media(max-height:500px){.hero{padding-top:calc(var(--nav-h) + .25rem + var(--safe-top))}.hero-intro{margin-top:.12rem;font-size:clamp(.9rem,3vw,1.1rem)}.hero-name{flex-direction:row;column-gap:.18em;margin-top:.12rem;font-size:clamp(1.35rem,min(5.5vw,9svh),2rem);line-height:.86}.hero-meta{flex:0 0 auto;grid-template-areas:"measures" "actions";grid-template-rows:auto auto;margin-top:.12rem;gap:.12rem}.measures{row-gap:.1rem}.measures div{padding-bottom:.08rem;gap:0}.hero-actions{flex-direction:row;flex-wrap:wrap;align-items:center;width:max-content;max-width:100%;gap:.4rem .9rem}}@media(max-width:767px)and (max-height:500px){.hero{min-height:0;padding-top:calc(var(--nav-h) + .35rem + var(--safe-top))}.hero-cutout{left:auto;right:2%;margin:0;max-width:min(42vw,18rem);height:calc(100% - var(--nav-h) + var(--featured-band));max-height:none;bottom:calc(-1 * var(--featured-band))}.featured{padding:.1rem 0 .22rem;gap:.08rem}.featured__type{font-size:1.15rem}}@media(prefers-reduced-motion:reduce){.hero-intro{--intro-from-y: 0}.hero-intro__glyph,.hero-name>span,.measures dt,.measures dd,.hero-actions,.hero-cutout img,.portfolio-hairline{animation:none!important;opacity:1;transform:none}.cta-text:after,.cta-text:hover:after,.cta-text:focus-visible:after,.cta-text span,.cta-text:hover span,.cta-text:focus-visible span{transition:none;transform:none;letter-spacing:inherit}.hero-cutout{will-change:auto;transform:none!important}.featured__track{animation:none;transform:none;width:100%;justify-content:center;flex-wrap:wrap}.featured__set[aria-hidden=true]{display:none}.featured__set{flex-wrap:wrap;justify-content:center;padding-right:0;gap:1.25rem 2.5rem}}.projects{position:relative;z-index:var(--z-portfolio);min-width:0;max-width:100%;overflow-x:clip;background:var(--paper);color:var(--ink)}.app--projects-index{min-height:100dvh;overflow:hidden}.app--projects-index .projects--index{min-height:100dvh}.app--projects .nav{top:calc(max(.75rem,var(--safe-top)) + var(--vv-offset-top, 0px));left:calc(50% + var(--vv-offset-left, 0px))}.projects--index{margin:0;padding:0;height:100dvh;max-height:100dvh;overflow:hidden;background:#000}.projects-index{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:0;width:100%;height:100%;min-height:100dvh}.project-tile{position:relative;display:block;min-width:0;min-height:0;overflow:hidden;color:#fff}.project-tile img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1);opacity:0;transition:transform .7s var(--ease-out),opacity .56s var(--ease)}.project-tile img.is-decoded{opacity:0}.projects-index.is-stagger-ready .project-tile img.is-decoded{opacity:1;transition:transform .7s var(--ease-out),opacity .56s var(--ease) calc(var(--tile-stagger, 0) * .2s)}.project-tile__name{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:2.75rem 1.15rem 1.1rem;background:linear-gradient(to top,rgb(0 0 0 / .62) 0%,rgb(0 0 0 / .18) 55%,transparent 100%);font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--fs-display-md);line-height:var(--lh-display);letter-spacing:-.02em;color:#fff;opacity:1;transform:none;pointer-events:none}.project-tile:hover img,.project-tile:focus-visible img,.project-tile:focus-within img{transform:scale(1.05)}@media(hover:hover)and (pointer:fine)and (min-width:1024px){.project-tile__name{opacity:0;transform:translateY(.35rem);transition:opacity .4s var(--ease-out),transform .4s var(--ease-out)}.project-tile:hover .project-tile__name,.project-tile:focus-visible .project-tile__name,.project-tile:focus-within .project-tile__name{opacity:1;transform:none}}@media(max-width:767px){html:has(.app--projects){overflow-anchor:none}html:has(.app--projects-index){overflow-anchor:none}.app--projects-index{min-height:0;overflow:visible;overflow-anchor:none}.app--projects-index .projects--index{min-height:0}.projects--index{height:auto;max-height:none;overflow:visible;overflow-anchor:none}.projects-index{display:flex;flex-direction:column;height:auto;min-height:0;overflow:visible;overflow-anchor:none}.project-tile{flex:0 0 calc(var(--projects-layout-h, 100svh) / 2);width:100%;height:calc(var(--projects-layout-h, 100svh) / 2);overflow-anchor:none}.project-tile__name{opacity:1;transform:none}}.projects--detail{padding-top:calc(var(--nav-h) + .75rem + var(--safe-top))}.projects--detail img,.projects--detail figure,.projects--detail .gallery,.projects--detail .gallery__block,.projects--detail .gallery__item,.projects--detail .gallery__hit{max-width:100%;min-width:0}.project-head{display:grid;gap:.65rem;min-width:0;padding:clamp(1.5rem,5vw,3.25rem) var(--gutter) clamp(1.25rem,4vw,2.5rem)}.project-name{max-width:100%;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--fs-display-md);line-height:var(--lh-display);letter-spacing:-.03em;overflow-wrap:break-word}.project-meta{display:flex;flex-wrap:wrap;gap:.45rem 1.4rem;font-family:var(--font-sans);font-size:var(--fs-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-soft)}.projects--detail .gallery--project{display:flex;flex-direction:column;align-items:center;gap:clamp(1.75rem,6vw,4rem);width:100%;max-width:100%;min-width:0;padding:0 var(--gutter) clamp(2rem,8vw,6rem);background:var(--paper)}.projects--detail .gallery--project .gallery__block,.projects--detail .gallery--project .gallery__block:nth-child(n){width:min(42rem,100%);max-width:100%;align-self:center}.projects--detail .gallery--project .gallery__item{width:100%;max-height:100dvh;margin:0;padding:var(--frame-pad);border:1px solid #000;background:var(--paper);overflow:hidden;box-sizing:border-box}.projects--detail .gallery--project .gallery__hit{display:flex;align-items:center;justify-content:center;width:100%}.projects--detail .gallery--project .gallery__item img{display:block;width:100%;max-width:100%;height:auto;max-height:calc(100dvh - var(--frame-pad) * 2 - 2px);object-fit:contain;object-position:center;opacity:0;transition:opacity .56s var(--ease)}.projects--detail .gallery--project .gallery__item img.is-decoded,.projects--detail .lightbox img.is-decoded{opacity:1}.projects--detail .lightbox img{opacity:0;transition:opacity .56s var(--ease)}@media(max-width:767px){.projects--detail .gallery--project .gallery__item{max-height:var(--projects-layout-h, 100svh)}.projects--detail .gallery--project .gallery__item img{max-height:calc(var(--projects-layout-h, 100svh) - var(--frame-pad) * 2 - 2px)}}@media(prefers-reduced-motion:reduce){.project-tile img,.project-tile__name,.projects--detail .gallery--project .gallery__item img,.projects--detail .lightbox img{transition:none}.project-tile:hover img,.project-tile:focus-visible img,.project-tile:focus-within img{transform:none}}@media(max-width:767px){.hero-cutout{top:auto!important;bottom:calc(-1 * var(--featured-band))!important;left:16%!important;right:-2%!important;margin:0!important;width:auto!important;height:calc(clamp(11.5rem,50%,30rem) + var(--featured-band))!important;max-height:none!important;z-index:var(--z-cutout)!important;opacity:1!important;pointer-events:none;mix-blend-mode:normal!important;background:transparent!important;background-color:transparent!important}.hero-cutout img{width:auto;height:100%;max-width:100%;object-fit:contain;object-position:bottom center;opacity:1!important;mix-blend-mode:normal!important;background:transparent;filter:none!important}.hero-meta{position:relative;z-index:auto;max-width:12.5rem}.featured{z-index:var(--z-featured)!important}}@media(max-width:479px){.hero-cutout{max-width:min(86vw,22rem)!important}.hero-cutout img{animation:none!important;transform:none!important}}@media(min-width:480px)and (max-width:767px){.hero-cutout{max-width:min(62vw,28rem)!important}}@media(max-width:767px)and (max-height:500px){.hero-cutout{left:auto!important;right:2%!important;margin:0!important;max-width:min(42vw,18rem)!important;height:calc(100% - var(--nav-h) + var(--featured-band))!important;max-height:none!important;bottom:calc(-1 * var(--featured-band))!important}}.home-bridge.hero-enter .hero-copy,.home-bridge.hero-enter .hero-name{z-index:28}.home-bridge.hero-enter:not(.hero-enter-placed) .hero-copy,.home-bridge.hero-enter:not(.hero-enter-placed) .hero-name{opacity:0}.home-bridge.hero-enter-placed .hero-copy,.home-bridge.hero-enter-placed .hero-name{animation-name:hero-identity-place;animation-duration:2.5s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:var(--hero-enter-seek, 0ms);animation-fill-mode:both;will-change:transform}@keyframes hero-identity-place{0%,28%{transform:translate3d(var(--hero-identity-dx, 0px),var(--hero-identity-dy, 0px),0)}to{transform:translateZ(0)}}.home-bridge.hero-enter .hero-intro__glyph,.home-bridge.hero-enter .hero-name__char{opacity:0;animation-name:hero-type-char;animation-duration:.42s;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-delay:calc(var(--hero-enter-seek, 0ms) + var(--type-at, 0ms));animation-fill-mode:both}@keyframes hero-type-char{0%{opacity:0;transform:translate3d(0,.22em,0)}to{opacity:1;transform:translateZ(0)}}.home-bridge.hero-enter .hero-name>span{animation:none;opacity:1;transform:none}.home-bridge.hero-enter .hero-name__char{display:inline-block}.home-bridge.hero-enter .measures,.home-bridge.hero-enter .hero-actions{animation:none}.home-bridge.hero-enter .measures>div{opacity:0;animation-name:hero-soft-rise;animation-duration:.72s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:calc(var(--hero-enter-seek, 0ms) + 3.2s + var(--reveal-at, 0ms));animation-fill-mode:both}.home-bridge.hero-enter .hero-actions .cta,.home-bridge.hero-enter .hero-actions .cta-text{opacity:0;animation-name:hero-soft-rise;animation-duration:.7s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-fill-mode:both}.home-bridge.hero-enter .hero-actions .cta{animation-delay:calc(var(--hero-enter-seek, 0ms) + 4.3s)}.home-bridge.hero-enter .hero-actions .cta-text{animation-delay:calc(var(--hero-enter-seek, 0ms) + 4.58s)}@keyframes hero-soft-rise{0%{opacity:0;transform:translate3d(0,.55rem,0)}to{opacity:1;transform:translateZ(0)}}.home-bridge.hero-enter .featured{opacity:0;animation-name:hero-fade-in;animation-duration:1.15s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:calc(var(--hero-enter-seek, 0ms) + 3.25s);animation-fill-mode:both}@keyframes hero-fade-in{0%{opacity:0}to{opacity:1}}.home-bridge.hero-enter .hero-cutout img,.home-bridge.hero-enter-done .hero-cutout img{animation:none}.home-bridge.hero-enter .hero-cutout__motion{animation-name:hero-cutout-in;animation-duration:1.3s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:calc(var(--hero-enter-seek, 0ms) + 2s);animation-fill-mode:both;will-change:transform,opacity}@keyframes hero-cutout-in{0%{opacity:0;transform:translate3d(var(--hero-cutout-from-x, 100vw),0,0)}to{opacity:1;transform:translateZ(0)}}.home-bridge.hero-enter-done .hero-intro__glyph,.home-bridge.hero-enter-done .hero-name>span,.home-bridge.hero-enter-done .hero-name__char,.home-bridge.hero-enter-done .measures,.home-bridge.hero-enter-done .measures>div,.home-bridge.hero-enter-done .hero-actions,.home-bridge.hero-enter-done .hero-actions .cta,.home-bridge.hero-enter-done .hero-actions .cta-text,.home-bridge.hero-enter-done .featured,.home-bridge.hero-enter-done .hero-cutout__motion{animation:none!important;opacity:1;transform:none;will-change:auto}.home-bridge.hero-enter-done .hero-copy,.home-bridge.hero-enter-done .hero-name{animation:none!important;transform:none;will-change:auto}@media(prefers-reduced-motion:reduce){.home-bridge.hero-enter .hero-copy,.home-bridge.hero-enter .hero-name,.home-bridge.hero-enter .hero-intro__glyph,.home-bridge.hero-enter .hero-name__char,.home-bridge.hero-enter .measures>div,.home-bridge.hero-enter .hero-actions .cta,.home-bridge.hero-enter .hero-actions .cta-text,.home-bridge.hero-enter .featured,.home-bridge.hero-enter .hero-cutout__motion{animation:none!important;opacity:1!important;transform:none!important}}
