.kem{gap:var(--s-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--ink-1);margin:0;padding:clamp(18px,2.4vw,30px);display:grid}.kem-stage{grid-template-columns:minmax(240px,400px) 1fr;align-items:center;gap:clamp(20px,4vw,56px);display:grid}@media (max-width:860px){.kem-stage{grid-template-columns:minmax(0,1fr)}}.kem-ring{aspect-ratio:1;width:100%;overflow:visible}.kem-track{fill:none;stroke:var(--line-2);stroke-width:1px}.kem-horizon{stroke:var(--amber);stroke-width:.8px;stroke-dasharray:3 3;opacity:.8}.kem-pole,.kem-edge{fill:var(--text-3);font-family:var(--font-mono);text-anchor:middle;font-size:9px}.kem-edge{fill:var(--amber);text-anchor:start}.kem-dot{transform-box:view-box;transform-origin:0 0;transition:transform .9s var(--ease-out)}.kem-dot circle{fill:var(--violet)}.kem-dot[data-bit="1"] circle{fill:var(--cyan)}.kem-dot.is-wrong circle{fill:var(--red)}.kem-grids{flex-wrap:wrap;gap:24px;display:flex}.kem-panel{margin:0}.kem-panel figcaption{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.06em;margin-top:8px;font-size:11px}.kem-grid{aspect-ratio:1;grid-template-columns:repeat(16,1fr);gap:2px;width:min(42vw,208px);display:grid}.kem-grid span{background:var(--ink-3);border-radius:1px}.kem-grid span[data-bit="1"]{background:var(--cyan)}.kem-grid span.is-wrong{background:var(--red)}@media (forced-colors:active){.kem-grid span{background:canvas;outline:1px solid graytext}.kem-grid span[data-bit="1"]{background:canvastext}.kem-grid span.is-wrong{background:highlight}.kem-dot circle{fill:graytext}.kem-dot[data-bit="1"] circle{fill:canvastext}.kem-dot.is-wrong circle{fill:highlight}}.kem-controls{flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex}.kem-steps{color:var(--text-2);counter-reset:step;gap:6px;font-size:.9688rem;display:grid}.kem-steps li{counter-increment:step;padding-left:26px;position:relative}.kem-steps li:before{content:counter(step);color:var(--text-3);font-family:var(--font-mono);font-size:12px;position:absolute;top:.1em;left:0}.kem figcaption{color:var(--text-3);font-size:var(--t-small);line-height:1.55}.kem [data-kem-stats]{color:var(--text);font-family:var(--font-mono);font-size:12.5px}.limits{border-top:1px solid var(--line);display:grid}.limits li{gap:var(--s-2) var(--s-5);padding:var(--s-4) 0;border-bottom:1px solid var(--line);color:var(--text-2);grid-template-columns:minmax(0,13rem) minmax(0,1fr);display:grid}.limits b{color:var(--text);font-weight:600}@media (max-width:640px){.limits li{grid-template-columns:minmax(0,1fr)}}
