:root{
  --bg:#f4f2ed;--ink:#111217;--muted:#686b73;--line:rgba(17,18,23,.14);
  --lime:#dfff54;--violet:#7657ff;--white:#fff;--dark:#121319;
  --container:min(1180px,calc(100% - 40px));--radius:28px;--surface:#fff;--section-alt:#ebe9e4;--header-bg:rgba(244,242,237,.8);--text-soft:#52555d
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth} body{font-family:Manrope,sans-serif;background:var(--bg);color:var(--ink);overflow-x:hidden}
a{text-decoration:none;color:inherit} img{display:block;width:100%}.container{width:var(--container);margin:auto}
.header{position:fixed;inset:0 0 auto;z-index:50;background:var(--header-bg);backdrop-filter:blur(18px);border-bottom:1px solid transparent}
.header.scrolled{border-color:var(--line)}.nav{height:78px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px}.brand span{width:38px;height:38px;border-radius:12px;background:var(--ink);color:#fff;display:grid;place-items:center;font:700 13px "Space Grotesk"}
.brand b{font-size:14px}.nav-links{display:flex;align-items:center;gap:30px;font-size:13px;font-weight:700;color:#50535a}
.nav-contact{padding:10px 16px;border:1px solid var(--ink);border-radius:999px;color:var(--ink)}.menu-btn{display:none;border:0;background:0}.menu-btn i{display:block;width:24px;height:2px;background:var(--ink);margin:5px}
.hero{padding:145px 0 60px}.hero-grid{min-height:650px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:80px}
.status-pill{display:inline-flex;gap:10px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 13px;font:700 11px "Space Grotesk";letter-spacing:.08em}
.status-pill span{width:8px;height:8px;border-radius:50%;background:#30c579;box-shadow:0 0 0 5px rgba(48,197,121,.12)}
.kicker,.section-top p{font:700 11px "Space Grotesk";letter-spacing:.16em;color:var(--muted)}
.kicker{margin:28px 0 15px}.hero h1,.display{font:700 clamp(48px,6vw,82px)/.98 "Space Grotesk";letter-spacing:-.06em}
.hero h1 span{position:relative;z-index:0}.hero h1 span:after{content:"";position:absolute;left:-2%;right:-3%;bottom:4%;height:22%;background:var(--lime);z-index:-1}
.hero-lead{max-width:630px;margin:26px 0 34px;color:var(--muted);font-size:18px;line-height:1.7}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{min-height:56px;padding:0 22px;border-radius:15px;display:inline-flex;align-items:center;gap:18px;font-weight:800}.primary{background:var(--ink);color:#fff}.primary b{color:var(--lime)}.secondary{border:1px solid var(--line);background:var(--surface)}
.hero-art{min-height:560px;position:relative;display:grid;place-items:center}.grid-lines{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:45px 45px;mask-image:radial-gradient(circle,#000 30%,transparent 72%)}
.main-card{position:relative;width:min(410px,90vw);padding:24px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.9);border-radius:32px;box-shadow:0 30px 90px rgba(30,27,45,.17);backdrop-filter:blur(20px)}
.card-head{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}.card-head b{margin-left:auto}.live-dot{width:8px;height:8px;border-radius:50%;background:#30c579}
.monogram{width:94px;height:94px;border-radius:29px;margin:28px auto 15px;display:grid;place-items:center;background:linear-gradient(145deg,var(--violet),#242438);color:#fff;font:700 30px "Space Grotesk";box-shadow:0 18px 35px rgba(118,87,255,.3)}
.main-card h2{text-align:center;font:700 26px "Space Grotesk"}.main-card>p{text-align:center;color:var(--muted)}
.code-card{margin-top:25px;background:#101116;border-radius:18px;padding:17px;display:grid;grid-template-columns:25px 1fr;gap:9px;color:#d7dbea;font:12px/1.6 monospace}.code-card span{color:#606574}.code-card code:nth-of-type(1){color:#dfff8c}
.floating-label{position:absolute;z-index:2;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:12px;font-size:12px;font-weight:800;box-shadow:0 14px 30px rgba(0,0,0,.08)}
.label-a{top:14%;left:4%}.label-b{right:2%;top:29%}.label-c{left:1%;bottom:14%}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:35px}.hero-stats div{padding:22px;border-right:1px solid var(--line)}.hero-stats div:last-child{border:0}.hero-stats strong,.hero-stats span{display:block}.hero-stats strong{font:700 24px "Space Grotesk"}.hero-stats span{font-size:12px;color:var(--muted)}
.ticker{overflow:hidden;background:var(--ink);color:#fff}.ticker-track{display:flex;width:max-content;gap:28px;padding:15px 0;align-items:center;animation:ticker 26s linear infinite}.ticker span{font:700 12px "Space Grotesk";letter-spacing:.14em}.ticker i{font-style:normal;color:var(--lime)}@keyframes ticker{to{transform:translateX(-50%)}}
.section{padding:120px 0}.section-top{display:flex;align-items:center;gap:14px;margin-bottom:45px}.index{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font:700 11px "Space Grotesk"}
.about-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:90px;align-items:start}.about-text{font-size:18px;line-height:1.8;color:var(--text-soft)}.about-text p+p{margin-top:18px}.text-links{display:flex;gap:26px;margin-top:30px}.text-links a{font-weight:800;border-bottom:1px solid}
.projects-section{background:var(--section-alt)}.section-title-row{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:55px}.section-note{max-width:430px;color:var(--muted);line-height:1.7}
.project-feature{display:grid;grid-template-columns:1.12fr .88fr;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:28px}.project-image{min-height:510px;background:#161821;overflow:hidden}.project-image img{height:100%;object-fit:cover;transition:transform .6s}.project-feature:hover img{transform:scale(1.025)}.project-info{padding:46px;display:flex;flex-direction:column}.project-meta{display:flex;justify-content:space-between;color:var(--muted);font:700 11px "Space Grotesk";letter-spacing:.12em}.project-info h3{font:700 38px/1.08 "Space Grotesk";letter-spacing:-.04em;margin:60px 0 18px}.project-info>p{color:var(--muted);line-height:1.75}.project-info ul{list-style:none;margin:25px 0;display:grid;gap:9px}.project-info li:before{content:"✓";margin-right:10px;color:var(--violet);font-weight:900}.tag-row{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px}.tag-row span{background:#f0efeb;border-radius:8px;padding:7px 10px;font-size:11px;font-weight:800}
.skills-section{background:var(--dark);color:#fff}.light{color:#fff}.section-top.light p,.section-note.light{color:#a8abb5}.section-top.light .index{border-color:rgba(255,255,255,.2)}
.capability-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.cap-card{min-height:270px;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.035);border-radius:24px;padding:30px;transition:.3s}.cap-card:hover{transform:translateY(-5px);background:rgba(255,255,255,.065)}.cap-card>span{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--lime);color:var(--ink);font:700 11px "Space Grotesk"}.cap-card h3{font:700 25px "Space Grotesk";margin:30px 0 12px}.cap-card p{color:#adb0ba;max-width:470px;line-height:1.7}
.stack-cloud{display:flex;flex-wrap:wrap;gap:10px;border-top:1px solid rgba(255,255,255,.12);margin-top:55px;padding-top:32px}.stack-cloud b{background:#22242c;padding:10px 14px;border-radius:10px;font-size:12px}
.journey-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px}.timeline{border-top:1px solid var(--line)}.timeline article{display:grid;grid-template-columns:150px 1fr;gap:30px;padding:34px 0;border-bottom:1px solid var(--line)}.timeline time{font:700 10px "Space Grotesk";letter-spacing:.1em;color:var(--muted)}.timeline h3{font:700 22px "Space Grotesk";margin-bottom:8px}.timeline p{color:var(--muted);line-height:1.7}
.contact-section{background:var(--lime)}.contact-wrap{display:grid;grid-template-columns:1fr .9fr;gap:80px;align-items:end}.contact-copy h2{font:700 clamp(48px,5vw,74px)/.98 "Space Grotesk";letter-spacing:-.06em}.contact-copy>p{max-width:590px;margin-top:22px;line-height:1.7}.contact-panel{background:var(--ink);color:#fff;border-radius:28px;padding:18px}.contact-panel>a{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:15px;padding:20px 14px;border-bottom:1px solid rgba(255,255,255,.12)}.contact-panel small{color:#9296a0}.contact-panel strong{font-size:15px;word-break:break-word}.contact-panel span{color:var(--lime)}.social-row{display:flex;gap:10px;padding:18px 14px 4px}.social-row a{background:#24262d;padding:9px 13px;border-radius:9px;font-size:12px}
footer{background:var(--ink);color:#a9acb4}footer .container{min-height:86px;display:flex;align-items:center;justify-content:space-between;font-size:12px}footer a{color:#fff}
.reveal{opacity:0;transform:translateY(25px);transition:.75s ease}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.13s}.cursor-glow{position:fixed;width:320px;height:320px;border-radius:50%;background:rgba(118,87,255,.07);filter:blur(45px);pointer-events:none;z-index:-1;transform:translate(-50%,-50%)}
@media(max-width:960px){.hero-grid,.about-layout,.journey-grid,.contact-wrap{grid-template-columns:1fr}.hero-copy{text-align:center}.hero-copy>*{margin-left:auto;margin-right:auto}.hero-actions{justify-content:center}.project-feature{grid-template-columns:1fr}.project-image{min-height:430px}.section-title-row{align-items:start;flex-direction:column}.hero-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){:root{--container:min(100% - 28px,1180px)}.nav{height:70px}.menu-btn{display:block;z-index:3}.nav-links{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;justify-content:center;font-size:24px;transform:translateX(100%);transition:.35s}.nav-links.open{transform:none}.hero{padding-top:115px}.hero-grid{gap:30px}.hero h1,.display{font-size:46px}.hero-art{min-height:500px}.floating-label{display:none}.hero-stats{grid-template-columns:1fr 1fr}.hero-stats div:nth-child(2){border-right:0}.hero-stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}.section{padding:85px 0}.project-info{padding:30px 24px;min-height:450px}.project-info h3{font-size:31px;margin-top:45px}.project-image{min-height:320px}.capability-grid{grid-template-columns:1fr}.timeline article{grid-template-columns:1fr;gap:10px}.contact-panel>a{grid-template-columns:1fr auto}.contact-panel small{grid-column:1/-1}.contact-panel strong{font-size:13px}.hero-actions .btn{width:100%;justify-content:center}footer .container{flex-direction:column;justify-content:center;gap:6px;text-align:center}}


/* Theme toggle */
.theme-toggle{width:44px;height:44px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;transition:.25s}
.theme-toggle:hover{transform:translateY(-2px)}
.theme-toggle span{position:absolute;transition:.3s ease;font-size:18px}.theme-toggle .moon{opacity:0;transform:translateY(18px)}
body.dark-mode .theme-toggle .sun{opacity:0;transform:translateY(-18px)}body.dark-mode .theme-toggle .moon{opacity:1;transform:none}

body.dark-mode{--bg:#0d0f14;--ink:#f6f7fb;--muted:#9da2ae;--line:rgba(255,255,255,.12);--surface:#151821;--section-alt:#11141b;--header-bg:rgba(13,15,20,.82);--text-soft:#b8bdc8;--dark:#080a0f;background:var(--bg);color:var(--ink)}
body.dark-mode .brand span{background:#f4f6fb;color:#111217}
body.dark-mode .nav-links{color:#b9bec8}
body.dark-mode .nav-contact{border-color:var(--ink);color:var(--ink)}
body.dark-mode .status-pill,body.dark-mode .floating-label,body.dark-mode .main-card{background:rgba(21,24,33,.92);border-color:rgba(255,255,255,.11);color:var(--ink)}
body.dark-mode .main-card{box-shadow:0 30px 90px rgba(0,0,0,.45)}
body.dark-mode .monogram{box-shadow:0 18px 38px rgba(118,87,255,.38)}
body.dark-mode .project-info>p,body.dark-mode .section-note,body.dark-mode .timeline p{color:var(--muted)}
body.dark-mode .tag-row span{background:#222630;color:#e9ecf2}
body.dark-mode .timeline,body.dark-mode .timeline article{border-color:var(--line)}
body.dark-mode .contact-section{background:#bfe93c;color:#101217}
body.dark-mode .contact-section .section-top p,body.dark-mode .contact-section .index{color:#101217;border-color:rgba(16,18,23,.25)}
body.dark-mode .contact-copy>p{color:#242830}
body.dark-mode .cursor-glow{background:rgba(118,87,255,.12)}
body.dark-mode .grid-lines{opacity:.65}
body.dark-mode .secondary{color:var(--ink)}
body.dark-mode .project-feature{box-shadow:0 20px 70px rgba(0,0,0,.18)}
body.dark-mode footer{background:#07090d}

@media(max-width:720px){.theme-toggle{width:52px;height:52px}.nav-links .theme-toggle{margin-bottom:8px}body.dark-mode .nav-links{background:var(--bg)}}


/* ===== Final contrast and CV fixes ===== */
.cv-nav{padding:10px 16px;border-radius:999px;background:var(--ink);color:var(--bg)!important;white-space:nowrap}
.cv-button{background:linear-gradient(135deg,var(--violet),#5a3ee8);color:#fff;border:0}
.cv-section{padding:42px 0 110px;background:var(--section-alt)}
.cv-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:42px;padding:42px;border:1px solid var(--line);border-radius:28px;background:var(--surface);box-shadow:0 18px 60px rgba(15,18,25,.08)}
.cv-label{font:700 11px "Space Grotesk";letter-spacing:.16em;color:var(--violet);margin-bottom:12px}
.cv-card h2{font:700 clamp(30px,4vw,48px)/1.05 "Space Grotesk";letter-spacing:-.045em;max-width:730px;color:var(--ink)}
.cv-card p:not(.cv-label){margin-top:14px;color:var(--muted);max-width:720px;line-height:1.7}
.cv-download{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:0 22px;border-radius:15px;background:var(--ink);color:var(--bg);font-weight:800;white-space:nowrap}

/* Use variables everywhere so light/dark modes remain readable */
body,.journey-section,.hero,.section{color:var(--ink)}
.nav-links{color:var(--muted)}
.status-pill,.floating-label{background:var(--surface);color:var(--ink)}
.main-card{background:color-mix(in srgb,var(--surface) 94%,transparent);border-color:var(--line);color:var(--ink)}
.project-feature{color:var(--ink)}
.project-info h3,.project-info li,.timeline h3,.journey-grid .display,.about-layout .display{color:var(--ink)}
.secondary{color:var(--ink)}
.tag-row span{background:color-mix(in srgb,var(--surface) 82%,var(--ink) 8%);color:var(--ink)}

body.dark-mode .hero h1 span:after{background:#bfe93c}
body.dark-mode .hero h1 span{color:#f7f8fb}
body.dark-mode .status-pill{background:#171b24;color:#f5f7fb}
body.dark-mode .floating-label{background:#171b24;color:#f5f7fb}
body.dark-mode .main-card{background:rgba(21,24,33,.96);color:#f5f7fb}
body.dark-mode .main-card h2{color:#f5f7fb}
body.dark-mode .main-card>p,body.dark-mode .card-head{color:#aeb4c1}
body.dark-mode .project-feature{background:#151821;color:#f5f7fb}
body.dark-mode .project-info h3,body.dark-mode .project-info li{color:#f5f7fb}
body.dark-mode .project-meta{color:#abb1bd}
body.dark-mode .about-layout .display,body.dark-mode .journey-grid .display,body.dark-mode .timeline h3{color:#f5f7fb}
body.dark-mode .about-text,body.dark-mode .about-text p{color:#c0c5cf}
body.dark-mode .text-links a{color:#f5f7fb}
body.dark-mode .journey-section{background:#0d0f14;color:#f5f7fb}
body.dark-mode .cv-section{background:#11141b}
body.dark-mode .cv-card{background:#151821;border-color:rgba(255,255,255,.12);box-shadow:0 18px 70px rgba(0,0,0,.3)}
body.dark-mode .cv-card h2{color:#f5f7fb}
body.dark-mode .cv-download{background:#f5f7fb;color:#101217}
body.dark-mode .cv-nav{background:#f5f7fb;color:#101217!important}
body.dark-mode .secondary{background:#171b24;color:#f5f7fb;border-color:rgba(255,255,255,.14)}
body.dark-mode .theme-toggle{background:#171b24;color:#f5f7fb}
body.dark-mode .menu-btn i{background:#f5f7fb}
body.dark-mode .nav-contact{color:#f5f7fb;border-color:#f5f7fb}
body.dark-mode .project-info>p,body.dark-mode .timeline p,body.dark-mode .section-note{color:#aeb4c1}
body.dark-mode .tag-row span{background:#242934;color:#f0f2f7}
body.dark-mode .index{color:var(--ink)}

@media(max-width:720px){
  .cv-card{grid-template-columns:1fr;padding:28px 22px}
  .cv-download{width:100%}
  .cv-nav{font-size:15px}
}

/* Explicit primary button contrast fix */
.primary{background:#0f1219;color:#ffffff;border:1px solid transparent}
.primary b{color:var(--lime)}
body.dark-mode .primary{background:#f5f7fb !important;color:#0f1219 !important;border-color:rgba(255,255,255,.14)}
body.dark-mode .primary b{color:#6b52ff}
body.dark-mode .primary:hover, .primary:hover{filter:brightness(1.02)}
