/* ============================================================
   Abhilash Thomas — Personal Portfolio
   Dark Mode First · Glassmorphism · Bento Grid
   ============================================================ */

/* ── Variables ──────────────────────────────────────────────*/
:root {
    /* Dark Mode (default) */
    --bg:           #09090b;
    --bg-2:         #0d1117;
    --surface:      #18181b;
    --surface-2:    #27272a;
    --border:       rgba(255,255,255,.08);
    --border-hover: rgba(255,255,255,.16);
    --glass-bg:     rgba(255,255,255,.04);
    --glass-border: rgba(255,255,255,.08);

    --primary:      #7c3aed;
    --primary-l:    #8b5cf6;
    --primary-ll:   #a78bfa;
    --cyan:         #06b6d4;
    --cyan-l:       #22d3ee;
    --amber:        #f59e0b;
    --green:        #10b981;
    --rose:         #f43f5e;

    --text:         #fafafa;
    --text-2:       #e4e4e7;
    --text-muted:   #a1a1aa;
    --text-subtle:  #71717a;

    --font:         'Plus Jakarta Sans', system-ui, sans-serif;
    --mono:         'JetBrains Mono', 'Fira Code', monospace;

    --r-sm:   6px;
    --r:      12px;
    --r-lg:   20px;
    --r-xl:   28px;
    --r-full: 9999px;

    --shadow:    0 4px 24px rgba(0,0,0,.4);
    --shadow-lg: 0 16px 60px rgba(0,0,0,.5);
    --shadow-glow-primary: 0 0 30px rgba(124,58,237,.25);
    --shadow-glow-cyan:    0 0 30px rgba(6,182,212,.25);

    --transition: .25s cubic-bezier(.4,0,.2,1);
    --container:  1200px;
}

/* Light Mode */
[data-theme="light"] {
    --bg:           #f4f6fa;
    --bg-2:         #edf0f7;
    --surface:      #ffffff;
    --surface-2:    #e8ecf4;
    --border:       rgba(0,0,0,.11);
    --border-hover: rgba(0,0,0,.2);
    --glass-bg:     rgba(255,255,255,.82);
    --glass-border: rgba(0,0,0,.11);
    --text:         #0f0f13;
    --text-2:       #1e1e2a;
    --text-muted:   #3f3f50;
    --text-subtle:  #6b6b80;
    --shadow:       0 4px 24px rgba(0,0,0,.09);
    --shadow-lg:    0 16px 60px rgba(0,0,0,.15);
    --shadow-glow-primary: 0 0 30px rgba(124,58,237,.18);
}

/* ── Reset ──────────────────────────────────────────────────*/
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { font-family:var(--font); font-size:16px; line-height:1.7; color:var(--text); background:var(--bg); -webkit-font-smoothing:antialiased; transition:background var(--transition), color var(--transition); }
img,video { max-width:100%; height:auto; display:block; }
a { color:var(--primary-ll); text-decoration:none; transition:color var(--transition); }
a:hover { color:var(--primary-l); }
ul,ol { list-style:none; }
button { cursor:pointer; font-family:inherit; }
:focus-visible { outline:2px solid var(--primary-l); outline-offset:3px; }

/* ── Utils ──────────────────────────────────────────────────*/
.container { width:min(100%,var(--container)); margin-inline:auto; padding-inline:clamp(1rem,4vw,2.5rem); }
.section    { padding-block:clamp(4rem,8vw,7rem); }
.section--alt { background:var(--bg-2); }
.skip-link  { position:absolute; top:-999px; left:1rem; background:var(--primary); color:#fff; padding:.5rem 1rem; border-radius:var(--r); font-weight:600; z-index:9999; }
.skip-link:focus { top:1rem; }

/* Gradient text */
.gradient-text {
    background: linear-gradient(135deg, var(--primary-ll) 0%, var(--cyan-l) 50%, var(--amber) 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}

/* ── Glass Card ──────────────────────────────────────────── */
.glass-card {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-radius: var(--r-lg);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}
.glass-card:hover { border-color:var(--border-hover); }

/* ── Buttons ─────────────────────────────────────────────── */
.btn { display:inline-flex; align-items:center; gap:.5rem; padding:.7rem 1.6rem; border-radius:var(--r-full); font-size:.9375rem; font-weight:600; border:1.5px solid transparent; transition:all var(--transition); white-space:nowrap; }
.btn--lg  { padding:.875rem 2rem; font-size:1rem; }
.btn--sm  { padding:.5rem 1.125rem; font-size:.875rem; }
.btn--full{ width:100%; justify-content:center; }
.btn svg  { width:17px; height:17px; }

.btn--primary { background:var(--primary); color:#fff; border-color:var(--primary); }
.btn--primary:hover { background:var(--primary-l); border-color:var(--primary-l); color:#fff; transform:translateY(-1px); box-shadow:var(--shadow-glow-primary); }

.btn--ghost { background:transparent; color:var(--text); border-color:var(--border-hover); }
.btn--ghost:hover { border-color:var(--primary-l); color:var(--primary-ll); transform:translateY(-1px); }

.btn--outline { background:transparent; color:var(--primary-ll); border-color:var(--primary); }
.btn--outline:hover { background:var(--primary); color:#fff; transform:translateY(-1px); }

/* ── Section Typography ──────────────────────────────────── */
.eyebrow { display:inline-block; font-size:.78rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--cyan-l); margin-bottom:.875rem; }
.section-title { font-size:clamp(1.75rem,3.5vw,2.5rem); font-weight:800; line-height:1.2; color:var(--text); margin-bottom:.875rem; letter-spacing:-.02em; }
.section-subtitle { font-size:1.0625rem; color:var(--text-muted); max-width:580px; }
.section-header { text-align:center; margin-bottom:clamp(2.5rem,5vw,4rem); }
.section-header .section-subtitle { margin-inline:auto; }
.section-cta { text-align:center; margin-top:3rem; }

/* ── Navbar ──────────────────────────────────────────────── */
.navbar { position:sticky; top:0; z-index:1000; background:rgba(9,9,11,.85); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--border); transition:border-color var(--transition); }
[data-theme="light"] .navbar { background:rgba(255,255,255,.9); }
.navbar.scrolled { border-color:var(--border-hover); }
.navbar__inner { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; height:68px; }

.navbar__logo { display:flex; align-items:center; gap:.625rem; font-weight:800; font-size:1rem; color:var(--text); letter-spacing:-.01em; }
.navbar__logo-initials { width:36px; height:36px; border-radius:var(--r-sm); background:linear-gradient(135deg,var(--primary),var(--cyan)); color:#fff; font-size:.875rem; font-weight:800; display:flex; align-items:center; justify-content:center; }
.navbar__logo-name { display:none; }
@media(min-width:480px){ .navbar__logo-name { display:block; } }

.nav-links { display:flex; gap:.25rem; align-items:center; }
.nav-links a { padding:.45rem .875rem; font-size:.9rem; font-weight:500; color:var(--text-muted); border-radius:var(--r-sm); transition:color var(--transition),background var(--transition); }
.nav-links a:hover, .nav-links [aria-current="page"] { color:var(--text); background:var(--glass-bg); }

.navbar__actions { display:flex; align-items:center; gap:.75rem; }

.availability-dot { display:none; align-items:center; gap:.5rem; font-size:.8125rem; font-weight:600; color:var(--green); }
@media(min-width:800px){ .availability-dot { display:flex; } }
.dot-pulse { width:8px; height:8px; border-radius:50%; background:var(--green); animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{box-shadow:0 0 0 0 rgba(16,185,129,.4)} 50%{box-shadow:0 0 0 6px rgba(16,185,129,0)} }

.theme-toggle { width:36px; height:36px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--glass-bg); color:var(--text-muted); display:flex; align-items:center; justify-content:center; transition:all var(--transition); }
.theme-toggle:hover { border-color:var(--border-hover); color:var(--text); }
.theme-toggle svg { width:17px; height:17px; }
.icon-moon { display:none; }
[data-theme="light"] .icon-sun  { display:none; }
[data-theme="light"] .icon-moon { display:block; }

.navbar__cta { display:none; }
@media(min-width:700px){ .navbar__cta { display:inline-flex; } }

.navbar__resume { display:none; white-space:nowrap; }
@media(min-width:700px){ .navbar__resume { display:inline-flex; } }

.hamburger { display:flex; flex-direction:column; gap:5px; background:none; border:1px solid var(--border); padding:.5rem; border-radius:var(--r-sm); }
.hamburger span { display:block; width:18px; height:2px; background:var(--text-muted); border-radius:2px; transition:all var(--transition); }
.hamburger.active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger.active span:nth-child(2){ opacity:0; }
.hamburger.active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media(min-width:900px){ .hamburger { display:none; } }

/* Desktop: primary nav sits in the bar (not only inside the mobile drawer) */
@media(min-width:900px){
    .navbar__nav {
        position: static;
        inset: auto;
        width: auto;
        flex: 1 1 auto;
        display: flex;
        justify-content: center;
        align-items: center;
        transform: none;
        padding: 0;
        border: none;
        background: transparent;
        overflow: visible;
        max-width: none;
    }
}

/* Mobile Nav */
@media(max-width:899px){
    .navbar__nav { position:fixed; inset:68px 0 0 auto; width:min(300px,85vw); background:var(--bg); border-left:1px solid var(--border); padding:2rem 1.5rem; transform:translateX(100%); transition:transform var(--transition); z-index:999; overflow-y:auto; }
    .navbar__nav.open { transform:translateX(0); }
    .nav-links { flex-direction:column; align-items:stretch; gap:.375rem; }
    .nav-links a { font-size:1rem; padding:.75rem 1rem; }
}

/* ── Reading Progress ────────────────────────────────────── */
.reading-progress { position:fixed; top:68px; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--primary),var(--cyan)); transform-origin:left; transform:scaleX(0); z-index:999; transition:none; }

/* ── Hero ────────────────────────────────────────────────── */
.hero { position:relative; min-height:100svh; display:flex; align-items:center; padding-block:clamp(5rem,10vw,7rem); overflow:hidden; }

.hero__bg { position:absolute; inset:0; overflow:hidden; }
.hero__orb { position:absolute; border-radius:50%; filter:blur(80px); animation:float 8s ease-in-out infinite; }
.hero__orb--1 { width:500px; height:500px; top:-100px; right:-100px; background:radial-gradient(circle,rgba(124,58,237,.3),transparent 70%); }
.hero__orb--2 { width:400px; height:400px; bottom:-100px; left:-100px; background:radial-gradient(circle,rgba(6,182,212,.2),transparent 70%); animation-delay:-4s; animation-direction:reverse; }
@keyframes float { 0%,100%{transform:translateY(0) scale(1)} 50%{transform:translateY(-30px) scale(1.05)} }
.hero__grid-lines { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px); background-size:60px 60px; }

.hero__inner { position:relative; display:grid; grid-template-columns:1fr; gap:3rem; }
@media(min-width:860px){ .hero__inner { grid-template-columns:1fr 1fr; align-items:center; } }

.hero__badge { display:inline-flex; align-items:center; gap:.5rem; padding:.35rem 1rem; background:rgba(16,185,129,.1); border:1px solid rgba(16,185,129,.25); border-radius:var(--r-full); font-size:.8125rem; font-weight:600; color:var(--green); margin-bottom:1.25rem; }
.badge-dot { width:7px; height:7px; border-radius:50%; background:var(--green); animation:pulse 2s infinite; }

.hero__name { font-size:clamp(2.5rem,5.5vw,4rem); font-weight:900; line-height:1.1; letter-spacing:-.03em; margin-bottom:.875rem; }
.hero__role { font-size:clamp(1.125rem,2.5vw,1.5rem); color:var(--text-muted); margin-bottom:1.25rem; display:flex; align-items:center; flex-wrap:wrap; gap:.375rem; }
.typed-text { color:var(--primary-ll); font-weight:700; }
.typed-cursor { color:var(--primary-ll); animation:blink 1s step-end infinite; font-weight:300; margin-left:-2px; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
.hero__desc { font-size:1.0625rem; color:var(--text-muted); max-width:520px; margin-bottom:2rem; line-height:1.8; }
.hero__actions { display:flex; gap:.875rem; flex-wrap:wrap; margin-bottom:2rem; }
.hero__social { display:flex; gap:.625rem; }
.social-link { width:38px; height:38px; border:1px solid var(--border); border-radius:var(--r); display:flex; align-items:center; justify-content:center; color:var(--text-muted); transition:all var(--transition); }
.social-link svg { width:18px; height:18px; }
.social-link:hover { border-color:var(--primary); color:var(--primary-ll); transform:translateY(-2px); }

/* Hero visual */
.hero__card-stack { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.hero__code-card { grid-column:1/-1; padding:1.25rem 1.5rem; }
.code-card__dots { display:flex; gap:.375rem; margin-bottom:1rem; }
.code-card__dots span { width:12px; height:12px; border-radius:50%; background:var(--surface-2); }
.code-card__dots span:nth-child(1){ background:#ff5f57; }
.code-card__dots span:nth-child(2){ background:#ffbd2e; }
.code-card__dots span:nth-child(3){ background:#28c840; }
.code-card__code { font-family:var(--mono); font-size:.8125rem; line-height:1.7; color:var(--text-muted); white-space:pre; overflow:auto; }
.c-purple{color:#a78bfa} .c-cyan{color:#22d3ee} .c-green{color:#86efac} .c-yellow{color:#fde68a}
.hero__stat-card, .hero__xp-card { padding:1.5rem; text-align:center; display:flex; flex-direction:column; gap:.25rem; }
.stat-num { font-size:2.25rem; font-weight:900; color:var(--text); line-height:1; }
.stat-plus { color:var(--primary-ll); font-weight:700; font-size:1.5rem; }
.stat-label { font-size:.8125rem; color:var(--text-muted); font-weight:500; }

.hero__scroll-hint { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:.5rem; font-size:.75rem; font-weight:500; color:var(--text-subtle); letter-spacing:.1em; text-transform:uppercase; animation:bounce 2s ease-in-out infinite; }
.scroll-line { width:1px; height:40px; background:linear-gradient(to bottom,var(--border-hover),transparent); }
@keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(8px)} }

/* ── Tech Stack ──────────────────────────────────────────── */
.tech-stack { padding-block:2.5rem; border-block:1px solid var(--border); }
.tech-stack__label { text-align:center; font-size:.8125rem; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:var(--text-subtle); margin-bottom:1.5rem; }
.tech-stack__list { display:flex; flex-wrap:wrap; gap:.625rem; justify-content:center; }
.tech-pill { display:inline-flex; align-items:center; padding:.35rem .875rem; background:var(--glass-bg); border:1px solid var(--glass-border); border-radius:var(--r-full); font-size:.8125rem; font-weight:500; color:var(--text-muted); transition:all var(--transition); }
.tech-pill:hover { border-color:var(--primary); color:var(--primary-ll); }
.tech-pill--sm { font-size:.75rem; padding:.25rem .625rem; }

/* ── Bento Grid ──────────────────────────────────────────── */
.bento-grid { display:grid; grid-template-columns:1fr; gap:1rem; }
@media(min-width:640px){ .bento-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:960px){ .bento-grid { grid-template-columns:repeat(3,1fr); grid-template-rows:auto auto; } }

.bento-card { position:relative; padding:2rem; overflow:hidden; border-radius:var(--r-xl); border:1px solid var(--glass-border); background:var(--glass-bg); transition:all var(--transition); cursor:default; }
.bento-card:hover { transform:translateY(-4px); border-color:var(--border-hover); box-shadow:var(--shadow-lg); }
.bento-card--large { grid-column:1/-1; }
@media(min-width:960px){ .bento-card--large { grid-column:1/3; } }

.bento-card__bg { position:absolute; inset:0; opacity:.07; transition:opacity var(--transition); }
.bento-card:hover .bento-card__bg { opacity:.12; }
.bento-card__bg--blue   { background:linear-gradient(135deg,#3b82f6,#8b5cf6); }
.bento-card__bg--purple { background:linear-gradient(135deg,#7c3aed,#ec4899); }
.bento-card__bg--cyan   { background:linear-gradient(135deg,#06b6d4,#3b82f6); }
.bento-card__bg--amber  { background:linear-gradient(135deg,#f59e0b,#ef4444); }

.bento-card__content { position:relative; z-index:1; }
.bento-card__tags { display:flex; gap:.375rem; flex-wrap:wrap; margin-bottom:1rem; }
.bento-card__tags span { font-size:.75rem; font-weight:600; padding:.2rem .6rem; background:var(--surface-2); border-radius:var(--r-full); color:var(--text-muted); }
.bento-card__title { font-size:1.0625rem; font-weight:700; color:var(--text); margin-bottom:.625rem; line-height:1.35; }
.bento-card--large .bento-card__title { font-size:1.25rem; }
.bento-card__desc { font-size:.9rem; color:var(--text-muted); line-height:1.7; margin-bottom:1.25rem; }
.bento-card__links { display:flex; gap:1rem; }
.bento-link { display:inline-flex; align-items:center; gap:.375rem; font-size:.875rem; font-weight:600; color:var(--primary-ll); transition:gap var(--transition); }
.bento-link svg { width:15px; height:15px; }
.bento-link:hover { gap:.6rem; color:var(--cyan-l); }
.bento-card__number { position:absolute; bottom:1.25rem; right:1.5rem; font-size:3rem; font-weight:900; color:var(--text); opacity:.04; font-variant-numeric:tabular-nums; line-height:1; }

/* ── About Snap ──────────────────────────────────────────── */
.about-snap__inner { display:grid; grid-template-columns:1fr; gap:3.5rem; align-items:center; }
@media(min-width:860px){ .about-snap__inner { grid-template-columns:1.2fr 1fr; } }

.about-snap__text p { color:var(--text-muted); margin-bottom:1.25rem; }
.about-snap__facts { display:grid; grid-template-columns:1fr 1fr; gap:.625rem; margin-block:1.5rem 2rem; }
.fact-item { padding:.625rem .875rem; background:var(--glass-bg); border:1px solid var(--glass-border); border-radius:var(--r); font-size:.875rem; color:var(--text-muted); }

.about-snap__stats { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.stat-card { padding:1.75rem 1.5rem; text-align:center; display:flex; flex-direction:column; gap:.375rem; }
.stat-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); }
.stat-card__num { font-size:2rem; font-weight:900; color:var(--text); line-height:1; }
.stat-card__label { font-size:.8125rem; color:var(--text-muted); font-weight:500; }

/* ── Skills ──────────────────────────────────────────────── */
.skills-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.5rem; }
.skill-group { padding:1.75rem; }
.skill-group__title { font-size:1rem; font-weight:700; color:var(--text); margin-bottom:1.25rem; display:flex; align-items:center; gap:.5rem; }
.skill-bars { display:flex; flex-direction:column; gap:1rem; }
.skill-bar { }
.skill-bar__info { display:flex; justify-content:space-between; font-size:.875rem; color:var(--text-muted); margin-bottom:.375rem; }
.skill-bar__track { height:5px; background:var(--surface-2); border-radius:var(--r-full); overflow:hidden; }
.skill-bar__fill { height:100%; background:linear-gradient(90deg,var(--primary),var(--cyan)); border-radius:var(--r-full); width:0; transition:width 1.2s cubic-bezier(.4,0,.2,1); }

/* ── Posts Grid ──────────────────────────────────────────── */
.posts-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.5rem; }
.post-card { overflow:hidden; display:flex; flex-direction:column; }
.post-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.post-card__img-wrap { overflow:hidden; }
.post-card__img { width:100%; aspect-ratio:16/9; object-fit:cover; transition:transform .5s; }
.post-card:hover .post-card__img { transform:scale(1.04); }
.post-card__img-placeholder { aspect-ratio:16/9; background:linear-gradient(135deg,var(--surface),var(--surface-2)); }
.post-card__body { padding:1.5rem; flex:1; display:flex; flex-direction:column; }
.post-card__meta { display:flex; gap:.75rem; font-size:.8125rem; color:var(--text-subtle); margin-bottom:.75rem; flex-wrap:wrap; }
.post-card__meta a { color:var(--text-muted); }
.post-card__title { font-size:1.0625rem; font-weight:700; line-height:1.45; margin-bottom:.75rem; flex:1; }
.post-card__title a { color:var(--text); }
.post-card__title a:hover { color:var(--primary-ll); }
.post-card__excerpt { font-size:.9375rem; color:var(--text-muted); line-height:1.7; margin-bottom:1.25rem; }
.post-card__link { display:inline-flex; align-items:center; gap:.375rem; font-size:.875rem; font-weight:600; color:var(--primary-ll); margin-top:auto; transition:gap var(--transition); }
.post-card__link svg { width:15px; height:15px; }
.post-card__link:hover { gap:.6rem; color:var(--cyan-l); }

/* ── CTA Card ────────────────────────────────────────────── */
.cta-card { padding:clamp(2.5rem,6vw,5rem); text-align:center; position:relative; overflow:hidden; }
.cta-card--glow::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(124,58,237,.15),transparent); }
.cta-card__orb { position:absolute; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle,rgba(6,182,212,.1),transparent); top:-100px; right:-100px; filter:blur(40px); }
.cta-card > * { position:relative; z-index:1; }
.cta-card .eyebrow { margin-bottom:.5rem; }
.cta-card__title { font-size:clamp(1.625rem,3vw,2.25rem); font-weight:800; color:var(--text); margin-bottom:.875rem; letter-spacing:-.02em; }
.cta-card__desc { color:var(--text-muted); max-width:480px; margin-inline:auto; margin-bottom:2rem; }
.cta-card__actions { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* ── Page Hero ────────────────────────────────────────────── */
.page-hero { padding-block:clamp(4rem,8vw,6rem) clamp(2rem,4vw,3rem); position:relative; }
.page-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 60% 80% at 20% 50%,rgba(124,58,237,.08),transparent); pointer-events:none; }
.page-hero__inner { position:relative; display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:1.5rem; }
.page-hero__title { font-size:clamp(2rem,4.5vw,3.25rem); font-weight:900; color:var(--text); letter-spacing:-.03em; line-height:1.1; margin-bottom:.5rem; }
.page-hero__subtitle { color:var(--text-muted); font-size:1.0625rem; max-width:540px; }
.resume-download { flex-shrink:0; }

/* ── About Page ───────────────────────────────────────────── */
.about-story__inner { display:grid; grid-template-columns:1fr; gap:4rem; align-items:start; }
@media(min-width:900px){ .about-story__inner { grid-template-columns:380px 1fr; } }

.photo-frame { padding:1.5rem; text-align:center; margin-bottom:1.5rem; position:relative; }
.photo-placeholder { width:160px; height:160px; border-radius:50%; background:linear-gradient(135deg,var(--primary),var(--cyan)); margin:0 auto 1rem; display:flex; align-items:center; justify-content:center; }
.photo-initials { font-size:2.5rem; font-weight:900; color:#fff; }
.photo-frame__badge { position:absolute; bottom:-.75rem; left:50%; transform:translateX(-50%); padding:.4rem 1rem; font-size:.8125rem; font-weight:600; white-space:nowrap; display:flex; align-items:center; gap:.5rem; color:var(--green); }

.about-quick-info { padding:1.25rem; display:flex; flex-direction:column; gap:1rem; }
.quick-info-row { display:flex; align-items:flex-start; gap:.75rem; }
.quick-info-row strong { display:block; font-size:.8125rem; color:var(--text-muted); font-weight:600; }
.quick-info-row span { display:block; font-size:.9375rem; color:var(--text); }

.about-story__content .section-title { margin-bottom:1rem; }
.about-story__content p { color:var(--text-muted); margin-bottom:1.125rem; }
.about-story__actions { display:flex; gap:.875rem; flex-wrap:wrap; margin-top:2rem; }

/* Values */
.values-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1rem; }
.value-card { padding:1.75rem; transition:all var(--transition); }
.value-card:hover { transform:translateY(-4px); border-color:var(--primary); }
.value-card__icon { font-size:2rem; display:block; margin-bottom:1rem; }
.value-card__title { font-size:1rem; font-weight:700; color:var(--text); margin-bottom:.5rem; }
.value-card__desc { font-size:.9rem; color:var(--text-muted); line-height:1.7; }

/* Interests */
.interests-list { display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; }
.interest-pill { padding:.625rem 1.25rem; font-size:.9375rem; color:var(--text-muted); transition:all var(--transition); }
.interest-pill:hover { border-color:var(--cyan); color:var(--cyan-l); }

/* ── Portfolio Page ───────────────────────────────────────── */
.portfolio-filter { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2.5rem; }
.filter-btn { padding:.5rem 1.125rem; background:var(--glass-bg); border:1px solid var(--glass-border); border-radius:var(--r-full); font-size:.875rem; font-weight:500; color:var(--text-muted); transition:all var(--transition); font-family:inherit; }
.filter-btn:hover,.filter-btn.active { background:var(--primary); border-color:var(--primary); color:#fff; }

.projects-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:1.5rem; }
.project-card { display:flex; flex-direction:column; overflow:hidden; }
.project-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.project-card[hidden] { display:none; }

.project-card__header { padding:1.5rem 1.5rem 1rem; position:relative; min-height:90px; display:flex; flex-direction:column; justify-content:space-between; }
.project-card__header--blue   { background:linear-gradient(135deg,rgba(59,130,246,.15),rgba(139,92,246,.1)); }
.project-card__header--purple { background:linear-gradient(135deg,rgba(124,58,237,.15),rgba(236,72,153,.1)); }
.project-card__header--cyan   { background:linear-gradient(135deg,rgba(6,182,212,.15),rgba(59,130,246,.1)); }
.project-card__header--green  { background:linear-gradient(135deg,rgba(16,185,129,.15),rgba(6,182,212,.1)); }
.project-card__header--amber  { background:linear-gradient(135deg,rgba(245,158,11,.15),rgba(239,68,68,.1)); }
.project-card__header--rose   { background:linear-gradient(135deg,rgba(244,63,94,.15),rgba(245,158,11,.1)); }

.project-card__year { font-size:.75rem; font-weight:600; color:var(--text-subtle); text-transform:uppercase; letter-spacing:.08em; }
.project-card__metrics { display:flex; gap:.375rem; flex-wrap:wrap; margin-top:.5rem; }
.metric-chip { font-size:.75rem; padding:.2rem .6rem; background:rgba(255,255,255,.08); border-radius:var(--r-full); color:var(--text-2); font-weight:500; }

.project-card__body { padding:1.25rem 1.5rem; flex:1; }
.project-card__title { font-size:1rem; font-weight:700; color:var(--text); margin-bottom:.625rem; line-height:1.4; }
.project-card__desc { font-size:.9rem; color:var(--text-muted); line-height:1.7; margin-bottom:1rem; }
.project-card__stack { display:flex; flex-wrap:wrap; gap:.375rem; }

.project-card__footer { padding:1rem 1.5rem 1.5rem; display:flex; gap:.75rem; align-items:center; border-top:1px solid var(--border); margin-top:auto; }
.project-link { display:inline-flex; align-items:center; gap:.375rem; font-size:.875rem; font-weight:600; color:var(--text-muted); transition:color var(--transition); }
.project-link svg { width:15px; height:15px; }
.project-link:hover { color:var(--text); }
.project-link--primary { color:var(--primary-ll); margin-left:auto; }
.project-link--primary:hover { color:var(--cyan-l); }

.portfolio-cta { padding:2.5rem; text-align:center; margin-top:4rem; }
.portfolio-cta h3 { font-size:1.25rem; font-weight:700; color:var(--text); margin-bottom:.625rem; }
.portfolio-cta p { color:var(--text-muted); margin-bottom:1.5rem; }
.portfolio-cta__actions { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; align-items:center; }

/* Résumé PDF download links (Customizer-uploaded file) */
.resume-download-link { display:inline-flex; align-items:center; gap:.4rem; vertical-align:middle; }
.resume-download-link__icon { width:1.125rem; height:1.125rem; flex-shrink:0; }

/* ── Resume Page ─────────────────────────────────────────── */
.resume-layout__inner { display:grid; grid-template-columns:1fr; gap:3rem; align-items:start; }
@media(min-width:960px){ .resume-layout__inner { grid-template-columns:1fr 320px; } }

.resume-section { margin-bottom:3.5rem; }
.resume-section__title { display:flex; align-items:center; gap:.625rem; font-size:1.125rem; font-weight:700; color:var(--text); margin-bottom:1.75rem; padding-bottom:.875rem; border-bottom:1px solid var(--border); }
.resume-section__title svg { width:20px; height:20px; color:var(--primary-ll); }

/* Timeline */
.timeline { position:relative; padding-left:2rem; display:flex; flex-direction:column; gap:1.5rem; }
.timeline::before { content:''; position:absolute; left:.5px; top:.5rem; bottom:.5rem; width:1px; background:linear-gradient(to bottom,var(--primary),var(--cyan),transparent); }
.timeline-item { position:relative; }
.timeline-item__dot { position:absolute; left:-2rem; top:1.25rem; width:10px; height:10px; border-radius:50%; background:var(--primary); border:2px solid var(--bg); box-shadow:0 0 0 3px rgba(124,58,237,.3); }
.timeline-item__dot--edu { background:var(--cyan); box-shadow:0 0 0 3px rgba(6,182,212,.3); }
.timeline-item__content { padding:1.5rem; }
.timeline-item__header { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; flex-wrap:wrap; margin-bottom:.875rem; }
.timeline-item__title { font-size:1rem; font-weight:700; color:var(--text); margin-bottom:.25rem; }
.timeline-item__company { font-size:.875rem; color:var(--text-muted); }
.timeline-item__company span { color:var(--text-subtle); }
.timeline-item__period { font-size:.8125rem; font-weight:600; color:var(--primary-ll); white-space:nowrap; background:rgba(124,58,237,.1); padding:.25rem .75rem; border-radius:var(--r-full); flex-shrink:0; }
.timeline-item__desc { font-size:.9375rem; color:var(--text-muted); margin-bottom:.875rem; line-height:1.7; }
.timeline-item__points { display:flex; flex-direction:column; gap:.375rem; margin-bottom:.875rem; }
.timeline-item__points li { font-size:.9rem; color:var(--text-muted); padding-left:1.25rem; position:relative; }
.timeline-item__points li::before { content:'→'; position:absolute; left:0; color:var(--primary-ll); font-size:.8rem; }
.timeline-item__stack { display:flex; flex-wrap:wrap; gap:.375rem; }

/* Resume Sidebar */
.resume-sidebar { display:flex; flex-direction:column; gap:1.5rem; }
.resume-sidebar-card { padding:1.5rem; }
.resume-sidebar-card h3 { font-size:.9375rem; font-weight:700; color:var(--text); margin-bottom:1.125rem; padding-bottom:.625rem; border-bottom:1px solid var(--border); }
.cert-list { display:flex; flex-direction:column; gap:1rem; }
.cert-item { display:flex; align-items:flex-start; gap:.75rem; }
.cert-icon { font-size:1.25rem; line-height:1.4; }
.cert-item strong { display:block; font-size:.875rem; color:var(--text); font-weight:600; }
.cert-item span { font-size:.8125rem; color:var(--text-muted); }
.lang-list { display:flex; flex-direction:column; gap:1rem; }
.facts-list { display:flex; flex-direction:column; gap:.75rem; font-size:.9rem; color:var(--text-muted); }
.facts-list strong { color:var(--text); }

/* ── Contact Page ─────────────────────────────────────────── */
.contact-section__inner { display:grid; grid-template-columns:1fr; gap:3rem; align-items:start; }
@media(min-width:960px){ .contact-section__inner { grid-template-columns:1fr 1.4fr; gap:4rem; } }

.contact-info__status { padding:1.5rem; margin-bottom:1.5rem; }
.status-indicator { display:flex; align-items:center; gap:.625rem; font-size:1rem; font-weight:700; color:var(--green); margin-bottom:.625rem; }
.status-indicator span { font-size:1.25rem; }
.status--open  .badge-dot { background:var(--green); animation:pulse 2s infinite; }
.status--closed { color:var(--text-muted); }
.contact-info__status p { font-size:.9375rem; color:var(--text-muted); margin:0; }

.contact-channels { display:flex; flex-direction:column; gap:.875rem; margin-bottom:1.5rem; }
.contact-channel { padding:1rem 1.25rem; display:flex; align-items:center; gap:1rem; transition:all var(--transition); }
.contact-channel:hover { transform:translateX(4px); border-color:var(--border-hover); }
.channel-icon { width:42px; height:42px; border-radius:var(--r); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.channel-icon svg { width:20px; height:20px; }
.channel-icon--email   { background:rgba(124,58,237,.15); color:var(--primary-ll); }
.channel-icon--linkedin{ background:rgba(10,102,194,.15); color:#0a66c2; }
.channel-icon--github  { background:rgba(255,255,255,.06); color:var(--text); }
.contact-channel strong { display:block; font-size:.875rem; font-weight:700; color:var(--text); margin-bottom:.2rem; }
.contact-channel a { font-size:.9rem; color:var(--text-muted); }
.contact-channel a:hover { color:var(--primary-ll); }
.contact-note { padding:1rem 1.25rem; font-size:.9rem; color:var(--text-muted); }

/* Contact Form */
.contact-form-card { padding:clamp(1.75rem,4vw,2.5rem); }
.contact-form-card__title { font-size:1.25rem; font-weight:700; color:var(--text); margin-bottom:1.75rem; }
.form-row { display:grid; grid-template-columns:1fr; gap:1rem; }
@media(min-width:540px){ .form-row { grid-template-columns:1fr 1fr; } }
.form-group { display:flex; flex-direction:column; gap:.5rem; margin-bottom:1rem; }
.form-group label { font-size:.875rem; font-weight:600; color:var(--text-muted); }
.form-group label span { color:var(--rose); }
.form-group input,.form-group textarea,.form-group select { width:100%; padding:.75rem 1rem; background:var(--surface); border:1.5px solid var(--border); border-radius:var(--r); font-size:.9375rem; font-family:inherit; color:var(--text); transition:border-color var(--transition),box-shadow var(--transition); appearance:none; }
.form-group input:focus,.form-group textarea:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(124,58,237,.15); }
.form-group textarea { resize:vertical; min-height:130px; }

.topic-chips { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:.625rem; }
.topic-chip { padding:.4rem .9rem; background:var(--glass-bg); border:1.5px solid var(--glass-border); border-radius:var(--r-full); font-size:.8125rem; font-weight:500; color:var(--text-muted); font-family:inherit; transition:all var(--transition); }
.topic-chip:hover,.topic-chip.active { background:var(--primary); border-color:var(--primary); color:#fff; }

.form-notice { display:none; padding:1rem 1.25rem; border-radius:var(--r); font-size:.9375rem; margin-bottom:1.25rem; }
.form-notice.success { background:rgba(16,185,129,.1); border:1px solid rgba(16,185,129,.3); color:var(--green); display:block; }
.form-notice.error   { background:rgba(244,63,94,.1);  border:1px solid rgba(244,63,94,.3);  color:var(--rose);  display:block; }
@keyframes spin-anim { to{transform:rotate(360deg)} }
.spin { animation:spin-anim .8s linear infinite; width:18px; height:18px; }

/* ── Blog Layout ─────────────────────────────────────────── */
.blog-layout__inner,.single-layout { display:grid; grid-template-columns:1fr; gap:3rem; align-items:start; }
@media(min-width:960px){ .blog-layout__inner,.single-layout { grid-template-columns:1fr 280px; } }

/* ── Blog Sidebar ────────────────────────────────────────── */
.blog-sidebar { display:flex; flex-direction:column; gap:1.5rem; }
.sidebar-widget { padding:1.5rem; }
.sidebar-widget__title { font-size:.9375rem; font-weight:700; color:var(--text); margin-bottom:1rem; }
.sidebar-about { text-align:center; }
.sidebar-about__avatar { width:64px; height:64px; border-radius:50%; background:linear-gradient(135deg,var(--primary),var(--cyan)); color:#fff; font-size:1.25rem; font-weight:800; display:flex; align-items:center; justify-content:center; margin:0 auto .875rem; }
.sidebar-about p { font-size:.875rem; color:var(--text-muted); margin-bottom:1rem; }
.sidebar-cats a { display:flex; justify-content:space-between; font-size:.9rem; color:var(--text-muted); padding:.375rem 0; border-bottom:1px solid var(--border); }
.sidebar-cats a:hover { color:var(--primary-ll); }
.sidebar-recent { display:flex; flex-direction:column; gap:.875rem; }
.sidebar-recent li { display:flex; flex-direction:column; gap:.2rem; }
.sidebar-recent a { font-size:.875rem; font-weight:600; color:var(--text); }
.sidebar-recent a:hover { color:var(--primary-ll); }
.sidebar-recent time { font-size:.8125rem; color:var(--text-subtle); }
.sidebar-tags a { display:inline-block; padding:.25rem .625rem; background:var(--glass-bg); border:1px solid var(--glass-border); border-radius:var(--r-full); font-size:.8125rem; color:var(--text-muted); margin:.2rem; transition:all var(--transition); }
.sidebar-tags a:hover { background:var(--primary); border-color:var(--primary); color:#fff; }

/* Search */
.search-form { display:flex; gap:.5rem; }
.search-field { flex:1; padding:.65rem 1rem; background:var(--surface); border:1.5px solid var(--border); border-radius:var(--r-full); font-size:.9rem; font-family:inherit; color:var(--text); }
.search-field:focus { outline:none; border-color:var(--primary); }
.search-submit { padding:.65rem 1.125rem; background:var(--primary); color:#fff; border:none; border-radius:var(--r-full); font-size:.875rem; font-weight:600; font-family:inherit; transition:background var(--transition); }
.search-submit:hover { background:var(--primary-l); }

/* ── Single Post ─────────────────────────────────────────── */
.single-article__header { margin-bottom:2rem; }
.single-article__meta { display:flex; gap:.75rem; font-size:.8125rem; color:var(--text-subtle); margin-bottom:1rem; flex-wrap:wrap; }
.single-article__meta a { color:var(--text-muted); }
.single-article__title { font-size:clamp(1.75rem,3.5vw,2.5rem); font-weight:900; line-height:1.2; color:var(--text); margin-bottom:1.5rem; letter-spacing:-.02em; }
.single-article__cover { border-radius:var(--r-xl); overflow:hidden; margin-bottom:2rem; }
.single-article__cover-img { width:100%; max-height:480px; object-fit:cover; }
.single-article__content { margin-bottom:2.5rem; }
.single-article__tags { display:flex; flex-wrap:wrap; gap:.5rem; padding-top:1.5rem; border-top:1px solid var(--border); margin-bottom:2rem; }

/* Entry Content */
.entry-content h2,.entry-content h3,.entry-content h4 { color:var(--text); font-weight:700; margin-block:2rem 1rem; line-height:1.3; }
.entry-content h2 { font-size:clamp(1.375rem,2.5vw,1.75rem); }
.entry-content h3 { font-size:clamp(1.125rem,2vw,1.375rem); }
.entry-content p { margin-bottom:1.25rem; color:var(--text-muted); line-height:1.85; }
.entry-content ul,.entry-content ol { margin:0 0 1.25rem 1.5rem; color:var(--text-muted); }
.entry-content li { margin-bottom:.5rem; }
.entry-content blockquote { border-left:3px solid var(--primary); padding:1rem 1.5rem; margin:2rem 0; background:rgba(124,58,237,.06); border-radius:0 var(--r) var(--r) 0; font-style:italic; color:var(--text-muted); }
.entry-content code { font-family:var(--mono); background:var(--surface-2); padding:.15em .45em; border-radius:4px; font-size:.9em; color:var(--cyan-l); }
.entry-content pre { background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:1.5rem; overflow-x:auto; margin-block:1.5rem; }
.entry-content pre code { background:none; color:var(--text-2); font-size:.875rem; }
.entry-content a { color:var(--primary-ll); text-decoration:underline; }
.entry-content img { border-radius:var(--r); margin-block:1.5rem; }

/* Author Card */
.author-card { display:flex; gap:1.25rem; align-items:flex-start; padding:1.5rem; margin-bottom:2rem; }
.author-card__avatar { width:64px; height:64px; border-radius:50%; min-width:64px; }
.author-card__name { display:block; font-weight:700; color:var(--text); margin-bottom:.375rem; }
.author-card__bio { font-size:.9375rem; color:var(--text-muted); margin-bottom:.75rem; }
.author-card__social { display:flex; gap:.75rem; }
.author-card__social a { font-size:.875rem; font-weight:600; color:var(--primary-ll); }

/* Post Nav */
.post-nav { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:2.5rem; }
.post-nav__link { padding:1.25rem; display:flex; flex-direction:column; gap:.375rem; }
.post-nav__link:hover { transform:translateY(-2px); border-color:var(--primary); }
.post-nav__link--next { text-align:right; }
.post-nav__label { font-size:.75rem; font-weight:600; color:var(--text-subtle); text-transform:uppercase; letter-spacing:.08em; }
.post-nav__title { font-size:.9rem; font-weight:600; color:var(--text); line-height:1.4; }

/* Pagination */
.pagination { display:flex; gap:.5rem; justify-content:center; flex-wrap:wrap; margin-top:3rem; }
.page-numbers { display:flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding-inline:.75rem; border:1px solid var(--border); border-radius:var(--r-sm); font-size:.9375rem; font-weight:500; color:var(--text-muted); transition:all var(--transition); }
.page-numbers:hover { border-color:var(--primary); color:var(--primary-ll); }
.current { background:var(--primary); color:#fff; border-color:var(--primary); }

/* ── Footer ──────────────────────────────────────────────── */
.site-footer { border-top:1px solid var(--border); padding-top:3rem; padding-bottom:0; }
.footer__inner { display:grid; grid-template-columns:1fr; gap:2rem; margin-bottom:2rem; }
@media(min-width:640px){ .footer__inner { grid-template-columns:1fr auto auto; align-items:start; } }
.footer__logo { display:flex; align-items:center; gap:.625rem; font-weight:800; color:var(--text); }
.footer__initials { width:32px; height:32px; border-radius:var(--r-sm); background:linear-gradient(135deg,var(--primary),var(--cyan)); color:#fff; font-size:.75rem; font-weight:800; display:flex; align-items:center; justify-content:center; }
.footer__tagline { font-size:.875rem; color:var(--text-subtle); margin-top:.5rem; max-width:280px; }
.footer__nav ul { display:flex; flex-direction:column; gap:.5rem; }
.footer__nav a { font-size:.875rem; color:var(--text-muted); transition:color var(--transition); }
.footer__nav a:hover { color:var(--text); }
.footer__social { display:flex; gap:.625rem; }
.footer__social a { width:36px; height:36px; border:1px solid var(--border); border-radius:var(--r-sm); display:flex; align-items:center; justify-content:center; color:var(--text-subtle); transition:all var(--transition); }
.footer__social a svg { width:17px; height:17px; }
.footer__social a:hover { border-color:var(--primary); color:var(--primary-ll); transform:translateY(-2px); }
.footer__bottom { border-top:1px solid var(--border); padding-block:1.25rem; }
.footer__bottom-inner { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.75rem; font-size:.8125rem; color:var(--text-subtle); }
.footer__legal { display:flex; gap:1.25rem; }
.footer__legal a { color:var(--text-subtle); }
.footer__legal a:hover { color:var(--text-muted); }

/* ── Back to Top ─────────────────────────────────────────── */
.back-top { position:fixed; bottom:1.5rem; right:1.5rem; width:42px; height:42px; background:var(--primary); color:#fff; border:none; border-radius:var(--r); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-glow-primary); opacity:0; visibility:hidden; transform:translateY(10px); transition:all var(--transition); z-index:900; }
.back-top svg { width:20px; height:20px; }
.back-top.visible { opacity:1; visibility:visible; transform:translateY(0); }
.back-top:hover { background:var(--primary-l); transform:translateY(-3px); }

/* ── Animations ──────────────────────────────────────────── */
[data-animate] { opacity:0; transform:translateY(20px); transition:opacity .6s ease,transform .6s ease; }
[data-animate="fade-right"] { transform:translateX(-24px); }
[data-animate="fade-left"]  { transform:translateX(24px); }
[data-animate].animated     { opacity:1; transform:none; }

/* ── 404 ─────────────────────────────────────────────────── */
.error-404__code { font-size:clamp(6rem,15vw,10rem); font-weight:900; line-height:1; color:var(--surface-2); margin-bottom:1rem; }

/* ── Generic Page ────────────────────────────────────────── */
.generic-page { max-width:800px; margin-inline:auto; }
.generic-page__title { font-size:clamp(1.75rem,3vw,2.5rem); font-weight:900; color:var(--text); margin-bottom:2rem; padding-bottom:1.25rem; border-bottom:1px solid var(--border); letter-spacing:-.02em; }

/* ── No Posts ────────────────────────────────────────────── */
.no-posts { text-align:center; color:var(--text-muted); padding-block:4rem; }

/* ── WordPress Core ──────────────────────────────────────── */
.alignleft   { float:left; margin:0 1.5rem 1rem 0; }
.alignright  { float:right; margin:0 0 1rem 1.5rem; }
.aligncenter { display:block; margin-inline:auto; }
.wp-caption-text { font-size:.8125rem; color:var(--text-subtle); text-align:center; margin-top:.375rem; }

/* ══ LIGHT THEME OVERRIDES ═══════════════════════════════════
   Comprehensive fixes for readability, contrast and visual polish
   ══════════════════════════════════════════════════════════ */

/* Glass cards: solid white surface + visible shadow */
[data-theme="light"] .glass-card {
    background: rgba(255,255,255,.92);
    border-color: rgba(0,0,0,.1);
    box-shadow: 0 2px 16px rgba(0,0,0,.07), 0 1px 3px rgba(0,0,0,.06);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
[data-theme="light"] .glass-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.07);
    border-color: rgba(0,0,0,.16);
}

/* Navbar */
[data-theme="light"] .navbar { background: rgba(244,246,250,.95); border-bottom-color: rgba(0,0,0,.1); }
[data-theme="light"] .nav-links a { color: var(--text-muted); }
[data-theme="light"] .nav-links a:hover,
[data-theme="light"] .nav-links [aria-current="page"] { color: var(--text); background: rgba(0,0,0,.05); }
[data-theme="light"] .hamburger span { background: var(--text-2); }
[data-theme="light"] .theme-toggle { background: rgba(0,0,0,.04); border-color: rgba(0,0,0,.12); color: var(--text-2); }
[data-theme="light"] .navbar__nav { background: var(--bg); border-left-color: rgba(0,0,0,.1); }

/* Hero */
[data-theme="light"] .hero__grid-lines {
    background-image: linear-gradient(rgba(0,0,0,.05) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(0,0,0,.05) 1px, transparent 1px);
}
[data-theme="light"] .hero__orb--1 { background: radial-gradient(circle, rgba(124,58,237,.12), transparent 70%); }
[data-theme="light"] .hero__orb--2 { background: radial-gradient(circle, rgba(6,182,212,.09), transparent 70%); }
[data-theme="light"] .hero__name   { color: var(--text); }
[data-theme="light"] .hero__role   { color: var(--text-muted); }
[data-theme="light"] .hero__desc   { color: var(--text-muted); }
[data-theme="light"] .hero__scroll-hint { color: var(--text-subtle); }
[data-theme="light"] .scroll-line  { background: linear-gradient(to bottom, rgba(0,0,0,.2), transparent); }

/* Code card colours — adjusted for light bg */
[data-theme="light"] .code-card__code  { color: var(--text-muted); }
[data-theme="light"] .c-purple { color: #6d28d9; }
[data-theme="light"] .c-cyan   { color: #0369a1; }
[data-theme="light"] .c-green  { color: #15803d; }
[data-theme="light"] .c-yellow { color: #92400e; }

/* Tech pills */
[data-theme="light"] .tech-pill {
    background: rgba(255,255,255,.85);
    border-color: rgba(0,0,0,.12);
    color: var(--text-2);
}
[data-theme="light"] .tech-pill:hover { border-color: var(--primary); color: var(--primary); }

/* Tech stack label */
[data-theme="light"] .tech-stack__label { color: var(--text-subtle); }
[data-theme="light"] .tech-stack { border-block-color: rgba(0,0,0,.1); }

/* Bento grid */
[data-theme="light"] .bento-card { background: rgba(255,255,255,.88); border-color: rgba(0,0,0,.1); }
[data-theme="light"] .bento-card:hover { box-shadow: 0 12px 40px rgba(0,0,0,.13); border-color: rgba(0,0,0,.16); }
[data-theme="light"] .bento-card__bg { opacity: .12; }
[data-theme="light"] .bento-card:hover .bento-card__bg { opacity: .2; }
[data-theme="light"] .bento-card__tags span { background: rgba(0,0,0,.07); color: var(--text-2); }
[data-theme="light"] .bento-card__title { color: var(--text); }
[data-theme="light"] .bento-card__desc  { color: var(--text-muted); }
[data-theme="light"] .bento-card__number { color: rgba(0,0,0,.06); }

/* About snap */
[data-theme="light"] .about-snap__text p { color: var(--text-muted); }
[data-theme="light"] .fact-item { background: rgba(255,255,255,.7); border-color: rgba(0,0,0,.1); color: var(--text-2); }
[data-theme="light"] .stat-card__num   { color: var(--text); }
[data-theme="light"] .stat-card__label { color: var(--text-muted); }

/* Skills */
[data-theme="light"] .skill-group__title { color: var(--text); }
[data-theme="light"] .skill-bar__info    { color: var(--text-muted); }
[data-theme="light"] .skill-bar__track   { background: rgba(0,0,0,.1); }

/* Eyebrow / section titles */
[data-theme="light"] .eyebrow       { color: #0891b2; }
[data-theme="light"] .section-title { color: var(--text); }
[data-theme="light"] .section-subtitle { color: var(--text-muted); }

/* Portfolio / Projects */
[data-theme="light"] .filter-btn { background: rgba(255,255,255,.8); border-color: rgba(0,0,0,.12); color: var(--text-2); }
[data-theme="light"] .filter-btn:hover,
[data-theme="light"] .filter-btn.active { background: var(--primary); border-color: var(--primary); color: #fff; }
[data-theme="light"] .project-card { background: #fff; border-color: rgba(0,0,0,.1); box-shadow: 0 2px 12px rgba(0,0,0,.06); }
[data-theme="light"] .project-card:hover { box-shadow: 0 10px 40px rgba(0,0,0,.14); }
[data-theme="light"] .project-card__title { color: var(--text); }
[data-theme="light"] .project-card__desc  { color: var(--text-muted); }
[data-theme="light"] .project-card__year  { color: var(--text-subtle); }
[data-theme="light"] .metric-chip { background: rgba(0,0,0,.08); color: var(--text-2); font-weight: 600; }
[data-theme="light"] .project-card__footer { border-top-color: rgba(0,0,0,.08); }
[data-theme="light"] .project-link { color: var(--text-muted); }
[data-theme="light"] .project-link:hover { color: var(--text); }
[data-theme="light"] .portfolio-cta { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .portfolio-cta h3 { color: var(--text); }
[data-theme="light"] .portfolio-cta p   { color: var(--text-muted); }

/* Resume */
[data-theme="light"] .timeline::before { background: linear-gradient(to bottom, var(--primary), var(--cyan), rgba(0,0,0,.1)); }
[data-theme="light"] .timeline-item__dot { border-color: var(--bg); }
[data-theme="light"] .timeline-item__content { background: #fff; border-color: rgba(0,0,0,.1); box-shadow: 0 2px 12px rgba(0,0,0,.05); }
[data-theme="light"] .timeline-item__title   { color: var(--text); }
[data-theme="light"] .timeline-item__company { color: var(--text-muted); }
[data-theme="light"] .timeline-item__desc    { color: var(--text-muted); }
[data-theme="light"] .timeline-item__points li { color: var(--text-muted); }
[data-theme="light"] .resume-section__title  { color: var(--text); border-bottom-color: rgba(0,0,0,.1); }
[data-theme="light"] .resume-sidebar-card    { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .resume-sidebar-card h3 { color: var(--text); border-bottom-color: rgba(0,0,0,.08); }
[data-theme="light"] .cert-item strong { color: var(--text); }
[data-theme="light"] .cert-item span   { color: var(--text-muted); }
[data-theme="light"] .facts-list       { color: var(--text-muted); }
[data-theme="light"] .facts-list strong { color: var(--text); }

/* Contact */
[data-theme="light"] .contact-info__status { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .contact-info__status p { color: var(--text-muted); }
[data-theme="light"] .contact-channel { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .contact-channel strong { color: var(--text); }
[data-theme="light"] .contact-channel a { color: var(--text-muted); }
[data-theme="light"] .contact-note { background: rgba(255,255,255,.8); border-color: rgba(0,0,0,.1); color: var(--text-muted); }
[data-theme="light"] .channel-icon--github { background: rgba(0,0,0,.06); color: var(--text-2); }
[data-theme="light"] .contact-form-card { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .contact-form-card__title { color: var(--text); }
[data-theme="light"] .form-group label { color: var(--text-2); }
[data-theme="light"] .form-group input,
[data-theme="light"] .form-group textarea {
    background: var(--bg-2);
    border-color: rgba(0,0,0,.14);
    color: var(--text);
}
[data-theme="light"] .form-group input:focus,
[data-theme="light"] .form-group textarea:focus { border-color: var(--primary); }
[data-theme="light"] .topic-chip { background: rgba(0,0,0,.05); border-color: rgba(0,0,0,.13); color: var(--text-2); }

/* CTA card */
[data-theme="light"] .cta-card { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .cta-card--glow::before { background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(124,58,237,.08), transparent); }
[data-theme="light"] .cta-card__title { color: var(--text); }
[data-theme="light"] .cta-card__desc  { color: var(--text-muted); }

/* Blog / posts */
[data-theme="light"] .post-card { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .post-card:hover { box-shadow: 0 10px 40px rgba(0,0,0,.12); }
[data-theme="light"] .post-card__title a { color: var(--text); }
[data-theme="light"] .post-card__excerpt { color: var(--text-muted); }
[data-theme="light"] .post-card__meta    { color: var(--text-subtle); }
[data-theme="light"] .post-card__img-placeholder { background: linear-gradient(135deg, var(--surface-2), var(--bg-2)); }
[data-theme="light"] .entry-content h2,
[data-theme="light"] .entry-content h3,
[data-theme="light"] .entry-content h4 { color: var(--text); }
[data-theme="light"] .entry-content p   { color: var(--text-muted); }
[data-theme="light"] .entry-content blockquote { background: rgba(124,58,237,.04); color: var(--text-muted); }
[data-theme="light"] .entry-content code { background: rgba(0,0,0,.06); color: #0369a1; }
[data-theme="light"] .entry-content pre  { background: var(--surface-2); border-color: rgba(0,0,0,.1); }
[data-theme="light"] .entry-content pre code { background: none; color: var(--text-2); }

/* Page hero */
[data-theme="light"] .page-hero::before { background: radial-gradient(ellipse 60% 80% at 20% 50%, rgba(124,58,237,.05), transparent); }
[data-theme="light"] .page-hero__title    { color: var(--text); }
[data-theme="light"] .page-hero__subtitle { color: var(--text-muted); }

/* About page */
[data-theme="light"] .photo-frame { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .about-quick-info { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .quick-info-row strong { color: var(--text-muted); }
[data-theme="light"] .quick-info-row span   { color: var(--text); }
[data-theme="light"] .value-card { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .value-card__title { color: var(--text); }
[data-theme="light"] .value-card__desc  { color: var(--text-muted); }
[data-theme="light"] .interest-pill { background: #fff; border-color: rgba(0,0,0,.1); color: var(--text-2); }

/* Footer */
[data-theme="light"] .site-footer { border-top-color: rgba(0,0,0,.1); background: var(--bg-2); }
[data-theme="light"] .footer__logo { color: var(--text); }
[data-theme="light"] .footer__tagline { color: var(--text-subtle); }
[data-theme="light"] .footer__nav a { color: var(--text-muted); }
[data-theme="light"] .footer__nav a:hover { color: var(--text); }
[data-theme="light"] .footer__social a { border-color: rgba(0,0,0,.12); color: var(--text-subtle); }
[data-theme="light"] .footer__bottom { border-top-color: rgba(0,0,0,.08); }
[data-theme="light"] .footer__bottom-inner { color: var(--text-subtle); }
[data-theme="light"] .footer__legal a { color: var(--text-subtle); }

/* Sidebar */
[data-theme="light"] .sidebar-widget { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .sidebar-widget__title { color: var(--text); }
[data-theme="light"] .search-field { background: var(--bg-2); border-color: rgba(0,0,0,.14); color: var(--text); }
[data-theme="light"] .sidebar-tags a { background: rgba(0,0,0,.05); border-color: rgba(0,0,0,.1); color: var(--text-muted); }
[data-theme="light"] .sidebar-cats a { color: var(--text-muted); border-bottom-color: rgba(0,0,0,.08); }
[data-theme="light"] .sidebar-recent a { color: var(--text); }
[data-theme="light"] .sidebar-recent time { color: var(--text-subtle); }
[data-theme="light"] .sidebar-about p { color: var(--text-muted); }

/* Pagination */
[data-theme="light"] .page-numbers { border-color: rgba(0,0,0,.12); color: var(--text-muted); }
[data-theme="light"] .page-numbers:hover { border-color: var(--primary); color: var(--primary); }

/* Post nav */
[data-theme="light"] .post-nav__link { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .post-nav__title { color: var(--text); }
[data-theme="light"] .post-nav__label { color: var(--text-subtle); }

/* Author card */
[data-theme="light"] .author-card { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .author-card__bio { color: var(--text-muted); }

/* Case Study (shared with blog styles) */
[data-theme="light"] .cs-card { background: #fff; border-color: rgba(0,0,0,.1); }
[data-theme="light"] .cs-card:hover { box-shadow: 0 10px 40px rgba(0,0,0,.12); }
[data-theme="light"] .cs-card__title { color: var(--text); }
[data-theme="light"] .cs-card__desc  { color: var(--text-muted); }
[data-theme="light"] .cs-card__meta  { color: var(--text-subtle); }

/* ── Hero Photo Layout ────────────────────────────────────── */
.hero__photo-wrap { position: relative; display: flex; justify-content: center; align-items: center; }
.hero__photo-frame { position: relative; width: 340px; max-width: 100%; }
.hero__photo-frame::before {
    content: '';
    position: absolute; top: -12px; right: -12px;
    width: 100%; height: 100%;
    border: 2px solid var(--primary);
    opacity: .25; border-radius: var(--r-xl);
    z-index: 0;
}
.hero__photo-frame::after {
    content: '';
    position: absolute; bottom: -12px; left: -12px;
    width: 60%; height: 60%;
    border: 2px solid var(--cyan);
    opacity: .18; border-radius: var(--r-xl);
    z-index: 0;
}
.hero__photo {
    width: 100%; height: 420px;
    object-fit: cover; object-position: top center;
    border-radius: var(--r-xl);
    position: relative; z-index: 1;
    filter: contrast(1.04);
}
.hero__photo-overlay {
    position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
    background: linear-gradient(to top, var(--bg), transparent);
    border-radius: 0 0 var(--r-xl) var(--r-xl);
    z-index: 2;
}
.hero__photo-stat {
    position: absolute; z-index: 3;
    padding: .875rem 1.25rem; text-align: center;
    display: flex; flex-direction: column; gap: .2rem;
    min-width: 110px;
}
.hero__photo-stat--top    { top: 2rem; left: -2rem; }
.hero__photo-stat--bottom { bottom: 3rem; right: -2rem; }
@media(max-width:860px) {
    .hero__photo-stat--top    { top: 1rem; left: .5rem; }
    .hero__photo-stat--bottom { bottom: 1rem; right: .5rem; }
}

/* About page photo */
.about-photo {
    width: 100%; max-height: 340px;
    object-fit: cover; object-position: top center;
    border-radius: var(--r-lg);
    display: block;
}

/* ── Case Study Styles ────────────────────────────────────── */
.case-studies-section .cs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px,1fr)); gap: 1.5rem; }
.cs-card { display: flex; flex-direction: column; overflow: hidden; transition: all var(--transition); }
.cs-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.cs-card__header { padding: 1.5rem; background: linear-gradient(135deg, rgba(124,58,237,.15), rgba(6,182,212,.1)); position: relative; min-height: 80px; }
.cs-card__industry { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--primary-ll); background: rgba(124,58,237,.12); border: 1px solid rgba(124,58,237,.2); padding: .2rem .65rem; border-radius: var(--r-full); display: inline-flex; margin-bottom: .5rem; }
.cs-card__client { font-size: .875rem; font-weight: 600; color: var(--text-muted); }
.cs-card__body { padding: 1.25rem 1.5rem; flex: 1; }
.cs-card__title { font-size: 1.0625rem; font-weight: 700; color: var(--text); margin-bottom: .625rem; line-height: 1.4; }
.cs-card__title a { color: inherit; }
.cs-card__title a:hover { color: var(--primary-ll); }
.cs-card__desc { font-size: .9rem; color: var(--text-muted); line-height: 1.7; margin-bottom: 1rem; }
.cs-card__meta { display: flex; gap: .75rem; font-size: .8125rem; color: var(--text-subtle); flex-wrap: wrap; margin-bottom: .875rem; }
.cs-card__stack { display: flex; flex-wrap: wrap; gap: .375rem; }
.cs-card__footer { padding: 1rem 1.5rem 1.5rem; border-top: 1px solid var(--border); margin-top: auto; }
.cs-card__link { display: inline-flex; align-items: center; gap: .375rem; font-size: .875rem; font-weight: 600; color: var(--primary-ll); transition: gap var(--transition); }
.cs-card__link svg { width: 15px; height: 15px; }
.cs-card__link:hover { gap: .65rem; color: var(--cyan-l); }

/* Single case study */
.cs-single { max-width: 860px; margin-inline: auto; }
.cs-single__hero { margin-bottom: 2.5rem; }
.cs-single__meta { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.cs-single__title { font-size: clamp(1.75rem,3.5vw,2.75rem); font-weight: 900; color: var(--text); line-height: 1.15; margin-bottom: 1rem; letter-spacing: -.02em; }
.cs-single__kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px,1fr)); gap: 1rem; margin: 2rem 0; }
.kpi-card { padding: 1.25rem 1.5rem; text-align: center; }
.kpi-card__num { font-size: 1.75rem; font-weight: 900; color: var(--primary-ll); line-height: 1; margin-bottom: .375rem; }
.kpi-card__label { font-size: .8125rem; color: var(--text-muted); font-weight: 500; }
.cs-single__content { }
.cs-single__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 3rem; }

/* Featured case study on homepage */
.cs-featured { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media(min-width:700px) { .cs-featured { grid-template-columns: 1fr 1fr; } }
@media(min-width:960px) { .cs-featured { grid-template-columns: 1.5fr 1fr 1fr; } }
.cs-featured .cs-card:first-child { grid-column: 1 / -1; }
@media(min-width:960px) { .cs-featured .cs-card:first-child { grid-column: 1 / 2; grid-row: 1 / 3; } }
