@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Poppins:wght@500;600;700;800&family=Space+Grotesk:wght@500;700&display=swap";:root{--grad-1: #4facfe;--grad-2: #7b2ff7;--grad-3: #f953c6;--bg-main: #0f0c29;--bg-secondary: #1a1a2e;--glass: rgba(255, 255, 255, .08);--neon-violet: #7b2ff7;--neon-pink: #f953c6;--text-primary: #ffffff;--text-secondary: #ffffff;--accent: #00f5ff;--button-hover: linear-gradient(120deg, #7b2ff7, #f953c6);--shadow-soft: 0 12px 40px rgba(6, 5, 17, .5);--border-soft: rgba(255, 255, 255, .14)}[data-theme=light]{--bg-main: #ecf2ff;--bg-secondary: #f7f9ff;--glass: rgba(255, 255, 255, .7);--text-primary: #ffffff;--text-secondary: #ffffff;--border-soft: rgba(40, 41, 68, .14);--shadow-soft: 0 18px 45px rgba(114, 119, 177, .22)}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--bg-main);color:var(--text-primary);font-family:Inter,sans-serif;transition:background-color .5s ease,color .4s ease;cursor:none}a{color:inherit;text-decoration:none}.app-shell{position:relative;isolation:isolate;overflow-x:hidden;overflow-y:visible}.background-video{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;object-fit:cover;z-index:-3;opacity:1;pointer-events:none}.page-loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:linear-gradient(120deg,#0f0c29,#1a1a2e,#0f0c29);display:grid;place-content:center}.page-loader span{font-family:Poppins,sans-serif;font-size:clamp(1.5rem,4vw,2.8rem);letter-spacing:.08em;color:var(--text-primary);text-transform:uppercase}.progress-bar{position:fixed;top:0;left:0;z-index:200;height:4px;background:linear-gradient(90deg,var(--grad-1),var(--grad-2),var(--grad-3));box-shadow:0 0 18px #7b2ff7b3}.cursor-dot,.cursor-trail{position:fixed;top:0;left:0;transform:translate3d(-50%,-50%,0);pointer-events:none;z-index:250;will-change:transform,opacity;transition:transform .16s cubic-bezier(.22,1,.36,1)}.cursor-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 20px var(--accent)}.cursor-trail{width:38px;height:38px;border-radius:50%;border:1px solid rgba(0,245,255,.45);box-shadow:0 0 24px #00f5ff38}.canvas-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;width:100vw;height:100vh;pointer-events:auto}main{pointer-events:none}main>section{pointer-events:none}.glass-card,.magnetic-btn,a,button,input,textarea{pointer-events:auto}.floating-blob{position:absolute;border-radius:999px;background:linear-gradient(160deg,#4facfe29,#7b2ff733,#f953c62e);filter:blur(.5px);animation:floatBlob linear infinite;--px: 0px;--py: 0px}.site-nav{position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:120;width:min(1120px,calc(100% - 1.6rem));padding:.7rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--glass);border:1px solid var(--border-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:18px;box-shadow:var(--shadow-soft)}.brand{border:0;background:transparent;color:var(--text-primary);font-family:Space Grotesk,sans-serif;font-size:1rem;font-weight:700;letter-spacing:.05em;cursor:none;display:inline-flex;align-items:center;gap:.2rem;text-shadow:-2px -2px 0 rgba(123,47,247,.5),-3px -3px 0 rgba(123,47,247,.4),-4px -4px 0 rgba(123,47,247,.3),0 0 10px #00f5ff,0 0 20px #00f5ff,0 0 30px #00f5ff,0 0 40px #00f5ff,0 0 5px #7b2ff7,0 0 15px #7b2ff7,0 0 25px #7b2ff7,0 0 8px #f953c6;filter:drop-shadow(0 0 15px rgba(0,245,255,.6)) drop-shadow(0 0 25px rgba(123,47,247,.4))}.brand span{color:var(--accent)}.site-nav nav{display:flex;align-items:center;gap:.2rem;flex-wrap:wrap}.site-nav nav button,.theme-toggle{border:0;background:transparent;color:var(--text-secondary);padding:.52rem .72rem;border-radius:999px;font:inherit;cursor:none;transition:background .32s cubic-bezier(.22,1,.36,1),color .32s ease,box-shadow .32s ease}.site-nav nav button:hover,.site-nav nav button.active{color:var(--text-primary);background:#7b2ff72e;box-shadow:0 0 0 1px #7b2ff759}.theme-toggle{width:42px;height:42px;display:grid;place-content:center;color:var(--accent);border:1px solid rgba(0,245,255,.3)}main{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding-top:6rem;padding-bottom:4rem;overflow:visible}section{position:relative;margin:0 auto 4.4rem;scroll-margin-top:7rem;overflow:visible}.reveal-section{opacity:0;transform:translateY(80px);filter:blur(10px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1),filter .8s cubic-bezier(.22,1,.36,1)}.reveal-section.is-visible{opacity:1;transform:translateY(0);filter:blur(0)}section h2{margin:0 0 1.4rem;font-family:Poppins,sans-serif;font-size:clamp(1.8rem,2.5vw,2.5rem);letter-spacing:.03em}.hero{min-height:95vh;display:grid;place-items:center}.hero-content{max-width:760px;text-align:center}.kicker{font-size:.84rem;text-transform:uppercase;letter-spacing:.2em;color:var(--accent)}.hero h1{margin:.5rem 0;font-family:Poppins,sans-serif;font-size:clamp(2.8rem,9vw,6rem);line-height:1}.hero h1 span{background:linear-gradient(110deg,var(--grad-1),var(--grad-2),var(--grad-3));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.typing-line{margin:1rem 0;min-height:2.2rem;font-size:clamp(1.2rem,3vw,1.85rem);font-weight:600;font-family:Space Grotesk,sans-serif;color:var(--text-primary)}.typing-caret{color:var(--accent);animation:blink .8s step-end infinite}.hero-subtext{max-width:680px;margin:0 auto;color:var(--text-secondary);font-size:clamp(1rem,2vw,1.12rem)}.hero-actions{margin-top:2rem;display:flex;justify-content:center;flex-wrap:wrap;gap:.9rem}.magnetic-btn{position:relative;border:0;border-radius:999px;padding:.88rem 1.3rem;min-width:170px;font-size:.95rem;font-weight:600;cursor:none;overflow:hidden;transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s cubic-bezier(.22,1,.36,1);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.magnetic-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at var(--x, 50%) var(--y, 50%),rgba(255,255,255,.22),transparent 52%);opacity:0;transition:opacity .35s ease}.magnetic-btn:hover:after{opacity:1}.magnetic-btn .ripple{position:absolute;width:18px;height:18px;border-radius:50%;background:#fff6;transform:translate(-50%,-50%);animation:rippleGrow .55s ease forwards;pointer-events:none}.magnetic-btn.primary{background:linear-gradient(120deg,var(--grad-1),var(--grad-2),var(--grad-3));box-shadow:0 12px 30px #7b2ff766}.magnetic-btn.primary:hover{background:var(--button-hover)}.magnetic-btn.secondary{background:#ffffff14;border:1px solid rgba(255,255,255,.2)}.social-row{margin-top:1.5rem;display:flex;justify-content:center;gap:.65rem}.social-row a{width:42px;height:42px;border-radius:50%;display:grid;place-content:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:var(--text-primary);transition:transform .32s cubic-bezier(.22,1,.36,1),color .32s ease,box-shadow .32s ease;cursor:none}.social-row a:hover{transform:translateY(-3px) scale(1.06);color:var(--accent);box-shadow:0 0 22px #7b2ff76b}.glass-card{background:var(--glass);border:1px solid var(--border-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:20px;box-shadow:var(--shadow-soft);transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s cubic-bezier(.22,1,.36,1),border-color .32s ease;will-change:transform,box-shadow}.about-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,1.2fr);gap:1rem}.intro-card{padding:1.3rem}.intro-card h3,.skill-card h3,.github-stats h3,.repo-list h3,.game-info h3{font-family:Poppins,sans-serif;display:inline-flex;align-items:center;gap:.45rem;margin:0 0 .7rem}.intro-card p,.game-info p{margin:0;color:var(--text-secondary)}.highlight-row{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.55rem}.highlight-row span{font-size:.82rem;padding:.45rem .72rem;border-radius:999px;background:#00f5ff1a;border:1px solid rgba(0,245,255,.26)}.timeline{display:grid;gap:.8rem}.timeline-item{padding:1rem;position:relative;overflow:hidden}.timeline-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--grad-1),var(--grad-3))}.timeline-item p{margin:0;color:var(--accent);font-size:.8rem}.timeline-item h4{margin:.35rem 0}.timeline-item span{color:var(--text-secondary);font-size:.95rem}.skills-grid,.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:1rem}.skill-card{padding:1.1rem}.skill-list{display:grid;gap:.7rem}.skill-item div{display:flex;justify-content:space-between;margin-bottom:.35rem}.skill-item div span{color:var(--text-secondary)}.skill-item div b{color:var(--accent);font-size:.85rem}.skill-item i{display:block;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--grad-1),var(--grad-2),var(--grad-3));box-shadow:0 0 14px #f953c666}.tilt-card{transition:box-shadow .25s ease,transform .25s ease}.tilt-card:hover{box-shadow:0 20px 46px #7b2ff759}.project-card{padding:0;position:relative;overflow:hidden;display:flex;flex-direction:column}.project-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid transparent;border-radius:inherit;background:linear-gradient(115deg,#4facfe66,#f953c659) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s ease;pointer-events:none}.project-card:hover:after{opacity:1}.project-image-wrapper{position:relative;width:100%;aspect-ratio:16 / 10;overflow:hidden;border-radius:20px 20px 0 0}.project-image{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.project-card:hover .project-image{transform:scale(1.05)}.project-github-link{position:absolute;top:1rem;right:1rem;background:#0a0a0ab3;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.1rem;transition:transform .2s ease,background .2s ease;z-index:2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.project-github-link:hover{transform:scale(1.1);background:#0a0a0ae6}.project-content{padding:1.15rem;display:flex;flex-direction:column;flex:1}.project-card h3{margin-top:0;margin-bottom:.5rem;font-family:Poppins,sans-serif;font-size:1.25rem}.project-card p{color:var(--text-secondary);font-size:.9rem;margin-bottom:1rem;flex:1}.projects-grid-five{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.stack-tags-text{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:auto}.stack-tag{color:var(--grad-1);font-size:.85rem;font-family:Space Grotesk,monospace;font-weight:500}.stack-tag:nth-child(2n){color:var(--grad-2)}.stack-tag:nth-child(3n){color:var(--grad-3)}.project-actions{margin-top:.95rem;display:flex;gap:.65rem}.project-actions a{flex:1;text-align:center;padding:.58rem .6rem;border-radius:12px;font-weight:600;font-size:.84rem;background:#ffffff14;border:1px solid rgba(255,255,255,.2);transition:background .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s ease;pointer-events:auto;cursor:pointer}.project-actions a:hover{background:linear-gradient(120deg,#7b2ff74d,#f953c659);transform:translateY(-2px)}.gamedev .game-layout{display:block;min-height:980px}.gamedev{position:relative;min-height:112vh;padding:4rem 5% 1rem;width:100vw;max-width:none;margin:0;display:block;flex-direction:column;justify-content:center;overflow:visible;z-index:3}.game-info{position:absolute;top:45%;left:35%;transform:translate(-50%,-50%);width:min(1180px,calc(100% - 3rem));margin:0 auto;padding:0;text-align:center;z-index:2;background:transparent;border:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;box-shadow:none;color:#fff;text-shadow:0 2px 15px rgba(0,0,0,.8)}.spline-gamedev-free{position:absolute;top:68%;left:50%;transform:translate(-50%,-50%) scale(.82);width:182vw;height:176vh;z-index:0;pointer-events:none;overflow:visible;border:none;outline:none;box-shadow:none;clip-path:none!important;-webkit-clip-path:none!important;z-index:1}.spline-gamedev-free iframe{width:100%;height:100%;border:0;display:block;background:transparent;border-radius:0;outline:none;box-shadow:none}.model-viewer-shell,.model-viewer-shell>div,.model-viewer-canvas{overflow:visible!important;border:none!important;border-radius:0!important;outline:none!important;box-shadow:none!important;background:transparent!important;clip-path:none!important;-webkit-clip-path:none!important}.model-viewer-canvas canvas{overflow:visible!important;border:none!important;border-radius:0!important;outline:none!important;box-shadow:none!important;background:transparent!important;clip-path:none!important;-webkit-clip-path:none!important}.model-viewer-shell canvas,.model-viewer-shell>div,.model-viewer-shell>div>div{overflow:visible!important;clip-path:none!important;-webkit-clip-path:none!important}.gamedev,.gamedev .game-layout,.gamedev canvas,.gamedev canvas:focus{border:none!important;outline:none!important;box-shadow:none!important}.game-info h3{display:flex;justify-content:center;width:100%;margin-bottom:1rem;font-size:clamp(1.55rem,2vw,2rem)}.game-info p{max-width:1080px;margin:0 auto 1.35rem;font-size:clamp(1rem,1.35vw,1.28rem);line-height:1.52}.game-info .highlight-row{justify-content:center;max-width:1100px;margin:.5rem auto 0}.github-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:1rem}.github-stats,.github-graph,.repo-list{padding:1rem}.github-graph{grid-column:1 / -1;overflow:hidden}.github-graph img{width:100%;border-radius:14px;border:1px solid rgba(255,255,255,.12)}.graph-caption{margin:.7rem 0 0;color:var(--text-secondary);font-size:.86rem}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:.7rem}.stats-grid article{text-align:center;padding:.85rem;border-radius:12px;background:#7b2ff721;border:1px solid rgba(123,47,247,.3)}.stats-grid article b{display:block;font-size:1.4rem;color:var(--accent)}.stats-grid article span{font-size:.82rem;color:var(--text-secondary)}.repo-list{display:grid;gap:.5rem;align-content:start}.repo-list a{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.68rem;border-radius:12px;border:1px solid rgba(255,255,255,.15);background:#ffffff0a;transition:all .3s ease}.repo-list a:hover{border-color:#00f5ff59;box-shadow:0 0 22px #00f5ff24}.repo-list strong{font-size:.95rem}.repo-list span,.repo-list small{color:var(--text-secondary);font-size:.8rem}.contact-form{max-width:760px;padding:1rem;margin:0 auto;display:grid;gap:.8rem}.contact-form label{position:relative;display:block}.contact-form input,.contact-form textarea{width:100%;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:#ffffff0a;padding:1rem .8rem .65rem;color:var(--text-primary);font-family:inherit;font-size:.94rem;transition:all .3s ease}.contact-form textarea{resize:vertical}.contact-form label span{position:absolute;top:.9rem;left:.82rem;color:var(--text-secondary);pointer-events:none;transition:all .22s ease}.contact-form input:focus,.contact-form textarea:focus,.contact-form input:not(:placeholder-shown),.contact-form textarea:not(:placeholder-shown){border-color:#00f5ff66;box-shadow:0 0 20px #00f5ff26;outline:0}.contact-form input:focus+span,.contact-form textarea:focus+span,.contact-form input:not(:placeholder-shown)+span,.contact-form textarea:not(:placeholder-shown)+span{transform:translateY(-.64rem) scale(.86);color:var(--accent)}.contact-form label.invalid{animation:shake .28s linear}.contact-form label.invalid input,.contact-form label.invalid textarea{border-color:#ff5a71cc}.submit-btn{width:fit-content}.submit-btn:disabled{opacity:.65}.form-message{margin:0;color:var(--accent)}.contact-method-toggle{display:flex;gap:.6rem;margin:.8rem 0}.contact-method-toggle button{flex:1;padding:.65rem .8rem;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#ffffff0f;color:var(--text-secondary);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.35rem}.contact-method-toggle button:hover{border-color:#7b2ff759;color:var(--text-primary)}.contact-method-toggle button.active{background:linear-gradient(120deg,#7b2ff74d,#f953c640);border-color:#7b2ff780;color:var(--accent)}.contact-links{display:grid;gap:.55rem}.contact-links a{display:inline-flex;align-items:center;gap:.45rem;color:var(--text-secondary);font-size:.9rem;transition:color .25s ease}.contact-links a:hover{color:var(--accent)}.site-footer{width:min(1120px,calc(100% - 2rem));margin:0 auto 1.2rem;padding:.95rem 1rem;border-radius:16px;background:var(--glass);border:1px solid var(--border-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;gap:.8rem}.site-footer p{margin:0;color:var(--text-secondary)}.site-footer div{display:flex;gap:.7rem}.site-footer a{color:var(--text-secondary)}.site-footer a:hover{color:var(--accent)}.easter-banner{position:fixed;left:50%;top:88px;transform:translate(-50%);z-index:122;font-size:.82rem;padding:.6rem .95rem;border-radius:999px;background:#00f5ff24;border:1px solid rgba(0,245,255,.4);color:var(--text-primary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes floatBlob{0%{transform:translate3d(calc(var(--px) + 0px),calc(var(--py) + 0px),0) scale(1)}50%{transform:translate3d(calc(var(--px) + 22px),calc(var(--py) - 45px),0) scale(1.08)}to{transform:translate3d(calc(var(--px) - 18px),calc(var(--py) + 40px),0) scale(.92)}}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(-3%,2%,0) scale(1.06)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}33%{transform:translate(-6px)}66%{transform:translate(6px)}}@keyframes rippleGrow{0%{opacity:.8;transform:translate(-50%,-50%) scale(.4)}to{opacity:0;transform:translate(-50%,-50%) scale(7.8)}}.tilt-card{perspective:1100px;transform-style:preserve-3d;will-change:transform,box-shadow}.floating-card{animation:floatCard 5.2s ease-in-out infinite}.project-card:before{content:"";position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;background:radial-gradient(circle at calc(50% + var(--mx, 0px)) calc(45% + var(--my, 0px)),rgba(0,245,255,.22),transparent 35%);opacity:0;transition:opacity .3s ease;pointer-events:none}.project-card:hover:before{opacity:1}.interactive-skill{transition:transform .3s ease,box-shadow .3s ease}.interactive-skill:hover{box-shadow:0 18px 44px #7b2ff757,0 0 28px #00f5ff33}.skill-pill-grid{display:flex;flex-wrap:wrap;gap:.55rem}.skill-pill{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .72rem;border-radius:999px;background:linear-gradient(135deg,#4facfe40,#7b2ff747,#f953c63d);border:1px solid rgba(255,255,255,.22);color:var(--text-primary);font-size:.83rem;box-shadow:0 0 14px #f953c633}@keyframes floatCard{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media (max-width: 980px){.site-nav{top:10px;border-radius:14px;padding:.6rem}.site-nav nav{display:none}.about-grid,.skills-grid,.projects-grid,.gamedev .game-layout,.github-grid{grid-template-columns:1fr}.hero{min-height:88vh}.cursor-dot,.cursor-trail{display:none}body{cursor:auto}.magnetic-btn,.site-nav button,.social-row a,.orb-shell,.brand,.site-footer a{cursor:pointer}.site-footer{flex-direction:column;align-items:flex-start}.game-info{position:relative;top:auto;left:auto;transform:none;width:100%;padding:0;margin-top:3rem}.gamedev .game-layout{min-height:0}.game-info p{max-width:100%;font-size:1rem}.spline-gamedev-free{top:66%;transform:translate(-50%,-50%) scale(.72);width:190vw;height:140vh}}@media (prefers-reduced-motion: reduce){.floating-blob,.floating-card,.cursor-dot,.cursor-trail{animation:none!important}}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}#root{width:100%}
