/* Homepage LiDAR section: a whole lake mapped from satellite imagery and LiDAR.
   The overlay (templates/pt/_home_lidar_map.html) draws on once the map scrolls
   in; homepage-imagine.mjs adds .is-in to [data-reveal]. Without JS, or with
   reduced motion (homepage-imagine.css stops all animation), it simply shows.
   Line colours match the launch film's "At any scale" beat. */
.home-lidar{padding-block:112px 100px;background:var(--pt-surface);border-bottom:1px solid var(--pt-border)}
.home-lidar-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 64px;align-items:end;margin-bottom:40px}
.home-lidar h2{font:600 clamp(34px,3.8vw,54px)/1.05 var(--pt-font);letter-spacing:-.02em;color:var(--pt-ink)}
.home-lidar-head p{font-size:17.5px;line-height:1.65;color:var(--pt-muted);max-width:50ch}
.home-lidar-head .study-link{display:inline-block;margin-top:12px}
.home-lidar-map{position:relative;margin:0;border-radius:18px;overflow:hidden;border:1px solid var(--pt-border);background:#27352b}
.home-lidar-map img{display:block;width:100%;height:auto}
.home-lidar-svg{position:absolute;left:0;top:0;width:100%;height:auto;aspect-ratio:2/1}
.home-lidar-svg path{fill:none;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1 2;stroke-dashoffset:0}
.lidar-land path{stroke:#ffe7a3;stroke-opacity:.7;stroke-width:1.5}
.lidar-land .ix path{stroke-opacity:.9;stroke-width:2.6}
.lidar-bed path{fill:#3a9cc0;stroke:#f2f6f8;stroke-width:2.7}
.lidar-bed .lv0 path{fill-opacity:.16}
.lidar-bed .lv1 path{fill-opacity:.26}
.lidar-bed .lv2 path{fill-opacity:.36}
.lidar-bed .lv3 path{fill-opacity:.46}
.home-lidar-svg .lidar-rim{stroke:#43d0c3;stroke-width:4}
.home-lidar-stats{position:absolute;top:16px;left:16px;display:flex;gap:22px;margin:0;padding:10px 16px;border-radius:12px;background:var(--pt-panel);border:1px solid var(--pt-border)}
.home-lidar-stats dt{font:650 9.5px/1.2 var(--pt-font);letter-spacing:.08em;text-transform:uppercase;color:var(--pt-muted)}
.home-lidar-stats dd{margin:2px 0 0;font:500 17px/1.3 var(--pt-font);font-variant-numeric:tabular-nums;color:var(--pt-ink);white-space:nowrap}
.home-lidar-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:40px}
.home-lidar-steps h3{font-size:19px;letter-spacing:-.02em;margin-bottom:8px;color:var(--pt-ink)}
.home-lidar-steps p{font-size:15px;line-height:1.6;color:var(--pt-muted)}
.home-lidar-steps a{color:var(--pt-link);font-weight:600;text-underline-offset:3px}

/* Waterline first, then the LiDAR ground, then the lake bed from shallow to deep. */
@keyframes lidar-draw{from{stroke-dashoffset:1.02}}
@keyframes lidar-fill{from{fill-opacity:0}}
.im-js .home-lidar-map.is-in .lidar-rim{animation:lidar-draw 1.4s .35s cubic-bezier(.45,0,.2,1) both}
.im-js .home-lidar-map.is-in .lidar-land path{animation:lidar-draw 1.5s var(--d) cubic-bezier(.45,0,.2,1) both}
.im-js .home-lidar-map.is-in .lidar-bed path{animation:lidar-draw .8s var(--d) ease-out both,lidar-fill .7s calc(var(--d) + .3s) ease-out both}

/* The map shrinks with the page, so its lines get thicker in map units to stay visible. */
@media(max-width:1000px){
 .home-lidar-head{grid-template-columns:1fr}
 .lidar-land path{stroke-width:2.3}.lidar-land .ix path{stroke-width:3.9}.lidar-bed path{stroke-width:4}.home-lidar-svg .lidar-rim{stroke-width:6}
}
@media(max-width:760px){
 .home-lidar{padding-block:56px}
 .home-lidar-head{margin-bottom:24px}
 .home-lidar-map{border-radius:14px}
 .home-lidar-stats{position:static;display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;border:0;border-top:1px solid var(--pt-border);border-radius:0}
 .home-lidar-steps{grid-template-columns:1fr;gap:20px;margin-top:28px}
 .lidar-land path{stroke-width:4.2}.lidar-land .ix path{stroke-width:7.3}.lidar-bed path{stroke-width:7.5}.home-lidar-svg .lidar-rim{stroke-width:11}
}
