:root{--cream-50: #faf6ec;--cream-100: #f3ecdf;--cream-200: #ebe1cf;--cream-300: #d9cdb6;--ink-900: #15131a;--ink-700: #2b2735;--ink-500: #4d4659;--ink-300: #8b8398;--indigo-500: #4f46e5;--indigo-600: #4338ca;--violet-400: #a78bfa;--violet-500: #8b5cf6;--blue-500: #3b82f6;--blue-700: #1d4ed8;--grain-opacity: .06;--noise-opacity: .05;--font-display: "Fraunces", "Times New Roman", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;--pad-x: clamp(20px, 4vw, 56px);--max-w: 1440px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.83, 0, .17, 1)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;background:var(--cream-100);color:var(--ink-900);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}body{font-size:16px;line-height:1.55;letter-spacing:-.005em;overflow-x:hidden;cursor:none}@media(max-width:820px){body{cursor:auto}}a{color:inherit;text-decoration:none}img,svg,video,canvas{display:block;max-width:100%}::selection{background:var(--violet-500);color:var(--cream-50)}.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-500)}.display{font-family:var(--font-display);font-weight:300;font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 60,"WONK" 1;line-height:.92;letter-spacing:-.04em}.label{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-700)}.grain{position:fixed;inset:0;pointer-events:none;z-index:100;mix-blend-mode:multiply;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:240px 240px}.orb-canvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;pointer-events:none}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:200;will-change:transform;mix-blend-mode:difference}.cursor-dot{width:6px;height:6px;background:#fff;border-radius:50%;transform:translate(-50%,-50%)}.cursor-ring{width:36px;height:36px;border:1px solid rgba(255,255,255,.7);border-radius:50%;transform:translate(-50%,-50%);transition:width .4s var(--ease-out),height .4s var(--ease-out),border-color .3s ease}.cursor-ring.is-hover{width:64px;height:64px;border-color:#fffffff2}@media(max-width:820px){.cursor-dot,.cursor-ring{display:none}}.site-frame{position:relative;z-index:1}.shell{width:100%;max-width:var(--max-w);margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x)}.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:22px var(--pad-x);display:flex;align-items:center;justify-content:space-between;mix-blend-mode:difference;color:#fff}.nav__mark{font-family:var(--font-mono);font-size:12px;letter-spacing:.15em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px}.nav__mark .dot{width:8px;height:8px;border-radius:50%;background:var(--violet-400);box-shadow:0 0 14px var(--violet-400);animation:pulse 2.4s var(--ease-in-out) infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}.nav__list{display:flex;gap:28px;list-style:none}.nav__list a{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;position:relative;padding:4px 2px}.nav__list a:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:right .45s var(--ease-out)}.nav__list a:hover:after,.nav__list a[aria-current=page]:after{right:0}@media(max-width:640px){.nav__list{gap:18px}.nav__list a{font-size:10px}}.hero{min-height:100vh;padding-top:22vh;padding-bottom:12vh;position:relative}.hero__index{display:flex;justify-content:space-between;margin-bottom:60px;font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-500)}.hero__title{font-family:var(--font-display);font-weight:300;line-height:.88;letter-spacing:-.045em;font-size:clamp(58px,12.5vw,220px)}.hero__title .row{display:block;overflow:hidden}.hero__title .row>span{display:inline-block;will-change:transform}.hero__title em{font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;background:linear-gradient(110deg,var(--violet-500) 0%,var(--blue-700) 60%,var(--indigo-600) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero__meta{margin-top:56px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;align-items:end}.hero__meta p{max-width:36ch;color:var(--ink-700)}@media(max-width:820px){.hero__meta{grid-template-columns:1fr}}.section{position:relative;padding:14vh 0}.section__head{display:grid;grid-template-columns:60px 1fr;gap:32px;align-items:baseline;margin-bottom:7vh}.section__num{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;color:var(--ink-500)}.section__title{font-family:var(--font-display);font-weight:300;font-size:clamp(40px,6.5vw,96px);line-height:.95;letter-spacing:-.035em}.marquee{position:relative;overflow:hidden;border-top:1px solid var(--cream-300);border-bottom:1px solid var(--cream-300);padding:24px 0;font-family:var(--font-display);font-style:italic;font-size:clamp(40px,7vw,110px);white-space:nowrap}.marquee__track{display:inline-flex;gap:60px;animation:scroll 38s linear infinite;will-change:transform}.marquee__track span{display:inline-block}.marquee__track .dotsep{display:inline-flex;align-items:center;gap:60px;color:var(--violet-500)}@keyframes scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.works{display:flex;flex-direction:column}.work{display:grid;grid-template-columns:80px minmax(0,1.2fr) minmax(0,.9fr) 140px;gap:32px;align-items:center;padding:32px 0;border-top:1px solid var(--cream-300);position:relative;cursor:pointer;transition:padding .5s var(--ease-out)}.work:last-child{border-bottom:1px solid var(--cream-300)}.work__num{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;color:var(--ink-500)}.work__title{font-family:var(--font-display);font-style:italic;font-size:clamp(28px,3.6vw,52px);line-height:1;letter-spacing:-.03em}.work__desc{color:var(--ink-700);max-width:36ch}.work__status{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--violet-500);text-align:right;display:inline-flex;justify-content:flex-end;gap:8px;align-items:center}.work__status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--violet-500);box-shadow:0 0 12px var(--violet-500)}.work:hover{padding-left:12px;padding-right:12px}.work__hover{position:absolute;top:50%;right:24px;transform:translateY(-50%) translate(20px);opacity:0;pointer-events:none;transition:opacity .4s var(--ease-out),transform .5s var(--ease-out);font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--indigo-600)}.work:hover .work__hover{opacity:1;transform:translateY(-50%) translate(0)}@media(max-width:820px){.work{grid-template-columns:50px 1fr;grid-template-rows:auto auto auto;gap:12px}.work__desc{grid-column:2}.work__status{grid-column:2;text-align:left;justify-content:flex-start}}.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.chip{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-700);padding:8px 14px;border:1px solid var(--cream-300);border-radius:999px;background:#ffffff4d;backdrop-filter:blur(6px);transition:color .3s ease,border-color .3s ease,background .3s ease}.chip:hover{color:var(--cream-50);background:var(--ink-900);border-color:var(--ink-900)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.two-col p{color:var(--ink-700);font-size:18px;line-height:1.7}.two-col p+p{margin-top:1.2em}@media(max-width:820px){.two-col{grid-template-columns:1fr;gap:32px}.section__head{grid-template-columns:40px 1fr;gap:14px}}.contact{min-height:90vh;display:flex;flex-direction:column;justify-content:center}.contact__cta{font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(64px,14vw,240px);line-height:.9;letter-spacing:-.045em}.contact__cta a{position:relative;display:inline-block;background:linear-gradient(110deg,var(--violet-500) 0%,var(--blue-700) 60%,var(--indigo-600) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.contact__cta a:after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:2px;background:linear-gradient(90deg,var(--violet-500),var(--indigo-600));transform-origin:left;transform:scaleX(0);transition:transform .6s var(--ease-out)}.contact__cta a:hover:after{transform:scaleX(1)}.contact__meta{margin-top:80px;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;border-top:1px solid var(--cream-300);padding-top:32px;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-700)}.contact__meta strong{display:block;color:var(--ink-500);font-weight:400;margin-bottom:8px;opacity:.7}@media(max-width:820px){.contact__meta{grid-template-columns:1fr 1fr}}.footer{padding:40px var(--pad-x);border-top:1px solid var(--cream-300);display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-500);position:relative;z-index:1}.footer a:hover{color:var(--ink-900)}.reveal-line{display:block;overflow:hidden}.reveal-line>.inner{display:block;transform:translateY(110%);will-change:transform}.reveal-line.is-in>.inner{transform:translateY(0);transition:transform 1.1s var(--ease-out)}.fade-up{opacity:0;transform:translateY(28px);will-change:transform,opacity;transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}.fade-up.is-in{opacity:1;transform:translateY(0)}.page-mask{position:fixed;inset:0;background:var(--cream-100);z-index:300;transform-origin:bottom;pointer-events:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal-line>.inner{transform:none}.fade-up{opacity:1;transform:none}}
