.mouth-stage{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:16px;align-items:start;background:#fff;border:2px solid #b9c9ff;border-radius:18px;padding:14px;
  --mouth-bg:#f7f9ff;--mouth-skin:#f6dccb;--mouth-air:#e8eefc;--mouth-tongue:#e98b9a;--mouth-tongue-edge:#b9485d;--mouth-bone:#c9b8a6;--mouth-soft:#e5a5ae;--mouth-teeth:#ffffff;--mouth-lip:#d9707e;--mouth-edge:#7a4a3a;--mouth-voice:#c52539;--mouth-label:#3458ba;--mouth-ghost:#7b8bb8}
.mouth-svg{width:100%;height:auto;max-width:380px;border-radius:12px;display:block}
.mouth-svg .mlabel{font:700 10px var(--body);fill:var(--mouth-label)}.mouth-svg .mfx{font:800 11.5px var(--body)}
.mouth-same{margin:0;padding:9px 13px;background:#eef2ff;border-left:4px solid #4467f5;border-radius:8px;font-size:15px;line-height:1.5;color:var(--ink)}
.mouth-svg .mtip{fill:#b9485d;font-size:11px;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.mouth-svg .mtouch-text{font:800 10.5px var(--body);fill:#5c4700}
.mouth-parts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:15px;line-height:1.45}.mouth-parts dt{font:900 11px var(--body);letter-spacing:.12em;text-transform:uppercase;color:#2f4fd6;padding-top:3px}.mouth-parts dd{margin:0;color:var(--ink)}

.mair{stroke:#4467f5;stroke-width:3;stroke-dasharray:6 7;opacity:.75;animation:airflow .9s linear infinite}
.mair-stop{stroke-dasharray:3 14;animation-duration:.5s}
.mair-side{stroke-dasharray:2 6}
.mair-nose{stroke:#0f8a5f}
@keyframes airflow{to{stroke-dashoffset:-26}}
.mouth-side{display:grid;gap:10px;align-content:start;min-width:0}
.mouth-btns{display:flex;flex-wrap:wrap;gap:8px}
.mouth-btns button{min-height:42px;padding:7px 13px;border-radius:999px;font:700 15px var(--body);color:var(--ink)}
.mouth-btns button[aria-pressed="true"]{background:var(--abg);border-color:var(--hiedge);color:var(--a)}
.mouth-cap{line-height:1.55;min-height:4.6em}.mouth-cap b{display:block;font:700 18px var(--display);color:var(--ink);margin-bottom:2px}
.mouth-key{display:flex;flex-wrap:wrap;gap:10px;font-size:12.5px;color:var(--soft)}.mouth-key span::before{content:"";display:inline-block;width:18px;height:0;border-top:3px dashed #4467f5;vertical-align:middle;margin-right:5px}.mouth-key span.k-nose::before{border-color:#0f8a5f}.mouth-key span.k-voice::before{border-top:3px solid #c52539}
@media (max-width:640px){.mouth-stage{grid-template-columns:1fr}.mouth-svg{max-width:100%}}
