@font-face{font-family:Atkinson;src:url(/fonts/atkinson-regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Archivo;src:url(/fonts/archivo-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:block}@font-face{font-family:Fragment Mono;src:url(/fonts/fragment-mono.woff2) format("woff2");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Playfair;src:url(/fonts/playfair-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:block}@font-face{font-family:Playfair;src:url(/fonts/playfair-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:block}:root{--bg: #0a0a0a;--ink: #e8e8e8;--muted: rgba(232, 232, 232, .5);--hairline: rgba(232, 232, 232, .14);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-expo: cubic-bezier(.16, 1, .3, 1);--font: "Atkinson", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-sans: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Archivo", sans-serif;--font-serif: "Playfair", Didot, "Bodoni MT", Georgia, serif;--font-mono: "Fragment Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--gutter: clamp(1.25rem, 4vw, 4rem)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--ink);color:var(--bg)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}.site-header{position:fixed;inset:0 0 auto;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:1.4rem var(--gutter);mix-blend-mode:difference;color:#fff}.site-header .brand{font-weight:700;letter-spacing:.01em}.site-nav{display:flex;gap:clamp(1.25rem,3vw,2.5rem);font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase}.hs{display:inline-block;overflow:clip;line-height:1.4;height:1.4em}.hs .hs-flip{display:block;position:relative;transition:transform .3s var(--ease-out)}.hs .hs-flip>span{display:block}.hs .hs-flip>span:nth-child(2){position:absolute;top:100%;left:0;width:100%}@media (hover: hover) and (pointer: fine){.hs:hover .hs-flip{transform:translateY(-100%)}}.preloader{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;gap:clamp(1.5rem,6vw,4rem);background:#000;color:var(--ink);font-family:var(--font-mono);font-size:clamp(.7rem,1.4vw,.85rem);text-transform:uppercase;letter-spacing:.06em;transition:opacity .5s ease .35s}.pre-line{overflow:clip}.pre-line>span{display:block;transition:transform .6s var(--ease-expo)}.pre-line .serif-it{display:inline;font-family:var(--font-serif);font-style:italic;text-transform:none}.preloader.done{opacity:0;pointer-events:none}.preloader.done .pre-line>span{transform:translateY(-110%)}.cursor{position:fixed;top:0;left:0;z-index:1001;pointer-events:none;opacity:0;transition:opacity .2s ease;color:#fff;mix-blend-mode:difference;font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;will-change:transform}@media (hover: hover) and (pointer: fine){body:has(.work:hover) .cursor{opacity:1}body:has(.work:hover) .works-grid{cursor:none}}.scene{position:relative;height:100svh;overflow:hidden;background:#000}.scene canvas#silk{position:absolute;inset:0;width:100%;height:100%;display:block}.grain{position:absolute;inset:-60px;z-index:3;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain-jitter .9s steps(3) infinite}@keyframes grain-jitter{0%{transform:translate(0)}33%{transform:translate(-25px,18px)}66%{transform:translate(18px,-30px)}to{transform:translate(0)}}.scene-headline{position:absolute;top:clamp(3.5rem,9vh,7rem);left:50%;transform:translate(-50%);z-index:2;display:flex;justify-content:center;white-space:nowrap;font-family:var(--font-display);font-weight:700;font-size:13.5vw;line-height:1.02;letter-spacing:-.02em;color:var(--ink);text-transform:uppercase;will-change:transform}.glyph-mask{display:inline-block;overflow:hidden;padding-bottom:.08em}.glyph{display:inline-block;transform:translateY(110%);will-change:transform}.ready .glyph{animation:glyph-rise 1.1s var(--ease-expo) forwards;animation-delay:calc(.15s + var(--i) * 48ms)}.glyph.it{font-family:var(--font-serif);font-style:italic;text-transform:none;letter-spacing:0}@keyframes glyph-rise{to{transform:translateY(0)}}.scene-object{position:absolute;top:50%;left:50%;z-index:2;width:220px;height:220px;margin:-110px 0 0 -110px;pointer-events:none}.scene-caption{position:absolute;bottom:clamp(1.5rem,4vh,2.75rem);left:0;width:100%;z-index:2;text-align:center;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);opacity:0;transform:translateY(10px)}.ready .scene-caption{animation:caption-rise .6s var(--ease-out) 1.2s forwards}@keyframes caption-rise{to{opacity:1;transform:translateY(0)}}.marquee{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);overflow:hidden;padding:1.1rem 0;white-space:nowrap;display:flex}.marquee-track{display:flex;flex-shrink:0;gap:3rem;padding-right:3rem;animation:marquee 28s linear infinite;font-size:clamp(1rem,2vw,1.4rem);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}@keyframes marquee{to{transform:translate(-100%)}}.section{padding:clamp(5rem,14vh,10rem) var(--gutter)}.section-label{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:clamp(2rem,5vh,3.5rem);display:flex;align-items:baseline;gap:.75rem}.section-label:after{content:"";flex:1;height:1px;background:var(--hairline);align-self:center}.about-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,6vw,6rem);align-items:start}.about-statement{font-size:clamp(1.5rem,3.2vw,2.6rem);line-height:1.25;letter-spacing:-.01em;font-weight:400;text-wrap:balance}.about-statement em{font-style:normal;color:var(--muted)}.about-portrait{overflow:hidden;border-radius:4px}.about-portrait img{width:100%;aspect-ratio:4 / 5;object-fit:cover;filter:grayscale(35%);transition:filter .5s ease,transform .9s var(--ease-out)}@media (hover: hover) and (pointer: fine){.about-portrait:hover img{filter:grayscale(0%);transform:scale(1.03)}}.services{list-style:none;margin-top:clamp(3rem,8vh,5rem)}.service{display:flex;align-items:baseline;gap:clamp(1rem,3vw,2.5rem);padding:clamp(1.1rem,2.5vh,1.75rem) 0;border-top:1px solid var(--hairline);font-family:var(--font-sans);font-size:clamp(1.6rem,4.5vw,3.5rem);font-weight:500;letter-spacing:-.02em;text-transform:uppercase;transition:opacity .4s ease,filter .4s ease,padding-left .4s var(--ease-out)}.service:last-child{border-bottom:1px solid var(--hairline)}.service .num{font-size:.85rem;font-weight:400;letter-spacing:.08em;color:var(--muted)}.service .tag{margin-left:auto;font-size:.85rem;font-weight:400;letter-spacing:.04em;text-transform:none;color:var(--muted);text-align:right}@media (hover: hover) and (pointer: fine){.service:hover{padding-left:1rem}.services:has(.service:hover) .service:not(:hover){opacity:.35;filter:blur(6px)}}.works-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(1.5rem,4vw,4rem);row-gap:clamp(3rem,8vh,6rem)}.work:nth-child(2n){transform:translateY(clamp(2rem,8vh,5rem))}.work-media{overflow:hidden;border-radius:4px;background:#1a1a19;clip-path:inset(0 0 100% 0);transition:clip-path 1s var(--ease-out)}.work.in-view .work-media{clip-path:inset(0 0 0 0)}.work-media img{width:100%;aspect-ratio:4 / 3;object-fit:cover;object-position:top center;transform:scale(1.08);transition:transform 1s var(--ease-out)}.work.in-view .work-media img{transform:scale(1)}@media (hover: hover) and (pointer: fine){.work.in-view:hover .work-media img{transform:scale(1.05)}}.work-card{display:block}.work-meta{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:.9rem}.work-title{font-weight:700;font-size:clamp(1rem,1.6vw,1.25rem);letter-spacing:-.01em}.work-cat{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;color:var(--muted);white-space:nowrap}.cta{text-align:left;border-top:1px solid var(--hairline)}.cta-title{font-weight:700;font-size:clamp(2.6rem,9vw,8rem);line-height:1;letter-spacing:-.03em;text-transform:uppercase;margin-bottom:clamp(2rem,5vh,3rem)}.cta-link{display:inline-flex;align-items:center;gap:.75rem;font-size:clamp(1.2rem,2.5vw,1.75rem);padding-bottom:.35rem;position:relative}.cta-link:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--ink);transform-origin:left;transition:transform .4s var(--ease-out)}.cta-link .arrow{display:inline-block;transition:transform .3s var(--ease-out)}@media (hover: hover) and (pointer: fine){.cta-link:hover .arrow{transform:translate(8px)}.cta-link:hover:after{transform:scaleX(0);transform-origin:right}}.resume-page .section{padding-top:clamp(6rem,16vh,9rem);min-height:calc(100svh - 5.5rem)}.resume-frame{border:1px solid var(--hairline);border-radius:4px;overflow:hidden;background:#141413}.resume-frame iframe{display:block;width:100%;height:min(78svh,1100px);border:none}.resume-actions{display:flex;gap:clamp(2rem,6vw,4rem);margin-top:clamp(1.5rem,4vh,2.5rem)}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:2rem var(--gutter);border-top:1px solid var(--hairline);font-size:.85rem;color:var(--muted)}.site-footer a{transition:color .2s ease}@media (hover: hover) and (pointer: fine){.site-footer a:hover{color:var(--ink)}}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);transition-delay:var(--d, 0ms);will-change:opacity,transform}.reveal.in-view{opacity:1;transform:translateY(0)}@media (max-width: 760px){.scene-object{width:150px;height:150px;margin:-75px 0 0 -75px}.scene-caption{letter-spacing:.18em;font-size:.6rem;padding:0 1rem}.about-grid{grid-template-columns:1fr}.about-portrait{max-width:24rem}.works-grid{grid-template-columns:1fr}.work:nth-child(2n){transform:none}.service .tag{display:none}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.glyph{animation-duration:1ms;animation-delay:0ms}.scene-caption{animation-duration:1ms;animation-delay:.2s}.grain{animation:none}.reveal,.work-media,.work-media img{transition-duration:1ms}.work:nth-child(2n){transform:none}.marquee-track{animation:none}}
