:root{--color-bg:#000;--color-bg-soft:#050505;--color-surface:#0a0a0a;--color-surface-hover:#111;--color-elevated:#161616;--color-border:#1d1d1d;--color-border-strong:#2e2e2e;--color-border-bright:#4a4a4a;--color-text:#fff;--color-text-soft:#c9c9c9;--color-text-muted:#888;--color-text-faint:#555;--color-text-dim:#333;--color-accent:#fff;--color-accent-hover:#f5f5f5;--color-accent-soft:#ffffff14;--color-accent-faint:#ffffff0a;--color-accent-text:#000;--color-success:#50e3a4;--gradient-silver:linear-gradient(135deg, #fff 0%, #aaa 50%, #555 100%);--gradient-iris:linear-gradient(135deg, #fff 0%, #c9c9c9 100%);--font-display:"Geist", system-ui, -apple-system, sans-serif;--font-sans:"Geist", system-ui, -apple-system, sans-serif;--font-mono:"Geist Mono", "SF Mono", Consolas, monospace;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:2.5rem;--space-6:3rem;--space-8:4rem;--space-10:5rem;--space-12:6rem;--space-16:8rem;--space-20:10rem;--space-24:12rem;--max-width:1200px;--max-width-narrow:760px;--content-padding:clamp(1.25rem, 4vw, 2.5rem);--radius-sm:4px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:999px;--ease:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--transition:.2s var(--ease);--transition-slow:.4s var(--ease-out);--shadow-sm:0 1px 2px #0009;--shadow:0 8px 24px -8px #000c;--shadow-lg:0 32px 64px -16px #000000e6}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.6;overflow-x:hidden}body:before{content:"";z-index:-2;pointer-events:none;background-image:radial-gradient(circle at 1px 1px,#ffffff0d 1px,#0000 0);background-size:32px 32px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(#000 0%,#0000 75%);mask-image:radial-gradient(#000 0%,#0000 75%)}h1,h2,h3,h4,h5,h6{letter-spacing:-.025em;color:var(--color-text);margin:0;font-weight:600;line-height:1.05}p{margin:0}a{color:inherit;transition:color var(--transition);text-decoration:none}img,svg{max-width:100%;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}::selection{background:var(--color-text);color:var(--color-bg)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full);border:2px solid var(--color-bg)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-bright)}.scroll-progress{z-index:200;pointer-events:none;transform-origin:0;background:linear-gradient(90deg,#fff,#888);height:2px;animation:linear scrollProgress;animation-timeline:scroll(root);position:fixed;top:0;left:0;right:0;transform:scaleX(0)}@keyframes scrollProgress{to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.scroll-progress{display:none}}.header{z-index:100;-webkit-backdrop-filter:blur(16px)saturate(180%);border-bottom:1px solid var(--color-border);background-color:#000000b3;position:sticky;top:0}.header__inner{max-width:var(--max-width);padding:var(--space-2) var(--content-padding);align-items:center;gap:var(--space-4);grid-template-columns:auto 1fr auto;margin:0 auto;display:grid}.header__logo{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-text);transition:opacity var(--transition);align-items:baseline;gap:2px;font-size:1.25rem;font-weight:600;display:inline-flex}.header__logo:hover{opacity:.7}.header__logo-letter{font-weight:600}.header__logo-amp{color:var(--color-text-muted);margin:0 1px;font-weight:400}.header__nav{justify-content:center;gap:var(--space-3);display:flex}.header__link{color:var(--color-text-muted);letter-spacing:-.01em;transition:color var(--transition);align-items:center;gap:6px;padding:6px 0;font-size:.875rem;font-weight:500;display:inline-flex;position:relative}.header__link-num{font-family:var(--font-mono);color:var(--color-text-faint);letter-spacing:0;transition:color var(--transition);font-size:.625rem}.header__link:before{content:"";background-color:var(--color-text);width:0;height:1px;transition:width var(--transition);position:absolute;bottom:0;left:0}.header__link:hover{color:var(--color-text)}.header__link:hover .header__link-num{color:var(--color-text-soft)}.header__link:hover:before{width:100%}.header__status{border:1px solid var(--color-border);border-radius:var(--radius-full);font-family:var(--font-mono);color:var(--color-text-soft);transition:border-color var(--transition);background-color:#ffffff05;align-items:center;gap:8px;padding:6px 12px;font-size:.75rem;display:inline-flex}.header__status:hover{border-color:var(--color-border-bright)}.header__status-dot{background-color:var(--color-success);border-radius:50%;flex-shrink:0;width:8px;height:8px;position:relative}.header__status-dot:after{content:"";background-color:var(--color-success);opacity:.4;animation:ping 2s var(--ease-out) infinite;border-radius:50%;position:absolute;inset:-3px}@keyframes ping{0%{opacity:.4;transform:scale(1)}75%,to{opacity:0;transform:scale(2)}}@media (width<=900px){.header__inner{grid-template-columns:auto 1fr}.header__nav{display:none}}@media (width<=640px){.header__inner{padding:var(--space-2)}.header__status{padding:4px 10px;font-size:.6875rem}}.hero{padding:var(--space-10) 0 var(--space-12);text-align:center;position:relative;overflow:hidden}.hero__decor{pointer-events:none;z-index:0;position:absolute;inset:0}.hero__blob,.hero__blob--cyan,.hero__blob--magenta{display:none}.hero__grid{background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 5%,#0000 65%);mask-image:radial-gradient(#000 5%,#0000 65%)}.hero__inner{z-index:1;align-items:center;gap:var(--space-4);flex-direction:column;max-width:880px;margin:0 auto;display:flex;position:relative}.hero__visual{align-items:center;gap:var(--space-1);opacity:0;width:100%;transition:opacity 1s var(--ease-out) .1s, transform 1s var(--ease-out) .1s;flex-direction:column;display:flex;position:relative;transform:translateY(40px)}.is-revealed .hero__visual{opacity:1;transform:translateY(0)}@supports (animation-timeline:view()){.hero__visual{animation:linear heroVisualParallax;animation-timeline:view();animation-range:cover}@keyframes heroVisualParallax{0%{transform:translateY(60px)}50%{transform:translateY(0)}to{transform:translateY(-160px)scale(.92)}}}.hero__visual-frame{perspective:1400px;perspective-origin:50%;width:320px;height:320px;position:relative}.hero__stage{width:200px;height:200px;transform:translate(50%, -50%) rotateX(var(--rx,-20deg)) rotateY(var(--ry,30deg));transform-style:preserve-3d;will-change:transform;position:absolute;inset:50% 50% auto auto}.hero__cube{transform-style:preserve-3d;position:absolute;inset:0}.hero__face{-webkit-backdrop-filter:blur(8px);background:linear-gradient(135deg,#ffffff0d 0%,#0000 100%),#0a0a0acc;border:1px solid #ffffff2e;justify-content:center;align-items:center;width:200px;height:200px;display:flex;position:absolute;box-shadow:inset 0 0 60px #ffffff0a,0 8px 32px #00000080}.hero__face-mono{font-family:var(--font-mono);color:var(--color-text);background:var(--gradient-silver);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:500}.hero__face-label{font-family:var(--font-mono);letter-spacing:.32em;color:var(--color-text-muted);text-transform:uppercase;font-size:.8125rem}.hero__face--front{transform:translateZ(100px)}.hero__face--back{transform:rotateY(180deg)translateZ(100px)}.hero__face--right{transform:rotateY(90deg)translateZ(100px)}.hero__face--left{transform:rotateY(-90deg)translateZ(100px)}.hero__face--top{transform:rotateX(90deg)translateZ(100px)}.hero__face--bottom{transform:rotateX(-90deg)translateZ(100px)}.hero__orbit{transform-style:preserve-3d;pointer-events:none;border-radius:50%;position:absolute;inset:50% 50% auto auto}.hero__orbit--one{border:1px dashed #ffffff1f;width:300px;height:300px;animation:18s linear infinite orbitSpin;transform:translate(50%,-50%)rotateX(72deg)}.hero__orbit--two{border:1px dashed #ffffff14;width:260px;height:260px;animation:24s linear infinite reverse orbitSpin;transform:translate(50%,-50%)rotateX(72deg)rotate(60deg)}@keyframes orbitSpin{to{transform:translate(50%,-50%)rotateX(72deg)rotate(360deg)}}.hero__particle{background-color:var(--color-text);border-radius:50%;width:8px;height:8px;position:absolute;top:-4px;left:50%;transform:translate(-50%)}.hero__particle--magenta{background-color:var(--color-text-soft)}.hero__hint{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.25em;color:var(--color-text-faint);opacity:0;transition:opacity .6s var(--ease) 1.5s;align-items:center;gap:8px;font-size:.6875rem;display:inline-flex}.is-revealed .hero__hint{opacity:1}.hero__hint-dot{background-color:var(--color-text);width:4px;height:4px;animation:hintBlink 2s var(--ease) infinite;border-radius:50%;display:inline-block}@keyframes hintBlink{0%,to{opacity:1}50%{opacity:.3}}.hero__eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--color-text-muted);opacity:0;transition:opacity .7s var(--ease-out) .35s, transform .7s var(--ease-out) .35s;align-items:center;gap:12px;font-size:.8125rem;display:inline-flex;transform:translateY(20px)}.is-revealed .hero__eyebrow{opacity:1;transform:translateY(0)}.hero__eyebrow-dash{background-color:var(--color-text-muted);width:32px;height:1px;display:inline-block}.hero__title{font-family:var(--font-display);letter-spacing:-.045em;max-width:18ch;color:var(--color-text);flex-direction:column;gap:.05em;font-size:clamp(2.5rem,7vw,6rem);font-weight:600;line-height:.96;display:flex}.hero__title-row{opacity:0;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);display:block;transform:translateY(40px)}.is-revealed .hero__title-row:first-child{transition-delay:.45s}.is-revealed .hero__title-row:nth-child(2){transition-delay:.6s}.is-revealed .hero__title-row:nth-child(3){transition-delay:.75s}.is-revealed .hero__title-row{opacity:1;transform:translateY(0)}.hero__display{font-family:var(--font-mono);letter-spacing:-.02em;background:var(--gradient-silver);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-style:italic;font-weight:500}.hero__display--magenta{background:var(--gradient-silver);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero__lede{color:var(--color-text-soft);opacity:0;max-width:580px;transition:opacity .7s var(--ease-out) .95s, transform .7s var(--ease-out) .95s;font-size:clamp(.9375rem,1.4vw,1.125rem);line-height:1.7;transform:translateY(20px)}.is-revealed .hero__lede{opacity:1;transform:translateY(0)}.hero__lede strong{color:var(--color-text);font-weight:600}.hero__cta{justify-content:center;gap:var(--space-2);margin-top:var(--space-1);opacity:0;transition:opacity .7s var(--ease-out) 1.1s, transform .7s var(--ease-out) 1.1s;flex-wrap:wrap;display:flex;transform:translateY(20px)}.is-revealed .hero__cta{opacity:1;transform:translateY(0)}.hero__btn{border-radius:var(--radius-full);letter-spacing:-.005em;transition:all var(--transition);border:1px solid #0000;align-items:center;gap:10px;padding:14px 26px;font-size:.9375rem;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.hero__btn--primary{color:var(--color-accent-text);background-color:var(--color-text);border-color:var(--color-text)}.hero__btn--primary:hover{background-color:var(--color-text-soft);transform:translateY(-2px);box-shadow:0 12px 32px -8px #ffffff4d}.hero__btn--primary:hover .hero__btn-arrow{transform:translate(3px,-3px)}.hero__btn-arrow{transition:transform var(--transition-slow);font-size:1rem;display:inline-block}.hero__btn--ghost{color:var(--color-text);border-color:var(--color-border-strong);background-color:#0000}.hero__btn--ghost:hover{border-color:var(--color-text);background-color:var(--color-surface);transform:translateY(-2px)}.hero__stats{gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);margin:var(--space-3) 0 0;text-align:left;opacity:0;width:100%;max-width:560px;transition:opacity .7s var(--ease-out) 1.3s, transform .7s var(--ease-out) 1.3s;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;transform:translateY(20px)}.is-revealed .hero__stats{opacity:1;transform:translateY(0)}.hero__stat{flex-direction:column;gap:4px;margin:0;display:flex}.hero__stat-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-faint);margin:0;font-size:.6875rem}.hero__stat-value{color:var(--color-text);margin:0;font-size:.9375rem;font-weight:500}.hero__stat-value--accent{color:var(--color-success);align-items:center;gap:6px;display:inline-flex}.hero__stat-value--accent:before{content:"";background-color:var(--color-success);width:6px;height:6px;animation:pulseDot 2s var(--ease) infinite;border-radius:50%;display:inline-block}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.5}}@media (width<=640px){.hero{padding:var(--space-6) 0 var(--space-10)}.hero__visual-frame{width:240px;height:240px}.hero__stage,.hero__face{width:160px;height:160px}.hero__face--front{transform:translateZ(80px)}.hero__face--back{transform:rotateY(180deg)translateZ(80px)}.hero__face--right{transform:rotateY(90deg)translateZ(80px)}.hero__face--left{transform:rotateY(-90deg)translateZ(80px)}.hero__face--top{transform:rotateX(90deg)translateZ(80px)}.hero__face--bottom{transform:rotateX(-90deg)translateZ(80px)}.hero__orbit--one{width:220px;height:220px}.hero__orbit--two{width:190px;height:190px}.hero__face-mono{font-size:2rem}.hero__cta{flex-direction:column;align-items:stretch;width:100%;max-width:320px}.hero__btn{justify-content:center}.hero__stats{gap:var(--space-2);text-align:center;grid-template-columns:1fr}.hero__stat{align-items:center}}@media (prefers-reduced-motion:reduce){.hero__cube,.hero__orbit,.hero__particle,.hero__hint-dot,.hero__stat-value--accent:before{animation:none!important}.hero__title-row,.hero__lede,.hero__cta,.hero__stats,.hero__visual,.hero__eyebrow,.hero__hint{opacity:1!important;transform:none!important}.hero__stage{transform:translate(50%,-50%)rotateX(-20deg)rotateY(30deg)!important}}.skills{padding:var(--space-12) 0}.skills__header{margin-bottom:var(--space-8);opacity:0;max-width:820px;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);transform:translateY(40px)}.is-revealed.skills .skills__header{opacity:1;transform:translateY(0)}@supports (animation-timeline:view()){.skills__header{opacity:1;transition:none;animation:linear both sectionHeaderReveal;animation-timeline:view();animation-range:entry entry 80%;transform:translateY(0)}@keyframes sectionHeaderReveal{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}}.skills__eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--color-text-muted);margin-bottom:var(--space-4);align-items:center;gap:12px;font-size:.8125rem;display:inline-flex}.skills__eyebrow-dash{background-color:var(--color-text-muted);width:32px;height:1px;display:inline-block}.skills__title{font-family:var(--font-display);letter-spacing:-.04em;margin-bottom:var(--space-3);color:var(--color-text);font-size:clamp(2.25rem,5.5vw,4rem);font-weight:600;line-height:1}.skills__display{font-family:var(--font-mono);background:var(--gradient-silver);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-style:italic;font-weight:500}.skills__intro{color:var(--color-text-soft);max-width:580px;font-size:1.125rem;line-height:1.6}.skills__grid{gap:var(--space-3);perspective:1200px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));display:grid}.skills__card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--space-4);gap:var(--space-3);transform-style:preserve-3d;transform:perspective(var(--tilt-perspective,1000px)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) scale(var(--tilt-scale,1));will-change:transform;opacity:0;transition:transform .4s var(--ease-out), border-color var(--transition), opacity .8s var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.is-revealed.skills .skills__card{opacity:1}.is-revealed.skills .skills__card:first-child{transition:transform .4s var(--ease-out), border-color var(--transition), opacity .8s var(--ease-out) .2s}.is-revealed.skills .skills__card:nth-child(2){transition:transform .4s var(--ease-out), border-color var(--transition), opacity .8s var(--ease-out) .35s}@supports (animation-timeline:view()){.skills__card{opacity:1;animation:linear both cardReveal;animation-timeline:view();animation-range:entry entry 90%}.skills__card:nth-child(2){animation-delay:.15s}@keyframes cardReveal{0%{opacity:0;transform:perspective(1000px)translateY(80px)scale(.96)}to{opacity:1;transform:perspective(var(--tilt-perspective,1000px)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) scale(var(--tilt-scale,1))}}}.skills__card:hover{border-color:var(--color-border-bright)}.skills__card-glow{border-radius:var(--radius-2xl);background:radial-gradient(400px circle at var(--tilt-mx,50%) var(--tilt-my,50%), #ffffff0d, transparent 50%);opacity:0;transition:opacity var(--transition-slow);pointer-events:none;z-index:0;position:absolute;inset:0}.skills__card:hover .skills__card-glow{opacity:1}.skills__card>:not(.skills__card-glow){z-index:1;position:relative}.skills__card-meta{justify-content:space-between;align-items:center;display:flex}.skills__card-num{font-family:var(--font-mono);color:var(--color-text-faint);letter-spacing:.1em;font-size:.75rem}.skills__card-handle{font-family:var(--font-mono);color:var(--color-text-muted);transition:color var(--transition);font-size:.75rem}.skills__card-handle:hover{color:var(--color-text)}.skills__card-identity{align-items:center;gap:var(--space-2);display:flex}.skills__avatar{border-radius:var(--radius-lg);background:linear-gradient(135deg, #ffffff14, transparent), var(--color-bg-soft);border:1px solid var(--color-border-strong);width:56px;height:56px;font-family:var(--font-mono);color:var(--color-text);letter-spacing:.02em;flex-shrink:0;justify-content:center;align-items:center;font-size:.8125rem;font-weight:500;display:flex;transform:translateZ(40px)}.skills__avatar span{display:block}.skills__name{color:var(--color-text);letter-spacing:-.015em;margin-bottom:4px;font-size:1.125rem;font-weight:600;transform:translateZ(20px)}.skills__role{font-family:var(--font-mono);color:var(--color-text-muted);margin:0;font-size:.8125rem}.skills__primary{flex-wrap:wrap;gap:6px;display:flex;transform:translateZ(20px)}.skills__primary-pill{color:var(--color-accent-text);background-color:var(--color-text);border-radius:var(--radius-full);padding:4px 12px;font-size:.75rem;font-weight:500}.skills__list{padding:var(--space-3) 0 0;border-top:1px solid var(--color-border);flex-wrap:wrap;gap:6px;margin:0;list-style:none;display:flex}.skills__chip{font-family:var(--font-mono);color:var(--color-text-soft);background-color:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius);transition:all var(--transition);padding:4px 10px;font-size:.75rem}.skills__chip:hover{color:var(--color-text);border-color:var(--color-border-bright)}@media (width<=640px){.skills{padding:var(--space-10) 0}.skills__grid{grid-template-columns:1fr}.skills__card{padding:var(--space-3)}.skills__avatar{width:48px;height:48px;font-size:.75rem}}@media (prefers-reduced-motion:reduce){.skills__card,.skills__header{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}}.projects{padding:var(--space-12) 0}.projects__header{margin-bottom:var(--space-8);opacity:0;max-width:820px;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);transform:translateY(40px)}.is-revealed.projects .projects__header{opacity:1;transform:translateY(0)}@supports (animation-timeline:view()){.projects__header{opacity:1;transition:none;animation:linear both projectsHeaderReveal;animation-timeline:view();animation-range:entry entry 80%;transform:translateY(0)}@keyframes projectsHeaderReveal{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}}.projects__eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--color-text-muted);margin-bottom:var(--space-4);align-items:center;gap:12px;font-size:.8125rem;display:inline-flex}.projects__eyebrow-dash{background-color:var(--color-text-muted);width:32px;height:1px;display:inline-block}.projects__title{font-family:var(--font-display);letter-spacing:-.04em;margin-bottom:var(--space-3);color:var(--color-text);font-size:clamp(2.25rem,5.5vw,4rem);font-weight:600;line-height:1}.projects__display{font-family:var(--font-mono);background:var(--gradient-silver);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-style:italic;font-weight:500}.projects__intro{color:var(--color-text-soft);max-width:580px;font-size:1.125rem;line-height:1.6}.projects__grid{gap:var(--space-3);perspective:1200px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.projects__card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--space-4);gap:var(--space-3);transform-style:preserve-3d;transform:perspective(var(--tilt-perspective,1000px)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) scale(var(--tilt-scale,1));will-change:transform;opacity:0;transition:transform .4s var(--ease-out), border-color var(--transition), opacity .8s var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.is-revealed.projects .projects__card{opacity:1}.is-revealed.projects .projects__card:first-child{transition:transform .4s var(--ease-out), border-color var(--transition), opacity .8s var(--ease-out) .2s}.is-revealed.projects .projects__card:nth-child(2){transition:transform .4s var(--ease-out), border-color var(--transition), opacity .8s var(--ease-out) .35s}.is-revealed.projects .projects__card:nth-child(3){transition:transform .4s var(--ease-out), border-color var(--transition), opacity .8s var(--ease-out) .5s}@supports (animation-timeline:view()){.projects__card{opacity:1;animation:linear both projectCardReveal;animation-timeline:view();animation-range:entry entry 85%}.projects__card:nth-child(2){animation-delay:.1s}.projects__card:nth-child(3){animation-delay:.2s}@keyframes projectCardReveal{0%{opacity:0;transform:perspective(1000px)translateY(80px)scale(.96)}to{opacity:1;transform:perspective(var(--tilt-perspective,1000px)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) scale(var(--tilt-scale,1))}}}.projects__card:hover{border-color:var(--color-border-bright)}.projects__card-glow{border-radius:var(--radius-2xl);background:radial-gradient(500px circle at var(--tilt-mx,50%) var(--tilt-my,50%), #ffffff0a, transparent 50%);opacity:0;transition:opacity var(--transition-slow);pointer-events:none;z-index:0;position:absolute;inset:0}.projects__card:hover .projects__card-glow{opacity:1}.projects__card>:not(.projects__card-glow){z-index:1;position:relative}.projects__card--featured{grid-column:1/-1}.projects__card--featured .projects__card-title{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:600;line-height:1.05}.projects__card-head{justify-content:space-between;align-items:center;display:flex}.projects__num{font-family:var(--font-mono);color:var(--color-text-faint);letter-spacing:.1em;font-size:.75rem}.projects__year{font-family:var(--font-mono);color:var(--color-text-muted);letter-spacing:.05em;font-size:.75rem}.projects__card-body{gap:var(--space-2);flex-direction:column;flex:1;display:flex;transform:translateZ(20px)}.projects__role{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background-color:var(--color-bg-soft);align-self:flex-start;padding:4px 10px;font-size:.6875rem;display:inline-block}.projects__card-title{color:var(--color-text);letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:600}.projects__card-description{color:var(--color-text-soft);max-width:64ch;font-size:.9375rem;line-height:1.65}.projects__tags{flex-wrap:wrap;gap:6px;margin:auto 0 0;padding:0;list-style:none;display:flex}.projects__tag{font-family:var(--font-mono);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius);letter-spacing:.02em;transition:all var(--transition);padding:3px 8px;font-size:.6875rem}.projects__tag:hover{color:var(--color-text);border-color:var(--color-border-bright)}.projects__card-footer{gap:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border);display:flex}.projects__link{font-family:var(--font-mono);color:var(--color-text-muted);letter-spacing:-.01em;transition:color var(--transition);align-items:center;gap:6px;font-size:.8125rem;display:inline-flex}.projects__link-arrow{transition:transform var(--transition-slow);display:inline-block}.projects__link:hover{color:var(--color-text)}.projects__link:hover .projects__link-arrow{transform:translate(2px,-2px)}.projects__link--primary{color:var(--color-text)}@media (width<=760px){.projects__grid{grid-template-columns:1fr}.projects__card--featured{grid-column:auto}}@media (prefers-reduced-motion:reduce){.projects__card,.projects__header{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}}.footer{margin-top:var(--space-12);padding:var(--space-12) var(--content-padding) var(--space-4);background-color:var(--color-bg-soft);border-top:1px solid var(--color-border);position:relative;overflow:hidden}.footer:before{content:"";pointer-events:none;background:radial-gradient(at top,#ffffff0d,#0000 70%);width:800px;height:200px;position:absolute;top:0;left:50%;transform:translate(-50%)}.footer__inner{max-width:var(--max-width);margin:0 auto;position:relative}.footer__cta{margin-bottom:var(--space-8);opacity:0;max-width:820px;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);transform:translateY(40px)}.footer.is-revealed .footer__cta{opacity:1;transform:translateY(0)}@supports (animation-timeline:view()){.footer__cta{opacity:1;transition:none;animation:linear both footerCtaReveal;animation-timeline:view();animation-range:entry entry 80%;transform:translateY(0)}@keyframes footerCtaReveal{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}}.footer__eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--color-text-muted);margin-bottom:var(--space-4);align-items:center;gap:12px;font-size:.8125rem;display:inline-flex}.footer__eyebrow-dash{background-color:var(--color-text-muted);width:32px;height:1px;display:inline-block}.footer__title{font-family:var(--font-display);letter-spacing:-.04em;margin-bottom:var(--space-3);max-width:16ch;color:var(--color-text);font-size:clamp(2rem,5vw,3.75rem);font-weight:600;line-height:1}.footer__display{font-family:var(--font-mono);background:var(--gradient-silver);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-style:italic;font-weight:500}.footer__intro{color:var(--color-text-soft);max-width:580px;font-size:1.125rem;line-height:1.6}.footer__team{gap:var(--space-2);margin-bottom:var(--space-8);perspective:1000px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.footer__member{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-2xl);transition:all var(--transition);opacity:0;display:flex;position:relative;overflow:hidden;transform:translateY(30px)}.footer.is-revealed .footer__member{opacity:1;transition:opacity .8s var(--ease-out) calc(.2s + var(--index) * .1s), transform .8s var(--ease-out) calc(.2s + var(--index) * .1s), border-color var(--transition), background-color var(--transition);transform:translateY(0)}@supports (animation-timeline:view()){.footer__member{animation:linear both footerMemberReveal;animation-timeline:view();animation-range:entry entry 90%;animation-delay:calc(var(--index) * .1s);opacity:1;transform:translateY(0)}@keyframes footerMemberReveal{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}}.footer__member:before{content:"";opacity:0;transition:opacity var(--transition-slow);pointer-events:none;background:linear-gradient(135deg,#ffffff0a 0%,#0000 50%);position:absolute;inset:0}.footer__member:hover{border-color:var(--color-border-bright);background-color:var(--color-surface-hover);transform:translateY(-4px)}.footer__member:hover:before{opacity:1}.footer__member:hover .footer__member-arrow{color:var(--color-text);transform:translate(8px,-8px)rotate(-12deg)}.footer__member:hover .footer__member-name{color:var(--color-text)}.footer__member-info{z-index:1;flex-direction:column;gap:4px;display:flex;position:relative}.footer__member-role{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-faint);margin:0;font-size:.6875rem}.footer__member-name{font-family:var(--font-display);letter-spacing:-.025em;color:var(--color-text);transition:color var(--transition);margin:0;font-size:1.5rem;font-weight:600}.footer__member-handle{font-family:var(--font-mono);color:var(--color-text-muted);margin:0;font-size:.8125rem}.footer__member-arrow{color:var(--color-text-muted);transition:all var(--transition-slow);z-index:1;flex-shrink:0;font-size:1.5rem;position:relative}.footer__bottom{padding-top:var(--space-3);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.footer__copy{color:var(--color-text-muted);margin:0;font-size:.8125rem}.footer__copy-mark{color:var(--color-text-faint);margin-right:4px}.footer__meta{font-family:var(--font-mono);color:var(--color-text-faint);margin:0;font-size:.75rem}@media (width<=640px){.footer{padding:var(--space-8) var(--content-padding) var(--space-3)}.footer__team{grid-template-columns:1fr}.footer__bottom{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.footer__cta,.footer__member{opacity:1!important;animation:none!important;transform:none!important}}.marquee{padding:var(--space-4) 0;border-block:1px solid var(--color-border);margin:var(--space-8) calc(var(--content-padding) * -1);position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.marquee__track{align-items:center;gap:var(--space-4);white-space:nowrap;width:max-content;animation:40s linear infinite marqueeScroll;display:flex}.marquee:hover .marquee__track{animation-play-state:paused}@keyframes marqueeScroll{to{transform:translate(-33.333%)}}.marquee__item{align-items:center;gap:var(--space-4);font-family:var(--font-mono);color:var(--color-text-muted);letter-spacing:-.01em;transition:color var(--transition);font-size:clamp(1.125rem,2vw,1.75rem);font-style:italic;font-weight:400;display:inline-flex}.marquee__item:hover{color:var(--color-text)}.marquee__text{display:inline-block}.marquee__dot{color:var(--color-text-faint);font-size:.625em;font-style:normal}.marquee__item:nth-child(2n) .marquee__dot{color:var(--color-text-faint)}@media (prefers-reduced-motion:reduce){.marquee__track{animation:none}}.app{flex-direction:column;min-height:100vh;display:flex;position:relative}.app__main{width:100%;max-width:var(--max-width);padding:0 var(--content-padding);flex:1;margin:0 auto}.app__cursor{pointer-events:none;z-index:1;background:radial-gradient(320px circle at var(--cursor-x,50%) var(--cursor-y,50%), #8b5cf673 0%, #8b5cf626 35%, transparent 70%), radial-gradient(560px circle at var(--cursor-x,50%) var(--cursor-y,50%), #a78bfa14 0%, transparent 80%);filter:blur(60px);opacity:0;transition:opacity .4s var(--ease-out);mix-blend-mode:screen;will-change:opacity;position:fixed;inset:0}.has-cursor .app__cursor{opacity:1}@media (hover:none){.app__cursor{display:none}}@media (prefers-reduced-motion:reduce){.app__cursor{display:none}}
