/* Motion is an enhancement: all content remains readable without JavaScript. */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--hero-shift:0px;--band-shift:0px}
.reading-progress{position:fixed;z-index:60;top:0;left:0;width:100%;height:2px;background:#84886b;transform:scaleX(var(--reading-progress,0));transform-origin:left;pointer-events:none}
.header{position:relative;z-index:10}.header-tools{display:flex;align-items:center;gap:26px}.motion-toggle{display:flex;align-items:center;justify-content:center;border:1px solid #bcbeb0;border-radius:50%;background:transparent;width:31px;height:31px;padding:0;position:relative}.motion-toggle[hidden]{display:none}.motion-toggle:hover{background:#e2e4d5}.motion-toggle .play-icon{display:none}.motion-toggle.is-paused .pause-icon{display:none}.motion-toggle.is-paused .play-icon{display:block}.motion-toggle-label{position:absolute;right:0;top:calc(100% + 9px);white-space:nowrap;background:var(--ink);color:var(--paper);font-size:10px;padding:7px 9px;opacity:0;pointer-events:none;transition:opacity .15s}.motion-toggle:hover .motion-toggle-label,.motion-toggle:focus-visible .motion-toggle-label{opacity:1}.header nav a{position:relative}.header nav a:after{content:'';position:absolute;bottom:5px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease-out)}.header nav a:hover:after,.header nav a[aria-current='location']:after{transform:scaleX(1);transform-origin:left}.nav-dot{transition:opacity .3s}.header nav a:not(.active) .nav-dot{opacity:0}
.hero-copy h1>.hero-line{display:block;overflow:clip;padding-bottom:.12em;margin-bottom:-.12em;line-height:.92}.hero-copy h1>.hero-line:last-child{line-height:1.04;padding-bottom:.18em;margin-bottom:-.18em}.hero-line>span,.hero-line>em{display:block;transform-origin:left bottom}.hero-window{position:relative;overflow:hidden;background:#151612;isolation:isolate;transform:perspective(1000px) rotateX(var(--art-rx,0deg)) rotateY(var(--art-ry,0deg));transition:transform 1s var(--ease-out)}.hero-window img{transform:scale(1.08);will-change:auto}.art-corner{position:absolute;width:18px;height:18px;opacity:.5;pointer-events:none}.art-corner-start{left:19px;top:19px;border-top:1px solid #f3f1ea;border-left:1px solid #f3f1ea}.art-corner-end{bottom:19px;right:19px;border-bottom:1px solid #f3f1ea;border-right:1px solid #f3f1ea}
.motion-enabled .hero-line>span,.motion-enabled .hero-line>em{animation:title-in 1.15s var(--ease-out) both}.motion-enabled .hero-line:nth-child(2)>span{animation-delay:.1s}.motion-enabled .hero-line:nth-child(3)>em{animation-delay:.2s}.motion-enabled .hero-art{animation:art-in 1.5s var(--ease-out) .12s both}.motion-enabled .hero-window img{animation:art-drift 18s ease-in-out infinite alternate}.motion-enabled .hero-caption,.motion-enabled .hero-top{animation:soft-in 1s var(--ease-out) .5s both}.motion-enabled .hero-copy h1{transform:translate3d(0,var(--hero-shift),0)}.hero-quiet .hero-window img{animation-play-state:paused!important}.circle-link{transition:transform .65s var(--ease-out),background .3s}.motion-enabled .circle-link:hover{transform:translate3d(var(--magnet-x,0px),var(--magnet-y,0px),0);background:#daddc8}.circle-link svg{transition:transform .5s var(--ease-out)}.circle-link:hover svg{transform:rotate(-45deg)}
.kinetic-band{margin-top:78px;padding:30px 0 38px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);contain:layout paint}.kinetic-track{display:flex;align-items:center;gap:5vw;width:max-content;transform:translate3d(var(--band-shift),0,0);padding-left:var(--gutter);font-size:clamp(50px,6.8vw,108px);letter-spacing:-.06em;line-height:1.18;white-space:nowrap}.kinetic-track>span{display:block}.kinetic-mark{font-size:.49em;letter-spacing:-.07em;border:1px solid #babdae;width:1.9em;height:1.9em;display:grid!important;place-items:center;transform:rotate(var(--mark-rotation,-6deg));line-height:1;color:#6d7258}.kinetic-band+.work{padding-top:84px}
.motion-enabled [data-reveal]{opacity:0;transform:translate3d(0,38px,0);transition:opacity .8s var(--ease-out),transform 1.1s var(--ease-out)}.motion-enabled [data-reveal].is-revealed{opacity:1;transform:none}.motion-enabled .project-card .project-image{clip-path:inset(6% 0 6% 0);transition:clip-path 1.2s var(--ease-out)}.motion-enabled .project-card.is-revealed .project-image{clip-path:inset(0)}.motion-enabled .project-card .project-meta{transition:transform .9s var(--ease-out) .08s}.motion-enabled .project-card:not(.is-revealed) .project-meta{transform:translateY(12px)}.project-arrow{transition:transform .5s var(--ease-out)}.project-open:hover .project-arrow{transform:translate(4px,-4px)}.project-image{isolation:isolate}.project-image img{transition:transform 1.2s var(--ease-out)}.motion-enabled .project-open:hover .project-image img{transform:translate3d(var(--image-x,0px),var(--image-y,0px),0) scale(1.035)}.filter{transition:background .25s,color .25s,border-color .25s}.disciplines summary h3{transition:transform .5s var(--ease-out)}.disciplines summary:hover h3{transform:translateX(8px)}.disciplines details[open] p,.bio-more[open] p{animation:soft-in .45s var(--ease-out) both}.footer-wordmark{transform:translate3d(0,var(--footer-shift,0px),0)}.footer-cta span{transition:transform .4s var(--ease-out)}.footer-cta:hover span{transform:translate(5px,-5px)}
.project-cursor{position:fixed;top:0;left:0;z-index:35;width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:var(--paper);color:var(--ink);font-size:11px;text-align:center;line-height:1.5;pointer-events:none;opacity:0;transform:translate3d(var(--cursor-x,-100px),var(--cursor-y,-100px),0) translate(-50%,-50%);transition:opacity .2s,scale .4s var(--ease-out);scale:.85;box-shadow:0 6px 26px #0001}.project-cursor.is-visible{opacity:1;scale:1}.project-cursor span{display:block;font-size:20px}.project-cursor>div{transform:rotate(-8deg)}
.motion-enabled dialog[open]{animation:dialog-in .6s var(--ease-out) both}.motion-enabled dialog[open]::backdrop{animation:backdrop-in .5s ease both}.motion-enabled dialog.is-closing{animation:dialog-out .26s ease both}.motion-enabled dialog.is-closing::backdrop{animation:backdrop-out .26s ease both}.motion-enabled .dialog-body.case-entering{animation:case-in .55s var(--ease-out) both}.dialog-bottom button{transition:opacity .2s}.dialog-bottom button:hover{opacity:.55}.dialog-counter{font-family:var(--mono);font-size:10px;color:var(--muted);margin-left:auto;margin-right:35px}
@keyframes title-in{from{transform:translateY(115%) rotate(4deg)}to{transform:translateY(0) rotate(0)}}
@keyframes art-in{from{clip-path:inset(10% 0 10% 0);opacity:0;transform:translateY(32px)}to{clip-path:inset(0);opacity:1;transform:none}}
@keyframes art-drift{from{transform:scale(1.08) translate3d(-1%,.6%,0)}to{transform:scale(1.17) translate3d(1.5%,-1.2%,0)}}
@keyframes soft-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes dialog-in{from{opacity:0;transform:translateY(60px) scale(.97)}to{opacity:1;transform:none}}
@keyframes dialog-out{to{opacity:0;transform:translateY(35px) scale(.98)}}
@keyframes backdrop-in{from{background:#17191300;backdrop-filter:blur(0)}to{background:#171913b8;backdrop-filter:blur(7px)}}
@keyframes backdrop-out{to{background:#17191300;backdrop-filter:blur(0)}}
@keyframes case-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(hover:hover) and (pointer:fine){.motion-enabled .project-image:hover{cursor:none}.motion-enabled .project-image:hover .view-project{opacity:0}.motion-enabled .project-open:focus-visible .view-project{opacity:1}}
@media(max-width:1000px){.header-tools{gap:15px}.header-location{display:none}.header nav{gap:24px}.kinetic-band{margin-top:60px}.kinetic-track{gap:34px}}
@media(max-width:700px){.header{gap:12px}.header nav{gap:16px;font-size:11px}.header-tools{gap:0}.motion-toggle{height:28px;width:28px}.hero-copy h1>.hero-line{line-height:.9}.hero-copy h1>.hero-line:last-child{line-height:1.08}.hero-window{transform:none!important}.motion-enabled .hero-copy h1{transform:none}.kinetic-band{margin-top:48px;padding:24px 0 29px}.kinetic-track{font-size:53px;gap:30px}.kinetic-band+.work{padding-top:64px}.art-corner-start{left:14px;top:14px}.art-corner-end{right:14px;bottom:14px}.project-cursor{display:none}.dialog-counter{margin-right:18px}.motion-enabled dialog[open]{animation-name:mobile-dialog-in}.motion-enabled dialog.is-closing{animation-name:mobile-dialog-out}.footer-wordmark{transform:none}.motion-enabled [data-reveal]{transform:translate3d(0,22px,0)}.motion-enabled [data-reveal].is-revealed{transform:none}}
@keyframes mobile-dialog-in{from{opacity:.5;transform:translateY(65px)}to{opacity:1;transform:none}}
@keyframes mobile-dialog-out{to{opacity:0;transform:translateY(45px)}}
html.motion-paused{scroll-behavior:auto}.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation:none!important;transition:none!important}.motion-paused [data-reveal]{opacity:1!important;transform:none!important}.motion-paused .project-image{clip-path:none!important}.motion-paused .hero-copy h1,.motion-paused .hero-window,.motion-paused .footer-wordmark{transform:none!important}.motion-paused .project-cursor{display:none}.motion-paused .hero-window img{transform:scale(1.08)}
@media(prefers-reduced-motion:reduce){.hero-window,.hero-copy h1,.footer-wordmark,.kinetic-track{transform:none!important}.hero-window img{animation:none!important;transform:none!important}[data-reveal]{opacity:1!important;transform:none!important}.project-image{clip-path:none!important}.project-cursor{display:none!important}}

dialog.is-closing{pointer-events:none}.motion-toggle:disabled{cursor:default;opacity:.55}

.work{overflow-anchor:none}.motion-toggle:after{content:"";position:absolute;inset:-7px}
