.cpt{background:var(--sim-bg);color:var(--sim-ink);border-radius:var(--radius);margin:20px 0;padding:12px}.cpt svg.cpt-svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;max-width:600px;height:auto;margin:0 auto;display:block}.cpt text,.cpt-txt{font-family:var(--font)}.cpt .cpt-txt{paint-order:stroke;stroke:var(--sim-bg);stroke-width:4px}.cpt .cpt-dim{fill:var(--sim-dim)}.cpt .cpt-lbl{fill:var(--sim-ink);paint-order:stroke;stroke:var(--sim-bg);stroke-width:4px}.cpt .cpt-handle{fill:#ffffff14;stroke:#ffffff8c;stroke-width:2px;stroke-dasharray:5 5;cursor:grab}.cpt .cpt-spot{cursor:pointer}.cpt .sim-btn{color:var(--sim-ink);background:#16212f;border-color:#33445a;min-height:40px;font-size:14.5px}.cpt .sim-btn:disabled{opacity:.4;cursor:default}.cpt .sim-btn[aria-pressed=true],.cpt .sim-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.cpt-row{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:8px;display:flex}.cpt-row label{min-width:0;color:var(--sim-dim);flex:220px;align-items:center;gap:8px;font-size:14px;display:flex}.cpt-row input[type=range]{min-width:0;min-height:40px;accent-color:var(--accent);flex:auto}.cpt-row>span.cpt-dim{color:var(--sim-dim);font-size:14px}.cpt-read{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:8px;display:grid}.cpt-read>div{overflow-wrap:anywhere;background:#16212f;border-radius:8px;min-width:0;padding:8px 10px}.cpt-read b{font-variant-numeric:tabular-nums;font-size:19px;display:block}.cpt-read span{color:var(--sim-dim);font-size:13px}.cpt-note{min-height:1.5em;margin:8px 0 0;font-size:15px;line-height:1.5}.cpt-note.ok{color:#7be0a4}.cpt-note.bad{color:#ff9f8a}.cpt-screw.up .cpt-threads{animation:.9s linear infinite cpt-thread-up}.cpt-screw.down .cpt-threads{animation:.9s linear infinite cpt-thread-down}.cpt-screw.up{animation:2.7s ease-in-out infinite cpt-rise}.cpt-screw.down{animation:2.7s ease-in-out infinite cpt-sink}@keyframes cpt-thread-up{to{transform:translateY(-12px)}}@keyframes cpt-thread-down{to{transform:translateY(12px)}}@keyframes cpt-rise{0%,to{transform:translateY(8px)}50%{transform:translateY(-8px)}}@keyframes cpt-sink{0%,to{transform:translateY(-8px)}50%{transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.cpt-screw,.cpt-screw .cpt-threads{animation:none!important}}.cpt-figs{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px;margin:18px 0;display:grid}.cpt-figs figure{background:var(--sim-bg);color:var(--sim-ink);border-radius:var(--radius);min-width:0;margin:0;padding:10px}.cpt-figs svg{width:100%;height:auto;display:block}.cpt-figs figcaption{color:var(--sim-dim);margin-top:6px;font-size:14px;line-height:1.45}.cpt-figs text{font-family:var(--font)}.cp3{margin:0}.cp3-stage{aspect-ratio:1;background:#0b1320;border-radius:10px;width:100%;max-width:600px;max-height:70vh;margin:10px auto 0;position:relative;overflow:hidden}.cp3-canvas,.cp3-flat{width:100%;height:100%}.cp3-canvas{touch-action:none}.cp3-flat{flex-direction:column;display:flex}.cp3-flat svg{flex:auto;min-height:0}.cp3-yaw{color:var(--sim-dim);align-items:center;gap:8px;padding:0 10px 6px;font-size:13.5px;display:flex}.cp3-yaw input{min-width:0;min-height:36px;accent-color:var(--accent);flex:1}.cp3-loading{height:100%;color:var(--sim-dim);place-items:center;display:grid}.cp3-hint{color:var(--sim-dim);flex:200px;font-size:13.5px}.cp3-inputs{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:8px;margin-top:10px;display:grid}.cp3-vec{border:1px solid #33445a;border-radius:8px;min-width:0;margin:0;padding:4px 8px 8px}.cp3-vec.a{border-color:#5aa9ff}.cp3-vec.b{border-color:#49d18b}.cp3-vec legend{padding:0 4px;font-size:14px}.cp3-step{grid-template-columns:22px 44px minmax(0,1fr) 44px;align-items:center;gap:6px;margin-top:6px;display:grid}.cp3-step span{color:var(--sim-dim);font-style:italic}.cp3-step b{text-align:center;font-variant-numeric:tabular-nums;font-size:19px}.cp3-step .sim-btn{min-width:44px;padding:0;font-size:20px}.cp3-small{color:var(--sim-dim);margin:6px 0 0;font-size:13.5px}.cp3-det{background:#16212f;border-radius:8px;margin-top:10px;padding:2px 8px}.cp3-scroll{max-width:100%;overflow:auto hidden}.cp3-det .katex-display{margin:6px 0}.cpt-read b.cp3-sm{font-size:15px}.cp3-quiz{background:#16212f;border-left:4px solid #ffd166;border-radius:8px;margin-top:14px;padding:10px 12px}.cp3-quiz p{margin:6px 0 0;font-size:14.5px;line-height:1.55}.cpt .sim-btn.cp3-ok{opacity:1;background:#1d6b45;border-color:#1d6b45}.cpt .sim-btn.cp3-bad{text-decoration:line-through}
