html{scroll-behavior:smooth;scroll-padding-top:6rem}.skill-pill{position:relative;overflow:hidden}.skill-pill:after{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(99,102,241,.3) 0,transparent 70%);opacity:0;transform:scale(0);transition:transform .4s ease,opacity .4s ease;border-radius:inherit}.skill-pill:active:after{opacity:1;transform:scale(2.5);transition:transform 0s,opacity 0s}.gallery-card{position:relative;perspective:1000px;transform-style:preserve-3d}.gallery-card:hover{transform:translateY(-8px) scale(1.02) rotateX(2deg) rotateY(-1deg)}.gallery-card:before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:conic-gradient(from 180deg,transparent,rgba(99,102,241,.3),transparent,rgba(168,85,247,.3),transparent);opacity:0;transition:opacity .5s;z-index:-1}.gallery-card:hover:before{opacity:1}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.shimmer-text{background-size:200% auto;animation:shimmer 4s linear infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.float-btn{animation:float 3s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes kenBurns{0%{transform:scale(1)}to{transform:scale(1.15)}}@keyframes particle{0%,to{opacity:0;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-20px) scale(1.5)}}@keyframes zoomIn{0%{opacity:0;transform:scale(.6) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes pulseRing{0%{box-shadow:0 0 0 0 rgba(99,102,241,.6)}70%{box-shadow:0 0 0 20px rgba(99,102,241,0)}to{box-shadow:0 0 0 0 rgba(99,102,241,0)}}.spotlight-active{animation:pulseRing .8s ease-out}.pres-shell{position:fixed;inset:0;background:#0d0d0d;overflow:hidden;display:flex;align-items:center;justify-content:center}.pres-slide-wrapper{position:relative;width:100%;height:100%;max-width:calc(100vh * 16 / 9);max-height:calc(100vw * 9 / 16)}.slide-root{position:absolute;inset:0;overflow:hidden}@keyframes enterFromRight{0%{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}@keyframes enterFromLeft{0%{opacity:0;transform:translateX(-60px)}to{opacity:1;transform:translateX(0)}}@keyframes exitToLeft{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-60px)}}@keyframes exitToRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(60px)}}.pres-enter{animation:enterFromRight .35s cubic-bezier(.16,1,.3,1) forwards}.pres-enter-back{animation:enterFromLeft .35s cubic-bezier(.16,1,.3,1) forwards}.pres-exit-left{animation:exitToLeft .32s cubic-bezier(.4,0,1,1) forwards}.pres-exit-right{animation:exitToRight .32s cubic-bezier(.4,0,1,1) forwards}@keyframes itemIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.slide-item-1{animation:itemIn .55s cubic-bezier(.16,1,.3,1) .05s both}.slide-item-2{animation:itemIn .55s cubic-bezier(.16,1,.3,1) .12s both}.slide-item-3{animation:itemIn .55s cubic-bezier(.16,1,.3,1) .19s both}.slide-item-4{animation:itemIn .55s cubic-bezier(.16,1,.3,1) .26s both}.slide-item-5{animation:itemIn .55s cubic-bezier(.16,1,.3,1) .33s both}.slide-item-6{animation:itemIn .55s cubic-bezier(.16,1,.3,1) .4s both}.slide-item-7{animation:itemIn .55s cubic-bezier(.16,1,.3,1) .47s both}.slide-item-8{animation:itemIn .55s cubic-bezier(.16,1,.3,1) .54s both}@keyframes scaleX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes skillIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes skillOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-40px)}}@keyframes skillOutLeft{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(40px)}}@keyframes photoSlideInRight{0%{opacity:0;transform:translateX(60px) scale(1.04)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes photoSlideInLeft{0%{opacity:0;transform:translateX(-60px) scale(1.04)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes tileReveal{0%{opacity:0;transform:scale(.85) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes fadeInOut{0%{opacity:0}30%{opacity:1}70%{opacity:1}to{opacity:0}}@keyframes gifFadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes breathe{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes gifDrift{0%{opacity:0;transform:translate(-50%,-50%) translateX(-30px) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) translateX(0) scale(1)}}@keyframes gifFly{0%{opacity:0;transform:translate(-50%,-50%) translateX(-110%) scaleX(-1)}6%{opacity:1}75%{opacity:1;transform:translate(-50%,-50%) translateX(15%) scaleX(-1)}85%{transform:translate(-50%,-50%) translateX(10%) scaleX(-1)}to{opacity:1;transform:translate(-50%,-50%) translateX(12%) scaleX(-1)}}@keyframes cardSlideIn{0%{opacity:0;transform:translateX(-32px) scale(.97)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes canFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes wordFlash{0%{opacity:0;transform:translateX(-12px);filter:brightness(3) blur(4px)}30%{opacity:1;filter:brightness(2) blur(1px)}60%{filter:brightness(1.4) blur(0)}to{opacity:1;transform:translateX(0);filter:brightness(1) blur(0)}}@keyframes slamLeft{0%{opacity:0;transform:translateX(-120px) skewX(-8deg)}to{opacity:1;transform:translateX(0) skewX(0deg)}}@keyframes slamRight{0%{opacity:0;transform:translateX(120px) skewX(8deg)}to{opacity:1;transform:translateX(0) skewX(0deg)}}@keyframes slamUp{0%{opacity:0;transform:translateY(80px) scaleY(1.2)}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes scanLine{0%{transform:translateX(-100%);opacity:1}to{transform:translateX(100vw);opacity:0}}@keyframes glitchFlash{0%{opacity:1;clip-path:inset(0 0 0 0)}10%{clip-path:inset(10% 0 80% 0);transform:translateX(-4px)}20%{clip-path:inset(60% 0 10% 0);transform:translateX(4px)}30%{clip-path:inset(30% 0 50% 0);transform:translateX(-2px)}40%{clip-path:inset(0 0 0 0);transform:translateX(0)}to{opacity:1;clip-path:inset(0 0 0 0)}}@keyframes bullRun{0%{transform:translateX(-180px) scaleX(1);opacity:0}5%{opacity:1}95%{opacity:1}to{transform:translateX(110vw) scaleX(1);opacity:0}}@keyframes bullTrail{0%{width:0;opacity:.7}50%{opacity:.4}to{width:60vw;opacity:0}}@keyframes terminalBlink{0%,to{opacity:1}50%{opacity:0}}@keyframes photoReveal{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes bgZoom{0%{transform:scale(1.12)}to{transform:scale(1)}}.pres-dots{position:fixed;right:1.75rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.75rem;z-index:100}.pres-dot{width:8px;height:8px;border-radius:50%;background:hsla(0,0%,100%,.25);border:none;cursor:pointer;transition:all .25s ease}.pres-dot:hover{background:hsla(0,0%,100%,.55);transform:scale(1.2)}.pres-dot-active{background:#c00;transform:scale(1.35);box-shadow:0 0 8px rgba(204,0,0,.6)}.pres-arrow{position:fixed;top:50%;transform:translateY(-50%);z-index:100;width:44px;height:44px;border-radius:50%;border:1.5px solid hsla(0,0%,100%,.15);background:hsla(0,0%,100%,.06);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;backdrop-filter:blur(8px)}.pres-arrow:hover:not(:disabled){background:hsla(0,0%,100%,.14);border-color:hsla(0,0%,100%,.35)}.pres-arrow:disabled{opacity:.2;cursor:default}.pres-arrow-left{left:1.5rem}.pres-arrow-right{right:4rem}.pres-counter{position:fixed;bottom:1.75rem;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:.5rem;z-index:100}.pres-counter-num{font-size:.75rem;font-weight:700;color:#c00;font-variant-numeric:tabular-nums}.pres-counter-sep{font-size:.65rem;color:hsla(0,0%,100%,.2)}.pres-counter-total{font-size:.75rem;font-weight:500;color:hsla(0,0%,100%,.3);font-variant-numeric:tabular-nums}.pres-counter-label{font-size:.65rem;letter-spacing:.15em;color:hsla(0,0%,100%,.3);margin-left:.75rem;padding-left:.75rem;border-left:1px solid hsla(0,0%,100%,.15)}.pres-back,.pres-counter-label{font-weight:600;text-transform:uppercase}.pres-back{position:fixed;top:1.5rem;left:1.75rem;z-index:100;display:flex;align-items:center;gap:.4rem;font-size:.7rem;letter-spacing:.1em;color:hsla(0,0%,100%,.35);text-decoration:none;transition:color .2s}.pres-back:hover{color:hsla(0,0%,100%,.75)}.pres-notes-btn{position:fixed;z-index:100;display:flex;align-items:center;gap:.3rem;font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:hsla(0,0%,100%,.3);background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1);padding:.3rem .6rem;border-radius:.4rem;cursor:pointer;transition:all .2s;backdrop-filter:blur(8px)}.pres-notes-btn:hover{color:#fff;background:hsla(0,0%,100%,.1);border-color:hsla(0,0%,100%,.2)}.pres-btn-fullscreen{top:1.2rem;right:21rem}.pres-btn-notes{top:1.2rem;right:14rem}