.pfr{ position:relative; height:320vh; background:#0c141c; }
.pfr-stick{ position:sticky; top:0; height:100vh; overflow:hidden;
  background:
    linear-gradient(rgba(120,170,210,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(120,170,210,.06) 1px,transparent 1px),
    radial-gradient(120% 85% at 62% 45%,rgba(80,150,210,.22),transparent 60%),
    radial-gradient(120% 80% at 50% 120%,rgba(57,182,255,.12),transparent 58%),
    linear-gradient(180deg,#16222e,#0c141c);
  background-size:46px 46px,46px 46px,100% 100%,100% 100%,100% 100%; }
.pfr-canvas{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.pfr-overlay{ position:absolute; inset:0; z-index:4; pointer-events:none; padding:6vh 6vw;
  display:flex; flex-direction:column; }
.pfr-eyebrow{ font-family:'DM Mono',monospace; font-size:12px; letter-spacing:3px; text-transform:uppercase; color:#ffb35c; }
.pfr-title{ font-family:'Bebas Neue',sans-serif; font-size:clamp(40px,6.5vw,90px); line-height:.96; letter-spacing:.5px;
  color:#f3f6fa; margin:10px 0 0; max-width:60%; }
.pfr-title span{ background:linear-gradient(180deg,#ffd9a8,#ff6a00); -webkit-background-clip:text; background-clip:text; color:transparent; }
.pfr-steps{ margin-top:auto; display:flex; gap:22px; flex-wrap:wrap; }
.pfr-step{ font-family:'DM Mono',monospace; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:#5c7080;
  display:flex; align-items:center; gap:8px; transition:color .25s; }
.pfr-step .d{ width:7px; height:7px; border-radius:50%; background:#2a3742; transition:background .25s, box-shadow .25s; }
.pfr-step.on{ color:#ffb35c; } .pfr-step.on .d{ background:#ff6a00; box-shadow:0 0 10px #ff6a00; }
.pfr-bar{ margin-top:14px; width:min(460px,64vw); height:3px; background:#1c2630; border-radius:3px; overflow:hidden; }
.pfr-bar-fill{ display:block; height:100%; width:0; background:linear-gradient(90deg,#ff3a00,#ff6a00,#ffb35c); box-shadow:0 0 10px #ff6a00; }
.pfr-hint{ margin-top:12px; font-family:'DM Mono',monospace; font-size:10.5px; letter-spacing:3px; text-transform:uppercase; color:#7fb6dd; }
.pfr-load{ position:absolute; inset:0; z-index:6; display:flex; align-items:center; justify-content:center; transition:opacity .5s ease; }
.pfr-load.gone{ opacity:0; pointer-events:none; }
.pfr-load .ring{ width:34px; height:34px; border:2px solid rgba(255,140,60,.2); border-top-color:#ff7a2a; border-radius:50%; animation:pfr-spin .9s linear infinite; }
@keyframes pfr-spin{ to{ transform:rotate(360deg); } }
@media(max-width:760px){ .pfr-title{ max-width:100%; } }
/* reduced motion: collapse the tall scrub to a single static stage */
.pfr-reduced{ height:100vh; }
.pfr-reduced .pfr-stick{ position:relative; }
