
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
:root {
  --grad1: linear-gradient(135deg, #f953c6, #b91d73);
  --grad2: linear-gradient(135deg, #4facfe, #00f2fe);
  --grad3: linear-gradient(135deg, #43e97b, #38f9d7);
  --grad4: linear-gradient(135deg, #fa709a, #fee140);
  --grad5: linear-gradient(135deg, #a18cd1, #fbc2eb);
  --dark: #0a0a12; --card: #11111e;
  --border: rgba(255,255,255,0.07);
  --text: #e8e8f0; --muted: #888;
}
html { scroll-behavior: smooth; }
body { font-family: 'Outfit', sans-serif; background: var(--dark); color: var(--text); overflow-x: hidden; cursor: none; }

/* CURSOR */
#cursor { width: 12px; height: 12px; background: #fa709a; border-radius: 50%; position: fixed; pointer-events: none; z-index: 99999; transform: translate(-50%,-50%); transition: width .2s, height .2s, background .2s; mix-blend-mode: screen; }
#cursor-ring { width: 40px; height: 40px; border: 1.5px solid rgba(250,112,154,0.5); border-radius: 50%; position: fixed; pointer-events: none; z-index: 99998; transform: translate(-50%,-50%); transition: width .2s, height .2s, border-color .2s; }
body.hovering #cursor { width: 20px; height: 20px; background: #fee140; }
body.hovering #cursor-ring { width: 56px; height: 56px; border-color: rgba(254,225,64,0.4); }

/* NOISE */
body::before { content:''; position:fixed; inset:0; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E"); pointer-events:none; z-index:9000; opacity:.4; }

/* PROGRESS BAR */
#progress-bar { position:fixed; top:0; left:0; height:2px; z-index:9999; background:var(--grad4); width:0%; transition:width .1s linear; }

/* NAV */
nav#topnav { position:fixed; top:0; left:0; right:0; z-index:500; display:flex; justify-content:space-between; align-items:center; padding:1.2rem 6%; backdrop-filter:blur(20px); background:rgba(10,10,18,.75); border-bottom:1px solid var(--border); transition:padding .3s, background .3s; }
nav#topnav.scrolled { padding:.8rem 6%; background:rgba(10,10,18,.95); }
.nav-logo { font-family:'Syne',sans-serif; font-weight:800; font-size:1.3rem; background:var(--grad4); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.nav-links { display:flex; gap:2.5rem; list-style:none; }
.nav-links a { font-size:.85rem; font-weight:500; color:var(--muted); text-decoration:none; transition:color .3s; letter-spacing:.08em; text-transform:uppercase; position:relative; }
.nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; right:0; height:2px; border-radius:2px; background:var(--grad4); transform:scaleX(0); transition:transform .3s; }
.nav-links a:hover { color:#fff; }
.nav-links a:hover::after, .nav-links a.active::after { transform:scaleX(1); }
.nav-links a.active { color:#fff; }

/* HERO */
#hero { min-height:100vh; display:flex; align-items:center; padding:0 6%; padding-top:90px; position:relative; overflow:hidden; }
.hero-blobs { position:absolute; inset:0; pointer-events:none; }
.blob { position:absolute; border-radius:50%; filter:blur(100px); opacity:.18; animation:floatBlob 8s ease-in-out infinite; }
.blob1 { width:600px; height:600px; background:#f953c6; top:-150px; right:-100px; }
.blob2 { width:500px; height:500px; background:#4facfe; bottom:-150px; left:-100px; animation-delay:-3s; }
.blob3 { width:350px; height:350px; background:#43e97b; top:40%; left:40%; animation-delay:-5s; }
@keyframes floatBlob { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(30px,-30px) scale(1.05)} }
.hero-content { position:relative; z-index:2; max-width:750px; }
.hero-tag { display:inline-flex; align-items:center; gap:.5rem; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:100px; padding:.35rem 1rem; font-size:.8rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:#ccc; margin-bottom:1.5rem; animation:fadeUp .6s ease both; }
.pulse-dot { width:8px; height:8px; background:#43e97b; border-radius:50%; box-shadow:0 0 0 0 rgba(67,233,123,.4); animation:pulseGreen 2s infinite; }
@keyframes pulseGreen { 0%{box-shadow:0 0 0 0 rgba(67,233,123,.5)} 70%{box-shadow:0 0 0 8px rgba(67,233,123,0)} 100%{box-shadow:0 0 0 0 rgba(67,233,123,0)} }
h1.hero-name { font-family:'Syne',sans-serif; font-size:clamp(3rem,7vw,6rem); font-weight:800; line-height:1.05; animation:fadeUp .7s .1s ease both; }
.gradient-text { background:var(--grad4); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.hero-title { font-family:'Syne',sans-serif; font-size:clamp(1.3rem,3vw,2rem); font-weight:600; color:var(--muted); margin:.5rem 0 1.5rem; animation:fadeUp .7s .2s ease both; min-height:2.5rem; }
#typed-cursor { display:inline-block; width:3px; height:1.2em; background:#fa709a; margin-left:3px; vertical-align:middle; animation:blink .8s step-end infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
.hero-bio { font-size:1.05rem; line-height:1.8; color:#aaa; max-width:560px; animation:fadeUp .7s .3s ease both; }
.hero-cta { display:flex; gap:1rem; flex-wrap:wrap; margin-top:2.5rem; animation:fadeUp .7s .4s ease both; }
.btn-primary { display:inline-flex; align-items:center; gap:.5rem; padding:.85rem 2rem; border-radius:100px; background:var(--grad4); color:#000; font-weight:700; font-size:.95rem; text-decoration:none; transition:transform .2s, box-shadow .2s; box-shadow:0 0 30px rgba(250,112,154,.4); position:relative; overflow:hidden; }
.btn-primary:hover { transform:translateY(-3px) scale(1.02); box-shadow:0 8px 40px rgba(250,112,154,.6); }
.btn-primary:active { transform:scale(.97); }
.btn-outline { display:inline-flex; align-items:center; gap:.5rem; padding:.85rem 2rem; border-radius:100px; border:1px solid rgba(255,255,255,.15); color:#fff; font-weight:600; font-size:.95rem; text-decoration:none; transition:all .2s; backdrop-filter:blur(10px); }
.btn-outline:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.3); transform:translateY(-2px); }
.btn-outline:active { transform:scale(.97); }
.hero-scroll { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:.5rem; color:var(--muted); font-size:.7rem; letter-spacing:.12em; animation:fadeUp 1s .8s ease both; }
.scroll-line { width:1px; height:60px; background:linear-gradient(to bottom,rgba(255,255,255,.3),transparent); animation:scrollPulse 2s ease-in-out infinite; }
@keyframes scrollPulse { 0%,100%{opacity:.3} 50%{opacity:1} }
@keyframes fadeUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }

/* SECTIONS */
section { padding:7rem 6%; }
.section-label { font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.2em; color:var(--muted); margin-bottom:.75rem; }
.section-title { font-family:'Syne',sans-serif; font-size:clamp(2rem,4vw,3rem); font-weight:800; margin-bottom:3rem; }

/* ABOUT */
#about { background:rgba(255,255,255,.01); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.about-text p { font-size:1.05rem; line-height:1.9; color:#aaa; margin-bottom:1.2rem; }
.about-stats { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.stat-card { background:var(--card); border:1px solid var(--border); border-radius:16px; padding:1.5rem; text-align:center; transition:transform .3s, box-shadow .3s, border-color .3s; cursor:default; }
.stat-card:hover { transform:translateY(-6px) scale(1.02); box-shadow:0 12px 40px rgba(0,0,0,.4); border-color:rgba(255,255,255,.15); }
.stat-num { font-family:'Syne',sans-serif; font-size:2.5rem; font-weight:800; }
.stat-num.pink  { background:var(--grad1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.stat-num.blue  { background:var(--grad2); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.stat-num.green { background:var(--grad3); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.stat-num.orange{ background:var(--grad4); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.stat-label { font-size:.85rem; color:var(--muted); margin-top:.3rem; }

/* SKILLS */
#skills { background:var(--dark); }
.skills-grid { display:flex; flex-wrap:wrap; gap:.75rem; }
.skill-pill { display:flex; align-items:center; gap:.5rem; padding:.6rem 1.2rem; border-radius:100px; font-size:.9rem; font-weight:500; border:1px solid var(--border); background:var(--card); transition:all .25s; cursor:pointer; user-select:none; position:relative; overflow:hidden; }
.skill-pill:hover { transform:translateY(-3px) scale(1.05); border-color:transparent; color:#000; }
.skill-pill:active { transform:scale(.95); }
.skill-pill.bounce { animation:pillBounce .4s ease; }
@keyframes pillBounce { 0%{transform:scale(1)} 30%{transform:scale(1.15)} 60%{transform:scale(.95)} 100%{transform:scale(1)} }
.sp-html:hover  { background:var(--grad4); }
.sp-css:hover   { background:var(--grad2); }
.sp-js:hover    { background:linear-gradient(135deg,#f7971e,#ffd200); }
.sp-react:hover { background:var(--grad2); }
.sp-node:hover  { background:var(--grad3); }
.sp-c:hover     { background:var(--grad1); }
.sp-cpp:hover   { background:var(--grad5); }
.sp-py:hover    { background:linear-gradient(135deg,#4facfe,#43e97b); }
.sp-oop:hover   { background:var(--grad4); }
.sp-git:hover   { background:linear-gradient(135deg,#f953c6,#ff6b6b); }
.sp-np:hover    { background:var(--grad3); }
.sp-pd:hover    { background:var(--grad2); }
.sp-ml:hover    { background:var(--grad1); }
.sp-mpl:hover   { background:var(--grad2); }
.sp-sns:hover   { background:var(--grad3); }
.skill-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; transition:transform .2s, width .2s; }
.skill-pill:hover .skill-dot { transform:scale(0); width:0; margin:0; padding:0; }
.ripple { position:absolute; border-radius:50%; background:rgba(255,255,255,.25); transform:scale(0); animation:rippleAnim .5s linear; pointer-events:none; }
@keyframes rippleAnim { to { transform:scale(4); opacity:0; } }

/* PROJECTS */
#projects { background:rgba(255,255,255,.01); }
.projects-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:1.5rem; }
.project-card { background:var(--card); border:1px solid var(--border); border-radius:20px; padding:2rem; transition:all .35s cubic-bezier(.34,1.56,.64,1); display:flex; flex-direction:column; position:relative; overflow:hidden; }
.project-card::before { content:''; position:absolute; inset:0; background:var(--grad4); opacity:0; transition:opacity .35s; border-radius:20px; }
.project-card:hover { transform:translateY(-10px) scale(1.01); box-shadow:0 24px 60px rgba(250,112,154,.2); border-color:rgba(250,112,154,.5); }
.project-card:hover::before { opacity:.04; }
.project-top { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:1rem; position:relative; z-index:1; }
.project-icon { width:48px; height:48px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.4rem; }
.project-links { display:flex; gap:.5rem; }
.project-link { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.05); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; text-decoration:none; color:var(--muted); font-size:1rem; transition:all .25s; }
.project-link:hover { background:rgba(255,255,255,.15); color:#fff; transform:rotate(360deg) scale(1.1); }
.project-name { font-family:'Syne',sans-serif; font-size:1.3rem; font-weight:700; margin-bottom:.6rem; position:relative; z-index:1; }
.project-desc { color:#888; font-size:.95rem; line-height:1.7; position:relative; z-index:1; flex:1; }
.project-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.5rem; position:relative; z-index:1; }
.project-tag { padding:.25rem .75rem; border-radius:100px; font-size:.75rem; font-weight:600; background:rgba(255,255,255,.05); border:1px solid var(--border); color:var(--muted); transition:all .2s; }
.project-card:hover .project-tag { background:rgba(255,255,255,.1); color:#ccc; }

/* TIMELINE */
#experience { background:var(--dark); }
.timeline { position:relative; padding-left:2rem; }
.timeline::before { content:''; position:absolute; left:0; top:0; bottom:0; width:2px; background:linear-gradient(to bottom,#f953c6,#4facfe,#43e97b); border-radius:2px; }
.timeline-item { position:relative; margin-bottom:3rem; padding-left:1.5rem; }
.timeline-dot { position:absolute; left:-2.5rem; top:.3rem; width:16px; height:16px; border-radius:50%; border:3px solid var(--dark); transition:transform .3s, box-shadow .3s; }
.timeline-item:hover .timeline-dot { transform:scale(1.4); box-shadow:0 0 16px rgba(250,112,154,.6); }
.timeline-period { font-size:.8rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:.4rem; }
.timeline-role { font-family:'Syne',sans-serif; font-size:1.3rem; font-weight:700; margin-bottom:.2rem; }
.timeline-org { color:var(--muted); font-size:1rem; margin-bottom:.7rem; }
.timeline-desc { color:#888; font-size:.95rem; line-height:1.7; }

/* CONTACT */
#contact { background:rgba(255,255,255,.01); text-align:center; }
.contact-inner { max-width:600px; margin:0 auto; }
.contact-email { display:inline-block; font-family:'Syne',sans-serif; font-size:clamp(1rem,2.5vw,1.4rem); font-weight:700; background:var(--grad4); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; text-decoration:none; margin:1.5rem 0 2.5rem; transition:opacity .2s, transform .2s; }
.contact-email:hover { opacity:.75; transform:scale(1.04); }
.social-links { display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }
.social-btn { display:inline-flex; align-items:center; gap:.6rem; padding:.75rem 1.5rem; border-radius:100px; border:1px solid var(--border); background:var(--card); color:#ccc; text-decoration:none; font-size:.9rem; font-weight:500; transition:all .25s; position:relative; overflow:hidden; }
.social-btn:hover { background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.2); transform:translateY(-3px) scale(1.04); box-shadow:0 8px 24px rgba(0,0,0,.3); }
.social-btn:active { transform:scale(.96); }

footer { text-align:center; padding:2rem 6%; border-top:1px solid var(--border); color:var(--muted); font-size:.85rem; }

/* REVEAL */
.reveal { opacity:0; transform:translateY(40px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* BOTTOM TAB BAR */
.bottom-tab-bar { display:none; position:fixed; bottom:0; left:0; right:0; z-index:600; background:rgba(10,10,18,.9); backdrop-filter:blur(28px) saturate(180%); border-top:1px solid var(--border); padding:.4rem 0 calc(.4rem + env(safe-area-inset-bottom)); justify-content:space-around; align-items:center; }
.tab-slider { position:absolute; top:0; height:2px; border-radius:0 0 4px 4px; background:var(--grad4); transition:left .35s cubic-bezier(.34,1.56,.64,1), width .35s ease; }
.tab-item { display:flex; flex-direction:column; align-items:center; gap:.2rem; text-decoration:none; color:var(--muted); font-size:.6rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; padding:.4rem .6rem; border-radius:12px; transition:color .25s, transform .25s; flex:1; position:relative; overflow:hidden; }
.tab-item:active { transform:scale(.88); }
.tab-icon-wrap { width:28px; height:28px; border-radius:9px; display:flex; align-items:center; justify-content:center; transition:background .3s, transform .3s; }
.tab-item.active { color:#fff; }
.tab-item.active .tab-icon-wrap { background:var(--grad4); transform:translateY(-2px) scale(1.1); box-shadow:0 4px 16px rgba(250,112,154,.4); }
.tab-item.active svg { stroke:#000; }

/* RESPONSIVE */
@media (max-width:768px) {
  .about-grid { grid-template-columns:1fr; gap:2.5rem; }
  .nav-links { display:none; }
  .hero-cta { flex-direction:column; }
  .bottom-tab-bar { display:flex; }
  body { padding-bottom:80px; cursor:auto; }
  #cursor, #cursor-ring { display:none; }
  section { padding:5rem 5%; }
}
@media (max-width:480px) {
  .about-stats { grid-template-columns:1fr 1fr; gap:1rem; }
  .projects-grid { grid-template-columns:1fr; }
  h1.hero-name { font-size:clamp(2.5rem,10vw,3.5rem); }
}

/* NEURAL NETWORK BG */
#neural-bg { position:fixed; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none; }
section, footer, .bottom-tab-bar { position:relative; z-index:2; }
#hero { position:relative; z-index:2; }
