.app{flex-direction:column;min-height:100vh;display:flex}.header{z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border-soft);background:#ffffffd9;padding:19px 36px;transition:background .3s,border-color .3s;position:fixed;top:0;left:0;right:0}[data-theme=dark] .header{background:#0a0a0ad9}.header-inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.logo{color:inherit;cursor:pointer;background:0 0;border:none;align-items:baseline;gap:2px;padding:0;text-decoration:none;display:flex}.logo h1{font-family:var(--font-serif);letter-spacing:-.08em;color:var(--text);-webkit-text-fill-color:unset;background:0 0;font-size:30px;font-style:italic;font-weight:600}.logo-mark{font-family:var(--font-sans);letter-spacing:-.04em;vertical-align:super;font-size:14px;font-weight:600;line-height:0}.header-right,.header-actions{align-items:center;gap:10px;display:flex}.theme-toggle,.github-link{border:1px solid var(--border-soft);background:var(--surface);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:16px;text-decoration:none;transition:all .2s;display:flex}.theme-toggle:hover,.github-link:hover{border-color:var(--text);transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.badge{background:var(--surface2);color:var(--muted);border:1px solid var(--border-soft);letter-spacing:-.02em;white-space:nowrap;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:500}.token-btn{background:var(--button-bg);height:38px;color:var(--button-text);font-family:var(--font-sans);letter-spacing:-.02em;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.token-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #00000026}.token-btn.configured{background:var(--surface);color:var(--text);border:1px solid #17c96459}.token-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;visibility:hidden;background:#00000059;justify-content:center;align-items:center;padding:24px;transition:opacity .3s,visibility .3s;display:flex;position:fixed;inset:0}.token-overlay.open{opacity:1;visibility:visible}.token-panel{background:var(--bg);border:1px solid var(--border-soft);border-radius:20px;width:100%;max-width:420px;padding:28px;position:relative;box-shadow:0 24px 64px #00000029}.token-panel-close{background:var(--surface2);width:32px;height:32px;color:var(--muted);cursor:pointer;border:none;border-radius:50%;font-size:20px;line-height:1;transition:all .2s;position:absolute;top:16px;right:16px}.token-panel-close:hover{color:var(--text);background:var(--border-soft)}.token-panel-title{letter-spacing:-.04em;margin-bottom:8px;font-size:22px;font-weight:600}.token-panel-desc{color:var(--muted);letter-spacing:-.02em;margin-bottom:16px;font-size:13px;line-height:1.5}.token-input{border:1px solid var(--border-soft);background:var(--surface2);width:100%;color:var(--text);letter-spacing:-.01em;border-radius:12px;margin-bottom:12px;padding:14px 16px;font-family:SF Mono,Monaco,monospace;font-size:13px;transition:border-color .2s}.token-input:focus{border-color:var(--text);outline:none}.token-remember{color:var(--text);cursor:pointer;letter-spacing:-.02em;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.token-remember input{accent-color:var(--text)}.token-url-hint{color:var(--muted);letter-spacing:-.02em;margin-bottom:12px;font-size:12px;line-height:1.5}.token-url-hint code{background:var(--surface2);border:1px solid var(--border-soft);border-radius:6px;padding:2px 6px;font-family:SF Mono,Monaco,monospace;font-size:11px}.token-current{color:var(--muted);letter-spacing:-.02em;margin-bottom:16px;font-size:12px}.token-current span{color:var(--text);font-family:SF Mono,Monaco,monospace}.token-actions{justify-content:flex-end;gap:10px;display:flex}.token-action{height:44px;font-family:var(--font-sans);letter-spacing:-.02em;cursor:pointer;border-radius:999px;padding:0 20px;font-size:14px;font-weight:600;transition:all .2s}.token-action--ghost{border:1px solid var(--border-soft);color:var(--muted);background:0 0}.token-action--ghost:hover{border-color:var(--text);color:var(--text)}.token-action--primary{background:var(--button-bg);color:var(--button-text);border:none}.token-action--primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #0000001f}.studio{flex:1;padding-top:76px}.studio-bar{border-bottom:1px solid var(--border-soft);position:relative;overflow:hidden}.studio-bar:before{content:"";opacity:.22;z-index:0;background-image:url(https://images.higgs.ai/?default=1&output=webp&url=https%3A%2F%2Fd8j0ntlcm91z4.cloudfront.net%2Fuser_38xzZboKViGWJOttwIXH07lWA1P%2Fhf_20260626_041422_4a459e05-abce-4150-9fb7-4ededc423cd1.png&w=1280&q=85);background-position:50%;background-size:cover;position:absolute;inset:0}.studio-bar:after{content:"";z-index:1;background:linear-gradient(135deg,#ffffffeb 0%,#ffffffc7 50%,#ffffffe0 100%);position:absolute;inset:0}[data-theme=dark] .studio-bar:before{opacity:.12}[data-theme=dark] .studio-bar:after{background:linear-gradient(135deg,#0a0a0af0 0%,#0a0a0ad1 50%,#0a0a0ae6 100%)}.studio-bar-inner{z-index:2;justify-content:space-between;align-items:flex-end;gap:32px;max-width:1200px;margin:0 auto;padding:32px 36px 28px;display:flex;position:relative}.studio-intro{flex:1;min-width:0}.studio-title{letter-spacing:-.07em;color:var(--text);margin-bottom:8px;font-size:clamp(28px,4vw,42px);font-weight:600;line-height:1.05}.studio-title .serif{letter-spacing:-.08em}.studio-title sup{font-family:var(--font-sans);vertical-align:super;letter-spacing:-.04em;font-size:.45em;font-weight:600}.studio-desc{color:var(--muted);letter-spacing:-.02em;max-width:520px;font-size:14px;font-weight:400;line-height:1.45}.studio-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:12px;display:flex}.status-pill{color:var(--text);background:var(--surface);border:1px solid var(--border-soft);letter-spacing:-.02em;box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:12px;font-weight:500;display:inline-flex}.status-dot{background:var(--green);border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 0 3px #17c96433}.status-dot--warn{background:#f5a524;box-shadow:0 0 0 3px #f5a52433}.status-pill--warn{border-color:#f5a52440}.ticker-wrap{width:280px;max-width:100%;height:36px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 12% 88%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 12% 88%,#0000 100%)}.ticker-track{gap:8px;width:max-content;animation:30s linear infinite marquee-left;display:flex}.ticker-item{color:var(--muted);white-space:nowrap;letter-spacing:-.02em;background:#fbfbfb;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500}[data-theme=dark] .ticker-item{background:#ffffff14}.studio-body{width:100%;max-width:1200px;margin:0 auto;padding:28px 36px 48px}.studio-grid{grid-template-columns:minmax(300px,380px) 1fr;align-items:start;gap:20px;display:grid}.controls-panel{max-height:calc(100vh - 108px);padding-right:4px;position:sticky;top:92px;overflow-y:auto}.output-panel{min-width:0}.panel{flex-direction:column;gap:16px;display:flex}.section{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:20px;transition:background .3s,border-color .3s,box-shadow .2s}.output-panel>.section:first-child{box-shadow:var(--shadow-lg);padding:24px}.output-panel>.section:first-child .main-textarea{background:var(--bg);border-color:#0000;min-height:180px;font-size:16px;line-height:1.65}.output-panel>.section:first-child .main-textarea:focus{border-color:var(--border-soft);box-shadow:none}.section-title{color:var(--muted);letter-spacing:-.02em;align-items:center;gap:8px;margin-bottom:16px;font-size:13px;font-weight:600;display:flex}.section-hint{color:var(--muted);opacity:.7;font-size:11px;font-weight:400}.model-grid{flex-direction:column;gap:8px;display:flex}.model-card{background:var(--surface2);border:1.5px solid var(--border-soft);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;gap:3px;padding:14px 16px;transition:all .2s;display:flex}.model-card:hover{border-color:var(--text);transform:translateY(-1px)}.model-card.active{border-color:var(--text);background:var(--surface);box-shadow:var(--shadow-lg)}.model-title{color:var(--text);letter-spacing:-.03em;font-size:15px;font-weight:600}.model-desc{color:var(--muted);letter-spacing:-.01em;font-size:11px;line-height:1.4}.model-id{color:var(--muted);opacity:.6;margin-top:4px;font-family:SF Mono,Monaco,monospace;font-size:10px}.voice-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.voice-chip{background:var(--surface2);border:1.5px solid var(--border-soft);cursor:pointer;text-align:center;border-radius:10px;flex-direction:column;gap:2px;padding:12px 10px;transition:all .2s;display:flex}.voice-chip:hover{border-color:var(--text)}.voice-chip.active{border-color:var(--text);background:var(--surface);box-shadow:var(--shadow)}.voice-name{color:var(--text);letter-spacing:-.03em;font-size:14px;font-weight:600}.voice-meta{color:var(--muted);font-size:10px}.preset-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.preset-chip{border:1px solid var(--border-soft);background:var(--surface2);color:var(--muted);cursor:pointer;white-space:nowrap;letter-spacing:-.02em;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:500;transition:all .2s}.preset-chip:hover{border-color:var(--text);color:var(--text)}.preset-chip.active{border-color:var(--text);background:var(--button-bg);color:var(--button-text)}.tag-label{color:var(--muted);white-space:nowrap;font-size:12px}.tag-btn{border:1px dashed var(--border-soft);color:var(--muted);cursor:pointer;letter-spacing:-.01em;background:0 0;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:500;transition:all .15s}.tag-btn:hover{border-color:var(--text);color:var(--text);background:var(--surface2)}.tag-btn.active{border-color:var(--text);background:var(--button-bg);color:var(--button-text);border-style:solid;font-weight:600}.textarea{background:var(--surface2);border:1px solid var(--border-soft);width:100%;color:var(--text);resize:vertical;letter-spacing:-.02em;border-radius:12px;padding:14px 16px;font-family:inherit;font-size:14px;line-height:1.6;transition:border-color .2s,background .3s,color .3s}.textarea:focus{border-color:var(--text);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.textarea::placeholder{color:var(--muted);opacity:.5}.textarea.small{padding:12px 14px;font-size:13px}.main-textarea{min-height:140px;font-size:15px}.text-footer{justify-content:flex-end;margin-top:8px;display:flex}.char-count{color:var(--muted);opacity:.7;font-size:11px}.format-row{gap:10px;display:flex}.format-btn{border:1.5px solid var(--border-soft);background:var(--surface2);color:var(--text);cursor:pointer;letter-spacing:-.03em;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:14px;font-size:15px;font-weight:600;transition:all .2s;display:flex}.format-btn:hover{border-color:var(--text)}.format-btn.active{border-color:var(--text);background:var(--surface);box-shadow:var(--shadow)}.format-hint{color:var(--muted);font-size:10px;font-weight:400}.checkbox-label{cursor:pointer;color:var(--text);letter-spacing:-.02em;align-items:center;gap:8px;font-size:14px;display:flex}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--text)}.checkbox-hint{color:var(--muted);opacity:.7;font-size:11px}.upload-zone{border:2px dashed var(--border-soft);text-align:center;cursor:pointer;border-radius:12px;padding:28px;transition:all .2s;display:block}.upload-zone:hover{border-color:var(--text);background:var(--surface2)}.upload-zone--dragging{border-color:var(--text)!important;background:var(--accent-glow)!important;border-style:solid!important}.upload-zone--has-file{border-color:var(--green);border-style:solid}.upload-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.upload-placeholder,.upload-info{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.upload-hint{opacity:.6;font-size:11px}.upload-icon{font-size:20px}.upload-size{opacity:.6;font-size:11px}.generate-btn{background:var(--button-bg);width:100%;color:var(--button-text);letter-spacing:-.03em;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:18px;font-size:16px;font-weight:600;transition:all .2s;display:flex}.generate-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 20px #00000026}.generate-btn:active:not(:disabled){transform:translateY(0)}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.generate-btn.loading{background:var(--surface2);color:var(--muted)}.spinner{border:2px solid var(--border-soft);border-top-color:var(--text);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-box{border:1px solid var(--error);color:var(--error);word-break:break-all;letter-spacing:-.01em;background:#dc26260f;border-radius:12px;align-items:flex-start;gap:8px;padding:14px 16px;font-size:13px;display:flex}.player-section{border-color:var(--text)}.player-card{flex-direction:column;gap:12px;display:flex}.audio-player{border-radius:12px;width:100%;height:48px}.download-btn{border:1px solid var(--border-soft);background:var(--surface2);color:var(--text);cursor:pointer;letter-spacing:-.02em;border-radius:999px;align-self:flex-end;padding:10px 20px;font-size:13px;font-weight:500;transition:all .2s}.download-btn:hover{border-color:var(--text);transform:translateY(-1px)}.clear-btn{border:1px solid var(--border-soft);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;margin-left:auto;padding:4px 12px;font-size:11px;font-weight:500;transition:all .2s}.clear-btn:hover{border-color:var(--error);color:var(--error)}.history-list{flex-direction:column;gap:8px;max-height:300px;display:flex;overflow-y:auto}.history-item{background:var(--surface2);cursor:pointer;border:1px solid #0000;border-radius:12px;padding:12px 16px;transition:all .2s}.history-item:hover{border-color:var(--text);background:var(--surface)}.history-text{color:var(--text);letter-spacing:-.02em;margin-bottom:4px;font-size:13px;line-height:1.4}.history-meta{color:var(--muted);opacity:.7;gap:12px;font-size:11px;display:flex}.director-mode{flex-direction:column;gap:12px;display:flex}.director-field{flex-direction:column;gap:6px;display:flex}.director-label{color:var(--text);letter-spacing:-.02em;font-size:13px;font-weight:600}.tag-section{margin-bottom:12px}.tag-section-header{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted);letter-spacing:-.02em;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;font-weight:600;display:flex}.tag-categories{flex-direction:column;gap:10px;display:flex}.tag-category{align-items:flex-start;gap:10px;display:flex}.tag-cat-label{color:var(--muted);opacity:.8;white-space:nowrap;letter-spacing:-.01em;flex-shrink:0;min-width:64px;padding-top:5px;font-size:11px}.tag-cat-label.clickable{cursor:pointer}.tag-cat-label.clickable:hover{color:var(--text);opacity:1}.tag-cat-tags{flex-wrap:wrap;gap:5px;display:flex}.expand-icon,.expand-icon-sm{color:var(--muted);opacity:.5;margin-left:4px;font-size:10px}.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.clickable:hover{color:var(--text)}.voice-design-tips{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.tips-label{color:var(--muted);opacity:.7;font-size:11px}.tip{background:var(--surface2);color:var(--muted);border:1px solid var(--border-soft);letter-spacing:-.01em;border-radius:999px;padding:3px 10px;font-size:10px;font-weight:500}.footer{text-align:center;color:var(--muted);opacity:.7;letter-spacing:-.02em;border-top:1px solid var(--border-soft);justify-content:center;gap:8px;padding:24px 36px;font-size:12px;display:flex}@media (width<=1200px){.studio-bar-inner{padding:28px 32px 24px}.studio-body{padding:24px 32px 40px}.header{padding:19px 32px}}@media (width<=900px){.studio-grid{grid-template-columns:1fr}.controls-panel{max-height:none;padding-right:0;position:static;overflow:visible}.model-grid{grid-template-columns:1fr;display:grid}.badge{display:none}.studio-bar-inner{flex-direction:column;align-items:flex-start;gap:20px}.studio-meta{align-items:flex-start;width:100%}.ticker-wrap{width:100%}}@media (width<=810px){.studio-bar:before{opacity:.15;transform:rotate(90deg)scale(1.4)}.studio-bar-inner{padding:24px 20px 20px}.studio-body{padding:20px 20px 36px}.header{padding:20px}.voice-grid{grid-template-columns:repeat(2,1fr)}}:root{--bg:#fff;--text:#0a0a0a;--muted:#6b6b6b;--button-bg:#0a0a0a;--button-text:#fff;--border-soft:#00000014;--green:#17c964;--surface:#fff;--surface2:#fbfbfb;--border:#00000014;--text2:#6b6b6b;--accent:#0a0a0a;--accent2:#0a0a0a;--accent-glow:#0000000f;--success:#17c964;--error:#dc2626;--radius:16px;--shadow:0 1px 3px #0000000a;--shadow-lg:0 4px 20px #00000014;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif:"Source Serif 4", Georgia, "Times New Roman", serif}[data-theme=dark]{--bg:#0a0a0a;--text:#fafafa;--muted:#9a9a9a;--button-bg:#fafafa;--button-text:#0a0a0a;--border-soft:#ffffff1a;--green:#17c964;--surface:#141414;--surface2:#1a1a1a;--border:#ffffff1a;--text2:#9a9a9a;--accent:#fafafa;--accent2:#fafafa;--accent-glow:#ffffff14;--success:#17c964;--error:#ef4444;--shadow:0 1px 3px #0000004d;--shadow-lg:0 4px 20px #0006}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;letter-spacing:-.02em;min-height:100vh;transition:background .3s,color .3s}#root{min-height:100vh}.serif{font-family:var(--font-serif)}.italic{font-style:italic}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}@keyframes marquee-left{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes line-pulse{0%{opacity:0;transform:scale(1)}15%{opacity:.9}70%{opacity:.4}to{opacity:0;transform:scale(.85)}}
