/* Project Validation — "Launchpad" (violet-led) */
body{ background:radial-gradient(90% 50% at 15% 0%,rgba(141,79,198,.18),transparent 60%) var(--ink-0); }

/* Hero */
.pv-hero{ position:relative; min-height:100svh; padding:calc(var(--nav-h) + 34px) 0 clamp(60px,9vh,110px); display:flex; align-items:center; overflow:hidden; }
.pv-hero-grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(30px,5vw,80px); align-items:center; width:100%; }
.pv-title{ margin:22px 0 26px; font-size:clamp(2.6rem,min(5.8vw,10.5svh),6.4rem); }
.pv-title > span{ display:block; }
.pv-ctas{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:32px; }
.pv-time{ display:inline-flex; align-items:center; gap:10px; font-size:.64rem; color:var(--fog); }
.pv-time i{ width:6px; height:6px; border-radius:50%; background:#5fd38d; animation:pulse 2s infinite; }
.pv-visual{ position:relative; width:100%; max-width:540px; aspect-ratio:4/5; max-height:74svh; justify-self:center; }
.pv-frame{ position:absolute; inset:0 8% 0 0; border-radius:200px 200px 28px 28px; overflow:hidden; box-shadow:0 60px 120px -40px rgba(141,79,198,.55); }
.pv-frame img{ width:100%; height:100%; object-fit:cover; transform:scale(1.15); }
.pv-meter{ position:absolute; display:flex; align-items:center; gap:12px; padding:12px 16px 12px 12px; border-radius:20px; background:rgba(9,9,26,.88); border:1px solid var(--line-2); box-shadow:0 30px 60px -20px rgba(0,0,0,.7); }
.pv-meter svg{ width:58px; height:58px; transform:rotate(-90deg); }
.pv-meter circle{ fill:none; stroke-width:9; }
.pv-meter .t{ stroke:rgba(243,241,236,.1); }
.pv-meter .f{ stroke:url(#pvg); stroke:#c6b3ff; stroke-linecap:round; stroke-dasharray:314.16; stroke-dashoffset:314.16; }
.pv-meter.m2 .f{ stroke:#a9d9ff; }
.pv-meter b{ display:block; font-family:var(--f-display); font-weight:500; font-size:1.6rem; line-height:1; }
.pv-meter span{ font-family:var(--f-mono); font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; color:var(--fog); }
.pv-meter.m1{ left:-8%; top:18%; }
.pv-meter.m2{ right:0; bottom:16%; }
.pv-chip{ position:absolute; padding:9px 14px; border-radius:999px; background:rgba(9,9,26,.86); border:1px solid var(--line-2); font-size:.58rem; color:var(--bone); white-space:nowrap; }
.pv-chip.c1{ left:4%; bottom:6%; }
.pv-chip.c2{ right:2%; top:8%; }
@media (max-width:980px){
  .pv-hero-grid{ grid-template-columns:1fr; }
  .pv-visual{ max-width:420px; margin-top:20px; }
  .pv-meter.m1{ left:0; }
}

/* Intake */
.pv-intake-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(30px,6vw,90px); align-items:start; }
.pv-aside{ position:sticky; top:calc(var(--nav-h) + 30px); }
.pv-includes{ display:grid; margin-top:30px; border-top:1px solid var(--line-2); }
.pv-includes li{ display:grid; grid-template-columns:44px 1fr; gap:10px; padding:14px 0; border-bottom:1px solid var(--line-2); color:var(--bone-2); }
.pv-includes b{ font-family:var(--f-mono); font-weight:500; font-size:.72rem; color:var(--accent-2); padding-top:3px; }
.pv-form-col .scan-console{ scroll-margin-top:110px; }
@media (max-width:980px){ .pv-intake-grid{ grid-template-columns:1fr; } .pv-aside{ position:relative; top:auto; } }

/* Honest limits */
.pv-limits-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(30px,6vw,100px); align-items:center; }
.pv-limits-img{ height:min(64vh,560px); border-radius:28px; }
.pv-limit-list{ display:grid; gap:0; border-top:1px solid var(--line-2); }
.pv-limit-list li{ position:relative; padding:18px 0 18px 30px; border-bottom:1px solid var(--line-2); color:var(--bone-2); }
.pv-limit-list li::before{ content:"↳"; position:absolute; left:0; top:18px; color:var(--accent-2); font-family:var(--f-mono); }
@media (max-width:900px){ .pv-limits-grid{ grid-template-columns:1fr; } .pv-limits-img{ height:44vh; } }

/* Cross-sell */
.pv-next{ position:relative; display:grid; grid-template-columns:1.2fr 1fr; min-height:340px; border-radius:30px; overflow:hidden; border:1px solid var(--line-2); background:var(--ink-2); }
.pv-next-img{ border-radius:0; }
.pv-next-img img{ transition:transform 1.4s var(--ease); }
.pv-next:hover .pv-next-img img{ transform:scale(1.06); }
.pv-next-copy{ padding:clamp(28px,4vw,56px); display:flex; flex-direction:column; justify-content:center; gap:20px; background:radial-gradient(80% 80% at 0% 0%,rgba(42,143,224,.24),transparent 60%); }
.pv-next-copy .serif{ color:var(--accent-2); }
@media (max-width:800px){ .pv-next{ grid-template-columns:1fr; } .pv-next-img{ height:220px; order:-1; } }
