/* ---------- HERO ---------- */
  .hero{
    position:relative; min-height:100svh;
    display:flex; flex-direction:column; justify-content:flex-end;
    overflow:hidden; padding-top:90px;
  }
  .hero-media{ position:absolute; inset:0; z-index:0; }
  .hero-media video{
    width:100%; height:100%; object-fit:cover; display:block;
    filter:saturate(.12) contrast(1.22) brightness(.42);
    transform:scale(1.06);
    animation:drift 30s ease-in-out infinite alternate;
  }
  .hero-grain{
    position:absolute; inset:0; z-index:1; opacity:.5; pointer-events:none;
    background-image:radial-gradient(rgba(233,238,243,.055) 1px, transparent 1px);
    background-size:3px 3px;
  }
  @keyframes drift{ from{ transform:scale(1.03) translate(0,0);} to{ transform:scale(1.1) translate(-1.2%,-.8%);} }
  @media (prefers-reduced-motion: reduce){
    .hero-media video{ animation:none; }
  }
  .hero-media::after{
    content:""; position:absolute; inset:0; z-index:2;
    background:
      linear-gradient(90deg, rgba(16,25,34,.97) 0%, rgba(16,25,34,.88) 40%, rgba(16,25,34,.55) 75%, rgba(16,25,34,.45) 100%),
      radial-gradient(ellipse at 72% 45%, rgba(16,25,34,0) 0%, rgba(16,25,34,.55) 70%),
      linear-gradient(180deg, rgba(16,25,34,.8) 0%, rgba(16,25,34,.12) 30%, rgba(16,25,34,.6) 74%, rgba(16,25,34,.98) 100%);
  }

  @keyframes rise{ to{ opacity:1; transform:none; } }

  .hero h1{
    font-size:clamp(2.2rem,5vw,4.15rem);
    font-weight:300; line-height:1.1; letter-spacing:-0.02em;
    margin:24px 0 28px; max-width:15ch; text-wrap:balance;
  }
  .hero h1 strong{ font-weight:600; }
  .hero h1 em{ font-style:normal; color:#fff; }
  .hero p{ color:var(--muted); font-size:clamp(.95rem,1.4vw,1.08rem); max-width:560px; margin:0 0 38px; }

  @keyframes sh{ 0%,100%{ opacity:0; transform:translateY(0);} 35%{ opacity:1;} 70%{ opacity:0; transform:translateY(9px);} }

  .read-bar{
    position:fixed; top:0; left:0; height:2px; width:0;
    background:var(--text); z-index:70; transition:width .1s linear;
  }
