/* Same Apple collection and type hierarchy as the kit; scene geometry owns motion. */
#stage .tile[data-app="voice"] {
  --voice-ink:var(--ink); --voice-secondary:var(--ink-2); --voice-blue:var(--accent);
  background:#fff; color:var(--voice-ink); padding:16px;
  font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
}
#stage .tile[data-voice-role="hero"] { width:240px; height:240px; border-radius:var(--r-surface); }
#stage .tile[data-voice-role="peer"] { width:220px; height:176px; border-radius:var(--r-surface); }
.voice-face { display:flex; flex-direction:column; width:100%; height:100%; min-height:0; gap:8px; }
.voice-head { display:flex; align-items:center; gap:8px; font-size:12px; line-height:18px; color:var(--voice-secondary); }
.voice-face .symbol { display:inline-block; width:20px; height:20px; flex:none; background:var(--voice-blue); mask:var(--symbol) center/contain no-repeat; -webkit-mask:var(--symbol) center/contain no-repeat; }
#stage .tile .voice-title { font-size:20px; line-height:1.18; letter-spacing:var(--tr-20); margin:0; -webkit-line-clamp:2; flex-shrink:0; color:var(--voice-ink); }
#stage .tile[data-voice-role="hero"] .voice-title { font-size:28px; }
.voice-detail { flex:1; display:flex; flex-direction:column; justify-content:center; gap:8px; min-height:0; }
#stage .tile .voice-copy { display:block; font-size:13px; line-height:1.4; color:var(--voice-secondary); margin:0; }
.voice-face .wave-field { flex:1; min-height:38px; display:grid; place-items:center; }
#stage .voice-face .wave-field svg { display:block; width:100%; height:56px; }
.voice-face .wave-field path { fill:none; stroke-width:1.7; stroke-linecap:round; }
.voice-face .wave-field path:nth-child(even) { opacity:.42; stroke-width:1; }
.voice-stages { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.voice-step { display:flex; flex-direction:column; align-items:center; gap:8px; font-size:11px; }
.voice-step .symbol { width:26px; height:26px; }
.voice-keys { display:flex; gap:6px; }
.voice-keys kbd { display:grid; place-items:center; width:42px; height:42px; border-radius:var(--r-mini); background:var(--chip); border:1px solid var(--sep); font:24px -apple-system,sans-serif; }
#stage .tile .voice-permission { display:block; font-size:17px; line-height:1.25; font-weight:600; color:var(--voice-ink); }
.voice-meta { display:block; margin-top:auto; color:var(--voice-secondary); font-size:11px; line-height:1.3; font-variant-numeric:tabular-nums; }
#stage .tile[data-voice-role="compact"] .voice-face { gap:4px; }
#stage .tile[data-voice-role="compact"] .voice-head { font-size:11px; line-height:14px; }
#stage .tile[data-voice-role="compact"] .symbol { width:14px; height:14px; }
#stage .tile[data-voice-role="compact"] .voice-title { font-size:15px; }
#stage .tile[data-voice-role="compact"] .voice-meta { font-size:11px; }
