:root{
    --soil:#153036;
    --soil-2:#1f4750;
    --bone:#fbeee0;
    --bone-dim:#e3c9a6;
    --red:#e2583f;
    --green:#4fa07a;
    --amber:#f0a83c;
    --line: rgba(251,238,224,0.16);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--soil);
    color:var(--bone);
    font-family:'Inter', sans-serif;
    line-height:1.55;
    overflow-x:hidden;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces', serif;
    font-weight:700;
    letter-spacing:-0.01em;
  }
  .mono{ font-family:'JetBrains Mono', monospace; }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{ max-width:1120px; margin:0 auto; padding:0 24px; }

  @media(prefers-reduced-motion: reduce){
    *{animation:none !important; transition:none !important;}
  }

  @keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
  @keyframes drawLine{to{stroke-dashoffset:0}}
  @keyframes popIn{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
  @keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
  @keyframes pulseRing{0%{box-shadow:0 0 0 0 rgba(240,168,60,.45)}70%{box-shadow:0 0 0 10px rgba(240,168,60,0)}100%{box-shadow:0 0 0 0 rgba(240,168,60,0)}}
  @keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(22px,-24px,0) scale(1.08)}100%{transform:translate3d(-16px,18px,0) scale(.95)}}
  @keyframes heroGlow{0%{background-position:0 50%,100% 50%,0 50%}100%{background-position:100% 50%,0 50%,100% 50%}}
  @keyframes shine{0%{transform:translateX(-140%)}100%{transform:translateX(140%)}}
  .anim-in{animation:fadeUp .8s cubic-bezier(.22,.9,.32,1) both}
  .delay-0{animation-delay:0s}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.22s}.delay-3{animation-delay:.34s}.delay-4{animation-delay:.3s}.delay-5{animation-delay:.6s}.delay-6{animation-delay:1.1s}.delay-7{animation-delay:1.6s}.delay-8{animation-delay:2.1s}
  .reveal-1{transition-delay:.08s}.reveal-2{transition-delay:.16s}.reveal-3{transition-delay:.24s}
  .brand-sub{font-size:.7rem;color:var(--bone-dim);font-weight:600;letter-spacing:.08em}
  .route-svg{position:absolute;top:0;left:0}
  .mobile-cta{text-align:center}

  header{
    position:fixed; top:0; left:0; right:0; z-index:50;
    background:rgba(36,29,24,0.9);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  nav.wrap{ display:flex; align-items:center; justify-content:space-between; height:72px; }
  .brand{ display:flex; align-items:center; gap:10px; font-family:'Fraunces', serif; font-weight:700; font-size:1.6rem; }
  .brand-mark{ width:100px; height:100px; border-radius:50%; flex-shrink:0; transition:transform 0.4s ease; overflow:hidden; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.06); border:2px solid rgba(240,168,60,0.35); padding:4px; }
  .brand-mark img, .brand-mark svg{ width:100%; height:100%; object-fit:cover; display:block; }
  .brand:hover .brand-mark{ transform:rotate(-12deg) scale(1.08); }
  .nav-links{ display:flex; gap:32px; font-size:0.95rem; color:var(--bone-dim); }
  .nav-links a{ position:relative; padding-bottom:4px; transition:color 0.25s ease; }
  .nav-links a::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--amber);
    transition:width 0.3s ease;
  }
  .nav-links a:hover{ color:var(--amber); }
  .nav-links a:hover::after{ width:100%; }
  .nav-cta{
    background:var(--amber); color:var(--soil); font-weight:600;
    padding:10px 20px; border-radius:100px; font-size:0.9rem; white-space:nowrap;
    transition:background 0.25s ease, transform 0.25s ease;
  }
  .nav-cta:hover{ background:var(--bone); transform:translateY(-2px); }
  .lang-toggle{
    background:transparent; border:1px solid var(--line); color:var(--bone-dim);
    font-family:'JetBrains Mono', monospace; font-size:0.78rem; font-weight:600;
    padding:8px 14px; border-radius:100px; margin-left:16px; cursor:pointer;
    transition:border-color 0.25s ease, color 0.25s ease;
  }
  .lang-toggle:hover{ border-color:var(--amber); color:var(--amber); }
  @media(max-width:820px){ .lang-toggle{ display:none; } }
  .burger{ display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; }
  .burger span{ width:24px; height:2px; background:var(--bone); transition:transform 0.3s ease, opacity 0.3s ease; }
  .burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .burger.open span:nth-child(2){ opacity:0; }
  .burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .mobile-panel{
    max-height:0; overflow:hidden; display:flex; flex-direction:column; gap:18px;
    padding:0 24px; border-top:0 solid var(--line); background:var(--soil);
    transition:max-height 0.4s ease, padding 0.4s ease;
  }
  .mobile-panel.open{ max-height:340px; padding:20px 24px 28px; border-top:1px solid var(--line); }
  @media(max-width:820px){
    .nav-links, .nav-cta.desktop-only{ display:none; }
    .burger{ display:flex; }
  }

  /* ---------- HERO ---------- */
  .hero{
  position:relative; padding:150px 0 90px;
  background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url('images/bajajheroback.jpeg') center/cover no-repeat !important;
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
  .hero::before, .hero::after{
    content:""; position:absolute; border-radius:50%; filter:blur(18px); pointer-events:none; opacity:0.9;
  }
  .hero::before{
    width:280px; height:280px; top:-90px; right:-120px;
    background:radial-gradient(circle, rgba(240,168,60,0.32), transparent 70%);
    animation:drift 18s ease-in-out infinite alternate;
  }
  .hero::after{
    width:340px; height:340px; bottom:-160px; left:-120px;
    background:radial-gradient(circle, rgba(79,160,122,0.22), transparent 70%);
    animation:drift 22s ease-in-out infinite alternate-reverse;
  }
  .hero-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:center; }
  @media(max-width:900px){ .hero-grid{ grid-template-columns:1fr; } }
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'JetBrains Mono', monospace; font-size:0.78rem; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--amber);
    border:1px solid rgba(240,168,60,0.4); padding:6px 14px; border-radius:100px;
    margin-bottom:22px;
  }
  .eyebrow::before{ content:"●"; color:var(--red); font-size:0.6rem; animation:pulseRing 2.2s infinite; border-radius:50%; }
  .hero h1{ font-size:clamp(2.4rem, 5vw, 4rem); line-height:1.04; margin-bottom:22px; }
  .hero h1 em{ font-style:italic; color:var(--amber); font-weight:600; }
  .hero p.lead{ color:var(--bone-dim); font-size:1.08rem; max-width:46ch; margin-bottom:32px; }
  .btn-row{ display:flex; gap:14px; flex-wrap:wrap; }
  .btn{
    display:inline-flex; align-items:center; gap:8px; padding:14px 26px; border-radius:100px;
    font-weight:600; font-size:0.95rem; border:1px solid transparent;
    transition:transform 0.25s ease, background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
  }
  .btn-primary{ background:var(--red); color:var(--bone); }
  .btn-primary:hover{ background:#a8301f; transform:translateY(-3px); }
  .btn-ghost{ border-color:var(--line); color:var(--bone); }
  .btn-ghost:hover{ border-color:var(--amber); color:var(--amber); transform:translateY(-3px); }

  .route-card{
    position:relative; background:var(--soil-2); border:1px solid var(--line); border-radius:20px;
    padding:28px 24px; animation:floatY 6s ease-in-out infinite;
    box-shadow:0 16px 40px rgba(0,0,0,0.18);
  }
  .route-card::before{
    content:""; position:absolute; inset:-1px; border-radius:inherit; border:1px solid rgba(240,168,60,0.28);
    animation:pulseRing 2.8s infinite;
  }
  .route-card:hover{ transform:translateY(-3px) scale(1.01); }
  .route-card h3{ font-size:1rem; color:var(--bone-dim); font-weight:500; margin-bottom:18px; font-family:'Inter'; }
  .route-svg-wrap{ position:relative; height:230px; }
  .route-path{ stroke-dasharray:600; stroke-dashoffset:600; animation:drawLine 2.4s ease forwards 0.4s; }
  .route-stop{
    position:absolute; display:flex; align-items:center; gap:10px;
    font-family:'JetBrains Mono', monospace; font-size:0.75rem;
    opacity:0; animation:fadeUp 0.6s ease forwards;
  }
  .dot{ width:11px; height:11px; border-radius:50%; background:var(--amber); box-shadow:0 0 0 4px rgba(240,168,60,0.18); flex-shrink:0; }
  .dot.red{ background:var(--red); box-shadow:0 0 0 4px rgba(226,88,63,0.18); }
  .dot.green{ background:var(--green); box-shadow:0 0 0 4px rgba(79,160,122,0.18); }

  /* ---------- SIGNATURE BACKGROUND TREATMENTS ---------- */
  /* Dark sections: soil gradient + soft amber/green glows instead of flat black */
  .signature-dark{
    position:relative; overflow:hidden;
    background:
      radial-gradient(circle at 15% 20%, rgba(240,168,60,0.16), transparent 45%),
      radial-gradient(circle at 85% 80%, rgba(79,160,122,0.16), transparent 45%),
      linear-gradient(180deg, var(--soil) 0%, var(--soil-2) 100%);
  }
  .signature-dark::before, .signature-dark::after{
    content:""; position:absolute; border-radius:50%; filter:blur(50px); pointer-events:none; z-index:0;
  }
  .signature-dark::before{
    width:380px; height:380px; top:-110px; right:-90px; opacity:0.55;
    background:radial-gradient(circle, rgba(240,168,60,0.85), transparent 70%);
    animation:drift 20s ease-in-out infinite alternate;
  }
  .signature-dark::after{
    width:420px; height:420px; bottom:-130px; left:-100px; opacity:0.5;
    background:radial-gradient(circle, rgba(79,160,122,0.8), transparent 70%);
    animation:drift 24s ease-in-out infinite alternate-reverse;
  }
  .signature-dark > .wrap{ position:relative; z-index:1; }

  /* Glow-only overlay: adds the same accent glows on top of a section that already has its own background (e.g. a photo) */
  .signature-glow{ position:relative; overflow:hidden; }
  .signature-glow::before, .signature-glow::after{
    content:""; position:absolute; border-radius:50%; filter:blur(50px); pointer-events:none; z-index:0;
  }
  .signature-glow::before{
    width:360px; height:360px; top:-100px; left:-90px; opacity:0.5;
    background:radial-gradient(circle, rgba(240,168,60,0.85), transparent 70%);
    animation:drift 22s ease-in-out infinite alternate;
  }
  .signature-glow::after{
    width:400px; height:400px; bottom:-120px; right:-100px; opacity:0.45;
    background:radial-gradient(circle, rgba(79,160,122,0.8), transparent 70%);
    animation:drift 26s ease-in-out infinite alternate-reverse;
  }
  .signature-glow > .wrap{ position:relative; z-index:1; }

  /* Light contrast section ("Kilimanjaro Contrast"): breaks up long stretches of dark sections */
  .signature-light{
    position:relative; overflow:hidden; color:var(--soil);
    background: linear-gradient(180deg, var(--bone) 0%, #f5d9b8 100%);
  }
  .signature-light::before, .signature-light::after{
    content:""; position:absolute; border-radius:50%; filter:blur(80px); pointer-events:none; z-index:0;
  }
  .signature-light::before{
    width:320px; height:320px; top:-110px; right:-90px; opacity:0.22;
    background:radial-gradient(circle, rgba(226,88,63,0.4), transparent 70%);
    animation:drift 20s ease-in-out infinite alternate;
  }
  .signature-light::after{
    width:360px; height:360px; bottom:-130px; left:-100px; opacity:0.2;
    background:radial-gradient(circle, rgba(79,160,122,0.4), transparent 70%);
    animation:drift 25s ease-in-out infinite alternate-reverse;
  }
  .signature-light > .wrap{ position:relative; z-index:1; }
  .signature-light .kicker{ color:#c47a1f; }
  .signature-light .section-head p{ color:#5a4636; }
  .signature-light h2{ color:var(--soil); }

  /* ---------- SECTION HEADS ---------- */
  section{ padding:88px 0; }
  .section-head{ max-width:640px; margin-bottom:52px; }
  .kicker{
    font-family:'JetBrains Mono', monospace; font-size:0.78rem; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--green); margin-bottom:12px; display:block;
  }
  .section-head h2{ font-size:clamp(1.8rem, 3.4vw, 2.6rem); margin-bottom:14px; }
  .section-head p{ color:var(--bone-dim); font-size:1.02rem; }

  /* ---------- SERVICES ---------- */
  .services-grid{
    display:grid; grid-template-columns:repeat(4, 1fr); gap:1px;
    background:var(--line); border:1px solid var(--line); border-radius:18px; overflow:hidden;
  }
  @media(max-width:900px){ .services-grid{ grid-template-columns:repeat(2,1fr); } }
  @media(max-width:560px){ .services-grid{ grid-template-columns:1fr; } }
  .service{ background:var(--soil); padding:32px 26px; position:relative; overflow:hidden; transition:background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; }
  .service::before{ content:""; position:absolute; inset:0; background:linear-gradient(115deg, transparent, rgba(240,168,60,0.16), transparent); transform:translateX(-140%); transition:transform 0.6s ease; }
  .service:hover{ background:var(--soil-2); transform:translateY(-4px) scale(1.01); box-shadow:0 10px 24px rgba(0,0,0,0.22); }
  .service:hover::before{ transform:translateX(140%); }
  .service .num{ font-family:'JetBrains Mono', monospace; color:var(--bone-dim); font-size:0.8rem; margin-bottom:22px; display:block; }
  .service h3{ font-size:1.15rem; margin-bottom:10px; font-family:'Fraunces'; font-weight:600; }
  .service p{ color:var(--bone-dim); font-size:0.92rem; }

  /* ---------- PHOTO PLACEHOLDERS ---------- */
  .photo-slot{
    position:relative; overflow:hidden; border-radius:16px;
    border:1.5px dashed var(--line);
    background:repeating-linear-gradient(135deg, var(--soil-2), var(--soil-2) 10px, var(--soil) 10px, var(--soil) 20px);
    display:flex; align-items:center; justify-content:center;
    transition:border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
  }
  .photo-slot:hover{ border-color:var(--amber); transform:translateY(-3px); box-shadow:0 14px 28px rgba(0,0,0,0.18); }
  .photo-slot img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    transition:transform 0.6s ease, filter 0.6s ease;
  }
  .photo-slot:hover img{ transform:scale(1.05); filter:saturate(1.06) contrast(1.04); }
  .photo-slot .slot-label{
    position:relative; z-index:1; text-align:center; padding:14px;
    font-family:'JetBrains Mono', monospace; font-size:0.68rem; color:var(--bone-dim);
    letter-spacing:0.03em; line-height:1.5;
  }
  /* hide descriptive labels that overlay gallery photos (requested) */
  .gallery-grid .slot-label{ display:none !important; }
  .photo-slot .slot-label .icon{ font-size:1.3rem; display:block; margin-bottom:6px; }
  .photo-slot.round{ border-radius:50%; }

  .gallery-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:14px; height:420px; }
  .gallery-grid .g1{ grid-row:1 / 3; }
  @media(max-width:800px){
    .gallery-grid{ grid-template-columns:1fr 1fr; grid-template-rows:repeat(3, 160px); height:auto; }
    .gallery-grid .g1{ grid-row:1 / 2; grid-column:1 / 3; }
  }

  /* ---------- TOUR HIGHLIGHTS ---------- */
  .highlight-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; }
  @media(max-width:900px){ .highlight-grid{ grid-template-columns:repeat(2,1fr); } }
  @media(max-width:560px){ .highlight-grid{ grid-template-columns:1fr; } }
  .highlight-card{
    position:relative; background:var(--soil-2); border:1px solid var(--line); border-radius:18px;
    padding:20px 20px 26px; transition:transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
  }
  .highlight-card:hover{ transform:translateY(-6px); border-color:var(--amber); box-shadow:0 14px 30px rgba(0,0,0,0.22); }
  .highlight-photo{
    position:relative; width:100%; height:150px; border-radius:12px; overflow:hidden; margin-bottom:18px;
    background:repeating-linear-gradient(135deg, var(--soil), var(--soil) 10px, var(--soil-2) 10px, var(--soil-2) 20px);
  }
  .highlight-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 0.6s ease; }
  .highlight-card:hover .highlight-photo img{ transform:scale(1.06); }
  .highlight-num{ display:block; color:var(--amber); font-size:0.8rem; margin-bottom:10px; }
  .highlight-card h3{ font-size:1.08rem; margin-bottom:10px; font-family:'Fraunces'; font-weight:600; }
  .highlight-card p{ color:var(--bone-dim); font-size:0.88rem; }

  /* ---------- ITINERARY ---------- */
  .itinerary{
    background: linear-gradient(rgba(36,29,24,0.55), rgba(51,41,32,0.6)), url("images/tour-heritage-centre.jpeg") center/cover no-repeat;
    background-attachment: fixed;
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  }
  @media(max-width:900px){ .itinerary{ background-attachment: scroll; } }
  .ticket{
    position:relative; display:grid; grid-template-columns:56px 1fr auto; gap:18px; align-items:center;
    padding:22px 0; border-bottom:1px dashed var(--line);
    transition:padding-left 0.3s ease; 
  }
  .ticket .thumb{ width:56px; height:56px; border-radius:12px; }
  .ticket .thumb .slot-label{ font-size:0.5rem; padding:4px; }
  .ticket .thumb .slot-label .icon{ font-size:0.9rem; margin-bottom:2px; }
  .ticket:hover{ padding-left:8px; }
  .ticket:last-child{ border-bottom:none; }
  /* time removed from layout */
  .ticket .stop-line{ position:relative; padding-left:24px; }
  .ticket .stop-line::before{
    content:""; position:absolute; left:6px; top:6px; width:10px; height:10px; border-radius:50%; background:var(--red);
  }
  .ticket:nth-child(even) .stop-line::before{ background:var(--green); }
  .ticket h4{ font-family:'Fraunces'; font-weight:600; font-size:1.08rem; margin-bottom:4px; }
  .ticket p{ color:var(--bone-dim); font-size:0.9rem; max-width:52ch; }
  .ticket .tag{
    font-family:'JetBrains Mono', monospace; font-size:0.72rem; color:var(--bone-dim);
    border:1px solid var(--line); padding:4px 10px; border-radius:100px; height:fit-content; white-space:nowrap;
  }
  @media(max-width:640px){
    .ticket{ grid-template-columns:1fr; gap:12px; }
    .ticket .thumb{ width:100%; height:160px; border-radius:14px; order:-1; }
    .ticket .stop-line{ padding-left:20px; }
    .ticket .tag{ justify-self:start; }
  }

  /* ---------- PRICING ---------- */
  .price-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
  @media(max-width:900px){ .price-grid{ grid-template-columns:repeat(2,1fr); } }
  @media(max-width:560px){ .price-grid{ grid-template-columns:1fr; } }
  .price-card{
    border:1px solid var(--line); border-radius:16px; padding:26px 22px; background:var(--soil-2);
    transition:transform 0.3s ease, border-color 0.3s ease;
  }
  .price-card:hover{ transform:translateY(-6px); border-color:var(--amber); }
  .price-card.featured{ border-color:var(--amber); background:linear-gradient(160deg, rgba(240,168,60,0.12), var(--soil-2)); }
  .price-card h4{ font-family:'Fraunces'; font-size:1.05rem; margin-bottom:8px; }
  .price-card .amount{ font-family:'JetBrains Mono', monospace; font-size:1.5rem; color:var(--amber); margin:10px 0 6px; }
  .price-card .amount span{ font-size:0.75rem; color:var(--bone-dim); font-family:'Inter'; }
  .price-card p.note{ color:var(--bone-dim); font-size:0.85rem; }

  /* ---------- INSTANT PRICE FORM ---------- */
  .price-form{
    max-width:760px; margin:0 auto; background:var(--soil-2); border:1px solid var(--line);
    border-radius:22px; padding:32px 28px; box-shadow:0 20px 50px rgba(0,0,0,0.25);
  }
  .trip-type-row{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:22px; }
  .trip-chip{
    background:var(--soil); border:1px solid var(--line); color:var(--bone-dim);
    font-family:'Inter'; font-size:0.85rem; font-weight:600; padding:10px 18px;
    border-radius:100px; cursor:pointer; transition:all 0.25s ease;
  }
  .trip-chip:hover{ border-color:var(--amber); color:var(--amber); }
  .trip-chip.active{ background:var(--amber); border-color:var(--amber); color:var(--soil); }
  .price-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:18px; }
  @media(max-width:640px){ .price-form-row{ grid-template-columns:1fr; } }
  .price-form-field{ position:relative; }
  .price-form-field input{
    width:100%; background:var(--soil); border:1px solid var(--line); border-radius:12px;
    padding:14px 16px; color:var(--bone); font-family:'Inter'; font-size:0.92rem;
    transition:border-color 0.25s ease;
  }
  .price-form-field input::placeholder{ color:var(--bone-dim); }
  .price-form-field input:focus{ outline:2px solid var(--amber); outline-offset:1px; }
  .mini-loc-btn{
    background:none; border:none; color:var(--amber); font-family:'JetBrains Mono', monospace;
    font-size:0.72rem; margin-top:6px; padding:0; cursor:pointer; text-decoration:underline;
  }
  .mini-loc-btn:hover{ color:var(--bone); }
  .price-submit-btn{ width:100%; justify-content:center; font-size:1rem; padding:16px; }
  .price-form-status{ text-align:center; margin-top:14px; font-size:0.85rem; color:var(--bone-dim); min-height:1.2em; }

  /* ---------- TESTIMONIALS ---------- */
  .testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  @media(max-width:900px){ .testi-grid{ grid-template-columns:1fr; } }
  .testi{ border:1px solid var(--line); border-radius:16px; padding:26px; background:var(--soil-2); transition:transform 0.3s ease; }
  .testi:hover{ transform:translateY(-4px); }
  .testi p.quote{ font-size:1rem; margin-bottom:18px; color:var(--bone); }
  .testi .who{ display:flex; align-items:center; gap:10px; }
  .avatar{ width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg, var(--green), var(--amber)); }
  .who .name{ font-weight:600; font-size:0.9rem; }
  .who .role{ font-size:0.8rem; color:var(--bone-dim); }

  /* ---------- CONTACT ---------- */
  .contact{
    background:var(--soil-2); border-radius:24px; padding:56px 44px;
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px; border:1px solid var(--line);
  }
  @media(max-width:800px){ .contact{ grid-template-columns:1fr; padding:36px 24px; } }
  .contact h2{ font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:14px; }
  .contact p{ color:var(--bone-dim); margin-bottom:24px; max-width:44ch; }
  .contact-list{ display:flex; flex-direction:column; gap:16px; }
  .contact-item{ display:flex; gap:14px; align-items:flex-start; }
  .contact-item .icn{
    width:38px; height:38px; border-radius:10px; background:var(--soil);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
    font-family:'JetBrains Mono'; color:var(--amber); font-size:0.85rem; border:1px solid var(--line);
  }
  .contact-item .label{ font-size:0.8rem; color:var(--bone-dim); font-family:'JetBrains Mono'; text-transform:uppercase; letter-spacing:0.05em; }
  .contact-item .val{ font-size:1rem; font-weight:600; }
  .contact-form{ display:flex; flex-direction:column; gap:14px; }
  .contact-form input, .contact-form textarea{
    background:var(--soil); border:1px solid var(--line); border-radius:10px;
    padding:13px 16px; color:var(--bone); font-family:'Inter'; font-size:0.92rem;
    transition:border-color 0.25s ease;
  }
  .contact-form input::placeholder, .contact-form textarea::placeholder{ color:var(--bone-dim); }
  .contact-form input:focus, .contact-form textarea:focus{ outline:2px solid var(--amber); outline-offset:1px; }
  .contact-form button{
    background:var(--amber); color:var(--soil); font-weight:700; border:none;
    padding:14px; border-radius:10px; cursor:pointer; font-size:0.95rem;
    transition:background 0.25s ease, transform 0.25s ease;
  }
  .contact-form button:hover{ background:var(--bone); transform:translateY(-2px); }
  .form-note{ font-size:0.78rem; color:var(--bone-dim); }

  footer{
    padding:36px 0 44px; border-top:1px solid var(--line);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px;
    color:var(--bone-dim); font-size:0.85rem;
  }

  /* scroll reveal */
  .reveal{ opacity:0; transform:translateY(22px); transition:opacity 0.7s cubic-bezier(.22,.9,.32,1), transform 0.7s cubic-bezier(.22,.9,.32,1); }
  .reveal.in{ opacity:1; transform:translateY(0); }