/* ─── TOKENS ─────────────────────────────────────────────── */
    :root {
      --bg:        #0a0a0c;
      --surface:   #111116;
      --card:      #16161d;
      --border:    rgba(255,255,255,0.07);
      --accent:    #e8c87a;
      --accent2:   #7ae8c8;
      --text:      #e8e8f0;
      --muted:     #666680;
      --glow:      rgba(232,200,122,0.18);
      --ff-display:  'Playfair Display', serif;
      --ff-mono:     'JetBrains Mono', monospace;
      --ff-body:     'Outfit', sans-serif;
    }

    /* ─── BASE ───────────────────────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; margin:0; padding:0; }
    html { scroll-behavior: smooth; }
    body {
      background: var(--bg);
      color: var(--text);
      font-family: var(--ff-body);
      font-weight: 300;
      overflow-x: hidden;
      cursor: none;
    }

    /* ─── CUSTOM CURSOR ──────────────────────────────────────── */
    #cursor-dot {
      width: 8px; height: 8px;
      background: var(--accent);
      border-radius: 50%;
      position: fixed; top:0; left:0;
      pointer-events: none; z-index: 9999;
      transform: translate(-50%,-50%);
      transition: transform .1s, background .2s;
    }
    #cursor-ring {
      width: 36px; height: 36px;
      border: 1px solid rgba(232,200,122,0.5);
      border-radius: 50%;
      position: fixed; top:0; left:0;
      pointer-events: none; z-index: 9998;
      transform: translate(-50%,-50%);
      transition: transform .18s ease, width .2s, height .2s, border-color .2s;
    }
    body:has(a:hover) #cursor-ring,
    body:has(button:hover) #cursor-ring {
      width: 56px; height: 56px;
      border-color: var(--accent);
    }

    /* ─── NOISE OVERLAY ──────────────────────────────────────── */
    body::before {
      content: '';
      position: fixed; inset:0; z-index:0;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
      opacity: .025;
      pointer-events: none;
    }

    /* ─── NAVBAR ─────────────────────────────────────────────── */
    #navbar {
      position: fixed; top:0; left:0; right:0; z-index: 1000;
      padding: 22px 48px;
      display: flex; align-items: center; justify-content: space-between;
      transition: background .4s, padding .4s, backdrop-filter .4s;
    }
    #navbar.scrolled {
      background: rgba(10,10,12,0.88);
      backdrop-filter: blur(18px);
      padding: 14px 48px;
      border-bottom: 1px solid var(--border);
    }
    .nav-logo {
      font-family: var(--ff-mono);
      font-size: .85rem;
      color: var(--accent);
      letter-spacing: .05em;
      text-decoration: none;
    }
    .nav-logo span { color: var(--muted); }
    .nav-links { display:flex; gap:36px; list-style:none; }
    .nav-links a {
      font-family: var(--ff-mono);
      font-size: .78rem;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--muted);
      text-decoration: none;
      transition: color .2s;
      position: relative;
    }
    .nav-links a::after {
      content:'';
      position: absolute; bottom:-4px; left:0; right:0;
      height:1px; background: var(--accent);
      transform: scaleX(0); transform-origin: left;
      transition: transform .3s;
    }
    .nav-links a:hover { color: var(--accent); }
    .nav-links a:hover::after { transform: scaleX(1); }

    /* Hamburger */
    .hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:none; }
    .hamburger span { display:block; width:24px; height:1px; background:var(--text); transition:.3s; }
    .hamburger.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    .hamburger.open span:nth-child(2) { opacity:0; }
    .hamburger.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

    /* ─── HERO ───────────────────────────────────────────────── */
    #hero {
      min-height: 100vh;
      display: grid;
      place-items: center;
      padding: 120px 48px 80px;
      position: relative;
      overflow: hidden;
    }
    .hero-grid-bg {
      position: absolute; inset:0;
      background-image:
        linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
      background-size: 60px 60px;
      mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 30%, transparent 100%);
    }
    .hero-orb {
      position: absolute;
      border-radius: 50%;
      filter: blur(90px);
      pointer-events: none;
    }
    .orb-1 { width:500px; height:500px; background: rgba(232,200,122,.1); top:-120px; right:-100px; }
    .orb-2 { width:400px; height:400px; background: rgba(122,232,200,.07); bottom:-80px; left:-80px; }

    .hero-inner { position: relative; max-width:900px; width:100%; }
    .hero-tag {
      font-family: var(--ff-mono);
      font-size: .78rem;
      color: var(--accent);
      letter-spacing: .2em;
      text-transform: uppercase;
      margin-bottom: 24px;
      display: flex; align-items:center; gap:12px;
      opacity:0; animation: fadeUp .7s .2s forwards;
    }
    .hero-tag::before {
      content:'';
      display:block; width:40px; height:1px;
      background: var(--accent);
    }
    h1.hero-name {
      font-family: var(--ff-display);
      font-size: clamp(3.5rem, 9vw, 8rem);
      font-weight: 900;
      line-height: 1;
      letter-spacing: -.02em;
      color: var(--text);
      opacity:0; animation: fadeUp .8s .35s forwards;
    }
    h1.hero-name em {
      font-style: normal;
      color: transparent;
      -webkit-text-stroke: 1px var(--accent);
    }
    .hero-subtitle {
      margin-top: 28px;
      font-family: var(--ff-mono);
      font-size: clamp(.85rem, 2vw, 1.05rem);
      color: var(--muted);
      max-width: 540px;
      line-height: 1.7;
      opacity:0; animation: fadeUp .8s .5s forwards;
    }
    .hero-ctas {
      margin-top: 48px;
      display:flex; gap:16px; flex-wrap:wrap;
      opacity:0; animation: fadeUp .8s .65s forwards;
    }
    .btn-primary-custom {
      font-family: var(--ff-mono);
      font-size: .8rem;
      letter-spacing: .12em;
      text-transform: uppercase;
      background: var(--accent);
      color: #0a0a0c;
      border: none;
      padding: 14px 32px;
      text-decoration: none;
      display:inline-flex; align-items:center; gap:8px;
      transition: transform .2s, box-shadow .2s;
      clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
    }
    .btn-primary-custom:hover {
      transform: translateY(-2px);
      box-shadow: 0 12px 40px var(--glow);
      color: #0a0a0c;
    }
    .btn-outline-custom {
      font-family: var(--ff-mono);
      font-size: .8rem;
      letter-spacing: .12em;
      text-transform: uppercase;
      background: transparent;
      color: var(--text);
      border: 1px solid var(--border);
      padding: 14px 32px;
      text-decoration: none;
      display:inline-flex; align-items:center; gap:8px;
      transition: border-color .2s, color .2s, transform .2s;
    }
    .btn-outline-custom:hover {
      border-color: var(--accent);
      color: var(--accent);
      transform: translateY(-2px);
    }
    .hero-scroll-hint {
      position: absolute;
      bottom: 40px; left: 50%;
      transform: translateX(-50%);
      display:flex; flex-direction:column; align-items:center; gap:8px;
      font-family: var(--ff-mono); font-size:.7rem;
      color: var(--muted); letter-spacing:.15em;
      animation: float 2.5s ease-in-out infinite;
    }
    .scroll-line {
      width:1px; height:50px;
      background: linear-gradient(to bottom, var(--accent), transparent);
    }

    /* ─── SECTION SHARED ─────────────────────────────────────── */
    section { position:relative; z-index:1; padding: 120px 0; }
    .section-label {
      font-family: var(--ff-mono);
      font-size: .75rem;
      letter-spacing: .25em;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 16px;
      display:flex; align-items:center; gap:12px;
    }
    .section-label::after {
      content:'';
      flex:1; max-width:60px; height:1px;
      background: var(--accent); opacity:.5;
    }
    h2.section-title {
      font-family: var(--ff-display);
      font-size: clamp(2rem, 5vw, 3.5rem);
      font-weight: 700;
      line-height: 1.1;
      margin-bottom: 16px;
    }
    .section-divider {
      width:100%; height:1px;
      background: var(--border);
      margin: 80px 0;
    }

    /* ─── ABOUT ──────────────────────────────────────────────── */
    #about .about-text {
      font-size: 1.15rem;
      line-height: 1.9;
      color: #bbbbd0;
      max-width: 580px;
    }
    #about .about-text strong { color: var(--accent); font-weight:500; }
    .stat-block {
      border: 1px solid var(--border);
      padding: 28px 24px;
      position:relative;
      background: var(--card);
      transition: border-color .3s;
    }
    .stat-block::before {
      content:'';
      position:absolute; top:0; left:0;
      width:3px; height:100%;
      background: var(--accent);
      opacity:0; transition: opacity .3s;
    }
    .stat-block:hover { border-color: rgba(232,200,122,.3); }
    .stat-block:hover::before { opacity:1; }
    .stat-num {
      font-family: var(--ff-display);
      font-size: 3rem;
      font-weight: 900;
      color: var(--accent);
      line-height:1;
    }
    .stat-label {
      font-family: var(--ff-mono);
      font-size: .75rem;
      color: var(--muted);
      letter-spacing: .1em;
      text-transform: uppercase;
      margin-top: 6px;
    }

    /* ─── SKILLS ─────────────────────────────────────────────── */
    #skills { background: var(--surface); }
    .skill-category {
      margin-bottom: 48px;
    }
    .skill-cat-title {
      font-family: var(--ff-mono);
      font-size: .8rem;
      color: var(--accent2);
      letter-spacing: .15em;
      text-transform: uppercase;
      margin-bottom: 20px;
      padding-bottom: 10px;
      border-bottom: 1px solid var(--border);
    }
    .skill-tags { display:flex; flex-wrap:wrap; gap:10px; }
    .skill-tag {
      font-family: var(--ff-mono);
      font-size: .78rem;
      padding: 7px 16px;
      border: 1px solid var(--border);
      color: var(--muted);
      letter-spacing: .05em;
      transition: all .25s;
      cursor: default;
    }
    .skill-tag:hover {
      border-color: var(--accent);
      color: var(--accent);
      background: var(--glow);
    }

    /* ─── PROJECTS ───────────────────────────────────────────── */
    .project-card {
      background: var(--card);
      border: 1px solid var(--border);
      padding: 40px 36px;
      position: relative;
      overflow: hidden;
      transition: transform .3s, border-color .3s, box-shadow .3s;
      height:100%;
    }
    .project-card::after {
      content:'';
      position: absolute; bottom:0; left:0; right:0;
      height:2px;
      background: linear-gradient(90deg, var(--accent), var(--accent2));
      transform: scaleX(0); transform-origin: left;
      transition: transform .4s;
    }
    .project-card:hover {
      transform: translateY(-6px);
      border-color: rgba(232,200,122,.25);
      box-shadow: 0 24px 60px rgba(0,0,0,.4);
    }
    .project-card:hover::after { transform: scaleX(1); }
    .project-num {
      font-family: var(--ff-mono);
      font-size: .75rem;
      color: var(--accent);
      opacity:.5;
      margin-bottom: 20px;
    }
    .project-title {
      font-family: var(--ff-display);
      font-size: 1.6rem;
      font-weight: 700;
      color: var(--text);
      margin-bottom: 14px;
      line-height:1.2;
    }
    .project-desc {
      font-size: .92rem;
      color: var(--muted);
      line-height: 1.8;
      margin-bottom: 24px;
    }
    .project-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom: 28px; }
    .project-tag {
      font-family: var(--ff-mono);
      font-size: .7rem;
      padding: 4px 12px;
      background: rgba(232,200,122,.08);
      color: var(--accent);
      border: 1px solid rgba(232,200,122,.2);
      letter-spacing:.05em;
    }
    .project-links { display:flex; gap:16px; }
    .project-link {
      font-family: var(--ff-mono);
      font-size: .75rem;
      color: var(--muted);
      text-decoration: none;
      letter-spacing:.08em;
      display:flex; align-items:center; gap:6px;
      transition: color .2s;
    }
    .project-link:hover { color: var(--accent); }

    /* Featured project (wide) */
    .project-card.featured {
      background: linear-gradient(135deg, var(--card) 60%, rgba(232,200,122,.04));
    }
    .project-card.featured .project-title { font-size: 2.2rem; }
    .featured-badge {
      font-family: var(--ff-mono);
      font-size: .68rem;
      letter-spacing: .2em;
      text-transform:uppercase;
      background: var(--accent);
      color: #0a0a0c;
      padding: 3px 10px;
      display:inline-block;
      margin-bottom: 20px;
    }

    /* ─── EXPERIENCE ─────────────────────────────────────────── */
    #experience { background: var(--surface); }
    .timeline { position:relative; padding-left: 32px; }
    .timeline::before {
      content:'';
      position:absolute; left:0; top:8px; bottom:8px;
      width:1px; background: var(--border);
    }
    .timeline-item { position:relative; margin-bottom: 56px; }
    .timeline-item:last-child { margin-bottom:0; }
    .timeline-dot {
      position:absolute; left:-36px; top:6px;
      width:9px; height:9px;
      border-radius:50%;
      background: var(--accent);
      box-shadow: 0 0 0 4px rgba(232,200,122,.15);
    }
    .timeline-date {
      font-family: var(--ff-mono);
      font-size: .75rem;
      color: var(--accent);
      letter-spacing: .1em;
      margin-bottom: 8px;
    }
    .timeline-role {
      font-family: var(--ff-display);
      font-size: 1.4rem;
      font-weight: 700;
      margin-bottom: 4px;
    }
    .timeline-company {
      font-family: var(--ff-mono);
      font-size: .82rem;
      color: var(--muted);
      margin-bottom: 14px;
    }
    .timeline-desc {
      font-size: .9rem;
      color: #9999b0;
      line-height: 1.8;
      max-width: 520px;
    }

    /* ─── CONTACT ────────────────────────────────────────────── */
    #contact { overflow: hidden; }
    .contact-heading {
      font-family: var(--ff-display);
      font-size: clamp(2.5rem, 7vw, 6rem);
      font-weight: 900;
      line-height: 1;
      letter-spacing:-.02em;
    }
    .contact-heading span {
      color: transparent;
      -webkit-text-stroke: 1px var(--border);
    }
    .contact-email {
      font-family: var(--ff-mono);
      font-size: clamp(1rem, 2.5vw, 1.4rem);
      color: var(--accent);
      text-decoration: none;
      letter-spacing:.05em;
      display:inline-flex; align-items:center; gap:10px;
      border-bottom: 1px solid rgba(232,200,122,.3);
      padding-bottom: 4px;
      transition: border-color .2s;
    }
    .contact-email:hover { border-color: var(--accent); }
    .social-links { display:flex; gap:16px; flex-wrap:wrap; }
    .social-link {
      width:48px; height:48px;
      border: 1px solid var(--border);
      display:grid; place-items:center;
      color: var(--muted);
      text-decoration: none;
      font-size: 1.1rem;
      transition: all .25s;
    }
    .social-link:hover {
      border-color: var(--accent);
      color: var(--accent);
      background: var(--glow);
    }
    .contact-form-group {
      margin-bottom: 20px;
    }
    .contact-form-group label {
      font-family: var(--ff-mono);
      font-size: .72rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--muted);
      display:block; margin-bottom: 8px;
    }
    .contact-form-group input,
    .contact-form-group textarea {
      width:100%;
      background: var(--card);
      border: 1px solid var(--border);
      color: var(--text);
      padding: 14px 18px;
      font-family: var(--ff-body);
      font-size: .9rem;
      outline: none;
      transition: border-color .25s;
      resize: none;
    }
    .contact-form-group input:focus,
    .contact-form-group textarea:focus {
      border-color: rgba(232,200,122,.5);
    }
    .contact-form-group input::placeholder,
    .contact-form-group textarea::placeholder { color: var(--muted); opacity:.5; }
    #form-success {
      display:none;
      font-family: var(--ff-mono);
      font-size: .85rem;
      color: var(--accent2);
      margin-top: 14px;
    }

    /* ─── FOOTER ─────────────────────────────────────────────── */
    footer {
      border-top: 1px solid var(--border);
      padding: 32px 0;
      font-family: var(--ff-mono);
      font-size: .72rem;
      color: var(--muted);
      letter-spacing: .08em;
    }

    /* ─── ANIMATIONS ─────────────────────────────────────────── */
    @keyframes fadeUp {
      from { opacity:0; transform: translateY(24px); }
      to   { opacity:1; transform: translateY(0); }
    }
    @keyframes float {
      0%,100% { transform: translateX(-50%) translateY(0); }
      50%      { transform: translateX(-50%) translateY(-10px); }
    }
    .reveal {
      opacity:0; transform: translateY(30px);
      transition: opacity .7s, transform .7s;
    }
    .reveal.visible { opacity:1; transform: translateY(0); }
    .reveal-delay-1 { transition-delay: .1s; }
    .reveal-delay-2 { transition-delay: .2s; }
    .reveal-delay-3 { transition-delay: .3s; }

    /* ─── RESPONSIVE ─────────────────────────────────────────── */
    @media (max-width: 768px) {
      #navbar { padding: 18px 24px; }
      #navbar.scrolled { padding: 12px 24px; }
      .nav-links { display:none; flex-direction:column; gap:0;
        position:fixed; top:0; left:0; right:0; bottom:0;
        background: var(--bg); padding: 100px 40px 40px;
        z-index: 999;
      }
      .nav-links.open { display:flex; }
      .nav-links li { border-bottom: 1px solid var(--border); }
      .nav-links a { display:block; padding:20px 0; font-size:1rem; }
      .hamburger { display:flex; z-index:1001; }
      section { padding: 80px 0; }
      #hero { padding: 100px 24px 60px; }
      .hero-scroll-hint { display:none; }
    }