:root{--bg:#061326;--bg-2:#0a1d35;--bg-3:#0d2a47;--panel:#0b1d31ad;--panel-strong:#08182ae6;--line:#c3e2ff21;--line-strong:#c3e2ff40;--text:#eff8ff;--muted:#a7bdd0;--faint:#68839b;--blue:#5b96ff;--blue-2:#2e68ff;--cyan:#79d7ff;--sun:#f6d66f;--mint:#79dfbf;--violet:#b9a9ff;--coral:#ff8b86;--max:1320px;--pad:clamp(22px, 4vw, 64px);--radius:26px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--bg);color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;font-family:Avenir Next,Avenir,SF Pro Display,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;background:var(--bg);min-width:320px}body{background:radial-gradient(circle at 20% -10%,#5b96ff38,#0000 31rem),radial-gradient(circle at 82% 18%,#79d7ff1f,#0000 27rem),linear-gradient(160deg,#061326 0%,#07172b 38%,#0a1d35 100%);min-width:320px;margin:0;overflow-x:hidden}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}body.is-loading{overflow:hidden}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}::selection{color:#061326;background:var(--cyan)}.ambient-canvas,.grid-plane,.noise,.ambient-light{z-index:-4;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.ambient-canvas{z-index:0;opacity:.96;mix-blend-mode:screen}.grid-plane{z-index:0;opacity:.46;transform-origin:50% 0;background-image:linear-gradient(#9dccff0e 1px,#0000 1px),linear-gradient(90deg,#9dccff0e 1px,#0000 1px);background-size:64px 64px;animation:16s linear infinite grid-drift;transform:perspective(900px)rotateX(57deg)scale(1.45)translateY(-17%);-webkit-mask-image:linear-gradient(#000000d9,#0000 82%);mask-image:linear-gradient(#000000d9,#0000 82%)}@keyframes grid-drift{to{background-position:128px 64px,128px 64px}}.ambient-light{z-index:0;filter:blur(14px);will-change:transform;background:radial-gradient(circle,#437fff29,#2f68ff0f 38%,#0000 70%);border-radius:50%;width:540px;height:540px;margin:-270px 0 0 -270px;inset:50% auto auto 50%;transform:translate(0,0)}.noise{z-index:20;opacity:.045;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.72'/%3E%3C/svg%3E")}.cursor-dot,.cursor-ring{z-index:1000;pointer-events:none;opacity:0;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-dot{background:#e9f7ff;border-radius:50%;width:5px;height:5px;box-shadow:0 0 18px #79d7ffe6}.cursor-ring{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#4d85e808;border:1px solid #b3ddffa6;border-radius:50%;width:34px;height:34px;transition:width .18s,height .18s,border-color .18s,background .18s}.cursor-ring.is-active{background:#5b96ff1a;border-color:#79d7ffe6;width:58px;height:58px}.scroll-progress{z-index:60;background:#c4e2ff1f;border-radius:99px;width:3px;height:112px;position:fixed;top:50%;right:18px;overflow:hidden;transform:translateY(-50%)}.scroll-progress i{border-radius:inherit;background:linear-gradient(to bottom, var(--cyan), var(--blue-2));transform-origin:top;width:100%;height:100%;display:block;transform:scaleY(0)}.loader[hidden]{display:none!important}.loader{z-index:2000;background:radial-gradient(circle,#5d9aff3b,#0000 29rem),#061326;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.loader.is-leaving{pointer-events:none}.loader__canvas{opacity:.72;width:100%;height:100%;position:absolute;inset:0}.loader__media{aspect-ratio:16/10;opacity:.17;filter:saturate(.8)contrast(1.05)brightness(.8);border:1px solid #bfe0ff2b;border-radius:24px;width:min(37vw,620px);position:absolute;overflow:hidden;box-shadow:0 40px 90px #00000038}.loader__media img{object-fit:cover;width:100%;height:100%}.loader__media--one{animation:4.8s ease-in-out infinite alternate loader-float-a;top:7vh;left:-7vw;transform:rotate(-10deg)perspective(800px)rotateY(14deg)}.loader__media--two{animation:5.5s ease-in-out infinite alternate loader-float-b;bottom:3vh;right:-8vw;transform:rotate(9deg)perspective(800px)rotateY(-12deg)}@keyframes loader-float-a{0%{transform:translate(-16px,8px)rotate(-10deg)perspective(800px)rotateY(14deg)}to{transform:translate(34px,-24px)rotate(-8deg)perspective(800px)rotateY(18deg)}}@keyframes loader-float-b{0%{transform:translate(20px,-6px)rotate(9deg)perspective(800px)rotateY(-12deg)}to{transform:translate(-28px,28px)rotate(7deg)perspective(800px)rotateY(-16deg)}}.loader__center{z-index:6;justify-items:center;gap:26px;width:min(440px,100vw - 56px);display:grid;position:relative}.loader__mark-shell{aspect-ratio:1;background:radial-gradient(circle,#14385ce6,#07172a57 68%,#0000 70%);border-radius:50%;place-items:center;width:clamp(122px,16vw,188px);animation:1.8s ease-in-out infinite alternate mark-breathe;display:grid;position:relative;box-shadow:0 0 80px #4789ff2e}.loader__mark{z-index:2;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 16px 30px #00000057);width:58%;position:relative}.loader__orbit{border:1px solid #8dc5ff7a;border-radius:50%;position:absolute;inset:10%}.loader__orbit:before{background:var(--cyan);content:"";border-radius:50%;width:8px;height:8px;position:absolute;top:-4px;left:50%;box-shadow:0 0 18px #79d7ffe6}.loader__orbit--a{animation:2.4s linear infinite orbit-spin}.loader__orbit--b{border-color:#5b96ff57;animation:1.55s linear infinite reverse orbit-spin;inset:24%}@keyframes orbit-spin{to{transform:rotate(360deg)}}@keyframes mark-breathe{0%{transform:scale(.96)}to{transform:scale(1.04)}}.loader__status{color:#c8def4;letter-spacing:.03em;justify-content:space-between;align-items:center;gap:20px;width:100%;font-size:13px;font-weight:650;display:flex}.loader__status b{color:#f4fbff;font-variant-numeric:tabular-nums;font-size:18px}.loader__bar{background:#bee0ff21;border-radius:99px;width:100%;height:3px;overflow:hidden}.loader__bar i{border-radius:inherit;transform-origin:0;background:linear-gradient(90deg,#78d7ff,#5b96ff,#b9a9ff);width:100%;height:100%;display:block;transform:scaleX(0);box-shadow:0 0 20px #5b96ff8f}.loader__project{color:#d8ebff2e;letter-spacing:-.055em;white-space:nowrap;mix-blend-mode:screen;font-size:clamp(28px,4.3vw,72px);font-weight:800;position:absolute}.loader__project--a{bottom:13vh;left:4vw;transform:rotate(-6deg)}.loader__project--b{top:10vh;right:4vw;transform:rotate(6deg)}.loader__project--c{transform-origin:0 0;top:36vh;left:6vw;transform:rotate(-90deg)translate(-50%)}.loader__shutter{z-index:20;will-change:transform;background:#061326;width:110%;height:52%;position:absolute;left:-5%;transform:translateY(0)}.loader__shutter--top{top:-52%}.loader__shutter--bottom{bottom:-52%}.loader.is-leaving .loader__center,.loader.is-leaving .loader__media,.loader.is-leaving .loader__project,.loader.is-leaving .loader__canvas{opacity:0;transition:opacity .36s}.loader.is-leaving .loader__shutter--top{animation:.82s cubic-bezier(.76,0,.24,1) forwards shutter-top}.loader.is-leaving .loader__shutter--bottom{animation:.82s cubic-bezier(.76,0,.24,1) forwards shutter-bottom}@keyframes shutter-top{0%{transform:translateY(100%)}48%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes shutter-bottom{0%{transform:translateY(-100%)}48%{transform:translateY(-100%)}to{transform:translateY(0)}}.nav{z-index:80;height:84px;padding:0 var(--pad);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:24px;transition:transform .32s cubic-bezier(.22,1,.36,1),background .26s,border-color .26s,-webkit-backdrop-filter .26s,backdrop-filter .26s;display:flex;position:fixed;top:0;left:0;right:0}.nav.is-scrolled{border-color:var(--line);-webkit-backdrop-filter:blur(20px)saturate(145%);backdrop-filter:blur(20px)saturate(145%);background:#061326b8}.nav.is-hidden{transform:translateY(-105%)}.nav__brand{color:#f4fbff;align-items:center;gap:11px;font-size:14px;font-weight:720;display:inline-flex}.nav__brand img{object-fit:contain;filter:drop-shadow(0 5px 14px #00000040);width:34px;height:34px;transition:transform .24s cubic-bezier(.2,.9,.2,1.4)}.nav__brand:hover img{transform:rotate(-8deg)scale(1.08)}.nav__links{align-items:center;gap:clamp(18px,3vw,38px);display:flex}.nav__links a{color:var(--muted);font-size:13px;font-weight:650;position:relative}.nav__links a:after{background:var(--cyan);content:"";transform-origin:100%;height:1px;transition:transform .2s;position:absolute;bottom:-8px;left:0;right:0;transform:scaleX(0)}.nav__links a:hover{color:#fff}.nav__links a:hover:after{transform-origin:0;transform:scaleX(1)}main{z-index:2;position:relative}.hero{min-height:1120px;width:min(var(--max), calc(100% - 2 * var(--pad)));margin:0 auto;padding:150px 0 96px;position:relative}.hero:after{background:linear-gradient(90deg, transparent, var(--line-strong), transparent);content:"";height:1px;position:absolute;bottom:0;left:0;right:0}.hero__glow{z-index:-1;filter:blur(9px);background:radial-gradient(circle,#417cff3b,#2256b314 45%,#0000 70%);border-radius:50%;width:670px;height:670px;animation:7s ease-in-out infinite alternate hero-pulse;position:absolute;top:140px;right:-14%}@keyframes hero-pulse{0%{transform:translate(-20px,22px)scale(.96)}to{transform:translate(24px,-18px)scale(1.06)}}.hero__copy{z-index:3;width:min(680px,58%);padding-top:10vh;position:relative}.hero h1{letter-spacing:-.078em;margin:0;font-size:clamp(88px,11vw,176px);font-weight:760;line-height:.78}.hero h1 span{opacity:0;color:#0000;background:radial-gradient(circle at var(--title-x,34%) var(--title-y,42%), #f0fbfffa 0 8%, #80dcfff2 18%, transparent 43%), linear-gradient(112deg, #8adfff 0%, #6aabff 37%, #5b8eff 69%, #b4b9ff 112%);filter:drop-shadow(0 0 30px #5099ff14);background-size:128% 135%,100% 100%;-webkit-background-clip:text;background-clip:text;animation:.9s cubic-bezier(.16,1,.3,1) forwards hero-line-in;display:block;transform:translateY(70px)skewY(5deg)}.hero h1 span:nth-child(2){background:radial-gradient(circle at var(--title-x-2,68%) var(--title-y-2,50%), #ebf9fffa 0 7%, #6bd2fff2 19%, transparent 44%), linear-gradient(112deg, #dbeeff 0%, #8adfff 35%, #5b96ff 68%, #b9a9ff 108%);background-size:132% 140%,100% 100%;-webkit-background-clip:text;background-clip:text;animation-delay:90ms}@keyframes hero-line-in{to{opacity:1;transform:translateY(0)skewY(0)}}.hero__summary{color:#b8cee1;letter-spacing:-.025em;max-width:620px;margin:42px 0 0;font-size:clamp(18px,1.8vw,25px);line-height:1.48}.hero__actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.button{border:1px solid var(--line-strong);border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-size:13px;font-weight:720;transition:transform .16s cubic-bezier(.2,.9,.2,1.25),border-color .16s,background .16s,box-shadow .16s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button:active{transform:scale(.97)}.button--primary{color:#051326;background:linear-gradient(135deg,#88d6ff 0%,#659eff 53%,#8fa9ff 100%);border-color:#8fc6ffb3;box-shadow:0 14px 34px #2e68ff36,inset 0 1px #ffffff80}.button--primary:hover{box-shadow:0 19px 46px #2e68ff4a,inset 0 1px #fff9}.button--ghost{color:#d9ebfa;background:#ffffff06}.button--ghost:hover{background:#5b96ff12;border-color:#7ebcff73}.hero__stack{flex-wrap:wrap;gap:8px;margin-top:28px;display:flex}.hero__stack span,.project-facts span{border:1px solid var(--line);color:#a8bfd1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a1f367a;border-radius:999px;align-items:center;min-height:30px;padding:0 10px;font-size:11px;font-weight:680;display:inline-flex}.portrait-stage{--scroll-y:0;--pointer-x:0;--pointer-y:0;z-index:2;aspect-ratio:.88;perspective:1250px;width:min(42vw,510px);transform-style:preserve-3d;position:absolute;top:182px;right:0}.portrait-card{transform:translate3d(calc(var(--scroll-y) * -15px), calc(var(--scroll-y) * -76px), calc(var(--scroll-y) * 160px)) rotateX(calc(3deg + var(--pointer-y) * -4deg + var(--scroll-y) * -8deg)) rotateY(calc(-9deg + var(--pointer-x) * 6deg + var(--scroll-y) * 19deg)) rotateZ(calc(var(--scroll-y) * 2deg));transform-style:preserve-3d;will-change:transform;background:#0b2038;border:1px solid #b0dcff47;border-radius:36px;position:absolute;inset:4% 4% 4% 6%;overflow:hidden;box-shadow:0 45px 120px #0000006b,0 0 70px #326edb1f,inset 0 1px #ffffff1f}.portrait-card img{object-fit:cover;width:100%;height:100%;transform:scale(1.035)}.portrait-card:after{content:"";background:linear-gradient(#0000 54%,#030e1a3d);position:absolute;inset:0}.portrait-card__shine{z-index:3;transform:translateX(calc((var(--pointer-x) + 1) * 12%));mix-blend-mode:screen;pointer-events:none;background:linear-gradient(115deg,#0000 37%,#ffffff29 49%,#0000 61%);position:absolute;inset:-40%}.portrait-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(145deg,#3a72d121,#07152617);border:1px solid #6dadff2e;border-radius:40px;position:absolute}.portrait-backdrop--a{inset:12% 0 0 12%;transform:translate3d(20px,22px,-70px)rotate(5deg)}.portrait-backdrop--b{inset:0 14% 15% 0;transform:translate3d(-18px,0,-115px)rotate(-5deg)}.portrait-chip{z-index:5;color:#dff2ff;-webkit-backdrop-filter:blur(18px)saturate(150%);backdrop-filter:blur(18px)saturate(150%);min-height:38px;transform-style:preserve-3d;will-change:transform;background:#07182bb3;border:1px solid #b4dcff40;border-radius:999px;align-items:center;padding:0 14px;font-size:12px;font-weight:730;display:inline-flex;position:absolute;box-shadow:0 12px 32px #00000036}.portrait-chip--python{color:#ffe89a;transform:translate3d(calc(var(--scroll-y) * -24px), calc(var(--scroll-y) * -15px), 90px) rotate(-8deg);border-color:#f6d66f47;top:7%;left:-4%}.portrait-chip--ts{color:#93c5ff;transform:translate3d(calc(var(--scroll-y) * 28px), calc(var(--scroll-y) * -38px), 110px) rotate(7deg);top:43%;right:-7%}.portrait-chip--cpp{color:#c9bcff;transform:translate3d(calc(var(--scroll-y) * -18px), calc(var(--scroll-y) * 28px), 120px) rotate(-5deg);border-color:#b9a9ff47;bottom:4%;left:2%}.hero__roles{color:#91abc1;flex-wrap:wrap;gap:9px 20px;width:min(820px,68%);font-size:13px;line-height:1.4;display:flex;position:absolute;bottom:260px;left:0}.hero__roles span{position:relative}.hero__roles span:not(:last-child):after{content:"";background:#93c2ec99;border-radius:50%;width:3px;height:3px;position:absolute;top:50%;right:-12px}.hero__stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#06152738;grid-template-columns:repeat(4,1fr);display:grid;position:absolute;bottom:88px;left:0;right:0}.stat{border-right:1px solid var(--line);flex-direction:column;justify-content:center;min-height:116px;padding:22px clamp(18px,2vw,30px);display:flex}.stat:last-child{border-right:0}.stat strong{letter-spacing:-.055em;font-variant-numeric:tabular-nums;font-size:clamp(35px,4vw,60px);line-height:1}.stat span{color:#7f9bb3;margin-top:8px;font-size:11px;font-weight:650;line-height:1.4}.projects,.experience,.contact,.github-section{width:min(var(--max), calc(100% - 2 * var(--pad)));margin:0 auto}.projects{padding:150px 0 120px}.section-heading{justify-content:space-between;align-items:end;gap:34px;margin-bottom:86px;display:flex}.section-heading h2,.github-section h2,.contact h2{letter-spacing:-.062em;margin:0;font-size:clamp(54px,7vw,98px);line-height:.9}.section-heading p{color:#819db5;max-width:410px;margin:0 0 5px;font-size:14px;line-height:1.55}.feature-project{grid-template-columns:minmax(280px,.8fr) minmax(0,1.65fr);align-items:center;gap:clamp(44px,7vw,108px);min-height:760px;padding:90px 0;display:grid;position:relative}.feature-project:before{filter:blur(18px);content:"";pointer-events:none;background:radial-gradient(circle,#4888ff1c,#4888ff05 48%,#0000 70%);border-radius:50%;width:58vw;max-width:880px;height:58vw;max-height:880px;position:absolute;top:50%;left:-22vw;transform:translateY(-50%)}.feature-project:nth-of-type(odd):before{left:auto;right:-22vw}.feature-project__copy{z-index:2;align-self:start;padding-top:40px;position:sticky;top:170px}.feature-project__copy h3{letter-spacing:-.065em;margin:0;font-size:clamp(50px,6vw,84px);line-height:.95}.feature-project__copy>p{color:#a8bfd2;letter-spacing:-.017em;max-width:440px;margin:25px 0 0;font-size:clamp(16px,1.5vw,20px);line-height:1.55}.project-facts{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.project-links{flex-wrap:wrap;gap:20px;margin-top:28px;display:flex}.project-links a{color:#8cc9ff;font-size:13px;font-weight:740;position:relative}.project-links a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .18s;position:absolute;bottom:-5px;left:0;right:0;transform:scaleX(0)}.project-links a:hover:after{transform-origin:0;transform:scaleX(1)}.project-frame,.homebase-gallery,.sentinel-media{transform-style:preserve-3d;will-change:transform;position:relative}.project-frame{background:#07172a;border:1px solid #b5daff33;border-radius:26px;overflow:hidden;box-shadow:0 36px 90px #0000005e,0 0 60px #2e68ff14}.project-frame img{object-fit:cover;object-position:top center;width:100%;height:auto;min-height:420px}.project-frame__rim{z-index:3;border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff14,inset 0 0 0 1px #ffffff06}.project-frame__glare{z-index:2;opacity:0;transform:translateX(var(--glare-x,-25%));pointer-events:none;background:linear-gradient(115deg,#0000 37%,#b8e0ff2e 50%,#0000 63%);transition:opacity .2s;position:absolute;inset:-50%}.project-frame:hover .project-frame__glare,.homebase-gallery:hover .project-frame__glare{opacity:1}.feature-project--cue .project-frame{transform:rotateY(-4deg)rotateX(1deg)}.homebase-gallery{min-height:650px}.homebase-gallery__main{z-index:2;position:absolute;top:6%;left:0;right:12%;transform:rotateY(4deg)rotate(-1deg)}.homebase-gallery__themes{z-index:4;background:#07172adb;border:1px solid #b5daff38;border-radius:18px;width:47%;position:absolute;bottom:0;right:0;overflow:hidden;transform:translateZ(64px)rotate(3deg);box-shadow:0 26px 70px #0000006e}.homebase-gallery__themes img{width:100%;height:auto}.sentinel-media{min-height:660px}.sentinel-media__photo,.sentinel-media__card{border:1px solid #b5daff33;border-radius:25px;position:absolute;overflow:hidden;box-shadow:0 34px 86px #00000061}.sentinel-media__photo{background:#0a1a2e;inset:0 13% 10% 0;transform:rotate(-2.4deg)rotateY(-3deg)}.sentinel-media__photo img{object-fit:cover;width:100%;height:100%}.sentinel-media__card{z-index:3;background:#091a30;width:48%;bottom:0;right:0;transform:translateZ(70px)rotate(4deg)}.sentinel-media__card img{width:100%;height:auto}.project-index{border-top:1px solid var(--line);margin-top:110px}.project-row{border-bottom:1px solid var(--line);grid-template-columns:.7fr 1.6fr .55fr;align-items:center;gap:30px;min-height:112px;padding:22px 10px;transition:background .18s,transform .18s cubic-bezier(.2,.9,.2,1.2),border-color .18s;display:grid;position:relative}.project-row:before{background:linear-gradient(var(--cyan), var(--blue-2));content:"";transform-origin:50%;width:3px;transition:transform .18s;position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.project-row:hover{background:#5997ff0b;border-color:#b4daff33;transform:translate(5px)}.project-row:hover:before{transform:scaleY(1)}.project-row>span{letter-spacing:-.035em;font-size:clamp(21px,2vw,30px);font-weight:730}.project-row p{color:#8da8bd;margin:0;font-size:14px;line-height:1.5}.project-row b{color:#6f91ad;text-align:right;justify-self:end;font-size:11px;font-weight:700}.project-row--private{cursor:default}.github-section{grid-template-columns:minmax(290px,.7fr) minmax(0,1.35fr);align-items:center;gap:clamp(50px,8vw,128px);min-height:980px;padding:130px 0;display:grid;position:relative}.github-section:before{content:"";pointer-events:none;background:radial-gradient(circle,#3e81ff21,#1f509909 48%,#0000 72%);border-radius:50%;width:92vw;max-width:1200px;height:92vw;max-height:1200px;position:absolute;top:8%;left:50%;transform:translate(-50%)}.github-section__copy{z-index:2;position:relative}.github-section__copy p{color:#9eb6c9;max-width:420px;margin:26px 0;font-size:17px;line-height:1.6}.github-card{will-change:transform;border:1px solid #add9ff3d;border-radius:25px;width:min(620px,96%);max-height:740px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotateY(-8deg)rotateX(3deg);box-shadow:0 44px 120px #0000006b,0 0 80px #377ae71c}.experience{padding:130px 0 150px}.experience-list{border-top:1px solid var(--line)}.experience-item{border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,.6fr) minmax(0,1.5fr);align-items:center;gap:42px;min-height:150px;padding:26px 12px 26px 32px;display:grid;position:relative;overflow:hidden}.experience-item:before{background:linear-gradient(var(--cyan), var(--blue-2));content:"";transform-origin:top;width:2px;transition:transform .26s;position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.experience-item:after{content:"";background:linear-gradient(90deg,#0000,#5699ff0f,#0000);width:30%;height:100%;transition:left .5s cubic-bezier(.22,1,.36,1);position:absolute;top:0;left:-20%;transform:skew(-20deg)}.experience-item:hover:before{transform:scaleY(1)}.experience-item:hover:after{left:110%}.experience-item time{color:#7897b0;font-size:12px;font-weight:670}.experience-item h3{letter-spacing:-.045em;margin:0;font-size:clamp(26px,3vw,40px);line-height:1}.experience-item p{color:#9db4c7;margin:8px 0 0;font-size:15px;line-height:1.4}.contact{padding:0 0 110px}.contact__panel{min-height:360px;transform-style:preserve-3d;background:radial-gradient(circle at 82% 20%,#63a4ff38,#0000 22rem),linear-gradient(145deg,#0c2641e6,#07172ae0);border:1px solid #b1daff33;border-radius:34px;justify-content:space-between;align-items:end;gap:60px;padding:clamp(34px,5vw,70px);display:flex;position:relative;overflow:hidden;box-shadow:0 40px 110px #0000004a,inset 0 1px #ffffff14}.contact__panel:before,.contact__panel:after{content:"";border:1px solid #90c7ff1f;border-radius:50%;position:absolute}.contact__panel:before{width:420px;height:420px;top:-160px;right:-80px}.contact__panel:after{width:220px;height:220px;top:-40px;right:40px}.contact__panel h2{z-index:2;position:relative}.contact__panel p{z-index:2;color:#9fb7ca;max-width:520px;margin:26px 0 0;font-size:17px;line-height:1.55;position:relative}.contact__panel p strong{color:#dbeeff}.contact__links{z-index:2;gap:12px;min-width:min(100%,320px);display:grid;position:relative}.contact__links a{border:1px solid var(--line-strong);color:#d8ebfb;background:#04122247;border-radius:14px;justify-content:space-between;align-items:center;min-height:50px;padding:0 16px;font-size:13px;font-weight:690;transition:transform .17s cubic-bezier(.2,.9,.2,1.2),background .17s,border-color .17s;display:flex}.contact__links a:hover{background:#5b96ff14;border-color:#82beff80;transform:translate(5px)}.reveal-up{opacity:0;transition:opacity .75s,transform .9s cubic-bezier(.16,1,.3,1);transform:translateY(42px)}.reveal-up.is-visible{opacity:1;transform:translateY(0)}@media (width<=1120px){.hero{min-height:1180px}.hero__copy{width:61%}.portrait-stage{width:43vw;top:225px}.feature-project{grid-template-columns:minmax(250px,.7fr) minmax(0,1.45fr);gap:50px}.project-frame img{min-height:340px}.github-card-wrap{height:660px}}@media (width<=900px){.cursor-dot,.cursor-ring,.scroll-progress{display:none}.nav{height:72px}.nav__brand span{display:none}.hero{min-height:auto;padding-top:120px;padding-bottom:110px}.hero__copy{width:100%;padding-top:0}.hero h1{font-size:clamp(72px,17vw,126px)}.hero__summary{max-width:650px}.portrait-stage{width:min(620px,88vw);margin:78px auto 0;position:relative;top:auto;right:auto}.hero__roles,.hero__stats{position:relative;bottom:auto;left:auto;right:auto}.hero__roles{width:100%;margin-top:65px}.hero__stats{grid-template-columns:repeat(2,1fr);margin-top:34px}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.section-heading{flex-direction:column;align-items:start;margin-bottom:54px}.feature-project{grid-template-columns:1fr;gap:40px;min-height:auto;padding:70px 0}.feature-project__copy{padding-top:0;position:relative;top:auto}.feature-project__copy>p{max-width:680px}.homebase-gallery,.sentinel-media{min-height:min(78vw,640px)}.github-section{grid-template-columns:1fr;gap:70px;min-height:auto;padding:110px 0}.github-card-wrap{height:min(110vw,760px)}.experience-item{grid-template-columns:180px 1fr}.contact__panel{flex-direction:column;align-items:start}}@media (width<=650px){:root{--pad:18px}.nav__links{gap:16px}.nav__links a:nth-child(2){display:none}.hero{padding-top:110px}.hero h1{font-size:clamp(66px,20vw,96px)}.hero__summary{margin-top:30px;font-size:18px}.portrait-stage{width:96%;margin-top:60px}.portrait-card{border-radius:26px}.portrait-chip{min-height:33px;padding:0 11px;font-size:10px}.hero__roles{gap:7px;display:grid}.hero__roles span:after{display:none}.hero__stats{grid-template-columns:1fr 1fr}.stat{min-height:105px;padding:18px 15px}.projects{padding-top:100px}.section-heading h2,.github-section h2,.contact h2{font-size:clamp(52px,16vw,76px)}.feature-project__copy h3{font-size:clamp(46px,14vw,68px)}.project-frame{border-radius:18px}.project-frame img{min-height:230px}.homebase-gallery,.sentinel-media{min-height:410px}.project-row{grid-template-columns:1fr;gap:8px;min-height:0;padding:24px 8px}.project-row b{text-align:left;justify-self:start}.github-card-wrap{height:135vw;max-height:700px}.github-card{width:100%}.experience-item{grid-template-columns:1fr;gap:12px;padding:25px 10px 25px 20px}.contact__panel{border-radius:24px;min-height:420px}.contact__links{width:100%}.loader__project--c,.loader__project--d{display:none}.loader__media{width:66vw}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.grid-plane{animation:none}}.scroll-progress:after{left:50%;top:calc(var(--scroll-position,0) * (100% - 8px));content:"";background:#79d7ff;border:1px solid #cfecffd9;border-radius:50%;width:9px;height:9px;transition:top 70ms linear;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 14px #79d7ffd9,0 0 30px #5b96ff8c}.feature-project{--media-shift:0px}.feature-project .project-frame>img,.homebase-gallery__themes img,.sentinel-media__photo img,.sentinel-media__card img{will-change:transform;transition:transform .18s linear}.feature-project .project-frame>img{transform:scale(1.035) translate3d(0, var(--media-shift), 0)}.homebase-gallery__themes img{transform:scale(1.055) translate3d(0, calc(var(--media-shift) * -.4), 0)}.sentinel-media__photo img{transform:scale(1.06) translate3d(0, var(--media-shift), 0)}.sentinel-media__card img{transform:scale(1.02) translate3d(0, calc(var(--media-shift) * -.32), 0)}.github-metrics{flex-wrap:wrap;gap:8px;margin:-6px 0 28px;display:flex}.github-metrics span{border:1px solid var(--line);color:#8faabd;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#091e3475;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:0 11px;font-size:11px;font-weight:650;display:inline-flex}.github-metrics strong{color:#dff2ff;font-size:13px}.sentinel-media__photo--one{inset:0 22% 24% 0;transform:rotate(-3deg)rotateY(-4deg)}.sentinel-media__photo--two{z-index:2;width:45%;height:45%;inset:9% 0 auto auto;transform:translateZ(44px)rotate(4deg)}.sentinel-media__card{width:51%}@media (width<=650px){.github-metrics{margin-top:-2px}.sentinel-media__photo--one{inset:0 12% 26% 0}.sentinel-media__photo--two{width:48%;height:39%}}.hero__languages{color:#b9d2e5;letter-spacing:.02em;margin:22px 0 0;font-size:13px;font-weight:720}.hero__languages i{color:#4e789a;margin:0 9px;font-style:normal}.hero__stack,.portrait-chip{display:none!important}.tilt-card{--tilt-rx:0deg;--tilt-ry:0deg;--glare-x:50%;--glare-y:50%;transform:perspective(1250px) rotateX(var(--tilt-rx)) rotateY(var(--tilt-ry));transform-style:preserve-3d;will-change:transform;transition:transform .22s cubic-bezier(.16,1,.3,1),border-color .18s,box-shadow .18s}.tilt-card:hover{border-color:#b5dcff57}.tilt-card .project-frame__glare{opacity:0;background:radial-gradient(circle at var(--glare-x) var(--glare-y), #b8e0ff2e, transparent 28%);transform:none}.tilt-card:hover .project-frame__glare{opacity:1}.feature-project--cue .project-frame,.project-frame--homebase{transform:perspective(1250px) rotateX(var(--tilt-rx)) rotateY(var(--tilt-ry))}.project-frame--homebase img{object-fit:cover;object-position:center top;min-height:520px}.feature-project__copy>p strong{color:#ddecf8;font-weight:760}.duck-scene{background:#0a172b;border:1px solid #b5daff38;border-radius:28px;min-height:620px;position:relative;overflow:hidden;box-shadow:0 38px 96px #00000061,0 0 70px #3e80ff14}.duck-scene:after{content:"";pointer-events:none;background:linear-gradient(#030a1808,#030a1833);position:absolute;inset:0}.duck-scene__background{object-fit:cover;width:110%;height:110%;transform:translateZ(-60px) scale(1.1) translateY(calc(var(--media-shift,0px) * .35));filter:saturate(.95)brightness(.82);position:absolute;inset:-5%}.duck-scene__main,.duck-scene__side{object-fit:contain;filter:drop-shadow(0 32px 36px #0000007a);width:auto;height:92%;transition:transform .25s cubic-bezier(.16,1,.3,1),opacity .25s;position:absolute;bottom:-5%}.duck-scene__main{z-index:3;transform:translateX(-50%) translateZ(70px) translateY(calc(var(--media-shift,0px) * -.25));left:50%}.duck-scene__side{z-index:2;opacity:.72;height:68%}.duck-scene__side--left{left:-6%;transform:translateZ(20px)rotate(-5deg)}.duck-scene__side--right{right:-5%;transform:translateZ(20px)rotate(5deg)}.duck-scene:hover .duck-scene__main{transform:translate(-50%)translateZ(92px)translateY(-8px)scale(1.025)}.duck-scene:hover .duck-scene__side--left{transform:translateZ(30px)translate(-9px)rotate(-7deg)}.duck-scene:hover .duck-scene__side--right{transform:translateZ(30px)translate(9px)rotate(7deg)}.github-facts{border-top:1px solid var(--line);gap:0;margin:8px 0 34px;display:grid}.github-facts div{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:14px 0;display:grid}.github-facts dt{color:#7694ad;font-size:11px;font-weight:650;line-height:1.45}.github-facts dd{color:#deeffc;text-align:right;margin:0;font-size:13px;font-weight:760}.github-metrics{display:none!important}.experience-layout{grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);align-items:center;gap:clamp(52px,8vw,128px);display:grid}.experience-orbit{--exp-x:0;--exp-y:0;perspective:1000px;background:radial-gradient(circle at 50% 48%,#488aff24,#0000 15rem),linear-gradient(145deg,#091e35a6,#05132452);border:1px solid #b1daff29;border-radius:34px;min-height:560px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 36px 90px #0000002e}.experience-orbit:before{opacity:.13;content:"";background-image:radial-gradient(circle,#addcff57 0 1px,#0000 1.5px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000 10%,#0000 76%);mask-image:radial-gradient(circle,#000 10%,#0000 76%)}.experience-orbit__lines{width:92%;height:92%;position:absolute;inset:4%;overflow:visible}.experience-orbit__lines path{fill:none;stroke:#80beff21;stroke-width:1.2px;stroke-dasharray:5 8;animation:15s linear infinite orbit-dashes}@keyframes orbit-dashes{to{stroke-dashoffset:-130px}}.experience-logo{z-index:3;background:#fff;border:1px solid #bcdfff40;place-items:center;transition:box-shadow .18s,border-color .18s,filter .18s;display:grid;position:absolute;overflow:hidden;box-shadow:0 24px 64px #00000052,0 0 42px #4289ff1c}.experience-logo:hover{filter:brightness(1.04);border-color:#80caffb3;box-shadow:0 30px 76px #0000005c,0 0 48px #599dff33}.experience-logo--devrev{width:190px;height:118px;transform:translate3d(calc(var(--exp-x) * 18px), calc(var(--exp-y) * 12px), 60px) rotate(-5deg);border-radius:26px;top:11%;left:7%}.experience-logo--asdrp{width:205px;height:126px;transform:translate3d(calc(var(--exp-x) * -15px), calc(var(--exp-y) * 20px), 80px) rotate(5deg);border-radius:26px;top:22%;right:6%}.experience-logo--cpi{width:134px;height:134px;transform:translate3d(calc(var(--exp-x) * 24px), calc(var(--exp-y) * -15px), 100px) rotate(-4deg);border-radius:33px;bottom:10%;left:23%}.experience-orbit__core{z-index:2;color:#dff1ff;width:88px;height:88px;transform:translate(-50%, -50%) translate3d(calc(var(--exp-x) * 8px), calc(var(--exp-y) * 8px), 30px);background:#081c31d1;border:1px solid #99d0ff40;border-radius:50%;place-items:center;font-size:17px;font-weight:800;display:grid;position:absolute;top:50%;left:50%;box-shadow:0 0 0 18px #4f92ff09,0 0 55px #4a91ff29}.experience-list--refined{border-top:0}.experience-list--refined .experience-item{grid-template-columns:minmax(135px,.5fr) minmax(0,1.5fr);min-height:156px}.contact__panel:before,.contact__panel:after{display:none}.contact__panel{transform:perspective(1250px) rotateX(var(--tilt-rx)) rotateY(var(--tilt-ry));align-items:center}.contact__signal{z-index:0;opacity:.92;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.contact__signal path{fill:none;stroke:url(#signalGradient);stroke-width:1.5px;stroke-dasharray:7 12;animation:10s linear infinite contact-flow}@keyframes contact-flow{to{stroke-dashoffset:-190px}}.contact__copy,.contact__links{z-index:2;position:relative}.feature-project,.github-section,.experience,.contact,.project-index{opacity:0;transition:opacity .72s,transform .82s cubic-bezier(.16,1,.3,1);transform:translateY(28px)}.feature-project.is-visible,.github-section.is-visible,.experience.is-visible,.contact.is-visible,.project-index.is-visible{opacity:1;transform:translateY(0)}@media (width<=980px){.experience-layout{grid-template-columns:1fr}.experience-orbit{min-height:500px}.duck-scene{min-height:540px}}@media (width<=650px){.hero__languages{font-size:12px}.project-frame--homebase img{min-height:340px}.feature-project--duck .feature-project__copy h3{font-size:clamp(34px,11vw,54px)}.duck-scene{min-height:430px}.duck-scene__side{opacity:.48}.experience-orbit{border-radius:26px;min-height:410px}.experience-logo--devrev{width:150px;height:92px}.experience-logo--asdrp{width:155px;height:96px}.experience-logo--cpi{width:104px;height:104px}.contact__signal{opacity:.55}}body.is-loading main *,body.is-loading .nav{animation-play-state:paused!important}.loader{isolation:isolate}.loader__iris{z-index:18;pointer-events:none;will-change:width, height;border-radius:50%;width:0;height:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 200vmax #061326}.loader.is-leaving{background:0 0}.loader.is-leaving .loader__center,.loader.is-leaving .loader__media,.loader.is-leaving .loader__project,.loader.is-leaving .loader__canvas{opacity:0;filter:blur(8px);transition:opacity .32s,filter .52s,scale .62s cubic-bezier(.16,1,.3,1);scale:.94}.loader.is-leaving .loader__iris{animation:1.12s cubic-bezier(.66,0,.19,1) 80ms forwards iris-reveal}@keyframes iris-reveal{0%{width:0;height:0}to{width:245vmax;height:245vmax}}.loader__shutter{display:none!important}.hero__copy{will-change:transform, opacity;transition:opacity .12s linear}.hero__stats{overflow:hidden}.stat{position:relative}.stat:after{content:"";transform-origin:0;background:linear-gradient(90deg,#0000,#79d7ff61,#0000);height:1px;transition:transform .7s cubic-bezier(.16,1,.3,1);position:absolute;bottom:0;left:12%;right:12%;transform:scaleX(0)}body.intro-complete .stat:after{transform:scaleX(1)}.section-heading{--heading-progress:0;position:relative}.section-heading:after{content:"";width:min(460px,54vw);height:1px;transform:scaleX(clamp(0, var(--heading-progress), 1));transform-origin:0;background:linear-gradient(90deg,#79d7ffb3,#5b96ff29,#0000);position:absolute;bottom:-24px;left:0}.feature-project{--copy-shift:0px;--visual-shift:0px;--section-sway:0deg}.feature-project__copy{translate:0 var(--copy-shift);will-change:translate}.feature-project>.tilt-card{translate:0 var(--visual-shift);rotate:var(--section-sway);will-change:transform, translate, rotate}.feature-project:after{content:"";width:min(78vw,980px);height:1px;opacity:calc(.12 + var(--section-progress,0) * .35);transform:translateX(-50%) scaleX(calc(.45 + var(--section-progress,0) * .55));background:linear-gradient(90deg,#0000,#6fb1ff26,#0000);position:absolute;bottom:7%;left:50%}.feature-project--duck .feature-project__copy h3{max-width:440px;font-size:clamp(48px,6vw,84px);line-height:.94}.github-card-wrap{perspective:1300px;height:750px;transform-style:preserve-3d;position:relative}.github-card-scroll{width:min(620px,96%);transform-style:preserve-3d;will-change:transform;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotateY(-8deg)rotateX(3deg)}.github-card-frame{background:#07172a;border:1px solid #add9ff3d;border-radius:25px;position:relative;overflow:hidden;rotate:-1.2deg;box-shadow:0 44px 120px #0000006b,0 0 86px #377ae726}.github-card-frame:hover{box-shadow:0 52px 140px #00000075,0 0 110px #4e92ff38}.github-card-glow{z-index:-1;filter:blur(70px);pointer-events:none;background:#4a90ff42;border-radius:35%;position:absolute;inset:15% 8%}.github-card{border-radius:inherit;width:100%;max-height:none;box-shadow:none;border:0;display:block;position:relative;top:auto;left:auto;transform:none!important}.github-card-frame .project-frame__glare{z-index:3}.experience-orbit{background:radial-gradient(circle at 50% 46%,#488aff21,#0000 14rem),radial-gradient(circle at 22% 78%,#52b4ff0e,#0000 12rem),linear-gradient(145deg,#091e35ad,#05132452);min-height:520px;overflow:hidden}.experience-orbit__lines{width:96%;height:96%;transform:translateY(calc(var(--exp-scroll) * -10px)) rotate(calc(var(--exp-scroll) * 1.5deg));transition:opacity .18s;inset:2%}.experience-orbit__lines circle{fill:#80cfff;opacity:.52;filter:drop-shadow(0 0 7px #6dc2ffcc)}.experience-link-line{stroke-dasharray:5 9!important;stroke-width:1.1px!important}.experience-link-line--two{animation-duration:18s!important;animation-direction:reverse!important}.experience-link-line--three{animation-duration:21s!important}.experience-logo{box-shadow:none;will-change:transform;background:0 0;border:0;transition:none;overflow:visible}.experience-logo:hover{box-shadow:none;filter:none;border-color:#0000}.experience-logo__float{place-items:center;width:100%;height:100%;animation:4.8s ease-in-out infinite alternate experience-float;display:grid}.experience-logo__surface{background:#fafdfffa;border:1px solid #bee2ff52;border-radius:20px;place-items:center;width:100%;height:100%;padding:13px 17px;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s;display:grid;overflow:hidden;box-shadow:0 22px 55px #00000047,0 0 34px #529aff1a}.experience-logo:hover .experience-logo__surface{transform:translateY(-5px)scale(1.035);box-shadow:0 28px 68px #00000057,0 0 42px #5ba5ff33}.experience-logo img,.experience-logo svg{object-fit:contain;width:88%;height:88%}.experience-logo--devrev{width:174px;height:92px;transform:translate3d(calc(var(--exp-x) * 14px), calc(var(--exp-y) * 10px + var(--exp-scroll) * -15px), 60px) rotate(-3.5deg);top:12%;left:8%}.experience-logo--asdrp{width:198px;height:100px;transform:translate3d(calc(var(--exp-x) * -12px), calc(var(--exp-y) * 15px + var(--exp-scroll) * 18px), 80px) rotate(3deg);top:20%;right:7%}.experience-logo--cpi{width:112px;height:112px;transform:translate3d(calc(var(--exp-x) * 17px), calc(var(--exp-y) * -12px + var(--exp-scroll) * -20px), 95px) rotate(-2.5deg);bottom:9%;left:28%}.experience-logo--asdrp .experience-logo__float{animation-duration:5.4s;animation-delay:-1.8s}.experience-logo--cpi .experience-logo__float{animation-duration:4.4s;animation-delay:-3.1s}.experience-logo--cpi .experience-logo__surface{border-radius:24px;padding:12px}.experience-logo--cpi svg{width:82%;height:82%}.experience-orbit__core{display:none!important}@keyframes experience-float{0%{transform:translateY(-4px)rotate(-.4deg)}to{transform:translateY(7px)rotate(.5deg)}}.contact__panel{grid-template-columns:minmax(0,1fr) 86px minmax(310px,.72fr);align-items:center;gap:clamp(30px,4vw,58px);min-height:390px;display:grid}.contact__measure{pointer-events:none;position:absolute;inset:0}.contact__hub{z-index:3;color:#dff3ff;background:#06192de6;border:1px solid #9fd5ff61;border-radius:50%;justify-self:center;place-items:center;width:62px;height:62px;font-size:24px;font-weight:760;animation:2.8s ease-in-out infinite alternate contact-hub-pulse;display:grid;position:relative;box-shadow:0 0 0 9px #60a4ff09,0 0 34px #539fff33}.contact__hub:after{content:"";border:1px solid #79cbff1f;border-radius:50%;animation:3.2s ease-out infinite contact-ring;position:absolute;inset:-14px}@keyframes contact-hub-pulse{0%{transform:scale(.97);box-shadow:0 0 0 9px #60a4ff08,0 0 24px #539fff24}to{transform:scale(1.025);box-shadow:0 0 0 12px #60a4ff0b,0 0 42px #539fff47}}@keyframes contact-ring{0%{opacity:0;transform:scale(.76)}25%{opacity:.55}to{opacity:0;transform:scale(1.48)}}.contact__signal{z-index:1;overflow:visible}.contact__signal-path{fill:none;stroke-width:1.4px;stroke-dasharray:7 11;animation:8s linear infinite contact-flow}.contact__signal-path--email{stroke:url(#emailSignalGradient)}.contact__signal-path--github{stroke:url(#githubSignalGradient);animation-duration:10s;animation-direction:reverse}.contact__packet{filter:drop-shadow(0 0 8px #7fd3ffd9)}.contact__links{min-width:0}.contact__links a{position:relative;overflow:hidden}.contact__links a:before{content:"";background:linear-gradient(105deg,#0000 25%,#9ad8ff14,#0000 75%);transition:transform .5s cubic-bezier(.16,1,.3,1);position:absolute;inset:0;transform:translate(-120%)}.contact__links a:hover:before{transform:translate(120%)}@media (width<=980px){.contact__panel{grid-template-columns:1fr;gap:28px}.contact__hub,.contact__signal{display:none}.github-card-scroll{width:min(620px,92%)}}@media (width<=650px){.experience-logo--devrev{width:138px;height:76px}.experience-logo--asdrp{width:154px;height:82px}.experience-logo--cpi{width:92px;height:92px}.experience-orbit{min-height:390px}.feature-project>.tilt-card,.feature-project__copy{translate:0;rotate:0deg}}.loader__project--d{transform-origin:50%;bottom:11vh;right:5vw;transform:rotate(5deg)}.hero__summary,.hero__languages,.hero__actions,.hero__roles,.hero__stats,.portrait-stage{opacity:0;animation:.82s cubic-bezier(.16,1,.3,1) forwards hero-detail-in}.hero__summary{animation-delay:.15s}.hero__languages{animation-delay:.21s}.hero__actions{animation-delay:.27s}.portrait-stage{animation-delay:.12s}.hero__roles{animation-delay:.36s}.hero__stats{animation-delay:.44s}@keyframes hero-detail-in{0%{opacity:0;filter:blur(7px);translate:0 24px}to{opacity:1;filter:blur();translate:0}}.feature-project .feature-project__copy,.feature-project>.tilt-card{opacity:0;filter:blur(7px)}.feature-project.is-visible .feature-project__copy{animation:.85s cubic-bezier(.16,1,.3,1) 60ms forwards project-copy-enter}.feature-project.is-visible>.tilt-card{animation:.98s cubic-bezier(.16,1,.3,1) .13s forwards project-media-enter}@keyframes project-copy-enter{0%{opacity:0;filter:blur(7px);margin-left:-18px}to{opacity:1;filter:blur();margin-left:0}}@keyframes project-media-enter{0%{opacity:0;filter:blur(9px);scale:.965}to{opacity:1;filter:blur();scale:1}}.project-index .project-row,.experience-list--refined .experience-item,.github-facts>div,.contact__links a{opacity:0;translate:0 18px}.project-index.is-visible .project-row,.experience.is-visible .experience-item,.github-section.is-visible .github-facts>div,.contact.is-visible .contact__links a{animation:.65s cubic-bezier(.16,1,.3,1) forwards list-item-enter}.project-index.is-visible .project-row:nth-child(2),.experience.is-visible .experience-item:nth-child(2),.github-section.is-visible .github-facts>div:nth-child(2),.contact.is-visible .contact__links a:nth-child(2){animation-delay:90ms}.project-index.is-visible .project-row:nth-child(3),.experience.is-visible .experience-item:nth-child(3),.github-section.is-visible .github-facts>div:nth-child(3){animation-delay:.18s}@keyframes list-item-enter{to{opacity:1;translate:0}}.grid-plane{--grid-scroll:0px;transform:perspective(900px) rotateX(57deg) scale(1.45) translateY(calc(-17% + var(--grid-scroll)));transition:transform 90ms linear}.section-heading h2,.github-section h2,.contact h2,.feature-project__copy h3{color:#0000;background:radial-gradient(circle at var(--project-title-x,var(--heading-x,var(--cursor-x,45%))) 50%, #7bd7fffa 0 4%, transparent 22%), linear-gradient(108deg, #eef8ff 8%, #d9edff 42%, #8acfff 58%, #eef8ff 82%);background-size:145% 100%,180% 100%;background-position:center, var(--cursor-x,50%) center;-webkit-background-clip:text;background-clip:text;transition:background-position .14s linear,filter .18s}.feature-project__copy h3:hover,.section-heading h2:hover,.github-section h2:hover,.contact h2:hover{filter:drop-shadow(0 0 22px #63afff24)}.github-card-link{border-radius:25px;width:100%;display:block}.github-card-frame{cursor:pointer}.github-card{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.ambient-canvas,.grid-plane,.ambient-light{pointer-events:none}.scroll-progress{box-shadow:0 0 18px #539aff1f}.scroll-progress:before{content:"";pointer-events:none;background:radial-gradient(circle,#59a7ff14,#0000 68%);border-radius:999px;position:absolute;inset:-16px -12px}.feature-project--duck .feature-project__copy h3{letter-spacing:-.07em;text-wrap:balance;max-width:100%;padding-right:.12em;font-size:clamp(42px,5vw,72px)}.github-card-pointer{--github-pointer-x:0;--github-pointer-y:0;--github-glare-x:50%;--github-glare-y:50%;width:100%;transform:translate3d(calc(var(--github-pointer-x) * 12px), calc(var(--github-pointer-y) * 10px), 0) perspective(1250px) rotateX(calc(var(--github-pointer-y) * -6deg)) rotateY(calc(var(--github-pointer-x) * 8deg));transform-style:preserve-3d;will-change:transform;transition:filter .18s}.github-card-pointer:hover{filter:drop-shadow(0 32px 42px #0000003d)}.github-card-pointer .github-card-frame{transform:translateZ(0)}.github-card-pointer-glare{z-index:4;border-radius:inherit;opacity:.72;background:radial-gradient(circle at var(--github-glare-x) var(--github-glare-y), #b9e7ff30, #68aeff0e 18%, transparent 43%);mix-blend-mode:screen;pointer-events:none;position:absolute;inset:0}.contact__panel--particles{isolation:isolate;grid-template-columns:minmax(0,1.2fr) minmax(310px,.72fr)}.contact__particle-canvas{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.contact__panel--particles .contact__copy,.contact__panel--particles .contact__links{z-index:3;position:relative}.contact__panel--particles:before{opacity:.62;width:450px;height:450px;top:-190px;right:-120px}.contact__panel--particles:after{opacity:.48;width:210px;height:210px;top:-70px;right:90px}.contact__hub,.contact__signal{display:none!important}@media (width<=980px){.contact__panel--particles{grid-template-columns:1fr}}.skills{width:min(var(--max), calc(100% - 2 * var(--pad)));opacity:0;margin:0 auto;padding:118px 0 150px;transition:opacity .72s,transform .82s cubic-bezier(.16,1,.3,1);transform:translateY(28px)}.skills.is-visible{opacity:1;transform:translateY(0)}.skills__filters{flex-wrap:wrap;gap:9px;margin:-34px 0 34px;display:flex}.skills__filter{border:1px solid var(--line);color:#8faabd;min-height:38px;font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#07192c70;border-radius:999px;padding:0 14px;font-size:11px;font-weight:720;transition:color .17s,border-color .17s,background .17s,transform .17s cubic-bezier(.16,1,.3,1)}.skills__filter:hover{color:#dff2ff;border-color:#84c6ff5c;transform:translateY(-1px)}.skills__filter.is-active{color:#e7f7ff;background:#4385e621;border-color:#79d7ff80;box-shadow:inset 0 1px #ffffff0d,0 0 28px #4991ff12}.skills__filter:focus-visible,.skill-card:focus-visible{outline-offset:3px;outline:2px solid #79d7ffdb}.skills__body{grid-template-columns:minmax(0,1fr) minmax(310px,.36fr);align-items:start;gap:clamp(30px,4vw,58px);display:grid}.skills__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.skill-card{min-width:0;min-height:96px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:#081c318a;border:1px solid #b5dcff21;border-radius:18px;align-items:center;gap:13px;padding:14px;transition:transform .22s cubic-bezier(.16,1,.3,1),border-color .18s,background .18s,box-shadow .18s;display:flex;box-shadow:inset 0 1px #ffffff09}.skill-card:hover{background:#0b253fb8;border-color:#97cfff4f;transform:translateY(-3px);box-shadow:0 15px 38px #00000024,inset 0 1px #ffffff0d}.skill-card.is-selected{background:#103150d1;border-color:#79d7ff8c;transform:translateY(-2px);box-shadow:0 18px 46px #00000029,0 0 35px #3f8bff12}.skill-icon{background:#04142480;border:1px solid #abdaff2e;border-radius:13px;flex:0 0 48px;justify-content:center;align-items:center;gap:3px;width:48px;height:48px;padding:9px;display:flex;box-shadow:inset 0 1px #ffffff0d}.skill-icon img{object-fit:contain;min-width:0;max-width:100%;height:100%}.skill-icon--multiple img{width:48%;height:auto}.skill-icon img.is-mono{filter:brightness(0)invert();opacity:.9}.skill-card__copy{gap:6px;min-width:0;display:grid}.skill-card__copy strong{color:#e4f3fe;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:760;line-height:1.2;overflow:hidden}.skill-card__copy span{color:#7897b0;letter-spacing:.02em;font-size:10px;font-weight:680}.skills__detail{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(155deg,#0a233ce6,#051425cc);border:1px solid #b1dcff30;border-radius:28px;min-height:408px;padding:28px;position:sticky;top:108px;box-shadow:0 34px 90px #0003,inset 0 1px #ffffff0d}.skills__detail-kicker{color:#6f94b3;letter-spacing:.11em;text-transform:uppercase;margin-bottom:23px;font-size:10px;font-weight:780;display:block}.skills__detail-title{align-items:center;gap:19px;display:flex}.skill-icon--large{background:#0d2b48b8;border-color:#a1d8ff4a;border-radius:21px;flex-basis:76px;width:76px;height:76px;padding:15px;box-shadow:0 16px 40px #0000002e,inset 0 1px #ffffff0f}.skills__detail-title h3{color:#eef9ff;letter-spacing:-.045em;margin:0;font-size:clamp(29px,3vw,42px);line-height:.96}.skills__detail-title div>span{color:#82a3bd;margin-top:8px;font-size:11px;font-weight:680;display:block}.skills__detail>p{color:#a4bdcf;min-height:74px;margin:29px 0 23px;font-size:13px;line-height:1.62}.skills__detail-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;margin:0 0 24px;display:grid}.skills__detail-facts div{padding:15px 0}.skills__detail-facts div+div{border-left:1px solid var(--line);padding-left:18px}.skills__detail-facts dt,.skills__projects>span{color:#6687a2;letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:720}.skills__detail-facts dd{color:#dceefa;margin:5px 0 0;font-size:13px;font-weight:760}.skills__projects>span{margin-bottom:10px;display:block}.skills__projects>div{flex-wrap:wrap;gap:7px;display:flex}.skills__projects b{border:1px solid var(--line);color:#9cb9cf;background:#0515266b;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:9px;font-weight:680;display:inline-flex}@media (width<=1080px){.skills__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=880px){.skills__body{grid-template-columns:1fr}.skills__detail{min-height:0;position:relative;top:auto}}@media (width<=650px){.nav__links a:nth-child(2){display:inline-flex}.nav__links a:nth-child(3),.nav__links a:nth-child(4){display:none}.skills{padding:95px 0 115px}.skills__filters{scrollbar-width:none;flex-wrap:nowrap;margin-top:-24px;padding-bottom:4px;overflow-x:auto}.skills__filters::-webkit-scrollbar{display:none}.skills__filter{flex:none}.skills__grid{grid-template-columns:1fr 1fr;gap:9px}.skill-card{border-radius:16px;gap:9px;min-height:88px;padding:10px}.skill-icon{border-radius:11px;flex-basis:40px;width:40px;height:40px;padding:7px}.skill-card__copy strong{font-size:11px}.skills__detail{border-radius:24px;padding:24px 20px}.skill-icon--large{border-radius:18px;flex-basis:64px;width:64px;height:64px;padding:12px}.skills__detail>p{min-height:0}}
