:root{
    --bg:#0D1117; --bg-2:#0A0D12; --surface:#161B22; --surface-2:#1C2129; --surface-3:#222834;
    --ink:#E6EDF3; --muted:#8B949E; --dim:#6E7681;
    --blue:#58A6FF; --green:#3FB950; --purple:#BC8CFF; --orange:#F0883E; --pink:#F778BA; --yellow:#E3B341;
    --line:#30363D; --line-soft:#21262D;
    --radius-lg:16px; --radius-md:10px; --radius-sm:6px;
    --shadow-soft:0 28px 60px -24px rgba(0,0,0,0.7);
    --shadow-glow:0 0 40px -8px rgba(88,166,255,0.25);
    --ease:cubic-bezier(.19,1,.22,1);
    --ease-spring:cubic-bezier(.34,1.56,.64,1);
  }
  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0; font-family:'Sora',sans-serif; background:var(--bg); color:var(--ink); line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
  h1,h2,h3{font-family:'Space Grotesk',sans-serif; letter-spacing:-0.02em; margin:0;}
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  code, .mono{font-family:'JetBrains Mono',monospace;}
  .container{max-width:1180px; margin:0 auto; padding:0 32px;}
  .skip-link{position:absolute; left:-999px; top:0; background:var(--blue); color:#04121a; padding:10px 16px; border-radius:8px; z-index:400;}
  .skip-link:focus{left:16px; top:16px;}
  ::selection{background:rgba(88,166,255,0.3); color:#fff;}
  button{font-family:inherit;}

  /* ============ BOOT LOADER ============ */
  .boot-loader{position:fixed; inset:0; background:var(--bg-2); z-index:500; display:flex; align-items:center; justify-content:center; transition:opacity .6s var(--ease), visibility .6s var(--ease);}
  .boot-loader.hide{opacity:0; visibility:hidden; pointer-events:none;}
  .boot-box{font-family:'JetBrains Mono',monospace; font-size:0.95rem; color:var(--green); text-align:left; width:340px;}
  .boot-box .bline{opacity:0; min-height:1.4em;}
  .boot-cursor{display:inline-block; width:8px; height:1em; background:var(--green); vertical-align:middle; animation:blink 0.9s steps(1) infinite;}

  /* ============ TOP PROGRESS BAR ============ */
  .scroll-progress{position:fixed; top:0; left:0; height:2px; background:linear-gradient(90deg,var(--blue),var(--purple),var(--pink)); z-index:150; width:0%; transition:width .1s linear;}

  /* ============ SCROLLSPY DOTS ============ */
  .spy-dots{position:fixed; right:26px; top:50%; transform:translateY(-50%); z-index:90; display:flex; flex-direction:column; gap:14px;}
  .spy-dot{width:8px; height:8px; border-radius:50%; background:var(--line); border:none; cursor:pointer; padding:0; position:relative; transition:background .3s;}
  .spy-dot::after{content:attr(data-label); position:absolute; right:18px; top:50%; transform:translateY(-50%); font-family:'JetBrains Mono',monospace; font-size:0.68rem; color:var(--muted); background:var(--surface); border:1px solid var(--line); padding:4px 9px; border-radius:6px; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .2s;}
  .spy-dot:hover::after{opacity:1;}
  .spy-dot.active{background:var(--green); box-shadow:0 0 10px var(--green);}
  @media (max-width:960px){ .spy-dots{display:none;} }

  /* ============ NAV ============ */
  .nav{position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(13,17,23,0.82); backdrop-filter:blur(14px); border-bottom:1px solid var(--line);}
  .nav-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 32px; max-width:1180px; margin:0 auto;}
  .brand{display:flex; align-items:center; gap:10px; font-weight:600; font-size:0.98rem; font-family:'JetBrains Mono',monospace;}
  .brand-mark{width:32px; height:32px; border-radius:8px; background:var(--surface-2); border:1px solid var(--line); color:var(--green); display:flex; align-items:center; justify-content:center; font-size:0.78rem;}
  .nav-right{display:flex; align-items:center; gap:12px;}
  .menu-btn{display:flex; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--line); color:var(--muted); padding:9px 14px; border-radius:8px; font-family:'JetBrains Mono',monospace; font-size:0.8rem; cursor:pointer; transition:all .3s var(--ease);}
  .menu-btn:hover{border-color:var(--blue); color:var(--ink);}
  .menu-btn kbd{background:var(--surface-2); border:1px solid var(--line); border-radius:4px; padding:2px 6px; font-size:0.68rem; color:var(--dim);}
  .nav-cta{background:var(--green); color:#04120a; padding:9px 18px; border-radius:8px; font-size:0.84rem; font-weight:700; font-family:'JetBrains Mono',monospace; transition:transform .3s var(--ease);}
  .nav-cta:hover{transform:translateY(-2px); box-shadow:0 0 20px rgba(63,185,80,0.35);}

  /* ============ COMMAND PALETTE ============ */
  .cmdk-overlay{position:fixed; inset:0; background:rgba(5,7,10,0.75); backdrop-filter:blur(6px); z-index:300; display:flex; align-items:flex-start; justify-content:center; padding-top:12vh; opacity:0; visibility:hidden; transition:opacity .3s var(--ease), visibility .3s var(--ease);}
  .cmdk-overlay.open{opacity:1; visibility:visible;}
  .cmdk-panel{width:92%; max-width:560px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-soft), var(--shadow-glow); overflow:hidden; transform:translateY(-16px) scale(0.98); transition:transform .35s var(--ease-spring);}
  .cmdk-overlay.open .cmdk-panel{transform:translateY(0) scale(1);}
  .cmdk-search{display:flex; align-items:center; gap:12px; padding:18px 20px; border-bottom:1px solid var(--line);}
  .cmdk-search svg{width:18px; height:18px; color:var(--muted); flex-shrink:0;}
  .cmdk-search input{flex:1; background:none; border:none; outline:none; color:var(--ink); font-family:'JetBrains Mono',monospace; font-size:0.95rem;}
  .cmdk-search input::placeholder{color:var(--dim);}
  .cmdk-esc{font-family:'JetBrains Mono',monospace; font-size:0.68rem; color:var(--dim); border:1px solid var(--line); border-radius:4px; padding:3px 7px;}
  .cmdk-list{list-style:none; margin:0; padding:8px; max-height:56vh; overflow-y:auto;}
  .cmdk-item{display:flex; align-items:center; gap:14px; padding:12px 14px; border-radius:8px; cursor:pointer; opacity:0; transform:translateX(-8px); transition:background .15s;}
  .cmdk-overlay.open .cmdk-item{animation:cmdkIn .4s var(--ease) forwards;}
  @keyframes cmdkIn{to{opacity:1; transform:translateX(0);}}
  .cmdk-item:hover, .cmdk-item.focus{background:var(--surface-2);}
  .cmdk-item .ci-icon{width:30px; height:30px; border-radius:7px; background:var(--surface-3); display:flex; align-items:center; justify-content:center; color:var(--blue); flex-shrink:0;}
  .cmdk-item .ci-icon svg{width:15px; height:15px;}
  .cmdk-item .ci-text b{display:block; font-size:0.88rem; font-weight:500;}
  .cmdk-item .ci-text span{font-size:0.74rem; color:var(--muted); font-family:'JetBrains Mono',monospace;}
  .cmdk-item .ci-key{margin-left:auto; font-family:'JetBrains Mono',monospace; font-size:0.7rem; color:var(--dim); border:1px solid var(--line); border-radius:4px; padding:2px 7px;}

  /* ============ HERO ============ */
  .hero{position:relative; min-height:100vh; display:flex; align-items:center; padding:150px 0 80px; overflow:hidden;}
  .dots-bg{position:absolute; inset:0; z-index:0; background-image:radial-gradient(rgba(255,255,255,0.05) 1px, transparent 1px); background-size:26px 26px; mask-image:radial-gradient(ellipse 70% 60% at 50% 40%, black 20%, transparent 75%);}
  .cursor-glow{position:absolute; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle, rgba(88,166,255,0.09), transparent 70%); pointer-events:none; z-index:1; transition:transform .15s linear; will-change:transform;}
  .mesh-blob{position:absolute; border-radius:50%; filter:blur(90px); opacity:0.25; z-index:0;}
  .mesh-1{width:400px; height:400px; top:-100px; right:-60px; background:var(--purple); animation:meshfloat1 16s ease-in-out infinite;}
  .mesh-2{width:340px; height:340px; bottom:-120px; left:-60px; background:var(--blue); animation:meshfloat2 18s ease-in-out infinite;}
  @keyframes meshfloat1{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-30px,40px) scale(1.1);}}
  @keyframes meshfloat2{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(40px,-30px) scale(1.05);}}
  .code-float{position:absolute; font-family:'JetBrains Mono',monospace; font-weight:700; opacity:0.06; user-select:none; pointer-events:none;}
  .hero-inner{position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; width:100%;}
  .eyebrow{display:inline-flex; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--line); color:var(--green); font-family:'JetBrains Mono',monospace; font-size:0.76rem; font-weight:500; padding:7px 14px; border-radius:100px; opacity:0; transform:translateY(14px);}
  .eyebrow .dot{width:6px; height:6px; border-radius:50%; background:var(--green); box-shadow:0 0 8px var(--green); animation:pulse 2.2s infinite;}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.3;}}
  @keyframes blink{50%{opacity:0;}}
  .hero h1{font-size:clamp(2.2rem,4.6vw,3.7rem); line-height:1.12; font-weight:600; margin:20px 0 18px; opacity:0; transform:translateY(24px);}
  .hero h1 .blue{color:var(--blue);}
  .hero h1 .green{color:var(--green);}
  .hero p.lede{font-size:1.08rem; color:var(--muted); max-width:500px; margin-bottom:30px; opacity:0; transform:translateY(20px);}
  .hero-facts{display:flex; flex-wrap:wrap; gap:10px 24px; margin-bottom:34px; opacity:0; transform:translateY(20px);}
  .hero-fact{display:flex; align-items:center; gap:9px; font-size:0.86rem; font-weight:500; font-family:'JetBrains Mono',monospace;}
  .hero-fact svg{width:15px; height:15px; color:var(--blue);}
  .hero-actions{display:flex; flex-wrap:wrap; gap:14px; align-items:center; opacity:0; transform:translateY(20px);}
  .btn{display:inline-flex; align-items:center; gap:9px; padding:13px 22px; border-radius:8px; font-weight:600; font-size:0.88rem; font-family:'JetBrains Mono',monospace; transition:transform .25s var(--ease-spring), box-shadow .3s var(--ease), background .3s; border:1px solid var(--line); cursor:pointer; position:relative;}
  .btn-primary{background:var(--green); color:#04120a; border-color:var(--green);}
  .btn-primary:hover{transform:translateY(-3px); box-shadow:0 16px 30px -14px rgba(63,185,80,0.5);}
  .btn-ghost{background:var(--surface); color:var(--ink);}
  .btn-ghost:hover{border-color:var(--blue); color:var(--blue); transform:translateY(-3px);}
  .btn svg{width:15px; height:15px;}
  .qr-chip{display:inline-flex; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--line); border-radius:100px; padding:6px 14px 6px 6px; cursor:pointer; transition:border-color .3s;}
  .qr-chip:hover{border-color:var(--purple);}
  .qr-chip img{width:34px; height:34px; border-radius:6px;}
  .qr-chip span{font-family:'JetBrains Mono',monospace; font-size:0.72rem; color:var(--muted);}
  .hero.loaded .eyebrow,.hero.loaded h1,.hero.loaded p.lede,.hero.loaded .hero-facts,.hero.loaded .hero-actions{opacity:1; transform:translateY(0);}
  .eyebrow{transition:all .7s var(--ease) .05s;}
  .hero h1{transition:all .8s var(--ease) .16s;}
  .hero p.lede{transition:all .8s var(--ease) .26s;}
  .hero-facts{transition:all .8s var(--ease) .34s;}
  .hero-actions{transition:all .8s var(--ease) .42s;}

  .term-wrap{position:relative; opacity:0; transform:translateY(20px) scale(0.97);}
  .hero.loaded .term-wrap{opacity:1; transform:translateY(0) scale(1); transition:all 1s var(--ease) .2s;}
  .terminal{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-soft); overflow:hidden;}
  .term-bar{display:flex; align-items:center; gap:8px; padding:12px 16px; background:var(--surface-2); border-bottom:1px solid var(--line);}
  .term-dot{width:11px; height:11px; border-radius:50%;}
  .term-bar .term-title{margin-left:8px; font-family:'JetBrains Mono',monospace; font-size:0.76rem; color:var(--muted);}
  .term-body{padding:22px 24px; font-family:'JetBrains Mono',monospace; font-size:0.86rem; line-height:1.85; min-height:280px;}
  .k{color:var(--purple);} .s{color:#A5D6A7;} .p{color:var(--muted);} .fn{color:var(--blue);} .c{color:#6A737D;}
  #typedCode{white-space:pre-wrap;}
  .caret{display:inline-block; width:7px; height:1.1em; background:var(--green); vertical-align:text-bottom; animation:blink 1s steps(1) infinite;}

  .scroll-cue{position:absolute; bottom:30px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; font-family:'JetBrains Mono',monospace; font-size:0.7rem; color:var(--muted); z-index:3;}
  .scroll-cue .line{width:1px; height:34px; background:linear-gradient(var(--green), transparent); animation:scrollline 2s infinite;}
  @keyframes scrollline{0%{transform:scaleY(0); transform-origin:top;}50%{transform:scaleY(1); transform-origin:top;}50.01%{transform-origin:bottom;}100%{transform:scaleY(0); transform-origin:bottom;}}

  .reveal{opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
  .reveal.in-view{opacity:1; transform:translateY(0);}
  .tilt{transition:transform .25s var(--ease);}

  .section{padding:104px 0; scroll-margin-top:80px;}
  .tag-label{display:inline-flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--line); color:var(--green); font-size:0.76rem; font-weight:500; padding:7px 15px; border-radius:100px; margin-bottom:16px; font-family:'JetBrains Mono',monospace;}
  .section-title{font-size:clamp(1.7rem,3vw,2.4rem); font-weight:600;}
  .section-sub{color:var(--muted); font-size:1rem; max-width:600px; margin-top:12px;}
  .section-head{margin-bottom:48px;}
  .section-alt{background:var(--bg-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .divider{height:1px; background:linear-gradient(90deg, transparent, var(--line), transparent);}

  /* STATS + contribution graph */
  .stats{background:var(--bg-2); padding:52px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:34px;}
  .stat{border-left:1px solid var(--line); padding-left:20px;}
  .stat-num{font-family:'JetBrains Mono',monospace; font-size:2.2rem; font-weight:700; color:var(--green);}
  .stat-label{color:var(--muted); font-size:0.84rem; margin-top:6px; font-family:'JetBrains Mono',monospace;}
  .contrib-graph{display:flex; gap:3px; flex-wrap:wrap; max-width:100%;}
  .contrib-cell{width:11px; height:11px; border-radius:2px; background:var(--surface-2);}

  /* ABOUT */
  .about-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:start;}
  .cover-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden;}
  .cover-header{padding:12px 18px; background:var(--surface-2); border-bottom:1px solid var(--line); font-family:'JetBrains Mono',monospace; font-size:0.78rem; color:var(--muted); display:flex; align-items:center; gap:8px;}
  .cover-body{padding:26px 28px; position:relative;}
  .cover-body .quote-mark{position:absolute; top:8px; left:20px; font-family:'Space Grotesk',serif; font-size:3.5rem; color:var(--surface-3); line-height:1;}
  .cover-body p{font-size:1.02rem; color:var(--ink); position:relative; z-index:1; margin-bottom:14px;}
  .cover-body p:last-child{margin-bottom:0; color:var(--muted); font-size:0.94rem;}
  .about-text p{font-size:1.02rem; color:var(--muted); margin-bottom:20px;}
  .about-text p:first-child{font-size:1.2rem; color:var(--ink); font-weight:500; line-height:1.5;}
  .pill-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
  .pill{background:var(--surface); border:1px solid var(--line); padding:8px 15px; border-radius:6px; font-size:0.8rem; font-weight:500; font-family:'JetBrains Mono',monospace;}

  /* EDUCATION */
  .edu-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
  .edu-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); padding:26px; transition:transform .3s var(--ease), border-color .3s;}
  .edu-card:hover{transform:translateY(-5px); border-color:var(--purple);}
  .edu-top{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:14px;}
  .edu-icon{width:42px; height:42px; border-radius:9px; background:var(--surface-2); color:var(--purple); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .edu-icon svg{width:20px; height:20px;}
  .edu-period{font-family:'JetBrains Mono',monospace; font-size:0.72rem; color:var(--muted); background:var(--surface-2); padding:4px 10px; border-radius:100px; white-space:nowrap;}
  .edu-degree{font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:1.08rem; margin-bottom:4px;}
  .edu-school{color:var(--muted); font-size:0.88rem; margin-bottom:12px;}
  .edu-score{display:inline-flex; align-items:center; gap:7px; font-family:'JetBrains Mono',monospace; font-size:0.78rem; color:var(--green); background:rgba(63,185,80,0.1); padding:5px 11px; border-radius:100px;}

  /* COMMIT LOG - experience */
  .commit-list{display:flex; flex-direction:column;}
  .commit-item{position:relative; display:grid; grid-template-columns:auto 1fr auto; gap:20px; align-items:start; padding:22px 0; border-bottom:1px solid var(--line);}
  .commit-item:last-child{border-bottom:none;}
  .commit-hash{width:38px; height:38px; border-radius:50%; background:var(--surface-2); border:1px solid var(--line); color:var(--purple); display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-size:0.7rem; flex-shrink:0;}
  .commit-role{font-weight:600; font-size:1.08rem;}
  .commit-org{color:var(--muted); font-size:0.86rem; margin-top:2px;}
  .commit-desc{color:var(--muted); font-size:0.9rem; margin-top:8px; max-width:540px;}
  .commit-period{font-family:'JetBrains Mono',monospace; font-size:0.74rem; color:var(--green); background:rgba(63,185,80,0.1); padding:5px 12px; border-radius:100px; white-space:nowrap;}

  /* STACK - skills w/ terminal bars */
  .stack-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  .stack-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); padding:24px; transition:transform .3s var(--ease), border-color .3s;}
  .stack-card:hover{transform:translateY(-5px); border-color:var(--blue);}
  .stack-icon{width:42px; height:42px; border-radius:8px; background:var(--surface-2); color:var(--blue); display:flex; align-items:center; justify-content:center; margin-bottom:14px;}
  .stack-icon svg{width:20px; height:20px;}
  .stack-card h3{font-size:1rem; font-weight:600; margin-bottom:10px;}
  .term-bar-mini{font-family:'JetBrains Mono',monospace; font-size:0.76rem; color:var(--green);}
  .term-bar-track{color:var(--line-soft);}

  /* CERTIFICATIONS */
  .cert-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
  .cert-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); padding:22px; display:flex; gap:14px; align-items:flex-start; transition:transform .3s var(--ease), border-color .3s;}
  .cert-card:hover{transform:translateY(-4px); border-color:var(--yellow);}
  .cert-badge{width:44px; height:44px; border-radius:10px; background:linear-gradient(145deg,var(--yellow),var(--orange)); color:#1a1206; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .cert-badge svg{width:20px; height:20px;}
  .cert-title{font-size:0.94rem; font-weight:600; margin-bottom:3px;}
  .cert-issuer{font-size:0.8rem; color:var(--muted); margin-bottom:6px;}
  .cert-id{font-family:'JetBrains Mono',monospace; font-size:0.68rem; color:var(--dim);}

  /* ACHIEVEMENTS */
  .badge-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
  .gh-badge{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); padding:20px 16px; text-align:center; transition:transform .3s var(--ease);}
  .gh-badge:hover{transform:translateY(-5px); border-color:var(--purple);}
  .gh-icon{width:46px; height:46px; margin:0 auto 12px; border-radius:10px; background:linear-gradient(145deg,var(--blue),var(--purple)); color:#0D1117; display:flex; align-items:center; justify-content:center;}
  .gh-icon svg{width:20px; height:20px;}
  .gh-badge h4{font-size:0.86rem; font-weight:600; margin-bottom:4px;}
  .gh-badge span{font-size:0.72rem; color:var(--muted); font-family:'JetBrains Mono',monospace;}

  /* TESTIMONIALS - PR review style */
  .testi-track-wrap{overflow:hidden; position:relative; mask-image:linear-gradient(90deg, transparent, black 5%, black 95%, transparent);}
  .testi-track{display:flex; gap:18px; width:max-content; animation:marquee 42s linear infinite;}
  .testi-track-wrap:hover .testi-track{animation-play-state:paused;}
  @keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}
  .testi-card{width:340px; flex-shrink:0; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); padding:22px;}
  .testi-top{display:flex; align-items:center; gap:12px; margin-bottom:14px;}
  .testi-avatar{width:38px; height:38px; border-radius:50%; object-fit:cover; border:1px solid var(--line);}
  .testi-name{font-size:0.9rem; font-weight:600;}
  .testi-role{font-size:0.76rem; color:var(--muted); font-family:'JetBrains Mono',monospace;}
  .testi-approve{margin-left:auto; color:var(--green); display:flex; align-items:center; gap:5px; font-family:'JetBrains Mono',monospace; font-size:0.68rem; background:rgba(63,185,80,0.1); padding:4px 9px; border-radius:100px;}
  .testi-approve svg{width:11px; height:11px;}
  .testi-text{font-size:0.9rem; color:var(--muted); line-height:1.65;}

  /* GALLERY */
  .gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
  .gallery-item{position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:4/3; cursor:pointer; border:1px solid var(--line);}
  .gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease);}
  .gallery-item:hover img{transform:scale(1.08);}
  .gallery-caption{position:absolute; inset:auto 0 0 0; padding:14px 16px; background:linear-gradient(to top, rgba(0,0,0,0.85), transparent); font-size:0.8rem; font-family:'JetBrains Mono',monospace; opacity:0; transform:translateY(8px); transition:all .3s var(--ease);}
  .gallery-item:hover .gallery-caption{opacity:1; transform:translateY(0);}
  .lightbox{position:fixed; inset:0; background:rgba(5,7,10,0.92); z-index:400; display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .3s var(--ease), visibility .3s var(--ease); padding:40px;}
  .lightbox.open{opacity:1; visibility:visible;}
  .lightbox img{max-width:90%; max-height:80vh; border-radius:12px; box-shadow:var(--shadow-soft);}
  .lightbox-close{position:absolute; top:24px; right:32px; width:40px; height:40px; border-radius:50%; background:var(--surface); border:1px solid var(--line); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer;}

  /* BLOG */
  .blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .blog-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); padding:24px; transition:transform .3s var(--ease), border-color .3s; display:flex; flex-direction:column; height:100%;}
  .blog-card:hover{transform:translateY(-5px); border-color:var(--blue);}
  .blog-tag{font-family:'JetBrains Mono',monospace; font-size:0.68rem; color:var(--orange); margin-bottom:12px;}
  .blog-card h3{font-size:1rem; font-weight:600; margin-bottom:10px; line-height:1.4;}
  .blog-card p{color:var(--muted); font-size:0.86rem; margin-bottom:16px; flex:1;}
  .blog-meta{display:flex; justify-content:space-between; align-items:center; font-family:'JetBrains Mono',monospace; font-size:0.72rem; color:var(--dim); border-top:1px solid var(--line); padding-top:14px;}
  .blog-read{color:var(--blue); display:flex; align-items:center; gap:5px;}

  /* CONTACT + REFERENCES */
  .contact-layout{display:grid; grid-template-columns:1.1fr 0.9fr; gap:24px; align-items:start;}
  .contact-main{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:56px; position:relative; overflow:hidden;}
  .contact-main::before{content:''; position:absolute; top:-30%; right:-10%; width:55%; height:150%; background:radial-gradient(circle, rgba(88,166,255,0.14), transparent 65%);}
  .contact-inner{position:relative; z-index:1;}
  .contact-main h2{font-size:clamp(1.7rem,3vw,2.4rem); margin-bottom:14px;}
  .contact-main p.lede2{color:var(--muted); font-size:0.98rem; margin-bottom:28px;}
  .contact-info{display:grid; gap:14px; margin-bottom:30px;}
  .ci-row{display:flex; align-items:center; gap:12px; font-size:0.88rem;}
  .ci-row svg{width:16px; height:16px; color:var(--blue); flex-shrink:0;}
  .ci-row span{color:var(--muted); font-family:'JetBrains Mono',monospace; font-size:0.82rem;}
  .contact-actions{display:flex; flex-wrap:wrap; gap:14px;}
  .side-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; text-align:center; margin-bottom:20px;}
  .side-card img{width:150px; height:150px; margin:0 auto 16px; border-radius:10px; border:1px solid var(--line);}
  .side-card h4{font-size:0.92rem; margin-bottom:6px;}
  .side-card p{color:var(--muted); font-size:0.78rem; font-family:'JetBrains Mono',monospace;}
  .ref-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); padding:18px 20px; margin-bottom:12px;}
  .ref-card:last-child{margin-bottom:0;}
  .ref-name{font-size:0.9rem; font-weight:600;}
  .ref-role{font-size:0.78rem; color:var(--muted); margin-top:2px;}
  .ref-note{font-size:0.74rem; color:var(--dim); font-family:'JetBrains Mono',monospace; margin-top:8px; display:flex; align-items:center; gap:6px;}
  .ref-note svg{width:12px; height:12px;}

  .social-row{display:flex; gap:12px; margin-top:24px;}
  .social-row a{width:40px; height:40px; border-radius:8px; border:1px solid var(--line); background:var(--surface-2); display:flex; align-items:center; justify-content:center; color:var(--ink); transition:all .3s;}
  .social-row a:hover{border-color:var(--green); color:var(--green); transform:translateY(-3px);}
  .social-row svg{width:16px; height:16px;}

  footer{padding:36px 32px; text-align:center; color:var(--muted); font-size:0.82rem; font-family:'JetBrains Mono',monospace; border-top:1px solid var(--line);}

  @media (max-width:960px){
    .hero-inner{grid-template-columns:1fr;}
    .term-wrap{order:-1;}
    .about-grid{grid-template-columns:1fr;}
    .edu-grid{grid-template-columns:1fr;}
    .stack-grid{grid-template-columns:repeat(2,1fr);}
    .cert-grid{grid-template-columns:repeat(2,1fr);}
    .badge-grid{grid-template-columns:repeat(2,1fr); row-gap:24px;}
    .stats-grid{grid-template-columns:repeat(2,1fr); row-gap:24px;}
    .commit-item{grid-template-columns:auto 1fr;}
    .commit-period{grid-column:2; margin-top:8px;}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .blog-grid{grid-template-columns:1fr;}
    .contact-layout{grid-template-columns:1fr;}
    .contact-main{padding:40px 28px;}
  }
  @media (max-width:680px){
    .container{padding:0 20px;}
    .section{padding:68px 0;}
    .stack-grid, .cert-grid{grid-template-columns:1fr;}
    .contrib-graph{display:none;}
    .gallery-grid{grid-template-columns:1fr 1fr;}
  }
  @media (prefers-reduced-motion:reduce){ *{animation:none !important; transition:none !important;} }
