/* ─── TOKENS ─── */
:root,[data-theme="light"]{
  --bg:#faf9f7;--surface:#ffffff;--surface-2:#f3f0ec;--surface-3:#ede9e3;
  --border:rgba(0,0,0,.1);--divider:rgba(0,0,0,.07);
  --text:#1a1614;--muted:#6b6460;--faint:#b0aaa5;--inverse:#faf9f7;
  --accent:#A855F7;--accent-2:#D8B4FE;--accent-soft:rgba(168,85,247,.08);
  --accent-hover:#9333EA;
  --shadow-sm:0 1px 3px rgba(0,0,0,.08);
  --shadow-md:0 4px 16px rgba(0,0,0,.1);
  --shadow-lg:0 12px 40px rgba(0,0,0,.14);
  --radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.875rem;--radius-xl:1.25rem;--radius-full:9999px;
  --font-d:'Cabinet Grotesk','Helvetica Neue',sans-serif;
  --font-b:'Satoshi','Helvetica Neue',sans-serif;
  --t-xs:clamp(.75rem,.7rem + .25vw,.875rem);
  --t-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --t-base:clamp(1rem,.95rem + .25vw,1.125rem);
  --t-lg:clamp(1.125rem,1rem + .75vw,1.5rem);
  --t-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --t-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --t-hero:clamp(3rem,.5rem + 7vw,7rem);
  --tr:220ms cubic-bezier(.16,1,.3,1);
}
[data-theme="dark"]{
  --bg:#0d0b0f;--surface:#131118;--surface-2:#19171e;--surface-3:#201d27;
  --border:rgba(255,255,255,.1);--divider:rgba(255,255,255,.07);
  --text:#f3e8ff;--muted:#a99caf;--faint:#514557;--inverse:#0d0b0f;
  --accent:#c026d3;--accent-2:#e879f9;--accent-soft:rgba(192,38,211,.1);
  --accent-hover:#d946ef;
  --shadow-sm:0 1px 3px rgba(0,0,0,.3);
  --shadow-md:0 4px 16px rgba(0,0,0,.4);
  --shadow-lg:0 12px 40px rgba(0,0,0,.6);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-font-smoothing:antialiased}
body{font-family:var(--font-b);font-size:var(--t-base);color:var(--text);background:var(--bg);
  line-height:1.65;transition:background .3s,color .3s;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none;transition:color var(--tr),opacity var(--tr),background var(--tr)}
button,input,textarea,select{font:inherit;color:inherit}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ─── LAYOUT ─── */
.wrap{max-width:1160px;margin-inline:auto;padding-inline:clamp(1rem,5vw,2.5rem)}
.section-pad{padding-block:clamp(3rem,8vw,6rem)}

/* ─── NAV ─── */
#navbar{position:fixed;top:0;left:0;right:0;z-index:100;padding:var(--t-sm) 0;
  background:transparent;transition:background .35s,box-shadow .35s,backdrop-filter .35s}
#navbar.scrolled{
  background:color-mix(in oklab,var(--surface) 92%,transparent);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:var(--shadow-sm);border-bottom:1px solid var(--divider)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.nav-logo{display:flex;align-items:center;gap:.5rem;font-family:var(--font-d);font-weight:900;
  font-size:1.05rem;letter-spacing:-.03em}
.nav-logo svg{flex-shrink:0}
.nav-links{display:flex;align-items:center;gap:.25rem;list-style:none}
.nav-links a{font-size:var(--t-sm);font-weight:500;color:var(--muted);
  padding:.4rem .75rem;border-radius:var(--radius-full);position:relative}
.nav-links a::after{content:'';position:absolute;bottom:4px;left:50%;
  transform:translateX(-50%) scaleX(0);width:16px;height:2px;
  background:var(--accent);border-radius:2px;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}
.nav-links a:hover{color:var(--text)}
.nav-links a:hover::after,.nav-links a.active::after{transform:translateX(-50%) scaleX(1)}
.nav-links a.active{color:var(--text)}
.nav-actions{display:flex;align-items:center;gap:.5rem}
.btn-theme{width:38px;height:38px;border-radius:var(--radius-full);border:1px solid var(--border);
  background:var(--surface);color:var(--muted);display:grid;place-items:center;cursor:pointer;font-size:15px}
.btn-theme:hover{color:var(--text);background:var(--surface-2)}
.btn-hire{font-size:12px;font-weight:400;padding:.45rem 1.1rem;border-radius:var(--radius-full);
  background:var(--accent);color:#fff;border:none;cursor:pointer}
.btn-hire:hover{background:var(--accent-hover);color:#fff;transform:translateY(-2px)}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;
  width:38px;height:38px;background:none;border:1px solid var(--border);
  border-radius:var(--radius-md);padding:.5rem;cursor:pointer}
.hamburger span{display:block;height:2px;background:var(--text);border-radius:2px;
  transition:transform .3s,opacity .3s}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translateY(7px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translateY(-7px)}
.mobile-menu{display:none;position:fixed;top:68px;left:0;right:0;
  background:var(--surface);border-bottom:1px solid var(--divider);
  padding:1rem;z-index:99;flex-direction:column;gap:.25rem}
.mobile-menu.open{display:flex}
.mobile-menu a{font-size:var(--t-base);font-weight:500;color:var(--muted);
  padding:.75rem 1rem;border-radius:var(--radius-md)}
.mobile-menu a:hover{background:var(--surface-2);color:var(--text)}
@media(max-width:767px){.nav-links,.btn-hire{display:none}.hamburger{display:flex}}

/* ─── HERO ─── */
#hero{min-height:100dvh;display:flex;align-items:center;position:relative;
  overflow:hidden;background:var(--bg);padding-top:80px}
#particles-js{position:absolute;inset:0;pointer-events:none;z-index:0}
.hero-content{position:relative;z-index:1}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.5rem;
  font-size:var(--t-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);margin-bottom:1.5rem}
.hero-eyebrow::before{content:'';width:20px;height:2px;background:var(--accent);border-radius:2px}
.hero-name{font-size:var(--t-hero);font-family:var(--font-d);font-weight:900;
  letter-spacing:-.035em;line-height:.95;color:var(--text);margin-bottom:1rem}
.hero-name .hl{color:var(--accent)}
.typed-wrap{font-family:var(--font-d);font-size:var(--t-xl);font-weight:700;
  color:var(--muted);min-height:2.5rem;margin-bottom:2rem}
.typed-wrap .typed-cursor{color:var(--accent)}
.hero-desc{max-width:54ch;font-size:var(--t-base);color:var(--muted);
  line-height:1.8;margin-bottom:2.5rem}
.cta-row{display:flex;align-items:center;flex-wrap:wrap;gap:1rem}
.btn-primary{display:inline-flex;align-items:center;gap:.5rem;
  background:var(--text);color:var(--bg);padding:.75rem 1.5rem;
  border-radius:var(--radius-full);font-weight:700;font-size:var(--t-sm);
  border:2px solid var(--text);cursor:pointer;letter-spacing:.01em}
.btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;
  transform:translateY(-2px);box-shadow:0 8px 24px rgba(168,85,247,.3)}
.btn-outline{display:inline-flex;align-items:center;gap:.5rem;
  background:transparent;color:var(--text);padding:.75rem 1.5rem;
  border-radius:var(--radius-full);font-weight:600;font-size:var(--t-sm);
  border:2px solid var(--border);cursor:pointer}
.btn-outline:hover{border-color:var(--text);transform:translateY(-2px)}
.hero-stats{display:flex;gap:2.5rem;margin-top:3rem;flex-wrap:wrap}
.stat-num{font-family:var(--font-d);font-size:var(--t-2xl);font-weight:900;
  color:var(--text);letter-spacing:-.02em;line-height:1}
.stat-label{font-size:var(--t-xs);color:var(--muted);font-weight:500;margin-top:.25rem}
.hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  color:var(--faint);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase}
.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,transparent,var(--faint));
  animation:scrollPulse 2s ease-in-out infinite}
@keyframes scrollPulse{0%,100%{opacity:.4}50%{opacity:1}}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.hero-visual{position:relative;display:flex;justify-content:center}
.avatar-wrap{position:relative;width:360px;height:360px;max-width:100%}
.avatar-bg{position:absolute;inset:0;border-radius:40% 60% 55% 45%/45% 55% 45% 55%;
  background:linear-gradient(135deg,var(--accent-soft) 0%,var(--surface-3) 100%);
  animation:morphBlob 8s ease-in-out infinite}
@keyframes morphBlob{0%,100%{border-radius:40% 60% 55% 45%/45% 55% 45% 55%}
  33%{border-radius:55% 45% 40% 60%/55% 40% 60% 45%}
  66%{border-radius:45% 55% 60% 40%/40% 60% 55% 45%}}
.avatar-img{position:absolute;inset:16px;overflow:hidden;
  border-radius:40% 60% 55% 45%/45% 55% 45% 55%;animation:morphBlob 8s ease-in-out infinite}
.avatar-img img{width:100%;height:100%;object-fit:cover;object-position:top}
.float-badge{position:absolute;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:.75rem 1rem;box-shadow:var(--shadow-md);
  display:flex;align-items:center;gap:.5rem;font-size:var(--t-xs);font-weight:700;
  white-space:nowrap;animation:floatBadge 3s ease-in-out infinite}
.float-badge.b1{top:5%;right:-5%;animation-delay:0s}
.float-badge.b2{bottom:12%;left:-5%;animation-delay:1.5s}
@keyframes floatBadge{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.bdot{width:8px;height:8px;border-radius:50%;background:#22c55e;flex-shrink:0}
.bdot.purple{background:var(--accent)}
@media(max-width:991px){.hero-grid{grid-template-columns:1fr}.hero-visual{display:none}}

/* ─── SECTION TITLES ─── */
.sec-tag{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--t-xs);
  font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}
.sec-tag::before{content:'';width:16px;height:2px;background:var(--accent);border-radius:2px}
.sec-title{font-size:var(--t-2xl);font-family:var(--font-d);font-weight:900;
  letter-spacing:-.025em;color:var(--text)}
.sec-hdr{margin-bottom:3rem}

/* ─── ABOUT ─── */
#about{background:var(--surface)}
.about-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:4rem;align-items:start}
.about-photo{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;
  border-radius:var(--radius-xl)}
.about-photo-wrap{position:relative}
.photo-caption{position:absolute;bottom:1rem;left:1rem;right:1rem;
  background:color-mix(in oklab,var(--text) 85%,transparent);color:var(--inverse);
  border-radius:var(--radius-md);padding:1rem;backdrop-filter:blur(8px)}
.photo-caption strong{display:block;font-family:var(--font-d);font-size:var(--t-lg);font-weight:800;margin-bottom:.25rem}
.photo-caption span{font-size:var(--t-sm);opacity:.75}
.about-text{display:flex;flex-direction:column;gap:1.5rem}
.about-text p{color:var(--muted);line-height:1.8}
.about-text strong{color:var(--text);font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.chip{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--t-xs);font-weight:600;
  padding:.25rem .75rem;border-radius:var(--radius-full);background:var(--surface-2);
  color:var(--text);border:1px solid var(--border)}
.ielts-badge{display:inline-flex;align-items:center;gap:.75rem;
  background:linear-gradient(135deg,var(--accent-soft),var(--surface-3));
  border:1px solid var(--accent);border-radius:var(--radius-lg);
  padding:1rem 1.25rem;margin-top:.5rem}
.ielts-num{font-family:var(--font-d);font-size:var(--t-xl);font-weight:900;color:var(--accent)}
.ielts-info strong{display:block;font-size:var(--t-sm);font-weight:700;color:var(--text)}
.ielts-info span{font-size:var(--t-xs);color:var(--muted)}
@media(max-width:767px){.about-grid{grid-template-columns:1fr}.about-photo{max-height:280px}}

/* ─── SKILLS ─── */
#skills{background:var(--bg)}
.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:1rem}
.skill-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);
  padding:1.5rem;transition:box-shadow var(--tr),transform var(--tr),border-color var(--tr)}
.skill-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:var(--accent)}
.sk-icon{width:44px;height:44px;border-radius:var(--radius-md);background:var(--accent-soft);
  display:grid;place-items:center;font-size:20px;margin-bottom:1rem}
.sk-title{font-family:var(--font-d);font-size:var(--t-lg);font-weight:800;
  color:var(--text);margin-bottom:.5rem}
.sk-desc{font-size:var(--t-sm);color:var(--muted);margin-bottom:1rem}
.sk-tags{display:flex;flex-wrap:wrap;gap:.25rem}
.tag{font-size:var(--t-xs);font-weight:600;padding:2px .625rem;border-radius:var(--radius-full);
  background:var(--surface-2);color:var(--muted);border:1px solid var(--divider)}
.bar-group{margin-top:1.25rem;display:flex;flex-direction:column;gap:1rem}
.bar-label{display:flex;justify-content:space-between;font-size:var(--t-sm);font-weight:600;margin-bottom:.4rem;color:var(--text)}
.bar-track{height:5px;background:var(--surface-3);border-radius:var(--radius-full);overflow:hidden}
.bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));
  border-radius:var(--radius-full);width:0;transition:width 1.2s cubic-bezier(.16,1,.3,1)}

/* ─── EXPERIENCE TIMELINE ─── */
#experience{background:var(--surface)}
.timeline{position:relative;padding-left:2.5rem}
.timeline::before{content:'';position:absolute;top:0;bottom:0;left:0;
  width:2px;background:linear-gradient(to bottom,var(--accent),transparent)}
.tl-item{position:relative;padding-bottom:2.5rem}
.tl-item:last-child{padding-bottom:0}
.tl-dot{position:absolute;left:calc(-2.5rem - 5px);top:4px;width:12px;height:12px;
  border-radius:50%;background:var(--accent);border:3px solid var(--surface);
  box-shadow:0 0 0 2px var(--accent)}
.tl-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}
.tl-date{font-size:var(--t-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.tl-badge{font-size:var(--t-xs);font-weight:600;padding:2px .75rem;
  background:var(--surface-2);border-radius:var(--radius-full);color:var(--muted)}
.tl-role{font-family:var(--font-d);font-size:var(--t-lg);font-weight:800;color:var(--text);margin-bottom:.25rem}
.tl-company{font-size:var(--t-sm);color:var(--muted);font-weight:600;margin-bottom:.75rem}
.tl-company a{color:var(--accent)}
.tl-desc{font-size:var(--t-sm);color:var(--muted);line-height:1.75}
.tl-desc ul{padding-left:1.25rem;list-style:disc;display:grid;gap:.35rem;margin-top:.5rem}
.tl-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.75rem}

/* ─── EDUCATION ─── */
#education{background:var(--bg)}
.edu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:1rem}
.edu-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);
  padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;
  transition:box-shadow var(--tr),border-color var(--tr)}
.edu-card:hover{box-shadow:var(--shadow-md);border-color:var(--accent)}
.edu-period{font-size:var(--t-xs);font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--accent)}
.edu-degree{font-family:var(--font-d);font-size:var(--t-lg);font-weight:800;
  color:var(--text);line-height:1.15}
.edu-institute{font-size:var(--t-sm);color:var(--muted);font-weight:600}
.edu-desc{font-size:var(--t-sm);color:var(--muted);line-height:1.65}
.edu-grade{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--t-xs);
  font-weight:700;color:var(--accent);background:var(--accent-soft);
  padding:.25rem .75rem;border-radius:var(--radius-full);margin-top:.25rem}

/* ─── PROJECTS ─── */
#projects{background:var(--surface)}
.proj-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}
.proj-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xl);
  overflow:hidden;display:flex;flex-direction:column;
  transition:box-shadow var(--tr),transform var(--tr)}
.proj-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-5px)}
.proj-card.feat{grid-column:span 7}
.proj-card.sml{grid-column:span 5}
@media(max-width:991px){.proj-card.feat,.proj-card.sml{grid-column:span 12}}
.proj-thumb{aspect-ratio:16/9;overflow:hidden;background:var(--surface-2);position:relative}
.proj-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.proj-card:hover .proj-thumb img{transform:scale(1.05)}
.proj-icon-thumb{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--accent-soft) 0%,var(--surface-3) 100%);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.proj-icon-thumb::before{content:'';position:absolute;inset:-40%;
  background:repeating-linear-gradient(115deg,transparent 0 42px,var(--border) 42px 43px);opacity:.5}
.proj-icon-thumb .pi-glyph{font-size:3.25rem;position:relative;z-index:1;filter:drop-shadow(0 4px 10px rgba(0,0,0,.12))}
.proj-card:hover .proj-icon-thumb{transform:scale(1.04)}
.proj-body{padding:1.5rem;flex:1;display:flex;flex-direction:column;gap:.75rem}
.proj-label{font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.proj-title{font-family:var(--font-d);font-size:var(--t-lg);font-weight:800;color:var(--text);line-height:1.2}
.proj-desc{font-size:var(--t-sm);color:var(--muted);line-height:1.7}
.proj-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-top:auto}
.proj-link{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--t-xs);
  font-weight:700;color:var(--accent);padding:.4rem .75rem;
  border-radius:var(--radius-full);border:1px solid var(--accent)}
.proj-link:hover{background:var(--accent);color:#fff}

/* ─── VOLUNTEERING ─── */
#volunteer{background:var(--bg)}
.vol-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);
  padding:2rem;display:grid;grid-template-columns:80px 1fr;gap:2rem;align-items:start;
  transition:box-shadow var(--tr)}
.vol-card:hover{box-shadow:var(--shadow-md)}
.vol-icon{width:80px;height:80px;border-radius:var(--radius-lg);background:var(--accent-soft);
  display:grid;place-items:center;font-size:2.5rem;flex-shrink:0}
.vol-title{font-family:var(--font-d);font-size:var(--t-lg);font-weight:800;color:var(--text);margin-bottom:.25rem}
.vol-org{font-size:var(--t-sm);color:var(--accent);font-weight:600;margin-bottom:.75rem}
.vol-desc{font-size:var(--t-sm);color:var(--muted);line-height:1.75}
@media(max-width:600px){.vol-card{grid-template-columns:1fr}}

/* ─── CONTACT ─── */
#contact{background:var(--surface)}
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:4rem;align-items:start}
@media(max-width:767px){.contact-grid{grid-template-columns:1fr}}
.c-info{display:flex;flex-direction:column;gap:1.5rem}
.c-item{display:flex;align-items:flex-start;gap:1rem}
.c-icon{width:44px;height:44px;flex-shrink:0;background:var(--surface-2);
  border-radius:var(--radius-md);display:grid;place-items:center;font-size:18px}
.c-text strong{display:block;font-weight:700;font-size:var(--t-sm);margin-bottom:.2rem}
.c-text span{font-size:var(--t-sm);color:var(--muted)}
.c-text a{color:var(--accent)}
.social-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}
.social-btn{width:42px;height:42px;border-radius:var(--radius-md);background:var(--surface);
  border:1px solid var(--border);display:grid;place-items:center;font-size:18px;
  color:var(--muted);transition:all var(--tr)}
.social-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-3px)}
.contact-form{display:flex;flex-direction:column;gap:1rem}
.fg{display:flex;flex-direction:column;gap:.5rem}
.fg label{font-size:var(--t-sm);font-weight:600;color:var(--text)}
.fg input,.fg textarea{padding:.75rem 1rem;border-radius:var(--radius-md);
  border:1.5px solid var(--border);background:var(--surface-2);
  font-size:var(--t-sm);resize:none;
  transition:border-color var(--tr),box-shadow var(--tr)}
.fg input:focus,.fg textarea:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft)}
.fg-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.fg-row{grid-template-columns:1fr}}
.btn-submit{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  background:var(--accent);color:#fff;padding:1rem 2rem;border-radius:var(--radius-full);
  font-weight:700;font-size:var(--t-sm);border:none;cursor:pointer;width:100%}
.btn-submit:hover{background:var(--accent-hover);transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(168,85,247,.3)}
.form-ok{display:none;padding:1rem;background:var(--surface-2);border-radius:var(--radius-md);
  text-align:center;color:#22c55e;font-weight:600;font-size:var(--t-sm)}
.form-err{display:none;padding:1rem;background:var(--surface-2);border-radius:var(--radius-md);
  text-align:center;color:#ef4444;font-weight:600;font-size:var(--t-sm)}

/* ─── FOOTER ─── */
footer{background:var(--text);color:var(--bg);padding:2.5rem 0}
.foot-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.foot-copy{font-size:var(--t-sm);opacity:.6}
.foot-links{display:flex;gap:1.5rem}
.foot-links a{font-size:var(--t-sm);opacity:.6;transition:opacity var(--tr)}
.foot-links a:hover{opacity:1;color:inherit}

/* ─── CURSOR GLOW ─── */
.cursor-glow{position:fixed;width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(168,85,247,.07) 0%,transparent 70%);
  pointer-events:none;z-index:0;transform:translate(-50%,-50%);transition:transform .1s linear}

/* ─── LOADER ─── */
.loader{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:var(--t-sm)}
.spin{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);
  border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}

/* ─── RESUME PAGE ─── */
.resume-hero{padding-top:calc(80px + clamp(2rem,6vw,4rem));padding-bottom:2rem;background:var(--bg)}
.resume-hero .sec-tag{margin-bottom:1rem}
.resume-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}
.resume-viewer-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);
  overflow:hidden;box-shadow:var(--shadow-md);max-width:900px;margin-inline:auto}
.resume-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.85rem 1.25rem;border-bottom:1px solid var(--divider);background:var(--surface-2)}
.resume-viewer-bar span{font-size:var(--t-sm);font-weight:600;color:var(--muted)}
.resume-viewer-bar .dots{display:flex;gap:6px}
.resume-viewer-bar .dots i{width:9px;height:9px;border-radius:50%;background:var(--faint);display:block}
.resume-frame{width:100%;height:min(80vh,1000px);border:none;display:block;background:var(--surface-3)}
.resume-fallback{padding:3rem 1.5rem;text-align:center;color:var(--muted)}
@media(max-width:600px){.resume-frame{height:70vh}}

/* ─── ICONS ─── */
.icon{display:inline-block;vertical-align:-3px;flex-shrink:0}
.sk-icon svg,.proj-icon-thumb svg,.vol-icon svg,.c-icon svg{width:22px;height:22px}
.chip svg{width:13px;height:13px;vertical-align:-2px;margin-right:1px}
.btn-theme svg{width:16px;height:16px}
.sk-icon{color:var(--accent)}
.proj-icon-thumb svg{width:40px;height:40px;color:var(--accent)}
.vol-icon svg{width:24px;height:24px}
.c-icon svg{color:var(--accent)}
.form-ok svg{width:16px;height:16px;vertical-align:-3px;margin-right:.35rem}

/* ─── FX / QUOTE WIDGETS ─── */
.fx-card,.quote-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:1rem 1.25rem}
.fx-row{display:flex;align-items:center;justify-content:space-between;padding:.4rem 0;
  border-bottom:1px dashed var(--divider);font-size:var(--t-sm)}
.fx-row:last-of-type{border-bottom:none}
.fx-pair{color:var(--muted);font-weight:600}
.fx-val{font-family:var(--font-d);font-weight:800;color:var(--text)}
.fx-updated{font-size:var(--t-xs);color:var(--faint);margin-top:.5rem;text-align:right}
.quote-card{position:relative}
.quote-text{font-family:var(--font-d);font-size:var(--t-sm);font-weight:600;color:var(--text);
  line-height:1.6;font-style:italic}
.quote-author{display:block;margin-top:.5rem;font-size:var(--t-xs);color:var(--accent);font-weight:700;font-style:normal}

/* ─── TEASER GRID (Home) ─── */
.teaser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:1.25rem}
.teaser-card{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;
  background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xl);
  padding:1.75rem;transition:box-shadow var(--tr),transform var(--tr),border-color var(--tr)}
.teaser-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:var(--accent)}
.teaser-icon{width:46px;height:46px;border-radius:var(--radius-md);background:var(--accent-soft);
  color:var(--accent);display:grid;place-items:center}
.teaser-title{font-family:var(--font-d);font-size:var(--t-lg);font-weight:800;color:var(--text)}
.teaser-desc{font-size:var(--t-sm);color:var(--muted);line-height:1.6}
.teaser-link{margin-top:auto;padding-top:.5rem;font-size:var(--t-xs);font-weight:700;color:var(--accent);
  display:inline-flex;align-items:center;gap:.25rem}
.teaser-link svg{width:14px;height:14px}

/* ─── PAGE HERO (inner pages) ─── */
.page-hero{padding-top:calc(80px + clamp(2rem,6vw,3.5rem));padding-bottom:1rem;background:var(--bg)}
.page-hero .sec-tag{margin-bottom:1rem}
.breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:var(--t-xs);color:var(--faint);margin-bottom:1.25rem}
.breadcrumb a{color:var(--muted);font-weight:600}
.breadcrumb a:hover{color:var(--accent)}

/* ─── CALLOUT / VALUES CARDS ─── */
.value-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:1.25rem;margin-top:2rem}
.value-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem}
.value-card .v-icon{width:38px;height:38px;border-radius:var(--radius-md);background:var(--accent-soft);
  color:var(--accent);display:grid;place-items:center;margin-bottom:.9rem}
.value-card h3{font-family:var(--font-d);font-size:var(--t-base);font-weight:800;color:var(--text);margin-bottom:.4rem}
.value-card p{font-size:var(--t-sm);color:var(--muted);line-height:1.65}

/* ─── BADGE ROW ─── */
.badge-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}
.cred-badge{display:flex;align-items:center;gap:.75rem;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:.9rem 1.25rem;flex:1;min-width:220px}
.cred-badge .cb-icon{width:38px;height:38px;border-radius:50%;background:var(--accent-soft);color:var(--accent);
  display:grid;place-items:center;flex-shrink:0}
.cred-badge strong{display:block;font-size:var(--t-sm);font-weight:700;color:var(--text)}
.cred-badge span{font-size:var(--t-xs);color:var(--muted)}

/* ─── STAT STRIP ─── */
.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:2rem 0}
.stat-strip .ss-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:1.25rem;text-align:center}
.stat-strip .ss-num{font-family:var(--font-d);font-size:var(--t-xl);font-weight:900;color:var(--accent)}
.stat-strip .ss-label{font-size:var(--t-xs);color:var(--muted);margin-top:.25rem}

/* ─── FAQ ─── */
.faq-list{max-width:760px;margin-inline:auto;display:flex;flex-direction:column;gap:.75rem}
.faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.4rem;
  cursor:pointer;font-weight:700;font-size:var(--t-sm);color:var(--text)}
.faq-q svg{flex-shrink:0;transition:transform .25s}
.faq-item.open .faq-q svg{transform:rotate(90deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 1.4rem;
  font-size:var(--t-sm);color:var(--muted);line-height:1.7}
.faq-item.open .faq-a{max-height:240px;padding:0 1.4rem 1.25rem}

/* ─── vCard button ─── */
.vcard-note{font-size:var(--t-xs);color:var(--faint);margin-top:.5rem}
