*,*::before,*::after{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
:root{
    --bg: #020f0d;
    --bg2: #051a15;
    --accent: #00f5c4;
    --accent2: #06b6d4;
    --accent3: #67e8f9;
    --text: #e0fdf4;
    --muted: #5eead4;
    --card:rgba(255,255,255,0.03);
    --border:rgba(255,255,255,0.08);
    --glow:0 0 40px rgba(192,132,252,0.2);
    --font-heading: 'Cormorant Garamond', serif;
}
html{
    scroll-behavior:smooth;
}
body{
    font-family:'DM Mono',monospace;
    background:var(--bg);
    color:var(--text);
    overflow-x:hidden;
    cursor:none;
}
/* CURSOR */
.cursor{
    width:10px;
    height:10px;
    background:var(--accent);
    border-radius:50%;
    position:fixed;
    top:0;
    left:0;
    pointer-events:none;
    z-index:9999;
    transform:translate(-50%,-50%);
    mix-blend-mode:difference;
}
.cursor-ring{
    width:34px;
    height:34px;
    border:1.5px solid var(--accent);
    border-radius:50%;
    position:fixed;
    top:0;
    left:0;
    pointer-events:none;
    z-index:9998;
    transform:translate(-50%,-50%);
    transition:all 0.18s ease;
    opacity:0.5;
}

/* 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='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
    pointer-events:none;
    z-index:1;
    opacity:0.5;
}
/* NAV */
nav{
    position:fixed;
    top:0;
    width:100%;
    z-index:100;
    padding:1.4rem 5%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:rgba(5,5,15,0.85);
    backdrop-filter:blur(20px);
    border-bottom:1px solid var(--border);
    transition:all 0.3s;
}
nav.scrolled{
    padding:0.9rem 5%;
    box-shadow:0 4px 40px rgba(0,0,0,0.5);
}
.nav-logo{
    font-family:'Cormorant Garamond', serif;
    font-weight:800;
    font-size:1.8rem;
    color:var(--accent);
    letter-spacing:-1px;
    text-decoration:none;
}
.nav-logo span{
    color:var(--text);
}
.nav-links{
    display:flex;
    gap:2.5rem;
    list-style:none;
}
.nav-links a{
    color:var(--muted);
    text-decoration:none;
    font-size:1rem;
    letter-spacing:0.5px;
    text-transform:uppercase;
    position:relative;
    transition:color 0.3s;
}
.nav-links a::after{
    content:'';
    position:absolute;
    bottom:-4px;
    left:0;
    width:0;
    height:1px;
    background:var(--accent);
    transition:width 0.3s;
}
.nav-links a:hover{
    color:var(--accent);
}
.nav-links a:hover::after{
    width:100%;
}
.hamburger{
    display:none;
    flex-direction:column;
    gap:5px;
    cursor:none;
}
.hamburger span{
    display:block;
    width:24px;
    height:2px;
    background:var(--text);
    transition:all 0.3s;
}
/* HERO */
#hero{
    min-height:100vh;
    display:flex;
    align-items:center;
    padding:0 5%;
    position:relative;
    overflow:hidden;
}
.hero-bg{
    position:absolute;
    inset:0;
    background:radial-gradient(ellipse 70% 70% at 70% 40%,rgba(192,132,252,0.12) 0%,transparent 70%),radial-gradient(ellipse 50% 50% at 10% 80%,rgba(129,140,248,0.08) 0%,transparent 60%);
}
.hero-grid{
    position:absolute;
    inset:0;
    background-image:linear-gradient(rgba(255,255,255,0.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.02) 1px,transparent 1px);
    background-size:55px 55px;
    mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 30%,transparent 100%);
}
.shape1{
    position:absolute;
    width:450px;
    height:450px;
    right:-80px;
    top:50%;
    transform:translateY(-50%);
    background:radial-gradient(circle,rgba(192,132,252,0.15) 0%,transparent 70%);
    animation:floatShape 9s ease-in-out infinite;
    border-radius:50%;
}
.shape2{
    position:absolute;
    width:220px;
    height:220px;
    right:28%;
    top:12%;
    background:radial-gradient(circle,rgba(129,140,248,0.1) 0%,transparent 70%);
    animation:floatShape 7s 2s ease-in-out infinite;
    border-radius:50%;
}
.hero-content{
    position:relative;
    z-index:2;
    max-width:820px;
}
.hero-tag{
    display:inline-flex;
    align-items:center;
    gap:0.5rem;
    font-size:1rem;
    letter-spacing:1px;
    text-transform:uppercase;
    color:var(--accent);
    border:1px solid rgba(192,132,252,0.3);
    padding:0.4rem 1rem;
    margin-bottom:2rem;
    animation:fadeUp 0.8s ease both;
}
.hero-tag::before{
    content:'';
    width:6px;
    height:6px;
    background:var(--accent);
    border-radius:50%;
    animation:blink 1.5s infinite;
}
.hero-name{
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(3rem,8.5vw,7rem);
    font-weight:800;
    line-height:0.93;
    letter-spacing:-3px;
    animation:fadeUp 0.8s 0.1s ease both;
}
.hero-name .outline{
    color:transparent;
    -webkit-text-stroke:1.5px rgba(240,171,252,0.3);
}
.hero-role{
    margin-top:1.8rem;
    font-size:0.95rem;
    color:var(--muted);
    letter-spacing:1px;
    animation:fadeUp 0.8s 0.2s ease both;
}
.typed{
    color:var(--accent3);
}
.hero-desc{
    margin-top:1.4rem;
    font-size:1rem;
    color:var(--muted);
    line-height:1.8;
    max-width:500px;
    animation:fadeUp 0.8s 0.3s ease both;
}
.hero-btns{
    margin-top:2.5rem;
    display:flex;
    gap:1.2rem;
    flex-wrap:wrap;
    animation:fadeUp 0.8s 0.4s ease both;
}
.btn-p{
    padding:0.85rem 2.2rem;
    background:var(--accent);
    color:#fff;
    font-family:'DM Mono',monospace;
    font-size:0.9rem;
    font-weight:900;
    letter-spacing:1.2px;
    text-transform:uppercase;
    text-decoration:none;
    border:none;
    cursor:none;
    position:relative;
    overflow:hidden;
    transition:all 0.3s;
}
.btn-p::before{
    content:'';
    position:absolute;
    inset:0;
    background:rgba(255,255,255,0.15);
    transform:translateX(-100%);
    transition:transform 0.4s;
}
.btn-p:hover::before{
    transform:translateX(0);
}
.btn-p:hover{
    box-shadow:0 0 30px rgba(192,132,252,0.5);
}
.btn-s{
    padding:0.85rem 2.2rem;
    border:1px solid var(--border);
    color:var(--text);
    font-family:'DM Mono',monospace;
    font-size:0.9rem;
    letter-spacing:1.2px;
    text-transform:uppercase;
    text-decoration:none;
    background:transparent;
    cursor:none;transition:all 0.3s;
}
.btn-s:hover{
    border-color:var(--accent);
    color:var(--accent);
}
.scroll-hint{
    position:absolute;
    bottom:2.5rem;
    left:5%;
    display:flex;
    align-items:center;
    gap:0.8rem;
    font-size:0.8rem;
    letter-spacing:1.5px;
    color:var(--muted);
    text-transform:uppercase;
    animation:fadeUp 0.8s 0.6s ease both;
}
.scroll-line{
    width:40px;
    height:1px;
    background:var(--muted);
    position:relative;
    overflow:hidden;
}
.scroll-line::after{
    content:'';
    position:absolute;
    top:0;
    left:-100%;
    width:100%;
    height:100%;
    background:var(--accent);
    animation:scanLine 1.6s infinite;
}
 /* SECTIONS */
section{
    padding:7rem 5%;
    position:relative;
}
.s-label{
    font-size:0.8rem;
    letter-spacing:3px;
    text-transform:uppercase;
    color:var(--accent);
    margin-bottom:0.8rem;
}
.s-title{
    font-family:'Cormorant Garamond', serif;
    font-size:clamp(3rem,5vw,4rem);
    font-weight:800;
    letter-spacing:-2px;
    line-height:1.05;
}
.s-line{
    width:56px;
    height:2px;
    background:linear-gradient(90deg,var(--accent),var(--accent2));
    margin:1.4rem 0 3rem;
}

/* ===== REVEAL ANIMATION =====
   Default: visible. JS adds the animation class after page load.
   This ensures sections always show even if JS is slow. */
.reveal {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
/* JS adds .js-reveal-ready to <body> once observer is set up */
body.js-ready .reveal {
  opacity: 0;
  transform: translateY(28px);
}
body.js-ready .reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.d1 { 
    transition-delay: 0.1s; 
}
.d2 { 
    transition-delay: 0.2s; 
}
.d3 { 
    transition-delay: 0.3s; 
}
.d4 { 
    transition-delay: 0.4s; 
}
 
 /* ABOUT */
#about{
    background:var(--bg2);
}
.about-grid{
    display:grid;
    grid-template-columns:0.9fr 1.1fr;
    gap:5rem;
    align-items:center;
}
.about-visual{
    position:relative;
}
.avatar-box{
    width:100%;
    aspect-ratio:4/5;
    background:linear-gradient(135deg,rgba(192,132,252,0.15),rgba(129,140,248,0.08));
    border:1px solid var(--border);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:6rem;
    position:relative;
    overflow:hidden;
}
.avatar-box::after{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 55%,var(--bg2) 100%);
}
.avatar-box .initials{
    font-family:'Cormorant Garamond', serif;
    font-size:5rem;
    font-weight:800;
    color:var(--accent);
    opacity:0.6;
    z-index:1;
}
.deco1{
    position:absolute;
    bottom:-18px;
    right:-18px;
    width:110px;
    height:110px;
    border:2px solid rgba(192,132,252,0.25);
}
.deco2{
    position:absolute;
    top:-18px;
    left:-18px;
    width:75px;
    height:75px;
    border:1px solid rgba(129,140,248,0.2);
}
.about-text p{
    color:var(--muted);
    line-height:1.5;
    font-size:1rem;
    margin-bottom:1.1rem;
}
.about-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.2rem;
    margin-top:2rem;
}
.stat{
    border-top:1px solid var(--border);
    padding-top:1rem;
}
.stat-num{
    font-family:'Cormorant Garamond', serif;
    font-size:3rem;
    font-weight:800;
    color:var(--accent);
    display:block;
}
.stat-label{
    font-size:0.8rem;
    letter-spacing:1px;
    color:var(--muted);
    text-transform:uppercase;
}
 
/* SKILLS */
#skills{
    background:var(--bg);
}
.skills-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.4rem;
}
.skill-card{
    padding:1.8rem;
    background:var(--card);
    border:1px solid var(--border);
    position:relative;
    overflow:hidden;
    transition:all 0.3s;
    cursor:none;
}
.skill-card::before{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(135deg,rgba(192,132,252,0.06),transparent);
    opacity:0;
    transition:opacity 0.3s;
}
.skill-card:hover{
    border-color:rgba(192,132,252,0.3);
    transform:translateY(-4px);
    box-shadow:var(--glow);
}
.skill-card:hover::before{
    opacity:1;
}
.s-icon{
    font-size:1.8rem;
    margin-bottom:0.9rem;
}
.s-name{
    font-family:'Cormorant Garamond', serif;
    font-size:1.5rem;
    font-weight:700;
    margin-bottom:0.4rem;
}
.s-tags{
    display:flex;
    flex-wrap:wrap;
    gap:0.4rem;
    margin-bottom:1rem;
}
.s-tag{
    font-size:0.9rem;
    letter-spacing:1px;
    padding:0.2rem 0.5rem;
    border:1.5px solid var(--border);
    color:var(--muted);
    text-transform:uppercase;
}
.bar-track{
    height:6px;
    background:var(--border);
    border-radius:6px;
    overflow:hidden;
    margin-bottom: 0.4rem;
    border: 1px solid rgba(255,255,255,0.06);
}
.bar-fill{
    height:100%;
    background:linear-gradient(90deg,var(--accent),var(--accent2));
    background-size: 200% 100%;
    width:0%;
    border-radius: 6px;
    transition:width 1.4s cubic-bezier(0.4,0,0.2,1);
    box-shadow: 0 0 10px rgba(192,132,252,0.7), 0 0 20px rgba(192,132,252,0.3);
    animation: shimmer 2.5s infinite linear;
}
@keyframes shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.bar-pct{
    font-size:0.9rem;
    color:var(--accent);
    margin-top:0.4rem;
    text-align:right;
}
 /* PROJECTS */
#projects{
    background:var(--bg2);
}
.projects-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1.8rem;
}
.proj-card{
    border:1px solid var(--border);
    overflow:hidden;
    background:var(--card);
    cursor:none;transition:all 0.35s;
    position:relative;
}
.proj-card:hover{
    border-color:rgba(192,132,252,0.25);
    transform:translateY(-6px);
    box-shadow:0 24px 60px rgba(0,0,0,0.5);
}
.proj-thumb{
    height:190px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:3.2rem;
    position:relative;
    overflow:hidden;
}
.pt1{
    background:linear-gradient(135deg,#1a0a2e,#2d1b4e);
}
.pt2{
    background:linear-gradient(135deg,#0a1a2e,#1b2d4e);
}
.pt3{
    background:linear-gradient(135deg,#1a1a2e,#2e1b4e);
}
.proj-overlay{
    position:absolute;
    inset:0;
    background:rgba(192,132,252,0.1);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:0.8rem;
    opacity:0;
    transition:opacity 0.3s;
    z-index:2;
}
.proj-card:hover .proj-overlay{
    opacity:1;
}
.o-btn{
    padding:0.55rem 1.1rem;
    background:var(--accent);
    color:#fff;
    font-family:'DM Mono',monospace;
    font-size:0.9rem;
    letter-spacing:1px;
    text-transform:uppercase;
    text-decoration:none;
    cursor:none;
    transition:transform 0.2s;
}
.o-btn:hover{
    transform:scale(1.05);
}
.o-btn.ghost{
    background:transparent;
    border:1px solid var(--accent);
    color:var(--accent);
}
.proj-body{
    padding:1.4rem;
}
.proj-tags{
    display:flex;
    gap:0.4rem;
    flex-wrap:wrap;
    margin-bottom:0.7rem;
}
.ptag{
    font-size:0.9rem;
    letter-spacing:1px;
    text-transform:uppercase;
    padding:0.22rem 0.55rem;
    border:1.5px solid var(--border);
    color:var(--muted);
}
.proj-name{
    font-family:'Cormorant Garamond', serif;
    font-size:1.5rem;
    font-weight:700;
    margin-bottom:0.4rem;
}
.proj-desc{
    font-size:0.85rem;
    color:var(--muted);
    line-height:1.5;
}
/* ── View All Projects button ── */
.projects-more {
  text-align: center;
  margin-top: 4rem;
  position: relative;
}
.projects-more::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 320px; height: 320px;
  background: radial-gradient(circle, rgba(192,132,252,0.08) 0%, transparent 70%);
  pointer-events: none;
  border-radius: 50%;
}
.btn-all-projects {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1.1rem 3rem;
  font-family: 'DM Mono', monospace;
  font-size: 0.9rem;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--bg);
  background: var(--accent);
  border: none;
  cursor: none;
  position: relative;
  overflow: hidden;
  transition: all 0.4s ease;
  box-shadow: 0 0 0 0 rgba(192,132,252,0);
}
/* shine sweep */
.btn-all-projects::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.25), transparent);
  transform: skewX(-20deg);
  transition: left 0.55s ease;
}
/* bottom glow line */
.btn-all-projects::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 100%; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
  transform: scaleX(0);
  transition: transform 0.4s ease;
}
.btn-all-projects:hover {
  box-shadow: 0 8px 40px rgba(192,132,252,0.55), 0 0 0 1px var(--accent);
  transform: translateY(-3px);
  letter-spacing: 3.5px;
}
.btn-all-projects:hover::before { 
    left: 140%; 
}
.btn-all-projects:hover::after  { 
    transform: scaleX(1); 
}
 
/* arrow pulse */
.btn-all-projects .arrow {
  display: inline-block;
  transition: transform 0.3s ease;
  font-style: normal;
}
.btn-all-projects:hover .arrow { 
    transform: translateX(5px); 
}

/* Projects Page */
  /* ── Page-specific styles ── */
.projects-hero {
    min-height: 38vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 7rem 5% 3rem;
    position: relative;
    overflow: hidden;
}
.projects-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 60% 80% at 50% 50%,rgba(192, 132, 252, 0.1) 0%,transparent 70%);
    pointer-events: none;
}
.projects-hero .hero-grid {
    position: absolute;
    inset: 0;
    background-image:
      linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
    background-size: 55px 55px;
    mask-image: radial-gradient(
        ellipse 80% 80% at 50% 50%,
        black 30%,
        transparent 100%
    );
    -webkit-mask-image: radial-gradient(
        ellipse 80% 80% at 50% 50%,
        black 30%,
        transparent 100%
    );
}
.projects-hero .back-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--muted);
    text-decoration: none;
    font-size: 0.8rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 2rem;
    transition: color 0.3s;
    position: relative;
    z-index: 2;
}
.projects-hero .back-btn:hover {
    color: var(--accent);
}
.projects-hero .s-label {
    position: relative;
    z-index: 2;
}
.projects-hero .page-title {
    font-family: var(--font-heading);
    font-size: clamp(2.8rem, 6vw, 6rem);
    font-weight: 700;
    letter-spacing: -2px;
    line-height: 0.95;
    position: relative;
    z-index: 2;
    animation: fadeUp 0.8s ease both;
}
.projects-hero .page-sub {
    margin-top: 1rem;
    font-size: 1rem;
    color: var(--muted);
    max-width: 480px;
    line-height: 1.6;
    position: relative;
    z-index: 2;
    animation: fadeUp 0.8s 0.15s ease both;
}

/* Filter bar */
.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    justify-content: center;
    padding: 0 5% 3rem;
    position: relative;
    z-index: 2;
    animation: fadeUp 0.8s 0.25s ease both;
}
.filter-btn {
    padding: 0.45rem 1.2rem;
    border: 1px solid var(--border);
    color: var(--muted);
    font-family: "DM Mono", monospace;
    font-size: 0.8rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    background: transparent;
    cursor: none;
    transition: all 0.25s;
}
.filter-btn:hover,
.filter-btn.active {
    border-color: var(--accent);
    color: var(--accent);
    background: rgba(192, 132, 252, 0.07);
}

/* All-projects grid */
.all-projects-section {
    padding: 0 5% 7rem;
}
      
.all-projects-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.8rem;
}

/* Category badge on card */
.proj-category {
    position: absolute;
    top: 12px;
    left: 12px;
    font-size: 0.7rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 0.22rem 0.65rem;
    background: rgba(192, 132, 252, 0.15);
    border: 1px solid rgba(192, 132, 252, 0.3);
    color: var(--accent);
    z-index: 3;
}

/* hidden card when filtered */
.proj-card.hidden {
    display: none;
}

/* Thumb colour variants */
.pt4 {
    background: linear-gradient(135deg, #0a2218, #1a4a30);
}
.pt5 {
    background: linear-gradient(135deg, #0a0a2e, #1a1a50);
}
.pt6 {
    background: linear-gradient(135deg, #0a0a2e, #1a1a50);
}
.pt7 {
    background: linear-gradient(135deg, #1a0010, #3a0028);
}
.pt8 {
    background: linear-gradient(135deg, #001a2e, #00304e);
}

/* Count badge */
.projects-count {
    text-align: center;
    font-size: 0.85rem;
    letter-spacing: 2px;
    color: var(--muted);
    text-transform: uppercase;
    margin-bottom: 2rem;
}
.projects-count span {
    color: var(--accent);
}

 
/* EXPERIENCE */
#experience{
    background:var(--bg);
}
.exp-list{
    display:flex;
    flex-direction:column;
    gap:1.5rem;
}
.exp-card{
    padding:2rem;
    background:var(--card);
    border:1px solid var(--border);
    position:relative;
    overflow:hidden;
    transition:all 0.3s;
}
.exp-card::before{
    content:'';
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:3px;
    background:linear-gradient(180deg,var(--accent),var(--accent2));
    transform:scaleY(0);
    transform-origin:top;
    transition:transform 0.4s;
}
.exp-card:hover{
    border-color:rgba(192,132,252,0.2);
}
.exp-card:hover::before{
    transform:scaleY(1);
}
.exp-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:0.5rem;
    margin-bottom:0.8rem;
}
.exp-role{
    font-family:'Cormorant Garamond', serif;
    font-size:1.5rem;
    font-weight:700;
}
.exp-company{
    color:var(--accent);
    font-size:0.85rem;
    margin-top:0.2rem;
}
.exp-date{
    font-size:0.8rem;
    letter-spacing:1px;
    color:var(--muted);
    padding:0.3rem 0.7rem;
    border:1px solid var(--border);
}
.exp-points{
    list-style:none;
    margin-top:0.5rem;
}
.exp-points li{
    font-size:0.9rem;
    color:var(--muted);
    line-height:1.8;
    padding-left:1.2rem;
    position:relative;
}
.exp-points li::before{
    content:'→';
    position:absolute;
    left:0;
    color:var(--accent);
    font-size:0.7rem;
}
 
/* EDUCATION */
#education{
    background:var(--bg2);
}
.edu-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:1.4rem;
}
.edu-card{
    padding:1.8rem;
    background:var(--card);
    border:1px solid var(--border);
    transition:all 0.3s;
    position:relative;
    overflow:hidden;
}
.edu-card::after{
    content:'';
    position:absolute;
    bottom:0;
    left:0;
    width:0;
    height:2px;
    background:linear-gradient(90deg,var(--accent),var(--accent2));
    transition:width 0.4s;
}
.edu-card:hover{
    border-color:rgba(192,132,252,0.2);
    transform:translateY(-3px);
}
.edu-card:hover::after{
    width:100%;
}
.edu-icon{
    font-size:1.8rem;
    margin-bottom:0.9rem;
}
.edu-degree{
    font-family:'Cormorant Garamond', serif;
    font-size:1.5rem;
    font-weight:700;
    margin-bottom:0.8rem;
}
.edu-school{
    font-size:0.9rem;
    color:var(--accent);
    margin-bottom:0.2rem;
}
.edu-year{
    font-size:0.9rem;
    letter-spacing:1px;
    color:var(--muted);
}
 
/* CONTACT */
#contact{
    background:var(--bg);
}
.contact-wrap{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:5rem;
    align-items:start;
}
.contact-info p{
    color:var(--muted);
    font-size:1rem;
    line-height:1.6;
    margin-bottom:2rem;
}
.c-links{
    display:flex;
    flex-direction:column;
    gap:0.9rem;
}
.c-link{
    display:flex;
    align-items:center;
    gap:1rem;
    color:var(--text);
    text-decoration:none;
    font-size:1rem;
    padding:0.9rem 1.1rem;
    border:1px solid var(--border);
    transition:all 0.3s;
}
.c-link:hover{
    border-color:var(--accent);
    color:var(--accent);
    background:rgba(192,132,252,0.04);
}
.c-icon{
    font-size:1.2rem;
    width:22px;
    text-align:center;
    color:var(--accent);
}
.contact-form{
    display:flex;
    flex-direction:column;
    gap:1.1rem;
}
.f-group{
    display:flex;
    flex-direction:column;
    gap:0.45rem;
}
.f-label{
    font-size:0.9rem;
    letter-spacing:1.5px;
    text-transform:uppercase;
    color:var(--muted);
}
.f-input,.f-textarea{
    background:var(--card);
    border:1px solid var(--border);
    color:var(--text);
    font-family:'DM Mono',monospace;
    font-size:0.83rem;
    padding:0.8rem 0.95rem;
    outline:none;
    resize:none;
    transition:border-color 0.3s;
}
.f-input:focus,.f-textarea:focus{
    border-color:var(--accent);
}
.f-textarea{
    height:120px;
}
.f-submit{
    padding:0.95rem 2rem;
    background:var(--accent);
    color:#fff;
    border:none;
    font-family:'DM Mono',monospace;
    font-size:0.9rem;
    font-weight: 800;
    letter-spacing:1.5px;
    text-transform:uppercase;
    cursor:none;
    transition:all 0.3s;
    align-self:flex-start;
}
.f-submit:hover{
    box-shadow:0 0 30px rgba(192,132,252,0.5);
    transform:translateY(-2px);
}
 
/* FOOTER */
footer{
    padding:2.2rem 5%;
    border-top:1px solid var(--border);
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:1rem;
}
.f-logo{
    font-family:'Cormorant Garamond', serif;
    font-weight:800;
    color:var(--accent);
    font-size:1.2rem;
}
.f-copy{
    font-size:0.9rem;
    color:var(--muted);
    letter-spacing:1px;
}
.f-socials{
    display:flex;
    gap:1rem;
}
.soc{
    width:34px;
    height:34px;
    border:1px solid var(--border);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--muted);
    text-decoration:none;
    font-size:1rem;
    transition:all 0.3s;
}
.soc:hover{
    border-color:var(--accent);
    color:var(--accent);
}
 
/* KEYFRAMES */
@keyframes fadeUp{
    from{
        opacity:0;
        transform:translateY(22px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}
@keyframes floatShape{
    0%,100%{
        transform:translateY(-50%) scale(1);
    }
    50%{
        transform:translateY(calc(-50% - 22px)) scale(1.04);
    }
}
@keyframes scanLine{
    to{
        left:100%;
    }
}
@keyframes blink{
    0%,100%{opacity:1;
    }
    50%{
        opacity:0;
    }
}
.cb{
    animation:blink 1s infinite;
}
 
 
 