*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
    :root{
      --bg:#080C12;--card:#111B27;--card2:#0D1620;
      --accent:#00D4AA;--accent2:#7B2FFF;--orange:#FF6B35;
      --text:#F0ECE4;--muted:#7B93A8;
      --border:rgba(0,212,170,0.13);--border2:rgba(123,47,255,0.15);
    }

    /* Playful per-section accent colors — a subtle background glow and
       kicker-label tint so each section feels a little different while
       staying inside the same dark theme. */
    #about{--section-accent:#FF5D8F;--section-glow:255,93,143;}
    #education{--section-accent:#38BDF8;--section-glow:56,189,248;}
    #music{--section-accent:#FFC93C;--section-glow:255,201,60;}
    #achievements{--section-accent:#A3E635;--section-glow:163,230,53;}
    #gallery{--section-accent:#C084FC;--section-glow:192,132,252;}
    #portfolio{--section-accent:#2DD4BF;--section-glow:45,212,191;}

    section{position:relative;}
    section::before{
      content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
      background:
        radial-gradient(ellipse 900px 480px at 10% -8%, rgba(var(--section-glow,0,212,170),0.10), transparent 65%),
        radial-gradient(ellipse 700px 420px at 100% 108%, rgba(var(--section-glow,0,212,170),0.06), transparent 60%);
    }
    .section-inner{position:relative;z-index:1;}
    section#hero::before{display:none;} /* hero already has its own molecule bg */
    html{scroll-behavior:smooth;overflow-x:hidden;}
    body{
      background:var(--bg);color:var(--text);
      font-family:'Inter',sans-serif;font-size2:16px;line-height:1.6;
      overflow-x:hidden;width:100%;
    }
    /* ── NAV ── */
    nav{
      position:fixed;top:0;left:0;right:0;z-index:200;
      display:flex;align-items:center;justify-content:space-between;
      padding:1rem 2.5rem;
      background:rgba(8,12,18,0.92);
      backdrop-filter:blur(20px) saturate(180%);
      border-bottom:1px solid rgba(0,212,170,0.1);
      transition:padding 0.3s,background 0.3s;
    }
    nav.scrolled{padding:0.7rem 2.5rem;background:rgba(8,12,18,0.98);}
    .logo-wrap{display:flex;align-items:center;gap:0.5rem;text-decoration:none;cursor:pointer;}
    .logo-svg{width:40px;height:40px;flex-shrink:0;}
    .logo-text{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1rem;line-height:1;}
    .logo-text .l1{color:var(--text);display:block;font-size:0.55rem;font-family:'Space Mono',monospace;letter-spacing:0.12em;color:var(--muted);}
    .logo-text .l2{color:var(--accent);}
    .logo-ring{transform-origin:21px 21px;animation:spin 8s linear infinite;}
    .logo-ring2{transform-origin:21px 21px;animation:spin 5s linear infinite reverse;}
    @keyframes spin{to{transform:rotate(360deg);}}
    .logo-core{animation:pulse-logo 2s ease-in-out infinite;}
    @keyframes pulse-logo{0%,100%{opacity:1;}50%{opacity:0.7;}}
    .nav-links{display:flex;gap:1.75rem;list-style:none;}
    .nav-links a{text-decoration:none;color:var(--muted);font-size:0.78rem;font-family:'Space Mono',monospace;letter-spacing:0.06em;transition:color 0.2s;}
    .nav-links a:hover{color:var(--accent);}
    /* hamburger */
    .hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;}
    .hamburger span{display:block;width:22px;height:2px;background:var(--muted);border-radius:2px;transition:all 0.3s;}
    .hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
    .hamburger.open span:nth-child(2){opacity:0;}
    .hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
    .mobile-menu{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(8,12,18,0.97);z-index:190;flex-direction:column;align-items:center;justify-content:center;gap:2rem;}
    .mobile-menu.open{display:flex;}
    .mobile-menu a{text-decoration:none;color:var(--text);font-family:'Space Grotesk',sans-serif;font-size:2rem;font-weight:700;transition:color 0.2s;}
    .mobile-menu a:hover{color:var(--accent);}

    /* ── HERO ── */
    #hero{
      min-height:100vh;display:flex;flex-direction:column;
      align-items:center;justify-content:center;
      position:relative;padding:8rem 1.25rem 5rem;text-align:center;
      overflow:hidden;width:100%;
    }
    #hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(0,212,170,0.07) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;}
    .orb{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;animation:orb-float 6s ease-in-out infinite;max-width:60vw;max-height:60vw;}
    .orb-1{width:360px;height:360px;background:rgba(0,212,170,0.12);top:-80px;right:-40px;animation-delay:0s;}
    .orb-2{width:280px;height:280px;background:rgba(123,47,255,0.1);bottom:10%;left:-40px;animation-delay:-3s;}
    .orb-3{width:200px;height:200px;background:rgba(255,107,53,0.08);top:40%;right:-20px;animation-delay:-1.5s;}
    @keyframes orb-float{0%,100%{transform:translateY(0) scale(1);}50%{transform:translateY(-24px) scale(1.05);}}
    .hero-eyebrow{font-family:'Space Mono',monospace;font-size:0.7rem;color:var(--accent);letter-spacing:0.25em;text-transform:uppercase;margin-bottom:1.5rem;display:flex;align-items:center;gap:0.6rem;justify-content:center;}
    .hero-eyebrow::before,.hero-eyebrow::after{content:'';display:block;width:30px;height:1px;background:var(--accent);opacity:0.5;}
    /* hero-name styles moved to HERO PARALLAX section above */
    .hero-tagline{font-family:'Space Grotesk',sans-serif;font-size:clamp(0.9rem,2vw,1.2rem);font-weight:300;color:var(--muted);max-width:480px;margin:1.5rem auto 2.5rem;}
    .hero-tagline strong{color:var(--text);font-weight:500;}
    .hero-tags{display:flex;gap:0.6rem;flex-wrap:wrap;justify-content:center;margin-bottom:3rem;}
    .tag{font-family:'Space Mono',monospace;font-size:0.68rem;letter-spacing:0.08em;padding:0.35rem 0.85rem;border-radius:100px;color:var(--accent);border:1px solid rgba(0,212,170,0.25);background:rgba(0,212,170,0.04);transition:background 0.2s,border-color 0.2s;}
    .tag:hover{background:rgba(0,212,170,0.1);border-color:rgba(0,212,170,0.5);}
    .hero-stats{display:flex;gap:3rem;justify-content:center;border-top:1px solid var(--border);padding-top:2.5rem;flex-wrap:wrap;}
    .stat-item{text-align:center;}
    .stat-num{font-family:'Space Grotesk',sans-serif;font-size:2rem;font-weight:700;color:var(--accent);line-height:1;}
    .stat-label{font-family:'Space Mono',monospace;font-size:0.62rem;color:var(--muted);letter-spacing:0.1em;text-transform:uppercase;margin-top:0.3rem;}
    .scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);font-family:'Space Mono',monospace;font-size:0.6rem;color:var(--muted);letter-spacing:0.15em;animation:bounce 2s ease-in-out infinite;display:flex;flex-direction:column;align-items:center;gap:0.4rem;}
    @keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(5px);}}
    .waveform-wrap{position:absolute;bottom:0;left:0;right:0;height:120px;opacity:0.15;overflow:hidden;}
    .waveform-wrap svg{width:200%;height:100%;animation:wave-move 8s linear infinite;}
    @keyframes wave-move{from{transform:translateX(0);}to{transform:translateX(-50%);}}


    /* ── MOLECULE CANVAS ── */
    #mol-canvas{
      position:absolute;inset:0;
      width:100%;height:100%;
      pointer-events:none;z-index:0;
      opacity:0.55;
    }

    /* ── PARALLAX HERO NAME ── */
    .hero-name{
      font-family:'Space Grotesk',sans-serif;
      font-size:clamp(2.6rem,10vw,9rem);
      font-weight:700;line-height:0.92;
      letter-spacing:-0.02em;margin-bottom:0.25rem;
      width:100%;position:relative;z-index:2;
      will-change:transform;
      transition:transform 0.08s linear;
    }
    .hero-name .line1{
      color:var(--text);display:block;
      text-shadow:0 0 60px rgba(0,212,170,0.15);
    }
    .hero-name .line2{
      display:block;
      background:linear-gradient(120deg,var(--accent),var(--accent2));
      -webkit-background-clip:text;-webkit-text-fill-color:transparent;
      background-clip:text;
      filter:drop-shadow(0 0 30px rgba(0,212,170,0.2));
    }

    /* ── FLOATING CHEMICAL FORMULAS ── */
    .chem-label{
      position:absolute;
      font-family:'Space Mono',monospace;
      font-size:0.65rem;
      color:var(--accent);
      opacity:0;
      pointer-events:none;
      z-index:1;
      animation:chem-float 8s ease-in-out infinite;
      letter-spacing:0.05em;
    }
    @keyframes chem-float{
      0%  {opacity:0;transform:translateY(0) scale(0.9);}
      15% {opacity:0.35;}
      85% {opacity:0.2;}
      100%{opacity:0;transform:translateY(-40px) scale(1.05);}
    }

    /* ── AUDIO PLAYER ── */
    #audio-player{
      position:fixed;
      bottom:1.5rem;left:1.5rem;
      z-index:300;
      background:rgba(8,12,18,0.88);
      backdrop-filter:blur(16px);
      border:1px solid rgba(0,212,170,0.2);
      border-radius:50px;
      padding:0.55rem 1rem 0.55rem 0.65rem;
      display:flex;align-items:center;gap:0.65rem;
      box-shadow:0 4px 24px rgba(0,0,0,0.4);
      transition:width 0.3s,opacity 0.3s;
      max-width:260px;
    }
    #audio-player.hidden{opacity:0;pointer-events:none;}
    .ap-btn{
      width:32px;height:32px;border-radius:50%;
      background:linear-gradient(135deg,var(--accent),var(--accent2));
      border:none;cursor:pointer;
      display:flex;align-items:center;justify-content:center;
      flex-shrink:0;transition:transform 0.15s;
    }
    .ap-btn:hover{transform:scale(1.1);}
    .ap-btn svg{width:14px;height:14px;fill:white;}
    .ap-info{flex:1;min-width:0;overflow:hidden;}
    .ap-title{
      font-family:'Space Grotesk',sans-serif;font-size:0.72rem;font-weight:600;
      color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
      animation:marquee-pause 0s;
    }
    .ap-title.scrolling{
      display:inline-block;
      animation:marquee 8s linear infinite;
    }
    @keyframes marquee{
      0%{transform:translateX(0);}
      40%{transform:translateX(0);}
      90%{transform:translateX(-100%);}
      100%{transform:translateX(0);}
    }
    .ap-progress{
      width:100%;height:2px;
      background:rgba(255,255,255,0.1);
      border-radius:2px;margin-top:3px;overflow:hidden;cursor:pointer;
    }
    .ap-progress-bar{
      height:100%;width:0%;
      background:linear-gradient(90deg,var(--accent),var(--accent2));
      border-radius:2px;transition:width 0.5s linear;
    }
    .ap-close{
      background:none;border:none;color:var(--muted);
      font-size:0.9rem;cursor:pointer;padding:0 2px;
      flex-shrink:0;line-height:1;
    }
    .ap-close:hover{color:var(--text);}
    /* mini toggle button when player is hidden */
    #audio-toggle{
      position:fixed;bottom:1.5rem;left:1.5rem;z-index:300;
      width:40px;height:40px;border-radius:50%;
      background:linear-gradient(135deg,var(--accent),var(--accent2));
      border:none;cursor:pointer;display:none;align-items:center;justify-content:center;
      box-shadow:0 4px 16px rgba(0,212,170,0.3);
    }
    #audio-toggle.show{display:flex;}
    #audio-toggle svg{width:16px;height:16px;fill:white;}

    /* ── SECTIONS ── */
    .section-inner{max-width:920px;margin:0 auto;padding:6rem 1.5rem;}
    hr.divider{border:none;border-top:1px solid var(--border);max-width:920px;margin:0 auto;}
    .section-label{font-family:'Space Mono',monospace;font-size:0.68rem;color:var(--section-accent,var(--accent));letter-spacing:0.22em;text-transform:uppercase;margin-bottom:0.6rem;display:flex;align-items:center;gap:0.5rem;}
    .section-label::after{content:'';flex:1;max-width:40px;height:1px;background:var(--section-accent,var(--accent));opacity:0.5;}
    .section-title{font-family:'Space Grotesk',sans-serif;font-size:clamp(1.9rem,4vw,3rem);font-weight:700;line-height:1.05;margin-bottom:1rem;}
    .section-intro{font-size:0.95rem;color:var(--muted);max-width:620px;margin-bottom:3rem;line-height:1.7;}
    .section-intro strong{color:var(--text);}

    /* ── ABOUT ── */
    .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:2rem;}
    .about-card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:1.6rem;transition:border-color 0.2s,transform 0.2s;}
    .about-card:hover{border-color:rgba(0,212,170,0.3);transform:translateY(-2px);}
    .about-card-label{font-family:'Space Mono',monospace;font-size:0.6rem;color:var(--muted);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:0.45rem;}
    .about-card-value{font-family:'Space Grotesk',sans-serif;font-size:1.1rem;font-weight:600;color:var(--text);}
    .about-card-value.accent{color:var(--accent);}
    .about-card-value.purple{background:linear-gradient(120deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

    /* ── ABOUT WITH PHOTO ── */
    .about-layout{
      display:grid;
      grid-template-columns:1fr 280px;
      grid-template-rows:auto auto;
      gap:2rem;
      align-items:start;
    }
    /* cards row spans both columns */
    .about-cards-row{
      grid-column:1 / -1;
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:1rem;
    }
    .about-photo-wrap{
      position:relative;
      border-radius:20px;
      overflow:hidden;
      aspect-ratio:3/4;
      background:var(--card);
      border:1px solid var(--border);
      flex-shrink:0;
    }
    .about-photo-wrap img{
      width:100%;height:100%;
      object-fit:cover;object-position:center top;
      display:block;
      filter:saturate(0.9);
      transition:filter 0.3s,transform 0.4s;
    }
    .about-photo-wrap:hover img{filter:saturate(1.05);transform:scale(1.02);}
    /* Gradient overlay bottom */
    .about-photo-wrap::after{
      content:'';position:absolute;bottom:0;left:0;right:0;height:40%;
      background:linear-gradient(to top,rgba(8,12,18,0.6),transparent);
      pointer-events:none;
    }
    /* Accent corner */
    .about-photo-wrap::before{
      content:'';position:absolute;
      top:-1px;left:-1px;right:-1px;bottom:-1px;
      border-radius:20px;
      background:linear-gradient(135deg,var(--accent),var(--accent2),transparent,transparent);
      padding:1.5px;
      -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
      -webkit-mask-composite:destination-out;
      mask-composite:exclude;
      pointer-events:none;
    }
    .about-photo-placeholder{
      width:100%;height:100%;
      display:flex;flex-direction:column;
      align-items:center;justify-content:center;
      gap:0.75rem;color:var(--muted);
      font-family:'Space Mono',monospace;font-size:0.65rem;
      letter-spacing:0.1em;text-align:center;padding:1.5rem;
    }
    .about-photo-placeholder svg{opacity:0.3;}
    @media(max-width:768px){
      .about-layout{grid-template-columns:1fr;}
      .about-cards-row{grid-template-columns:1fr 1fr;}
      .about-photo-wrap{
        aspect-ratio:4/3;
        max-height:260px;
        width:100%;
      }
      .about-photo-wrap img{object-position:center 20%;}
    }

    .foreword-block{position:relative;background:linear-gradient(135deg,rgba(0,212,170,0.05),rgba(123,47,255,0.05));border:1px solid rgba(0,212,170,0.15);border-radius:20px;padding:2.5rem;margin-bottom:2rem;}
    .foreword-block::before{content:'"';position:absolute;top:1rem;left:1.75rem;font-family:'Space Grotesk',sans-serif;font-size:5rem;font-weight:700;line-height:1;color:var(--section-accent,var(--accent));opacity:0.25;}
    .foreword-text{font-family:'Space Grotesk',sans-serif;font-size:1.05rem;font-weight:400;line-height:1.75;color:var(--text);padding-top:1rem;}
    .foreword-text em{color:var(--accent);font-style:normal;font-weight:600;}

    /* ── TIMELINE ── */
    .timeline{position:relative;padding-left:2rem;}
    .timeline::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:1px;background:linear-gradient(to bottom,var(--accent),var(--accent2),transparent);}
    .timeline-item{position:relative;margin-bottom:2.75rem;padding-left:1.5rem;}
    .timeline-item::before{content:'';position:absolute;left:-2.45rem;top:5px;width:10px;height:10px;border-radius:50%;background:var(--section-accent,var(--accent));box-shadow:0 0 0 4px rgba(var(--section-glow,0,212,170),0.15),0 0 16px rgba(var(--section-glow,0,212,170),0.35);}
    .timeline-item.current::before{background:var(--orange);box-shadow:0 0 0 4px rgba(255,107,53,0.15),0 0 16px rgba(255,107,53,0.4);animation:ping 1.5s ease-in-out infinite;}
    @keyframes ping{0%,100%{box-shadow:0 0 0 4px rgba(255,107,53,0.15),0 0 16px rgba(255,107,53,0.4);}50%{box-shadow:0 0 0 8px rgba(255,107,53,0.05),0 0 28px rgba(255,107,53,0.5);}}
    .timeline-year{font-family:'Space Mono',monospace;font-size:0.65rem;color:var(--muted);letter-spacing:0.12em;margin-bottom:0.3rem;}
    .timeline-school{font-family:'Space Grotesk',sans-serif;font-size:1.1rem;font-weight:600;margin-bottom:0.3rem;}
    .timeline-detail{font-size:0.875rem;color:var(--muted);line-height:1.55;}
    .badge-current{display:inline-block;font-family:'Space Mono',monospace;font-size:0.55rem;background:rgba(255,107,53,0.12);color:var(--orange);border:1px solid rgba(255,107,53,0.3);padding:0.18rem 0.55rem;border-radius:100px;letter-spacing:0.1em;margin-left:0.5rem;vertical-align:middle;}

    /* ── MUSIC ── */
    .music-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.5rem;}
    .music-card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:1.6rem;}
    .music-card-title{font-family:'Space Grotesk',sans-serif;font-size:0.75rem;font-weight:600;color:var(--muted);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:1rem;}
    .instruments{display:flex;flex-wrap:wrap;gap:0.5rem;}
    .instrument-pill{display:flex;align-items:center;gap:0.4rem;background:rgba(0,212,170,0.07);border:1px solid rgba(0,212,170,0.18);border-radius:100px;padding:0.3rem 0.75rem;font-size:0.82rem;color:var(--text);transition:background 0.2s;}
    .instrument-pill:hover{background:rgba(0,212,170,0.14);}
    .marching-highlight{background:linear-gradient(135deg,rgba(0,212,170,0.05),rgba(255,107,53,0.05));border:1px solid rgba(0,212,170,0.18);border-radius:18px;padding:1.5rem 1.75rem;display:flex;align-items:flex-start;gap:1.25rem;margin-bottom:1rem;}
    .marching-icon{font-size:2.5rem;flex-shrink:0;line-height:1;}
    .marching-text h4{font-family:'Space Grotesk',sans-serif;font-size:1.05rem;font-weight:600;margin-bottom:0.4rem;}
    .marching-text p{font-size:0.875rem;color:var(--muted);line-height:1.55;}

    /* ── ACHIEVEMENTS ── */
    .achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.1rem;}
    .achievement-card{background:var(--card2);border:1px solid var(--border);border-radius:16px;padding:1.4rem;transition:border-color 0.2s,transform 0.2s;position:relative;overflow:hidden;}
    .achievement-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));opacity:0;transition:opacity 0.2s;}
    .achievement-card:hover{border-color:rgba(0,212,170,0.35);transform:translateY(-3px);}
    .achievement-card:hover::before{opacity:1;}
    .achievement-icon{font-size:1.6rem;margin-bottom:0.7rem;}
    .achievement-category{font-family:'Space Mono',monospace;font-size:0.58rem;color:var(--accent);letter-spacing:0.18em;text-transform:uppercase;margin-bottom:0.35rem;}
    .achievement-title{font-family:'Space Grotesk',sans-serif;font-size:0.95rem;font-weight:600;margin-bottom:0.35rem;}
    .achievement-desc{font-size:0.8rem;color:var(--muted);line-height:1.55;}

    /* ── GALLERY — CSS Columns Masonry ── */
    .gallery-masonry{
      columns:4;
      column-gap:8px;
      width:100%;
    }
    .gallery-item{
      position:relative;
      display:inline-block;
      width:100%;
      margin-bottom:8px;
      border-radius:10px;
      overflow:hidden;
      cursor:pointer;
      background:var(--card2);
      break-inside:avoid;
      -webkit-column-break-inside:avoid;
      opacity:0;
      animation:fadeUp 0.5s ease forwards;
    }
    /* Stagger delay for each item — first 12 items get delay, rest instant */
    .gallery-item:nth-child(1){animation-delay:0.05s;}
    .gallery-item:nth-child(2){animation-delay:0.10s;}
    .gallery-item:nth-child(3){animation-delay:0.15s;}
    .gallery-item:nth-child(4){animation-delay:0.20s;}
    .gallery-item:nth-child(5){animation-delay:0.25s;}
    .gallery-item:nth-child(6){animation-delay:0.30s;}
    .gallery-item:nth-child(7){animation-delay:0.35s;}
    .gallery-item:nth-child(8){animation-delay:0.40s;}
    .gallery-item:nth-child(9){animation-delay:0.45s;}
    .gallery-item:nth-child(10){animation-delay:0.50s;}
    .gallery-item:nth-child(11){animation-delay:0.55s;}
    .gallery-item:nth-child(12){animation-delay:0.60s;}
    .gallery-item:nth-child(n+13){animation-delay:0.60s;}
    @keyframes fadeUp{
      from{opacity:0;transform:translateY(12px);}
      to{opacity:1;transform:translateY(0);}
    }
    .gallery-item img{
      width:100%;
      height:auto;
      display:block;
      transition:transform 0.4s ease, filter 0.3s ease;
      filter:saturate(0.82) brightness(0.96);
    }
    .gallery-item:hover img{
      transform:scale(1.04);
      filter:saturate(1.1) brightness(1.02);
    }
    .gallery-overlay{
      position:absolute;inset:0;
      background:linear-gradient(to top, rgba(8,12,18,0.82) 0%, transparent 50%);
      opacity:0;transition:opacity 0.28s;
      display:flex;align-items:flex-end;padding:0.75rem;
    }
    .gallery-item:hover .gallery-overlay{opacity:1;}
    .gallery-caption{
      font-family:'Space Grotesk',sans-serif;
      font-size:0.78rem;font-weight:600;color:var(--text);
      text-shadow:0 1px 4px rgba(0,0,0,0.6);
    }

    /* Lightbox */
    .lightbox{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0.92);align-items:center;justify-content:center;}
    .lightbox.open{display:flex;}
    .lightbox-inner{position:relative;max-width:90vw;max-height:90vh;}
    .lightbox-inner img{max-width:100%;max-height:85vh;border-radius:12px;object-fit:contain;}
    .lightbox-caption{text-align:center;margin-top:0.75rem;font-family:'Space Grotesk',sans-serif;font-size:0.9rem;color:var(--muted);}
    .lightbox-close{position:absolute;top:-2rem;right:0;background:none;border:none;color:var(--muted);font-size:1.5rem;cursor:pointer;transition:color 0.2s;}
    .lightbox-close:hover{color:var(--text);}

    /* ── PORTFOLIO ── */
    .year-group{margin-bottom:3rem;}
    .year-heading{font-family:'Space Grotesk',sans-serif;font-size:1.4rem;font-weight:700;color:var(--text);margin-bottom:1rem;display:flex;align-items:center;gap:0.75rem;}
    .year-heading span{background:linear-gradient(120deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
    .year-heading::after{content:'';flex:1;height:1px;background:var(--border);}
    .pdf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:0.75rem;}

    /* Card */
    .pdf-item{
      position:relative;
      display:flex;align-items:flex-start;gap:0.85rem;
      background:var(--card2);border:1px solid var(--border);
      border-radius:13px;padding:1rem 1.1rem;
      text-decoration:none;color:var(--text);
      transition:border-color 0.2s,background 0.2s,transform 0.15s;
      cursor:pointer;overflow:visible;
    }
    .pdf-item:hover{border-color:rgba(0,212,170,0.35);background:var(--card);transform:translateY(-1px);}

    /* SVG doc icon */
    .pdf-icon{flex-shrink:0;margin-top:0.05rem;width:28px;height:32px;}
    .pdf-icon svg{width:28px;height:32px;}

    .pdf-info{flex:1;min-width:0;}
    .pdf-name{font-family:'Space Grotesk',sans-serif;font-size:0.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .pdf-meta{font-family:'Space Mono',monospace;font-size:0.6rem;color:var(--muted);margin-top:0.2rem;letter-spacing:0.05em;}
    .pdf-date{color:var(--accent);opacity:0.8;}
    .pdf-cat-badge{font-family:'Space Mono',monospace;font-size:0.55rem;letter-spacing:0.08em;padding:0.15rem 0.45rem;border-radius:4px;flex-shrink:0;margin-top:0.15rem;}
    .pdf-cat-badge.steam{background:rgba(0,212,170,0.12);color:var(--accent);}
    .pdf-cat-badge.global{background:rgba(123,47,255,0.12);color:#a07dff;}
    .pdf-cat-badge.award{background:rgba(255,107,53,0.12);color:var(--orange);}

    /* Title tooltip on truncated names */
    .pdf-tooltip{
      display:none;
      position:absolute;
      bottom:calc(100% + 8px);left:0;right:0;
      background:#1a2a3a;border:1px solid rgba(0,212,170,0.25);
      border-radius:10px;padding:0.65rem 0.9rem;
      font-family:'Space Grotesk',sans-serif;font-size:0.8rem;
      color:var(--text);line-height:1.5;
      box-shadow:0 8px 24px rgba(0,0,0,0.5);
      z-index:50;pointer-events:none;
    }
    .pdf-tooltip::after{
      content:'';position:absolute;top:100%;left:1.5rem;
      border:6px solid transparent;border-top-color:#1a2a3a;
    }
    .pdf-item:hover .pdf-tooltip{display:block;}

    /* PDF Modal */
    .pdf-modal{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0.92);align-items:center;justify-content:center;padding:1rem;}
    .pdf-modal.open{display:flex;}
    .pdf-modal-inner{position:relative;width:100%;max-width:900px;height:85vh;background:var(--card);border-radius:16px;overflow:hidden;border:1px solid var(--border);}
    .pdf-modal-header{display:flex;align-items:center;justify-content:space-between;padding:0.85rem 1.25rem;border-bottom:1px solid var(--border);}
    .pdf-modal-title{font-family:'Space Grotesk',sans-serif;font-size:0.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80%;}
    .pdf-modal-close{background:none;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer;padding:0.25rem 0.5rem;transition:color 0.2s;}
    .pdf-modal-close:hover{color:var(--text);}
    .pdf-modal-frame{width:100%;height:calc(100% - 55px);border:none;}

    /* ── SCROLL TO TOP ── */
    #scrollTop{position:fixed;bottom:2rem;right:1.5rem;z-index:300;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));border:none;cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(0,212,170,0.3);transition:transform 0.2s,opacity 0.2s;}
    #scrollTop.visible{display:flex;}
    #scrollTop:hover{transform:translateY(-3px);}
    #scrollTop svg{width:18px;height:18px;}

    /* ── FOOTER ── */
    footer{text-align:center;padding:3rem 2rem 2.5rem;border-top:1px solid var(--border);font-family:'Space Mono',monospace;font-size:0.68rem;color:var(--muted);letter-spacing:0.08em;}
    footer .footer-name{color:var(--accent);font-size:1rem;display:block;margin-bottom:0.5rem;font-family:'Space Grotesk',sans-serif;font-weight:700;}
    footer .footer-sub{margin-top:0.5rem;}

    /* ── RESPONSIVE ── */
    @media(max-width:768px){
      nav{padding:0.85rem 1.25rem;}
      .nav-links{display:none;}
      .hamburger{display:flex;}
      .gallery-masonry{columns:3;}
      .about-grid,.music-grid{grid-template-columns:1fr;}
      .achievements-grid{grid-template-columns:1fr;}
      .pdf-grid{grid-template-columns:1fr;}
      .section-inner{padding:4rem 1.25rem;}
      .hero-stats{gap:1.25rem;}
      .stat-num{font-size:1.5rem;}
      .stat-label{font-size:0.55rem;}
      .gallery-masonry{columns:2;}
      .marching-highlight{flex-direction:column;}
      .orb-1,.orb-2,.orb-3{width:160px;height:160px;}
      .hero-eyebrow::before,.hero-eyebrow::after{display:none;}
      .hero-tagline{max-width:100%;}
      .waveform-wrap{height:80px;}
    }
    @media(max-width:420px){
      .gallery-masonry{columns:2;}
      .gallery-item.span-v2,.gallery-item.span-h2v2{grid-row:span 1;}
      .hero-stats{gap:1rem;}
      .stat-num{font-size:1.3rem;}
    }
    @media(prefers-reduced-motion:reduce){
      .scroll-hint,.orb,.logo-ring,.logo-ring2,.logo-core{animation:none;}
      .waveform-wrap svg{animation:none;}
    }