/* 0T15.SYS — analog fault subsystem (additive, decorative only) */
/* palette reuses s.css tokens: --ink --red --amber --paper* */

/* 1. ReactBits FaultyTerminal shader — raw WebGL port, fixed page backdrop */
#ft-bg{position:fixed;inset:0;z-index:-1;width:100%;height:100%;display:block;pointer-events:none;background:#0d0c09}
#faultbg{display:none}

/* 2. inspection spotlight (desktop pointer only) */
#spot{position:fixed;inset:0;z-index:3;pointer-events:none;mix-blend-mode:soft-light;opacity:0;transition:opacity .55s ease;
  background:radial-gradient(circle 240px at var(--mx,50%) var(--my,38%),rgba(255,247,222,.55),rgba(255,247,222,0) 72%)}
body.spot-on #spot{opacity:1}

/* 3. fluorescent tube flicker (sparse, diegetic) */
#flick{position:fixed;inset:0;z-index:78;pointer-events:none;background:#0c0a06;opacity:0}
#flick.tick{animation:fluor .52s steps(1) 1}
@keyframes fluor{
  0%{opacity:0}5%{opacity:.30}9%{opacity:0}13%{opacity:.48}17%{opacity:.02}
  25%{opacity:.20}29%{opacity:0}52%{opacity:.11}58%{opacity:0}100%{opacity:0}}

/* 4. fault ribbon — top reconciliation band */
#faultband{position:relative;z-index:11;display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  align-items:stretch;background:var(--ink);color:var(--paper-hi);border-bottom:1px solid var(--red);
  font-family:var(--mono);overflow:hidden}
#faultband .fb-tag{display:flex;align-items:center;gap:9px;padding:8px 15px;background:var(--red);color:var(--paper-hi);
  font:700 9px/1 var(--mono);letter-spacing:.15em;text-transform:uppercase;white-space:nowrap}
#faultband .fb-tag i{width:8px;height:8px;background:var(--paper-hi);border-radius:50%;animation:fbpulse 1.5s steps(2) infinite}
@keyframes fbpulse{50%{opacity:.12}}
#faultband .fb-stream{overflow:hidden;position:relative}
#faultband .fb-track{display:inline-flex;white-space:nowrap;will-change:transform}
#faultband .fb-track span{padding:8px 30px;font:500 9px/1 var(--mono);letter-spacing:.09em;
  text-transform:uppercase;color:#cdbf9f}
#faultband .fb-track span b{color:var(--amber);font-weight:600}
#faultband .fb-track span.crit b{color:#e8836b}
#faultband .fb-stop{display:flex;align-items:center;gap:9px;padding:8px 16px;border-left:1px solid #4b453a;
  font:700 9px/1 var(--mono);letter-spacing:.11em;text-transform:uppercase;white-space:nowrap;color:#9a927f}
#faultband .fb-stop .lamp{width:9px;height:9px;border:1px solid #6f6757;background:#2b271e;transition:.2s ease}
#faultband .fb-stop.req{color:var(--amber)}
#faultband .fb-stop.req .lamp{background:var(--amber);box-shadow:0 0 7px var(--amber)}
#faultband .fb-stop.deny{color:#e8836b}
#faultband .fb-stop.deny .lamp{background:var(--red);box-shadow:0 0 8px var(--red)}

/* 5. reconciliation error stamps that thud onto data cells */
.statement-grid>div,.driver dd{position:relative}
.fault-stamp{position:absolute;z-index:6;pointer-events:none;top:7px;right:9px;
  border:2px solid var(--red);color:var(--red);background:rgba(217,205,178,.35);
  font:700 7px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;padding:3px 5px;
  transform:rotate(-8deg);opacity:0;mix-blend-mode:multiply}
.fault-stamp.thud{animation:stampThud .46s cubic-bezier(.2,1.5,.3,1) forwards}
@keyframes stampThud{
  0%{opacity:0;transform:rotate(-8deg) scale(2.3)}
  55%{opacity:1;transform:rotate(-8deg) scale(.9)}
  74%{transform:rotate(-8deg) scale(1.06)}
  100%{opacity:1;transform:rotate(-8deg) scale(1)}}
.fault-stamp.fade{transition:opacity .9s ease;opacity:0}

/* 6. hero primary-finding decoding line (DecryptedText, digit-free charset) */
.eyebrow.decoding{color:var(--red)}
.eyebrow .dc-cur{color:var(--amber)}

@media(max-width:760px){
  #faultband{grid-template-columns:auto minmax(0,1fr)}
  #faultband .fb-tag{padding:7px 10px;font-size:8px;letter-spacing:.1em}
  #faultband .fb-tag span.fb-tag-txt{display:none}
  #faultband .fb-track span{padding:7px 20px;font-size:8px}
  #faultband .fb-stop{display:none}
  #spot{display:none}
  .fault-stamp{font-size:6px;padding:2px 4px;top:5px;right:6px}
}

@media(prefers-reduced-motion:reduce){
  #faultbg,#flick{display:none}
  #ft-bg{background:radial-gradient(circle at 50% 35%,#201a0d 0,#0d0c09 68%)}
  #spot{display:none}
  #faultband .fb-tag i{animation:none}
}
