.topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:2rem 0}.topic-card,.experiment{background:var(--panel);border:1px solid var(--line);border-radius:1.2rem;padding:1.5rem}.topic-card h2,.experiment h2{font-size:1.7rem;margin:0 0 1rem;letter-spacing:-.03em}.topic-card a{display:block;padding:.65rem 0;text-decoration:underline;text-underline-offset:.25em}.topic-card p{font-size:1rem}.experiment{margin:2.5rem 0}.experiment svg{display:block;width:100%;height:auto;max-height:340px;margin:1rem auto}.experiment label{display:block;font-weight:700;margin:1rem 0 .5rem}.experiment input[type=number]{width:100%;font:inherit;padding:.8rem;border:1px solid var(--muted);border-radius:.5rem;color:var(--ink);background:var(--bg)}.experiment input[type=range]{width:100%}.experiment button{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--muted);border-radius:.6rem;padding:.7rem 1rem;cursor:pointer}.experiment button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.experiment button:focus-visible,.experiment input:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.step-controls{display:flex;flex-wrap:wrap;gap:.5rem}.result{display:block;font-size:clamp(1.7rem,5vw,2.6rem);font-weight:750;color:var(--accent);margin:1.5rem 0}.experiment .hint{font-size:.9rem;color:var(--muted)}.experiment [hidden]{display:none!important}.breadcrumbs{display:flex;flex-wrap:wrap;font-size:.85rem;margin-bottom:2rem}.breadcrumbs a{text-decoration:underline}.cycle-map .route{fill:none;stroke:var(--muted);stroke-width:4;opacity:.3}.cycle-map .route.selected{stroke:var(--accent);opacity:1;stroke-width:7}.cycle-map text{fill:var(--ink);font-size:18px;font-family:inherit}.article details{border-top:1px solid var(--line);padding:1.3rem 0}.article summary{cursor:pointer;font-weight:700}.article details p{margin:1rem 0}.topic-home{max-width:1200px;margin:auto;padding:4rem 2rem}.topic-home h2{font-size:clamp(2rem,5vw,3rem)}@media(max-width:600px){.topic-grid{grid-template-columns:1fr}.experiment{padding:1rem}.step-controls button{flex:1 1 45%}}
