*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--clr-bg: #050709;--clr-bg-2: #0a0d14;--clr-bg-3: #0f1219;--clr-surface: rgba(255,255,255,.04);--clr-surface-hover: rgba(255,255,255,.08);--clr-border: rgba(255,255,255,.1);--clr-purple: rgba(200,220,244,.85);--clr-purple-light: #dce8f5;--clr-cyan: rgba(180,210,240,.7);--clr-cyan-light: #e0eaf5;--clr-pink: #b0c4de;--grad-primary: linear-gradient(135deg, rgba(255,255,255,.85) 0%, rgba(180,210,240,.6) 100%);--grad-glow: linear-gradient(135deg, rgba(255,255,255,.06) 0%, rgba(180,210,240,.06) 100%);--clr-text: #e4e8ef;--clr-text-muted: #8a95a8;--clr-text-faint: #4a5568;--ff-body: "Outfit", sans-serif;--ff-mono: "JetBrains Mono", monospace;--r-sm: 8px;--r-md: 16px;--r-lg: 24px;--r-xl: 32px;--shadow-glow: 0 0 40px rgba(200,220,244,.1);--shadow-cyan: 0 0 40px rgba(180,210,240,.1);--ease: cubic-bezier(.4, 0, .2, 1);--dur: .25s}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--ff-body);background-color:var(--clr-bg);color:var(--clr-text);line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--clr-bg)}::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:2px}.cursor,.cursor-follower{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:9999;will-change:transform;mix-blend-mode:difference}.cursor{width:10px;height:10px;background:#fff}.cursor-follower{width:36px;height:36px;border:1.5px solid rgba(255,255,255,.4);transition:width .2s ease,height .2s ease,border-color .2s ease}.cursor-follower.hover{width:56px;height:56px;border-color:#ffffffb3}#particleCanvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.4;will-change:contents}.container{max-width:1200px;margin:0 auto;padding:0 2rem}section{position:relative;z-index:1;contain:layout style}.section-header{text-align:center;margin-bottom:4rem}.section-tag{font-family:var(--ff-mono);font-size:.8rem;color:var(--clr-purple);text-transform:uppercase;letter-spacing:.15em;display:block;margin-bottom:.75rem}.section-title{font-size:clamp(2rem,4vw,3rem);font-weight:800;letter-spacing:-.02em;background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-subtitle{color:var(--clr-text-muted);max-width:520px;margin:1rem auto 0;font-size:1.05rem}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:1.25rem 3rem;transition:padding var(--dur) var(--ease),background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.navbar.scrolled{background:#050709d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--clr-border);padding:.9rem 3rem}.nav-logo{font-size:1.6rem;font-weight:900;color:#fff;text-decoration:none;letter-spacing:-.02em;display:flex;align-items:center;gap:.6rem}.nav-avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;object-position:center top;border:2px solid transparent;background-clip:padding-box;outline:2px solid rgba(255,255,255,.35);outline-offset:1px;transition:transform var(--dur) var(--ease),outline-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);box-shadow:0 0 10px #ffffff26}.nav-logo:hover .nav-avatar{outline-color:#ffffffb3;box-shadow:0 0 18px #ffffff40;transform:scale(1.08)}.nav-links{display:flex;gap:2.5rem;list-style:none}.nav-link{color:var(--clr-text-muted);text-decoration:none;font-size:.9rem;font-weight:500;letter-spacing:.02em;transition:color var(--dur) var(--ease);position:relative}.nav-link:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1.5px;background:var(--clr-purple);transition:width .3s ease}.nav-link:hover{color:#fff}.nav-link:hover:after{width:100%}.nav-cta{background:var(--grad-primary);color:#fff;text-decoration:none;padding:.6rem 1.4rem;border-radius:100px;font-size:.875rem;font-weight:600;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);box-shadow:0 0 20px #ffffff26}.nav-cta:hover{transform:translateY(-2px);box-shadow:0 8px 30px #fff3}.dot{color:var(--clr-purple)}.hamburger{display:none;flex-direction:column;gap:6px;background:none;border:none;cursor:pointer;padding:6px;z-index:1001}.hamburger span{display:block;width:26px;height:2px;background:#fff;border-radius:2px;transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .25s ease,background .3s ease;transform-origin:center}.hamburger.active span:nth-child(1){transform:translateY(8px) rotate(45deg);background:var(--clr-purple-light)}.hamburger.active span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg);background:var(--clr-purple-light)}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;background:var(--grad-primary);color:#fff;text-decoration:none;padding:.85rem 2rem;border-radius:100px;font-size:.95rem;font-weight:600;border:none;cursor:pointer;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);box-shadow:0 0 30px #ffffff26;position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;inset:0;background:#ffffff1a;opacity:0;transition:opacity .3s}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 12px 40px #c8dcf440}.btn-primary:hover:before{opacity:1}.btn-ghost{display:inline-flex;align-items:center;gap:.5rem;background:transparent;color:var(--clr-text);text-decoration:none;padding:.85rem 2rem;border-radius:100px;font-size:.95rem;font-weight:600;border:1px solid var(--clr-border);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease)}.btn-ghost:hover{border-color:#ffffff4d;color:#fff;background:#ffffff0f}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;width:100%}.hero-bg-image{position:absolute;inset:0;background:url(/hero_bg.png) center center/cover no-repeat;opacity:.45;will-change:transform}@media(max-width:768px){.hero-bg-image{background-position:30% center}}.hero-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(200,220,244,.06) 0%,transparent 60%),linear-gradient(180deg,transparent 60%,var(--clr-bg) 100%)}.hero-content{position:relative;z-index:2;text-align:left;padding:2rem 0;max-width:800px;animation:heroFadeIn 1s ease forwards}@keyframes heroFadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:var(--clr-text-muted);padding:.4rem 1.2rem;border-radius:100px;font-size:.8rem;font-weight:500;margin-bottom:2rem;letter-spacing:.05em}.badge-dot{width:6px;height:6px;background:#4ade80;border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.hero-name{font-size:clamp(3.5rem,10vw,7.5rem);font-weight:900;line-height:.95;letter-spacing:-.04em;margin-bottom:1.5rem}.name-line{display:block}.gradient-text{background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-typewriter{font-size:clamp(1.1rem,3vw,1.5rem);font-family:var(--ff-mono);color:var(--clr-cyan);margin-bottom:1.5rem;min-height:2rem}.typewriter-prefix{color:var(--clr-text-muted)}.typewriter-cursor{animation:blink .8s step-end infinite;color:var(--clr-purple)}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-desc{font-size:1.1rem;color:var(--clr-text-muted);max-width:560px;margin:0 0 2.5rem;line-height:1.7}.hero-actions{display:flex;gap:1rem;justify-content:flex-start;flex-wrap:wrap;margin-bottom:4rem}.hero-stats{display:flex;align-items:center;justify-content:flex-start;gap:3rem;padding:1.5rem 2.5rem;background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-xl);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);max-width:fit-content;margin:0}.stat-item{text-align:center}.stat-num{font-size:2rem;font-weight:800;background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-suf{font-size:1.5rem;font-weight:800;color:var(--clr-purple)}.stat-label{display:block;font-size:.75rem;color:var(--clr-text-muted);margin-top:.2rem;letter-spacing:.05em;text-transform:uppercase}.stat-divider{width:1px;height:40px;background:var(--clr-border)}.hero-scroll{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--clr-text-faint);z-index:2}.scroll-line{width:1px;height:50px;background:linear-gradient(to bottom,var(--clr-purple),transparent);animation:scrollLine 1.5s ease-in-out infinite}@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top;opacity:0}50%{transform:scaleY(1);transform-origin:top;opacity:1}to{transform:scaleY(1);transform-origin:bottom;opacity:0}}.about{padding:8rem 0;background:linear-gradient(180deg,var(--clr-bg) 0%,var(--clr-bg-2) 100%)}.about-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:5rem;align-items:center}.about-image-wrap{position:relative}.about-image-frame{width:100%;max-width:380px;aspect-ratio:4/5;border-radius:var(--r-lg);background:var(--grad-glow);border:1px solid var(--clr-border);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);will-change:transform}.about-image-frame:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad-primary);transform:scaleX(0);transform-origin:left;transition:transform .4s ease;z-index:2}.about-image-frame:hover{border-color:#fff3;transform:translateY(-6px);box-shadow:0 20px 60px #00000080,var(--shadow-glow)}.about-image-frame:hover:before{transform:scaleX(1)}.about-photo{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:inherit;display:block}.floating-card{position:absolute;bottom:-1.5rem;right:-1.5rem;background:var(--clr-bg-3);border:1px solid var(--clr-border);border-radius:var(--r-md);padding:1rem 1.25rem;display:flex;align-items:center;gap:.75rem;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:float 5s ease-in-out infinite;will-change:transform}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.card-icon{font-size:1.5rem}.floating-card strong{font-size:.9rem;color:#fff}.floating-card p{font-size:.75rem;color:var(--clr-text-muted)}.about-lead{font-size:1.2rem;color:#fff;font-weight:500;line-height:1.6;margin-bottom:1.5rem}.about-text p{color:var(--clr-text-muted);margin-bottom:1.25rem;line-height:1.75}.about-highlights{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.5rem}.highlight-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-sm);font-size:.875rem;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);position:relative;overflow:hidden}.highlight-item:hover{border-color:#fff3;background:#ffffff0f}.highlight-icon{font-size:1.1rem}.skills{padding:8rem 0;background:var(--clr-bg-2)}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.skill-category{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-lg);padding:2rem;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.skill-category:hover{border-color:#fff3;background:var(--clr-surface-hover);transform:translateY(-4px);box-shadow:var(--shadow-glow)}.category-title{display:flex;align-items:center;gap:.75rem;font-size:1.1rem;font-weight:700;color:#fff;margin-bottom:1.5rem}.cat-icon{font-size:1.3rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.6rem}.skill-tag{padding:.4rem 1rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:100px;font-size:.8rem;font-weight:500;color:var(--clr-purple-light);cursor:default;transition:transform var(--dur) var(--ease),background var(--dur) var(--ease),border-color var(--dur) var(--ease);position:relative}.skill-tag:hover{background:#ffffff1f;border-color:#ffffff4d;transform:translateY(-2px)}.projects{padding:8rem 0;background:var(--clr-bg)}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.project-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-lg);padding:2rem;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad-primary);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}.project-card:hover{border-color:#fff3;transform:translateY(-6px);box-shadow:0 20px 60px #00000080,var(--shadow-glow)}.project-card:hover:before{transform:scaleX(1)}.project-card.clickable-card{cursor:pointer}.project-card.featured{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;padding:3rem;background:linear-gradient(135deg,#ffffff0a,#b4d2f00a);border-color:#ffffff26}.project-meta{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.project-num{font-family:var(--ff-mono);font-size:.75rem;color:var(--clr-text-faint)}.project-badge{padding:.2rem .75rem;background:linear-gradient(135deg,#ffffff14,#b4d2f014);border:1px solid rgba(255,255,255,.15);border-radius:100px;font-size:.7rem;font-weight:600;color:var(--clr-purple-light);letter-spacing:.05em;text-transform:uppercase}.project-number{font-family:var(--ff-mono);font-size:.75rem;color:var(--clr-purple);margin-bottom:1rem}.project-title{font-size:1.3rem;font-weight:700;color:#fff;margin-bottom:.75rem;line-height:1.3}.project-desc{color:var(--clr-text-muted);font-size:.9rem;line-height:1.65;margin-bottom:1.25rem}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.project-tech span{padding:.25rem .75rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:100px;font-size:.75rem;font-weight:500;color:var(--clr-cyan);font-family:var(--ff-mono)}.project-links{display:flex;gap:1.25rem}.proj-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;font-weight:600;color:var(--clr-text-muted);text-decoration:none;transition:color var(--dur) var(--ease)}.proj-link svg{width:14px;height:14px}.proj-link:hover{color:var(--clr-purple-light)}.project-visual{display:flex;align-items:center;justify-content:center}.project-mockup{width:100%;max-width:380px;background:#0d1120e6;border-radius:12px;border:1px solid rgba(255,255,255,.1);overflow:hidden;box-shadow:0 20px 60px #00000080}.mockup-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.06)}.mockup-bar span{width:8px;height:8px;border-radius:50%}.mockup-bar span:nth-child(1){background:#ff5f57}.mockup-bar span:nth-child(2){background:#febc2e}.mockup-bar span:nth-child(3){background:#28c840}.mockup-body{padding:1.5rem;display:flex;align-items:flex-end;gap:.5rem;height:180px}.chart-bar{flex:1;background:var(--grad-primary);border-radius:4px 4px 0 0;opacity:.8;animation:chartGrow 1s ease forwards;transform-origin:bottom}@keyframes chartGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.experience{padding:8rem 0;background:var(--clr-bg-2)}.timeline{max-width:800px;margin:0 auto;position:relative}.timeline:before{content:"";position:absolute;left:18px;top:8px;bottom:8px;width:1px;background:linear-gradient(to bottom,var(--clr-purple),transparent)}.timeline-item{display:flex;gap:2.5rem;margin-bottom:3rem;animation:fadeSlideIn .6s ease forwards;opacity:0}.timeline-item.visible{opacity:1}@keyframes fadeSlideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.timeline-dot{width:36px;height:36px;min-width:36px;border-radius:50%;background:var(--clr-bg-2);border:2px solid rgba(255,255,255,.25);position:relative;z-index:1;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.timeline-dot:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:50%;background:#ffffff80}.timeline-item:hover .timeline-dot{background:#fff3;box-shadow:0 0 20px #fff3}.timeline-content{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-md);padding:1.75rem;flex:1;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);position:relative;overflow:hidden}.timeline-item:hover .timeline-content{border-color:#fff3;box-shadow:var(--shadow-glow)}.exp-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;flex-wrap:wrap;gap:.5rem}.exp-role{font-size:1.1rem;font-weight:700;color:#fff}.exp-company{display:block;font-size:.875rem;color:var(--clr-purple-light);margin-top:.15rem}.exp-date{font-family:var(--ff-mono);font-size:.75rem;color:var(--clr-text-muted);padding:.25rem .75rem;background:#ffffff0d;border-radius:100px;white-space:nowrap}.exp-desc{color:var(--clr-text-muted);font-size:.9rem;line-height:1.65;margin-bottom:1rem}.exp-tags{display:flex;flex-wrap:wrap;gap:.5rem}.exp-tags span{padding:.2rem .65rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:100px;font-size:.72rem;color:var(--clr-purple-light);font-weight:500}.contact{padding:8rem 0;background:var(--clr-bg);position:relative;overflow:hidden}.contact:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(200,220,244,.05) 0%,transparent 70%);pointer-events:none}.contact-grid{display:grid;grid-template-columns:1fr 2fr;gap:4rem;align-items:start}.contact-item{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.contact-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-sm);font-size:1.1rem;flex-shrink:0}.contact-label{display:block;font-size:.72rem;color:var(--clr-text-faint);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.2rem}.contact-value{color:#fff;font-weight:500;text-decoration:none;transition:color var(--dur) var(--ease)}a.contact-value:hover{color:var(--clr-purple-light)}.social-links{display:flex;gap:1rem;margin-top:2rem}.social-link{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-sm);color:var(--clr-text-muted);text-decoration:none;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease)}.social-link svg{width:18px;height:18px}.social-link:hover{border-color:#ffffff40;color:#fff;background:#ffffff14;transform:translateY(-3px)}.contact-form{display:flex;flex-direction:column;gap:1.25rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.8rem;font-weight:600;color:var(--clr-text-muted);letter-spacing:.05em;text-transform:uppercase}.form-group input,.form-group textarea{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-sm);padding:.85rem 1rem;color:#fff;font-family:var(--ff-body);font-size:.95rem;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);resize:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--clr-text-faint)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#ffffff4d;background:#ffffff0a;box-shadow:0 0 0 3px #ffffff0f}.submit-btn{align-self:flex-start;gap:.75rem;font-size:1rem;padding:1rem 2.5rem}.btn-icon{transition:transform .3s ease}.submit-btn:hover .btn-icon{transform:translate(4px)}.form-success{display:none;padding:1rem 1.25rem;background:#4ade801a;border:1px solid rgba(74,222,128,.3);border-radius:var(--r-sm);color:#4ade80;font-size:.9rem}.form-success.show{display:block}.footer{padding:2rem 0;border-top:1px solid var(--clr-border);background:var(--clr-bg-2)}.footer-inner{display:flex;align-items:center;justify-content:space-between}.footer-logo{font-size:1.3rem;font-weight:900;color:#fff;text-decoration:none}.footer-copy{font-size:.85rem;color:var(--clr-text-muted)}.back-to-top{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-sm);color:var(--clr-text-muted);text-decoration:none;font-size:1.1rem;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.back-to-top:hover{border-color:#ffffff40;color:#fff;transform:translateY(-3px)}.spotlight-card{--mouse-x: -999px;--mouse-y: -999px}.spotlight-card:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(380px circle at var(--mouse-x) var(--mouse-y),rgba(255,255,255,.08),transparent 65%);pointer-events:none;z-index:1;opacity:0;transition:opacity .35s ease}.spotlight-card:hover:after{opacity:1}.spotlight-sm:after{background:radial-gradient(180px circle at var(--mouse-x) var(--mouse-y),rgba(255,255,255,.12),transparent 70%)}@keyframes anim3dUp{0%{opacity:0;transform:perspective(900px) rotateX(22deg) translateY(55px) translateZ(-40px)}to{opacity:1;transform:perspective(900px) rotateX(0) translateY(0) translateZ(0)}}@keyframes anim3dLeft{0%{opacity:0;transform:perspective(900px) rotateY(28deg) translate(-50px) translateZ(-30px)}to{opacity:1;transform:perspective(900px) rotateY(0) translate(0) translateZ(0)}}@keyframes anim3dRight{0%{opacity:0;transform:perspective(900px) rotateY(-28deg) translate(50px) translateZ(-30px)}to{opacity:1;transform:perspective(900px) rotateY(0) translate(0) translateZ(0)}}@keyframes anim3dScale{0%{opacity:0;transform:perspective(900px) translateZ(-90px) scale(.88)}to{opacity:1;transform:perspective(900px) translateZ(0) scale(1)}}@keyframes anim3dFlip{0%{opacity:0;transform:perspective(600px) rotateX(55deg) translateY(24px)}65%{opacity:1}to{opacity:1;transform:perspective(600px) rotateX(0) translateY(0)}}.anim-3d{opacity:0;will-change:opacity,transform}.anim-3d.anim-up{animation:anim3dUp .75s cubic-bezier(.22,1,.36,1) both paused;animation-delay:var(--sd, 0ms)}.anim-3d.anim-left{animation:anim3dLeft .75s cubic-bezier(.22,1,.36,1) both paused;animation-delay:var(--sd, 0ms)}.anim-3d.anim-right{animation:anim3dRight .75s cubic-bezier(.22,1,.36,1) both paused;animation-delay:var(--sd, 0ms)}.anim-3d.anim-scale{animation:anim3dScale .75s cubic-bezier(.22,1,.36,1) both paused;animation-delay:var(--sd, 0ms)}.anim-3d.anim-flip{animation:anim3dFlip .65s cubic-bezier(.22,1,.36,1) both paused;animation-delay:var(--sd, 0ms);transform-origin:top center}.anim-3d.in-view{animation-play-state:running}.anim-3d.done{animation:none;opacity:1;will-change:auto}.reveal{opacity:0;transform:translateY(32px);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.reveal.visible{opacity:1;transform:translateY(0);will-change:auto}@media(hover:none),(pointer:coarse){.cursor,.cursor-follower{display:none!important}}@media(max-width:900px){@keyframes anim3dUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes anim3dLeft{0%{opacity:0;transform:translate(-25px)}to{opacity:1;transform:translate(0)}}@keyframes anim3dRight{0%{opacity:0;transform:translate(25px)}to{opacity:1;transform:translate(0)}}@keyframes anim3dScale{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes anim3dFlip{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}}@media(max-width:900px){.container{padding:0 1.25rem}.navbar{padding:.85rem 1.25rem}.navbar.scrolled{padding:.65rem 1.25rem}.nav-links,.nav-cta{display:none}.hamburger{display:flex}.nav-avatar{width:38px;height:38px}.nav-links.open{display:flex;flex-direction:column;position:fixed;top:60px;left:0;right:0;background:#080b14f7;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:1rem 1.25rem 1.5rem;gap:0;border-bottom:1px solid var(--clr-border);z-index:999;animation:menuOpen .4s cubic-bezier(.22,1,.36,1) both;box-shadow:0 16px 48px #00000080}.nav-links.open.closing{animation:menuClose .3s cubic-bezier(.4,0,1,1) both}@keyframes menuOpen{0%{opacity:0;transform:translateY(-16px) scaleY(.92)}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes menuClose{0%{opacity:1;transform:translateY(0) scaleY(1)}to{opacity:0;transform:translateY(-12px) scaleY(.95)}}.nav-links.open li{opacity:0;animation:linkReveal .4s cubic-bezier(.22,1,.36,1) forwards;animation-delay:calc(var(--link-i, 0) * 60ms + 80ms)}@keyframes linkReveal{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}.nav-links.open .nav-link{padding:.85rem .75rem;font-size:1.05rem;color:var(--clr-text-muted);border-bottom:1px solid rgba(255,255,255,.04);display:block;transition:color .2s ease,padding-left .2s ease}.nav-links.open .nav-link:hover{color:#fff;padding-left:1.2rem}.nav-links.open .nav-link:after{display:none}.menu-backdrop{position:fixed;inset:0;background:#0000008c;z-index:998;animation:backdropIn .35s ease both;-webkit-tap-highlight-color:transparent}.menu-backdrop.closing{animation:backdropOut .3s ease both}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@keyframes backdropOut{0%{opacity:1}to{opacity:0}}.about,.skills,.projects,.experience,.contact{padding:4.5rem 0}.section-header{margin-bottom:2.5rem}.hero-content{padding:1.25rem}.hero-desc{font-size:.95rem;margin-bottom:2rem}.hero-actions{margin-bottom:2.5rem;gap:.75rem}.hero-stats{gap:1.5rem;padding:1rem 1.25rem;border-radius:var(--r-lg)}.stat-num{font-size:1.6rem}.stat-suf{font-size:1.2rem}.stat-divider{height:30px}.hero-scroll{bottom:1.5rem}.about-grid{grid-template-columns:1fr;gap:2.5rem}.about-image-wrap{max-width:280px;margin:0 auto}.about-image-frame{max-width:100%}.floating-card{bottom:-1rem;right:-.5rem;padding:.75rem 1rem;font-size:.8rem}.floating-card strong{font-size:.8rem}.floating-card p{font-size:.65rem}.about-lead{font-size:1.05rem}.skills-grid{grid-template-columns:1fr;gap:1.25rem}.skill-category{padding:1.5rem}.projects-grid{grid-template-columns:1fr;gap:1.25rem}.project-card{padding:1.5rem}.project-card.featured{grid-column:span 1;grid-template-columns:1fr;padding:1.5rem;gap:1.5rem}.project-visual{display:none}.project-title{font-size:1.15rem}.timeline:before{left:16px}.timeline-item{gap:1.5rem}.timeline-dot{width:32px;height:32px;min-width:32px}.timeline-content{padding:1.25rem}.exp-header{flex-direction:column;gap:.4rem}.exp-date{align-self:flex-start}.contact-grid{grid-template-columns:1fr;gap:2.5rem}.form-row{grid-template-columns:1fr}.submit-btn{align-self:stretch;justify-content:center}.footer-inner{flex-direction:column;gap:.75rem;text-align:center}}@media(max-width:600px){.container{padding:0 1rem}.hero-name{font-size:clamp(2.5rem,12vw,4rem)}.hero-typewriter{font-size:clamp(.85rem,3.5vw,1.15rem)}.hero-desc{font-size:.88rem;line-height:1.65}.hero-actions{flex-direction:column;align-items:center}.btn-primary,.btn-ghost{width:100%;justify-content:center;padding:.75rem 1.5rem;font-size:.9rem}.hero-stats{flex-direction:row;gap:1rem;padding:.85rem 1rem}.stat-num{font-size:1.35rem}.stat-label{font-size:.65rem}.stat-divider{height:24px}.about-image-wrap{max-width:220px}.about-highlights{grid-template-columns:1fr;gap:.5rem}.about-lead{font-size:1rem}.about-text p{font-size:.88rem}.skill-category{padding:1.25rem}.category-title{font-size:1rem}.skill-tag{padding:.35rem .75rem;font-size:.72rem}.project-card{padding:1.25rem}.project-title{font-size:1.05rem}.project-desc{font-size:.82rem}.project-tech span{font-size:.68rem;padding:.2rem .6rem}.timeline-item{gap:1rem;margin-bottom:2rem}.timeline-dot{width:28px;height:28px;min-width:28px}.timeline-dot:after{width:8px;height:8px}.timeline-content{padding:1rem}.exp-role{font-size:1rem}.exp-desc{font-size:.82rem}.exp-tags span{font-size:.65rem}.contact-item,.social-links{gap:.75rem}.social-link{width:38px;height:38px}.submit-btn{padding:.85rem 1.5rem;font-size:.9rem}.about,.skills,.projects,.experience,.contact{padding:3.5rem 0}.section-header{margin-bottom:2rem}.section-tag{font-size:.7rem}}@media(max-width:400px){.hero-name{font-size:clamp(2rem,14vw,3rem)}.hero-stats{flex-wrap:wrap;justify-content:center}.stat-divider{display:none}.stat-item{min-width:60px}.floating-card{display:none}.navbar{padding:.75rem 1rem}.nav-avatar{width:34px;height:34px}}.preloader{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:transparent;transition:opacity .7s cubic-bezier(.4,0,.2,1),visibility .7s cubic-bezier(.4,0,.2,1)}.preloader.exit{opacity:0;visibility:hidden;pointer-events:none}.preloader-logo{width:180px;height:180px;opacity:0;animation:logoFadeIn .4s ease .1s forwards}.react-logo-svg{width:100%;height:100%;animation:logoSpin 14s linear infinite;filter:drop-shadow(0 0 2px rgba(97,218,251,.3))}.orbit{stroke-dasharray:900;stroke-dashoffset:900}.orbit-1{animation:orbitDraw 1.2s cubic-bezier(.25,.46,.45,.94) .1s forwards}.orbit-2{animation:orbitDraw 1.2s cubic-bezier(.25,.46,.45,.94) .35s forwards}.orbit-3{animation:orbitDraw 1.2s cubic-bezier(.25,.46,.45,.94) .6s forwards}.nucleus-glow,.nucleus-core{opacity:0;animation:nucleusFadeIn .5s ease 1.1s forwards}@keyframes logoFadeIn{to{opacity:1}}@keyframes logoSpin{to{transform:rotate(360deg)}}@keyframes orbitDraw{to{stroke-dashoffset:0}}@keyframes nucleusFadeIn{0%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.preloader.glow .react-logo-svg{filter:drop-shadow(0 0 12px rgba(97,218,251,.6)) drop-shadow(0 0 40px rgba(33,150,243,.35)) drop-shadow(0 0 80px rgba(97,218,251,.15));transition:filter .6s ease}.preloader.glow .nucleus-glow{animation:nucleusPulse 1.2s ease-in-out infinite}@keyframes nucleusPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.preloader.exit .preloader-logo{animation:logoZoomOut .8s cubic-bezier(.4,0,.2,1) forwards}.preloader.exit .react-logo-svg{filter:drop-shadow(0 0 30px rgba(97,218,251,.8)) drop-shadow(0 0 60px rgba(33,150,243,.5)) drop-shadow(0 0 120px rgba(97,218,251,.3))}@keyframes logoZoomOut{0%{opacity:1;transform:scale(1)}40%{opacity:1;transform:scale(.85)}to{opacity:0;transform:scale(0)}}@media(max-width:600px){.preloader-logo{width:140px;height:140px}}.skeleton-overlay{position:fixed;inset:0;z-index:99998;background:var(--clr-bg);display:flex;align-items:center;justify-content:center;pointer-events:none}.skeleton-section{width:100%;max-width:900px;padding:2rem;display:flex;flex-direction:column;align-items:center;gap:1.2rem}.skeleton-badge{width:160px;height:28px;border-radius:100px}.skeleton-title{width:480px;max-width:80%;height:64px;border-radius:12px}.skeleton-title-sm{width:320px;max-width:60%;height:56px;border-radius:12px}.skeleton-typewriter{width:280px;max-width:50%;height:24px;border-radius:8px;margin-top:.5rem}.skeleton-text{width:400px;max-width:70%;height:18px;border-radius:6px}.skeleton-buttons{display:flex;gap:1rem;margin-top:1rem}.skeleton-btn{width:150px;height:46px;border-radius:100px}.skeleton-btn-ghost{width:130px}.skeleton-stats{display:flex;gap:2rem;margin-top:2rem}.skeleton-stat{width:80px;height:56px;border-radius:12px}.skeleton-pulse{background:linear-gradient(110deg,#ffffff08,#ffffff0f 40%,#ffffff1a,#ffffff0f 60%,#ffffff08);background-size:200% 100%;animation:skeletonShimmer 1.8s ease-in-out infinite}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.app-content{opacity:0;transition:opacity .5s ease .1s}.app-content.app-loaded{opacity:1}@media(max-width:600px){.skeleton-stats{gap:1rem}.skeleton-stat{width:60px;height:44px}.skeleton-title{height:44px}.skeleton-title-sm{height:38px}}
