/* ═══════════════════════════════════════════════════════════
   PORTFOLIO v4 — FULL CSS (WITH MODAL & REVEALS)
═══════════════════════════════════════════════════════════ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}

:root{
  --bg:     #05050e;
  --bg2:    #09091a;
  --bg3:    #0d0d22;
  --card:   rgba(255,255,255,0.028);
  --bdr:    rgba(255,255,255,0.07);
  --P:      #7c6fff; --P2: #a99fff;
  --A:      #00e5ff;
  --Pink:   #ff4b8d;
  --Gold:   #ffca58;
  --Grn:    #00e676;
  --Org:    #ff7043;
  --Pur:    #c77dff;
  --Cyan:   #18ffff;
  --text:   #eaeaf5;
  --muted:  #7878a0;
  --font:   'Outfit',sans-serif;
  --mono:   'JetBrains Mono',monospace;
  --ease:   cubic-bezier(.25,.46,.45,.94);
  --spring: cubic-bezier(.34,1.56,.64,1);
}

html{scroll-behavior:smooth;overflow-x:hidden;font-size:17px;}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.65;overflow-x:hidden;}
a, button, .nav-link, .hbtn, .glow-btn, .cv-trigger {cursor: pointer !important;}
input, textarea {cursor: text !important;}
body.modal-open-body{overflow:hidden;}
::selection{background:var(--A);color:#000;text-shadow:none;}
::-webkit-scrollbar{width:6px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:rgba(124,111,255,.3);border-radius:99px;border:1px solid var(--bg);}
::-webkit-scrollbar-thumb:hover{background:var(--P);box-shadow:0 0 10px var(--P);}

/* ── HIGH-END AESTHETIC EFFECTS ────────────────────────────── */
.glitch{position:relative;}
.glitch::before, .glitch::after{content:attr(data-text);position:absolute;top:0;left:0;opacity:0;pointer-events:none;width:100%;height:100%;z-index:-1;}
.glitch:hover::before{opacity:1;left:2px;text-shadow:-2px 0 var(--Pink);animation:glitch-anim-1 0.2s linear infinite alternate-reverse;}
.glitch:hover::after{opacity:1;left:-2px;text-shadow:2px 0 var(--A);animation:glitch-anim-2 0.3s linear infinite alternate-reverse;}
@keyframes glitch-anim-1{0%{clip-path:inset(20% 0 80% 0);}20%{clip-path:inset(60% 0 10% 0);}40%{clip-path:inset(40% 0 50% 0);}60%{clip-path:inset(80% 0 5% 0);}80%{clip-path:inset(10% 0 70% 0);}100%{clip-path:inset(30% 0 20% 0);}}
@keyframes glitch-anim-2{0%{clip-path:inset(10% 0 60% 0);}20%{clip-path:inset(30% 0 20% 0);}40%{clip-path:inset(70% 0 10% 0);}60%{clip-path:inset(20% 0 50% 0);}80%{clip-path:inset(50% 0 30% 0);}100%{clip-path:inset(5% 0 80% 0);}}

.track-glow{position:relative;}
.track-glow::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:2px;
  background:radial-gradient(400px circle at var(--mouse-x, 0) var(--mouse-y, 0), rgba(124,111,255,0.6), transparent 40%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; opacity:0; transition:opacity 0.4s ease; z-index:1;
}
.track-glow:hover::before{opacity:1;}

/* ── CINEMATIC NOISE OVERLAY ──────────────────────────────── */
.noise-overlay{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:5;background-image:url('data:image/svg+xml;utf8,%3Csvg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"%3E%3Cfilter id="noiseFilter"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="3" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%25" height="100%25" filter="url(%23noiseFilter)" opacity="0.06"/%3E%3C/svg%3E');animation:noise-shift 0.8s steps(2) infinite;opacity:0.3;mix-blend-mode:overlay;}
@keyframes noise-shift{0%{transform:translate(0,0);}10%{transform:translate(-2%,-2%);}20%{transform:translate(-5%,2%);}30%{transform:translate(2%,-5%);}40%{transform:translate(-2%,5%);}50%{transform:translate(-5%,2%);}60%{transform:translate(5%,0);}70%{transform:translate(0,5%);}80%{transform:translate(1%,15%);}90%{transform:translate(-5%,5%);}100%{transform:translate(0,0);}}

/* ── WEB CURSOR CANVAS ────────────────────────────────────── */
#web-canvas{
  position:fixed;inset:0;
  width:100%;height:100%;
  pointer-events:none;
  z-index:1;
}

/* ── LOADER ────────────────────────────────────────────────── */
#loader{
  position:fixed;inset:0;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;
  z-index:99999;transition:opacity .7s ease .2s;
}
body.loaded #loader{opacity:0;pointer-events:none;}
.loader-core{position:relative;width:110px;height:110px;display:flex;align-items:center;justify-content:center;}
.loader-hex{position:absolute;inset:0;border-radius:50%;border:2px solid transparent;border-top-color:var(--P);border-right-color:var(--A);animation:spin 1.2s linear infinite;}
.loader-hex-2{inset:14px;border-top-color:var(--Pink);border-right-color:transparent;border-bottom-color:var(--Gold);animation:spin 1.8s linear infinite reverse;}
@keyframes spin{to{transform:rotate(360deg);}}
.loader-letters{display:flex;gap:4px;}
.ll{font-size:2.4rem;font-weight:900;background:linear-gradient(135deg,var(--P),var(--A));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:ll-pop .6s var(--spring) both;}
.ll:nth-child(1){animation-delay:.1s;}
.ll:nth-child(2){animation-delay:.22s;}
.ll:nth-child(3){animation-delay:.34s;}
@keyframes ll-pop{from{opacity:0;transform:scale(.5) translateY(20px);}to{opacity:1;transform:none;}}
.loader-sub{font-family:var(--mono);font-size:.7rem;color:var(--muted);letter-spacing:3px;text-transform:uppercase;animation:fade-in .5s ease .6s both;}
@keyframes fade-in{from{opacity:0;}to{opacity:1;}}

/* ── TEXT REVEAL ANIMATION (GSAP style) ────────────────────── */
.char{display:inline-block;opacity:0;transform:translateY(15px) rotate(4deg);transition:opacity 0.6s var(--ease), transform 0.6s var(--ease);}
.split-text.visible .char{opacity:1;transform:none;}

/* ── CV MODAL (GLASSMORPHISM) ──────────────────────────────── */
.modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:2vh 2vw;visibility:hidden;opacity:0;transition:opacity 0.8s ease,visibility 0.8s ease;pointer-events:none;}
.modal.show{visibility:visible;opacity:1;pointer-events:all;}
#modal-backdrop{position:absolute;inset:0;background:rgba(10,10,12,.75);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:auto;}
.modal-content{position:relative;z-index:1;width:92%;height:90vh;background:rgba(15,15,18,.85);border:1px solid rgba(255,255,255,.1);border-radius:24px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 40px 100px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.1);transform:translateY(40px) scale(0.98);transition:transform 0.8s cubic-bezier(0.16,1,0.3,1);cursor:auto;}
.modal.show .modal-content{transform:translateY(0) scale(1);}
.modal-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;background:rgba(0,0,0,0.3);
  border-bottom:1px solid rgba(255,255,255,0.06);
  position:relative;z-index:2;
}
.modal-title{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:0.85rem;color:var(--text);letter-spacing:1px;}
.modal-actions{display:flex;align-items:center;gap:12px;}
.modal-btn{
  background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);
  color:var(--text);border-radius:8px;cursor:pointer !important;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font);font-size:0.8rem;font-weight:600;text-decoration:none;
  transition:background 0.25s, color 0.25s, border-color 0.25s;
  position:relative;z-index:3;
}
.m-print{padding:6px 14px;}
.m-close{width:32px;height:32px;}
.modal-btn:hover{background:rgba(124,111,255,0.2);color:var(--A);border-color:rgba(124,111,255,0.4);}

.modal-body{flex:1;position:relative;background:#e6e6ef;} /* matches CV bg */
.iframe-loader{
  position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath fill='%237c6fff' d='M25,5A20.14,20.14,0,0,1,45,22.88a2.51,2.51,0,0,0,2.49,2.26h0A2.52,2.52,0,0,0,50,22.33a25.14,25.14,0,0,0-50,0,2.52,2.52,0,0,0,2.5,2.81h0A2.51,2.51,0,0,0,5,22.88,20.14,20.14,0,0,1,25,5Z'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.8s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E") no-repeat center center;
  background-size:40px 40px;
  opacity:1;transition:opacity 0.4s;pointer-events:none;
}
#cv-iframe{width:100%;height:100%;display:block;opacity:0;transition:opacity 0.5s;}
#cv-iframe.loaded{opacity:1;}
#cv-iframe.loaded + .iframe-loader{opacity:0;}

/* ── NAVBAR ────────────────────────────────────────────────── */
#navbar{position:fixed;top:0;left:0;right:0;z-index:1000;padding:18px 0;transition:background .4s,padding .4s,box-shadow .4s;}
#navbar.scrolled{background:rgba(5,5,14,.92);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 1px 0 rgba(255,255,255,.04);padding:11px 0;}
.nav-container{max-width:1320px;margin:0 auto;padding:0 36px;display:flex;align-items:center;justify-content:space-between;}
.nav-logo{display:flex;align-items:center;gap:3px;text-decoration:none;font-size:1.5rem;font-weight:900;letter-spacing:2px;background:linear-gradient(135deg,var(--P),var(--A));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.logo-dot{width:7px;height:7px;background:var(--A);border-radius:50%;margin-bottom:14px;animation:dot-beat 2s ease-in-out infinite;}
@keyframes dot-beat{0%,100%{box-shadow:0 0 0 0 rgba(0,229,255,.5);}50%{box-shadow:0 0 0 7px rgba(0,229,255,0);transform:scale(1.3);}}
.nav-links{display:flex;align-items:center;gap:4px;list-style:none;}
.nav-link{text-decoration:none;color:var(--muted);font-weight:500;font-size:1rem;padding:7px 14px;border-radius:8px;transition:color .25s,background .25s;}
.nav-link:hover,.nav-link.active{color:#fff;background:rgba(124,111,255,.12);}
.nav-cv-btn{display:flex;align-items:center;gap:7px;background:linear-gradient(135deg,var(--P),var(--A));color:#fff;font-family:var(--font);font-weight:700;font-size:.87rem;padding:9px 20px;border-radius:8px;border:none;transition:transform .25s,box-shadow .25s;box-shadow:0 4px 16px rgba(124,111,255,.3);}
.nav-cv-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(124,111,255,.5);}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:8px;}
.hamburger span{display:block;width:22px;height:2px;background:var(--text);border-radius:99px;transition:all .3s;}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ═══════════════════════════════════════════════════
   HERO
═══════════════════════════════════════════════════ */
.hero{position:relative;min-height:90vh;display:flex;align-items:center;padding:6vh 5vw;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,rgba(124,111,255,.08),transparent 70%);}
.global-3d-bg{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:0.75;}
.hero-grid-veil{position:absolute;inset:0;z-index:2;background:linear-gradient(rgba(10,10,12,.8) 1px,transparent 1px),linear-gradient(90deg,rgba(10,10,12,.8) 1px,transparent 1px);background-size:60px 60px;opacity:0.15;pointer-events:none;}

/* ── Ambient Aurora Background ── */
.blob{position:absolute;border-radius:50%;filter:blur(130px);pointer-events:none;z-index:1;}
.b1{width:120vw;height:120vw;max-width:1200px;max-height:1200px;background:radial-gradient(circle, rgba(124,111,255,.15) 0%, transparent 60%);top:-30%;right:-20%;}
.b2{width:100vw;height:100vw;max-width:1000px;max-height:1000px;background:radial-gradient(circle, rgba(0,229,255,.12) 0%, transparent 60%);bottom:-20%;left:-10%;}
.b3{width:80vw;height:80vw;max-width:800px;max-height:800px;background:radial-gradient(circle, rgba(255,75,141,.08) 0%, transparent 60%);top:20%;left:20%;}
.b4{width:90vw;height:90vw;max-width:900px;max-height:900px;background:radial-gradient(circle, rgba(199,125,255,.12) 0%, transparent 60%);top:0;left:40%;}

.hero-inner{
  position:relative;z-index:2;
  max-width:1320px;margin:0 auto;padding:60px 36px 40px;
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:90px;width:100%;
}

.hero-text{max-width:640px;}
.hero-pill{
  display:inline-flex;align-items:center;gap:10px;
  background:rgba(124,111,255,.1);border:1px solid rgba(124,111,255,.25);
  border-radius:99px;padding:7px 18px;
  font-size:.82rem;font-weight:600;color:var(--P2);
  margin-bottom:32px;
  animation:pill-in .8s var(--spring) 2s both;
}
@keyframes pill-in{from{opacity:0;transform:translateY(-16px);}to{opacity:1;transform:none;}}
.pill-dot{width:9px;height:9px;background:#00ff88;border-radius:50%;animation:pdot 1.6s ease-in-out infinite;}
@keyframes pdot{0%,100%{box-shadow:0 0 0 0 rgba(0,255,136,.5);}50%{box-shadow:0 0 0 6px rgba(0,255,136,0);transform:scale(1.3);}}

.hero-name{font-size:clamp(2.8rem,6.5vw,5.5rem);font-weight:900;line-height:1.0;letter-spacing:-2px;margin-bottom:22px;}
/* Last 8 characters (Mazumder) will have gradient color via JS text-split */
.hero-name .grad-char {
  background:linear-gradient(135deg,var(--P),var(--A));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}

.hero-typed-row{
  display:flex;align-items:center;gap:14px;
  font-size:clamp(1rem,2vw,1.3rem);font-weight:600;color:var(--muted);
  margin-bottom:24px;min-height:2.2rem;
  animation:fade-up .8s var(--ease) 2.45s both;
}
@keyframes fade-up{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}
.typed-bar{display:inline-block;width:4px;height:28px;background:linear-gradient(var(--P),var(--A));border-radius:99px;flex-shrink:0;}
#typed-el{color:var(--A);font-weight:700;}

.hero-bio{font-size:1.15rem;color:var(--muted);line-height:1.85;margin-bottom:36px;animation:fade-up .8s var(--ease) 2.6s both;}
.hero-bio strong{color:var(--text);}

/* buttons */
.hero-btns{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:44px;animation:fade-up .8s var(--ease) 2.75s both;}
.hbtn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-family:var(--font);font-size:.96rem;padding:15px 32px;border-radius:10px;border:none;transition:transform .25s var(--spring),box-shadow .25s;position:relative;overflow:hidden;}
.hbtn-fill{background:linear-gradient(135deg,var(--P),var(--A));color:#fff;box-shadow:0 6px 28px rgba(124,111,255,.4);}
.hbtn-fill::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--A),var(--P));opacity:0;transition:opacity .3s;}
.hbtn-fill:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(124,111,255,.55);}
.hbtn-fill:hover::before{opacity:1;}
.hbtn-fill span,.hbtn-fill svg{position:relative;z-index:1;}
.hbtn-outline{border:1.5px solid rgba(255,255,255,.14);color:var(--text);background:rgba(255,255,255,.04);backdrop-filter:blur(8px);}
.hbtn-outline:hover{background:rgba(124,111,255,.12);border-color:rgba(124,111,255,.4);transform:translateY(-4px);}

/* stats */
.hero-stats{display:flex;align-items:center;gap:28px;margin-bottom:32px;animation:fade-up .8s var(--ease) 2.9s both;}
.hst{display:flex;flex-direction:column;align-items:center;gap:2px;position:relative;}
.hst-icon{font-size:1.3rem;margin-bottom:2px;}
.hst-num{font-size:2.1rem;font-weight:900;line-height:1;background:linear-gradient(135deg,var(--P),var(--A));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hst-plus{font-size:1.8rem;font-weight:900;line-height:1;background:linear-gradient(135deg,var(--P),var(--A));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hst-lbl{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;}
.hst-div{width:1px;height:48px;background:rgba(255,255,255,.08);}

/* socials */
.hero-socials{display:flex;gap:12px;animation:fade-up .8s var(--ease) 3.05s both;}
.hsl{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:10px;color:var(--muted);text-decoration:none;transition:background .25s,color .25s,transform .25s var(--spring),border-color .25s;cursor:none;}
.hsl:hover{background:rgba(124,111,255,.2);color:var(--P);border-color:rgba(124,111,255,.4);transform:translateY(-4px);}

/* ── PHOTO SIDE ── */
.hero-photo-wrap{position:relative;width:420px;height:520px;display:flex;align-items:center;justify-content:center;flex-shrink:0;animation:photo-in 1.2s var(--spring) 2.2s both;}
@keyframes photo-in{from{opacity:0;transform:translateX(60px) scale(.9);}to{opacity:1;transform:none;}}
.morph-ring{position:absolute;border-style:solid;pointer-events:none;animation:morph ease-in-out infinite;}
.mr1{width:360px;height:360px;border-width:1.5px;border-color:rgba(124,111,255,.3);animation-duration:12s;border-radius:60% 40% 30% 70%/60% 30% 70% 40%;}
.mr2{width:450px;height:450px;border-width:1px;border-color:rgba(0,229,255,.18);animation-duration:18s;animation-direction:reverse;border-radius:30% 60% 70% 40%/50% 60% 30% 60%;}
@keyframes morph{
  0%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%;}
  33%{border-radius:30% 60% 70% 40%/50% 60% 30% 60%;}
  66%{border-radius:50% 50% 30% 70%/30% 40% 60% 70%;}
  100%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%;}
}
.photo-frame{
  position:relative;z-index:2;width:290px;height:375px;border-radius:24px;overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,0.5);
}
.hero-portrait{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}

.pf-corner{position:absolute;width:22px;height:22px;pointer-events:none;z-index:3;}
.c-tl{top:-1px;left:-1px;border-top:2.5px solid var(--A);border-left:2.5px solid var(--A);border-radius:10px 0 0 0;}
.c-tr{top:-1px;right:-1px;border-top:2.5px solid var(--P);border-right:2.5px solid var(--P);border-radius:0 10px 0 0;}
.c-bl{bottom:-1px;left:-1px;border-bottom:2.5px solid var(--P);border-left:2.5px solid var(--P);border-radius:0 0 0 10px;}
.c-br{bottom:-1px;right:-1px;border-bottom:2.5px solid var(--A);border-right:2.5px solid var(--A);border-radius:0 0 10px 0;}

.pf-scanline{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--A),transparent);box-shadow:0 0 18px var(--A);animation:scan 3s linear infinite;pointer-events:none;z-index:4;}
@keyframes scan{0%{top:0;opacity:0;}8%{opacity:1;}92%{opacity:1;}100%{top:100%;opacity:0;}}
.pf-shine{position:absolute;top:-40%;left:-40%;width:80%;height:80%;background:radial-gradient(ellipse,rgba(255,255,255,.08),transparent 60%);animation:shine-move 6s ease-in-out infinite;pointer-events:none;z-index:4;}
@keyframes shine-move{0%,100%{transform:translate(0,0);}50%{transform:translate(50px,60px);}}

.ftag{
  position:absolute;z-index:5;display:flex;align-items:center;gap:8px;
  background:rgba(5,5,14,.88);border:1px solid rgba(255,255,255,.1);
  border-radius:12px;padding:10px 16px;font-size:.82rem;font-weight:700;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 8px 32px rgba(0,0,0,.5);
  animation:ftag-f ease-in-out infinite alternate;white-space:nowrap;
}
.ft1{top:8%;left:-70px;animation-duration:4.5s;}
.ft2{top:42%;right:-72px;animation-duration:6s;animation-delay:-2s;}
.ft3{bottom:18%;left:-58px;animation-duration:5.5s;animation-delay:-4s;}
.ft4{bottom:4%;right:-62px;animation-duration:7s;animation-delay:-1s;}
@keyframes ftag-f{from{transform:translateY(-8px);}to{transform:translateY(8px);}}
.ftag span{font-size:1.1rem;}

/* ═══ SECTION BASE ═════════════════════════════════════════ */
.section{padding:10vh 5vw;position:relative;overflow:hidden;}
.section-container{width:96%;max-width:1500px;margin:0 auto;position:relative;z-index:1;}
.sec-hdr{margin-bottom:60px;}
.sec-tag{display:inline-block;padding:6px 14px;background:rgba(124,111,255,.12);color:var(--P);border-radius:20px;font-family:var(--mono);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:16px;}
.sec-title{font-size:clamp(2.4rem,4.5vw,3.5rem);font-weight:800;line-height:1.1;position:relative;display:inline-block;padding-bottom:10px;}
.sec-title::after{content:'';position:absolute;bottom:0;left:0;width:60px;height:4px;background:linear-gradient(90deg,var(--A),var(--P));border-radius:2px;transition:width 0.4s ease;}
.sec-title:hover::after{width:100%;}
.sec-sub{margin-top:14px;color:var(--muted);font-size:1.15rem;max-width:480px;margin-left:auto;margin-right:auto;}
.grd{background:linear-gradient(135deg,var(--P),var(--A));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.grd-text { font-style: normal; background:linear-gradient(135deg,var(--P),var(--A));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.sec-bg-word{position:absolute;top:5%;left:5%;transform:none;font-size:14vw;font-weight:900;letter-spacing:normal;color:rgba(255,255,255,.015);white-space:nowrap;user-select:none;pointer-events:none;z-index:0;line-height:1;}

.about-sec    {background:transparent;}
.skills-sec   {background:rgba(10,10,14,0.4);}
.projects-sec {background:transparent;}
.edu-sec      {background:rgba(10,10,14,0.4);}
/* Contact gets a fully opaque dark background so games look clean — no 3D distractions */
.contact-sec  {background:#08080f;z-index:2;}
.contact-sec .sec-bg-word{color:rgba(124,111,255,.08);}

/* AOS */
[data-aos]{transition:transform 1.8s cubic-bezier(0.16,1,0.3,1),opacity 1.8s ease-out;opacity:0;will-change:transform,opacity;}
[data-aos="up"]   {transform:translateY(40px);}
[data-aos="right"]{transform:translateX(-40px);}
[data-aos="left"] {transform:translateX(40px);}
[data-aos="zoom"] {transform:scale(.9);}
[data-aos].visible{opacity:1;transform:none;}

/* GLOW BTN */
.glow-btn{display:inline-flex;align-items:center;gap:9px;text-decoration:none;background:linear-gradient(135deg,var(--P),var(--A));color:#fff;font-weight:700;font-family:var(--font);font-size:.9rem;padding:13px 26px;border-radius:10px;border:none;cursor:none;box-shadow:0 4px 20px rgba(124,111,255,.35);transition:transform .25s var(--spring),box-shadow .25s;position:relative;overflow:hidden;}
.glow-btn::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--A),var(--P));opacity:0;transition:opacity .3s;}
.glow-btn:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(124,111,255,.5);}
.glow-btn:hover::after{opacity:1;}
.glow-btn svg,.glow-btn span{position:relative;z-index:1;}

/* ═══ ABOUT ═══════════════════════════════════════════════ */
.about-grid{display:grid;grid-template-columns:360px 1fr;gap:80px;align-items:center;position:relative;z-index:1;}
.about-photo-col{display:flex;justify-content:center;}
.about-card{width:340px;border-radius:24px;background:var(--card);border:1px solid var(--bdr);overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4);transform-style:preserve-3d;}
.ac-img-wrap{position:relative;height:380px;overflow:hidden;}
.ac-img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:transform .5s;}
.about-card:hover .ac-img{transform:scale(1.04);}
.ac-overlay{position:absolute;bottom:0;left:0;right:0;height:55%;background:linear-gradient(to top,rgba(5,5,14,.95),transparent);pointer-events:none;}
.ac-badge{position:absolute;top:16px;right:16px;background:rgba(5,5,14,.85);border:1px solid rgba(0,255,136,.25);border-radius:99px;padding:5px 13px;font-size:.76rem;font-weight:600;color:#00ff88;display:flex;align-items:center;gap:7px;backdrop-filter:blur(10px);}
.acb-dot{width:7px;height:7px;background:#00ff88;border-radius:50%;animation:pdot 1.6s ease-in-out infinite;}
.ac-footer{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--bdr);}
.ac-footer strong{display:block;font-size:.95rem;font-weight:700;}
.ac-footer span{font-size:.78rem;color:var(--muted);}
.ac-socials{display:flex;gap:8px;}
.acs-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:rgba(124,111,255,.1);border:1px solid rgba(124,111,255,.2);border-radius:8px;color:var(--P2);text-decoration:none;transition:background .25s,transform .25s var(--spring);cursor:none;}
.acs-btn:hover{background:rgba(124,111,255,.25);transform:translateY(-3px);}
.about-hl{font-size:clamp(1.6rem,2.5vw,2rem);font-weight:800;color:var(--A);margin-bottom:20px;line-height:1.2;}
.scroll-mask{background:linear-gradient(to right,var(--text) 50%,rgba(255,255,255,.1) 50%);background-size:200% 100%;background-position:100% 0;-webkit-background-clip:text;color:transparent;}
.about-p{font-size:1.15rem;color:var(--muted);margin-bottom:18px;line-height:1.75;}
.about-info{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:30px 0;}
.ai-item{display:flex;align-items:flex-start;gap:12px;background:var(--card);border:1px solid var(--bdr);border-radius:10px;padding:14px;transition:border-color .25s,transform .25s var(--spring);text-decoration:none;color:var(--text);}
.ai-item:hover{border-color:rgba(124,111,255,.3);transform:translateY(-3px);}
.ai-icon{font-size:1.25rem;line-height:1;flex-shrink:0;}
.ai-lbl{display:block;font-size:.67rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;}
.ai-val{display:block;font-size:.84rem;font-weight:500;word-break:break-all;color:#fff;}

/* ═══ SKILLS ══════════════════════════════════════════════ */
.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:60px;position:relative;z-index:1;}
.sk{background:var(--card);border:1px solid var(--bdr);border-radius:18px;padding:26px 22px;position:relative;overflow:hidden;transition:transform .3s var(--spring),border-color .3s,box-shadow .3s;cursor:none;transform-style:preserve-3d;}
.sk:hover{transform:translateY(-12px) scale(1.02);box-shadow:0 24px 64px rgba(124,111,255,.2);}
.sk-wide{grid-column:span 2;}
.sk-glow{position:absolute;inset:0;opacity:0;transition:opacity .3s;pointer-events:none;}
.sk:hover .sk-glow{opacity:1;}
.glow-v{background:radial-gradient(circle at 30% 0%,rgba(124,111,255,.18),transparent 60%);}
.glow-b{background:radial-gradient(circle at 30% 0%,rgba(0,229,255,.15),transparent 60%);}
.glow-r{background:radial-gradient(circle at 30% 0%,rgba(255,75,141,.15),transparent 60%);}
.glow-y{background:radial-gradient(circle at 30% 0%,rgba(255,202,88,.15),transparent 60%);}
.glow-c{background:radial-gradient(circle at 30% 0%,rgba(0,229,255,.12),transparent 60%);}
.glow-o{background:radial-gradient(circle at 30% 0%,rgba(255,112,67,.15),transparent 60%);}
.glow-g{background:radial-gradient(circle at 30% 0%,rgba(0,230,118,.15),transparent 60%);}
.glow-p{background:radial-gradient(circle at 30% 0%,rgba(199,125,255,.15),transparent 60%);}

.sk-noise{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;}

.sk-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;transform:translateZ(20px);}
.sk-ico{font-size:1.9rem;transition:transform .3s var(--spring);}
.sk:hover .sk-ico{transform:scale(1.15) rotate(-6deg);}
.sk-lvl{font-size:.68rem;font-weight:700;padding:3px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:1px;}
.lvl-v{background:rgba(124,111,255,.15);color:var(--P2);border:1px solid rgba(124,111,255,.25);}
.lvl-b{background:rgba(0,229,255,.12);color:var(--A);border:1px solid rgba(0,229,255,.25);}
.lvl-r{background:rgba(255,75,141,.12);color:#ff88ae;border:1px solid rgba(255,75,141,.25);}
.lvl-y{background:rgba(255,202,88,.12);color:#ffda80;border:1px solid rgba(255,202,88,.25);}
.lvl-c{background:rgba(0,229,255,.1);color:var(--Cyan);border:1px solid rgba(0,229,255,.2);}
.lvl-o{background:rgba(255,112,67,.12);color:#ff9575;border:1px solid rgba(255,112,67,.25);}
.lvl-g{background:rgba(0,230,118,.12);color:#00ff88;border:1px solid rgba(0,230,118,.25);}
.lvl-p{background:rgba(199,125,255,.12);color:var(--Pur);border:1px solid rgba(199,125,255,.25);}
.sk h4{font-size:1rem;font-weight:700;margin-bottom:8px;transform:translateZ(15px);}
.sk p{font-size:.86rem;color:var(--muted);line-height:1.65;margin-bottom:14px;transform:translateZ(10px);}
.sk-chips{display:flex;flex-wrap:wrap;gap:6px;transform:translateZ(25px);}
.sk-chips span{font-size:.69rem;font-weight:600;background:rgba(255,255,255,.05);color:var(--muted);border:1px solid var(--bdr);padding:3px 10px;border-radius:99px;transition:background .2s,color .2s,border-color .2s;}
.sk:hover .sk-chips span{background:rgba(124,111,255,.1);color:var(--P2);border-color:rgba(124,111,255,.2);}

.lang-row{text-align:center;position:relative;z-index:1;}
.lang-h{font-size:1.4rem;font-weight:700;margin-bottom:28px;}
.lang-cards{display:flex;justify-content:center;gap:22px;flex-wrap:wrap;}
.lang-card{display:flex;align-items:center;gap:18px;background:var(--card);border:1px solid var(--bdr);border-radius:16px;padding:22px 32px;min-width:240px;transition:border-color .25s,transform .25s var(--spring),box-shadow .25s;cursor:none;transform-style:preserve-3d;}
.lang-card:hover{border-color:rgba(124,111,255,.3);transform:translateY(-6px);box-shadow:0 12px 40px rgba(124,111,255,.15);}
.lc-flag{font-size:2rem;transform:translateZ(15px);}
.lc-info{transform:translateZ(10px);}
.lc-info strong{display:block;font-size:1rem;font-weight:700;}
.lc-info span{font-size:.8rem;color:var(--muted);}
.lc-dots{display:flex;gap:6px;margin-left:auto;transform:translateZ(20px);}
.ld{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.15);}
.ld.f{background:linear-gradient(135deg,var(--P),var(--A));border-color:transparent;box-shadow:0 0 8px rgba(124,111,255,.5);}

/* ═══ PROJECTS ════════════════════════════════════════════ */
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;position:relative;z-index:1;}
.pj{background:var(--card);border:1px solid var(--bdr);border-radius:20px;padding:30px;position:relative;overflow:hidden;transition:transform .3s var(--spring),border-color .3s,box-shadow .3s;cursor:none;transform-style:preserve-3d;}
.pj:hover{transform:translateY(-12px);border-color:rgba(124,111,255,.35);box-shadow:0 28px 70px rgba(124,111,255,.2);}
.pj-hero{grid-column:span 2;background:rgba(124,111,255,.03);border-color:rgba(124,111,255,.18);}
.pj-glow{position:absolute;inset:0;opacity:0;transition:opacity .3s;pointer-events:none;}
.pj:hover .pj-glow{opacity:1;}
.pjg-v{background:radial-gradient(circle at 20% 0%,rgba(124,111,255,.15),transparent 55%);}
.pjg-c{background:radial-gradient(circle at 20% 0%,rgba(0,229,255,.14),transparent 55%);}
.pjg-p{background:radial-gradient(circle at 20% 0%,rgba(255,75,141,.13),transparent 55%);}
.pjg-g{background:radial-gradient(circle at 20% 0%,rgba(255,202,88,.13),transparent 55%);}
.pjg-r{background:radial-gradient(circle at 20% 0%,rgba(255,70,70,.13),transparent 55%);}
.pjg-o{background:radial-gradient(circle at 20% 0%,rgba(199,125,255,.13),transparent 55%);}
.pj-num{font-family:var(--mono);font-size:.72rem;color:var(--muted);margin-bottom:14px;letter-spacing:2px;transform:translateZ(10px);}
.pj-ico{font-size:2.1rem;margin-bottom:14px;display:inline-block;transition:transform .3s var(--spring);transform:translateZ(20px);}
.pj:hover .pj-ico{transform:scale(1.18) rotate(6deg) translateZ(20px);}
.pj h3{font-size:1.1rem;font-weight:700;margin-bottom:10px;transform:translateZ(15px);}
.pj p{font-size:.88rem;color:var(--muted);line-height:1.7;margin-bottom:16px;transform:translateZ(5px);}
.pj p em{font-style:italic;color:var(--text);}
.pj-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;transform:translateZ(25px);}
.pj-chips span{font-size:.7rem;font-weight:600;background:rgba(124,111,255,.1);color:var(--P2);border:1px solid rgba(124,111,255,.2);padding:3px 11px;border-radius:99px;}
.pj-badge{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:700;padding:5px 13px;border-radius:99px;transform:translateZ(25px);}
.pjb-done{background:rgba(0,230,118,.1);color:#00e676;border:1px solid rgba(0,230,118,.2);}
.pjb-live{background:rgba(0,229,255,.1);color:var(--A);border:1px solid rgba(0,229,255,.2);}
.pjb-award{background:rgba(255,202,88,.1);color:var(--Gold);border:1px solid rgba(255,202,88,.2);}
.pj-arrow{position:absolute;bottom:24px;right:24px;font-size:1.3rem;color:rgba(255,255,255,.12);transition:color .25s,transform .25s var(--spring);transform:translateZ(10px);}
.pj:hover .pj-arrow{color:var(--P);transform:translateX(4px) translateZ(10px);}

/* ═══ EDUCATION ═══════════════════════════════════════════ */
.edu-track{display:flex;flex-direction:column;gap:0;align-items:center;position:relative;z-index:1;}
.edu-item{display:grid;grid-template-columns:80px 1fr;gap:0;max-width:860px;width:100%;}
.edu-item-r .edu-card{order:unset;}
.edu-timeline-col{display:flex;flex-direction:column;align-items:center;padding-top:36px;}
.etl-dot{width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,var(--P),var(--A));box-shadow:0 0 18px rgba(124,111,255,.5);flex-shrink:0;z-index:1;}
.etl-active{box-shadow:0 0 0 4px rgba(124,111,255,.2),0 0 20px rgba(124,111,255,.5);}
.etl-line{width:2px;flex:1;background:linear-gradient(to bottom,rgba(124,111,255,.4),rgba(0,229,255,.3),transparent);min-height:60px;}
.edu-card{background:var(--card);border:1px solid var(--bdr);border-radius:22px;padding:34px 38px;position:relative;overflow:hidden;transition:border-color .3s,box-shadow .3s,transform .3s;margin-bottom:30px;transform-style:preserve-3d;cursor:none;}
.edu-card:hover{border-color:rgba(124,111,255,.3);box-shadow:0 20px 60px rgba(124,111,255,.15);transform:translateY(-4px);}
.ec-active{border-color:rgba(124,111,255,.22);background:rgba(124,111,255,.025);}
.ec-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(124,111,255,.1),transparent 60%);pointer-events:none;}
.ec-top{display:flex;align-items:center;gap:12px;margin-bottom:14px;transform:translateZ(10px);}
.ec-year{font-family:var(--mono);font-size:.78rem;color:var(--A);letter-spacing:1.5px;}
.ec-status{font-size:.73rem;font-weight:600;background:rgba(255,255,255,.05);border:1px solid var(--bdr);border-radius:99px;padding:3px 12px;}
.ec-logo{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,rgba(124,111,255,.2),rgba(0,229,255,.1));border:2px solid rgba(124,111,255,.3);font-weight:900;font-size:.9rem;color:var(--P);letter-spacing:1px;margin-bottom:16px;box-shadow:0 0 20px rgba(124,111,255,.2);transform:translateZ(20px);}
.ec-logo-2{background:linear-gradient(135deg,rgba(0,229,255,.15),rgba(255,202,88,.1));border-color:rgba(0,229,255,.25);color:var(--A);}
.edu-card h3{font-size:1.2rem;font-weight:800;margin-bottom:6px;transform:translateZ(15px);}
.edu-card h4{font-size:.93rem;font-weight:600;color:var(--P2);margin-bottom:12px;transform:translateZ(15px);}
.edu-card p{font-size:.9rem;color:var(--muted);line-height:1.78;margin-bottom:18px;transform:translateZ(5px);}
.ec-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;transform:translateZ(25px);}
.ec-pills span{font-size:.7rem;font-weight:600;background:rgba(124,111,255,.1);color:var(--P2);border:1px solid rgba(124,111,255,.2);padding:3px 11px;border-radius:99px;}
.ec-gpa{display:inline-block;font-size:.88rem;font-weight:800;background:linear-gradient(135deg,var(--Gold),#ff9f43);color:#000;padding:7px 20px;border-radius:99px;box-shadow:0 4px 20px rgba(255,202,88,.3);transform:translateZ(25px);}

/* ═══ CONTACT ═════════════════════════════════════════════ */
.contact-wrap{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(20px,4vw,56px);position:relative;z-index:1;}
.ci{display:flex;align-items:center;gap:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:18px 22px;margin-bottom:14px;transition:border-color .25s,transform .25s var(--spring),box-shadow .25s;cursor:none;}
.ci:hover{border-color:rgba(124,111,255,.3);transform:translateX(8px);box-shadow:0 8px 30px rgba(124,111,255,.1);}
.ci-ico{font-size:1.6rem;flex-shrink:0;}
.ci-lbl{display:block;font-size:.67rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;}
.ci-val{display:block;font-size:.9rem;font-weight:600;color:var(--text);text-decoration:none;transition:color .2s;word-break:break-all;cursor:none;}
.ci-val:hover{color:var(--P);}
.cv-panel{background:linear-gradient(135deg,rgba(124,111,255,.1),rgba(0,229,255,.04));border:1px solid rgba(124,111,255,.2);border-radius:16px;padding:22px;display:flex;align-items:center;gap:16px;margin-top:8px;flex-wrap:wrap;}
.cv-panel-left{display:flex;align-items:center;gap:14px;}
.cv-panel-ico{font-size:2rem;}
.cv-panel strong{display:block;font-size:1.1rem;margin-bottom:4px;}
.cv-panel span{display:block;font-size:.8rem;color:var(--muted);}

/* ═══ ARCADE ZONE ══════════════════════════════════════════ */
.arcade-wrap{background:#0d0d1a;border:1px solid rgba(124,111,255,.25);border-radius:24px;padding:clamp(20px,3vh,36px) clamp(20px,3vw,36px);transform-style:preserve-3d;text-align:center;}
.arcade-wrap h3{font-size:clamp(1.4rem,3vw,1.8rem);margin-bottom:8px;background:linear-gradient(90deg,var(--A),var(--P));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.arcade-wrap > p{color:var(--muted);font-size:.9rem;margin-bottom:18px;}
.arcade-tabs{display:flex;justify-content:center;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.atab{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:var(--muted);padding:7px 16px;border-radius:20px;cursor:pointer;font-size:.85rem;transition:all 0.25s;}
.atab:hover{background:rgba(124,111,255,.15);color:var(--text);border-color:rgba(124,111,255,.3);}
.atab.active{background:var(--P);border-color:var(--P);color:#fff;font-weight:700;}
.arcade-content{position:relative;}
.agame{display:none;}
.agame.active{display:block;animation:fade-in 0.3s ease;}

/* Game 1: Orb Chase */
.orb-arena{width:100%;height:clamp(180px,22vh,260px);background:#0a0a15;border-radius:14px;border:1px solid rgba(124,111,255,.2);position:relative;overflow:hidden;cursor:crosshair;}
.orb-arena-label{position:absolute;bottom:10px;right:12px;font-size:.72rem;color:rgba(255,255,255,.3);pointer-events:none;}
.orb{width:36px;height:36px;background:radial-gradient(circle,#00e5ff 10%,#7c6fff);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 18px rgba(0,229,255,.7),0 0 40px rgba(124,111,255,.3);transition:top 0.22s cubic-bezier(0.175,0.885,0.32,1.275),left 0.22s cubic-bezier(0.175,0.885,0.32,1.275);}
.orb:hover{cursor:grab;}
#orb-score{font-family:var(--mono);color:var(--A);font-size:1rem;margin-top:10px;font-weight:700;}

/* Game 2: Reaction Test */
.reaction-arena{width:100%;height:clamp(180px,22vh,260px);background:#0f1117;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;cursor:pointer;transition:background 0.12s;user-select:none;border:1px solid rgba(255,255,255,.07);}
.reaction-arena.waiting{background:#3b0000;border-color:rgba(255,0,0,.2);}
.reaction-arena.go{background:#003b1a;border-color:rgba(0,200,83,.2);}
#reaction-msg{font-size:clamp(1.1rem,2.5vw,1.5rem);font-weight:700;pointer-events:none;}
#reaction-result{font-size:1.1rem;color:var(--A);font-weight:700;margin-top:6px;min-height:1.5rem;}

/* Game 3: Speed Clicker */
.clicker-arena{width:100%;height:clamp(180px,22vh,260px);background:#0a0a15;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;border:1px solid rgba(124,111,255,.2);}
.clicker-stats{font-size:1.1rem;font-weight:bold;display:flex;gap:24px;}
.clicker-stats span{color:var(--A);}
#clicker-btn{font-size:1rem;padding:12px 28px;cursor:pointer;}
.clicker-rating{font-size:.9rem;color:var(--muted);margin-top:4px;min-height:1.4rem;}

/* ═══ FEEDBACK ═════════════════════════════════════════════ */
.feedback-sec{position:relative;background:linear-gradient(to bottom, transparent, rgba(5,5,14,1));padding-bottom:100px;}
.feedback-wrap{max-width:600px;margin:40px auto 0;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:32px;box-shadow:0 10px 40px rgba(0,0,0,.5);position:relative;z-index:2;backdrop-filter:blur(10px);}
.feedback-form{display:flex;flex-direction:column;gap:16px;}
.fb-input{background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);color:#fff;font-family:var(--font);font-size:1rem;padding:16px 20px;border-radius:12px;outline:none;transition:border-color .3s,box-shadow .3s;}
.fb-input:focus{border-color:var(--P);box-shadow:0 0 0 3px rgba(124,111,255,.15);}
.fb-input::placeholder{color:rgba(255,255,255,.3);}
.fb-textarea{resize:vertical;min-height:120px;line-height:1.6;}
#fb-submit{align-self:flex-end;margin-top:8px;}
.fb-status{font-size:.85rem;font-weight:600;text-align:right;margin-top:8px;opacity:0;transition:opacity .3s;}
.fb-status.success{color:#00e676;opacity:1;}
.fb-status.error{color:#ff4b8d;opacity:1;}

/* ═══ FOOTER ══════════════════════════════════════════════ */
.footer{background:#05050e;border-top:1px solid rgba(255,255,255,.05);padding:26px 0;}
.footer-inner{max-width:1320px;margin:0 auto;padding:0 36px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.footer-logo{font-size:1.4rem;font-weight:900;letter-spacing:2px;background:linear-gradient(135deg,var(--P),var(--A));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:flex;align-items:center;gap:2px;}
.footer p{font-size:.82rem;color:var(--muted);}
.footer-cv{display:flex;align-items:center;gap:6px;background:transparent;color:var(--P);font-family:var(--font);font-size:.82rem;font-weight:600;padding:7px 16px;border:1px solid rgba(124,111,255,.3);border-radius:8px;transition:background .25s,transform .25s;cursor:none;}
.footer-cv:hover{background:rgba(124,111,255,.1);transform:translateY(-2px);}

/* ═══ RESPONSIVE ══════════════════════════════════════════ */
@media(max-width:1100px){
  .hero-inner{grid-template-columns:1fr;text-align:center;gap:50px;justify-items:center;}
  .hero-text{max-width:640px;}
  .hero-btns,.hero-stats,.hero-socials{justify-content:center;}
  .hero-photo-wrap{width:100%;height:400px;}
  .ft1,.ft2,.ft3,.ft4{display:none;}
  .about-grid{grid-template-columns:1fr;gap:40px;}
  .about-photo-col{order:-1;}
  .about-card{width:300px;}
  .skills-grid{grid-template-columns:repeat(2,1fr);}
  .sk-wide{grid-column:span 2;}
  .proj-grid{grid-template-columns:1fr 1fr;}
  .pj-hero{grid-column:span 2;}
  .contact-wrap{grid-template-columns:1fr;}
  .edu-item{grid-template-columns:60px 1fr;}
}
@media(max-width:768px){
  .nav-links{display:none;flex-direction:column;position:fixed;top:70px;left:0;right:0;background:rgba(5,5,14,.97);backdrop-filter:blur(20px);padding:20px;gap:4px;border-bottom:1px solid var(--bdr);}
  .nav-links.open{display:flex;}
  .hamburger{display:flex;}
  .section-container{padding:0 20px;}
  .hero-inner{padding:40px 20px;gap:40px;}
  .hero{padding:4vh 5vw;}
  .noise-overlay{display:none;} /* Disable for mobile performance */
  .cv-modal-content{width:95%;height:95vh;padding:16px;}
  .skills-grid{grid-template-columns:1fr;}
  .sk-wide{grid-column:span 1;}
  .proj-grid{grid-template-columns:1fr;}
  .pj-hero{grid-column:span 1;}
  .contact-form-wrap{padding:24px;}
  .cf-2col{grid-template-columns:1fr;}
  .footer-inner{flex-direction:column;text-align:center;}
  .about-info{grid-template-columns:1fr;}
  .morph-ring{display:none;}
  .edu-item{grid-template-columns:50px 1fr;}
  .edu-card{padding:24px;}

}
@media(max-width:480px){
  .hero-name{font-size:2.4rem;}
  .hero-btns{flex-direction:column;align-items:center;}
  .photo-frame{width:240px;height:300px;}
}


/* ── CUSTOM CURSOR ────────────────────────────────────────── */
#custom-cursor {
  position:fixed; top:0; left:0; width:70px; height:70px;
  border-radius:50%; pointer-events:none; z-index:9999999;
  background:transparent;
  transition: opacity 0.2s, transform 0.15s ease-out; transform: translate(-50%, -50%);
}
#custom-cursor.hover {
  background: rgba(124,111,255,0.1); /* Slight glow on hover */
  transform: translate(-50%, -50%) scale(1.3);
}
#custom-cursor::after {
  content:''; position:absolute; top:50%; left:50%;
  width:8px; height:8px; background:rgba(255,255,255,0.9);
  border-radius:50%; transform:translate(-50%, -50%);
  transition: transform 0.15s ease-out;
}
#custom-cursor.hover::after {
  transform: translate(-50%, -50%) scale(0.5); /* Inner dot shrinks slightly */
}

/* Restore normal mouse in CV Modal */
body.modal-open-body, body.modal-open-body * {
  cursor: auto !important;
}
body.modal-open-body #custom-cursor {
  display: none !important;
}
