*,:after,:before{margin:0;padding:0;box-sizing:border-box;cursor:none}:root{--bg:#02030a;--white:#ffffff;--muted:rgba(255,255,255,0.72);--aurora-color1:rgba(168,85,247,0.2);--aurora-color2:rgba(79,70,229,0.2)}body,html{width:100%;height:100%}body{background:var(--bg);color:var(--white);font-family:Montserrat,sans-serif;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}#cursor-canvas,#scatter-canvas,#space-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}#space-canvas{z-index:0}#scatter-canvas{z-index:10;opacity:0}#cursor-canvas{z-index:9997}body:before{z-index:100;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:200px 200px}body:after,body:before{content:"";position:fixed;inset:0;pointer-events:none}body:after{z-index:99;background:radial-gradient(ellipse at center,transparent 30%,rgba(2,3,10,.5) 100%)}.page{flex:1 1;justify-content:center;padding:60px 20px 40px;z-index:2}.hero,.page{display:flex;flex-direction:column;align-items:center;position:relative}.hero{width:100%;max-width:700px}.photo-wrapper{width:490px;max-width:90vw;aspect-ratio:1/1;border-radius:8px;overflow:hidden;position:relative;box-shadow:0 24px 64px rgba(0,0,0,.65);animation:fadeUp .9s cubic-bezier(.22,.61,.36,1) forwards;opacity:0;transform:translateY(32px);will-change:transform,opacity}.photo-wrapper img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.85) contrast(1.05);transition:transform .7s cubic-bezier(.25,.46,.45,.94);will-change:transform}.photo-wrapper:hover img{transform:scale(1.04)}.hero-text-group{display:flex;flex-direction:column;align-items:center;position:relative;z-index:2}.subtitle{font-size:11px;font-weight:400;letter-spacing:.22em;color:var(--muted);text-transform:uppercase;margin-top:-48px;animation:fadeUp .8s cubic-bezier(.22,.61,.36,1) .25s forwards;opacity:0;transform:translateY(24px);transition:transform .38s cubic-bezier(.34,1.56,.64,1),letter-spacing .38s cubic-bezier(.34,1.56,.64,1),color .3s ease}.name{font-family:Burgundia,cursive;font-size:clamp(56px,8vw,96px);color:var(--white);line-height:1.1;margin-top:18px;text-align:center;animation:fadeUp .85s cubic-bezier(.22,.61,.36,1) .42s forwards;opacity:0;transform:translateY(28px);transition:transform .38s cubic-bezier(.34,1.56,.64,1),text-shadow .38s ease}.hero-text-group:hover .subtitle{transform:translateY(-6px) scale(1.06);letter-spacing:.3em;color:var(--white)}.hero-text-group:hover .name{transform:scale(1.18) translateY(-6px);text-shadow:0 8px 40px rgba(255,255,255,.16),0 2px 16px rgba(200,220,255,.12)}.cta-row{display:flex;gap:20px;margin-top:36px;flex-wrap:wrap;justify-content:center;animation:fadeUp .8s cubic-bezier(.22,.61,.36,1) .6s forwards;opacity:0;transform:translateY(24px)}.btn{display:inline-flex;align-items:center;gap:10px;padding:16px 46px;border-radius:50px;font-family:Montserrat,sans-serif;font-size:13px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;white-space:nowrap;position:relative;overflow:hidden;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .4s ease,letter-spacing .4s cubic-bezier(.34,1.56,.64,1),border-color .4s ease,background .4s ease}.btn-outline{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 4px 20px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(255,255,255,.05)}.btn-outline:hover{transform:translateY(-4px) scale(1.04);letter-spacing:.22em;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.1);box-shadow:0 12px 32px rgba(0,0,0,.28),0 0 24px rgba(160,210,255,.15),inset 0 1px 0 rgba(255,255,255,.28)}.btn-solid{background:#ffffff;border:1px solid rgba(255,255,255,.9);color:#0a0b14;box-shadow:0 4px 20px rgba(255,255,255,.1),0 2px 8px rgba(0,0,0,.28)}.btn-solid:hover{transform:translateY(-4px) scale(1.04);letter-spacing:.22em;background:#f0f4ff;box-shadow:0 12px 32px rgba(255,255,255,.18),0 4px 16px rgba(0,0,0,.22)}.btn:before{content:"";position:absolute;top:-60%;left:-80%;width:55%;height:220%;background:linear-gradient(105deg,rgba(255,255,255,0),rgba(255,255,255,.2) 50%,rgba(255,255,255,0));transform:translateX(0) skewX(-15deg);transition:transform .5s cubic-bezier(.25,.46,.45,.94);pointer-events:none}.btn-solid:before{background:linear-gradient(105deg,rgba(255,255,255,0),rgba(255,255,255,.38) 50%,rgba(255,255,255,0))}.btn:hover:before{transform:translateX(382%) skewX(-15deg)}.btn:after{content:"";position:absolute;top:0;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);pointer-events:none}.btn-solid:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent)}.btn svg{width:16px;height:16px}footer{justify-content:space-between;padding:20px 40px 28px;position:relative;z-index:200;animation:fadeUp .8s cubic-bezier(.22,.61,.36,1) .75s forwards;opacity:0;transform:translateY(20px)}.social-links,footer{display:flex;align-items:center}.social-links{gap:16px}.social-links a{color:rgba(255,255,255,.7);transition:color .4s ease,transform .4s cubic-bezier(.34,1.56,.64,1);display:flex;align-items:center}.social-links a:hover{color:#fff;transform:translateY(-3px) scale(1.15)}.social-links svg{width:20px;height:20px;fill:currentColor}.copyright{font-size:10px;letter-spacing:.18em;color:rgba(255,255,255,.55);text-transform:uppercase}#menu-overlay{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:0;visibility:hidden;display:flex;align-items:center;justify-content:center;transition:opacity .4s ease,visibility 0s linear .4s}#menu-overlay.visible{pointer-events:all;visibility:visible;transition:opacity .4s ease,visibility 0s}.menu-nav{gap:18px}.menu-item,.menu-nav{display:flex;flex-direction:column;align-items:center}.menu-item{text-decoration:none;padding:10px 48px;position:relative;opacity:0;transform:scale(.2);background:transparent;border:none;white-space:nowrap;text-align:center;transition:transform .38s cubic-bezier(.34,1.56,.64,1);will-change:transform,opacity,filter}.menu-item:hover{transform:translateY(-3px) scale(1.04)}.menu-item-title{font-family:Burgundia,cursive;font-size:clamp(38px,5.5vw,70px);font-weight:400;color:rgba(255,255,255,.9);line-height:1.1;letter-spacing:.02em;text-transform:none;transition:color .38s ease,text-shadow .38s ease,letter-spacing .45s cubic-bezier(.34,1.56,.64,1)}.menu-item:hover .menu-item-title{color:#fff;letter-spacing:.07em;text-shadow:0 0 16px rgba(140,215,255,.9),0 0 40px rgba(80,165,255,.55),0 0 80px rgba(60,120,255,.28)}.menu-item-desc{font-family:Montserrat,sans-serif;font-size:clamp(10px,1.1vw,12px);font-weight:400;color:rgba(255,255,255,.55);letter-spacing:.14em;text-transform:uppercase;margin-top:2px;transition:color .38s ease,transform .38s cubic-bezier(.34,1.56,.64,1)}.menu-item:hover .menu-item-desc{color:rgba(255,255,255,.82);transform:translateY(-1px)}.menu-item[href^="/experience"] .menu-item-title,.menu-item[href^="/projects"] .menu-item-title{line-height:1.28}.menu-item[href^="/experience"] .menu-item-desc,.menu-item[href^="/projects"] .menu-item-desc{margin-top:6px}@keyframes menuPop{0%{opacity:0;transform:scale(.2);filter:blur(12px)}50%{opacity:1;transform:scale(1.08);filter:blur(0)}70%{transform:scale(.97)}85%{transform:scale(1.02)}to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes menuShrink{0%{opacity:1;transform:scale(1);filter:blur(0)}15%{transform:scale(1.03)}30%{transform:scale(.96)}to{opacity:0;transform:scale(.2);filter:blur(12px)}}#menu-close{position:fixed;top:32px;right:36px;z-index:201;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);outline:none;color:#fff;width:46px;height:46px;border-radius:50%;font-size:18px;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;visibility:hidden;transition:opacity .4s ease,background .3s ease,transform .4s cubic-bezier(.34,1.56,.64,1),visibility 0s linear .4s;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}#menu-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}#menu-close.visible{opacity:1;pointer-events:all;visibility:visible;transition:opacity .4s ease,background .3s ease,transform .4s cubic-bezier(.34,1.56,.64,1),visibility 0s}#menu-close:hover{background:rgba(255,255,255,.15);transform:rotate(90deg) scale(1.1)}.photo-wrapper{transition:opacity .55s cubic-bezier(.25,.46,.45,.94),transform .55s cubic-bezier(.25,.46,.45,.94)!important}.subtitle{transition:opacity .45s cubic-bezier(.25,.46,.45,.94) .05s,transform .45s cubic-bezier(.25,.46,.45,.94) .05s,letter-spacing .38s cubic-bezier(.34,1.56,.64,1),color .3s ease!important}.name{transition:opacity .45s cubic-bezier(.25,.46,.45,.94) .1s,transform .45s cubic-bezier(.25,.46,.45,.94) .1s,text-shadow .38s ease!important}.cta-row{transition:opacity .4s cubic-bezier(.25,.46,.45,.94) .15s,transform .4s cubic-bezier(.25,.46,.45,.94) .15s!important}body.exploded .photo-wrapper{opacity:0!important;pointer-events:none;transform:scale(.96) translateY(-18px)!important}body.exploded .subtitle{opacity:0!important;pointer-events:none;transform:translateY(-12px) scale(.95)!important}body.exploded .name{opacity:0!important;pointer-events:none;transform:scale(.94) translateY(-16px)!important}body.exploded .cta-row{opacity:0!important;pointer-events:none;transform:translateY(-10px) scale(.96)!important}.btn:active{transform:translateY(-1px) scale(.97)!important;transition:transform .1s ease!important}.btn .ripple{position:absolute;border-radius:50%;transform:scale(0);background:rgba(255,255,255,.35);pointer-events:none;animation:rippleAnim .6s cubic-bezier(.25,.46,.45,.94) forwards}.btn-solid .ripple{background:rgba(10,11,20,.15)}@keyframes rippleAnim{to{transform:scale(4);opacity:0}}.click-particle{position:fixed;border-radius:50%;pointer-events:none;z-index:99998;transform:translate(-50%,-50%) scale(1);animation:particleBurst .55s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes particleBurst{0%{opacity:.8;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(var(--tx),var(--ty)) scale(0)}}#music-btn{position:fixed;top:28px;left:36px;z-index:201;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);outline:none;color:#fff;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .3s ease,transform .4s cubic-bezier(.34,1.56,.64,1);animation:fadeUp .8s cubic-bezier(.22,.61,.36,1) 1.1s forwards;opacity:0}#music-btn:hover{background:rgba(255,255,255,.15);transform:scale(1.1)}#spectrum-canvas{display:block}#music-btn.playing{animation:musicPulse 2s ease infinite,fadeUp .8s cubic-bezier(.22,.61,.36,1) 1.1s forwards}body.skip-preloader #music-btn{position:fixed;top:28px;left:36px;z-index:201;opacity:0;animation:fadeUp .48s cubic-bezier(.22,.61,.36,1) .1s both}body.skip-preloader #music-btn.playing{animation:musicPulse 2s ease infinite,fadeUp .48s cubic-bezier(.22,.61,.36,1) .1s both}@media (max-width:600px){body.skip-preloader #music-btn{top:18px;left:16px}#menu-close{top:28px;right:16px}body.skip-preloader #menu-close{top:18px;right:16px}}body:not([data-page]) .page{padding:60px 20px 40px!important;align-items:center;justify-content:center;max-width:none;margin:0;z-index:2}@keyframes musicPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.4)}70%{box-shadow:0 0 0 12px rgba(255,255,255,0)}to{box-shadow:0 0 0 0 rgba(255,255,255,0)}}#cursor-dot{position:fixed;top:0;left:0;width:5px;height:5px;background:#fff;border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:opacity .4s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@keyframes heroReturn{0%{opacity:0;transform:translateY(20px) scale(.95);filter:blur(4px)}60%{opacity:1;filter:blur(0)}80%{transform:translateY(-4px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}#preloader{position:fixed;inset:0;z-index:99999;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;overflow:hidden}.aurora-container{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.aurora-bg-pulse{position:absolute;inset:0;opacity:.5;background-image:radial-gradient(circle,var(--aurora-color1) 0,transparent 80%),radial-gradient(circle,var(--aurora-color2) 0,transparent 80%);background-size:100% 100%;animation:aurora-pulse 10s infinite}.aurora-blob{position:absolute;width:50%;height:50%;border-radius:50%;filter:blur(80px);opacity:.4;mix-blend-mode:screen}.blob-1{top:-25%;left:-25%;background:#9333ea;animation:blob-move-1 30s ease-in-out infinite alternate}.blob-2{bottom:-25%;right:-25%;background:#c026d3;animation:blob-move-2 40s ease-in-out infinite alternate}.blob-3{top:33%;left:33%;width:33%;height:33%;background:#4338ca;animation:blob-move-3 50s ease-in-out infinite alternate;opacity:.3}.preloader-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;gap:32px}.preloader-star{position:absolute;width:2px;height:2px;background:#fff;border-radius:50%;opacity:0}@keyframes aurora-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}@keyframes blob-move-1{0%{transform:translate(-50px,-20px) scale(1)}50%{transform:translate(50px,20px) scale(1.2)}to{transform:translate(-50px,-20px) scale(1)}}@keyframes blob-move-2{0%{transform:translate(50px,20px) scale(1)}50%{transform:translate(-50px,-20px) scale(1.3)}to{transform:translate(50px,20px) scale(1)}}@keyframes blob-move-3{0%{transform:translate(20px,-30px) rotate(0deg)}50%{transform:translate(-20px,30px) rotate(180deg)}to{transform:translate(20px,-30px) rotate(1turn)}}@keyframes star-twinkle{0%,to{opacity:0}50%{opacity:var(--star-opacity,.8)}}#preloader-canvas{display:block;width:min(500px,72vw);height:auto}#progress-track{width:min(500px,72vw);height:2px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden;position:relative}#progress-fill{position:absolute;top:0;left:0;height:100%;width:0;background:#ffffff;border-radius:2px;box-shadow:0 0 8px rgba(255,255,255,.8),0 0 20px rgba(255,255,255,.3);transition:none}#split-bottom,#split-top{position:fixed;left:0;right:0;z-index:99998;background:#02030a;transition:transform .85s cubic-bezier(.76,0,.24,1)}#split-top{top:0}#split-bottom,#split-top{height:50%;transform:translateY(0)}#split-bottom{bottom:0}#split-top.open{transform:translateY(-100%)}#split-bottom.open{transform:translateY(100%)}#split-bottom.gone,#split-top.gone,.subtitle-vibe{display:none}.vibe-inline{display:inline}@media (min-width:601px){.name{margin-top:36px}}@media (max-width:600px){.photo-wrapper{width:85vw}footer{padding:16px 24px 24px}.cta-row{gap:12px}.btn{padding:14px 32px;font-size:11px;min-height:44px}.menu-item-title{font-size:clamp(38px,10vw,68px)}#music-btn{top:18px;left:16px}.vibe-inline{display:none}.subtitle-vibe{display:block;margin-top:6px;animation:fadeUp .8s cubic-bezier(.22,.61,.36,1) .35s forwards}}@media (max-width:360px){footer{flex-direction:column;gap:12px}}#menu-close:focus-visible,#music-btn:focus-visible,.btn:focus-visible,.menu-item:focus-visible,.social-links a:focus-visible{outline:2px solid rgba(160,210,255,.9);outline-offset:4px;border-radius:50px}@media (hover:none),(pointer:coarse){*,:after,:before{cursor:auto}#cursor-canvas,#cursor-dot{display:none}}@media (max-width:900px){*,:after,:before{cursor:auto}#cursor-canvas,#cursor-dot{display:none}}.menu-item:active{transform:translateY(-1px) scale(.97)!important;transition:transform .08s ease!important}.social-links a:active{transform:translateY(0) scale(.88)!important;transition:transform .08s ease!important}#music-btn:active{transform:scale(.88)!important}#menu-close:active,#music-btn:active{transition:transform .08s ease!important}#menu-close:active{transform:rotate(90deg) scale(.88)!important}.hero-intro-photo-wrap:active .hero-intro-photo img{transform:scale(1.01);transition:transform .1s ease}