*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--white:#f2f2f2;--dim:#8a8a8a;--sans:"Geist", system-ui, sans-serif;--mono:"Geist Mono", ui-monospace, monospace;--edge:clamp(1.25rem, 4vw, 3.5rem);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{color:var(--white);font-family:var(--sans);-webkit-font-smoothing:antialiased;background:#000}a{color:inherit;text-decoration:none}::selection{background:var(--white);color:#000}.mono{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;font-weight:400}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.field{opacity:0;width:100%;height:100%;transition:opacity 1.6s;position:fixed;inset:0}.field.ready{opacity:1}body:after{content:"";z-index:50;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:.8s steps(4,end) infinite grain;position:fixed;inset:-50%}@keyframes grain{0%{transform:translate(0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-1%,3%)}to{transform:translate(3%,-1%)}}.progress{background:var(--white);transform-origin:0;z-index:10;height:2px;position:fixed;bottom:0;left:0;right:0;transform:scaleX(0)}.caption{left:var(--edge);bottom:calc(var(--edge) + 1rem);width:min(30rem, calc(100vw - 2 * var(--edge)));z-index:10;opacity:0;visibility:hidden;will-change:transform, opacity;position:fixed}.label{color:var(--dim)}.title{letter-spacing:-.04em;overflow-wrap:anywhere;margin:.6rem 0 .8rem;font-size:clamp(1.9rem,4.2vw,3.6rem);font-weight:800;line-height:.95;display:block}.title-link{text-underline-offset:.12em;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:2px;transition:text-decoration-color .3s}.title-link:hover{text-decoration-color:currentColor}.title-arrow{vertical-align:.55em;margin-left:.18em;font-size:.55em;font-weight:600;transition:transform .3s;display:inline-block}.title-link:hover .title-arrow{transform:translate(.08em,-.08em)}a.title{text-underline-offset:.12em;text-decoration:underline;text-decoration-thickness:2px}.body{color:#c8c8c8;max-width:38ch;font-size:clamp(.95rem,1.2vw,1.1rem);line-height:1.5}.meta{color:var(--dim);margin-top:1rem}.links{gap:1.75rem;margin-top:1.25rem;font-size:1.05rem;display:flex}.links a{border-bottom:1px solid #0000;transition:border-color .3s}.links a:hover{border-color:currentColor}.cv{align-items:center;gap:.9rem;margin-top:1.4rem;display:inline-flex}.cv>span{flex-direction:column;gap:.3rem;display:flex}.cv-title{border-bottom:1px solid #0000;font-size:1.05rem;font-weight:500;transition:border-color .3s}.cv:hover .cv-title,.cv:focus-visible .cv-title{border-color:currentColor}.cv-hero{z-index:10;opacity:0;visibility:hidden;position:fixed;top:63%;left:50%}.cv.compact{flex-direction:column;gap:.45rem;margin:0}@media (aspect-ratio<=11/10){.cv-hero{top:53%}}.cv .mono{color:var(--dim)}@media (prefers-reduced-motion:reduce){body:after{animation:none}}
