.fanim{margin:0;width:100%;max-width:640px;display:flex;flex-direction:column;gap:var(--s-3);color:var(--ink)}.fanim-title{font-size:var(--t-title);line-height:var(--l-title);letter-spacing:var(--k-title);font-weight:500}.fanim-stage{width:100%;color:var(--ink);line-height:0}.fanim-stage>svg{display:block;width:100%;height:auto;max-height:min(56vh,420px);overflow:visible;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.fanim-stage svg text{fill:currentColor;stroke:none;font-family:var(--sans,inherit);font-size:13px}.fanim-stage svg .accent{color:var(--accent);stroke:var(--accent)}.fanim-stage svg .quiet{color:var(--ink-3);stroke:var(--ink-3)}.fanim-stage svg .fill{fill:currentColor}.fanim-bar{display:flex;align-items:center;gap:var(--s-3)}.fanim-btn{flex:none;width:44px;height:44px;min-width:var(--tap,44px);min-height:var(--tap,44px);display:inline-grid;place-items:center;border:0;border-radius:var(--r-full);background:var(--ink);color:var(--paper,#fff);cursor:pointer;transition:transform var(--d-press,.12s) var(--ease-out),opacity var(--d-press,.12s) var(--ease-out)}.fanim-btn:active{transform:scale(.94)}.fanim-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.fanim-scrub{flex:1;min-width:0;height:44px;margin:0;background:transparent;appearance:none;-webkit-appearance:none;cursor:pointer}.fanim-scrub::-webkit-slider-runnable-track{height:2px;border-radius:var(--r-full);background:linear-gradient(to right,var(--ink) var(--fanim-fill,0),var(--rule,#e5e5e5) var(--fanim-fill,0))}.fanim-scrub::-moz-range-track{height:2px;background:var(--rule,#e5e5e5);border-radius:var(--r-full)}.fanim-scrub::-moz-range-progress{height:2px;background:var(--ink);border-radius:var(--r-full)}.fanim-scrub::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-7px;border-radius:var(--r-full);background:var(--ink);border:0}.fanim-scrub::-moz-range-thumb{width:16px;height:16px;border-radius:var(--r-full);background:var(--ink);border:0}.fanim-scrub:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-full)}.fanim-count{flex:none;min-width:3.5em;text-align:right;font-size:var(--t-meta);line-height:var(--l-meta);letter-spacing:var(--k-meta);color:var(--ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fanim-caption{display:flex;flex-direction:column;gap:var(--s-1,4px);min-height:calc(var(--l-body) * 2)}.fanim-step{margin:0;font-size:var(--t-body);line-height:var(--l-body);letter-spacing:var(--k-body);color:var(--ink)}.fanim-note{margin:0;font-size:var(--t-meta);line-height:var(--l-meta);color:var(--ink-2)}@media (prefers-reduced-motion:reduce){.fanim-btn{transition:none}.fanim-btn:active{transform:none}}.still .fanim-btn{transition:none}.sp-card{display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-4) 0;color:var(--ink);font-family:var(--f-sans)}.sp-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3)}.sp-meta{font-size:var(--t-label);line-height:var(--l-label);letter-spacing:var(--k-label);color:var(--ink-3)}.sp-num{font-size:var(--t-meta);line-height:var(--l-meta);color:var(--ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sp-q{margin:0;font-size:var(--t-h3);line-height:var(--l-h3);letter-spacing:var(--k-h3);font-weight:400}.sp-source{margin:calc(-1 * var(--s-2)) 0 0;font-size:var(--t-meta);line-height:var(--l-meta);color:var(--ink-3)}.sp-score{font-size:var(--t-h2);line-height:var(--l-h2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sp-options{list-style:none;margin:0;padding:0}.sp-options li+li{border-top:var(--hair) solid var(--rule)}.sp-option{display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:44px;padding:var(--s-2) 0;background:none;border:0;color:var(--ink);font:inherit;font-size:var(--t-title);line-height:var(--l-title);text-align:start;cursor:pointer;transition:color var(--d-fade) ease,opacity var(--d-fade) ease}.sp-option:disabled{cursor:default}.sp-input:focus-visible,.sp-option:focus-visible,.sp-primary:focus-visible,.sp-quiet:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.sp-letter{width:var(--s-6);color:var(--ink-3);font-size:var(--t-meta);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sp-mark{margin-inline-start:auto;color:var(--ink)}.sp-option.is-correct{font-weight:600}.sp-option.is-chosen{color:var(--ink-2);-webkit-text-decoration:line-through;text-decoration:line-through;text-decoration-color:var(--ink-3)}.sp-option.is-quiet{color:var(--ink-3)}.sp-input{width:100%;min-height:44px;padding:var(--s-2) 0;border:0;border-bottom:var(--hair) solid var(--rule);background:none;color:var(--ink);font:inherit;font-size:var(--t-title);line-height:var(--l-title);resize:vertical}.sp-explain{display:flex;flex-direction:column;gap:var(--s-2)}.sp-verdict{margin:0;font-size:var(--t-title);line-height:var(--l-title);font-weight:600}.sp-verdict.is-wrong{font-weight:400;color:var(--ink-2)}.sp-answer{margin:0;font-size:var(--t-title);line-height:var(--l-title)}.sp-body{white-space:pre-line}.sp-body,.sp-steps{margin:0;font-size:var(--t-body);line-height:var(--l-body);color:var(--ink-2)}.sp-steps{list-style:decimal;padding-inline-start:var(--s-5,20px)}.sp-actions{display:flex;align-items:center;gap:var(--s-4)}.sp-card.rv,.sp-explain.rv{animation:sp-settle var(--spring-settle-dur,.48s) var(--spring-settle,ease-out) backwards}@keyframes sp-settle{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.sp-card.rv,.sp-explain.rv{animation:none}}.cd-memory{gap:var(--s-6)}.cd-memory .mem-head{margin:0}.cd-memory .mem-group{display:grid;gap:var(--s-1);min-width:0}.cd-memory .mem-row>.cd-row-end{min-width:calc(var(--hit) * 1.6);justify-content:flex-end}.cd-memory .mem-meta,.cd-memory .mem-title{transition:color var(--d-3) var(--ease-out)}.cd-memory .mem-row[data-state=gone] .mem-title{color:var(--ink-3)}.cd-memory .mem-never[data-state=never] .mem-title{color:var(--ink-2)}.cd-memory .mem-never[data-state=lifted] .mem-title{color:var(--ink-3)}.cd-memory .mem-never[data-state=lifted] .mem-meta,.cd-memory .mem-row[data-state=gone] .mem-meta{animation:cd-fade var(--d-3) var(--ease-out) backwards}.cd-memory .mem-row[data-state=gone] .mem-meta{color:var(--ink-3)}@media (prefers-reduced-motion:reduce){.cd-memory :is(.mem-title,.mem-meta){transition:none}}