:root{--ink:#050608;--ink-soft:#0a0c11;--ivory:#f1efe9;--muted:#8d939f;--ice:#9ddcff;--electric:#5cbcff;--signal:#ff2f8b;--line:#f1efe924;--display:"Syne", sans-serif;--body:"Space Grotesk", sans-serif;--mono:"IBM Plex Mono", monospace;--page-progress:0}*{box-sizing:border-box}html{background:var(--ink);color-scheme:dark;scroll-behavior:smooth}body{background:radial-gradient(circle at 55% 10%, #295f881f, transparent 34rem), var(--ink);color:var(--ivory);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5;overflow-x:hidden}body:before{z-index:20;pointer-events:none;content:"";opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%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)' opacity='.8'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--ice);outline-offset:5px}::selection{background:var(--signal);color:#fff}.skip-link{z-index:100;background:var(--ivory);color:var(--ink);font:500 .75rem var(--mono);padding:.8rem 1rem;transition:transform .2s;position:fixed;top:1rem;left:1rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:30;border-bottom:1px solid #0000;grid-template-columns:1fr auto 1fr;align-items:center;height:5.4rem;padding:0 clamp(1.25rem,4vw,4.5rem);transition:background .35s,border-color .35s,height .35s;display:grid;position:fixed;inset:0 0 auto}.site-header.is-scrolled{border-color:var(--line);backdrop-filter:blur(18px);background:#050608c7;height:4.25rem}.brand{width:max-content;font:500 .76rem var(--mono);letter-spacing:.22em;text-transform:uppercase;text-decoration:none}.brand span{color:var(--ice)}.nav-links{align-items:center;gap:clamp(1.25rem,3vw,3rem);display:flex}.nav-links a,.header-status{color:#b7bbc3;font:400 .66rem var(--mono);letter-spacing:.13em;text-transform:uppercase;text-decoration:none}.nav-links a{padding:.5rem 0;transition:color .2s;position:relative}.nav-links a:after{content:"";background:var(--ice);transform-origin:100%;height:1px;transition:transform .3s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:.2rem;left:0;right:0;transform:scaleX(0)}.nav-links a:hover{color:#fff}.nav-links a:hover:after{transform-origin:0;transform:scaleX(1)}.header-status{color:var(--ivory);justify-self:end;align-items:center;gap:.65rem;display:flex}.status-dot{aspect-ratio:1;background:var(--signal);width:.45rem;box-shadow:0 0 1rem var(--signal);border-radius:50%;animation:2.5s ease-in-out infinite breathe}.progress-track{z-index:40;width:100%;height:2px;transform:scaleX(var(--page-progress));transform-origin:0;background:linear-gradient(90deg, var(--signal), var(--ice));position:fixed;top:0;left:0}.scene{border-bottom:1px solid var(--line);position:relative}.scene-sticky{min-height:100svh;position:sticky;top:0;overflow:hidden}.scene--hero{height:185svh}.hero-stage{grid-template-columns:minmax(19rem,.8fr) minmax(30rem,1.35fr) minmax(10rem,.35fr);align-items:center;gap:1rem;padding:7rem clamp(1.25rem,4vw,4.5rem) 3rem;display:grid}.hero-copy{z-index:4;will-change:transform, opacity;align-self:center;position:relative}.kicker,.eyebrow{color:var(--ice);font:500 .68rem var(--mono);letter-spacing:.18em;text-transform:uppercase;margin:0 0 1.4rem}.kicker:before,.eyebrow:before{vertical-align:middle;content:"";background:currentColor;width:1.8rem;height:1px;margin-right:.75rem;display:inline-block}h1{max-width:8ch;font:500 clamp(3.6rem, 7vw, 8.5rem)/.82 var(--display);letter-spacing:-.075em;text-transform:uppercase;margin:0}h1 span{color:#0000;-webkit-text-stroke:1px #f1efe98c;display:block}.hero-intro{color:#a9aeb8;max-width:30rem;margin:2rem 0 0;font-size:clamp(1rem,1.3vw,1.2rem);font-weight:300}.hero-actions{align-items:center;gap:1.5rem;margin-top:2.2rem;display:flex}.text-link{color:var(--ice);font:500 .7rem var(--mono);letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #9ddcffb3;align-items:center;gap:.75rem;padding-bottom:.35rem;text-decoration:none;transition:gap .25s,color .25s;display:inline-flex}.text-link:hover{color:#fff;gap:1.1rem}.hero-note{color:#757b87;font:400 .62rem/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase}.runtime{z-index:2;aspect-ratio:1;pointer-events:none;perspective:900px;will-change:transform, opacity;justify-self:center;width:min(58vw,54rem);position:relative}.runtime:before{content:"";filter:blur(8px);background:radial-gradient(circle at 37% 33%,#ffffff3d,#5cbcff14 28%,#0000 66%);border-radius:50%;position:absolute;inset:18%;box-shadow:0 0 7rem #5cbcff29}.runtime-core{background:radial-gradient(circle at 36% 30%,#e6f7ff2e,#080d14c2 58%);border:1px solid #9ddcff61;border-radius:50%;place-items:center;display:grid;position:absolute;inset:35%;box-shadow:inset 0 0 2rem #9ddcff1a,0 0 3rem #5cbcff1c}.runtime-core:after{aspect-ratio:1;content:"";background:var(--signal);border-radius:50%;width:.5rem;box-shadow:0 0 1.8rem .35rem #ff2f8b8c}.orbit-svg{filter:drop-shadow(0 0 8px #5bbeff38);width:100%;height:100%;transform:rotate(var(--orbit-turn,-12deg));position:absolute;inset:0;overflow:visible}.orbit-line{fill:none;stroke:#9ddcff61;stroke-width:.7px;vector-effect:non-scaling-stroke}.orbit-line--dim{stroke:#f1efe921}.orbit-dash{stroke-dasharray:2 9;stroke-width:1.3px}.orbit-text{fill:#cce9fa94;font:400 8px var(--mono);letter-spacing:1.6px;text-transform:uppercase}.orbit-node{fill:var(--ice);filter:drop-shadow(0 0 6px var(--electric))}.orbit-a{transform-origin:50%;animation:11s ease-in-out infinite alternate orbitFloat}.orbit-b{transform-origin:50%;animation:15s ease-in-out infinite alternate-reverse orbitFloat}.orbit-c{transform-origin:50%;animation:26s linear infinite orbitSpin}.hero-metrics{z-index:3;will-change:transform, opacity;justify-self:end;gap:2.2rem;display:grid;position:relative}.metric-value{font:400 clamp(1.4rem, 2vw, 2.1rem) var(--display);letter-spacing:-.04em;display:block}.metric-label{color:#747a85;font:400 .57rem/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-top:.25rem;display:block}.scroll-cue{z-index:5;color:#767c87;font:400 .58rem var(--mono);letter-spacing:.17em;text-transform:uppercase;align-items:center;gap:.9rem;display:flex;position:absolute;bottom:2rem;left:clamp(1.25rem,4vw,4.5rem)}.scroll-cue:before{content:"";background:linear-gradient(var(--ivory), transparent);width:1px;height:2.5rem;animation:1.8s ease-in-out infinite scrollPulse}.scene--story{background:#07080b;height:310svh}.story-stage{grid-template-columns:minmax(21rem,1fr) minmax(22rem,.85fr);align-items:center;gap:7vw;padding:7rem clamp(1.25rem,7vw,8rem) 4rem;display:grid}.story-visual{height:min(68vw,42rem);max-height:72svh;position:relative}.story-visual .runtime{width:min(48vw,42rem);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.86)}.runtime-label{color:#717681;font:400 .6rem/1.8 var(--mono);letter-spacing:.12em;text-transform:uppercase;position:absolute;bottom:0;left:0}.runtime-label strong{color:var(--ice);font-weight:400}.story-copy{min-height:29rem;position:relative}.story-card{opacity:0;filter:blur(5px);pointer-events:none;flex-direction:column;justify-content:center;transition:opacity .2s,transform .38s cubic-bezier(.2,.7,.2,1),filter .2s;display:flex;position:absolute;inset:0;transform:translateY(2rem)}.story-card.is-active{opacity:1;filter:blur();pointer-events:auto;transform:translateY(0)}.story-number{color:var(--signal);font:500 .68rem var(--mono);letter-spacing:.18em;margin-bottom:2rem}h2{font:500 clamp(2.7rem, 5.3vw, 6rem)/.93 var(--display);letter-spacing:-.055em;text-transform:uppercase;margin:0}.story-card p{color:#9ca2ad;max-width:33rem;margin:1.8rem 0 0;font-size:clamp(1rem,1.25vw,1.18rem);font-weight:300}.skill-line{flex-wrap:wrap;gap:.5rem;margin-top:2rem;display:flex}.skill-line span{border:1px solid var(--line);color:#bec3cc;font:400 .62rem var(--mono);border-radius:999px;padding:.45rem .7rem}.chapter-dots{z-index:4;gap:.5rem;display:flex;position:absolute;bottom:3rem;right:clamp(1.25rem,3vw,3rem)}.chapter-dot{background:#343740;width:1.8rem;height:2px;transition:width .35s,background .35s}.chapter-dot.is-active{background:var(--ice);width:4rem}.scene--projects{background:var(--ink);height:340svh}.projects-stage{flex-direction:column;justify-content:center;padding:6.5rem clamp(1.25rem,4vw,4.5rem) 3rem;display:flex}.projects-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.4rem;display:flex}.projects-heading h2{font-size:clamp(2.7rem,5vw,5.5rem)}.projects-counter{color:#747a85;font:400 .65rem var(--mono);letter-spacing:.14em;padding-bottom:.5rem}.projects-counter span{color:var(--ice)}.projects-viewport{overflow:visible}.projects-track{will-change:transform;gap:1.25rem;width:max-content;display:flex}.project-card{border:1px solid var(--line);background:var(--ink-soft);grid-template-rows:1fr auto;width:clamp(21rem,42vw,42rem);min-height:min(55svh,35rem);transition:border-color .35s,transform .35s cubic-bezier(.2,.7,.2,1);display:grid;position:relative;overflow:hidden}.project-card:hover{border-color:#9ddcff7a;transform:translateY(-.5rem)}.project-art{border-bottom:1px solid var(--line);background:linear-gradient(#ffffff0a 1px,#0000 1px) 0 0/40px 40px,linear-gradient(90deg,#ffffff0a 1px,#0000 1px) 0 0/40px 40px,radial-gradient(circle at 60%,#3587ba3b,#0000 46%);min-height:17rem;position:relative;overflow:hidden}.project-art:after{aspect-ratio:1;content:"";border:1px solid #9ddcff66;border-radius:50%;width:48%;transition:transform .6s cubic-bezier(.2,.7,.2,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2rem #9ddcff09,0 0 0 4rem #9ddcff05}.project-card:hover .project-art:after{transform:translate(-50%,-50%)scale(1.13)rotate(18deg)}.project-art--rights:before{z-index:1;content:"";clip-path:polygon(0 48%,15% 29%,31% 60%,48% 18%,64% 71%,82% 37%,100% 53%,100% 70%,82% 55%,64% 90%,48% 36%,31% 77%,15% 45%,0 65%);background:repeating-radial-gradient(#0000 0 13px,#9ddcff52 14px 15px);position:absolute;inset:14% 12%}.project-art--data:before{z-index:1;content:"";background:radial-gradient(circle at 10% 70%, var(--ice) 0 3px, transparent 4px), radial-gradient(circle at 36% 36%, var(--ice) 0 3px, transparent 4px), radial-gradient(circle at 62% 58%, var(--signal) 0 3px, transparent 4px), radial-gradient(circle at 90% 20%, var(--ice) 0 3px, transparent 4px);filter:drop-shadow(0 0 8px var(--ice));border-bottom:1px solid #9ddcff66;position:absolute;inset:18%;transform:rotate(-8deg)}.project-art--ai:before{z-index:1;content:"AI / AUTOMATION\a MODEL ↔ TOOL ↔ HUMAN";white-space:pre;color:var(--ice);font:400 clamp(.6rem, 1vw, .8rem)/2.8 var(--mono);letter-spacing:.16em;text-align:center;border:1px solid #ff2f8b59;place-items:center;display:grid;position:absolute;inset:22% 15%;box-shadow:inset 0 0 3rem #ff2f8b0f}.project-art--frontend:before{z-index:1;content:"";background:linear-gradient(135deg,#0000 35%,#9ddcff1f 35% 65%,#0000 65%);border:1px solid #9ddcff66;width:64%;height:56%;position:absolute;top:22%;left:18%;transform:skewY(-6deg);box-shadow:1.1rem 1.1rem #ff2f8b1a}.project-content{padding:1.4rem 1.5rem 1.6rem}.project-meta{color:#6f7580;font:400 .58rem var(--mono);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;margin-bottom:.8rem;display:flex}.project-meta span:last-child{color:var(--ice)}.project-card h3{font:500 clamp(1.5rem, 2.5vw, 2.3rem) var(--display);letter-spacing:-.04em;margin:0}.project-card p{color:#8e949f;max-width:31rem;margin:.7rem 0 1.2rem;font-size:.9rem}.project-tags{color:#b3b8c2;font:400 .58rem var(--mono);letter-spacing:.06em}.projects-instruction{color:#606670;font:400 .58rem var(--mono);letter-spacing:.14em;text-transform:uppercase;margin-top:1.4rem}.scene--experience{background:linear-gradient(#08090c,#0b0d12);min-height:130svh;padding:clamp(7rem,13vw,12rem) clamp(1.25rem,7vw,8rem)}.experience-layout{grid-template-columns:minmax(16rem,.75fr) minmax(25rem,1.4fr);gap:10vw;max-width:92rem;margin:0 auto;display:grid}.experience-intro{align-self:start;position:sticky;top:9rem}.experience-intro h2{font-size:clamp(2.9rem,5.4vw,6rem)}.experience-intro p{color:#888e99;max-width:25rem;font-weight:300}.experience-list{border-top:1px solid var(--line)}.experience-item{border-bottom:1px solid var(--line);opacity:.25;grid-template-columns:9rem 1fr;gap:2rem;padding:2.2rem 0;transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1);display:grid;transform:translateY(2rem)}.experience-item.is-visible{opacity:1;transform:translateY(0)}.experience-period{color:#767c87;font:400 .62rem/1.6 var(--mono)}.experience-item h3{font:500 clamp(1.25rem, 2vw, 1.8rem) var(--display);margin:0}.experience-role{color:var(--ice);font:400 .64rem var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:.25rem 0 1rem}.experience-description{color:#888e99;max-width:38rem;margin:0;font-size:.92rem}.experience-tags{flex-wrap:wrap;gap:.5rem;margin-top:1.2rem;display:flex}.experience-tags span{color:#989ea9;font:400 .57rem var(--mono);letter-spacing:.06em}.experience-tags span+span:before{color:#414650;content:"/";margin-right:.5rem}.scene--contact{text-align:center;background:radial-gradient(circle at 50% 55%,#5cbcff1f,#0000 34rem);place-items:center;min-height:100svh;padding:8rem clamp(1.25rem,4vw,4.5rem) 3rem;display:grid;overflow:hidden}.contact-orbit{aspect-ratio:1;border:1px solid #9ddcff1f;border-radius:50%;width:min(65vw,54rem);animation:24s linear infinite orbitSpin;position:absolute}.contact-orbit:before,.contact-orbit:after{border-radius:inherit;content:"";border:1px solid #9ddcff17;position:absolute}.contact-orbit:before{inset:11%}.contact-orbit:after{inset:25%}.contact-content{z-index:2;position:relative}.contact-content h2{max-width:13ch;margin-inline:auto;font-size:clamp(3rem,8vw,9rem)}.contact-content h2 span{color:var(--ice)}.contact-copy{color:#9298a3;max-width:34rem;margin:1.5rem auto 2.5rem;font-size:clamp(1rem,1.3vw,1.2rem);font-weight:300}.contact-link{color:var(--ivory);font:400 .74rem var(--mono);letter-spacing:.06em;background:#9ddcff0a;border:1px solid #9ddcff59;align-items:center;gap:1rem;padding:1rem 1.4rem;text-decoration:none;transition:border-color .25s,background .25s,transform .25s;display:inline-flex}.contact-link:hover{border-color:var(--ice);background:#9ddcff1a;transform:translateY(-3px)}.contact-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.site-footer{z-index:3;color:#626873;font:400 .58rem var(--mono);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;display:flex;position:absolute;bottom:2rem;left:clamp(1.25rem,4vw,4.5rem);right:clamp(1.25rem,4vw,4.5rem)}@keyframes breathe{50%{opacity:.45;transform:scale(.7)}}@keyframes orbitFloat{to{transform:rotate(9deg)scale(1.035)}}@keyframes orbitSpin{to{transform:rotate(360deg)}}@keyframes scrollPulse{50%{opacity:.25;transform-origin:top;transform:scaleY(.6)}}@media (width<=980px){.site-header{grid-template-columns:1fr auto}.nav-links{display:none}.hero-stage{grid-template-columns:1fr 1fr}.hero-metrics{display:none}.runtime{width:min(64vw,38rem)}.story-stage{gap:2rem;padding-inline:2rem}.story-visual .runtime{width:min(57vw,36rem)}.experience-layout{gap:5vw}}@media (width<=720px){.site-header{height:4.2rem;padding-inline:1rem}.header-status{font-size:.54rem}.scene--hero,.scene--story,.scene--projects{height:auto}.scene-sticky{min-height:auto;position:relative;overflow:hidden}.hero-stage{flex-direction:column;align-items:stretch;min-height:100svh;padding:7rem 1.25rem 4.5rem;display:flex}h1{font-size:clamp(3.5rem,18vw,6rem)}.hero-intro{font-size:1rem}.runtime{opacity:.78;order:-1;width:min(92vw,26rem);margin:-2rem auto -4rem}.hero-copy{margin-top:0}.scroll-cue{display:none}.story-stage{padding:7rem 1.25rem;display:block}.story-visual{height:19rem;margin-bottom:2rem}.story-visual .runtime{width:min(100vw,27rem)}.runtime-label{bottom:-1rem}.story-copy{min-height:auto}.story-card{opacity:1;min-height:70svh;padding:4rem 0;position:relative;transform:none}.chapter-dots{display:none}.projects-stage{padding:7rem 1.25rem;display:block}.projects-heading{flex-direction:column;align-items:start}.projects-viewport{scrollbar-width:thin;margin-right:-1.25rem;padding:.5rem 1.25rem 1.5rem 0;overflow-x:auto}.projects-track{transform:none!important}.project-card{width:82vw;min-height:33rem}.projects-instruction{display:none}.scene--experience{min-height:0;padding:7rem 1.25rem}.experience-layout{display:block}.experience-intro{margin-bottom:4rem;position:relative;top:0}.experience-item{opacity:1;grid-template-columns:1fr;gap:.7rem;transform:none}.scene--contact{padding-inline:1.25rem}.contact-orbit{width:120vw}.site-footer{gap:1rem;font-size:.5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.scene{height:auto!important}.scene-sticky{min-height:100svh;position:relative}.story-card{opacity:1;min-height:70svh;position:relative;transform:none}.story-copy{min-height:auto}.chapter-dots{display:none}.projects-viewport{overflow-x:auto}.projects-track{transform:none!important}.experience-item{opacity:1;transform:none}}
