:root{--bg:#0a0a0a;--bg-2:#111110;--fg:#f0ebe1;--fg-dim:#c8c2b6;--muted:#6b665d;--line:#1f1d1a;--line-2:#2a2723;--accent:oklch(74% .17 55);--accent-soft:oklch(74% .17 55/.15);--serif:"Instrument Serif", "Times New Roman", serif;--sans:"Geist", ui-sans-serif, system-ui, sans-serif;--mono:"Geist Mono", ui-monospace, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:none;font-weight:400;overflow-x:hidden}body{min-height:100vh}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:none;background:0 0;border:none}img{max-width:100%;display:block}#scroll-root{will-change:transform;position:relative}body.smooth-scroll{height:100vh;overflow:hidden}body.smooth-scroll #scroll-root{position:fixed;inset:0}.cursor-dot,.cursor-ring{pointer-events:none;z-index:9999;mix-blend-mode:difference;border-radius:999px;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-dot{width:6px;height:6px;transition:width .3s var(--ease-out), height .3s var(--ease-out);background:#fff}.cursor-ring{width:36px;height:36px;transition:width .35s var(--ease-out), height .35s var(--ease-out), background .3s var(--ease-out), border-color .3s var(--ease-out);border:1px solid #ffffff80}.cursor-ring.hover{background:#ffffff14;border-color:#ffffffe6;width:64px;height:64px}.cursor-ring.text{background:#fff;border:none;border-radius:2px;width:4px;height:28px}.cursor-dot.text{opacity:0}.grain{pointer-events:none;z-index:9998;opacity:.04;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");position:fixed;inset:0}.vignette{pointer-events:none;z-index:9997;background:radial-gradient(#0000 50%,#00000080 100%);position:fixed;inset:0}.display{font-family:var(--serif);letter-spacing:-.02em;font-weight:400;line-height:.92}.display em{color:var(--accent);font-style:italic}.mono{font-family:var(--mono);letter-spacing:0;font-weight:400}.label{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:11px}.eyebrow{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);align-items:center;gap:12px;font-size:12px;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 12px var(--accent);border-radius:50%;animation:2s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.reveal-line{display:block;overflow:hidden}.reveal-line>span{transition:transform 1.1s var(--ease-out);transition-delay:var(--d,0s);display:inline-block;transform:translateY(110%)}.reveal-line.in>span{transform:translate(0,0)}.reveal-char{vertical-align:top;display:inline-block;overflow:hidden}.reveal-char>span{transition:transform .9s var(--ease-out);transition-delay:var(--d,0s);display:inline-block;transform:translateY(105%)}.reveal-char.in>span{transform:translate(0,0)}.fade-up{opacity:0;transition:opacity 1s var(--ease-out), transform 1s var(--ease-out);transition-delay:var(--d,0s);transform:translateY(24px)}.fade-up.in{opacity:1;transform:none}.scale-in{opacity:0;transition:opacity 1.2s var(--ease-out), transform 1.2s var(--ease-out);transition-delay:var(--d,0s);transform:scale(.94)}.scale-in.in{opacity:1;transform:none}section{padding:140px 56px;position:relative}.wrap{max-width:1440px;margin:0 auto}.grid-12{grid-template-columns:repeat(12,1fr);gap:24px;display:grid}.btn{border:1px solid var(--line-2);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg);transition:background .4s var(--ease-out), border-color .4s var(--ease-out), color .4s var(--ease-out), transform .6s var(--ease-out);will-change:transform;border-radius:999px;align-items:center;gap:14px;padding:16px 22px;font-size:12px;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";background:var(--fg);transition:transform .5s var(--ease-in-out);z-index:-1;position:absolute;inset:0;transform:translateY(101%)}.btn:hover{color:var(--bg);border-color:var(--fg)}.btn:hover:before{transform:translateY(0)}.btn .arrow{transition:transform .4s var(--ease-out);display:inline-flex}.btn:hover .arrow{transform:translate(4px)rotate(-45deg)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#1a0f00}.btn.primary:before{background:var(--fg)}.btn.primary:hover{border-color:var(--fg)}.card{border:1px solid var(--line);transition:border-color .5s var(--ease-out), transform .6s var(--ease-out);background:linear-gradient(#ffffff05,#fff0);border-radius:20px;padding:32px;position:relative;overflow:hidden}.card:after{content:"";background:radial-gradient(600px circle at var(--mx,50%) var(--my,50%), #ffb4640f, transparent 40%);opacity:0;pointer-events:none;transition:opacity .5s;position:absolute;inset:0}.card:hover{border-color:var(--line-2)}.card:hover:after{opacity:1}nav.top{z-index:200;mix-blend-mode:difference;justify-content:space-between;align-items:center;padding:22px 32px;display:flex;position:fixed;top:0;left:0;right:0}nav.top .brand{font-family:var(--mono);letter-spacing:.04em;color:#fff;font-size:13px}nav.top .links{gap:28px;display:flex}nav.top .links a{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#fff;padding:4px 0;font-size:12px;position:relative}nav.top .links a:after{content:"";transform-origin:100%;width:100%;height:1px;transition:transform .5s var(--ease-out);background:#fff;position:absolute;bottom:0;left:0;transform:scaleX(0)}nav.top .links a:hover:after{transform-origin:0;transform:scaleX(1)}.progress{z-index:250;background:0 0;width:100%;height:2px;position:fixed;top:0;left:0}.progress>div{background:var(--accent);transform-origin:0;will-change:transform;width:100%;height:100%;transform:scaleX(0)}.rail{z-index:150;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);mix-blend-mode:difference;flex-direction:column;gap:14px;font-size:10px;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.rail.left{writing-mode:vertical-rl;left:24px;transform:translateY(-50%)rotate(180deg)}.rail.right{align-items:flex-end;right:24px}.rail.right .dot{width:6px;height:6px;transition:all .4s var(--ease-out);background:#f0ebe140;border-radius:50%}.rail.right .dot.active{background:var(--accent);width:24px;box-shadow:0 0 12px var(--accent);border-radius:4px}.hero{align-items:flex-end;min-height:100vh;padding:0;display:flex;position:relative;overflow:hidden}.hero-bg{z-index:0;background:radial-gradient(80% 50% at 50% 100%,#ff96501f,#0000 60%);position:absolute;inset:0}.hero-bg .orb{filter:blur(80px);opacity:.5;will-change:transform;border-radius:50%;position:absolute}.hero-bg .orb-1{opacity:.18;background:oklch(74% .17 55);width:480px;height:480px;top:-100px;right:-80px}.hero-bg .orb-2{opacity:.22;background:oklch(50% .13 280);width:600px;height:600px;bottom:-200px;left:-200px}.hero-content{z-index:2;width:100%;padding:56px 56px 80px;position:relative}.hero h1{font-family:var(--serif);letter-spacing:-.03em;font-size:clamp(72px,14vw,220px);font-weight:400;line-height:.88}.hero h1 em{color:var(--accent);font-style:italic}.hero-meta{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:40px;margin-top:56px;display:flex}.hero-tag{max-width:380px;color:var(--fg-dim);font-size:15px;line-height:1.5}.scroll-hint{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);align-items:center;gap:12px;font-size:11px;display:flex}.scroll-hint .line{background:currentColor;width:40px;height:1px;position:relative;overflow:hidden}.scroll-hint .line:after{content:"";background:var(--accent);animation:slideRight 2.4s infinite var(--ease-in-out);position:absolute;inset:0}@keyframes slideRight{0%{transform:translate(-100%)}50%{transform:translate(0)}to{transform:translate(100%)}}.status-pill{border:1px solid var(--line-2);font-family:var(--mono);letter-spacing:.1em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff05;border-radius:999px;align-items:center;gap:10px;padding:8px 14px;font-size:11px;display:inline-flex}.status-pill .dot{background:#5ad675;border-radius:50%;width:6px;height:6px;animation:2s infinite pulse;box-shadow:0 0 10px #5ad675}.marquee{white-space:nowrap;border-block:1px solid var(--line);background:var(--bg-2);padding:28px 0;position:relative;overflow:hidden}.marquee-track{will-change:transform;gap:64px;animation:40s linear infinite marquee;display:inline-flex}.marquee-track>span{font-family:var(--serif);color:var(--fg);align-items:center;gap:64px;font-size:80px;font-style:italic;line-height:1;display:inline-flex}.marquee-track>span:after{content:"✦";color:var(--accent);font-size:28px;font-style:normal}.marquee.reverse .marquee-track{animation-duration:50s;animation-direction:reverse}@keyframes marquee{to{transform:translate(-50%)}}footer{border-top:1px solid var(--line);padding:80px 56px 40px;position:relative}::selection{background:var(--accent);color:#1a0f00}.loader{z-index:10000;background:var(--bg);transition:opacity .8s var(--ease-out), visibility .8s;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loader.gone{opacity:0;visibility:hidden}.loader .count{font-family:var(--serif);color:var(--fg);font-feature-settings:"tnum";font-size:18vw;line-height:1}.loader .bar{background:var(--line);height:2px;position:absolute;bottom:0;left:0;right:0}.loader .bar>div{background:var(--accent);transform-origin:0;height:100%;transition:transform .2s linear;transform:scaleX(0)}@media (width<=900px){section{padding:80px 24px}.hero-content{padding:32px 32px 48px}nav.top{padding:18px 24px}.rail{display:none}body{cursor:auto}.cursor-dot,.cursor-ring{display:none}button,a{cursor:pointer}}.stack-chip{border:1px solid var(--line-2);font-family:var(--mono);color:var(--fg-dim);transition:all .4s var(--ease-out);cursor:none;background:#ffffff04;border-radius:999px;align-items:center;padding:8px 14px;font-size:12px;display:inline-flex}.stack-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}.stack-chip.small{padding:6px 10px;font-size:11px}.project-row{border-top:1px solid var(--line);opacity:0;transition:opacity 1s var(--ease-out), transform 1s var(--ease-out);transition-delay:var(--d,0s);cursor:none;padding:48px 0;position:relative;transform:translateY(40px)}.project-row:last-child{border-bottom:1px solid var(--line)}.project-row.in{opacity:1;transform:none}.project-bar{transform-origin:0;width:100%;height:1px;transition:background .6s var(--ease-out);position:absolute;top:0;left:0}.project-inner{grid-template-columns:90px 1fr 1fr 180px;align-items:start;gap:40px;display:grid}.project-meta{text-align:left}.project-headline{flex-direction:column;justify-content:center;display:flex}.project-detail{opacity:.85;max-width:480px}.project-glyph{opacity:.7;transition:opacity .5s, transform .6s var(--ease-out);justify-content:flex-end;align-items:center;display:flex}.project-row:hover .project-glyph{opacity:1;transform:scale(1.05)rotate(3deg)}.project-row:before{content:"";height:0;transition:height .6s var(--ease-out);pointer-events:none;z-index:-1;background:linear-gradient(#0000,#ffffff04);position:absolute;bottom:0;left:0;right:0}.project-row:hover:before{height:100%}@media (width<=1024px){.project-inner{grid-template-columns:60px 1fr;grid-template-areas:"meta headline""meta detail""meta glyph";gap:20px}.project-meta{grid-area:meta}.project-headline{grid-area:headline}.project-detail{grid-area:detail}.project-glyph{grid-area:glyph;justify-content:flex-start}}.exp-row{border-top:1px solid var(--line);opacity:0;transition:opacity 1s var(--ease-out), transform 1s var(--ease-out);transition-delay:var(--d,0s);grid-template-columns:240px 1fr;align-items:start;gap:60px;padding-block:32px;display:grid;transform:translateY(40px)}.exp-row.in{opacity:1;transform:none}.exp-row:last-child{border-bottom:1px solid var(--line)}.exp-side{position:sticky;top:100px}.exp-num{color:var(--accent);font-size:96px;font-style:italic;line-height:1}@media (width<=1024px){.exp-row{grid-template-columns:1fr;gap:24px}.exp-side{position:relative;top:auto}.exp-num{font-size:56px}}.contact-link{font-family:var(--serif);letter-spacing:-.02em;background-image:linear-gradient(var(--accent), var(--accent));transition:background-size .6s var(--ease-out), color .4s;background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;font-style:italic;position:relative}.contact-link:hover{color:var(--accent);background-size:100% 1px}.social-link{border:1px solid var(--line-2);transition:all .4s var(--ease-out);cursor:none;background:#ffffff04;border-radius:999px;align-items:center;gap:16px;padding:18px 22px;display:inline-flex;position:relative;overflow:hidden}.social-link:before{content:"";background:var(--fg);transition:transform .5s var(--ease-in-out);z-index:0;position:absolute;inset:0;transform:translateY(101%)}.social-link>*{z-index:1;position:relative}.social-link:hover{color:var(--bg);border-color:var(--fg)}.social-link:hover:before{transform:translateY(0)}.social-link .label{transition:color .4s}.social-link:hover .label{color:var(--bg);opacity:.6}.social-link .handle{font-family:var(--mono);font-size:13px}.social-link .arrow{font-family:var(--mono);transition:transform .4s var(--ease-out);font-size:14px}.social-link:hover .arrow{transform:translate(3px,-3px)}.reveal-char-group{display:inline-block}
