/* Independent signal interference: one troubleshooting card at a time. */
.signal-problems{position:relative;isolation:isolate;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;border:0;align-items:start}
.signal-problems .problem{--bubble-shadow:inset 2px 3px 8px #fff,inset -7px -10px 18px #7889802b,0 12px 20px -12px #33403966,0 3px 8px #33403912;display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;min-width:0;padding:24px 12%;border:1px solid #fafff9;border-radius:50%;overflow:hidden;isolation:isolate;text-align:center;background:radial-gradient(circle at 30% 23%,#fff 0%,#f8f9f4 29%,#e9ece6 58%,#d1d9d1 80%,#b5c1b8 100%);box-shadow:var(--bubble-shadow)}
.signal-problems .problem::before{content:"";position:absolute;left:18%;top:7%;width:52%;height:20%;border-radius:50%;background:linear-gradient(175deg,#fffd,#fff5 55%,#fff0);transform:rotate(-24deg);pointer-events:none}
.signal-problems .problem::after{content:"";position:absolute;inset:7px;border:1px solid #ffffff80;border-bottom-color:#899c8c30;border-radius:inherit;pointer-events:none}
.signal-problems .problem h3{position:relative;margin:0 0 10px;max-width:100%;font-size:clamp(20px,1.65vw,24px);line-height:1.2;color:#202824;text-wrap:balance}
.signal-problems .problem p{position:relative;margin:0;min-height:0;max-width:100%;font-size:14px;line-height:1.5;color:#48574e;text-wrap:balance}
.signal-problems .problem:focus-visible{outline:3px solid var(--red);outline-offset:5px}
@media(hover:hover) and (pointer:fine){.signal-problems .problem:hover{transform:translateY(-4px) scale(1.015);border-color:#dc8d95;box-shadow:var(--bubble-shadow),0 13px 26px -17px #a8303d55}}
@media(max-width:1100px){.signal-problems{grid-template-columns:repeat(2,minmax(0,300px));justify-content:center}}
@media(max-width:640px){.signal-problems{grid-template-columns:minmax(0,300px)}.signal-problems .problem h3{font-size:23px}.signal-problems .problem p{font-size:15px}}
.signal-word{display:inline-block;white-space:nowrap}
.signal-letter{display:inline-block;transform-origin:50% 90%}
.signal-letter.is-falling{position:relative;z-index:1;animation:signal-letter-drop var(--letter-duration,1.2s) ease-in-out both;text-shadow:1px 0 #b31d3066,-1px 0 #348a9660}
.signal-overlay{position:absolute;inset:0;z-index:3;border-radius:inherit;overflow:hidden;pointer-events:none;opacity:0;contain:paint}
.signal-noise{display:block;width:100%;height:100%;opacity:.66;image-rendering:pixelated}
.signal-overlay::before,.signal-overlay::after{content:"";position:absolute;inset:0;pointer-events:none}
.signal-overlay::before{background:repeating-linear-gradient(0deg,transparent 0 3px,#19252220 3px 4px);opacity:.55}
.signal-overlay::after{inset:var(--signal-band,38%) 0 auto;height:11%;border-top:1px solid #bd263d55;border-bottom:1px solid #43818a55;background:linear-gradient(90deg,#b31d3020,transparent 37%,#398f9a18 70%,transparent);transform:translateX(var(--signal-shift,6px))}
.signal-problems.is-glitching .signal-hit h3{animation:signal-slip var(--signal-duration,1s) steps(1,end) both;text-shadow:1.5px 0 #b31d3070,-1.5px 0 #348a9665}
.signal-problems.is-glitching .signal-hit{box-shadow:var(--bubble-shadow),inset 0 1px #bf263b55,inset 0 -1px #43818a44}
.signal-hit[data-signal-pattern="tracking"] .signal-noise{opacity:.28}
.signal-hit[data-signal-pattern="tracking"] .signal-overlay::after{inset:-12% 0 auto;height:25%;background:repeating-linear-gradient(0deg,#263a3b35 0 1px,transparent 1px 5px),linear-gradient(0deg,transparent,#d4e2e64a,transparent);animation:signal-roll var(--signal-duration,1s) linear both}
.signal-hit[data-signal-pattern="tear"] .signal-noise{opacity:.36}
.signal-hit[data-signal-pattern="tear"] .signal-overlay::before{background:linear-gradient(0deg,transparent 0 19%,#223b3b25 19% 20%,transparent 20% 53%,#b3263628 53% 55%,transparent 55% 77%,#31818a35 77% 78%,transparent 78%);opacity:1}
.signal-hit[data-signal-pattern="tear"] .signal-overlay::after{height:16%;background:repeating-linear-gradient(0deg,#283a3b35 0 1px,transparent 1px 3px);animation:signal-shear var(--signal-duration,1s) steps(1,end) both}
.signal-controls{display:flex;justify-content:flex-end;margin-top:12px}
.signal-controls[hidden]{display:none}
.signal-motion-toggle{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:4px 0 4px 12px;border:0;background:transparent;color:#5c645f;font:500 13px/1.4 'DM Sans',Arial,sans-serif;cursor:pointer}
.signal-motion-toggle:hover{color:var(--red)}
.signal-motion-toggle:focus-visible{outline:2px solid var(--red);outline-offset:4px;border-radius:2px}
.signal-motion-toggle svg{width:13px;height:13px;fill:currentColor}
.signal-problems:focus-within .signal-overlay{visibility:hidden}
.signal-problems:focus-within .signal-hit h3{animation:none;text-shadow:none}
@keyframes signal-slip{0%,100%{transform:none}18%{transform:translateX(2px) skewX(-1deg)}38%{transform:translateX(-1px)}63%{transform:translateX(1px)}78%{transform:none}}
@keyframes signal-roll{from{top:-12%}to{top:100%}}
@keyframes signal-shear{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}60%{transform:translateX(7px)}}
@keyframes signal-letter-drop{0%,10%,100%{transform:none;opacity:1}27%{transform:translateY(5px) rotate(-6deg);opacity:1}53%{transform:translate(var(--drop-x),var(--drop-y)) rotate(var(--drop-turn));opacity:.45}63%{transform:translate(var(--drop-x),var(--drop-y)) rotate(var(--drop-turn));opacity:0}64%{transform:translateY(-8px);opacity:0}82%{transform:translateY(2px);opacity:1}}
@media(prefers-reduced-motion:reduce){.signal-overlay,.signal-controls{display:none}.signal-letter.is-falling,.signal-problems.is-glitching .signal-hit h3{animation:none;text-shadow:none}.signal-problems.is-glitching .signal-hit{box-shadow:var(--bubble-shadow)}.signal-problems .problem:hover{transform:none}}
@media print{.signal-overlay,.signal-controls{display:none}}
