:root{--bg: #080808;--surface: #0d0d0d;--surface-raised: #131313;--text: #f5f5f3;--muted: #9b9b96;--subtle: #686865;--line: rgba(255, 255, 255, .1);--line-strong: rgba(255, 255, 255, .18);--pill: rgba(9, 9, 9, .84);--button-text: #0a0a0a;--button-bg: #f4f4f1;--glow: rgba(255, 255, 255, .1);--pointer-x: 50vw;--pointer-y: 30vh;font-family:DM Sans,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:999px;transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:#ffffff5c}::-webkit-scrollbar-corner{background:transparent}body{margin:0;min-width:320px;overflow-x:hidden;color:var(--text);background:var(--bg);transition:color .35s ease,background .35s ease}body:before{content:"";position:fixed;z-index:200;inset:0;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' 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='.9'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}::selection{color:#0b0b0b;background:#f5f5f3}.portfolio{position:relative;min-height:100vh}.portfolio-stage{opacity:1;transition:opacity .7s cubic-bezier(.2,.7,0,1)}.portfolio.is-intro-running .portfolio-stage{opacity:0}.portfolio.is-intro-running .route-main,.portfolio.is-intro-running .hero-enter{animation-play-state:paused}.launch-banner{position:fixed;z-index:120;top:0;right:0;left:0;min-height:40px;display:grid;place-items:center;padding:8px clamp(14px,3vw,42px);color:var(--bg);background:var(--text);border-bottom:1px solid color-mix(in srgb,var(--bg) 18%,transparent);border-radius:0 0 16px 16px;overflow:hidden;transition:color .35s ease,background .35s ease}.launch-banner-inner{width:min(100%,1440px);display:flex;align-items:center;justify-content:center;gap:clamp(9px,1.3vw,18px);font-family:Geist Mono,monospace;font-size:clamp(.64rem,.8vw,.74rem);letter-spacing:.025em;line-height:1.4}.microsoft-mark{width:14px;height:14px;flex:0 0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:1.5px}.microsoft-mark span{background:currentColor}.launch-banner-label{padding:2px 7px;border:1px solid color-mix(in srgb,currentColor 35%,transparent);border-radius:999px;font-size:.54rem;font-weight:650;letter-spacing:.09em;text-transform:uppercase}.launch-banner-copy strong{font-weight:750}.launch-banner-cta{display:inline-flex;align-items:center;gap:4px;padding-bottom:1px;border-bottom:1px solid color-mix(in srgb,currentColor 42%,transparent);font-weight:700;white-space:nowrap;transition:border-color .18s ease,transform .18s ease}.launch-banner:hover .launch-banner-cta,.launch-banner:focus-visible .launch-banner-cta{border-color:currentColor;transform:translate(3px)}.launch-banner:focus-visible{outline:2px solid var(--bg);outline-offset:-4px}.experience-loader{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;overflow:hidden;color:#f5f5f2;background:#050505;isolation:isolate}.experience-loader:before{content:"";position:absolute;z-index:-1;inset:0;opacity:.14;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.12),transparent 34%),linear-gradient(115deg,transparent 30%,rgba(255,255,255,.025),transparent 70%)}.experience-loader-brand{position:absolute;top:clamp(24px,4vw,46px);right:clamp(24px,5vw,68px);left:clamp(24px,5vw,68px);display:flex;justify-content:space-between;color:#ffffffb8;font-family:Geist Mono,monospace;font-size:.63rem;letter-spacing:.1em;text-transform:uppercase}.experience-loader-brand span{color:#ffffff52}.experience-progress{width:min(84vw,620px);animation:experience-stage-enter .48s cubic-bezier(.2,.7,0,1) both}.experience-progress-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding-bottom:17px;border-bottom:1px solid rgba(255,255,255,.15)}.experience-progress-heading span{padding-bottom:7px;color:#ffffff7a;font-family:Geist Mono,monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase}.experience-progress-heading strong{font-family:DM Sans,sans-serif;font-size:clamp(3.8rem,11vw,8.5rem);font-weight:500;line-height:.72;letter-spacing:-.09em;font-variant-numeric:tabular-nums}.experience-progress-heading strong:after{content:"%";margin-left:8px;color:#ffffff59;font-family:Geist Mono,monospace;font-size:.13em;letter-spacing:0}.experience-progress-track{height:1px;overflow:hidden;background:#ffffff14}.experience-progress-track span{width:100%;height:100%;display:block;background:#f5f5f2;transform-origin:left;transition:transform .1s linear}.experience-hello{width:min(78vw,760px);color:#f7f7f4;animation:experience-stage-enter .5s cubic-bezier(.2,.7,0,1) both}.apple-hello{width:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 0 22px rgba(255,255,255,.07))}.apple-hello-path{stroke-dasharray:1;stroke-dashoffset:1;opacity:0;will-change:stroke-dashoffset,opacity}.apple-hello-path-short{animation:apple-hello-write var(--hello-short-duration) ease-in-out forwards}.apple-hello-path-long{animation:apple-hello-write var(--hello-long-duration) ease-in-out var(--hello-long-delay) forwards}.experience-skip{position:absolute;right:clamp(24px,5vw,68px);bottom:clamp(24px,4vw,46px);padding:8px 0;border:0;border-bottom:1px solid rgba(255,255,255,.18);color:#ffffff75;background:transparent;cursor:pointer;font-family:Geist Mono,monospace;font-size:.61rem;letter-spacing:.1em;text-transform:uppercase;transition:color .18s ease,border-color .18s ease}.experience-skip:hover,.experience-skip:focus-visible{color:#fff;border-color:#ffffffb3}.experience-skip:focus-visible{outline:2px solid #fff;outline-offset:7px}.experience-loader-leaving{pointer-events:none;animation:experience-loader-exit .56s cubic-bezier(.7,0,.2,1) forwards}@keyframes experience-stage-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes apple-hello-write{0%{opacity:0;stroke-dashoffset:1}8%{opacity:1}to{opacity:1;stroke-dashoffset:0}}@keyframes experience-loader-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.018);visibility:hidden}}.route-main{min-height:calc(100vh - 90px);animation:route-enter .52s cubic-bezier(.2,.7,0,1) both}@keyframes route-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.pointer-glow{position:fixed;z-index:-1;width:520px;height:520px;left:calc(var(--pointer-x) - 260px);top:calc(var(--pointer-y) - 260px);border-radius:50%;pointer-events:none;background:radial-gradient(circle,var(--glow),transparent 68%)}.floating-nav-wrap{position:fixed;z-index:100;top:58px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center}.nav-island-pointer{position:absolute;right:calc(100% + 14px);top:16px;display:flex;align-items:flex-end;gap:4px;pointer-events:none;z-index:10;-webkit-user-select:none;user-select:none;opacity:1;transform:translateY(0);transition:opacity .42s cubic-bezier(.2,.9,.15,1),transform .42s cubic-bezier(.2,.9,.15,1)}.floating-nav-wrap:hover .nav-island-pointer,.floating-nav-wrap:focus-within .nav-island-pointer,.nav-island-pointer.is-hidden{opacity:0;transform:translateY(-6px) scale(.96);pointer-events:none;transition:opacity .24s ease,transform .24s ease}.nav-pointer-label{font-family:Caveat,cursive;font-size:1.35rem;font-weight:600;color:#ebeae5;white-space:nowrap;letter-spacing:.01em;transform:rotate(-6deg);text-shadow:0 2px 12px rgba(0,0,0,.8);padding-bottom:8px}.nav-pointer-svg{width:95px;height:52px;overflow:visible;filter:drop-shadow(0 2px 10px rgba(0,0,0,.7))}.nav-arrow-line{stroke:#ebeae5;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:nav-arrow-write 1.4s cubic-bezier(.2,.7,0,1) .3s forwards}.nav-arrow-head{stroke:#ebeae5;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:nav-arrow-write .35s ease-out 1.6s forwards}@keyframes nav-arrow-write{0%{stroke-dashoffset:1;opacity:0}10%{opacity:1}to{stroke-dashoffset:0;opacity:1}}@property --disp-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.dynamic-island.liquid-glass{position:relative;display:flex;align-items:center;justify-content:center;width:154px;height:44px;padding:3px;border-radius:999px;background:#0e0f12d1;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(28px) saturate(190%);-webkit-backdrop-filter:blur(28px) saturate(190%);box-shadow:0 16px 44px #00000080,0 4px 14px #00000059,inset 0 1.5px 1px #ffffff73,inset 0 -1.5px 1.5px #0006;cursor:pointer;overflow:visible;transition:width .62s cubic-bezier(.2,.9,.15,1),border-color .42s ease,background .42s ease,box-shadow .48s cubic-bezier(.2,.9,.15,1);will-change:width,transform}.island-dispersion-glow{position:absolute;inset:-3px;border-radius:999px;background:conic-gradient(from var(--disp-angle, 0deg) at 50% 50%,rgba(52,211,153,.65) 0deg,rgba(6,182,212,.6) 80deg,rgba(99,102,241,.5) 150deg,rgba(168,85,247,.55) 210deg,rgba(244,63,94,.5) 270deg,rgba(251,191,36,.55) 320deg,rgba(52,211,153,.65) 360deg);filter:blur(9px);opacity:.72;pointer-events:none;z-index:0;animation:dispersion-spin 8s linear infinite;transition:opacity .45s cubic-bezier(.2,.9,.15,1)}.island-dispersion-ring{position:absolute;inset:-1.5px;border-radius:999px;background:conic-gradient(from var(--disp-angle, 0deg) at 50% 50%,#34d399 0deg,#06b6d4 70deg,#60a5fa 130deg,#c084fc 190deg,#f472b6 250deg,#fbbf24 310deg,#34d399 360deg);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:1.5px;opacity:.88;pointer-events:none;z-index:1;animation:dispersion-spin 8s linear infinite;transition:opacity .45s cubic-bezier(.2,.9,.15,1)}@keyframes dispersion-spin{0%{--disp-angle: 0deg}to{--disp-angle: 360deg}}.island-glass-specular{position:absolute;inset:1px 1px auto;height:52%;border-radius:999px 999px 0 0;background:linear-gradient(180deg,rgba(255,255,255,.32) 0%,rgba(255,255,255,.08) 55%,transparent 100%);pointer-events:none;z-index:4}.dynamic-island-core{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:999px;background:#ffffff08;box-shadow:inset 0 1px #ffffff26,inset 0 -1px #00000059;overflow:hidden;transition:background .42s ease,box-shadow .42s ease}.dynamic-island.liquid-glass:not(:hover):not(.is-expanded) .dynamic-island-core{background:radial-gradient(ellipse at 50% 50%,#10b98124,#0c0e10b8 80%);box-shadow:inset 0 1px 1px #ffffff47,inset 0 0 18px #10b98133,inset 0 -1px 1px #0006}.dynamic-island.liquid-glass:hover,.dynamic-island.liquid-glass:focus-within,.dynamic-island.liquid-glass.is-expanded{width:376px;border-color:#ffffff42;background:#121216c2;backdrop-filter:blur(34px) saturate(200%);-webkit-backdrop-filter:blur(34px) saturate(200%);box-shadow:0 24px 60px #000000a6,0 8px 24px #0006,inset 0 1.5px .5px #ffffff6b,inset 0 -1px 1px #ffffff14}.dynamic-island.liquid-glass:hover .island-dispersion-glow,.dynamic-island.liquid-glass:focus-within .island-dispersion-glow,.dynamic-island.liquid-glass.is-expanded .island-dispersion-glow{opacity:0}.dynamic-island.liquid-glass:hover .island-dispersion-ring,.dynamic-island.liquid-glass:focus-within .island-dispersion-ring,.dynamic-island.liquid-glass.is-expanded .island-dispersion-ring{opacity:0}.dynamic-island.liquid-glass:hover .dynamic-island-core,.dynamic-island.liquid-glass:focus-within .dynamic-island-core,.dynamic-island.liquid-glass.is-expanded .dynamic-island-core{background:transparent;box-shadow:none}.dynamic-island-summary{display:flex;align-items:center;gap:9px;padding:0 15px;white-space:nowrap;opacity:1;transform:scale(1);transition:opacity .36s .14s ease,transform .36s .14s cubic-bezier(.2,.9,.15,1);-webkit-user-select:none;user-select:none}.dynamic-island:hover .dynamic-island-summary,.dynamic-island:focus-within .dynamic-island-summary,.dynamic-island.is-expanded .dynamic-island-summary{position:absolute;opacity:0;pointer-events:none;transform:scale(.92);transition:opacity .22s ease,transform .24s cubic-bezier(.2,.9,.15,1)}.island-beacon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:9px;height:9px;flex-shrink:0}.island-beacon-ping{position:absolute;width:100%;height:100%;border-radius:50%;background:#34d399;opacity:.7;animation:island-beacon-ping-anim 2s cubic-bezier(0,0,.2,1) infinite}.island-beacon-dot{position:relative;width:6.5px;height:6.5px;border-radius:50%;background:#34d399;box-shadow:0 0 8px #34d399e6,0 0 2px #fff}@keyframes island-beacon-ping-anim{75%,to{transform:scale(2.5);opacity:0}}.island-page-title{font-family:DM Sans,sans-serif;font-size:.82rem;font-weight:600;letter-spacing:-.01em;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6)}.island-dots{display:inline-flex;align-items:center;gap:3px;margin-left:2px;opacity:.55}.island-dot{width:3px;height:3px;border-radius:50%;background:#ffffffb3}.dynamic-island-items{position:absolute;opacity:0;pointer-events:none;transform:scale(.93);display:flex;align-items:center;gap:4px;width:100%;padding:0 4px;transition:opacity .24s ease,transform .24s ease}.dynamic-island:hover .dynamic-island-items,.dynamic-island:focus-within .dynamic-island-items,.dynamic-island.is-expanded .dynamic-island-items{position:relative;opacity:1;pointer-events:auto;transform:scale(1);transition:opacity .38s .14s ease,transform .38s .14s cubic-bezier(.2,.9,.15,1)}.island-nav-link{display:grid;place-items:center;flex:1;min-height:36px;padding:0 14px;border-radius:999px;color:#ffffffd1;background:transparent;font-size:.81rem;font-weight:600;letter-spacing:-.01em;text-decoration:none;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.7);transition:color .2s ease,background .2s ease,box-shadow .2s ease}.island-nav-link:hover{color:#fff;background:#ffffff24;box-shadow:inset 0 1px #ffffff47,0 2px 8px #0000004d}.island-nav-link.is-active{color:#fff;background:#ffffff38;box-shadow:inset 0 1px .5px #ffffff8c,0 2px 10px #00000059}@media (max-width: 720px){.nav-island-pointer{display:none}}.hero{position:relative;min-height:calc(100svh - 68px);display:flex;flex-direction:column;justify-content:center;margin:54px 12px 14px;padding:clamp(60px,7vw,96px) clamp(24px,5vw,68px) clamp(32px,4vw,48px);overflow:hidden;border:1px solid var(--line);border-radius:clamp(28px,4vw,58px);background:var(--surface)}.hero-atmosphere,.hero-grid{position:absolute;inset:0;pointer-events:none}.hero-atmosphere{overflow:hidden;z-index:0}.hero-grid{opacity:.16;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:linear-gradient(to bottom,transparent,black 30%,transparent 90%);mask-image:linear-gradient(to bottom,transparent,black 30%,transparent 90%)}.hero-orb{position:absolute;border-radius:50%;filter:blur(70px);will-change:transform}.hero-orb-one{top:-36%;left:3%;width:min(70vw,960px);height:min(70vw,960px);background:#ffffffa1;animation:drift-one 16s ease-in-out infinite alternate}.hero-orb-two{top:-24%;right:-25%;width:min(58vw,820px);height:min(58vw,820px);background:#7d7d7d6b;animation:drift-two 19s ease-in-out infinite alternate}.hero-silvermist{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;pointer-events:none;opacity:.52;filter:contrast(1.15) brightness(.85)}.hero-silvermist canvas{width:100%!important;height:100%!important;display:block}.hero-silvermist-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 30% 40%,rgba(8,8,8,.1) 0%,rgba(8,8,8,.55) 70%,var(--surface) 100%),linear-gradient(to bottom,transparent 50%,var(--surface) 98%)}@keyframes drift-one{0%{transform:translate3d(-10%,-3%,0) scale(1)}to{transform:translate3d(18%,8%,0) scale(1.12)}}@keyframes drift-two{0%{transform:translate3d(8%,-4%,0) scale(1.06)}to{transform:translate3d(-20%,14%,0) scale(.94)}}@keyframes light-wave-drift{0%{transform:translate3d(-6%,-2%,0) skew(-7deg) scale(1.02)}to{transform:translate3d(8%,5%,0) skew(5deg) scale(1.12)}}.hero-content{position:relative;z-index:1;width:min(100%,1400px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:center;gap:clamp(40px,6vw,110px);margin:auto}.hero-kicker{display:flex;align-items:center;gap:11px;margin-bottom:24px;font-size:clamp(.9rem,1.3vw,1.05rem);font-weight:600}.status-dot{width:9px;height:9px;border-radius:50%;background:#75d89c;box-shadow:0 0 0 5px #75d89c1f}.hero h1,.hero-main-title{max-width:880px;margin:0}.hero-title-role{display:block;font-family:DM Sans,sans-serif;font-size:clamp(2.8rem,5.8vw,6.2rem);font-weight:500;line-height:.94;letter-spacing:-.055em;color:var(--text)}.hero-title-cursive{display:block;font-family:Caveat,cursive;font-size:clamp(3.4rem,7.4vw,7.2rem);font-weight:600;line-height:.92;letter-spacing:-.015em;color:#f5f4ef;margin-top:2px;transform:rotate(-1.5deg);transform-origin:left center;background:linear-gradient(135deg,#fff 15%,#e2e1db 65%,#a8a8a2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 14px rgba(255,255,255,.07))}.hero h1 span:not(.hero-title-role):not(.hero-title-cursive){display:block;color:var(--muted)}.hero-summary{max-width:680px;margin:28px 0 0;color:var(--muted);font-size:clamp(1rem,1.4vw,1.25rem);line-height:1.55}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 20px;border:1px solid var(--line);border-radius:13px;font-size:.85rem;font-weight:600;transition:transform .18s ease,background .18s ease,border-color .18s ease}.button:hover{transform:translateY(-3px)}.button-primary{color:var(--button-text);background:var(--button-bg)}.button-secondary{background:#ffffff06}.button-secondary:hover{border-color:var(--line-strong);background:var(--surface-raised)}.hero-visual{position:relative;width:min(100%,440px);justify-self:end}.portrait-frame{position:relative;padding:8px;overflow:hidden;border:1px solid var(--line-strong);border-radius:34px;background:#0404049e;box-shadow:0 35px 80px #00000047;transform:rotate(1.2deg)}.ripple-portrait{position:relative;width:100%;aspect-ratio:.96;overflow:hidden;border-radius:27px;outline:none;isolation:isolate;cursor:crosshair}.ripple-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;border-radius:inherit;pointer-events:none;z-index:1;opacity:0;transition:opacity .35s ease}.ripple-canvas.is-ready{opacity:1}.ripple-image-stack,.portrait-image{position:absolute;inset:0;width:100%;height:100%}.ripple-image-stack{transform:translateZ(0);transition:opacity .4s ease}.ripple-image-stack.is-hidden{opacity:0;pointer-events:none}.portrait-image{object-fit:cover;transition:opacity .85s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1),filter .85s ease}.portrait-image-base{opacity:1;filter:contrast(1.02) saturate(1.04)}.portrait-image-transition{opacity:0;transform:scale(1.035);filter:contrast(1.03) saturate(.96)}.ripple-portrait.is-transitioned .portrait-image-base{opacity:0;transform:scale(1.025)}.ripple-portrait.is-transitioned .portrait-image-transition{opacity:1;transform:scale(1)}.ripple-glass{position:absolute;z-index:3;inset:0;pointer-events:none;border:1px solid rgba(255,255,255,.12);border-radius:inherit;background:linear-gradient(125deg,rgba(255,255,255,.1),transparent 28%),linear-gradient(to top,rgba(0,0,0,.08),transparent 30%);box-shadow:inset 0 0 32px #ffffff0a;transition:box-shadow .5s ease}.ripple-portrait:hover .ripple-glass,.ripple-portrait:focus-visible .ripple-glass{box-shadow:inset 0 0 45px #ffffff17,inset 0 0 90px #00000014}.ripple-portrait:focus-visible{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--text)}.portrait-status,.portrait-code{position:absolute;z-index:2;font-family:Geist Mono,monospace;font-size:.62rem;letter-spacing:.07em;text-transform:uppercase}.portrait-status{top:23px;left:23px;padding:8px 10px;color:#eeeeea;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#0505059e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.portrait-code{right:22px;bottom:22px;display:flex;gap:12px;color:#e7e7e4;text-shadow:0 1px 6px #000}.resume-chip{position:absolute;right:-20px;bottom:-20px;display:flex;align-items:center;gap:8px;min-height:46px;padding:0 15px;color:#0a0a0a;border-radius:13px;background:#f4f4f1;box-shadow:0 14px 32px #00000047;font-size:.78rem;font-weight:600;transition:transform .18s ease}.resume-chip:hover{transform:translateY(-4px) rotate(-2deg)}.hero-meta{position:relative;z-index:1;width:min(100%,1160px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin:70px auto 0;padding-top:23px;color:var(--subtle);border-top:1px solid var(--line);font-family:Geist Mono,monospace;font-size:.65rem;letter-spacing:.06em;text-transform:uppercase}.hero-meta span:nth-child(2){text-align:center}.hero-meta a{display:flex;justify-content:flex-end;align-items:center;gap:7px;color:var(--muted)}.hero-enter{opacity:0;animation:hero-enter .85s cubic-bezier(.2,.7,0,1) forwards}.hero-enter-delay-1{animation-delay:.1s}.hero-enter-delay-2{animation-delay:.22s}.hero-enter-delay-3{animation-delay:.36s}@keyframes hero-enter{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.page-section{width:min(100%,1440px);margin:0 auto;padding:clamp(100px,12vw,180px) clamp(24px,6vw,88px)}.section-heading{display:grid;grid-template-columns:54px minmax(0,1.15fr) minmax(280px,.6fr);align-items:end;gap:clamp(26px,4vw,64px);margin-bottom:clamp(64px,8vw,110px);padding-bottom:30px;border-bottom:1px solid var(--line)}.section-index,.section-kicker,.project-eyebrow,.project-number,.milestone-top,.journey-image figcaption span{font-family:Geist Mono,monospace;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase}.section-index{align-self:start;color:var(--subtle)}.section-kicker{margin:0 0 16px;color:var(--muted)}.section-heading h1,.section-heading h2{max-width:760px;margin:0;font-size:clamp(2.55rem,5.2vw,5.8rem);font-weight:500;line-height:.98;letter-spacing:-.055em}.section-heading>p{max-width:470px;margin:0;color:var(--muted);font-size:clamp(.95rem,1.25vw,1.1rem);line-height:1.65}.projects-section .section-heading{margin-bottom:clamp(30px,4vw,52px)}.tech-logo-carousel{position:relative;width:100%;margin-bottom:clamp(82px,10vw,140px);padding:clamp(12px,2vw,24px) 0 clamp(28px,4vw,46px);color:var(--text);-webkit-user-select:none;user-select:none}.tech-logo-carousel-label{margin:0 0 clamp(30px,5vw,56px);color:var(--subtle);font-family:Geist Mono,monospace;font-size:.62rem;letter-spacing:.11em;text-align:center;text-transform:uppercase}.tech-logo-carousel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center}.tech-logo-column{position:relative;height:clamp(84px,9vw,118px);overflow:hidden}.tech-logo-item{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:clamp(8px,1.1vw,14px);color:var(--text);will-change:opacity,transform,filter}.tech-logo-item-current{animation:technology-logo-enter .5s cubic-bezier(.25,.46,.45,.94) var(--logo-wave-delay) both}.tech-logo-item-previous{pointer-events:none;animation:technology-logo-exit .5s cubic-bezier(.25,.46,.45,.94) var(--logo-wave-delay) both}.tech-logo-icon{width:clamp(28px,3.5vw,44px);height:clamp(28px,3.5vw,44px);flex:0 0 auto;color:currentColor;transition:transform .25s cubic-bezier(.2,.7,0,1),opacity .25s ease}.tech-logo-item span{color:var(--muted);font-family:Geist Mono,monospace;font-size:clamp(.5rem,.8vw,.67rem);font-weight:500;letter-spacing:.065em;text-align:center;text-transform:uppercase;white-space:nowrap}@media (max-width: 600px){.tech-logo-column{height:76px}.tech-logo-item{gap:5px}.tech-logo-icon{width:clamp(19px,6vw,26px);height:clamp(19px,6vw,26px)}.tech-logo-item span{font-size:clamp(.39rem,1.65vw,.52rem);letter-spacing:.02em}}.tech-logo-item-current:hover .tech-logo-icon{opacity:.72;transform:scale(1.08)}@keyframes technology-logo-enter{0%{opacity:0;filter:blur(2px);transform:translate3d(0,60%,0)}to{opacity:1;filter:blur(0);transform:translateZ(0)}}@keyframes technology-logo-exit{0%{opacity:1;filter:blur(0);transform:translateZ(0)}to{opacity:0;filter:blur(3px);transform:translate3d(0,-50%,0)}}@keyframes technology-logo-fade-in{0%{opacity:0}to{opacity:1}}@keyframes technology-logo-fade-out{0%{opacity:1}to{opacity:0}}.project-list{display:flex;flex-direction:column;gap:clamp(90px,13vw,190px)}.project-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);align-items:center;gap:clamp(42px,8vw,130px)}.project-card-reverse{grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr)}.project-card-reverse .project-image-wrap{order:2}.project-image-wrap{position:relative;min-height:420px;display:grid;place-items:center;padding:clamp(28px,5vw,70px);overflow:hidden;border:1px solid var(--line);border-radius:clamp(25px,3.5vw,50px);background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.22),transparent 42%),linear-gradient(145deg,#262626,#0f0f0f)}.project-card:nth-child(2) .project-image-wrap,.project-card:nth-child(5) .project-image-wrap{background:radial-gradient(circle at 80% 10%,rgba(255,255,255,.18),transparent 40%),linear-gradient(145deg,#191919,#383838)}.project-card:nth-child(3) .project-image-wrap,.project-card:nth-child(6) .project-image-wrap{background:radial-gradient(circle at 50% 100%,rgba(255,255,255,.16),transparent 45%),linear-gradient(135deg,#323232,#111)}.project-image-wrap:before{content:"";position:absolute;width:65%;aspect-ratio:1;border-radius:50%;background:#ffffff14;filter:blur(28px)}.project-image-wrap img{position:relative;z-index:1;width:100%;border:7px solid #0a0a0a;border-radius:16px;box-shadow:0 28px 60px #00000070;transition:transform .65s cubic-bezier(.2,.7,0,1)}.project-card:hover .project-image-wrap img{transform:scale(1.025) rotate(-.5deg)}.project-number{position:absolute;z-index:2;top:22px;left:24px;color:#ffffffa8}.project-open{position:absolute;z-index:2;right:20px;bottom:20px;width:52px;height:52px;display:grid;place-items:center;color:#0a0a0a;border-radius:50%;background:#f4f4f1;transition:transform .2s ease,background .2s ease}.project-open:hover{transform:rotate(8deg) scale(1.06);background:#fff}.project-details{max-width:500px}.project-eyebrow{margin:0 0 17px;color:var(--subtle)}.project-details h3{margin:0;font-size:clamp(2.5rem,5vw,5.4rem);font-weight:500;line-height:.95;letter-spacing:-.06em}.project-description{margin:25px 0;color:var(--muted);font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.65}.project-stack{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 30px;padding:0;list-style:none}.project-stack li{padding:8px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-family:Geist Mono,monospace;font-size:.65rem}.project-text-link{display:inline-flex;align-items:center;gap:7px;padding-bottom:5px;border-bottom:1px solid var(--line-strong);font-size:.82rem;font-weight:600}.journey-section{width:calc(100% - 24px);max-width:none;border:1px solid var(--line);border-radius:clamp(28px,4vw,58px);background:var(--surface)}.journey-section .section-heading{max-width:1264px;margin-left:auto;margin-right:auto}.journey-grid{max-width:1264px;display:grid;grid-template-columns:minmax(0,.85fr) minmax(360px,1.15fr);gap:clamp(30px,5vw,78px);margin:0 auto}.milestone-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;animation:milestone-grid-enter .7s cubic-bezier(.2,.7,0,1) both}@keyframes milestone-grid-enter{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.milestone-card{width:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;border:1px solid var(--line);border-radius:24px;color:inherit;background:var(--surface-raised);font:inherit;text-align:left;cursor:pointer;transition:transform .25s ease,border-color .25s ease,background .25s ease,color .25s ease}.milestone-card:hover{transform:translateY(-4px);border-color:var(--line-strong)}.milestone-card.is-active{color:#0a0a0a;border-color:#f0f0ec;background:#f0f0ec;transform:translateY(-4px)}.milestone-card:nth-child(1){grid-column:span 12;min-height:185px}.milestone-card:nth-child(2){grid-column:span 5;min-height:250px}.milestone-card:nth-child(3){grid-column:span 7;min-height:250px}.milestone-card:nth-child(4){grid-column:span 12;min-height:195px}.milestone-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:auto;color:var(--subtle)}.milestone-badge-group{display:inline-flex;align-items:center;gap:8px;font-family:Geist Mono,monospace;font-size:.72rem;letter-spacing:.05em}.milestone-label-tag{font-family:Geist Mono,monospace;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--subtle);transition:color .25s ease,border-color .25s ease,background .25s ease}.milestone-card.is-active .milestone-label-tag{background:#00000014;border-color:#00000026;color:#1a1a1a}.milestone-card h3{margin:32px 0 10px;font-size:clamp(1.25rem,1.8vw,1.8rem);font-weight:500;line-height:1.1;letter-spacing:-.03em}.milestone-card:nth-child(1) h3,.milestone-card:nth-child(4) h3{margin-top:24px}.milestone-card p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.55}.milestone-card.is-active p,.milestone-card.is-active .milestone-top,.milestone-card.is-active .milestone-badge-group{color:#62625e}.milestone-card:focus-visible{outline:2px solid var(--text);outline-offset:4px}.milestone-action{display:block;margin-top:18px;color:var(--subtle);font-family:Geist Mono,monospace;font-size:.61rem;letter-spacing:.07em;text-transform:uppercase}.milestone-card.is-active .milestone-action{color:#262624}.journey-image{position:relative;width:100%;height:100%;min-height:520px;margin:0;overflow:hidden;border-radius:30px}.journey-image:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(0,0,0,.82),transparent 60%);pointer-events:none}.journey-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.02)}.journey-image-current{animation:journey-image-enter .52s cubic-bezier(.2,.7,0,1) both}@keyframes journey-image-enter{0%{opacity:0;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}.journey-image figcaption{position:absolute;z-index:2;right:28px;bottom:28px;left:28px;display:flex;flex-direction:column;gap:6px;color:#fff;font-size:1.2rem;font-weight:500;animation:journey-caption-enter .42s ease both}@keyframes journey-caption-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.journey-image figcaption span{color:#ffffff9e}.journey-divider{width:min(100%,1264px);height:1px;margin:clamp(52px,7vw,84px) auto;border:0;background:var(--line)}.experience-block{max-width:1264px;margin:0 auto}.experience-heading{margin-bottom:clamp(40px,5vw,68px)}.work-experience-root{width:100%;max-width:980px;margin:0 auto}.work-experience-item{display:flex;flex-direction:column;gap:18px;padding:8px 0}.work-experience-company{display:flex;align-items:center;gap:12px}.company-logo-slot{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.company-logo-img{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--line-strong);background:transparent}.company-logo-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.company-name-heading{margin:0;font-size:1.15rem;font-weight:600;letter-spacing:-.015em;line-height:1.3}.company-website-link{display:inline-flex;align-items:center;gap:6px;color:var(--text);transition:color .18s ease}.company-website-link:hover{color:var(--muted)}.company-ext-icon{color:var(--subtle);opacity:.7}.current-employer-beacon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;margin-left:2px}.beacon-ping{position:absolute;width:100%;height:100%;border-radius:50%;background:#10b981;opacity:.55;animation:beacon-ping-anim 2s cubic-bezier(0,0,.2,1) infinite}.beacon-dot{position:relative;width:6px;height:6px;border-radius:50%;background:#10b981}@keyframes beacon-ping-anim{75%,to{transform:scale(2.2);opacity:0}}.work-experience-positions{position:relative;display:flex;flex-direction:column;gap:16px;padding-left:14px}.work-experience-positions:before{content:"";position:absolute;left:27px;top:6px;bottom:6px;width:1px;background:var(--line)}.position-entry{position:relative;border:1px solid var(--line);border-radius:18px;background:var(--surface-raised);padding:clamp(16px,2.2vw,24px);transition:border-color .22s ease,transform .22s ease}.position-entry:hover{border-color:var(--line-strong)}.position-header-block{width:100%;display:block}.position-header-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}.position-icon-slot{width:28px;height:28px;flex-shrink:0;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--muted)}.position-title{flex:1 1 auto;margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.015em;color:var(--text)}.position-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 0 40px;padding:0;font-family:Geist Mono,monospace;font-size:.73rem;color:var(--muted)}.meta-item{display:inline-flex;align-items:center}.meta-sep{color:var(--subtle);-webkit-user-select:none;user-select:none}.meta-period{display:inline-flex;align-items:center;gap:4px}.meta-dash{color:var(--subtle)}.meta-ongoing{display:inline-flex;align-items:center;gap:4px;color:var(--text)}.meta-duration{color:var(--subtle)}.position-details-panel{margin-top:18px;padding-top:18px;padding-left:40px;border-top:1px solid var(--line)}.position-bullet-list{margin:0 0 16px;padding:0 0 0 18px;color:var(--muted);font-size:.88rem;line-height:1.65}.position-bullet-list li{margin-bottom:6px}.position-text-desc{margin:0 0 16px;color:var(--muted);font-size:.88rem;line-height:1.65}.position-skills-list{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}.position-skill-tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-family:Geist Mono,monospace;font-size:.68rem;letter-spacing:.02em}.contact-section{position:relative;width:calc(100% - 24px);max-width:none;display:grid;grid-template-columns:minmax(0,.9fr) minmax(430px,.75fr);gap:clamp(48px,9vw,150px);margin:12px;overflow:hidden;border:1px solid var(--line);border-radius:clamp(28px,4vw,58px);background:var(--surface)}.contact-glow{position:absolute;top:-45%;left:-15%;width:70vw;height:70vw;border-radius:50%;pointer-events:none;background:#ffffff29;filter:blur(100px)}.contact-section:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent,var(--surface) 58%)}.contact-intro,.contact-form,.site-footer{position:relative;z-index:1}.contact-intro h1{max-width:700px;margin:0;font-size:clamp(3.2rem,6vw,7rem);font-weight:500;line-height:.93;letter-spacing:-.065em}.contact-intro>p:not(.section-kicker){max-width:580px;margin:28px 0;color:var(--muted);font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.65}.contact-email{display:inline-flex;align-items:center;gap:8px;padding-bottom:5px;border-bottom:1px solid var(--line-strong);font-size:.86rem;font-weight:600}.contact-socials{display:flex;flex-wrap:wrap;gap:18px;margin-top:42px}.contact-socials a{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.76rem;font-weight:600;transition:color .18s ease}.contact-socials a:hover{color:var(--text)}.social-x-mark{font-size:1.03rem;line-height:1}.contact-form{align-self:start;display:flex;flex-direction:column;gap:17px;padding:clamp(22px,3vw,40px);border:1px solid var(--line);border-radius:28px;background:#08080885;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.contact-form label{display:flex;flex-direction:column;gap:8px}.contact-form label>span{color:var(--muted);font-family:Geist Mono,monospace;font-size:.65rem;letter-spacing:.06em;text-transform:uppercase}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);border-radius:12px;outline:0;color:var(--text);background:var(--surface-raised);transition:border-color .18s ease,box-shadow .18s ease}.contact-form input{min-height:48px;padding:0 14px}.contact-form textarea{padding:14px;resize:vertical}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--subtle)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--line-strong);box-shadow:0 0 0 3px var(--glow)}.form-status{margin:0;padding:10px 12px;border-radius:10px;font-size:.78rem}.form-status-success{color:#b8e9c9;background:#41a0631f}.form-status-error{color:#f0b2b2;background:#bc4a4a21}.form-submit{min-height:50px;display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:12px;color:var(--button-text);background:var(--button-bg);font-size:.82rem;font-weight:600;cursor:pointer;transition:transform .18s ease,opacity .18s ease}.form-submit:hover:not(:disabled){transform:translateY(-2px)}.form-submit:disabled{opacity:.55;cursor:not-allowed}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.site-footer{grid-column:1 / -1;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px;margin-top:70px;padding-top:24px;border-top:1px solid var(--line);color:var(--subtle);font-family:Geist Mono,monospace;font-size:.63rem;letter-spacing:.05em;text-transform:uppercase}.site-footer strong{color:var(--text);font-family:DM Sans,sans-serif;font-size:.85rem;letter-spacing:0;text-transform:none}.site-footer span:nth-child(2){text-align:center}.site-footer span:last-child{text-align:right}.route-footer{width:calc(100% - 48px);max-width:1312px;display:flex;align-items:center;justify-content:center;margin:0 auto;padding:30px 0 38px;color:var(--subtle);border-top:1px solid var(--line);font-family:Geist Mono,monospace;font-size:.65rem;letter-spacing:.05em;text-transform:uppercase;text-align:center}.route-footer>span,.hero-title-footer{text-align:center}.route-footer nav{display:flex;justify-content:flex-end;gap:22px}.route-footer nav a{transition:color .18s ease}.route-footer nav a:hover{color:var(--text)}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .75s cubic-bezier(.2,.7,0,1),transform .75s cubic-bezier(.2,.7,0,1)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}@media (max-width: 980px){.hero-content{grid-template-columns:1fr .72fr;gap:45px}.hero-meta{grid-template-columns:1fr 1fr}.hero-meta span:nth-child(2){display:none}.section-heading{grid-template-columns:42px 1fr}.section-heading>p{grid-column:2}.project-card{grid-template-columns:1fr;gap:35px}.project-card-reverse .project-image-wrap{order:0}.project-details{max-width:720px}.journey-grid{grid-template-columns:1fr}.journey-image{min-height:440px;height:clamp(420px,55vw,560px)}.contact-section{grid-template-columns:1fr}.contact-form{max-width:720px}}@media (max-width: 720px){.floating-nav-wrap{top:56px;width:calc(100% - 28px)}.launch-banner-inner{justify-content:flex-start}.launch-banner-cta{margin-left:auto}.floating-nav{width:100%;justify-content:space-between}.floating-nav a{padding:0 11px;font-size:.7rem}.hero{min-height:auto;padding:118px 23px 28px}.hero-content{grid-template-columns:1fr;gap:60px}.hero h1{font-size:clamp(3.2rem,15vw,5.3rem)}.hero-visual{width:min(88%,410px);justify-self:center}.resume-chip{right:-10px}.hero-meta{margin-top:75px;grid-template-columns:1fr}.hero-meta span:first-child{display:none}.hero-meta a{justify-content:flex-start}.page-section{padding-right:23px;padding-left:23px}.section-heading{grid-template-columns:1fr;gap:15px}.section-heading>p{grid-column:auto;margin-top:10px}.section-index{margin-bottom:12px}.project-image-wrap{min-height:300px;padding:46px 20px}.project-details h3{font-size:clamp(2.7rem,13vw,4.2rem)}.milestone-grid{grid-template-columns:1fr}.milestone-card,.milestone-card:nth-child(1),.milestone-card:nth-child(2),.milestone-card:nth-child(3),.milestone-card:nth-child(4){grid-column:span 1;min-height:auto}.work-experience-positions{padding-left:0}.work-experience-positions:before{display:none}.position-meta-row,.position-details-panel{padding-left:0;margin-left:0}.journey-image{min-height:380px;height:clamp(360px,70vw,460px)}.contact-intro h1{font-size:clamp(3rem,14vw,5.2rem)}.field-row,.site-footer{grid-template-columns:1fr}.site-footer span:nth-child(2),.site-footer span:last-child{text-align:left}.route-footer{justify-content:center}.route-footer>span{text-align:center}}@media (max-width: 440px){.launch-banner{padding-right:12px;padding-left:12px}.launch-banner-inner{justify-content:center;gap:8px}.launch-banner-label,.launch-banner-cta{display:none}.launch-banner-copy{font-size:.58rem;letter-spacing:0;white-space:nowrap}.experience-loader-brand span{display:none}.experience-progress{width:calc(100% - 42px)}.experience-progress-heading{gap:12px}.experience-progress-heading span{max-width:100px;line-height:1.5}.experience-hello{width:calc(100% - 38px)}.floating-nav a:nth-child(3){display:none}.hero-actions{align-items:stretch;flex-direction:column}.button{width:100%}.contact-email{font-size:.73rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.tech-logo-item-current{animation-name:technology-logo-fade-in!important;animation-duration:.3s!important;animation-delay:0ms!important}.tech-logo-item-previous{animation-name:technology-logo-fade-out!important;animation-duration:.3s!important;animation-delay:0ms!important}}
