*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
:root {
  --bg:#08090a; --surface:#0f1114; --surface2:#161920;
  --border:rgba(255,255,255,0.07); --border2:rgba(255,255,255,0.13);
  --accent:#7dffb3; --accent2:#4ff0e1; --warn:#f59e0b;
  --text:#e8eaed; --muted:#6b7280; --muted2:#4b5563;
  --nav-bg:rgba(8,9,10,0.88); --nav-bg-solid:rgba(8,9,10,0.97);
  --btn-text:#08090a; --accent-hover:#a8ffd0;
  --grid-line:rgba(125,255,179,0.02); --hover-tint:rgba(255,255,255,0.02);
  --radius:10px; --radius-sm:6px;
  --max:960px;
}
[data-theme="light"] {
  --bg:#fafbfc; --surface:#ffffff; --surface2:#f1f3f5;
  --border:rgba(0,0,0,0.08); --border2:rgba(0,0,0,0.18);
  --accent:#059669; --accent2:#0891b2; --warn:#d97706;
  --text:#1f2937; --muted:#6b7280; --muted2:#9ca3af;
  --nav-bg:rgba(250,251,252,0.88); --nav-bg-solid:rgba(250,251,252,0.97);
  --btn-text:#ffffff; --accent-hover:#047857;
  --grid-line:rgba(5,150,105,0.05); --hover-tint:rgba(0,0,0,0.025);
}
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--text); font-family:'Poppins',sans-serif; overflow-x:hidden; line-height:1.7; transition:background-color 0.3s ease, color 0.3s ease; }

/* grid bg */
body::before { content:''; position:fixed; inset:0; background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px); background-size:60px 60px; pointer-events:none; z-index:0; }
.noise { position:fixed; inset:0; pointer-events:none; opacity:0.018; 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)'/%3E%3C/svg%3E"); background-size:128px; z-index:0; }
.orb { position:fixed; border-radius:50%; filter:blur(100px); pointer-events:none; z-index:0; }
.orb1 { width:500px; height:500px; background:var(--accent); opacity:0.055; top:-180px; right:-120px; }
.orb2 { width:380px; height:380px; background:var(--accent2); opacity:0.045; bottom:-100px; left:-80px; }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 clamp(1.25rem,5vw,2.5rem); height:58px;
  background:var(--nav-bg); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
  transition:background-color 0.3s ease;
}
.nav-logo { font-size:13px; color:var(--accent); letter-spacing:0.08em; text-decoration:none; font-weight:500; }
.nav-links { display:flex; gap:clamp(14px,2.5vw,32px); list-style:none; }
.nav-links a { font-size:11px; color:var(--muted); text-decoration:none; letter-spacing:0.12em; text-transform:uppercase; transition:color 0.2s; }
.nav-links a:hover, .nav-links a.active { color:var(--accent); }
.nav-ham { display:none; flex-direction:column; gap:5px; cursor:pointer; }
.nav-ham span { width:20px; height:1.5px; background:var(--muted); display:block; transition:all 0.3s; }
.mob-menu { display:none; position:fixed; top:58px; left:0; right:0; background:var(--nav-bg-solid); border-bottom:1px solid var(--border); padding:1.5rem; z-index:99; flex-direction:column; gap:0; }
.mob-menu a { font-size:12px; color:var(--muted); text-decoration:none; letter-spacing:0.12em; text-transform:uppercase; padding:1rem 0; border-bottom:1px solid var(--border); transition:color 0.2s; }
.mob-menu a:hover, .mob-menu a.active { color:var(--accent); }
.mob-menu.open { display:flex; }

/* ── LAYOUT ── */
.page { position:relative; z-index:1; max-width:var(--max); margin:0 auto; padding:0 clamp(1.25rem,5vw,2.5rem); }
section { padding:clamp(2.5rem,6vh,4rem) 0; }
.page-top { padding-top:calc(58px + clamp(3rem,8vh,5rem)); }

/* ── SECTION LABELS ── */
.sec-label { font-size:10px; letter-spacing:0.22em; text-transform:uppercase; color:var(--accent); margin-bottom:0.6rem; display:flex; align-items:center; gap:8px; }
.sec-label::after { content:''; flex:1; height:1px; background:var(--border); }
.sec-title { font-family:'Poppins',sans-serif; font-size:clamp(1.7rem,4.5vw,2.8rem); line-height:1.1; margin-bottom:2.5rem; font-weight:600; }
.sec-title em { font-style:italic; color:var(--accent); font-weight:500; }

/* ── HERO / ABOUT ── */
.about-grid {
  display:grid;
  grid-template-columns:1fr 220px;
  gap:3rem;
  align-items:start;
}
.about-greeting { font-size:clamp(11px,2vw,13px); color:var(--muted); margin-bottom:1.25rem; }
.about-greeting .hl { color:var(--accent2); }
.about-name { font-family:'Poppins',sans-serif; font-size:clamp(2.8rem,9vw,5.5rem); line-height:0.95; letter-spacing:-0.02em; margin-bottom:0.4rem; font-weight:600; }
.about-name em { display:block; font-style:italic; color:var(--accent); font-weight:500; }
.about-role { font-size:clamp(12px,2vw,14px); color:var(--muted); letter-spacing:0.08em; margin-bottom:2rem; }
.about-body { font-size:14.5px; color:var(--muted); line-height:1.9; max-width:640px; }
.about-body p + p { margin-top:1rem; }
.about-body strong { color:var(--text); }
.about-body a { color:var(--accent2); text-decoration:none; }
.about-body a:hover { text-decoration:underline; }

/* photo */
.about-photo-wrap { display:flex; flex-direction:column; gap:1rem; align-items:center; }
.about-photo { width:200px; height:200px; border-radius:50%; border:2px solid rgba(125,255,179,0.2); background:var(--surface); overflow:hidden; display:flex; align-items:center; justify-content:center; position:relative; }
.photo-initials { font-family:'Poppins',sans-serif; font-size:3.5rem; color:var(--accent); opacity:0.6; font-style:italic; }
.about-social { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.social-icon { width:36px; height:36px; border:1px solid var(--border2); border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--muted); text-decoration:none; transition:all 0.2s; background:var(--surface); }
.social-icon:hover { border-color:rgba(125,255,179,0.4); color:var(--accent); transform:translateY(-2px); }

/* stats row */
.about-stats { display:flex; gap:clamp(1.5rem,4vw,3.5rem); margin-top:2.5rem; padding-top:2rem; border-top:1px solid var(--border); flex-wrap:wrap; }
.stat { display:flex; flex-direction:column; gap:3px; }
.stat-num { font-family:'Poppins',sans-serif; font-size:clamp(1.4rem,3.5vw,2rem); color:var(--accent); line-height:1; font-weight:600; }
.stat-label { font-size:10px; color:var(--muted); letter-spacing:0.1em; text-transform:uppercase; }

/* CTA buttons */
.about-ctas { display:flex; gap:10px; flex-wrap:wrap; margin-top:2rem; }
.btn { display:inline-flex; align-items:center; gap:7px; border-radius:7px; padding:10px 20px; font-family:'Poppins',sans-serif; font-size:11px; font-weight:500; cursor:pointer; text-decoration:none; letter-spacing:0.06em; transition:all 0.2s; border:none; }
.btn-primary { background:var(--accent); color:var(--btn-text); }
.btn-primary:hover { background:var(--accent-hover); transform:translateY(-2px); }
.btn-outline { background:transparent; color:var(--text); border:1px solid var(--border2); }
.btn-outline:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }

/* ── CURRENT ENDEAVORS ── */
.endeavors-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.endeavor-block { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:1.5rem; }
.endeavor-block h3 { font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent); margin-bottom:1rem; }
.endeavor-list { list-style:none; display:flex; flex-direction:column; gap:0.75rem; }
.endeavor-list li { font-size:13.5px; color:var(--text); line-height:1.75; padding-left:1.3rem; position:relative; }
.endeavor-list li::before { content:'→'; position:absolute; left:0; color:var(--accent); font-size:13px; top:2px; }

/* ── BEYOND THE LAB (Personal Interests + Currently widget + Snapshots) ── */
.beyond-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; align-items:start; }
.beyond-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:1.5rem; }
.beyond-card h3 { font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent); margin-bottom:1rem; }
.beyond-card p { font-size:13.5px; color:var(--muted); line-height:1.85; margin-bottom:1rem; }
.beyond-card p:last-child { margin-bottom:0; }
.interest-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:0.5rem; }
.i-tag { font-size:10px; padding:4px 10px; border-radius:100px; border:1px solid var(--border2); color:var(--muted); background:var(--surface2); letter-spacing:0.04em; }
.places-block { margin-top:1.1rem; padding-top:1.1rem; border-top:1px dashed var(--border); }
.places-label { font-size:9.5px; color:var(--muted); letter-spacing:0.14em; text-transform:uppercase; margin-bottom:0.65rem; display:flex; align-items:center; gap:6px; }
.places-label::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--accent2); }
.places-tags { display:flex; flex-wrap:wrap; gap:5px; }
.place-tag { font-size:10px; padding:4px 10px; border-radius:100px; border:1px solid rgba(79,240,225,0.22); color:var(--accent2); background:rgba(79,240,225,0.05); letter-spacing:0.02em; }
.now-row { display:flex; gap:1rem; padding:0.65rem 0; border-bottom:1px solid var(--border); align-items:baseline; }
.now-row:last-child { border-bottom:none; padding-bottom:0; }
.now-row:first-child { padding-top:0; }
.now-label { font-size:9.5px; color:var(--accent); letter-spacing:0.14em; text-transform:uppercase; min-width:78px; flex-shrink:0; }
.now-val { font-size:13.5px; color:var(--text); line-height:1.65; }
.now-val .now-sub { color:var(--muted); font-size:12.5px; }
.beyond-quirk { margin-top:2.25rem; padding:0.5rem 0; font-size:13px; color:var(--muted); font-style:italic; line-height:1.8; text-align:center; }
.beyond-quirk strong { color:var(--text); font-style:normal; font-weight:500; }

/* Photography gallery */
.lens-block { margin-top:2.5rem; }
.lens-label { font-size:10px; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent); margin-bottom:1rem; display:flex; align-items:center; gap:8px; }
.lens-label::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--accent); }
.lens-label::after { content:''; flex:1; height:1px; background:var(--border); margin-left:4px; }
.lens-grid { display:flex; flex-wrap:wrap; gap:0.6rem; }
.lens-grid::after { content:''; flex-grow:10; }
.lens-photo { flex-grow:1; flex-basis:auto; border-radius:var(--radius-sm); overflow:hidden; border:1px solid var(--border); background:var(--surface2); display:block; }
.lens-photo img { height:230px; min-width:100%; object-fit:cover; display:block; vertical-align:bottom; transition:transform 0.5s ease, filter 0.3s ease; }
.lens-photo:hover img { transform:scale(1.04); filter:brightness(1.06) saturate(1.05); }

/* ── PROJECTS ── */
.projects-list { display:flex; flex-direction:column; gap:1px; }
.proj-item { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:1.5rem 1.75rem; display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:start; transition:border-color 0.2s, transform 0.2s; cursor:default; }
.proj-item:hover { border-color:var(--border2); transform:translateX(4px); }
.proj-item.featured { border-left:2px solid var(--accent); }
.proj-left { display:flex; flex-direction:column; gap:0.6rem; }
.proj-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.proj-badge { font-size:9px; padding:2px 10px; border-radius:100px; letter-spacing:0.1em; text-transform:uppercase; flex-shrink:0; }
.proj-badge.ml   { background:rgba(125,255,179,0.1); color:var(--accent);  border:1px solid rgba(125,255,179,0.2); }
.proj-badge.llm  { background:rgba(79,240,225,0.1);  color:var(--accent2); border:1px solid rgba(79,240,225,0.2); }
.proj-badge.chem { background:rgba(245,158,11,0.1);  color:var(--warn);   border:1px solid rgba(245,158,11,0.2); }
.proj-badge.eng  { background:rgba(148,163,184,0.1); color:#94a3b8;       border:1px solid rgba(148,163,184,0.2); }
.proj-date-inline { font-size:10px; color:var(--muted2); }
.proj-title { font-family:'Poppins',sans-serif; font-size:clamp(1rem,2.5vw,1.2rem); color:var(--text); line-height:1.3; font-weight:600; }
.proj-desc { font-size:13.5px; color:var(--muted); line-height:1.8; }
.proj-highlights { list-style:none; margin-top:0.5rem; display:flex; flex-direction:column; gap:4px; }
.proj-highlights li { font-size:13.5px; color:var(--text); padding-left:1.2rem; position:relative; line-height:1.75; }
.proj-highlights li::before { content:'•'; position:absolute; left:0; color:var(--accent); font-size:15px; top:2px; }
.proj-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:0.5rem; }
.proj-tag { font-size:9.5px; padding:2px 9px; border-radius:4px; border:1px solid var(--border); color:var(--muted2); }
.proj-links { display:flex; flex-wrap:wrap; gap:8px; margin-top:0.95rem; }
.proj-link { display:inline-flex; align-items:center; gap:6px; font-size:10px; letter-spacing:0.05em; padding:6px 13px; border-radius:6px; border:1px solid var(--border2); color:var(--text); text-decoration:none; transition:all 0.2s; }
.proj-link:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
.proj-link svg { width:13px; height:13px; }
.proj-link.soon { border-style:dashed; color:var(--muted2); cursor:default; }
.proj-link.soon::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--warn); opacity:0.7; }
.proj-link.soon:hover { border-color:var(--border2); color:var(--muted2); transform:none; }
.proj-right { text-align:right; }
.proj-result { font-family:'Poppins',sans-serif; font-size:1.6rem; color:var(--accent); line-height:1; font-weight:600; }
.proj-result-label { font-size:9px; color:var(--muted); letter-spacing:0.08em; text-transform:uppercase; }

/* ── EDUCATION ── */
.edu-list { display:flex; flex-direction:column; gap:1.25rem; }
.edu-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:1.75rem; transition:border-color 0.2s; }
.edu-card:hover { border-color:var(--border2); }
.edu-header { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; padding-bottom:1.25rem; margin-bottom:1.5rem; border-bottom:1px solid var(--border); }
.edu-meta { display:flex; align-items:center; gap:10px; margin-bottom:0.55rem; flex-wrap:wrap; }
.edu-badge { font-size:9.5px; padding:3px 10px; border-radius:100px; background:rgba(125,255,179,0.1); color:var(--accent); border:1px solid rgba(125,255,179,0.2); letter-spacing:0.12em; text-transform:uppercase; }
.edu-term { font-size:10.5px; color:var(--muted2); }
.edu-degree { font-family:'Poppins',sans-serif; font-size:clamp(1.05rem,2.5vw,1.25rem); color:var(--text); line-height:1.3; margin-bottom:0.3rem; font-weight:600; }
.edu-school { font-size:12.5px; color:var(--accent2); }
.edu-grade { text-align:right; flex-shrink:0; }
.grade-num { font-family:'Poppins',sans-serif; font-size:1.75rem; color:var(--accent); line-height:1; font-weight:600; }
.grade-label { font-size:9px; color:var(--muted); letter-spacing:0.1em; text-transform:uppercase; margin-top:4px; }
.edu-block { margin-bottom:1.4rem; }
.edu-block:last-child { margin-bottom:0; }
.edu-block-title { font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--accent); margin-bottom:0.65rem; font-weight:500; }
.edu-block-desc { font-size:13.5px; color:var(--muted); line-height:1.8; margin-bottom:0.5rem; }
.edu-block-desc strong { color:var(--text); }
.edu-points { list-style:none; display:flex; flex-direction:column; gap:5px; }
.edu-points li { font-size:13.5px; color:var(--text); padding-left:1.2rem; position:relative; line-height:1.75; }
.edu-points li::before { content:'•'; position:absolute; left:0; color:var(--accent); font-size:15px; top:2px; }
.course-tags { display:flex; flex-wrap:wrap; gap:5px; }
.ctag { font-size:10px; padding:3px 9px; border-radius:4px; border:1px solid var(--border); color:var(--muted); background:var(--surface2); letter-spacing:0.02em; }
.ta-row { display:flex; align-items:flex-start; gap:0.85rem; padding:0.7rem 0; border-bottom:1px solid var(--border); }
.ta-row:last-child { border-bottom:none; padding-bottom:0; }
.ta-row:first-child { padding-top:0; }
.ta-code { font-size:9.5px; padding:4px 10px; border-radius:100px; background:rgba(79,240,225,0.1); color:var(--accent2); border:1px solid rgba(79,240,225,0.2); letter-spacing:0.1em; text-transform:uppercase; min-width:64px; text-align:center; flex-shrink:0; font-weight:500; }
.ta-info { flex:1; min-width:0; }
.ta-course { font-size:13.5px; color:var(--text); margin-bottom:3px; line-height:1.5; font-weight:500; }
.ta-meta { font-size:12.5px; color:var(--muted); line-height:1.65; }

/* ── EXPERIENCE TIMELINE ── */
.exp-table { width:100%; border-collapse:collapse; }
.exp-table tr { border-bottom:1px solid var(--border); transition:background 0.15s; }
.exp-table tr:hover { background:var(--hover-tint); }
.exp-table tr:last-child { border-bottom:none; }
.exp-table td { padding:1.25rem 0; vertical-align:top; }
.exp-table td:first-child { width:clamp(130px,22vw,200px); font-size:11px; color:var(--muted); padding-right:2rem; white-space:nowrap; padding-top:1.35rem; }
.exp-role { font-size:14.5px; color:var(--text); font-weight:500; margin-bottom:3px; }
.exp-org { font-size:13px; color:var(--accent2); margin-bottom:0.6rem; }
.exp-points { list-style:none; display:flex; flex-direction:column; gap:4px; }
.exp-points li { font-size:13.5px; color:var(--text); padding-left:1.2rem; position:relative; line-height:1.75; }
.exp-points li::before { content:'•'; position:absolute; left:0; color:var(--accent); font-size:15px; top:2px; }
.exp-dot { display:inline-block; width:7px; height:7px; border-radius:50%; border:1.5px solid var(--accent); background:var(--bg); margin-right:6px; vertical-align:middle; flex-shrink:0; }
.exp-dot.dim { border-color:var(--muted2); }

/* ── SKILLS — tech arsenal style ── */
.skills-wrap { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.skill-group-title { font-size:11px; color:var(--accent); letter-spacing:0.12em; text-transform:uppercase; margin-bottom:1rem; padding-bottom:0.5rem; border-bottom:1px solid var(--border); }
.skill-row { display:flex; gap:0.75rem; margin-bottom:0.65rem; align-items:baseline; }
.skill-key { font-size:13px; color:var(--text); min-width:110px; flex-shrink:0; font-weight:500; }
.skill-val { font-size:13px; color:var(--muted); line-height:1.7; }

/* ── PUBLICATIONS ── */
.pub-list { display:flex; flex-direction:column; gap:1rem; }
.pub-card { display:flex; gap:1.5rem; padding:1.25rem 1.5rem; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); transition:border-color 0.2s, transform 0.2s; text-decoration:none; align-items:flex-start; }
.pub-card:hover { border-color:var(--accent); transform:translateX(4px); }
.pub-card::after { content:'↗'; align-self:center; margin-left:auto; flex-shrink:0; color:var(--muted2); font-size:18px; transition:color 0.2s, transform 0.2s; }
.pub-card:hover::after { color:var(--accent); transform:translate(2px,-2px); }
.pub-num { font-family:'Poppins',sans-serif; font-size:2rem; color:var(--border2); line-height:1; flex-shrink:0; min-width:2ch; font-weight:600; }
.pub-body { flex:1; min-width:0; }
.pub-title { font-size:14px; color:var(--text); line-height:1.55; margin-bottom:0.4rem; font-weight:500; }
.pub-venue { font-size:12.5px; color:var(--muted); line-height:1.6; margin-bottom:0.5rem; }
.pub-type { display:inline-flex; align-items:center; font-size:9px; padding:2px 10px; border-radius:100px; letter-spacing:0.08em; text-transform:uppercase; }
.pub-type.paper  { background:rgba(79,240,225,0.08);  color:var(--accent2); border:1px solid rgba(79,240,225,0.2); }
.pub-type.patent { background:rgba(245,158,11,0.08);  color:var(--warn);   border:1px solid rgba(245,158,11,0.2); }

/* ── CERTIFICATIONS ── */
.cert-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:0.85rem; }
.cert-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:0.9rem 1.1rem; display:flex; flex-direction:column; gap:4px; transition:border-color 0.2s, transform 0.2s; text-decoration:none; position:relative; }
.cert-card:hover { border-color:var(--border2); }
a.cert-card:hover { border-color:var(--accent); transform:translateY(-2px); }
a.cert-card::after { content:'↗'; position:absolute; top:8px; right:10px; font-size:12px; color:var(--muted2); opacity:0; transition:opacity 0.2s, color 0.2s; }
a.cert-card:hover::after { opacity:1; color:var(--accent); }
.cert-issuer { font-size:9px; color:var(--muted); letter-spacing:0.1em; text-transform:uppercase; }
.cert-name { font-size:12.5px; color:var(--text); line-height:1.55; }
.cert-card.ongoing { border-style:dashed; }
.cert-status { margin-top:5px; font-size:8.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--warn); display:inline-flex; align-items:center; gap:5px; }
.cert-status::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--warn); }

/* ── CONTACT ── */
.contact-layout { display:block; }
.contact-note { font-size:13px; color:var(--muted); line-height:1.9; margin-bottom:2rem; max-width:760px; }
.contact-note strong { color:var(--text); }
.contact-links { display:flex; flex-direction:column; gap:0.75rem; }
.contact-links-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0.75rem; }
.contact-row { display:flex; align-items:center; gap:12px; padding:1rem 1.25rem; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); text-decoration:none; transition:border-color 0.2s,transform 0.2s; }
.contact-row:hover { border-color:rgba(125,255,179,0.3); transform:translateX(4px); }
.contact-icon { width:34px; height:34px; border-radius:7px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-icon.gh  { background:rgba(255,255,255,0.05); }
.contact-icon.li  { background:rgba(10,102,194,0.12); }
.contact-icon.em  { background:rgba(125,255,179,0.08); }
.contact-icon.ph  { background:rgba(79,240,225,0.08); }
.contact-icon.fcc { background:rgba(245,158,11,0.10); }
.contact-text-label { font-size:9.5px; color:var(--muted); letter-spacing:0.1em; text-transform:uppercase; }
.contact-text-val   { font-size:13.5px; color:var(--text); font-weight:500; }

/* ── FOOTER ── */
.footer-wrap { position:relative; z-index:1; border-top:1px solid var(--border); }
footer { max-width:var(--max); margin:0 auto; padding:1.75rem clamp(1.25rem,5vw,2.5rem); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; font-size:11px; color:var(--muted); }
footer a { color:var(--muted); text-decoration:none; }
footer a:hover { color:var(--accent); }
.footer-links { display:flex; gap:1.5rem; }

/* ── ANIMATIONS ── */
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:0.4;transform:scale(0.8);} }
@keyframes fadeUp { from{opacity:0;transform:translateY(22px);} to{opacity:1;transform:translateY(0);} }
.fu { opacity:0; animation:fadeUp 0.65s ease forwards; }
.d1{animation-delay:0.05s;} .d2{animation-delay:0.15s;} .d3{animation-delay:0.25s;} .d4{animation-delay:0.35s;} .d5{animation-delay:0.45s;}

/* scroll reveal */
.reveal { opacity:0; transform:translateY(18px); transition:opacity 0.55s ease,transform 0.55s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── THEME TOGGLE ── */
.theme-toggle {
  background:transparent; border:1px solid var(--border2); border-radius:7px;
  width:34px; height:34px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  color:var(--muted); transition:all 0.2s; padding:0; margin-left:clamp(10px,2vw,18px);
}
.theme-toggle:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-1px); }
.theme-toggle svg { width:16px; height:16px; }
.theme-toggle .icon-sun { display:none; }
.theme-toggle .icon-moon { display:block; }
[data-theme="light"] .theme-toggle .icon-sun { display:block; }
[data-theme="light"] .theme-toggle .icon-moon { display:none; }

/* ── RESPONSIVE ── */
@media(max-width:680px){
  .about-grid { grid-template-columns:1fr; gap:2rem; }
  .about-photo-wrap { order:-1; }
  .endeavors-grid { grid-template-columns:1fr; }
  .skills-wrap { grid-template-columns:1fr; }
  .contact-links-grid { grid-template-columns:1fr; }
  .beyond-grid { grid-template-columns:1fr; }
  .edu-header { flex-direction:column; }
  .edu-grade { text-align:left; }
  .ta-row { flex-direction:column; align-items:flex-start; gap:0.4rem; }
  .nav-links { display:none; }
  .nav-ham { display:flex; margin-left:16px; }
  .theme-toggle { margin-left:auto; }
  .proj-item { grid-template-columns:1fr; }
  .proj-right { text-align:left; }
  .pub-card { flex-direction:column; gap:0.5rem; }
  footer { flex-direction:column; align-items:flex-start; }
}
@media(max-width:420px){
  .exp-table td:first-child { display:none; }
}
