    /* ========================= THEME ========================= */
    :root{
      /* Light */
      --bg:#f7f9fc; --bg2:#eef3fb; --card:#ffffff; --surface:#f7f9ff;
      --text:#101828; --muted:#6b7280;
      --accent:#2563eb; --accent-2:#9333ea; --accent-3:#f59e0b; --accent-4:#10b981;
      --chip:#e5e7eb; --border:#e5e7eb; --ring: rgba(37,99,235,.35);
    }
    [data-theme="dark"]{
      --bg:#060913; --bg2:#0b1220; --card:#0f172a; --surface:#101b33;
      --text:#e6edf3; --muted:#9db0c7;
      --accent:#60a5fa; --accent-2:#a78bfa; --accent-3:#f59e0b; --accent-4:#22d3ee;
      /* Improve contrast for chips and borders in dark mode */
      --chip:#0a1630;
      --border:#1b2b47;
    }

    *{box-sizing:border-box}
    html,body{
      margin:0; padding:0; color:var(--text);
      font:16px/1.55 system-ui, -apple-system, Segoe UI, Inter, Roboto, Helvetica, Arial, sans-serif;
      background:
        radial-gradient(1200px 800px at 10% -10%, rgba(37,99,235,.12) 0%, transparent 60%),
        radial-gradient(1000px 700px at 120% 10%, rgba(147,51,234,.10) 0%, transparent 55%),
        linear-gradient(180deg,var(--bg),var(--bg2));
      scroll-behavior:smooth;
    }
    a{color:var(--accent); text-decoration:none}
    a:hover{text-decoration:underline}
    .container{max-width:1120px;margin:0 auto;padding:20px}

    /* ========================= NAV ========================= */
    header.nav{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.7);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
    [data-theme="dark"] header.nav{background:linear-gradient(180deg,rgba(6,9,19,.92),rgba(6,9,19,.6))}
    .nav-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px}
    .brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.3px}
    .brand .logo{width:28px;height:28px;border-radius:8px;background:conic-gradient(from 0deg,var(--accent),var(--accent-2),var(--accent-4),var(--accent));box-shadow:0 0 16px rgba(37,99,235,.25)}
    .nav-links{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
    .nav-links a{padding:6px 10px;border:1px solid var(--border);border-radius:999px;color:inherit}
    .nav-links a:hover{border-color:var(--ring);box-shadow:0 0 0 2px var(--ring) inset}
    #themeToggle{padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--card);cursor:pointer}

    /* ========================= SECTIONS ========================= */
    .section{padding:22px 20px}
    .panel{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 0 rgba(0,0,0,.03)}
    .panel{transition:all 0.3s ease;transform-style:preserve-3d}
.panel:hover{box-shadow:0 0 0 2px var(--ring)}

    /* ========================= HERO ========================= */
    .hero{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:center;padding:24px 20px}
    .title{font-size:44px;font-weight:900;letter-spacing:.3px;margin:0 0 6px}
    .subtitle{color:var(--muted);margin:6px 0 10px}
    .badges{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
@keyframes badge-glow{0%,100%{box-shadow:0 0 5px rgba(37,99,235,0.3)}50%{box-shadow:0 0 20px rgba(37,99,235,0.6)}}
.cta{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.btn{padding:10px 14px;border:1px solid var(--accent);border-radius:12px;color:inherit;background:var(--card);position:relative;overflow:hidden;transition:all 0.3s ease}
.btn::before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;background:var(--accent);opacity:0.3;border-radius:50%;transform:translate(-50%,-50%);transition:width 0.6s,height 0.6s}
.btn:hover::before{width:300px;height:300px}
.btn:hover{transform:translateY(-3px);box-shadow:0 5px 15px rgba(37,99,235,0.2)}

@keyframes drawLine {
  from {
    transform: scaleX(0);
    opacity: 0;
  }
  to {
    transform: scaleX(1);
    opacity: 1;
  }
}

@keyframes spin {
  from {
    transform: rotate(0deg) scale(1);
  }
  50% {
    transform: rotate(180deg) scale(1.2);
  }
  to {
    transform: rotate(360deg) scale(1);
  }
}

.hero-photo{opacity:0; transform:translateY(6px) scale(1.01); animation:heroFade .9s ease-out .15s forwards}
.hero-photo img{
  filter:saturate(1.02);
  max-width: 100%;
  height: auto;
  max-height: 400px;
  object-fit: cover;
  object-position: top center;
  border-radius: 8px;
}
    @keyframes heroFade{to{opacity:1; transform:translateY(0) scale(1)}}

    /* Snapshot full width */
    .hero-snapshot{grid-column:1 / -1}
    .hero-snap-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px}
    .chips{display:flex;flex-wrap:wrap;gap:8px}
    .chip{background:var(--chip);padding:6px 10px;border-radius:999px;border:1px solid var(--border);font-size:13px;transition:all 0.2s ease;color:var(--text)}
.chip:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(0,0,0,0.1)}
/* Dark mode: ensure strong contrast for chips */
[data-theme="dark"] .chip{background:#0b2237;border-color:#143a55;color:#e6f0ff}
[data-theme="dark"] .chip:hover{box-shadow:0 2px 10px rgba(8,26,46,.45)}

    /* Cards & grids */
    .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
    .card{padding:16px}
    .card h3{margin:0 0 6px;font-size:18px}
      .list{padding-left:18px;margin:8px 0}
      .list li{margin:6px 0}
      .metrics{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0}
      .metric{background:#e0e7ff;border:1px solid #c7d2fe;color:#1e40af;padding:4px 8px;border-radius:8px;font-size:12px}
      [data-theme="dark"] .metric{background:#0b2237;border:1px solid #143a55;color:#a5f3fc}
      .small{font-size:13px;color:var(--muted)}

      /* Card dropdown details */
      .card-details{margin-top:8px}
      .card-details summary{cursor:pointer;color:var(--accent);font-weight:600}
      .card-details[open] summary{margin-bottom:6px}

    /* Media reel */
    .media{margin-top:12px}
      .reel{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;padding:8px 4px}
      .tile{background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 1px 0 rgba(0,0,0,.03);cursor:pointer}
    .tile .frame{aspect-ratio:16/9;overflow:hidden;border-bottom:1px solid var(--border)}
    .tile img,.tile video{width:100%;height:100%;object-fit:cover;display:block}
    .tile figcaption{padding:8px 10px;font-size:13px;color:var(--muted)}

      /* === How-to legend styles === */
    #howToPlay h3{margin:0 0 8px;font-size:18px}
    #howToPlay .intro{color:var(--muted);margin:6px 0 10px}
    .legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
    .legend .tag{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:12px}
    .dot{width:10px;height:10px;border-radius:999px;display:inline-block}
    .dot.orb{background:#10b981}
    .dot.hazard{background:#f59e0b}
    .dot.bullet{background:#ef4444}
    .dot.speed{background:#2563eb}
    .dot.shield{background:#10b981}
    .dot.double{background:#f59e0b}

    /* ========================= GAME (mobile friendly) ========================= */
canvas.game{touch-action:none}
.howto{overscroll-behavior:contain}
#game{display:grid;gap:12px}
.game-stats{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pill{padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:#eef2ff;font-size:12px;color:#1f2937}
[data-theme="dark"] .pill{background:#0a1630;color:#cbd5e1}
.pill strong{color:#1d4ed8}
[data-theme="dark"] .pill strong{color:#a5f3fc}
.canvas-wrap{width:100%;aspect-ratio:16/9;max-height:70svh;position:relative}
#gameCanvas{
  width:100%;
  height:100%;
  display:block;
  background:radial-gradient(900px 600px at 40% 30%, rgba(147,51,234,.10), transparent 60%),
             radial-gradient(700px 500px at 70% 70%, rgba(37,99,235,.08), transparent 65%),
             var(--surface);
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
}
.game-rail{display:grid;gap:8px}
.kbtn{padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text)}
.kbtn:hover{border-color:var(--ring);box-shadow:0 0 0 2px var(--ring) inset}
.hint{color:var(--muted);font-size:12px}
#howToPlay{max-height:60svh;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}
/* Mobile fire/dash overlay */
#mobilePad{display:none}
@media (pointer:coarse){
  #mobilePad{position:absolute; right:12px; bottom:12px; display:flex; gap:10px; z-index:5}
  .mbtn{padding:12px 14px; border-radius:12px; border:1px solid var(--border); background:var(--card); opacity:.95}
}
@media (min-width:768px){
  #game{grid-template-columns:1fr auto;align-items:start}
  .game-stats,#howToPlay{grid-column:1 / -1}
}
.kbtn, .mbtn { touch-action: manipulation; }

/* Overlay start screen for games */
.game-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.8);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:14px;
  padding:20px;
  text-align:center;
  z-index:100;
}
.game-overlay.hidden{display:none}

/* Game list grid */
.games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.games-grid a{display:block;padding:20px;text-align:center}

    .footer{color:var(--muted);padding:28px 20px;text-align:center}

    @media (max-width:960px){
      .hero{grid-template-columns:1fr}
      .grid{grid-template-columns:1fr}
      .hero-snap-grid{grid-template-columns:1fr}
    }

    /* Avoid cropping important content on larger screens */
    @media (min-width: 960px){
      .hero-photo img{ max-height: 520px; }
    }

/* chips / filters */
.ops-filters { display:flex; flex-wrap:wrap; gap:.5rem; margin: .75rem 0 1rem; }
.chip { border:1px solid var(--border, #e6e6e6); background:var(--chip-bg, #fff);
  border-radius:999px; padding:.4rem .75rem; font-size:.9rem; cursor:pointer }
.chip.active { background:var(--accent-weak, #eef4ff); border-color:var(--accent, #4f7cff) }

/* grid */
.ops-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); align-items:start }
.ops-card { border:1px solid var(--border, #e9e9ee); background:var(--card, #fff); border-radius:16px; overflow:hidden;
  box-shadow:0 8px 22px rgba(0,0,0,.04); transition:transform .18s ease, box-shadow .18s ease }
.ops-card:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(0,0,0,.06) }
.ops-card img, .ops-card video { display:block; width:100%; height:180px; object-fit:cover }
.ops-card .body { padding:.85rem 1rem }
@media (min-width: 900px){ .ops-card.span-2 { grid-column: span 2 }}


/* reveal on scroll */
.reveal { opacity:0; transform:translateY(8px); transition:opacity .35s ease, transform .35s ease }
.reveal.show { opacity:1; transform:none }

/* filtering */
.ops-card.hidden { display:none }

/* ===== Enhanced Timeline Styles with Animations ===== */
.timeline-container {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 0;
}

#timeline .timeline-badge { display: none; }

.timeline-line {
  position: absolute;
  width: 4px;
  background: linear-gradient(180deg, #2563eb, #9333ea, #10b981);
  top: 0;
  bottom: 0;
  left: 50%;
  margin-left: -2px;
  animation: timeline-grow 2s ease-out;
  box-shadow: 0 0 20px rgba(37, 99, 235, 0.5);
}

.timeline-line::before {
  content: '';
  position: absolute;
  width: 2px;
  height: 100%;
  background: linear-gradient(180deg, transparent, rgba(147, 51, 234, 0.5), transparent);
  left: 1px;
  animation: pulse-line 3s ease-in-out infinite;
}

@keyframes pulse-line {
  0%, 100% { opacity: 0; transform: translateY(-100%); }
  50% { opacity: 1; transform: translateY(100%); }
}

@keyframes timeline-grow {
  from { transform: scaleY(0); transform-origin: top; }
  to { transform: scaleY(1); }
}

.timeline-item {
  padding: 10px 40px;
  position: relative;
  width: 50%;
  opacity: 1;
  animation: timeline-fade-in 0.6s ease-out forwards;
}

.timeline-item.left {
  left: 0;
  animation-delay: 0.2s;
}

.timeline-item.right {
  left: 50%;
  animation-delay: 0.4s;
}

.timeline-item.left .timeline-content {
  animation: slide-in-left 0.8s ease-out;
}

.timeline-item.right .timeline-content {
  animation: slide-in-right 0.8s ease-out;
}

@keyframes slide-in-left {
  from { opacity: 0; transform: translateX(-30px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes slide-in-right {
  from { transform: translateX(50px) scale(0.8); opacity: 0; }
  to { transform: translateX(0) scale(1); opacity: 1; }
}

@keyframes timeline-fade-in {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.timeline-content {
  padding: 20px 30px;
  background: var(--card);
  border: 2px solid transparent;
  background-image: linear-gradient(var(--card), var(--card)), 
                    linear-gradient(45deg, #2563eb, #9333ea, #10b981);
  background-origin: border-box;
  background-clip: padding-box, border-box;
  border-radius: 16px;
  position: relative;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  cursor: pointer;
}

.timeline-content:hover {
  transform: scale(1.08) rotateZ(1deg);
  box-shadow: 0 15px 40px rgba(37,99,235,0.3);
}

.timeline-content:hover .timeline-tech {
  transform: translateY(-3px);
  color: var(--accent);
}

.timeline-content h3 {
  background: linear-gradient(135deg, #2563eb, #9333ea);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0 0 8px;
  font-weight: 700;
}

.timeline-content h4 {
  margin: 0 0 10px;
  font-size: 18px;
}

.timeline-content p {
  margin: 0 0 15px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}

.timeline-tech {
  font-size: 12px;
  color: var(--accent-2);
  font-weight: 600;
  letter-spacing: 0.5px;
  transition: all 0.3s ease;
}

.timeline-badge {
  position: absolute;
  width: 60px;
  height: 60px;
  background: var(--card);
  border: 4px solid var(--accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  top: 20px;
  animation: badge-pulse 2s ease-in-out infinite;
  box-shadow: 0 0 20px rgba(37, 99, 235, 0.4);
  transition: all 0.3s ease;
}

.timeline-badge:hover {
  transform: rotate(360deg) scale(1.2);
}

@keyframes badge-pulse {
  0%, 100% { box-shadow: 0 0 20px rgba(37, 99, 235, 0.4); }
  50% { box-shadow: 0 0 40px rgba(147, 51, 234, 0.6); }
}

.timeline-item.left .timeline-badge {
  right: -30px;
}

.timeline-item.right .timeline-badge {
  left: -30px;
}

.timeline-item.left .timeline-content::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  right: -10px;
  background: var(--card);
  border: 2px solid transparent;
  background-image: linear-gradient(var(--card), var(--card)), 
                    linear-gradient(45deg, #2563eb, #9333ea);
  background-origin: border-box;
  background-clip: padding-box, border-box;
  top: 25px;
  transform: rotate(45deg);
  z-index: -1;
}

.timeline-item.right .timeline-content::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  left: -10px;
  background: var(--card);
  border: 2px solid transparent;
  background-image: linear-gradient(var(--card), var(--card)), 
                    linear-gradient(45deg, #2563eb, #9333ea);
  background-origin: border-box;
  background-clip: padding-box, border-box;
  top: 25px;
  transform: rotate(45deg);
  z-index: -1;
}

/* Floating year labels */
.timeline-item::before {
  content: attr(data-year);
  position: absolute;
  top: -10px;
  font-size: 48px;
  font-weight: 900;
  opacity: 0.1;
  color: var(--accent);
  z-index: -1;
  animation: float 6s ease-in-out infinite;
}

.timeline-item.left::before {
  right: 100px;
}

.timeline-item.right::before {
  left: 100px;
}

@keyframes float {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-10px) rotate(2deg); }
}

/* Skills canvas responsive */
#skillsCanvas {
  max-width: 100%;
  height: auto;
}

/* Custom cursor removed - normal cursor restored */

/* Mobile timeline adjustments */
@media (max-width: 768px) {
  .timeline-line {
    left: 20px;
  }
  
  .timeline-item {
    width: 100%;
    padding-left: 50px;
    padding-right: 20px;
  }
  
  .timeline-item.right {
    left: 0;
  }
  
  .timeline-item .timeline-badge {
    left: -5px !important;
    right: auto !important;
  }
  
  .timeline-item .timeline-content::after {
    left: -10px !important;
    right: auto !important;
  }
}

