/* TTSAI 3.0 — Vietnamese voice library and multi-character studio. No external assets. */
:root{--v3mint:#84f6dc;--v3blue:#b2b9ff}
body{background-image:radial-gradient(750px 600px at 78% 4%,rgba(112,100,244,.13),transparent 78%),radial-gradient(650px 500px at 5% 28%,rgba(41,224,184,.055),transparent 75%)}
.studio-page{position:relative;isolation:isolate}.studio-page:before{content:"";position:absolute;inset:0 0 auto;z-index:-1;pointer-events:none;height:420px;background:radial-gradient(60% 100% at 55% 0%,rgba(113,92,221,.18),transparent 70%);animation:v3-glow 12s ease-in-out infinite alternate}.studio-head h1{font-size:clamp(34px,4.5vw,61px);letter-spacing:-2.5px}.studio-head .eyebrow{font-size:12px;color:var(--v3mint);letter-spacing:2px}.studio-top-banner{background:linear-gradient(110deg,rgba(53,124,142,.17),rgba(91,84,167,.16));border:1px solid rgba(131,240,225,.25);box-shadow:0 14px 40px #0b102225}.studio-top-banner b{color:#8fffe3}
.studio-panel{overflow:hidden}.mode-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:5px}.mode-switch button{border-radius:11px;padding:12px 9px;font-size:12px;white-space:normal;line-height:1.4}.mode-switch button.active{background:linear-gradient(120deg,#274f56,#3d3972);box-shadow:0 0 24px #51b5c019}.control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v3-voice-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:14px 0 10px}.v3-voice-label{font-size:11px;color:#aabada}.v3-count{font-size:11px;color:#92ffdb;background:#80fbd719;border:1px solid #80fbd72e;border-radius:999px;padding:5px 9px;white-space:nowrap}.v3-filter{display:flex;gap:8px;margin:8px 0 12px}.v3-filter input{width:100%;min-width:0;border-radius:12px;padding:12px 11px;background:#0b1129;border:1px solid rgba(165,188,244,.2);color:#f6faff;font:inherit;font-size:12px;outline:0}.v3-filter input:focus{border-color:#6ee7d1;box-shadow:0 0 0 3px #76edcf13}.v3-fav-filter{border-radius:12px;border:1px solid #343c5e;padding:8px 10px;background:#161d39;color:#dfe7ff;font-size:11px;white-space:nowrap;cursor:pointer}.v3-fav-filter.on{border-color:#ffb5dd;color:#ffcce5}.v3-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.v3-chips button{color:#afbeda;background:#10172d;border:1px solid #323957;border-radius:999px;padding:7px 9px;font-size:10px;cursor:pointer;transition:.18s}.v3-chips button:hover{color:white;border-color:#84f6dc}.v3-chips button.on{background:#16403e;color:#a7ffe9;border-color:#6cead0}.v3-selected{background:linear-gradient(95deg,rgba(68,169,147,.13),rgba(112,92,204,.12));border:1px solid rgba(114,224,208,.2);padding:10px 12px;color:#afc6e3;font-size:11px;border-radius:11px;margin-bottom:9px}.v3-selected b{color:#b7ffe9;font-size:13px}.v3-voice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:500px;overflow:auto;scrollbar-width:thin;scrollbar-color:#4c597f transparent;padding:2px 2px 8px}.v3-voice-card{display:flex;min-width:0;align-items:center;gap:1px;position:relative;background:#0d132b;border:1px solid rgba(156,174,225,.16);border-radius:14px;transition:transform .18s,border-color .18s,box-shadow .18s}.v3-voice-card:hover{transform:translateY(-2px);border-color:#91d0e690}.v3-voice-card.chosen{border-color:#75edd5;background:linear-gradient(125deg,#174139,#182c45);box-shadow:0 0 0 1px #62dfc31b}.v3-voice-pick{border:0;display:flex;align-items:center;min-width:0;gap:8px;flex:1;padding:11px 4px 11px 8px;color:#eaf3ff;background:transparent;text-align:left;cursor:pointer}.v3-voice-avatar{display:grid;place-items:center;width:30px;height:30px;min-width:30px;border-radius:10px;background:linear-gradient(145deg,#474184,#1c6963);color:#b8f7ef;font-size:14px}.v3-voice-title{display:flex;flex-direction:column;min-width:0;gap:3px}.v3-voice-title b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v3-voice-title small{font-size:10px;color:#a0afd1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v3-voice-check{font-size:11px;color:#87eddb}.v3-star{align-self:stretch;border:0;padding:0 8px 0 4px;background:transparent;color:#b8a6d6;font-size:19px;cursor:pointer}.v3-star:hover{color:#ffb9d3}.v3-vnote{font-size:11px;line-height:1.75;color:#9eadd1;margin:13px 0 2px}.v3-vnote b{color:#d7e0f6}
.v3-dialogue{padding:20px;margin:14px 0 18px;background:linear-gradient(130deg,rgba(22,40,65,.8),rgba(33,28,74,.55));border:1px solid rgba(120,224,217,.19);border-radius:17px}.v3-dialogue-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.v3-dialogue-top h3{font-size:16px;letter-spacing:-.2px;margin:0 0 8px}.v3-dialogue-top p{margin:0 0 15px;color:#aabbd7;font-size:11px;line-height:1.7}.v3-dialogue-actions{display:flex;flex-wrap:wrap;gap:6px}.v3-speaker-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.v3-speaker{position:relative;display:flex;gap:9px;align-items:start;background:#0d152d;border:1px solid #33405d;border-radius:14px;padding:13px 9px}.v3-speaker-icon{border-radius:10px;min-width:27px;width:27px;height:27px;background:linear-gradient(135deg,#3f407f,#28766c);display:grid;place-items:center;font-size:12px;color:#dcfff6}.v3-speaker-fields{min-width:0;flex:1;display:grid;gap:9px}.v3-speaker-fields label{display:grid;gap:4px;color:#b8c3dd;font-size:10px}.v3-input,.v3-select,.v3-turn-text{min-width:0;width:100%;border:1px solid #3b4263;border-radius:8px;background:#0d1228;color:#f5f8ff;padding:9px 8px;font:inherit;font-size:12px;outline:0}.v3-input:focus,.v3-select:focus,.v3-turn-text:focus{border-color:#8cf4db}.v3-remove{background:transparent;border:0;color:#bbc8e6;font-size:17px;cursor:pointer}.v3-remove:disabled{opacity:.3;cursor:not-allowed}.v3-turn-label{margin-top:20px;align-items:center;border-top:1px solid #9eb9ec20;padding-top:15px;margin-bottom:12px}.v3-turn-label h3{margin:0}.v3-turn-label h3 small{color:#a2b6d2;font-size:12px}.v3-turn-list{display:grid;gap:9px}.v3-turn{padding:11px;border:1px solid #3c4163;background:#10172d;border-radius:12px}.v3-turn-top{display:flex;gap:8px;align-items:center;margin-bottom:8px}.v3-turn-index{white-space:nowrap;color:#88ead2;font-size:10px;font-weight:800;letter-spacing:1px}.v3-turn-speaker{max-width:180px;flex:1}.v3-turn-tools{display:flex;gap:5px;margin-left:auto}.v3-turn-tools button{width:27px;height:27px;border-radius:7px;border:1px solid #3c4566;background:#1b2441;color:#dce6fa;cursor:pointer}.v3-turn-tools button:disabled{opacity:.3;cursor:not-allowed}.v3-turn-text{resize:vertical;min-height:65px;max-height:170px;line-height:1.7}.v3-turn-label+.v3-turn-list+.studio-muted{margin-top:11px}.studio-grid aside .side-section:first-child{background:radial-gradient(70% 35% at 65% 0%,#a191e50b,transparent)}
/* visual energy, meaningful subtle motion */
.hero-card-wrap,.studio-preview{animation:v3-float 8s ease-in-out infinite}.preview-wave i{transform-origin:bottom;animation:v3-wave 1300ms ease-in-out infinite alternate}.preview-wave i:nth-child(3n){animation-duration:850ms}.preview-wave i:nth-child(5n){animation-duration:1700ms}.hero-note-tag{animation:v3-softpulse 5s ease-in-out infinite}.feature-card,.feature-highlight,.template-card{transition:transform .25s,border-color .25s}
@keyframes v3-wave{0%{transform:scaleY(.5);opacity:.7}100%{transform:scaleY(1.1);opacity:1}}@keyframes v3-float{0%,100%{translate:0 0}50%{translate:0 -7px}}@keyframes v3-softpulse{0%,100%{box-shadow:0 0 0 transparent}50%{box-shadow:0 0 25px #61f0d31a}}@keyframes v3-glow{from{opacity:.5}to{opacity:1}}
[data-theme=light] .v3-voice-card,[data-theme=light] .v3-speaker,[data-theme=light] .v3-turn,[data-theme=light] .v3-fav-filter,[data-theme=light] .v3-chips button{background:#f3f6fe;border-color:#d7e0ee;color:#28385a}[data-theme=light] .v3-voice-card.chosen,[data-theme=light] .v3-chips button.on{background:#d9f6ec;border-color:#3bcbaa}[data-theme=light] .v3-voice-title small,[data-theme=light] .v3-dialogue-top p,[data-theme=light] .v3-vnote,[data-theme=light] .v3-voice-label{color:#526582}[data-theme=light] .v3-voice-title b,[data-theme=light] .v3-dialogue-top h3{color:#203753}[data-theme=light] .v3-dialogue{background:#f4f8fe;border-color:#d7e4f0}[data-theme=light] .v3-input,[data-theme=light] .v3-select,[data-theme=light] .v3-turn-text,[data-theme=light] .v3-filter input{background:#fff;color:#26334c;border-color:#cad6e7}[data-theme=light] .v3-selected{color:#225c55;background:#e5f8f4}[data-theme=light] .v3-selected b{color:#166d62}[data-theme=light] .v3-vnote b{color:#24445a}
@media(max-width:1020px){.v3-voice-grid{grid-template-columns:1fr}}
@media(max-width:760px){.studio-head h1{font-size:39px;letter-spacing:-1.8px}.studio-grid{display:grid;grid-template-columns:minmax(0,1fr)}.v3-voice-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:420px}.v3-speaker-list{grid-template-columns:1fr}.v3-dialogue{padding:14px}}
@media(max-width:480px){.mode-switch{grid-template-columns:1fr}.mode-switch button{padding:12px}.v3-voice-grid{grid-template-columns:1fr}.control-grid{grid-template-columns:1fr}.studio-top-banner{font-size:10px}.v3-turn-top{flex-wrap:wrap}.v3-turn-speaker{max-width:none}.v3-turn-tools{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.hero-card-wrap,.studio-preview,.preview-wave i,.hero-note-tag{animation:none!important}}
[hidden]{display:none!important}
