.pf{--ink:#0d0c0a;--ink-soft:#16140f;--paper:#efeae3;--paper-dim:#b8b2a7;--muted:#efeae373;--line:#efeae324;--accent:#ff4d00;--accent-soft:#ff4d001f;--font-display:var(--font-archivo), "Helvetica Neue", Arial, sans-serif;--font-serif:var(--font-instrument), Georgia, serif;--font-mono:var(--font-jbmono), "SF Mono", Menlo, monospace;--text-xs:clamp(.68rem, .62rem + .2vw, .78rem);--text-sm:clamp(.85rem, .78rem + .25vw, 1rem);--text-md:clamp(1.05rem, .95rem + .5vw, 1.35rem);--text-lg:clamp(1.5rem, 1.2rem + 1.6vw, 2.6rem);--text-xl:clamp(2.6rem, 1.6rem + 5vw, 6rem);--text-hero:clamp(2.8rem, .35rem + 11.4vw, 12.5rem);--space-1:.5rem;--space-2:1rem;--space-3:2rem;--space-4:3.5rem;--space-5:6rem;--space-6:clamp(6rem, 4rem + 8vw, 12rem);--gutter:clamp(1.25rem, 4vw, 4rem);--radius:2px;--header-h:4.5rem;--ease-out:cubic-bezier(.22, 1, .36, 1);background:var(--ink);color:var(--paper);font-family:var(--font-display);font-size:var(--text-md);-webkit-font-smoothing:antialiased;min-height:100svh;line-height:1.6;overflow-x:clip}html{scroll-behavior:smooth}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.pf ::selection{background:var(--accent);color:var(--ink)}.pf a{color:inherit;text-decoration:none}.pf ul,.pf ol{margin:0;padding:0;list-style:none}.pf em{font-family:var(--font-serif);font-style:italic;font-weight:400}.pf h1,.pf h2,.pf h3,.pf p{margin:0}.pf .mono{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase}.pf .accent,.pf .accent-text{color:var(--accent)}.pf :focus-visible{outline:2px solid var(--accent);outline-offset:4px}.preloader{z-index:200;background:var(--ink);padding:var(--gutter);align-items:flex-end;display:flex;position:fixed;inset:0}.preloader__inner{justify-content:space-between;align-items:flex-end;gap:var(--space-3);width:100%;display:flex}.preloader__name{letter-spacing:.02em;font-weight:900;font-stretch:118%;font-size:var(--text-lg)}.preloader__count{font-family:var(--font-mono);font-size:var(--text-hero);color:var(--accent);line-height:.8}.preloader--done{display:none}.site-header{z-index:100;height:var(--header-h);padding:0 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__logo{letter-spacing:.02em;font-size:1.4rem;font-weight:900;font-stretch:120%}.site-header__nav{gap:var(--space-3);display:flex}.site-header__nav a{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;position:relative}.site-header__nav a:after{content:"";transform-origin:100%;width:100%;height:1px;transition:transform .35s var(--ease-out);background:currentColor;position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.site-header__nav a:hover:after{transform-origin:0;transform:scaleX(1)}.site-header__cta{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:.6em 1.4em;transition:background .3s,color .3s}@media (max-width:720px){.site-header__nav,.site-header__cta{display:none}}.mobile-menu-slot{display:none}@media (max-width:720px){.mobile-menu-slot{display:block}}.pf .section{padding:var(--space-6) var(--gutter);border-top:1px solid var(--line)}.section__head{margin-bottom:var(--space-4)}.section__label{color:var(--accent);margin-bottom:var(--space-2);display:block}.section__title{font-size:var(--text-xl);letter-spacing:-.01em;text-transform:uppercase;font-weight:900;font-stretch:115%;line-height:1}.section__title em{text-transform:none;letter-spacing:0}.hero{min-height:100svh;padding:calc(var(--header-h) + var(--space-3)) var(--gutter) var(--space-4);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.hero__rain{z-index:0;pointer-events:none;position:absolute;inset:0}.rain-char{font-family:var(--font-mono);color:var(--paper);opacity:.13;will-change:top;font-size:clamp(.95rem,1.4vw,1.25rem);transition:color .12s,opacity .12s,text-shadow .12s;position:absolute;transform:translate(-50%,-50%)}.rain-char--active{color:var(--accent);opacity:1;text-shadow:0 0 10px #ff4d008c,0 0 22px #ff4d0040;font-weight:700}.hero__meta,.hero__title,.hero__tagline{z-index:2;position:relative}.hero__meta{gap:var(--space-3);color:var(--muted);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.hero__title{font-size:var(--text-hero);letter-spacing:-.015em;text-transform:uppercase;font-weight:900;font-stretch:122%;line-height:.86}.hero__line{white-space:nowrap;padding-bottom:.06em;display:block;overflow:hidden}.hero__line--indent{padding-left:clamp(1.5rem,8vw,9rem)}.hero__line--indent2{padding-left:clamp(3rem,18vw,21rem)}.hero__tagline{margin-top:var(--space-3);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.05em;color:var(--paper-dim);max-width:42ch;min-height:2.6em}.hero__tagline .dud{color:var(--accent);opacity:.7}.hero__lanyard{z-index:3;width:min(42vw,620px);height:100svh;display:none;position:absolute;top:0;right:0}@media (min-width:1024px){.hero__lanyard{display:block}.hero__badge{display:none}}.hero__lanyard>div{height:100svh!important}@media (max-width:720px){.hero__lanyard{width:100vw;height:46svh;display:block;left:50%;right:auto;transform:translate(-50%)}.hero__lanyard>div{height:100%!important}.hero__lanyard canvas{touch-action:pan-y!important}}.hero__badge{right:var(--gutter);bottom:var(--space-5);aspect-ratio:1;z-index:2;place-items:center;width:clamp(96px,12vw,150px);display:grid;position:absolute}.hero__badge-svg{animation:14s linear infinite pf-spin;position:absolute;inset:0}.hero__badge-text{fill:var(--paper-dim);font-family:var(--font-mono);letter-spacing:.18em;font-size:10.5px}.hero__badge-arrow{color:var(--accent);font-size:1.4rem}@keyframes pf-spin{to{transform:rotate(360deg)}}.hero__scroll{left:.9rem;bottom:var(--space-2);color:var(--muted);writing-mode:vertical-rl;letter-spacing:.4em;z-index:2;position:absolute}@media (max-width:720px){.hero__scroll{display:none}.hero__badge{right:var(--gutter);bottom:calc(var(--space-4) + 3.2rem);width:92px}.hero__badge-text{font-size:12px}}.marquee{border-top:1px solid var(--line);padding:var(--space-2) 0;background:var(--accent);color:var(--ink);overflow:hidden}.marquee__track{white-space:nowrap;width:max-content;animation:22s linear infinite pf-marquee;display:flex}.marquee__track>span{font-weight:900;font-stretch:118%;font-size:var(--text-lg);text-transform:uppercase;letter-spacing:.01em;padding-right:.5em}.marquee__track>span i{font-style:normal}.marquee .accent{color:var(--ink-soft)}.marquee--tech{background:var(--ink-soft);color:var(--paper);padding:var(--space-3) 0}.marquee--tech .marquee__track{animation-duration:34s}.marquee--tech .marquee__group{align-items:center;gap:clamp(2.2rem,4vw,4rem);padding-right:clamp(2.2rem,4vw,4rem);display:inline-flex}.tech{text-transform:none;font-weight:700;font-stretch:110%;font-size:var(--text-md);letter-spacing:.01em;color:var(--paper-dim);white-space:nowrap;align-items:center;gap:.8rem;display:inline-flex}.tech img{width:clamp(26px,2.6vw,36px);height:clamp(26px,2.6vw,36px);display:block}.marquee__track--reverse{animation-direction:reverse}@keyframes pf-marquee{to{transform:translate(-50%)}}.about__grid{gap:var(--space-4);grid-template-columns:1.35fr 1fr;align-items:center;display:grid}.about__card{justify-self:center;width:min(100%,390px)}@media (max-width:960px){.about__grid{grid-template-columns:1fr}.about__grid>*{min-width:0}.about__card{margin-top:var(--space-3)}}@media (max-width:720px){.about__card{width:100%}.about__card section{width:100%!important;height:auto!important;max-height:none!important}}.about__text{font-size:var(--text-lg);letter-spacing:-.01em;max-width:24em;font-weight:500;line-height:1.35}.about__text .w{opacity:.16;display:inline-block}.about__stats{margin-top:var(--space-5);gap:var(--space-3);border-top:1px solid var(--line);padding-top:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.stat__num{font-size:var(--text-xl);font-weight:900;font-stretch:115%;line-height:1}.stat__plus{font-size:var(--text-lg);font-weight:700}.stat__label{margin-top:var(--space-1);color:var(--muted);display:block}.works__stack{--foreground:#efeae3;--muted-foreground:#b8b2a7;--secondary:#1a1712;padding-top:var(--space-2);overflow-x:clip}.works__stack .relative.w-full:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.works__footnote{margin-top:var(--space-3);text-align:center;color:var(--muted)}.works__list{border-top:1px solid var(--line)}.work{border-bottom:1px solid var(--line)}.work__link{align-items:center;gap:var(--space-3);padding:clamp(1.2rem, 3vw, 2.2rem) var(--space-1);isolation:isolate;transition:color .35s var(--ease-out), padding-left .35s var(--ease-out);grid-template-columns:3rem 1fr auto auto 2.5rem;display:grid;position:relative}.work__link:before{content:"";z-index:-1;background:var(--paper);transform-origin:bottom;transition:transform .4s var(--ease-out);position:absolute;inset:0;transform:scaleY(0)}.work__link:hover{color:var(--ink);padding-left:var(--space-3)}.work__link:hover:before{transform:scaleY(1)}.work__link--static:hover{color:inherit;padding-left:var(--space-1)}.work__link--static:hover:before{transform:scaleY(0)}.work__index{color:var(--accent)}.work__name{font-size:var(--text-lg);text-transform:uppercase;letter-spacing:-.01em;font-weight:900;font-stretch:115%;line-height:1.05}.work__tag,.work__year{color:var(--muted)}.work__link:hover .work__tag,.work__link:hover .work__year{color:#0d0c0a99}.work__arrow{font-size:var(--text-lg);transition:transform .35s var(--ease-out)}.work__link:hover .work__arrow{transform:translate(4px,-4px)rotate(8deg)}@media (max-width:860px){.work__link{grid-template-columns:2.2rem 1fr 2rem}.work__tag,.work__year{display:none}}.stackx__stage{min-height:76svh;position:relative}.stackx__stage:before{content:"";pointer-events:none;background:radial-gradient(circle,#ff4d0012 0%,#0000 65%);width:46vw;max-width:640px;height:46vw;max-height:640px;position:absolute;top:10%;right:-10%}.stackx__rail{color:var(--muted);z-index:3;flex-direction:column;gap:1.1rem;display:none;position:absolute;top:50%;left:0;transform:translateY(-50%)}.stackx__railitem{padding-left:1.4rem;transition:color .3s;position:relative}.stackx__railitem:before{content:"";background:var(--line);width:.9rem;height:1px;transition:background .3s,width .3s;position:absolute;top:50%;left:0}.stackx__railitem.is-active{color:var(--accent)}.stackx__railitem.is-active:before{background:var(--accent);width:1.2rem}.stackx__block{margin-bottom:var(--space-5);position:relative}.stackx--pinned .stackx__block{gap:var(--space-5);grid-template-columns:minmax(300px,.85fr) 1.3fr;align-items:center;margin:0;padding-left:clamp(0rem,4vw,4.5rem);display:grid;position:absolute;inset:0}.stackx__meta>*{display:block}.stackx__num{color:var(--accent);margin-bottom:var(--space-2)}.stackx__cat{text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(2.6rem,5.5vw,6.2rem);font-weight:900;font-stretch:118%;line-height:.95}.stackx__desc{margin-top:var(--space-2);color:var(--paper-dim);max-width:34ch}.stackx__count{margin-top:var(--space-2);color:var(--muted)}.stackx__chips{perspective:700px;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:.8rem;display:grid}.chipx{border:1px solid var(--line);border-radius:var(--radius);background:var(--ink-soft);font-weight:700;font-stretch:108%;font-size:var(--text-sm);transition:border-color .3s, transform .3s var(--ease-out), box-shadow .3s;align-items:center;gap:.9rem;padding:1rem 1.15rem;display:flex}.chipx:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 14px 34px -16px #ff4d0066}.chipx img{flex-shrink:0;width:34px;height:34px;display:block}@media (min-width:900px){.stackx__rail{display:flex}}@media (max-width:899px){.stackx__stage{min-height:78svh}.stackx__meta{margin-bottom:var(--space-3)}.stackx__chips{grid-template-columns:1fr 1fr;gap:.6rem}.chipx{gap:.7rem;padding:.8rem .9rem}.chipx img{width:28px;height:28px}.stackx--pinned .stackx__block{align-content:center;align-items:start;gap:var(--space-3);grid-template-columns:1fr;padding-left:0}}html.static .stackx__block{opacity:1!important;visibility:visible!important;position:relative!important}.timeline__list{max-width:56rem}.timeline__item{gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);grid-template-columns:10rem 1fr;display:grid}.timeline__period{color:var(--accent);padding-top:.4em}.timeline__role{font-size:var(--text-md);margin-bottom:var(--space-1);font-weight:700;font-stretch:110%}.timeline__body p{color:var(--paper-dim);max-width:46ch}@media (max-width:640px){.timeline__item{gap:var(--space-1);grid-template-columns:1fr}}.contact{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:80svh;display:flex}.contact .section__label{margin-bottom:var(--space-2)}.contact__title{text-transform:uppercase;letter-spacing:-.015em;padding-bottom:.12em;font-size:clamp(2.4rem,.6rem + 10.5vw,11rem);font-weight:900;font-stretch:120%;line-height:.9}.contact__title em{text-transform:lowercase;font-weight:400}.contact__title .hero__line{display:inline-block}.contact__title .split{white-space:nowrap}.pf .contact__sub{margin-top:var(--space-3);color:var(--paper-dim)}.contact__actions{margin-top:var(--space-3);gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.btn{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.06em;border:1px solid var(--paper);border-radius:999px;padding:1em 2em;transition:background .3s,color .3s,border-color .3s;display:inline-block}.pf .btn--primary{background:var(--paper);color:var(--ink)}.pf .btn--primary:hover{background:var(--accent);border-color:var(--accent);color:var(--ink)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.site-footer{justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--gutter);border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;display:flex}.site-footer a:hover{color:var(--accent)}.split .char{display:inline-block}@media (prefers-reduced-motion:reduce){.marquee__track,.hero__badge-svg{animation:none}html{scroll-behavior:auto}}html.static .marquee__track,html.static .hero__badge-svg{animation:none}html.static .preloader{display:none}html.static .about__text .w{opacity:1}
