.guide{grid-template-columns:minmax(0,62fr) minmax(0,38fr);align-items:center;gap:12px;margin-bottom:16px;padding:12px;display:grid}.guide-img{aspect-ratio:715/301;object-fit:contain;border-radius:var(--radius-sm);background:#fff;justify-self:start;width:100%;max-width:480px;height:auto;display:block}@media (width>=520px){.guide{grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:20px}}@media (width<=339px){.guide{grid-template-columns:minmax(0,1fr)}.guide-img{justify-self:center}}.guide-info{flex-direction:column;align-items:flex-start;gap:6px;min-width:0;display:flex}.guide-info .guide-label{overflow-wrap:anywhere}.guide-label{margin:0;font-weight:800}.guide-note{color:var(--ink-muted);margin:2px 0 0;font-size:13px}.guide-diagram{box-sizing:content-box;aspect-ratio:175/55;object-fit:contain;background:#222;border-radius:8px;width:auto;max-width:calc(100% - 16px);height:36px;margin-top:0;padding:4px 8px}.letter-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}@media (width>=520px){.letter-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}.letter{aspect-ratio:1/1.15;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent-ink);overflow-wrap:anywhere;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;padding:4px;font-size:13px;font-weight:800;transition:transform .12s,background .12s;display:flex;position:relative}.letter img{object-fit:contain;width:30px;height:30px}.letter.active{background:var(--brand);color:#fff;transform:scale(1.05)}.letter.selected:not(.active){border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}.letter.locked img{opacity:.55}.letter .dot{background:currentColor;border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:6px}.letter .lock{width:15px;height:15px;color:var(--accent-ink);position:absolute;bottom:4px;right:5px}@media (width>=1024px){.letter .lock{width:17px;height:17px}}.letter.locked{background:#ffd65a21;border-color:#e6c45a6b}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .letter.locked{background:#f5c5421f;border-color:#f5c54247}}:root[data-theme=dark] .letter.locked{background:#f5c5421f;border-color:#f5c54247}.guide.sticky{top:calc(var(--stick-top,56px) + 8px);z-index:3;box-shadow:0 -8px 0 8px var(--surface-alt), var(--shadow);position:sticky}.sounds-head{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.view-switch{display:none}@media (width>=1024px){.view-switch{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex:none;gap:4px;margin-bottom:16px;padding:4px;display:inline-flex}.view-switch button{min-height:44px;color:var(--ink-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.view-switch button.on{background:var(--brand);color:#fff}.view-switch button:focus-visible{outline-offset:2px;outline:3px solid #f60}.view-compact .guide{grid-template-columns:minmax(0,300px) minmax(0,1fr);padding:10px 14px}.view-compact .guide-img{max-width:300px}.view-compact .letter-grid{grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}.view-compact .letter{aspect-ratio:1;gap:2px;font-size:12px}.view-compact .letter img{width:26px;height:26px}}.guide-rec{border-top:1px solid var(--line);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px;padding-top:10px;display:flex}.rec-btn{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-width:0;min-height:44px;color:var(--accent-ink);font:inherit;text-align:center;cursor:pointer;flex:1 1 0;justify-content:center;align-items:center;gap:6px;padding:4px 8px;font-size:13px;font-weight:700;line-height:1.15;display:inline-flex}.rec-btn:disabled{opacity:.5;cursor:default}.rec-btn:focus-visible{outline-offset:2px;outline:3px solid #f60}.rec-btn.is-playing{background:var(--brand);color:#fff;border-color:var(--brand)}.rec-dot{background:#d4183d;border-radius:50%;flex:none;width:10px;height:10px}.rec-record.is-recording{color:#d4183d;border-color:#d4183d}.rec-record.is-recording .rec-dot{animation:1s ease-in-out infinite rec-pulse}@keyframes rec-pulse{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.rec-record.is-recording .rec-dot{animation:none}}.rec-hint{color:var(--ink-muted);flex:100%;margin:0;font-size:11px}
