/* ---------- scroll scenes (static by default, .live when frames load) ---------- */
.scene{position:relative;background:var(--navy-3);color:#fff;padding:0}
.scene .stick{position:relative;overflow:hidden;min-height:calc(100svh - 72px)}
.scene canvas{display:none}
.scene .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scene .shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,28,51,.86) 0%,rgba(15,28,51,.55) 45%,rgba(15,28,51,.08) 75%),linear-gradient(0deg,rgba(15,28,51,.55),transparent 35%)}
.scene .layer{position:relative;z-index:2;max-width:var(--wrap);margin:0 auto;padding:64px 20px;display:grid;gap:40px}
.scene .stage{max-width:620px}
.scene h1,.scene h2{color:#fff}
.scene h1 em,.scene h2 em,.scene .big em{font-style:normal;color:var(--pink)}
.scene .lede{font-size:1.22rem;color:#dbe3f2;max-width:580px}
.scene .ctas{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 14px}
.scene .trust{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:.98rem;color:#c9d4ea;margin:16px 0 0;padding:0;list-style:none}
.scene .trust li::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--pink);margin-right:8px;vertical-align:middle}
.scene .big{font-family:"Archivo",sans-serif;font-weight:800;font-size:clamp(2rem,5vw,3.4rem);line-height:1.05;margin:0 0 .4em}
.scene .hint{display:none}
.scene .hero-card{max-width:440px}

.scene.live .poster{display:none}
.scene.live canvas{display:block;position:absolute;inset:0;width:100%;height:100%}
.scene.live .stick{position:sticky;top:72px;height:calc(100svh - 72px);min-height:0}
.scene.live .layer{position:absolute;inset:0;padding:0 20px;display:block}
.scene.live .stage{position:absolute;left:max(20px,calc((100% - var(--wrap))/2 + 20px));right:20px;top:50%;transform:translateY(-44%);opacity:0;visibility:hidden;transition:opacity .45s ease,transform .6s ease,visibility 0s .45s}
.scene.live .stage.on{opacity:1;visibility:visible;transform:translateY(-50%);transition:opacity .45s ease,transform .6s ease}
.scene.live .hint{display:flex;position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:3;flex-direction:column;align-items:center;gap:6px;font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.2em;font-size:.8rem;color:#c9d4ea;opacity:calc(1 - var(--p,0)*8)}
.scene.live .hint i{width:2px;height:28px;background:linear-gradient(#fff,transparent);animation:hint 1.6s ease-in-out infinite}
@keyframes hint{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.scene.storm.live{height:340vh}
.scene.roof.live{height:300vh}

/* progress rail, right edge */
.scene .rail{display:none}
.scene.live .rail{display:block;position:absolute;right:18px;top:50%;transform:translateY(-50%);z-index:3;width:3px;height:140px;background:rgba(255,255,255,.18);border-radius:3px}
.scene.live .rail b{display:block;width:100%;height:calc(var(--p,0)*100%);background:var(--pink);border-radius:3px}

/* the shield: an arch that draws itself over the house mid-storm */
.scene .shield{display:none}
.scene.live .shield{display:block;position:absolute;z-index:1;left:calc((var(--dx,0) + var(--dw,1000)*.5)*1px);top:calc((var(--dy,0) + var(--dh,560)*.235)*1px);width:calc(var(--dw,1000)*.74px);transform:translateX(-50%);pointer-events:none;
  opacity:clamp(0,calc((var(--p,0) - .36)*8),1)}
.scene.live .shield path{fill:none;stroke:var(--pink);stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 10px rgba(236,72,153,.9)) drop-shadow(0 0 28px rgba(236,72,153,.55));
  stroke-dasharray:1;stroke-dashoffset:clamp(0,calc(1 - (var(--p,0) - .38)*4.2),1)}
.scene.live .shield .fill{fill:rgba(236,72,153,.07);stroke:none;filter:none;opacity:clamp(0,calc((var(--p,0) - .55)*5),1)}

/* coverage roof scene */
.roof .layer{grid-template-columns:1fr}
.roof .pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.roof .pill{display:inline-flex;align-items:center;gap:10px;padding:10px 16px 10px 12px;border-radius:999px;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.25);color:#fff;text-decoration:none;font-weight:700;backdrop-filter:blur(6px);transition:background .3s,border-color .3s,transform .3s}
.roof .pill svg{width:24px;height:24px;color:var(--pink)}
.roof .pill:hover{border-color:var(--pink)}
.roof.live .pill{opacity:.35}
.roof.live .pill.on{opacity:1;background:rgba(236,72,153,.22);border-color:var(--pink)}
.roof.live .pills{max-width:600px}
.roof.live .stage{top:50%}
.roof .shade{background:linear-gradient(90deg,rgba(15,28,51,.9) 0%,rgba(15,28,51,.5) 40%,rgba(15,28,51,0) 70%)}

@media (max-width:760px){
  .scene .shade,.roof .shade{background:linear-gradient(0deg,rgba(15,28,51,.92) 0%,rgba(15,28,51,.6) 45%,rgba(15,28,51,.15) 80%)}
  .scene.live .stage{top:auto;bottom:92px;transform:translateY(12px)}
  .scene .hero-card p{display:none}
  .scene.live .hint{bottom:96px}
  .scene.live .stage.on{transform:none}
  .scene .big{font-size:2rem}
  .scene .lede{font-size:1.05rem}
  .scene.storm.live{height:300vh}
  .scene.roof.live{height:280vh}
  .scene.live .hint{display:none}
  .scene .trust,.scene .eyebrow{display:none}
  .scene .shade,.roof .shade{background:none}
  .scene .stage>.lede:first-of-type{font-size:1rem}
  .roof .pills{gap:8px;margin-top:12px}
  .roof.live .pill{padding:7px 12px 7px 9px;font-size:.9rem}
  .roof .pill svg{width:20px;height:20px}
  .roof .lede{display:none}
  .scene.live .rail{right:8px;height:90px}
  .scene .hero-card{padding:18px}
  .scene .hero-card .chips{margin:10px 0 12px}
}
