.ac-root{--bg:#F8F6F1;--ink:#1C1917;--muted:#78716C;--accent:#1B4F4F;--rule:#E2DDD6;--paper:#FFFFFF;--paper-grid:#EFEBE3;--arcA:#1B4F4F;--arcB:#936614;--angle:#A8442B;--angle-fill:rgba(168,68,43,.18);--font-display:"Playfair Display",Georgia,serif;--font-body:"IBM Plex Sans",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--radius:14px;font-family:var(--font-body);line-height:1.5;-webkit-font-smoothing:antialiased;color:var(--ink);max-width:1180px;margin:0 auto;padding:30px 22px 56px}.ac-root,.ac-root *{box-sizing:border-box}.ac-root header.masthead{margin-bottom:22px}.ac-root .eyebrow{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}.ac-root h1{font-family:var(--font-display);font-weight:700;font-size:clamp(30px,5vw,46px);line-height:1.06;margin:0;letter-spacing:-.01em}.ac-root h1 em{font-style:italic;font-weight:400;color:var(--accent)}.ac-root .lede{color:var(--muted);max-width:62ch;margin:12px 0 0;font-size:15px}.ac-root .tabs{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 18px}.ac-root .tab{appearance:none;border:1px solid var(--rule);background:transparent;color:var(--muted);font-family:var(--font-body);font-weight:500;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;padding:9px 15px;border-radius:999px;cursor:pointer;transition:.18s;display:flex;align-items:center;gap:8px}.ac-root .tab .n{font-family:var(--font-mono);font-size:11px;opacity:.65;letter-spacing:0}.ac-root .tab:hover{color:var(--ink);border-color:var(--muted)}.ac-root .tab[aria-selected=true]{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 8px 22px -12px var(--accent)}.ac-root .tab[aria-selected=true] .n{opacity:.8}.ac-root .stage{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;align-items:start}@media(max-width:880px){.ac-root .stage{grid-template-columns:1fr}}.ac-root .canvas-card{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:10px;box-shadow:0 18px 44px -30px #1c191773;position:relative}.ac-root svg.board{display:block;width:100%;height:auto;border-radius:8px;touch-action:none}.ac-root .hint{position:absolute;left:18px;right:18px;bottom:14px;font-size:13px;color:#8a3a24;background:#a8442b1a;border:1px solid rgba(168,68,43,.38);border-radius:8px;padding:7px 11px;font-family:var(--font-mono);display:none}.ac-root .hint.show{display:block}.ac-root .panel{display:flex;flex-direction:column;gap:16px}.ac-root .card{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:18px 18px 16px}.ac-root .card h2{font-family:var(--font-display);font-weight:600;font-size:21px;margin:0 0 5px;color:var(--ink)}.ac-root .card p{margin:0;color:var(--muted);font-size:14px}.ac-root .eq-card{border-left:3px solid var(--accent)}.ac-root .eq-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.ac-root .eq{font-family:var(--font-mono);font-size:clamp(15px,2.3vw,20px);line-height:1.85;display:flex;flex-wrap:wrap;align-items:baseline;gap:7px}.ac-root .eq .tok{transition:color .15s}.ac-root .eq .op{color:var(--muted)}.ac-root .eq .ang{color:var(--angle);font-weight:600}.ac-root .eq .arcA{color:var(--arcA);font-weight:600}.ac-root .eq .arcB{color:var(--arcB);font-weight:600}.ac-root .eq .res{color:var(--angle);font-weight:600;background:var(--angle-fill);padding:1px 8px;border-radius:6px}.ac-root .swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle}.ac-root .legend{display:flex;flex-direction:column;gap:7px;margin-top:14px;font-size:12.5px;color:var(--muted);font-family:var(--font-mono)}.ac-root .legend div{display:flex;align-items:center;gap:6px}.ac-root .controls{display:flex;flex-wrap:wrap;gap:8px}.ac-root .toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);border:1px solid var(--rule);border-radius:999px;padding:7px 13px;cursor:pointer;user-select:none;transition:.16s;font-family:var(--font-body)}.ac-root .toggle:hover{color:var(--ink)}.ac-root .toggle input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}.ac-root .toggle.on{color:var(--ink);border-color:var(--muted);background:var(--paper)}.ac-root .reset{appearance:none;font-family:var(--font-body);font-size:13px;font-weight:500;background:transparent;color:var(--muted);border:1px solid var(--rule);border-radius:999px;padding:7px 14px;cursor:pointer;transition:.16s}.ac-root .reset:hover{color:var(--angle);border-color:var(--angle)}.ac-root .c-stroke{fill:none;stroke:var(--ink);stroke-width:2}.ac-root .grid-line{stroke:var(--paper-grid);stroke-width:1}.ac-root .chord,.ac-root .ray{stroke:var(--ink);stroke-width:2;fill:none}.ac-root .tangent{stroke:var(--muted);stroke-width:2;stroke-dasharray:7 6;fill:none}.ac-root .arcA{fill:none;stroke:var(--arcA);stroke-width:6;stroke-linecap:round}.ac-root .arcB{fill:none;stroke:var(--arcB);stroke-width:6;stroke-linecap:round}.ac-root .wedge{fill:var(--angle-fill);stroke:var(--angle);stroke-width:2}.ac-root .lbl{font-family:var(--font-body);font-weight:600;font-size:15px;fill:var(--ink)}.ac-root .arclbl{font-family:var(--font-mono);font-size:13px;font-weight:600}.ac-root .anglbl{font-family:var(--font-mono);font-size:14px;font-weight:600;fill:var(--angle)}.ac-root .handle{cursor:grab;stroke:#fff;stroke-width:2.5}.ac-root .handle:active{cursor:grabbing}.ac-root .handle.h-circle{fill:var(--arcA)}.ac-root .handle.h-free{fill:var(--angle)}.ac-root .center-dot{fill:var(--ink)}@media(prefers-reduced-motion:reduce){.ac-root *{transition:none!important}}
