File size: 10,900 Bytes
e9cf2ae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ecad1cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e9cf2ae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d8542ef
 
 
 
 
 
 
e9cf2ae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/* Palette, spacing and typography carried over from the original studio. */
:root, .gradio-container {
  --bg: #f6f5f3; --card: #fff; --soft: #efede9; --ink: #141414;
  --muted: #6b6b66; --border: #e2e0dc; --card-border: #e8e6e2;
  --moment-bg: #fbe9c4; --moment-ink: #7d4b00;
  --scope-bg: #d9ebfa; --scope-ink: #0b5687;
  --mood-bg: #ebe1fa; --mood-ink: #56289e;
  --body-background-fill: var(--bg); --body-text-color: var(--ink);
  --block-background-fill: var(--card); --input-background-fill: var(--card);
  --border-color-primary: var(--border); --block-border-color: var(--border);
  --button-primary-background-fill: var(--ink); --button-primary-text-color: var(--bg);
  --button-primary-background-fill-hover: #30302d;
  --button-secondary-background-fill: var(--card); --button-secondary-border-color: var(--border);
  --button-secondary-text-color: var(--ink); --button-secondary-background-fill-hover: var(--soft);
  --input-border-color: var(--border); --input-radius: 12px;
  --block-label-text-color: var(--muted); --block-title-text-color: var(--ink);
  --body-text-color-subdued: var(--muted);
  font-family: ui-sans-serif, -apple-system, "Segoe UI", Inter, Roboto, sans-serif !important;
}
.dark, .dark .gradio-container {
  --bg: #161615; --card: #201f1d; --soft: #2a2826; --ink: #f3f2ef;
  --muted: #a8a7a1; --border: #35332f; --card-border: #35332f;
  --moment-bg: #463312; --moment-ink: #ffd68a;
  --scope-bg: #133852; --scope-ink: #a3d4fa;
  --mood-bg: #37245b; --mood-ink: #d9c4ff;
  --button-primary-background-fill-hover: #deddd8;
}
body { background: var(--bg); }
.gradio-container { max-width: 980px !important; margin: auto; padding: 26px 32px 48px !important; }
#studio { gap: 16px; }
.hero { margin: 20px 0 8px; }
.hero h1 { font-size: clamp(30px, 5vw, 46px); font-weight: 800; letter-spacing: -.025em; line-height: 1.08; margin: 0 0 10px; color: var(--ink); }
.hero p { font-size: 15px; line-height: 1.55; color: var(--muted); max-width: 640px; }
.hero p + p { margin-top: 10px; }
.hero strong { color: var(--ink); font-weight: 600; }
.hero-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.spacer { flex: 1; }
.pill { display: inline-flex; align-items: center; gap: 7px; border: 0; border-radius: 999px; background: var(--card); color: var(--ink); font-size: 13px; padding: 5px 14px; text-decoration: none; }
.dot { width: 7px; height: 7px; border-radius: 50%; background: #b7791f; }
.dot.ready { background: #1f9d55; box-shadow: 0 0 0 3px #1f9d5526; }
.account { position: relative; }
.account summary { cursor: pointer; }
.account a { position: absolute; right: 0; z-index: 10; background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 8px 16px; color: var(--ink); }
.card { background: var(--card); border: 1px solid var(--card-border); border-radius: 16px; box-shadow: 0 1px 2px #1414140a; padding: 14px !important; gap: 10px !important; }
.card-head { display: flex; align-items: center; gap: 8px; padding: 0 2px; }
.card-head h2 { font-size: 14px; font-weight: 600; color: var(--ink); }
#app-tabs { border: 0; }
#app-tabs > .tab-nav { margin-bottom: 16px; border: 0; }
#app-tabs > .tabitem { padding: 0; border: 0; background: transparent; }
#app-tabs > .tab-nav button { border-radius: 999px; padding: 7px 18px; color: var(--muted); }
#app-tabs > .tab-nav button.selected { background: var(--card); color: var(--ink); border-color: var(--border); }
#script textarea { font-size: 16px; line-height: 1.6; min-height: 120px; border-radius: 12px; }
.hint, .hint p { color: var(--muted); font-size: 12.5px; }
.examples { flex-wrap: wrap !important; gap: 6px !important; }
.examples button { flex: 0 1 auto; border-radius: 999px; padding: 3px 11px; font-size: 12.5px; height: 29px; min-height: 29px; font-weight: 500; }
/* Direction tags: always visible, inline and wrapping. A group (label + chips) moves
   to the next line as a whole, then wraps inside when it is wider than the card. */
.gradio-container #direction-tags { flex-wrap: wrap !important; align-items: flex-start; justify-content: flex-start; gap: 6px 14px !important; }
.gradio-container #direction-tags > .tag-group { flex: 0 1 auto !important; width: auto !important; min-width: 0 !important; flex-wrap: wrap !important; align-items: center; justify-content: flex-start; gap: 4px !important; }
.gradio-container #direction-tags .tag-group > * { flex: 0 0 auto !important; width: auto !important; min-width: 0 !important; }
.gradio-container #direction-tags .html-container { padding: 0 !important; }
#direction-tags .plabel { display: block; padding: 0 2px; font-size: 10.5px; font-weight: 700; letter-spacing: .05em; line-height: 24px; text-transform: uppercase; color: var(--muted); }
.gradio-container #direction-tags button.chip { height: 24px; min-height: 24px; padding: 0 9px; border: 0; border-radius: 999px; font-size: 12px; font-weight: 500; line-height: 1; white-space: nowrap; }
#direction-tags button.chip.point { background: var(--moment-bg); color: var(--moment-ink); }
#direction-tags button.chip.scope { background: var(--scope-bg); color: var(--scope-ink); }
#direction-tags button.chip.mood { background: var(--mood-bg); color: var(--mood-ink); }
#direction-tags button.chip:hover { filter: brightness(.96); }
.gradio-container #tag-hint { margin-top: -4px; }
.gradio-container #tag-hint p { margin: 0; font-size: 12px; }
.gradio-container #tag-hint code { padding: 0 3px; border: 0; font-size: 11px; }
#voice-mode .wrap { display: flex; flex-wrap: nowrap; background: var(--soft); border-radius: 999px; padding: 3px; gap: 3px; }
#voice-mode label { flex: 1; justify-content: center; border: 0; border-radius: 999px; background: transparent; padding: 7px 6px; }
#voice-mode input, #voice-presets input { position: absolute; opacity: 0; width: 1px; height: 1px; }
#voice-mode label.selected, #voice-mode label:has(input:checked) { background: var(--card); box-shadow: 0 1px 2px #14141414; }
#voice-presets label { border-radius: 999px; padding: 4px 12px; font-size: 12.5px; }
#voice-presets label.selected, #voice-presets label:has(input:checked) { background: var(--ink); color: var(--bg); }
#perform { border-radius: 999px; padding: 13px 20px; font-size: 16px; min-height: 50px; }
.direct h3 { font-size: 14px; margin-top: 8px; }
.boot { background: var(--card); border: 1px solid var(--border); border-radius: 16px; padding: 16px; }
.boot p { color: var(--muted); font-size: 13px; margin-top: 4px; }
.links { display: flex; gap: 8px; flex-wrap: wrap; }
.links a { border: 1px solid var(--border); border-radius: 999px; padding: 6px 14px; font-size: 13px; text-decoration: none; color: var(--ink); }
.links a:hover { border-color: var(--ink); }
.credits, .fine { color: var(--muted); font-size: 12px; line-height: 1.6; }
.credits p { margin-top: 8px; }
code { background: var(--soft); padding: 0 4px; border-radius: 5px; }
@media (max-width: 640px) {
  .gradio-container { padding: 16px 12px 32px !important; }
  .hero { margin-top: 8px; }
  .card { padding: 12px !important; }
  #voice-mode label { font-size: 12px; }
}
.gradio-container #topbar { align-items: center; gap: 8px; }
.gradio-container #theme-toggle { border: 0; border-radius: 50%; width: 32px; height: 32px; min-height: 32px; padding: 0; background: var(--card); color: var(--ink); }
.gradio-container .examples button { background: var(--card); border: 1px solid var(--border); color: var(--ink); }
/* Examples: heading without the HTML block's vertical padding, closer to shorter
   buttons. No .gradio-container prefix: Gradio scopes these rules itself, and the
   scoped copy must outrank the .examples rules above. */
.examples-title .html-container { padding-top: 0 !important; padding-bottom: 0 !important; }
.examples-title { margin-bottom: -2px; }
.script-examples { gap: 5px !important; }
.script-examples button { height: 26px; min-height: 26px; padding: 0 10px; font-size: 12px; }
.gradio-container .card-head h2 { margin: 0; }
.gradio-container .card .hide-container { padding: 0; }
.gradio-container #app-tabs > div[role="tablist"] { margin-bottom: 16px; border: 0; }
.gradio-container #app-tabs > div[role="tablist"] button { border-radius: 999px; padding: 7px 18px; }
.gradio-container #app-tabs > div[role="tablist"] button[aria-selected="true"] { background: var(--card); color: var(--ink); border: 1px solid var(--border); }
.gradio-container .drama-script-mirror { position: absolute; pointer-events: none; white-space: pre-wrap; overflow-wrap: break-word; overflow: hidden; color: var(--ink); background: transparent; box-sizing: border-box; }
.drama-script-mirror .h-point { background: var(--moment-bg); color: var(--moment-ink); border-radius: 4px; }
.drama-script-mirror .h-tag { background: var(--scope-bg); color: var(--scope-ink); border-radius: 4px; }
.drama-script-mirror .h-style { background: var(--mood-bg); color: var(--mood-ink); border-radius: 4px; }
.drama-script-mirror .h-note { background: #e3f1e3; color: #2a662d; border-radius: 4px; }
.dark .drama-script-mirror .h-note { background: #1e3a20; color: #b5e3b7; }
#script textarea.drama-highlighted { color: transparent !important; caret-color: var(--ink); }
#script textarea.drama-highlighted::selection { background: #7878ff47; color: transparent; }
.gradio-container .drama-script-mirror { z-index: 2; }
.gradio-container #app-tabs .tab-nav { margin-bottom: 16px; border-bottom: 0; }
.gradio-container #app-tabs .tab-nav button[role="tab"] { border-radius: 999px; }
.gradio-container #app-tabs .tab-nav button[aria-selected="true"] { background: var(--card); border: 1px solid var(--border); }
/* Gradio scopes media rules to .contain, so responsive padding belongs to the
   inner studio instead of .gradio-container. Remove the native outer padding. */
.gradio-container { padding: 0 !important; }
.gradio-container .main { padding: 0 !important; width: 100%; }
#studio { padding: 26px 32px 48px; }
@media (max-width: 640px) { #studio { padding: 16px 12px 32px; } }
.gradio-container #voice-presets label { border: 1px solid var(--border); }
/* The stage is a custom Gradio HTML component, with the original player styling. */
#studio:not([data-stage-busy="true"]):not([data-stage-playing="true"]) #stop { display: none; }
#stop { border-radius: 999px; min-height: 50px; }
#the-stage:not(.has-take) .stage-direct { display: none; }

/* Keep the resources in the introduction, before the studio. */
.resource-links { gap: 8px; margin: 0 0 6px; }
.resource-links a { display: inline-flex; align-items: center; min-height: 40px; padding: 9px 16px; background: var(--card); font-size: 14px; font-weight: 600; }
.credits { font-size: 13px; }
.credits h2 { margin: 0 0 10px; color: var(--ink); font-size: 16px; font-weight: 650; }
@media (max-width: 640px) {
  .resource-links { gap: 7px; }
  .resource-links a { min-height: 40px; padding: 8px 12px; font-size: 13px; }
}