.s55-wrap{max-width:1120px;margin:auto;padding:1rem 1.25rem 4rem;color:#182033}
.s55-intro{margin:1.5rem 0 2rem;padding:clamp(1.25rem,3vw,2rem);border-radius:1.25rem;background:linear-gradient(135deg,#f0f5ff,#f2fbf8);border:1px solid #dce5f3}
.s55-intro .eyebrow{color:#405681;font-weight:700;letter-spacing:.04em}
.s55-intro h1{margin:.45rem 0 .7rem;color:#17213b;line-height:1.15}
.s55-intro p{max-width:75ch;line-height:1.65}
.s55-panel{margin:1.4rem 0;padding:clamp(1rem,2.4vw,1.5rem);background:#fff;border:1px solid #dbe2ed;border-radius:1rem;box-shadow:0 8px 26px #17213b0c}
.s55-panel h2{margin-top:0;color:#1c2d4f}
.s55-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1rem;align-items:start}
.s55-controls{display:flex;flex-wrap:wrap;gap:.8rem 1rem;align-items:end;margin:1rem 0}
.s55-controls label{display:grid;gap:.35rem;min-width:170px;flex:1;color:#25324a;font-weight:650}
.s55-controls input[type=range]{width:100%;accent-color:#176d67}
.s55-controls input[type=number],.s55-controls select{width:100%;min-height:42px;padding:.5rem .65rem;border:1px solid #9ba9bc;border-radius:.55rem;background:#fff;color:#17213b;font:inherit}
.s55-controls button,.s55-actions button{font:inherit;min-height:42px;padding:.55rem .85rem;border:1px solid #97a6ba;border-radius:.6rem;background:#fff;color:#17213b;cursor:pointer}
.s55-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:.8rem 0}
.s55-controls button:hover,.s55-actions button:hover{background:#edf4f5;border-color:#176d67}
.s55-controls button:focus-visible,.s55-actions button:focus-visible,.s55-controls input:focus-visible,.s55-controls select:focus-visible{outline:3px solid #1b82a0;outline-offset:2px}
.s55-output{display:block;margin:.65rem 0;color:#183e45;font-weight:700;line-height:1.55}
.s55-canvas{display:block;width:100%;height:auto;min-height:220px;border-radius:.7rem;background:#101826;border:1px solid #d5deeb}
.s55-canvas-label{font-size:.9rem;color:#40506a;margin:.25rem 0 .55rem}
.s55-note{padding:.9rem 1rem;border-left:4px solid #507f79;background:#f2f8f6;color:#273b39;border-radius:.3rem .65rem .65rem .3rem;line-height:1.6}
.s55-challenges{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:.8rem}
.s55-challenge{padding:1rem;border:1px solid #dbe2ed;border-radius:.8rem;background:#f8faff;line-height:1.55}
.s55-challenge strong{display:block;color:#1b5e57;margin-bottom:.35rem}
.s55-formula{overflow-x:auto;padding:.75rem 1rem;background:#f6f8fc;border-radius:.65rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#1e3152;line-height:1.7}
.s55-links a{color:#125d79;text-underline-offset:3px}.s55-links a:hover{color:#0b3d53}
.s55-small{font-size:.92rem;color:#4b5870;line-height:1.6}
.s55-badge{display:inline-block;padding:.25rem .6rem;border-radius:999px;background:#e6f2ef;color:#16554f;font-size:.85rem;font-weight:700}
.s55-iframe{display:block;width:min(100%,560px);height:min(92vh,1050px);margin:1rem auto;border:1px solid #26314d;border-radius:1rem;background:#0b1019}
.s55-resistor{display:flex;align-items:center;justify-content:center;gap:0;margin:1.2rem auto;max-width:620px;height:120px}
.s55-lead{height:8px;flex:1;background:linear-gradient(#9ca8b7,#e1e6eb,#8895a4);border:1px solid #8490a0}
.s55-body{position:relative;width:55%;height:72px;border-radius:36px;background:linear-gradient(180deg,#f5e8c8,#d6c29d 50%,#bca87f);border:2px solid #89795d;box-shadow:inset 0 6px 8px #fff8,inset 0 -7px 9px #75634333}
.s55-band{position:absolute;top:0;bottom:0;width:9%;border-left:1px solid #0002;border-right:1px solid #0002}
.s55-result-card{padding:1rem;border:1px solid #dbe2ed;border-radius:.8rem;background:#f8faff}
.s55-result-card output{font-weight:750;color:#173f52}
.s55-frame{border:0;border-radius:.7rem;background:#101826}
.s55-motor-svg{display:block;width:100%;height:auto;background:#101826;border-radius:.8rem;border:1px solid #d5deeb}
.s55-parts{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}
.s55-parts span{border:1px solid #d6deea;border-radius:999px;padding:.3rem .65rem;background:#f7f9fd;font-size:.9rem}
@media(max-width:600px){.s55-wrap{padding-inline:.8rem}.s55-controls label{min-width:100%}.s55-panel{padding:1rem}.s55-canvas{min-height:190px}.s55-iframe{height:80vh}}
@media(prefers-reduced-motion:reduce){.s55-canvas{scroll-behavior:auto}}
