@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Space+Mono:wght@400;700&display=swap";:root{color:#f4f7f8;font-synthesis:none;background:#090b10;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{width:100%;min-height:100%}body{background:#090b10;min-width:320px;margin:0}body.introLocked{overflow:hidden}a{color:inherit;text-decoration:none}.stage{z-index:0;position:fixed;inset:0}.stage:after{content:"";pointer-events:none;background:radial-gradient(circle at 52% 46%,#0000 0 18%,#090b100d 40%,#090b10cc 100%);position:absolute;inset:0}.stage canvas{cursor:pointer;touch-action:pan-y}.touchLayer{display:none}.story{z-index:1;pointer-events:none;position:relative}.chapter{align-items:center;min-height:100svh;padding:120px clamp(28px,8vw,140px);display:flex}.chapter.alignRight{justify-content:flex-end}.copy{pointer-events:auto;width:min(500px,43vw)}.glass{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0c1018a8;border:1px solid #ffffff1f;border-radius:24px;padding:clamp(24px,3vw,42px);position:relative;box-shadow:0 28px 80px #0008}.eyebrow{color:#74dcff;letter-spacing:.2em;margin:0 0 20px;font:700 10px Space Mono}h1,h2{letter-spacing:-.055em;margin:0;line-height:.88}h1{font-size:clamp(74px,10vw,150px)}h2{font-size:clamp(54px,6.2vw,96px)}.lead{color:#b7c1ca;margin:32px 0 0;font-size:clamp(17px,1.6vw,23px);line-height:1.5}.glass>p:last-child{color:#aab3be;max-width:410px;margin:28px 0 0;font-size:17px;line-height:1.65}.mobileName{display:none}.siteHeader{z-index:5;background:linear-gradient(#090b10cc,#0000);justify-content:space-between;align-items:center;height:76px;padding:0 clamp(22px,4vw,64px);display:flex;position:fixed;top:0;left:0;right:0}.logo{color:#74dcff;border:1px solid #74dcff66;border-radius:50%;place-items:center;width:38px;height:38px;font:700 12px Space Mono;display:grid}.siteHeader nav{color:#9fa9b4;gap:clamp(18px,3vw,42px);font-size:12px;display:flex}.siteHeader nav a{transition:color .2s}.siteHeader nav a:hover{color:#fff}.hero{align-items:flex-start;padding-top:19vh;position:relative}.hero .copy{width:min(360px,30vw)}.hero h1{font-size:clamp(58px,6.6vw,100px)}.hero .lead{font-size:clamp(15px,1.25vw,19px)}.scrollCue{color:#76818d;letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:12px;font:10px Space Mono;display:flex;position:absolute;bottom:46px;right:clamp(28px,5vw,76px)}.scrollCue span{background:linear-gradient(#74dcff,#0000);width:1px;height:42px;animation:1.8s ease-in-out infinite breathe}@keyframes breathe{50%{opacity:.4;transform:scaleY(.55)}}.projects{align-items:flex-start;padding-top:18vh}.projectList{border-top:1px solid #ffffff26;margin-top:42px}.projectList>*{border-bottom:1px solid #ffffff26;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;min-height:68px;transition:padding .25s,color .25s;display:grid}.projectList>:hover{color:#74dcff;padding-left:10px}.projectList span,.projectList i{color:#6e7884;text-transform:uppercase;font:9px Space Mono}.projectList i{text-align:right}.contact{min-height:110vh}.contactButton{color:#071015;background:#74dcff;border-radius:9px;justify-content:space-between;align-items:center;margin-top:34px;padding:18px 20px;font-weight:600;transition:transform .2s,background .2s;display:flex}.contactButton:hover{background:#a4eaff;transform:translateY(-2px)}.socials{color:#8f99a4;gap:22px;margin-top:24px;font-size:12px;display:flex}.socials a:hover{color:#fff}.skillBubbleField{display:none}.progress{z-index:6;background:#ffffff12;height:2px;position:fixed;bottom:0;left:0;right:0}.progress span{transform-origin:0;background:#74dcff;width:100%;height:100%;display:block}.introLoader{z-index:10;pointer-events:none;opacity:1;background:radial-gradient(circle at 50% 42%,#0000 0 20%,#090b1044 48%,#090b10 90%);transition:opacity .65s,visibility .65s;position:fixed;inset:0}.introLoader.isLeaving{visibility:hidden;opacity:0}.introLoadPanel{text-align:center;width:min(360px,100vw - 48px);position:absolute;bottom:clamp(48px,9vh,96px);left:50%;transform:translate(-50%)}.introLoadPanel p{color:#dce4e9;letter-spacing:.16em;text-transform:uppercase;margin:0 0 14px;font:10px Space Mono}.introLoadTrack{background:#ffffff1c;height:2px;overflow:hidden}.introLoadTrack span{transform-origin:0;background:linear-gradient(90deg,#2b8fb2,#74dcff);width:100%;height:100%;animation:1.1s ease-in-out infinite alternate awaitingModel;display:block;transform:scaleX(.12)}.introLoader.characterReady .introLoadTrack span{animation:3s cubic-bezier(.2,.65,.3,1) forwards introProgress}.isLoading .siteHeader,.isLoading .story,.isLoading>.progress,.isLoading>.touchLayer{visibility:hidden;opacity:0}.isReady .siteHeader,.isReady .story{animation:.75s both revealSite}@keyframes awaitingModel{to{opacity:.65;transform:scaleX(.32)}}@keyframes introProgress{0%{transform:scaleX(.12)}to{transform:scaleX(1)}}@keyframes revealSite{0%{opacity:0}to{opacity:1}}@media (width>=761px){main:not(.hasScrolled) .touchLayer{z-index:3;cursor:pointer;background:0 0;border:0;width:62%;height:100vh;padding:0;display:block;position:fixed;top:0;right:0}.chapter .copy{opacity:.08;filter:blur(5px);transition:opacity .7s,transform .8s cubic-bezier(.2,.75,.2,1),filter .7s;transform:translate(-56px)scale(.97)}.chapter.alignRight .copy{transform:translate(56px)scale(.97)}.chapter.isVisible .copy{opacity:1;filter:blur();transform:translate(0)scale(1)}.glass{overflow:hidden}.glass:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 25%,#74dcff12 48%,#0000 70%);position:absolute;inset:0;transform:translate(-120%)}.chapter.isVisible .glass:after{animation:1.1s ease-out .2s both cardSweep}.projectList>*{opacity:0;transform:translateY(18px)}.chapter.isVisible .projectList>*{opacity:1;transition:opacity .45s,transform .55s,padding .25s,color .25s;transform:translateY(0)}.chapter.isVisible .projectList>:nth-child(2){transition-delay:.1s}.chapter.isVisible .projectList>:nth-child(3){transition-delay:.2s}.contact .copy{z-index:3}.skillBubbleField{z-index:2;pointer-events:none;display:block;position:fixed;inset:76px 0 0;overflow:hidden}.skillBubble{top:calc(var(--bubble-size) * -1.15);left:var(--bubble-x);width:var(--bubble-size);height:var(--bubble-size);color:#eafaff;cursor:crosshair;pointer-events:auto;animation:skillBubbleFall var(--fall-time) var(--fall-delay) linear both;will-change:transform;background:0 0;border:0;border-radius:50%;padding:0;position:absolute}.skillBubbleCore{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:radial-gradient(circle at 32% 24%,#e8fbff7a 0 4%,#78ddff35 18%,#442a9126 62%,#07131aaa 100%);border:1px solid #9cecff80;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;transition:filter .2s,box-shadow .2s;animation:2.3s ease-in-out infinite alternate skillBubbleWobble;display:flex;position:relative;overflow:visible;box-shadow:inset -12px -18px 28px #4829a84d,inset 9px 10px 18px #d9faff1c,0 0 22px #74dcff31}.skillBubbleCore:before{content:"";filter:blur(1px);background:#fff9;border-radius:50%;width:20%;height:11%;position:absolute;top:16%;left:20%;transform:rotate(-30deg)}.skillBubble:after{content:"";opacity:0;width:7px;height:7px;animation:skillBubbleBurst var(--fall-time) var(--fall-delay) linear both;pointer-events:none;background:#dffaff;border-radius:50%;position:absolute;top:50%;left:50%;box-shadow:0 -18px #74dcff,16px -10px #a993ff,19px 8px #74dcff,8px 19px #dffaff,-10px 17px #8b72ff,-20px 2px #74dcff,-14px -14px #dffaff}.skillBubble strong{letter-spacing:-.04em;font:700 clamp(11px,1vw,15px) Space Mono}.skillBubble small{color:#a7d7e6;letter-spacing:.05em;text-transform:uppercase;margin-top:5px;font:7px Space Mono}.skillBubble:hover .skillBubbleCore{filter:brightness(1.3);box-shadow:inset -12px -18px 28px #4829a866,0 0 38px #74dcff70}.skillBubble.isPopped{pointer-events:none}.skillBubble.isPopped:after{display:none}.skillBubble.isPopped .skillBubbleCore{animation:.5s cubic-bezier(.2,.8,.25,1) forwards skillBubblePop}}@keyframes cardSweep{to{transform:translate(120%)}}@keyframes skillBubbleFall{0%{transform:translate(0,0)rotate(-4deg)}45%{transform:translate3d(var(--bubble-drift), 52vh, 0) rotate(5deg)}88%{opacity:1;filter:none;transform:translateY(calc(100vh - 40px))rotate(-3deg)scale(1)}94%{opacity:1;filter:brightness(1.8);transform:translateY(calc(100vh + 20px))rotate(2deg)scale(1.28)}to{opacity:0;filter:blur(7px)brightness(2);transform:translateY(calc(100vh + 80px))rotate(-3deg)scale(1.7)}}@keyframes skillBubbleWobble{0%{transform:scaleX(.96)scaleY(1.04)}to{transform:scaleX(1.04)scaleY(.96)}}@keyframes skillBubblePop{45%{opacity:1;filter:brightness(2);transform:scale(1.2)}to{opacity:0;filter:blur(8px);transform:scale(1.65)}}@keyframes skillBubbleBurst{0%,88%{opacity:0;transform:translate(-50%,-50%)scale(.15)}93%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(4.2)}}@media (width<=760px){.stage{width:100%;height:100svh;transition:height .35s;position:fixed;inset:0 0 auto}.hasScrolled .stage{height:66svh}.touchLayer{z-index:2;touch-action:pan-y;background:0 0;border:0;width:100%;height:100svh;padding:0;display:block;position:fixed;inset:0 0 auto}.hasScrolled .touchLayer{height:66svh}.story{visibility:hidden;opacity:0;padding-top:34svh}.hasScrolled .story{visibility:visible;opacity:1}.chapter{min-height:auto;padding:66svh 22px 96px}.hero{touch-action:pan-y;min-height:auto;padding-bottom:96px}.siteHeader{display:none}.siteHeader nav{gap:15px;font-size:10px}.chapter{padding:96px 22px 80px}.copy{width:100%}.hero{align-items:flex-start}.hero .copy{width:100%;display:block}.hero h1{font-size:clamp(50px,14vw,72px)}.hero .lead{font-size:14px;line-height:1.4}h2{font-size:clamp(48px,15vw,72px)}.lead{margin-top:22px;font-size:16px}.alignRight{justify-content:flex-start;align-items:flex-end}.alignRight .copy{width:min(92%,430px)}.mobileName{color:#fff;letter-spacing:-.03em;margin:0 0 12px;font-size:24px;font-weight:600;display:block}.glass{border-radius:18px;padding:24px}.projects{align-items:flex-start;padding-top:14vh}.projects .copy{width:92%}.projectList i{display:none}.projectList>*{grid-template-columns:34px 1fr}.scrollCue,.progress{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scrollCue span{animation:none}*{transition-duration:.01ms!important}.chapter .copy,.projectList>*{opacity:1;filter:none;transform:none}.glass:after,.skillBubbleField{display:none}}
