@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.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}:root{--bg:#08080a;--bg-elev:#0f0f13;--fg:#f2f0ec;--fg-dim:#a3a3ad;--muted:#7c7c88;--line:#f2f0ec1f;--line-soft:#f2f0ec0f;--accent:#ff5c26;--accent-cool:#6f7dff;--font-sans:"Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--gutter:clamp(1.25rem, 4vw, 4.5rem);--section-pad:clamp(6rem, 18vh, 12rem);--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:auto}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.5;overflow-x:hidden}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.mono{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.7rem}::selection{background:var(--accent);color:var(--bg)}.webgl{z-index:0;pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity 1.2s var(--ease-out);display:block;position:fixed;inset:0}body.webgl-ready .webgl{opacity:1}.fallback-bg{z-index:0;pointer-events:none;opacity:0;transition:opacity 1.2s var(--ease-out);background:radial-gradient(60vw 60vw at 70% 15%, #6f7dff2e, transparent 60%), radial-gradient(50vw 50vw at 20% 80%, #ff5c2624, transparent 62%), var(--bg);position:fixed;inset:0}body.webgl-fallback .fallback-bg{opacity:1}.grain{z-index:1;pointer-events:none;opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");animation:6s steps(6,end) infinite grain-shift;position:fixed;inset:-50%}@keyframes grain-shift{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-2%)}80%{transform:translate(3%,1%)}to{transform:translate(0)}}.loader{z-index:100;background:var(--bg);place-items:center;display:grid;position:fixed;inset:0}.loader.is-done{pointer-events:none}html[data-visited] .loader{display:none}.loader__inner{align-items:center;gap:1rem;width:min(28rem,72vw);display:flex}.loader__label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim);white-space:nowrap;font-size:.7rem}.loader__bar{background:var(--line);flex:1;height:1px;overflow:hidden}.loader__fill{background:var(--accent);width:0%;height:100%;display:block}.loader__pct{font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;min-width:2.5ch;font-size:.7rem}.site-header{z-index:20;padding:clamp(1rem, 2.4vw, 1.75rem) var(--gutter);mix-blend-mode:difference;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.site-header__mark{letter-spacing:.02em;font-size:.95rem;font-weight:700}.site-header__mark span{color:var(--accent)}.site-header__nav{gap:clamp(1rem,2.5vw,2.25rem);display:flex}.site-header__nav a{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim);transition:color .4s var(--ease-out);padding-bottom:2px;font-size:.7rem;position:relative}.site-header__nav a:after{content:"";transform-origin:100%;width:100%;height:1px;transition:transform .5s var(--ease-out);background:currentColor;position:absolute;bottom:0;left:0;transform:scaleX(0)}.site-header__nav a:hover{color:var(--fg)}.site-header__nav a:hover:after{transform-origin:0;transform:scaleX(1)}main{z-index:10;position:relative}.section{padding:var(--section-pad) var(--gutter);flex-direction:column;justify-content:center;min-height:100vh;display:flex;position:relative}.section__label{color:var(--accent);margin:0 0 clamp(2rem,5vw,3.5rem)}.section--hero{justify-content:space-between;padding-top:clamp(7rem,18vh,10rem);padding-bottom:clamp(2rem,6vh,3.5rem)}.hero__meta{justify-content:space-between;gap:1rem;display:flex}.hero__title{letter-spacing:-.045em;text-transform:uppercase;margin:0;font-size:clamp(3rem,15vw,13rem);font-weight:700;line-height:.86}.hero__title .line{display:block;overflow:hidden}.hero__title .line:nth-child(2){padding-left:clamp(0rem,12vw,9rem)}.hero__title .line__inner{will-change:transform;display:block}.hero__foot{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;display:flex}.hero__roles{color:var(--fg-dim);margin:0}.hero__roles .sep{color:var(--accent);margin:0 .6em}.scroll-cue{align-items:center;gap:.75rem;display:flex}.scroll-cue__line{background:var(--line);width:4rem;height:1px;display:block;position:relative;overflow:hidden}.scroll-cue__line:after{content:"";background:var(--accent);animation:cue-slide 2.4s var(--ease-out) infinite;position:absolute;inset:0;transform:translate(-100%)}@keyframes cue-slide{0%{transform:translate(-100%)}55%{transform:translate(0)}to{transform:translate(100%)}}.brief__body{max-width:56rem}.brief__lead{letter-spacing:-.02em;margin:0 0 2rem;font-size:clamp(1.35rem,3.4vw,3rem);font-weight:500;line-height:1.22}.brief__lead em{color:var(--accent);font-style:normal}.brief__sub{max-width:34rem;color:var(--fg-dim);margin:0;font-size:clamp(.95rem,1.4vw,1.15rem);line-height:1.6}.brief__stack{flex-wrap:wrap;gap:.5rem;margin:clamp(3rem,8vw,5rem) 0 0;padding:0;list-style:none;display:flex}.brief__stack li{border:1px solid var(--line);color:var(--fg-dim);transition:border-color .4s var(--ease-out), color .4s var(--ease-out);border-radius:999px;padding:.45rem .95rem}.brief__stack li:hover{border-color:var(--accent);color:var(--fg)}.works__head{margin-bottom:clamp(3rem,8vw,5rem)}.works__title,.contact__title{letter-spacing:-.04em;text-transform:uppercase;margin:0;font-size:clamp(2.5rem,9vw,7.5rem);font-weight:700;line-height:.9}.card-grid{background:var(--line-soft);border:1px solid var(--line-soft);max-width:calc(var(--card-count,99) * 26rem);grid-template-columns:repeat(auto-fit,minmax(min(19rem,100%),1fr));gap:1px;display:grid}.card{backdrop-filter:blur(6px);min-height:clamp(15rem,26vw,20rem);transform-style:preserve-3d;transition:background-color .6s var(--ease-out);will-change:transform;background:#0f0f138c;flex-direction:column;justify-content:space-between;gap:1.25rem;padding:clamp(1.5rem,3vw,2.25rem);display:flex;position:relative;overflow:hidden}.card:hover{background:#15151bbf}.card[hidden]{display:none}.card__index{color:var(--muted);justify-content:space-between;gap:1rem;display:flex}.card__meta{color:var(--muted);white-space:nowrap}.card__thumb{aspect-ratio:16/10;object-fit:cover;filter:grayscale()contrast(1.05);width:100%;transition:filter .6s var(--ease-out), transform .7s var(--ease-out);transform:translateZ(14px)}.card:hover .card__thumb{filter:grayscale(0)contrast();transform:translateZ(14px)scale(1.03)}.card__body{transform:translateZ(28px)}.card__title{letter-spacing:-.02em;margin:0 0 .5rem;font-size:clamp(1.35rem,2.4vw,1.85rem);font-weight:500;line-height:1.15}.card__desc{color:var(--fg-dim);-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;max-width:26ch;margin:0 0 1.25rem;font-size:.9rem;line-height:1.55;display:-webkit-box;overflow:hidden}.card__cta{color:var(--fg);align-items:center;gap:.5rem;display:inline-flex}.card__cta .arrow{transition:transform .5s var(--ease-out);display:inline-block}.card:hover .card__cta .arrow{transform:translate(4px)translateY(-4px)}.card__glow{pointer-events:none;opacity:0;width:26rem;height:26rem;transition:opacity .5s var(--ease-out);background:radial-gradient(circle,#ff5c2629,#0000 62%);border-radius:50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.card:hover .card__glow{opacity:1}.contact__intro{max-width:38rem;color:var(--fg-dim);margin:clamp(1.5rem,3vw,2.25rem) 0 clamp(3rem,7vw,4.5rem);font-size:clamp(.98rem,1.5vw,1.2rem);line-height:1.6}.contact-links{border-top:1px solid var(--line-soft);max-width:52rem;margin:0;padding:0;list-style:none}.contact-link{border-bottom:1px solid var(--line-soft)}.contact-link a{transition:padding-left .5s var(--ease-out);grid-template-columns:minmax(5.5rem,auto) 1fr auto;align-items:baseline;gap:0 clamp(1rem,4vw,2.5rem);padding:clamp(1.35rem,3vw,2rem) 0;display:grid}.contact-link a:hover{padding-left:1rem}.contact-link__label{color:var(--muted);transition:color .4s var(--ease-out)}.contact-link a:hover .contact-link__label{color:var(--accent)}.contact-link__value{letter-spacing:-.025em;overflow-wrap:anywhere;font-size:clamp(1.15rem,3vw,2.1rem);font-weight:500;line-height:1.2}.contact-link .arrow{color:var(--muted);transition:transform .5s var(--ease-out), color .4s var(--ease-out);display:inline-block}.contact-link a:hover .arrow{color:var(--accent);transform:translate(4px,-4px)}@media (width<=640px){.contact-link a{grid-template-columns:1fr auto;row-gap:.45rem}.contact-link__label{grid-column:1/-1}}.site-footer{z-index:10;padding:clamp(2rem, 5vw, 3rem) var(--gutter);border-top:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:relative}.site-footer a{transition:color .4s var(--ease-out)}.site-footer a:hover{color:var(--fg)}.section--page{justify-content:flex-start;min-height:auto;padding-top:clamp(8rem,20vh,12rem)}.page__title{letter-spacing:-.04em;text-transform:uppercase;margin:0;font-size:clamp(2.5rem,9vw,7.5rem);font-weight:700;line-height:.9}.section__more{border-bottom:1px solid var(--line);color:var(--fg-dim);transition:color .4s var(--ease-out), border-color .4s var(--ease-out);align-self:flex-start;align-items:center;gap:.5rem;margin-top:clamp(2rem,5vw,3rem);padding-bottom:3px;display:inline-flex}.section__more:hover{color:var(--fg);border-color:var(--accent)}.section__more .arrow,.card__cta .arrow,.post-row .arrow{transition:transform .5s var(--ease-out);display:inline-block}.section__more:hover .arrow{transform:translate(3px,-3px)}.filters{flex-wrap:wrap;gap:.5rem;margin:clamp(2.5rem,6vw,4rem) 0 clamp(1.5rem,4vw,2.5rem);display:flex}.filter{border:1px solid var(--line);color:var(--fg-dim);cursor:pointer;transition:color .35s var(--ease-out), border-color .35s var(--ease-out), background-color .35s var(--ease-out);background:0 0;border-radius:999px;align-items:baseline;gap:.55rem;padding:.5rem 1.05rem;display:inline-flex}.filter:hover{color:var(--fg);border-color:var(--fg-dim)}.filter.is-active{color:var(--bg);background:var(--fg);border-color:var(--fg)}.filter__count{opacity:.55;font-size:.62rem}.post-list{border-top:1px solid var(--line-soft);margin:0;padding:0;list-style:none}.post-row{border-bottom:1px solid var(--line-soft)}.post-row a{transform-style:preserve-3d;will-change:transform;transition:padding-left .5s var(--ease-out), background-color .6s var(--ease-out);grid-template-columns:minmax(7rem,auto) 1fr auto;align-items:baseline;gap:0 clamp(1rem,4vw,3rem);margin:0 clamp(-1rem,-2vw,-1.5rem);padding:clamp(1.4rem,3vw,2.1rem) clamp(1rem,2vw,1.5rem);display:grid;position:relative;overflow:hidden}.post-row a:hover{background:#15151b8c;padding-left:clamp(2rem,3.5vw,2.75rem)}.post-row__glow{pointer-events:none;opacity:0;width:34rem;height:22rem;transition:opacity .5s var(--ease-out);background:radial-gradient(circle,#ff5c2621,#0000 64%);border-radius:50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.post-row a:hover .post-row__glow{opacity:1}.post-row time,.post-row__title,.post-row .arrow,.post-row__desc{position:relative}.post-row__title{letter-spacing:-.02em;margin:0;font-size:clamp(1.15rem,2.4vw,1.75rem);font-weight:500;line-height:1.25}.post-row a:hover .arrow{transform:translate(3px,-3px)}.post-row__desc{color:var(--fg-dim);grid-column:2/-1;max-width:46ch;margin:.4rem 0 0;font-size:.92rem;line-height:1.55}@media (width<=640px){.post-row a{grid-template-columns:1fr auto}.post-row time,.post-row__desc{grid-column:1/-1}}.work-hero{padding:clamp(8rem, 20vh, 12rem) var(--gutter) 0}.work-hero__title{letter-spacing:-.045em;text-transform:uppercase;margin:0 0 clamp(1.5rem,4vw,2.5rem);font-size:clamp(2.75rem,10vw,8rem);font-weight:700;line-height:.88}.work-meta{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr));gap:clamp(1.25rem,3vw,2rem);padding:clamp(1.75rem,4vw,2.5rem) 0;display:grid}.work-meta__row dt{margin-bottom:.5rem}.work-meta__row dd{margin:0;font-size:clamp(.95rem,1.5vw,1.1rem);line-height:1.5}.work-meta__link{border-bottom:1px solid var(--line);transition:border-color .4s var(--ease-out);align-items:center;gap:.45rem;padding-bottom:2px;display:inline-flex}.work-meta__link:hover{border-color:var(--accent)}.tag{border:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.15rem .5rem;font-size:.6rem;display:inline-block}.work-cover{aspect-ratio:16/9;object-fit:cover;width:100%;margin:clamp(2.5rem,6vw,4rem) 0 0}.work-overview{letter-spacing:-.02em;max-width:52rem;margin:clamp(3rem,7vw,5rem) 0 0;font-size:clamp(1.25rem,3vw,2.4rem);font-weight:500;line-height:1.24}.work-body{padding:clamp(3rem, 8vw, 6rem) var(--gutter) clamp(4rem, 10vw, 7rem)}.work-body>p,.work-body>ul,.work-body>ol,.work-body>blockquote,.article-body>p,.article-body>ul,.article-body>ol,.article-body>blockquote{max-width:42rem;color:var(--fg-dim);margin:0 0 1.15em;font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.68}.work-body>h2,.article-body>h2{letter-spacing:-.025em;max-width:42rem;margin:clamp(2.5rem,6vw,4rem) 0 1rem;font-size:clamp(1.5rem,3.5vw,2.5rem);font-weight:500;line-height:1.15}.work-body>h3,.article-body>h3{letter-spacing:-.02em;max-width:42rem;margin:clamp(2rem,4vw,2.75rem) 0 .75rem;font-size:clamp(1.15rem,2.2vw,1.5rem);font-weight:500}.work-body>ul,.work-body>ol,.article-body>ul,.article-body>ol{padding-left:1.25rem}.work-body li,.article-body li{margin-bottom:.5em}.work-body a,.article-body a{color:var(--fg);border-bottom:1px solid var(--line);transition:border-color .4s var(--ease-out)}.work-body a:hover,.article-body a:hover{border-color:var(--accent)}.work-body :not(pre)>code,.article-body :not(pre)>code{font-family:var(--font-mono);color:var(--fg);background:#f2f0ec14;border-radius:4px;padding:.15em .4em;font-size:.85em}.work-body pre,.article-body pre{border:1px solid var(--line-soft);border-radius:4px;max-width:52rem;margin:clamp(1.5rem,3vw,2rem) 0;padding:clamp(1rem,2.5vw,1.5rem);font-size:.85rem;line-height:1.6;overflow-x:auto}.work-body blockquote,.article-body blockquote{border-left:2px solid var(--accent);padding-left:1.25rem}.work-body table,.article-body table{border-collapse:collapse;width:100%;max-width:52rem;margin:clamp(1.5rem,3vw,2rem) 0;font-size:.95rem}.work-body th,.work-body td,.article-body th,.article-body td{border-bottom:1px solid var(--line-soft);text-align:left;padding:.7rem .9rem}.work-body th,.article-body th{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.68rem}.next-work{padding:clamp(3rem, 8vw, 5rem) var(--gutter);border-top:1px solid var(--line-soft);transition:background-color .6s var(--ease-out);display:block}.next-work:hover{background:#15151b99}.next-work__title{letter-spacing:-.04em;text-transform:uppercase;transition:transform .6s var(--ease-out);margin:.75rem 0 0;font-size:clamp(2rem,6vw,4.5rem);font-weight:700;line-height:.95}.next-work:hover .next-work__title{transform:translate(.75rem)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (prefers-reduced-motion:reduce){.grain,.scroll-cue__line:after{animation:none}*,:before,:after{transition-duration:.01ms!important}}@media (width<=640px){.site-header__nav{gap:1rem}.hero__title .line:nth-child(2){padding-left:0}.grain{opacity:.1}}
