/* A listening room: recorded audio, its waveform and words, in one place. */
.voice-room { background:#f2f3ed; border-block:1px solid #dee4d8; scroll-margin-top:100px; }
.voice-room .section-head { margin-bottom:38px; }
.voice-room .section-head > p { max-width:32ch; }
.voice-studio { display:grid; grid-template-columns:minmax(240px,.75fr) minmax(0,1.65fr); border:1px solid #ccd7c9; border-radius:26px 8px 26px 8px; overflow:clip; background:#fafbf6; box-shadow:0 18px 55px -38px #15291c66; }
.voice-library { display:flex; flex-direction:column; padding:28px 20px; min-width:0; }
.voice-library-heading { display:flex; justify-content:space-between; gap:10px; color:#59705f; font-size:.59rem; font-weight:650; letter-spacing:.09em; padding:0 8px 28px; }
.voice-library-heading > span:last-child { color:#839785; }
.voice-choices { display:grid; gap:9px; }
.voice-choice { display:flex; align-items:center; text-align:left; width:100%; gap:11px; padding:19px 13px; min-height:86px; border:1px solid transparent; border-radius:13px; background:transparent; font:inherit; color:#334d3d; cursor:pointer; transition:background .22s,border-color .22s,transform .3s; }
.voice-choice[aria-pressed="true"] { border-color:#bbd2bc; background:#e8f0e2; color:#173e28; }
.voice-choice:hover { background:#eff3e9; transform:translateX(3px); }
.voice-choice[aria-pressed="true"]:hover { background:#e2ecd9; }
.voice-choice:disabled { cursor:default; }
.voice-choice-index { flex:none; color:#5c7461; font-size:.64rem; align-self:flex-start; padding-top:4px; }
.voice-choice strong { display:block; font-size:.91rem; font-weight:650; line-height:1.4; }
.voice-choice small { display:block; margin-top:5px; font-size:.71rem; line-height:1.6; color:#536957; }
.voice-choice-length { font-size:.62rem; margin-left:auto; color:#5c7461; }
.voice-library-note { display:flex; align-items:center; gap:17px; border-top:1px solid #dfe6d9; padding:24px 8px 0; margin-top:auto; }
.voice-library-note p { color:#59705f; font-size:.74rem; line-height:1.65; }
.voice-note-mark { display:flex; align-items:center; gap:3px; height:30px; color:#829c77; }
.voice-note-mark i { display:block; width:3px; height:14px; background:currentColor; border-radius:3px; }
.voice-note-mark i:nth-child(2n) { height:25px; }
.voice-note-mark i:nth-child(3n) { height:34px; }
.voice-player { --voice-light:#cde6ac; --voice-muted:#b1c2b0; --voice-energy:0; position:relative; min-width:0; background:#152b23; color:#f6f8ee; padding:30px 38px 24px; overflow:hidden; transition:background .45s; }
.voice-player[data-voice-theme="live-demo"] { --voice-light:#b4dfd9; --voice-muted:#aec8c4; background:#16302f; }
.voice-player[data-voice-theme="multilingual"] { --voice-light:#e8d1a5; --voice-muted:#ccbfad; background:#302b25; }
.voice-player::before { content:''; position:absolute; width:340px; height:340px; border:1px solid #d4e3d112; border-radius:50%; right:-180px; top:-170px; box-shadow:0 0 0 24px #d4e3d108,0 0 0 48px #d4e3d105; pointer-events:none; }
.voice-player-top { position:relative; display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:.64rem; color:var(--voice-muted); }
.voice-record-label { display:flex; align-items:center; gap:8px; }
.voice-record-label i { width:6px; height:6px; border-radius:50%; background:var(--voice-light); }
.voice-player[data-playing="true"] .voice-record-label i { box-shadow:0 0 0 calc(2px + var(--voice-energy) * 5px) #deefcb1f; }
.voice-model { border:1px solid #cedfcb33; padding:7px 11px; border-radius:30px; white-space:nowrap; }
.voice-performance { position:relative; display:grid; grid-template-columns:148px minmax(0,1fr); align-items:center; gap:25px; min-height:236px; padding-block:24px; }
.voice-signal { position:relative; display:grid; place-items:center; width:148px; aspect-ratio:1; isolation:isolate; }
.voice-signal svg { position:absolute; inset:0; width:100%; height:100%; fill:none; stroke:var(--voice-light); stroke-width:.8; opacity:.6; transform:rotate(calc(-24deg + var(--voice-turn, 0deg))) scale(calc(1 + var(--voice-energy) * .14)); transition:transform .12s linear; }
.voice-signal span { display:grid; place-items:center; width:56px; height:56px; border:1px solid #d6e6cc44; border-radius:50%; background:#ffffff08; color:var(--voice-light); font-size:1rem; font-weight:450; letter-spacing:.02em; backdrop-filter:blur(6px); }
.voice-spoken { min-width:0; }
.voice-speaker { display:block; color:var(--voice-light); font-size:.65rem; letter-spacing:.07em; margin-bottom:15px; }
.voice-spoken blockquote { margin:0; font-size:clamp(1.35rem,2.05vw,1.9rem); line-height:1.3; font-weight:450; letter-spacing:-.035em; text-wrap:pretty; }
.voice-spoken > p { margin:12px 0 0; color:var(--voice-muted); font-size:.79rem; line-height:1.55; }
.voice-language { display:block; color:var(--voice-muted); font-size:.64rem; margin-top:16px; }
.voice-wave-area[hidden], .voice-play [hidden], .voice-spoken [hidden] { display:none; }
.voice-wave-heading { display:flex; justify-content:space-between; gap:16px; font-size:.58rem; color:var(--voice-muted); letter-spacing:.05em; }
[data-voice-time] { font-variant-numeric:tabular-nums; letter-spacing:0; }
.voice-wave-seek { position:relative; height:86px; margin:10px 0 16px; border-radius:5px; }
.voice-waveform { width:100%; height:100%; display:block; }
[data-voice-wave-base] { fill:#d4e5cb38; }
[data-voice-wave-played] { fill:var(--voice-light); }
.voice-wave-seek input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; touch-action:pan-y; }
.voice-wave-seek:focus-within { outline:2px solid var(--voice-light); outline-offset:5px; }
.voice-transport { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.voice-play { display:flex; align-items:center; gap:10px; min-height:48px; padding:12px 18px; color:#17271b; background:var(--voice-light); border:0; border-radius:30px; font:inherit; font-size:.77rem; font-weight:650; cursor:pointer; transition:transform .2s,filter .2s; }
.voice-play:hover { transform:translateY(-2px); filter:brightness(1.06); }
.voice-play-icon, .voice-pause-icon { display:flex; }
.voice-play svg { width:17px; height:17px; fill:currentColor; }
.voice-pause-icon svg { fill:none; stroke:currentColor; stroke-width:3; }
.voice-restart { display:flex; align-items:center; gap:7px; min-height:44px; background:transparent; border:0; color:var(--voice-light); font:inherit; font-size:.7rem; cursor:pointer; }
.voice-restart svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.6; }
.voice-transport-note { color:var(--voice-muted); font-size:.59rem; margin-left:auto; }
.voice-status { min-height:18px; margin-top:12px; font-size:.72rem; line-height:1.5; color:var(--voice-light); }
.voice-native { width:100%; margin-top:15px; }
.voice-room[data-ready="true"] .voice-native, .voice-room[data-ready="true"] .voice-fallback { display:none; }
.voice-bottom { display:grid; grid-template-columns:1.25fr .75fr; gap:45px; margin-top:26px; align-items:start; }
.voice-transcript { border:1px solid #d4dfce; border-radius:13px; background:#fafbf6; }
.voice-transcript summary { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:62px; padding:18px 22px; font-size:.84rem; font-weight:600; cursor:pointer; list-style:none; }
.voice-transcript summary::-webkit-details-marker { display:none; }
.voice-transcript summary > span:last-child { font-size:1.2rem; color:#52705a; font-weight:400; transition:transform .2s; }
.voice-transcript[open] summary > span:last-child { transform:rotate(45deg); }
.voice-transcript ol { list-style:none; padding:0 12px 12px; margin:0; }
.voice-transcript li { margin:0; }
.voice-transcript li > p, .voice-transcript li > .voice-line-speaker { padding-inline:12px; }
.voice-line { display:block; width:100%; text-align:left; border:1px solid transparent; border-radius:8px; background:transparent; color:#2d4031; padding:13px 12px; cursor:pointer; font:inherit; }
.voice-line:hover, .voice-line[aria-current="true"] { background:#ecf2e5; border-color:#d6e2cd; }
.voice-line-heading { display:flex; align-items:center; gap:12px; justify-content:space-between; font-size:.63rem; color:#54715c; margin-bottom:6px; }
.voice-line-heading span:last-child { font-variant-numeric:tabular-nums; }
.voice-line-text { display:block; font-size:.84rem; line-height:1.6; }
.voice-line-translation { display:block; color:#617461; font-size:.73rem; line-height:1.6; margin-top:6px; }
.voice-context { padding:10px 0 0; }
.voice-context .kicker { font-size:.62rem; margin-bottom:11px; }
.voice-context p { font-size:.85rem; color:#526351; max-width:41ch; line-height:1.75; }
.voice-context .text-link { margin-top:15px; font-size:.8rem; }
.voice-disclosure { max-width:90ch; margin-top:24px; color:#61715f; font-size:.69rem; line-height:1.65; }
.voice-choice:focus-visible, .voice-transcript summary:focus-visible, .voice-line:focus-visible { outline:3px solid #008757; outline-offset:3px; }
.voice-play:focus-visible, .voice-restart:focus-visible { outline:3px solid var(--voice-light); outline-offset:4px; }
.voice-room[data-ready="true"] .voice-player { animation:voice-room-arrive .6s ease-out both; }
@keyframes voice-room-arrive { from { opacity:.7; transform:translateY(8px); } to { opacity:1; transform:none; } }
.voice-teaser { display:flex; align-items:center; gap:17px; border:1px solid #cddbcc; padding:20px; border-radius:14px 5px 14px 5px; text-decoration:none; color:#1f472f; background:#edf3e7; margin:24px 0; transition:background .2s,transform .25s; }
.voice-teaser:hover { background:#e2eedb; transform:translateY(-2px); }
.voice-teaser strong { display:block; font-size:.92rem; font-weight:600; }
.voice-teaser small { display:block; margin-top:6px; color:#526a55; font-size:.73rem; line-height:1.5; }
.voice-teaser > .icon { margin-left:auto; flex:none; width:19px; }
.voice-teaser-signal { display:flex; align-items:center; gap:3px; flex:none; height:35px; }
.voice-teaser-signal i { display:block; width:3px; height:10px; background:#48835b; border-radius:5px; }
.voice-teaser-signal i:nth-child(2n) { height:23px; }
.voice-teaser-signal i:nth-child(3n) { height:32px; }
.voice-teaser:hover .voice-teaser-signal i { animation:voice-teaser-tap .7s ease-in-out 2; }
.voice-teaser-signal i:nth-child(2n) { animation-delay:.12s!important; }
@keyframes voice-teaser-tap { 50% { transform:scaleY(.5); } }
@media (max-width:1100px) {
 .voice-studio { grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr); }
 .voice-player { padding:26px; }
 .voice-performance { grid-template-columns:108px minmax(0,1fr); gap:15px; }
 .voice-signal { width:108px; }
 .voice-spoken blockquote { font-size:1.5rem; }
 .voice-transport-note { margin-left:0; flex-basis:100%; }
}
@media (max-width:850px) {
 .voice-studio { grid-template-columns:1fr; }
 .voice-library { padding:22px; }
 .voice-library-heading { padding:0 0 15px; }
 .voice-choices { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .voice-choice { display:block; padding:15px 12px; min-height:122px; }
 .voice-choice-index { display:block; margin-bottom:10px; padding:0; }
 .voice-choice strong { font-size:.83rem; }
 .voice-choice small { font-size:.64rem; }
 .voice-choice-length, .voice-library-note { display:none; }
 .voice-performance { grid-template-columns:130px minmax(0,1fr); min-height:218px; gap:25px; }
 .voice-signal { width:130px; }
 .voice-spoken blockquote { font-size:1.75rem; }
 .voice-transport-note { flex-basis:auto; margin-left:auto; }
 .voice-bottom { gap:25px; }
}
@media (max-width:550px) {
 .voice-room .section-head { margin-bottom:26px; }
 .voice-library { padding:17px 13px; }
 .voice-library-heading { padding:0 5px 14px; font-size:.55rem; }
 .voice-choices { gap:4px; }
 .voice-choice { padding:13px 8px; min-height:107px; border-radius:9px; }
 .voice-choice strong { font-size:.7rem; }
 .voice-choice small { font-size:.59rem; line-height:1.5; }
 .voice-choice-index { font-size:.57rem; margin-bottom:8px; }
 .voice-player { padding:22px 20px 16px; }
 .voice-player-top { font-size:.6rem; }
 .voice-performance { grid-template-columns:1fr; gap:10px; min-height:287px; padding:21px 0; align-content:start; }
 .voice-signal { position:absolute; right:-16px; top:15px; width:92px; opacity:.7; }
 .voice-signal span { width:36px; height:36px; font-size:.73rem; }
 .voice-spoken { padding-top:24px; }
 .voice-speaker { max-width:calc(100% - 75px); min-height:40px; margin-bottom:13px; font-size:.6rem; }
 .voice-spoken blockquote { font-size:1.65rem; padding-right:5px; min-height:80px; }
 .voice-language { font-size:.6rem; margin-top:15px; }
 .voice-wave-seek { height:70px; margin:10px 0 15px; }
 .voice-transport { gap:15px; }
 .voice-transport-note { flex-basis:100%; margin-left:0; font-size:.62rem; }
 .voice-play { font-size:.76rem; padding:12px 17px; }
 .voice-bottom { grid-template-columns:1fr; gap:22px; }
 .voice-transcript summary { font-size:.78rem; padding:17px; }
 .voice-context { padding:0 2px; }
 .voice-disclosure { font-size:.64rem; }
 .voice-teaser { gap:12px; padding:16px; }
 .voice-teaser strong { font-size:.85rem; }
 .voice-teaser small { font-size:.68rem; }
}
@media (prefers-reduced-motion:reduce) {
 .voice-room *, .voice-teaser, .voice-teaser * { animation:none!important; transition:none!important; }
 .voice-signal svg { transform:rotate(-24deg); }
}
