:root {
  --bg-deep: #080412;
  --bg-mid: #120826;
  --bg-card: #1a0e38;
  --purple-1: #5b1fd6;
  --purple-2: #8b47f0;
  --purple-3: #bb86fc;
  --yellow: #ffe566;
  --yellow-2: #ffbb33;
  --white: #ffffff;
  --white-dim: rgba(255, 255, 255, 0.62);
  --white-mute: rgba(255, 255, 255, 0.32);
  --border: rgba(255, 255, 255, 0.07);
  --border-2: rgba(255, 255, 255, 0.13);
}

*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  font-family: "DM Sans", sans-serif;
  color: var(--white);
  overflow-x: hidden;
  cursor: none;
  background-color: var(--bg-deep);
  background-image:
    radial-gradient(ellipse 90% 65% at 15% 5%, rgba(91,31,214,0.6) 0%, transparent 58%),
    radial-gradient(ellipse 60% 55% at 85% 5%, rgba(139,71,240,0.4) 0%, transparent 55%),
    radial-gradient(ellipse 75% 65% at 85% 95%, rgba(72,12,175,0.55) 0%, transparent 62%),
    radial-gradient(ellipse 50% 45% at 5% 85%, rgba(187,134,252,0.2) 0%, transparent 52%),
    radial-gradient(ellipse 100% 100% at 50% 50%, rgba(18,8,38,0.85) 0%, transparent 75%);
  background-attachment: fixed;
}

/* Animated orbs */
.orb { position: fixed; border-radius: 50%; filter: blur(90px); pointer-events: none; z-index: 0; }
.orb-1 { width:700px; height:700px; background:radial-gradient(circle,rgba(91,31,214,0.38) 0%,transparent 70%); top:-180px; left:-140px; animation:orb-a 15s ease-in-out infinite; }
.orb-2 { width:550px; height:550px; background:radial-gradient(circle,rgba(187,134,252,0.22) 0%,transparent 70%); top:35%; right:-160px; animation:orb-b 19s ease-in-out infinite; }
.orb-3 { width:650px; height:650px; background:radial-gradient(circle,rgba(72,12,175,0.32) 0%,transparent 70%); bottom:-220px; left:25%; animation:orb-c 24s ease-in-out infinite; }
@keyframes orb-a { 0%,100%{transform:translate(0,0) scale(1)} 40%{transform:translate(50px,-70px) scale(1.06)} 70%{transform:translate(-25px,35px) scale(0.96)} }
@keyframes orb-b { 0%,100%{transform:translate(0,0) scale(1)} 35%{transform:translate(-45px,55px) scale(1.04)} 70%{transform:translate(30px,-40px) scale(0.98)} }
@keyframes orb-c { 0%,100%{transform:translate(0,0) scale(1)} 45%{transform:translate(40px,-50px) scale(1.05)} 80%{transform:translate(-35px,30px) scale(0.97)} }

/* Grain */
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='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.032'/%3E%3C/svg%3E");
  pointer-events:none;z-index:9990;opacity:0.55;
}

/* Cursor */
#cursor { width:10px;height:10px;background:var(--yellow);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);box-shadow:0 0 14px rgba(255,229,102,0.8);transition:width .3s,height .3s,background .2s; }
#cursor-ring { width:32px;height:32px;border:1.5px solid rgba(255,229,102,0.45);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .3s,height .3s,opacity .3s,border-color .3s;opacity:0.65; }
body:has(a:hover) #cursor, body:has(button:hover) #cursor { width:18px;height:18px;background:var(--purple-3);box-shadow:0 0 18px rgba(187,134,252,0.7); }
body:has(a:hover) #cursor-ring, body:has(button:hover) #cursor-ring { width:50px;height:50px;opacity:0.22;border-color:var(--purple-3); }

/* Loader */
#loader { position:fixed;inset:0;background:radial-gradient(ellipse 80% 70% at 30% 40%,rgba(91,31,214,0.55) 0%,transparent 60%),radial-gradient(ellipse 60% 60% at 75% 65%,rgba(139,71,240,0.3) 0%,transparent 55%),var(--bg-deep);display:flex;align-items:center;justify-content:center;z-index:9995;flex-direction:column;gap:26px; }
#loader-text { font-family:"Syne",sans-serif;font-size:clamp(3rem,10vw,8rem);font-weight:800;letter-spacing:-0.04em;overflow:hidden;background:linear-gradient(130deg,#fff 25%,var(--yellow) 65%,var(--yellow-2) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
#loader-text span { display:inline-block;transform:translateY(110%); }
#loader-bar-wrap { width:clamp(200px,40vw,400px);height:2px;background:rgba(255,255,255,0.09);border-radius:2px;overflow:hidden; }
#loader-bar { height:100%;background:linear-gradient(90deg,var(--purple-2),var(--yellow));width:0%;border-radius:2px; }
#loader-count { font-size:0.76rem;color:var(--white-mute);letter-spacing:0.22em; }

/* Nav */
nav { position:fixed;top:0;left:0;right:0;z-index:100;padding:22px 5vw;display:flex;align-items:center;justify-content:space-between;transition:background .4s,border-color .4s; }
nav.scrolled { background:rgba(8,4,18,0.82);backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid var(--border); }
.nav-logo { display:flex;align-items:center;gap:10px;font-family:"Syne",sans-serif;font-weight:800;font-size:1.1rem;letter-spacing:-0.02em;text-decoration:none;background:linear-gradient(90deg,#fff 10%,var(--yellow) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.nav-logo img { height:50px; }
.nav-links { display:flex;gap:36px;list-style:none; }
.nav-links a { font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--white-dim);text-decoration:none;font-weight:500;position:relative;transition:color .25s; }
.nav-links a:hover { color:var(--yellow); }
.nav-links a::after { content:"";position:absolute;bottom:-3px;left:0;right:100%;height:1px;background:var(--yellow);transition:right .35s cubic-bezier(.4,0,.2,1); }
.nav-links a:hover::after { right:0; }
.nav-status { display:flex;align-items:center;gap:8px;font-size:0.7rem;letter-spacing:0.08em;color:var(--white-mute); }
.nav-dot { width:7px;height:7px;background:#4ade80;border-radius:50%;box-shadow:0 0 8px rgba(74,222,128,0.7);animation:pdot 2s infinite; }
@keyframes pdot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.4;transform:scale(0.7)} }

/* Hero */
#hero { min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 5vw 9vh;position:relative;overflow:hidden;z-index:1; }
.hero-grid { position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.025) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 30%,transparent 80%); }
.hero-bg-text { position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:"Syne",sans-serif;font-weight:800;font-size:clamp(10rem,26vw,25rem);color:transparent;-webkit-text-stroke:1px rgba(187,134,252,0.1);white-space:nowrap;pointer-events:none;user-select:none;letter-spacing:-0.05em; }
.hero-eyebrow { display:flex;align-items:center;gap:14px;font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--white-mute);margin-bottom:22px;overflow:hidden; }
.hero-eyebrow span { display:inline-block; }
.hero-eyebrow-line { width:36px;height:1px;background:var(--purple-3);display:inline-block; }
.hero-title { font-family:"Syne",sans-serif;font-weight:800;font-size:clamp(3.5rem,9vw,9.5rem);line-height:0.89;letter-spacing:-0.045em;margin-bottom:44px; }
.hero-title .line { overflow:hidden;display:block; }
.hero-title .line span { display:inline-block;transform:translateY(110%);color:#fff; }
.hero-title em { font-style:italic;font-weight:700;background:linear-gradient(95deg,var(--yellow) 0%,var(--yellow-2) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.hero-bottom { display:flex;align-items:flex-end;justify-content:space-between;gap:24px; }
.hero-desc { max-width:380px;font-size:0.93rem;line-height:1.78;color:var(--white-dim);font-weight:300;overflow:hidden; }
.hero-desc span { display:inline-block; }
.hero-cta { display:inline-flex;align-items:center;gap:12px;font-family:"Syne",sans-serif;font-size:0.82rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;padding:17px 34px;text-decoration:none;cursor:none;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--purple-1),var(--purple-2));color:#fff;box-shadow:0 8px 36px rgba(91,31,214,0.5),inset 0 1px 0 rgba(255,255,255,0.1);transition:box-shadow .35s,transform .2s; }
.hero-cta::before { content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--yellow-2),var(--yellow));transform:translateX(-101%);transition:transform .42s cubic-bezier(.4,0,.2,1); }
.hero-cta:hover::before { transform:translateX(0); }
.hero-cta:hover { color:var(--bg-deep);box-shadow:0 8px 44px rgba(255,229,102,0.35); }
.hero-cta span,.hero-cta svg { position:relative;z-index:1; }
.hero-cta svg { transition:transform .3s; }
.hero-cta:hover svg { transform:translate(4px,-4px);stroke:var(--bg-deep); }
.hero-scroll-hint { position:absolute;bottom:40px;right:5vw;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:0.6rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--white-mute); }
.hero-scroll-line { width:1px;height:56px;background:linear-gradient(to bottom,var(--purple-3),transparent);animation:sline 2.2s ease-in-out infinite; }
@keyframes sline { 0%{transform:scaleY(0);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} 51%{transform:scaleY(1);transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} }

/* Hero badges */
.hero-badges { display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px; }
.hero-badge { font-size:0.62rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;padding:5px 14px;border:1px solid rgba(187,134,252,0.3);color:var(--purple-3);background:rgba(91,31,214,0.12);border-radius:2px; }

/* Marquee */
.marquee-wrap { overflow:hidden;padding:13px 0;position:relative;z-index:1;background:linear-gradient(90deg,var(--purple-1) 0%,var(--purple-2) 50%,var(--purple-1) 100%);background-size:200% auto;animation:gshift 7s linear infinite; }
@keyframes gshift { to{background-position:200% center} }
.marquee-track { display:flex;animation:marquee 18s linear infinite;white-space:nowrap; }
.marquee-item { display:flex;align-items:center;gap:28px;padding:0 28px;font-family:"Syne",sans-serif;font-size:0.78rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.75); }
.marquee-item span { color:var(--yellow); }
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* Section shared */
.s-label { font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--white-mute);margin-bottom:18px;display:flex;align-items:center;gap:10px; }
.s-num { font-family:"Syne",sans-serif;font-weight:700;font-size:0.68rem;background:linear-gradient(90deg,var(--yellow),var(--yellow-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.s-title { font-family:"Syne",sans-serif;font-weight:800;font-size:clamp(2rem,4vw,3.7rem);line-height:1.03;letter-spacing:-0.035em;margin-bottom:28px;color:#fff; }
.s-title em { font-style:italic;font-weight:700;background:linear-gradient(90deg,var(--yellow) 0%,var(--yellow-2) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }

/* About */
#about { padding:130px 5vw;display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:center;position:relative;z-index:1; }
.about-text { font-size:0.93rem;line-height:1.8;color:var(--white-dim);margin-bottom:18px;font-weight:300; }
.about-stats { display:flex;gap:44px;margin-top:48px;padding-top:40px;border-top:1px solid var(--border-2); }
.stat-num { font-family:"Syne",sans-serif;font-weight:800;font-size:2.6rem;letter-spacing:-0.04em;line-height:1;background:linear-gradient(135deg,#fff 20%,var(--yellow) 80%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.stat-label { font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--white-mute);margin-top:6px;font-weight:500; }
.about-img-wrap { position:relative; }
.about-img-box { width:100%;aspect-ratio:4/5;background:linear-gradient(135deg,var(--bg-card) 0%,rgba(91,31,214,0.2) 100%);border:1px solid var(--border-2);overflow:hidden;position:relative; }
.about-img-box::after { content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 55%,rgba(255,229,102,0.06)); }
.about-img-box img { width:100%;height:100%;object-fit:cover;display:block; }
.about-img-placeholder { width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:"Syne",sans-serif;font-size:clamp(5rem,12vw,10rem);font-weight:800;color:rgba(187,134,252,0.14);letter-spacing:-0.05em; }
.about-tag { position:absolute;bottom:-18px;left:-18px;background:linear-gradient(135deg,var(--yellow-2),var(--yellow));color:var(--bg-deep);font-family:"Syne",sans-serif;font-size:0.68rem;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;padding:10px 22px; }
.about-tag-2 { position:absolute;top:20px;right:-18px;background:rgba(8,4,18,0.88);border:1px solid var(--border-2);color:var(--white-dim);font-size:0.62rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;padding:8px 16px; }

/* Tools strip */
.tools-strip { margin-top:36px; }
.tools-label { font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--white-mute);margin-bottom:14px; }
.tools-list { display:flex;flex-wrap:wrap;gap:8px; }
.tool-chip { font-size:0.62rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;padding:5px 12px;border:1px solid var(--border-2);color:var(--white-mute);transition:border-color .25s,color .25s; }
.tool-chip:hover { border-color:rgba(255,229,102,0.3);color:var(--yellow); }

/* Experience */
#experience { padding:110px 5vw;position:relative;z-index:1;border-top:1px solid var(--border); }
.exp-grid { display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:50px; }
.exp-card { padding:36px 32px;background:rgba(8,4,18,0.55);border:1px solid var(--border);position:relative;overflow:hidden;transition:background .35s,border-color .35s; }
.exp-card::before { content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--purple-2),var(--yellow));transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.4,0,.2,1); }
.exp-card:hover::before { transform:scaleX(1); }
.exp-card:hover { background:rgba(91,31,214,0.1);border-color:rgba(255,255,255,0.2); }
.exp-period { font-size:0.65rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--yellow);margin-bottom:12px;font-weight:600; }
.exp-role { font-family:"Syne",sans-serif;font-size:1.05rem;font-weight:800;color:#fff;margin-bottom:4px; }
.exp-company { font-size:0.82rem;color:var(--purple-3);margin-bottom:20px;font-weight:500; }
.exp-list { list-style:none;display:flex;flex-direction:column;gap:9px; }
.exp-list li { font-size:0.8rem;color:var(--white-dim);line-height:1.65;padding-left:14px;position:relative; }
.exp-list li::before { content:"✦";position:absolute;left:0;color:var(--yellow);font-size:0.5rem;top:4px; }
.exp-tools { margin-top:20px;padding-top:16px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:6px; }
.exp-tool { font-size:0.58rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;padding:3px 9px;border:1px solid var(--border-2);color:var(--white-mute); }

/* Skills */
#skills { padding:110px 5vw;position:relative;z-index:1;background:rgba(0,0,0,0.2);border-top:1px solid var(--border);border-bottom:1px solid var(--border); }
.skills-hdr { display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:60px; }
.skills-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;border:1px solid var(--border); }
.skill-card { padding:36px 30px;background:rgba(8,4,18,0.55);border:1px solid var(--border);position:relative;overflow:hidden;transition:background .35s; }
.skill-card::before { content:"";position:absolute;bottom:0;left:0;right:100%;height:2px;background:linear-gradient(90deg,var(--purple-2),var(--yellow));transition:right .45s cubic-bezier(.4,0,.2,1); }
.skill-card:hover::before { right:0; }
.skill-card:hover { background:rgba(91,31,214,0.12); }
.skill-icon { font-size:1.5rem;margin-bottom:18px;display:block;color:var(--purple-3); }
.skill-name { font-family:"Syne",sans-serif;font-size:1rem;font-weight:700;margin-bottom:10px;color:#fff; }
.skill-desc { font-size:0.8rem;line-height:1.65;color:var(--white-mute);font-weight:300; }
.skill-level { margin-top:22px;display:flex;align-items:center;gap:10px; }
.skill-bar-bg { flex:1;height:2px;background:rgba(255,255,255,0.08);border-radius:2px;overflow:hidden; }
.skill-bar { height:100%;background:linear-gradient(90deg,var(--purple-2),var(--yellow));border-radius:2px;transform-origin:left;transform:scaleX(0);transition:transform 1.1s cubic-bezier(.4,0,.2,1); }
.skill-pct { font-size:0.62rem;font-weight:600;letter-spacing:0.08em;color:var(--white-mute);min-width:34px;text-align:right; }

/* Work */
#work { padding:120px 5vw;position:relative;z-index:1; }
.work-hdr { display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:60px; }
.all-link { display:flex;align-items:center;gap:8px;font-size:0.76rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--white-mute);text-decoration:none;transition:color .25s; }
.all-link:hover { color:var(--yellow); }
.all-link svg { transition:transform .3s; }
.all-link:hover svg { transform:translate(4px,-4px);stroke:var(--yellow); }
.proj-list { display:flex;flex-direction:column; }
.proj-row { display:grid;grid-template-columns:56px 1fr auto auto;align-items:center;gap:32px;padding:26px 0;border-bottom:1px solid var(--border);text-decoration:none;color:var(--white);position:relative;overflow:hidden;cursor:none;transition:padding-left .35s cubic-bezier(.4,0,.2,1); }
.proj-row::before { content:"";position:absolute;left:-4px;top:0;bottom:0;width:4px;background:linear-gradient(to bottom,var(--purple-2),var(--yellow));transform:scaleY(0);transition:transform .35s cubic-bezier(.4,0,.2,1); }
.proj-row:hover { padding-left:20px; }
.proj-row:hover::before { transform:scaleY(1); }
.proj-num { font-family:"Syne",sans-serif;font-size:0.68rem;font-weight:700;color:var(--white-mute);letter-spacing:0.1em; }
.proj-name { font-family:"Syne",sans-serif;font-size:clamp(1.1rem,2.5vw,1.6rem);font-weight:700;letter-spacing:-0.02em;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;transition:color .25s; }
.proj-row:hover .proj-name { color:var(--yellow); }
.proj-sub { font-size:0.76rem;color:var(--white-mute); }
.proj-tags { display:flex;gap:8px;flex-wrap:wrap; }
.proj-tag { font-size:0.62rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;padding:5px 12px;border:1px solid var(--border-2);color:var(--white-mute);transition:border-color .25s,color .25s; }
.proj-row:hover .proj-tag { border-color:rgba(255,229,102,0.24);color:rgba(255,229,102,0.65); }
.proj-arrow { width:40px;height:40px;border:1px solid var(--border-2);display:flex;align-items:center;justify-content:center;transition:background .25s,border-color .25s; }
.proj-row:hover .proj-arrow { background:var(--yellow);border-color:var(--yellow); }
.proj-row:hover .proj-arrow svg { stroke:var(--bg-deep); }
.proj-preview { position:fixed;pointer-events:none;z-index:50;width:270px;height:190px;background:var(--bg-card);border:1px solid var(--border-2);overflow:hidden;opacity:0;transform:scale(0.85) rotate(-3deg);transition:opacity .3s,transform .3s; }
.proj-preview.visible { opacity:1;transform:scale(1) rotate(0deg); }
.proj-preview-inner { width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:"Syne",sans-serif;font-size:3rem;font-weight:800; }

/* Education */
#education { padding:90px 5vw;position:relative;z-index:1;border-top:1px solid var(--border); }
.edu-card { display:flex;align-items:flex-start;gap:32px;padding:36px 32px;background:rgba(8,4,18,0.55);border:1px solid var(--border);margin-top:40px;position:relative;overflow:hidden;transition:background .35s,border-color .35s; }
.edu-card::before { content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,var(--purple-2),var(--yellow));transform:scaleY(0);transform-origin:top;transition:transform .45s cubic-bezier(.4,0,.2,1); }
.edu-card:hover::before { transform:scaleY(1); }
.edu-card:hover { background:rgba(91,31,214,0.1);border-color:rgba(255,255,255,0.2); }
.edu-icon { font-size:2rem;flex-shrink:0;color:var(--purple-3); }
.edu-year { font-size:0.65rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--yellow);margin-bottom:8px;font-weight:600; }
.edu-degree { font-family:"Syne",sans-serif;font-size:1.1rem;font-weight:800;color:#fff;margin-bottom:4px; }
.edu-school { font-size:0.85rem;color:var(--purple-3);font-weight:500; }

/* Contact */
#contact { padding:130px 5vw 90px;position:relative;z-index:1;text-align:center;overflow:hidden;border-top:1px solid var(--border); }
.contact-bg { position:absolute;inset:0;font-family:"Syne",sans-serif;font-weight:800;font-size:clamp(10rem,22vw,22rem);color:transparent;-webkit-text-stroke:1px rgba(187,134,252,0.06);white-space:nowrap;display:flex;align-items:center;justify-content:center;pointer-events:none;letter-spacing:-0.04em; }
.contact-title { font-family:"Syne",sans-serif;font-weight:800;font-size:clamp(2.5rem,7vw,7.5rem);letter-spacing:-0.045em;line-height:0.92;margin-bottom:26px;position:relative;color:#fff; }
.contact-title em { font-style:italic;background:linear-gradient(90deg,var(--yellow) 0%,var(--yellow-2) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.contact-sub { font-size:0.92rem;color:var(--white-mute);max-width:440px;margin:0 auto 52px;line-height:1.75;font-weight:300;position:relative; }
.contact-email { display:inline-block;position:relative;font-family:"Syne",sans-serif;font-size:clamp(1.1rem,2.8vw,2rem);font-weight:700;letter-spacing:-0.02em;text-decoration:none;padding-bottom:6px;background:linear-gradient(90deg,#fff 0%,var(--yellow) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.contact-email::after { content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--purple-2),var(--yellow));transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.4,0,.2,1); }
.contact-email:hover::after { transform:scaleX(1);transform-origin:left; }
.contact-socials { display:flex;align-items:center;justify-content:center;gap:24px;margin-top:64px;position:relative; }
.soc-link { font-size:0.7rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--white-mute);text-decoration:none;transition:color .25s; }
.soc-link:hover { color:var(--yellow); }
.soc-sep { width:3px;height:3px;background:var(--border-2);border-radius:50%; }

/* Footer */
footer { border-top:1px solid var(--border);padding:24px 5vw;display:flex;align-items:center;justify-content:space-between;color:var(--white-mute);font-size:0.68rem;letter-spacing:0.08em;position:relative;z-index:1; }
footer a { color:var(--white-mute);text-decoration:none;transition:color .25s; }
footer a:hover { color:var(--yellow); }

/* Reveals */
.reveal { opacity:0;transform:translateY(36px); }
.reveal.visible { animation:rup .85s cubic-bezier(.4,0,.2,1) forwards; }
@keyframes rup { to{opacity:1;transform:translateY(0)} }
.reveal-l { opacity:0;transform:translateX(-36px); }
.reveal-l.visible { animation:rlft .85s cubic-bezier(.4,0,.2,1) forwards; }
@keyframes rlft { to{opacity:1;transform:translateX(0)} }

/* Responsive */
@media (max-width:900px) {
  .exp-grid { grid-template-columns:1fr; }
}
@media (max-width:768px) {
  #about { grid-template-columns:1fr;gap:60px; }
  .about-img-wrap { order:-1; }
  .hero-bottom { flex-direction:column;align-items:flex-start; }
  .proj-row { grid-template-columns:40px 1fr auto; }
  .proj-tags { display:none; }
  .skills-hdr,.work-hdr { flex-direction:column;align-items:flex-start;gap:16px; }
  .nav-links { display:none; }
  .about-stats { gap:28px; }
  .edu-card { flex-direction:column;gap:16px; }
  .hero-badges { display:none; }
}