File size: 3,525 Bytes
86b351a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c55ccab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86b351a
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
142
143
144
145
146
147
148
# Custom CSS for fullscreen image with overlay
custom_css = """
/* Make the image container fullscreen */
.image-container {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 1 !important;
}

.image-container img {
    width: 100vw !important;
    height: 100vh !important;
    object-fit: cover !important;
}

/* Style the overlay content */
.overlay-content {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    background: linear-gradient(transparent, rgba(0,0,0,0.8)) !important;
    padding: 40px 20px 20px !important;
    z-index: 10 !important;
    color: white !important;
}

/* Style the narrative text */
.narrative-text {
    background: rgba(0,0,0,0.7) !important;
    border: none !important;
    color: white !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
    padding: 20px !important;
    border-radius: 10px !important;
    margin-bottom: 20px !important;
}

img {
    pointer-events: none;
}

.narrative-text textarea {
    background: transparent !important;
    border: none !important;
    color: white !important;
    -webkit-text-fill-color: white !important;
    font-size: 18px !important;
    resize: none !important;
}

/* Style the choice buttons */
.choice-buttons {
    background: rgba(0,0,0,0.7) !important;
    border-radius: 10px !important;
    padding: 15px !important;
}

.choice-buttons label {
    color: white !important;
    font-size: 16px !important;
    margin-bottom: 10px !important;
}

/* Fix radio button backgrounds */
.choice-buttons input[type="radio"] {
    background: transparent !important;
    border: 2px solid white !important;
}

.choice-buttons input[type="radio"]:checked {
    background: white !important;
}

.choice-buttons .form-radio {
    background: transparent !important;
}

/* Style radio button containers */
.choice-buttons > div {
    background: transparent !important;
}

.choice-buttons fieldset {
    background: transparent !important;
    border: none !important;
}

/* Remove any remaining white backgrounds */
.choice-buttons * {
    background-color: transparent !important;
}

.choice-buttons input {
    background-color: transparent !important;
    border: 1px solid rgba(255,255,255,0.5) !important;
    color: white !important;
}

.choice-buttons label span {
    color: white !important;
}

/* Hide gradio header and footer */
.gradio-header, .gradio-footer {
    display: none !important;
}

/* Hide image control buttons using correct DOM selector */
.image-container .icon-button-wrapper {
    display: none !important;
}

.image-container .icon-buttons {
    display: none !important;
}

/* Make form element transparent */
.overlay-content .form {
    background: transparent !important;
}
"""

# CSS for the loading indicator
loading_css_styles = """
#loading-indicator {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8); /* Semi-transparent black */
    /* When Gradio makes this gr.Column visible, it will set display:flex !important; (or similar). */
    /* These properties will then apply to center the content of the Column: */
    justify-content: center;
    align-items: center;
    z-index: 9999; /* Ensure it's on top */
}
#loading-indicator .loading-text { /* Style for the text inside */
    color: white;
    font-size: 2em;
    text-align: center;
}
"""