:root{--ink:#000;--ink-2:#0d0d0d;--paper:#f5f5f3;--orange:#ff6a00;--orange-dark:#d95a00;--red:#e8432f;--blob-1:#ff8a3d;--blob-2:var(--orange);--blob-3:var(--orange-dark);--blob-4:#b34400;--hero-blob-dur:20s;--reveal-slow-dur:.85s;--reveal-slow-ease:cubic-bezier(.22, 1, .36, 1);--muted-on-ink:#9a9a9a;--line-on-ink:#f5f5f329;--font-display:"Big Shoulders Display", "Arial Narrow", sans-serif;--font-body:"Archivo", "Helvetica Neue", Arial, sans-serif;--font-mono:"Roboto Mono", "SFMono-Regular", Consolas, monospace;--measure:62ch}*,:before,:after{box-sizing:border-box}html{background:var(--ink);color-scheme:dark}body{background:var(--ink);color:var(--paper);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.55}img{max-width:100%;display:block}a{color:inherit}a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.wrap{max-width:80vw;margin-inline:auto}@media (width<=900px){.wrap{max-width:90vw}}@media (width<=520px){.wrap{max-width:94vw}}.bleed{width:100vw;margin-inline:calc(50% - 50vw)}.eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-on-ink);font-size:12px}.eyebrow.on-ink{color:var(--muted-on-ink)}.display-block{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.02em;margin:0;font-size:clamp(56px,14vw,160px);font-weight:800;line-height:.85}.display-block--md{font-size:clamp(40px,8vw,88px)}.editorial-copy{max-width:var(--measure);text-align:center;margin-inline:auto}[data-reveal]{opacity:0;transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1);transform:translateY(24px)}[data-reveal=slow]{transition-duration:var(--reveal-slow-dur);transition-timing-function:var(--reveal-slow-ease);transform:translateY(14px)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}a:focus-visible,button:focus-visible{outline:2px solid var(--orange);outline-offset:3px}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.001ms!important}.blob{animation:none!important}.blob-1{transform:translate(60px,40px)rotate(8deg)scale(1.12,.9)}.blob-2{transform:translate(-70px,50px)rotate(-9deg)scale(.92,1.14)}.blob-3{transform:translate(20px,-60px)rotate(6deg)scale(1.08,.93)}.blob-4{transform:translate(-80px,-35px)rotate(-7deg)scale(.95,1.1)}.blob-5{transform:translate(70px,-30px)rotate(9deg)scale(1.1,.92)}}.icon-arrow{background-color:currentColor;flex-shrink:0;width:14px;height:14px;display:inline-block;mask-position:50%;mask-size:contain;mask-repeat:no-repeat}.icon-arrow-left{mask-image:url(/images/left-arrow.svg)}.icon-arrow-right{mask-image:url(/images/right-arrow.svg)}.underline-hover{text-decoration:none;position:relative}.underline-hover:after{content:"";background:var(--orange);transform-origin:0;height:1px;transition:transform .3s;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.underline-hover:focus-visible:after,.underline-hover:active:after{transform:scaleX(1)}@media (hover:hover) and (pointer:fine){.underline-hover:hover:after{transform:scaleX(1)}}::view-transition-group(*){animation-duration:.6s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-group(.hero-img){z-index:1}::view-transition-group(hero-overlay){z-index:2}::view-transition-old(.hero-img),::view-transition-new(.hero-img){object-fit:cover;width:100%;height:100%}@keyframes hero-img-hold-out{0%,55%{opacity:1}to{opacity:0}}@keyframes hero-img-hold-in{0%,55%{opacity:0}to{opacity:1}}::view-transition-old(.hero-img){animation:.6s cubic-bezier(.22,1,.36,1) both hero-img-hold-out}::view-transition-new(.hero-img){animation:.6s cubic-bezier(.22,1,.36,1) both hero-img-hold-in}::view-transition-old(root),::view-transition-new(root){animation-duration:.3s;animation-timing-function:ease}@keyframes fade-out-to-black{to{opacity:0}}@keyframes fade-in-from-black{0%{opacity:0}}@keyframes overlay-fade-in{0%{opacity:0}}::view-transition-new(hero-overlay){animation:.3s cubic-bezier(.22,1,.36,1) backwards overlay-fade-in}html.transition-simple::view-transition-old(root){animation:.2s ease-in forwards fade-out-to-black}html.transition-simple::view-transition-new(root){animation:.22s ease-out .18s backwards fade-in-from-black}.lettermark-row{z-index:2;position:absolute;top:24px;left:0;right:0}.lettermark{text-decoration:none;display:inline-flex}.lettermark-mark{width:auto;height:80px;transition:transform .2s;display:block}@media (hover:hover) and (pointer:fine){.lettermark:hover .lettermark-mark{transform:scale(1.06)}}.lettermark:active .lettermark-mark{transform:scale(1.06)}@media (width<=900px){.lettermark-mark{height:40px}}.hero{height:100svh;color:var(--paper);background:var(--ink);isolation:isolate;align-items:flex-end;display:flex;position:relative;overflow:hidden}.hero-blobs{z-index:0;position:absolute;inset:0;overflow:hidden}.hero-blobs-svg{width:100%;height:100%;display:block}.blob{transform-box:fill-box;transform-origin:50%;will-change:transform;mix-blend-mode:screen}@keyframes hero-blob-drift-1{0%{transform:translate(0)rotate(0)scale(1)}25%{transform:translate(150px,90px)rotate(15deg)scale(1.2,.8)}50%{transform:translate(420px,230px)rotate(-10deg)scale(.85,1.28)}75%{transform:translate(180px,110px)rotate(10deg)scale(1.12,.92)}to{transform:translate(0)rotate(0)scale(1)}}@keyframes hero-blob-drift-2{0%{transform:translate(0)rotate(0)scale(1)}30%{transform:translate(-160px,110px)rotate(-12deg)scale(.85,1.22)}55%{transform:translate(-430px,240px)rotate(14deg)scale(1.22,.83)}80%{transform:translate(-190px,130px)rotate(-8deg)scale(.92,1.1)}to{transform:translate(0)rotate(0)scale(1)}}@keyframes hero-blob-drift-3{0%{transform:translate(0)rotate(0)scale(1)}20%{transform:translate(-60px,-80px)rotate(10deg)scale(1.15,.87)}48%{transform:translate(70px,-170px)rotate(-14deg)scale(.85,1.25)}74%{transform:translate(-30px,-90px)rotate(8deg)scale(1.1,.9)}to{transform:translate(0)rotate(0)scale(1)}}@keyframes hero-blob-drift-4{0%{transform:translate(0)rotate(0)scale(1)}35%{transform:translate(-180px,-70px)rotate(-16deg)scale(.88,1.2)}60%{transform:translate(-460px,-160px)rotate(12deg)scale(1.24,.82)}85%{transform:translate(-220px,-90px)rotate(-10deg)scale(.95,1.08)}to{transform:translate(0)rotate(0)scale(1)}}@keyframes hero-blob-drift-5{0%{transform:translate(0)rotate(0)scale(1)}22%{transform:translate(170px,-70px)rotate(13deg)scale(1.18,.85)}50%{transform:translate(440px,-160px)rotate(-15deg)scale(.83,1.27)}78%{transform:translate(200px,-90px)rotate(9deg)scale(1.08,.94)}to{transform:translate(0)rotate(0)scale(1)}}.blob-1{animation:hero-blob-drift-1 var(--hero-blob-dur) ease-in-out infinite}.blob-2{animation:hero-blob-drift-2 var(--hero-blob-dur) ease-in-out infinite;animation-delay:-3s}.blob-3{animation:hero-blob-drift-3 var(--hero-blob-dur) ease-in-out infinite;animation-delay:-9s}.blob-4{animation:hero-blob-drift-4 var(--hero-blob-dur) ease-in-out infinite;animation-delay:-13s}.blob-5{animation:hero-blob-drift-5 var(--hero-blob-dur) ease-in-out infinite;animation-delay:-6s}.hero-overlay{z-index:1;background:linear-gradient(#0000 22%,#00000029 48%,#00000073 72%,#000000d1 90%,#000 100%);position:absolute;inset:0}.hero-content{z-index:2;width:100%;padding-block:0 40px;position:relative}.hero-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.02em;color:#f5f5f3e6;mix-blend-mode:plus-lighter;margin:0 0 24px;font-size:clamp(88px,17vw,260px);font-weight:800;line-height:.86;position:relative}.hero-title-line{display:block}.hero .lede{color:#d9d9d7;width:50%;margin:0 0 28px;font-size:clamp(17px,1.6vw,20px)}@media (width<=900px){.hero .lede{width:100%}.hero-title{font-size:clamp(72px,20vw,160px)}.blob-4,.blob-5{display:none}}@media (width<=520px){.hero-title{font-size:clamp(56px,22vw,110px)}}.hero .lede a{color:var(--orange)}.hero .portrait-caption{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-on-ink);font-size:12px}.hero .portrait-caption .coords{margin-left:11px;display:inline-block}@media (width<=900px){.hero .portrait-caption .caption-sep{display:none}.hero .portrait-caption .coords{margin-left:0;display:block}}.section{padding-block:120px}@media (width<=900px){.section{padding-block:72px}}@media (width<=520px){.section{padding-block:48px}}.section-head{border-bottom:1px solid var(--line-on-ink);margin-bottom:32px;padding-bottom:16px}.work-grid{grid-template-columns:1fr;gap:88px;display:grid}@media (width<=900px){.work-grid{gap:56px}}.work-card{color:inherit;text-decoration:none;display:block}.work-card .thumb{aspect-ratio:16/9;background:var(--ink-2);border-radius:6px;position:relative;overflow:hidden}.work-card .thumb[data-cursor-logo]{cursor:none}.work-card .thumb:before,.mosaic-item:before{content:"";z-index:1;opacity:0;pointer-events:none;background:#00000014;transition:opacity .25s;position:absolute;inset:0}.work-card:focus-visible .thumb:before,.mosaic-item:focus-visible:before,.work-card:active .thumb:before,.mosaic-item:active:before{opacity:1}@media (hover:hover) and (pointer:fine){.work-card:hover .thumb:before,.mosaic-item:hover:before{opacity:1}}.work-card .thumb img{object-fit:cover;width:100%;height:100%}.trace-border{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.trace-border path{fill:none;stroke:url(#trace-gradient);stroke-width:8px;vector-effect:non-scaling-stroke;stroke-dasharray:100;stroke-dashoffset:100px;opacity:0}.work-card .trace-border path{stroke-width:16px}.work-card .work-card-info{padding-block:32px 0}.work-card .meta-row{width:50%;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-on-ink);align-items:center;gap:10px;font-size:12px;display:flex}.work-card .meta-row .divider-dot{background:var(--orange);border-radius:50%;width:4px;height:4px}.work-card h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.02em;margin:20px 0;font-size:clamp(40px,8vw,88px);font-weight:800;line-height:.85}.work-card p{width:50%;color:var(--muted-on-ink);margin:0}@media (width<=900px){.work-card .meta-row,.work-card p{width:100%}}.work-grid[data-reveal-group] .work-card:nth-child(2){transition-delay:60ms}.work-grid[data-reveal-group] .work-card:nth-child(3){transition-delay:.12s}.work-grid[data-reveal-group] .work-card:nth-child(4){transition-delay:.18s}.work-grid[data-reveal-group] .work-card:nth-child(5){transition-delay:.24s}.work-grid[data-reveal-group] .work-card:nth-child(6){transition-delay:.3s}.footer{background:var(--ink);color:var(--paper);border-top:1px solid var(--line-on-ink);padding-block:96px 32px}@media (width<=900px){.footer{padding-block:56px 28px}}.footer .wrap{text-align:center}.footer h2{margin:0 0 24px}.footer .lede{opacity:.86;margin:0 auto 28px}.footer .contact-line{font-family:var(--font-mono);align-items:baseline;gap:10px;font-size:15px;display:inline-flex}.footer .contact-line a{color:var(--orange)}.footer .legal{border-top:1px solid var(--line-on-ink);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-on-ink);flex-wrap:wrap;justify-content:center;gap:8px;margin-top:56px;padding-top:20px;font-size:11px;display:flex}@media (width<=900px){.footer .legal{margin-top:32px}}.project-hero{min-height:100svh;color:var(--paper);align-items:flex-end;display:flex;position:relative;overflow:hidden}.project-hero-media{z-index:0;background:var(--ink-2);position:absolute;inset:0}.project-hero-media img{object-fit:cover;will-change:transform;view-transition-class:hero-img;width:100%;height:100%}.project-hero-overlay{z-index:1;pointer-events:none;background:linear-gradient(#0000 0%,#0000000f 15%,#0003 30%,#00000061 42%,#00000094 51%,#000000bd 62%,#000000de 74%,#000000f2 85%,#000 100%);width:100%;height:60svh;position:absolute;bottom:0;left:0}.project-intro{z-index:2;margin-top:-29svh;position:relative}.project-intro .project-meta{margin-top:40px}.project-intro .project-body{padding-block:34px 72px}.project-meta{width:50%;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-on-ink);align-items:center;gap:10px;margin:48px 0 0;font-size:12px;display:flex}@media (width<=900px){.project-meta{width:100%}}.project-meta .divider-dot{background:var(--orange);border-radius:50%;width:4px;height:4px}.project-intro h1{text-shadow:0 2px 24px #000000bf,0 1px 4px #0009;margin:0}.back-nav{z-index:50;background:0 0;padding-block:22px;transition:background-color .3s,backdrop-filter .3s;position:fixed;top:0;left:0;right:0}.back-nav.scrolled{backdrop-filter:blur(8px);background:#000000db}.back-nav-inner{justify-content:space-between;align-items:center;gap:24px;display:flex}.back-link{color:#fff;backdrop-filter:blur(4px);border:1px solid var(--line-on-ink);width:44px;height:44px;transition:background .2s ease, backdrop-filter .3s ease, border-color .15s ease, color .15s ease, opacity var(--reveal-slow-dur) var(--reveal-slow-ease), transform var(--reveal-slow-dur) var(--reveal-slow-ease);background:#0006;border-radius:50%;justify-content:center;align-items:center;text-decoration:none;transition-delay:0s,0s,0s,0s,.5s,.5s;display:inline-flex;position:relative}.back-link .icon-arrow{width:18px;height:18px}.back-nav.scrolled .back-link{backdrop-filter:none;background:0 0;border-color:#0000}@media (hover:hover) and (pointer:fine){.back-nav.scrolled .back-link:hover,.back-link:hover{backdrop-filter:blur(4px);border-color:var(--orange);color:var(--orange);background:#000c}}.back-nav.scrolled .back-link:active,.back-link:active{backdrop-filter:blur(4px);border-color:var(--orange);color:var(--orange);background:#000c}.back-nav-title{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-on-ink);white-space:nowrap;text-overflow:ellipsis;opacity:0;font-size:12px;transition:opacity .3s,transform .3s;overflow:hidden;transform:translateY(-4px)}.back-nav.scrolled .back-nav-title{opacity:1;transform:translateY(0)}.project-body{width:50%;padding-block:72px;font-size:19px}.project-body p{margin:0 0 22px}@media (width<=900px){.project-body{width:100%;padding-block:44px}.project-intro .project-body{padding-block:20px 44px}}.work-section-head{border-bottom:1px solid var(--line-on-ink);max-width:80vw;margin:112px auto 0;padding-bottom:20px}.work-section-head .eyebrow{margin-bottom:12px;display:block}.work-section-head h2{margin:0}.work-section-note{max-width:var(--measure);color:var(--muted-on-ink);margin:18px 0 0;font-size:17px;line-height:1.5}@media (width<=900px){.work-section-head{max-width:90vw;margin:64px auto 0}}@media (width<=520px){.work-section-head{margin:48px auto 0}}.mosaic{--row-h:560px;flex-wrap:wrap;gap:10px;max-width:80vw;margin-block:48px 88px;margin-inline:auto;display:flex}.mosaic-item{height:var(--row-h);aspect-ratio:var(--ar);background:var(--ink-2);cursor:zoom-in;border:0;border-radius:2px;flex-grow:1;padding:0;display:block;position:relative;overflow:hidden}.mosaic-item img,.mosaic-item video{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block;position:absolute;inset:0}.mosaic-item video{pointer-events:none}@media (hover:hover) and (pointer:fine){.mosaic-item:hover img,.mosaic-item:hover video{transform:scale(1.03)}}.mosaic-play{z-index:1;backdrop-filter:blur(3px);width:36px;height:36px;color:var(--paper);pointer-events:none;background:#0000008c;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:12px;right:12px}@media (width<=900px){.mosaic{--row-h:400px;max-width:90vw;margin-block:32px 56px}}@media (width<=520px){.mosaic{--row-h:300px;gap:8px;max-width:94vw;margin-block:24px 40px}}.lightbox{z-index:100;background:#000000f5;justify-content:center;align-items:center;padding:40px;display:none;position:fixed;inset:0}.lightbox.is-open{display:flex}.lightbox-figure{flex-direction:column;align-items:center;gap:16px;max-width:min(1100px,90vw);max-height:86vh;margin:0;display:flex}.lightbox-img,.lightbox-video{object-fit:contain;width:auto;max-width:100%;max-height:78vh;box-shadow:0 30px 80px #00000080}.lightbox-caption{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-on-ink);text-align:center;font-size:12px}.lightbox-counter{font-family:var(--font-mono);letter-spacing:.1em;color:var(--muted-on-ink);font-size:11px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.lightbox-prev .icon-arrow,.lightbox-next .icon-arrow{width:18px;height:18px}.lightbox-close,.lightbox-prev,.lightbox-next{border:1px solid var(--line-on-ink);width:44px;height:44px;color:var(--paper);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:20px;line-height:1;transition:border-color .15s,color .15s;display:flex;position:absolute}@media (hover:hover) and (pointer:fine){.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{border-color:var(--orange);color:var(--orange)}}.lightbox-close:active,.lightbox-prev:active,.lightbox-next:active{border-color:var(--orange);color:var(--orange)}.lightbox-close{top:24px;right:24px}.lightbox-prev{top:50%;left:24px;transform:translateY(-50%)}.lightbox-next{top:50%;right:24px;transform:translateY(-50%)}@media (width<=640px){.lightbox{padding:16px}.lightbox-prev{left:8px}.lightbox-next{right:8px}.lightbox-close{top:12px;right:12px}}.project-nav{border-top:1px solid var(--line-on-ink);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;padding-block:28px 56px;font-size:12px;display:flex}@media (width<=900px){.project-nav{padding-block:20px 36px}}.project-nav a{color:var(--muted-on-ink);text-decoration:none}@media (hover:hover) and (pointer:fine){.project-nav a:hover{color:var(--paper)}}.project-nav a:active{color:var(--paper)}.toast{z-index:100;backdrop-filter:blur(4px);border:1px solid var(--line-on-ink);color:var(--paper);font-family:var(--font-body);white-space:nowrap;opacity:0;pointer-events:none;background:#000c;border-radius:8px;padding:12px 22px;font-size:14px;transition:opacity .3s,transform .3s;position:fixed;bottom:32px;left:50%;transform:translate(-50%,20px)}.toast.is-visible{opacity:1;transform:translate(-50%)}.hero-cursor{z-index:200;backdrop-filter:blur(4px);pointer-events:none;opacity:0;will-change:transform;background:#0009;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;transition:opacity .15s;display:flex;position:fixed;top:0;left:0}.hero-cursor.is-visible{opacity:1}.hero-cursor-logo{object-fit:contain;filter:drop-shadow(0 2px 4px #0006);width:40px;height:40px}@media (width<=520px){.eyebrow,.work-card .meta-row,.project-meta,.hero .portrait-caption,.project-nav,.lightbox-caption,.back-nav-title{font-size:13px}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
