/* SENTR component layers and protector pictograms. Palette tokens from sentr.css. */
.sc-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;display:block}

/* Pixel trail: over the helmet stage, under the hero copy */
.hero{isolation:isolate}
.sc-trail{z-index:1;mix-blend-mode:screen}

/* Glyph matrix: the section's back wall, kept off the headline */
.signal-section{position:relative;isolation:isolate}
.sc-glyphs{z-index:-1;inset:0 -36px;width:calc(100% + 72px);-webkit-mask-image:linear-gradient(90deg,transparent 4%,#000 42%,#000 88%,transparent),linear-gradient(transparent,#000 18%,#000 80%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 4%,#000 42%,#000 88%,transparent),linear-gradient(transparent,#000 18%,#000 80%,transparent);mask-composite:intersect}
.signal-section .feed-panel{position:relative;box-shadow:0 0 0 12px #0b0d0cb8}

/* Retro grid: a floor under the three story steps */
.story-section{isolation:isolate;overflow:hidden}
.sc-floor{position:absolute;left:0;right:0;bottom:0;height:64%;z-index:-1;pointer-events:none;opacity:.55;-webkit-mask-image:linear-gradient(transparent 6%,#000 40%,#000 58%,#0005 78%,#000);mask-image:linear-gradient(transparent 6%,#000 40%,#000 58%,#0005 78%,#000)}
.sc-floor canvas{position:absolute;inset:0;width:100%;height:100%}
.sc-floor.is-fallback{perspective:200px}
.sc-floor.is-fallback::before{content:'';position:absolute;left:-200%;width:500%;top:0;height:300%;transform-origin:50% 0;transform:rotateX(65deg);background-image:linear-gradient(to right,#6b8f348c 1px,transparent 0),linear-gradient(to bottom,#6b8f348c 1px,transparent 0);background-size:60px 60px;animation:sc-floor 15s linear infinite}
.sc-floor.is-fallback canvas{display:none}
@keyframes sc-floor{from{transform:rotateX(65deg) translateY(-50%)}to{transform:rotateX(65deg) translateY(0)}}

/* Paper dot grid: the closing band */
.closing{position:relative;isolation:isolate;padding-inline:40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sc-dots{position:absolute;inset:0;z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,#0003,#000 55%);mask-image:linear-gradient(90deg,#0003,#000 55%)}
.sc-dots.is-fallback{background-image:radial-gradient(#8ee30355 1px,transparent 1.5px);background-size:22px 22px}

@media (max-width:768px){
  .sc-glyphs{inset:0 -18px;width:calc(100% + 36px);-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 70%,transparent);mask-image:linear-gradient(transparent,#000 12%,#000 70%,transparent)}
  .sc-floor{height:48%}
  .closing{padding-inline:20px}
}
@media (prefers-reduced-motion:reduce){.sc-floor.is-fallback::before{animation:none;transform:rotateX(65deg) translateY(-50%)}}

/* ---------- Protector pictograms ---------- */
.pc{margin:26px 0 12px;border:1px solid var(--line);background:#0f1210;text-align:left;position:relative}
.pc::before{content:'';position:absolute;inset:-1px auto auto -1px;width:14px;height:14px;border-top:2px solid var(--glow);border-left:2px solid var(--glow)}
.pc-stage{position:relative;aspect-ratio:480/300;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pc-stage svg{display:block;width:100%;height:100%;touch-action:manipulation}
.pc text{font-family:var(--font-mono);font-size:13px;letter-spacing:.06em;fill:var(--ink)}
.pc .pc-k{fill:var(--glow);font-size:12px;letter-spacing:.14em}
.pc .pc-t{font-size:15px;font-weight:700;fill:var(--ink)}
.pc .pc-d{fill:var(--ink-soft);font-size:12px}
.pc .pc-read{fill:var(--glow);font-size:12px;letter-spacing:.08em}
.pc .pc-chip-t{fill:var(--glow);font-size:13px;font-weight:700;letter-spacing:.1em}
.pc .pc-cap-t{fill:#0b0d0c;font-size:14px;font-weight:700;letter-spacing:.12em}
.pc .pc-hex{fill:var(--ink);font-size:17px;letter-spacing:.04em}
.pc .pc-addr{font-size:17px;letter-spacing:.05em;fill:var(--ink-soft)}
.pc .pc-addr .is-match{fill:var(--glow)}
.pc .pc-addr .is-bad{fill:#ff795c}
.pc-flow{animation:pc-flow 1.2s linear infinite}
.pc-blink{animation:pc-blink 1.6s steps(2,jump-none) infinite}
@keyframes pc-flow{to{stroke-dashoffset:-24}}
@keyframes pc-blink{50%{opacity:.35}}
.pc:not(.is-on) .pc-flow,.pc:not(.is-on) .pc-blink{animation-play-state:paused}
.pc-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:#121513;min-height:62px}
.pc-btn{font:700 12px/1.2 var(--font-mono);letter-spacing:.06em;color:var(--ink);background:#141a17;border:1px solid #405148;padding:11px 14px;min-height:42px;transition:border-color .2s,background-color .2s,color .2s}
.pc-btn:hover{border-color:var(--glow);color:var(--glow)}
.pc-btn[aria-pressed=true]{background:var(--glow);border-color:var(--glow);color:#0b0d0c}
.pc-btn:focus-visible,.pc-range input:focus-visible{outline:2px solid var(--glow);outline-offset:2px}
.pc-range{display:flex;align-items:center;gap:10px;flex:1 1 220px;font:11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.pc-range input{flex:1;accent-color:#8ee303;min-height:42px;cursor:pointer}
.pc-range output{color:var(--glow);min-width:1ch}
.pc figcaption{padding:12px 14px 14px;font-size:13px;line-height:1.6;color:var(--ink-soft);border-top:1px solid var(--line)}
.pc figcaption b{color:var(--ink)}
.pc .pc-rm{display:none;margin:0;padding:0 14px 14px;font:11px/1.5 var(--font-mono);color:var(--glow)}
.pc-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.pc-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.pc-pair .pc{margin:0}
.protector-section{padding-block:40px 90px}
.protector-section .section-head{margin-bottom:30px}
@media (prefers-reduced-motion:reduce){.pc .pc-rm{display:block}.pc-flow,.pc-blink{animation:none}}
@media (max-width:900px){.pc-pair{grid-template-columns:1fr}}
@media (max-width:760px){.pc-bar{padding:10px}.pc-btn{flex:1 1 auto}.pc text{font-size:14px}.pc .pc-d,.pc .pc-k,.pc .pc-read{font-size:13px}}
