/* ===== Pulse product page — hero + blocks (extends styles.css tokens) ===== */
.pulse-page{background:var(--navy)}
.hero .hero-label{position:absolute;left:clamp(16px,6vw,96px);top:clamp(88px,12vh,120px);font-size:12px;font-weight:600;letter-spacing:.18em;color:#8A94A6}
.top.dark .topnav a[aria-current]{color:#fff;font-weight:600}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(24px,4vw,64px);padding:clamp(96px,14vh,132px) clamp(16px,6vw,96px) clamp(56px,8vh,80px);background:radial-gradient(1200px 700px at 72% 50%,rgba(14,165,164,.10),transparent 60%),var(--navy);color:var(--text-on-navy);overflow:hidden}
.eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 18px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#8A94A6}
.eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 0 rgba(14,165,164,.6);animation:dotpulse 2.4s ease-out infinite}
@keyframes dotpulse{0%{box-shadow:0 0 0 0 rgba(14,165,164,.6)}70%{box-shadow:0 0 0 12px rgba(14,165,164,0)}100%{box-shadow:0 0 0 0 rgba(14,165,164,0)}}
.hero-frag{font-size:clamp(48px,6.9vw,108px);max-width:none;overflow-wrap:normal;word-break:keep-all}
.hero-frag .l{display:inline-block}
.hero-frag .tl{color:var(--teal)}
.hero-sup{max-width:46ch;color:#C7CED9}
.hero-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:28px}
.hero-ctas .btn-lg{margin-top:0}
.ghost{font-weight:600;color:#C7CED9;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:2px}
.ghost:hover{color:#fff;border-color:#fff}
.hero-proof{list-style:none;margin:32px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.hero-proof li{font-size:12px;font-weight:600;color:#C7CED9;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:5px 11px;background:rgba(255,255,255,.03)}

.hero-art{position:relative;min-height:min(640px,72vh)}
.monitor{position:absolute;inset:0;width:100%;height:100%}
.ecg{fill:none;stroke:var(--teal);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:.9;filter:drop-shadow(0 0 6px rgba(14,165,164,.7))}
.links line{stroke:rgba(255,255,255,.14);stroke-width:2;stroke-dasharray:6 8}
.links line.lit{stroke:var(--teal);stroke-dasharray:none}
.ring{fill:none;stroke:var(--teal);stroke-width:2;opacity:0;transform-origin:400px 340px;transform-box:view-box}
.core{fill:#12264A;stroke:var(--teal);stroke-width:3}
.core-icon{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.node{cursor:default}
.node circle{fill:#12264A;stroke:rgba(255,255,255,.28);stroke-width:2;transition:stroke .3s,fill .3s}
.node text{fill:#C7CED9;font:600 13px/1 var(--font);text-anchor:middle}
.node .ico{fill:none;stroke:#C7CED9;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s}
.node.amber circle{stroke:var(--amber);fill:#2A2312}
.node.amber .ico{stroke:#FCD34D}
.node.red circle{stroke:var(--red);fill:#2E1519}
.node.red .ico{stroke:#FCA5A5}
.node.teal circle{stroke:var(--teal);fill:#0F2F3A}
.node.teal .ico{stroke:#5EEAD4}

.feed{position:absolute;right:0;bottom:0;width:min(360px,68%);background:rgba(10,20,40,.72);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:14px;box-shadow:0 30px 60px rgba(0,0,0,.45);overflow:hidden}
.feed-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;font-size:12px;font-weight:600;color:#C7CED9;border-bottom:1px solid rgba(255,255,255,.08)}
.live{display:inline-flex;align-items:center;gap:6px;font-style:normal;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#5EEAD4}
.live i{width:6px;height:6px;border-radius:50%;background:#5EEAD4;animation:dotpulse 1.6s ease-out infinite}
.feed-list{padding:6px 0;min-height:212px}
.chg{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 14px;font-size:12.5px;color:#F3F4F6;border-bottom:1px solid rgba(255,255,255,.06);overflow:hidden}
.chg em{font-style:normal;font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#8A94A6;min-width:58px}
.chg span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chg small{display:block;color:#8A94A6;font-size:11px;margin-top:2px}
.chg .tag{font-size:10px}
.tag.teal{background:var(--teal-soft);color:#5EEAD4}
.tag.red{background:rgba(220,38,38,.2);color:#FCA5A5}

.report-chip{position:absolute;left:0;top:0;display:grid;gap:4px;padding:12px 14px;background:rgba(10,20,40,.72);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:12px;font-size:12px;color:#C7CED9;min-width:180px}
.report-chip b{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8A94A6;margin-bottom:2px}
.report-chip strong{color:#fff;font-size:15px;margin-right:4px;font-variant-numeric:tabular-nums}
.report-chip .c-open{color:#FCD34D}

.scroll-cue{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);width:26px;height:42px;border:2px solid rgba(255,255,255,.28);border-radius:14px;display:none}
.scroll-cue span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{transform:translateY(0);opacity:1}100%{transform:translateY(14px);opacity:0}}
@media (min-height:700px){.scroll-cue{display:block}}

/* ---------- blocks ---------- */
.pblock{padding:clamp(72px,12vh,120px) clamp(16px,6vw,96px)}
.pblock.light{background:var(--bg);color:var(--text)}
.pblock.navy{background:var(--navy);color:var(--text-on-navy)}
.pblock.navy .sup{color:#C7CED9}
.pblock-in{max-width:1200px;margin:0 auto}
.pblock-in.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:center}
.pblock-in.center{text-align:center}
.eyebrow-l{margin:0 0 14px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.pblock.navy .eyebrow-l{color:#8A94A6}
.frag-m{font-size:clamp(40px,6.4vw,88px)}
.tiles6{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:36px}
.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}
.tile b{display:block;font-size:15px;margin-bottom:6px}
.tile span{font-size:13.5px;color:var(--muted);line-height:1.5}
.logdemo{margin-top:32px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);overflow:hidden}
.logdemo .row{border-color:rgba(255,255,255,.07);font-size:14px;color:#F3F4F6;padding:12px 16px}
.logdemo .row em{color:#C7CED9;min-width:80px}
.logdemo .row small{color:#8A94A6}
.note{margin:18px 0 0;font-size:13px;color:#8A94A6;max-width:70ch}
.paper{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;box-shadow:0 30px 60px rgba(15,30,58,.12)}
.paper-head{display:flex;justify-content:space-between;font-size:13px;margin-bottom:16px}
.paper-head span{color:var(--muted)}
.paper-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.paper-stats div{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px;font-size:11px;color:var(--muted)}
.paper-stats strong{display:block;font-size:26px;font-weight:900;color:var(--text);line-height:1;margin-bottom:4px}
.paper-lines i{display:block;height:8px;border-radius:4px;background:#E5E9F0;margin:9px 0}
.paper-lines i.short{width:60%}
.stamp.on{position:absolute;right:18px;bottom:16px;transform:rotate(-8deg);opacity:1}
.cta-block{position:relative;overflow:hidden;min-height:60vh;display:flex;align-items:center;justify-content:center}
.cta-block .glow.on{transform:translate(-50%,-50%) scale(1)}
.cta-block .pblock-in{position:relative;z-index:1}
.cta-block .sup{margin-inline:auto}

@media (max-width:980px){
  .hero{grid-template-columns:1fr;padding-top:100px}
  .hero .hero-label{display:none}
  .hero-art{min-height:520px}
  .pblock-in.two{grid-template-columns:1fr}
  .tiles6{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .hero-frag{font-size:clamp(44px,13vw,56px)}
  .hero-art{min-height:460px}
  .feed{width:100%}
  .report-chip{min-width:0;font-size:11px}
  .tiles6{grid-template-columns:1fr}
  .paper-stats{grid-template-columns:1fr 1fr 1fr}
}
@media (prefers-reduced-motion:reduce){
  .eyebrow .dot,.live i,.scroll-cue span{animation:none}
}
