yoon2566 commited on
Commit
ffe28b2
Β·
verified Β·
1 Parent(s): 64f0781

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +395 -19
index.html CHANGED
@@ -1,19 +1,395 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>λ‘œλ§ˆμ„œ 8μž₯ 암솑 λ„μš°λ―Έ (3개 블둝 κ³ μ •)</title>
7
+ <style>
8
+ /* κΈ°λ³Έ μŠ€νƒ€μΌ */
9
+ body {
10
+ background-color: #000; /* 검은 λ°°κ²½ */
11
+ color: #FFFFFF; /* κΈ°λ³Έ κΈ€μžμƒ‰ (파트 μƒ‰μƒμœΌλ‘œ λŒ€μ²΄λ˜λ―€λ‘œ 크게 의미 μ—†μŒ) */
12
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
13
+ margin: 0;
14
+ padding: 20px;
15
+ line-height: 1.6;
16
+ overflow-y: auto; /* λ‚΄μš©μ΄ 길어도 슀크둀 κ°€λŠ₯ν•˜κ²Œ */
17
+ -webkit-overflow-scrolling: touch; /* λͺ¨λ°”일 슀크둀 λΆ€λ“œλŸ½κ²Œ */
18
+ word-break: keep-all; /* 단어 쀑간에 μ€„λ°”κΏˆ λ°©μ§€ (ν•œκΈ€μ— 적합) */
19
+ }
20
+
21
+ h1 {
22
+ text-align: center;
23
+ margin-bottom: 15px; /* 컨트둀과의 간격 */
24
+ color: #FFFF00; /* λ…Έλž€μƒ‰ 제λͺ© */
25
+ font-size: 1.8em;
26
+ }
27
+
28
+ /* 절 μ»¨ν…Œμ΄λ„ˆ μŠ€νƒ€μΌ (ν•˜λ‚˜μ”©λ§Œ 보이도둝) */
29
+ .verse {
30
+ display: none; /* κΈ°λ³Έμ μœΌλ‘œλŠ” μˆ¨κΉ€ */
31
+ margin-top: 20px; /* 컨트둀과의 간격 */
32
+ margin-bottom: 30px;
33
+ }
34
+
35
+ .verse.active {
36
+ display: block; /* ν™œμ„±ν™”λœ 절만 λ³΄μž„ */
37
+ }
38
+
39
+ .verse-number {
40
+ font-weight: bold;
41
+ margin-bottom: 15px;
42
+ display: block;
43
+ font-size: 1.2em;
44
+ color: #FFFF00; /* 절 λ²ˆν˜ΈλŠ” λ…Έλž€μƒ‰ */
45
+ text-align: center;
46
+ }
47
+
48
+ /* 파트 전체λ₯Ό λ‹΄λŠ” μ»¨ν…Œμ΄λ„ˆ (Flexbox둜 μ€„λ°”κΏˆ 처리) */
49
+ .parts-container {
50
+ display: flex;
51
+ flex-wrap: wrap; /* λ‚΄μš©μ΄ λ„˜μΉ˜λ©΄ μžλ™μœΌλ‘œ λ‹€μŒ μ€„λ‘œ 이동 */
52
+ gap: 10px; /* 파트 κ°„ 간격 */
53
+ justify-content: center; /* νŒŒνŠΈλ“€μ„ 쀑앙 μ •λ ¬ */
54
+ }
55
+
56
+ /* 파트 블둝 μŠ€νƒ€μΌ */
57
+ .part {
58
+ background-color: #333; /* μ–΄λ‘μš΄ νšŒμƒ‰ λ°°κ²½ */
59
+ color: #333; /* 클릭 μ „ κΈ€μžμƒ‰ (배경색과 λ™μΌν•˜μ—¬ μˆ¨κΉ€) */
60
+ padding: 12px 8px;
61
+ border-radius: 5px;
62
+ cursor: pointer; /* 클릭 κ°€λŠ₯ ν‘œμ‹œ */
63
+ text-align: center;
64
+ box-sizing: border-box; /* νŒ¨λ”©κ³Ό 보더λ₯Ό λ„ˆλΉ„μ— 포함 */
65
+ white-space: normal; /* ν…μŠ€νŠΈ 길이에 따라 μ€„λ°”κΏˆ ν—ˆμš© */
66
+
67
+ /* λͺ¨λ“  ν™”λ©΄ ν¬κΈ°μ—μ„œ 3κ°œμ”© ν•œ 쀄에 μ˜€λ„λ‘ λ„ˆλΉ„ μ„€μ • */
68
+ /* flex-grow: 0, flex-shrink: 0 으둜 크기 κ³ μ • */
69
+ flex: 0 0 calc(33.33% - 10px); /* 1/3 λ„ˆλΉ„μ—μ„œ 간격 10px을 λΊ€ κ°’ */
70
+ min-width: 50px; /* λ„ˆλ¬΄ μž‘μ•„μ§€λŠ” 것 λ°©μ§€ (μ΅œμ†Œ 크기 μ„€μ •) */ /* 이 값보닀 화면이 μž‘μ•„μ§€λ©΄ 3개 μœ μ§€κ°€ μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€. */
71
+
72
+ transition: background-color 0.2s, color 0.2s, font-weight 0.1s; /* 색상, λ°°κ²½, κ΅΅κΈ° λ³€κ²½ μ• λ‹ˆλ©”μ΄μ…˜ */
73
+ }
74
+
75
+
76
+ /* 클릭된 파트 μŠ€νƒ€μΌ (항상 λ…Έλž€μƒ‰μœΌλ‘œ λ³€κ²½ 및 λ°°κ²½ κ°•μ‘°) */
77
+ .part.active {
78
+ color: #FFFF00; /* 클릭된 νŒŒνŠΈλŠ” λ…Έλž€μƒ‰ */
79
+ background-color: #555; /* 클릭 μ‹œ μ•½κ°„ 밝은 νšŒμƒ‰ λ°°κ²½ */
80
+ font-weight: bold; /* 클릭된 단어 κ°•μ‘° */
81
+ }
82
+
83
+ /* 컨트둀 λ²„νŠΌ 및 μŠ¬λΌμ΄λ” μ»¨ν…Œμ΄λ„ˆ μŠ€νƒ€μΌ */
84
+ .controls {
85
+ text-align: center;
86
+ margin-bottom: 20px; /* 절 λ‚΄μš©κ³Όμ˜ 간격 */
87
+ /* λ‚΄λΆ€ μš”μ†Œ 정렬을 μœ„ν•΄ flexbox μ‚¬μš© */
88
+ display: flex;
89
+ justify-content: center; /* 쀑앙 μ •λ ¬ */
90
+ align-items: center; /* μ„Έλ‘œ 쀑앙 μ •λ ¬ */
91
+ flex-wrap: wrap; /* 곡간 λΆ€μ‘± μ‹œ λ‹€μŒ μ€„λ‘œ 이동 */
92
+ gap: 15px; /* 컨트둀 μš”μ†Œ κ°„ 간격 */
93
+ }
94
+
95
+ /* μŠ¬λΌμ΄λ” 및 라벨 μŠ€νƒ€μΌ */
96
+ .rate-control {
97
+ display: flex; /* 라벨과 μŠ¬λΌμ΄λ”λ₯Ό κ°€λ‘œλ‘œ 배치 */
98
+ align-items: center;
99
+ gap: 5px; /* 라벨과 μŠ¬λΌμ΄λ” κ°„ 간격 */
100
+ color: #AAAAAA; /* 라벨 색상 */
101
+ font-size: 0.9em;
102
+ }
103
+
104
+ /* μŠ¬λΌμ΄λ” 자체 μŠ€νƒ€μΌ (λΈŒλΌμš°μ €λ³„ μŠ€νƒ€μΌ μž¬μ •μ˜ ν•„μš”) */
105
+ input[type="range"] {
106
+ -webkit-appearance: none; /* κΈ°λ³Έ μŠ€νƒ€μΌ 제거 */
107
+ appearance: none;
108
+ width: 120px; /* μŠ¬λΌμ΄λ” λ„ˆλΉ„ */
109
+ height: 5px; /* μŠ¬λΌμ΄λ” νŠΈλž™ 높이 */
110
+ background: #555; /* νŠΈλž™ 배경색 */
111
+ outline: none;
112
+ opacity: 0.7;
113
+ transition: opacity .2s;
114
+ border-radius: 5px;
115
+ }
116
+
117
+ input[type="range"]:hover {
118
+ opacity: 1;
119
+ }
120
+
121
+ /* μŠ¬λΌμ΄λ” 썸(thumb) μŠ€νƒ€μΌ */
122
+ input[type="range"]::-webkit-slider-thumb {
123
+ -webkit-appearance: none;
124
+ appearance: none;
125
+ width: 15px;
126
+ height: 15px;
127
+ background: #FFFF00; /* λ…Έλž€μƒ‰ 썸 */
128
+ cursor: pointer;
129
+ border-radius: 50%; /* μ›ν˜• */
130
+ }
131
+
132
+ input[type="range"]::-moz-range-thumb {
133
+ width: 15px;
134
+ height: 15px;
135
+ background: #FFFF00; /* λ…Έλž€μƒ‰ 썸 */
136
+ cursor: pointer;
137
+ border-radius: 50%; /* μ›ν˜• */
138
+ }
139
+
140
+ .controls button {
141
+ padding: 12px 20px; /* λ²„νŠΌ νŒ¨λ”© μ‘°μ • */
142
+ background-color: #555; /* μ–΄λ‘μš΄ νšŒμƒ‰ λ°°κ²½ */
143
+ color: #FFFF00; /* λ…Έλž€ κΈ€μž */
144
+ border: none;
145
+ border-radius: 5px;
146
+ cursor: pointer;
147
+ font-size: 0.9em; /* λ²„νŠΌ κΈ€μž 크기 μ‘°μ • */
148
+ transition: background-color 0.2s;
149
+ -webkit-appearance: none; /* λͺ¨λ°”일 κΈ°λ³Έ λ²„νŠΌ μŠ€νƒ€μΌ 제거 */
150
+ appearance: none;
151
+ }
152
+
153
+ .controls button:hover:not(:disabled) {
154
+ background-color: #777; /* ν˜Έλ²„ μ‹œ μ•½κ°„ 밝게 */
155
+ }
156
+
157
+ .controls button:disabled {
158
+ opacity: 0.5; /* λΉ„ν™œμ„±ν™” μ‹œ 흐리게 */
159
+ cursor: not-allowed;
160
+ }
161
+
162
+ /* λͺ¨λ°”일 μ΅œμ ν™” - ν•„μš”ν•œ λΆ€λΆ„λ§Œ μ‘°μ • (3개 블둝 λ ˆμ΄μ•„μ›ƒμ€ CSS Flexbox에 λ§‘κΉ€) */
163
+ @media (max-width: 768px) {
164
+ body { padding: 15px; }
165
+ h1 { font-size: 1.7em; margin-bottom: 10px; }
166
+ .verse-number { font-size: 1.1em; }
167
+ .controls {
168
+ gap: 10px; /* 컨트둀 μš”μ†Œ κ°„ 간격 μ€„μž„ */
169
+ }
170
+ .controls button { padding: 10px 18px; font-size: 0.85em; }
171
+ input[type="range"] { width: 100px; }
172
+ .part {
173
+ /* λͺ¨λ°”μΌμ—μ„œλ„ 3κ°œμ”© μœ μ§€ */
174
+ flex: 0 0 calc(33.33% - 10px);
175
+ padding: 10px 6px;
176
+ min-width: 50px; /* μ΅œμ†Œ λ„ˆλΉ„λŠ” μœ μ§€ λ˜λŠ” ν•„μš”μ‹œ μ‘°μ • */
177
+ }
178
+ .parts-container { gap: 10px; } /* 파트 μ»¨ν…Œμ΄λ„ˆ 간격 */
179
+ }
180
+
181
+ @media (max-width: 480px) { /* μž‘μ€ λͺ¨λ°”일 */
182
+ body { padding: 10px; }
183
+ h1 { font-size: 1.5em; margin-bottom: 8px; }
184
+ .verse-number { font-size: 1em; }
185
+ .controls {
186
+ flex-direction: column; /* μ„Έλ‘œ μ •λ ¬ */
187
+ gap: 8px;
188
+ }
189
+ .controls button { padding: 8px 15px; font-size: 0.8em; width: 80%;} /* λ²„νŠΌ μ„Έλ‘œ μ •λ ¬ 및 λ„ˆλΉ„ μ‘°μ • */
190
+ .rate-control {
191
+ width: 80%; /* μŠ¬λΌμ΄λ” μ˜μ—­ λ„ˆλΉ„ μ‘°μ • */
192
+ justify-content: space-between; /* 라벨과 μŠ¬λΌμ΄λ” μ–‘ 끝 μ •λ ¬ */
193
+ }
194
+ input[type="range"] { width: 60%; } /* μŠ¬λΌμ΄λ” λ„ˆλΉ„ μ‘°μ • */
195
+ .part {
196
+ /* 더 μž‘μ€ λͺ¨λ°”μΌμ—μ„œλ„ 3κ°œμ”© μœ μ§€ */
197
+ flex: 0 0 calc(33.33% - 8px); /* 간격 μ‘°μ • */
198
+ padding: 8px 5px; /* νŒ¨λ”© μ‘°μ • */
199
+ min-width: 45px; /* μ΅œμ†Œ λ„ˆλΉ„ 더 쀄이기 */
200
+ font-size: 0.9em; /* κΈ€μž 크기 쀄이기 */
201
+ }
202
+ .parts-container { gap: 8px; }
203
+ }
204
+
205
+
206
+ </style>
207
+ </head>
208
+ <body>
209
+ <h1>λ‘œλ§ˆμ„œ 8μž₯</h1>
210
+
211
+ <div class="controls">
212
+ <button id="prev-verse">이전 절</button>
213
+ <button id="next-verse">λ‹€μŒ 절</button>
214
+ <div class="rate-control">
215
+ <label for="rate-slider">속도:</label>
216
+ <input type="range" id="rate-slider" min="0.5" max="2.0" step="0.1" value="1.0">
217
+ </div>
218
+ </div>
219
+
220
+ <div id="verse-display">
221
+ <!-- 여기에 JavaScript둜 절 λ‚΄μš©μ΄ λ‘œλ“œλ©λ‹ˆλ‹€. -->
222
+ </div>
223
+
224
+
225
+ <script>
226
+ // λ‘œλ§ˆμ„œ 8μž₯ μ „λ¬Έ (μ œκ³΅ν•΄μ£Όμ‹  ν…μŠ€νŠΈ - 각 절이 ν•˜λ‚˜μ˜ λ¬Έμžμ—΄)
227
+ const verses = [
228
+ "κ·ΈλŸ¬λ―€λ‘œ 이제 κ·Έλ¦¬μŠ€λ„ 예수 μ•ˆμ— μžˆλŠ” μžμ—κ²ŒλŠ” κ²°μ½” 정죄함이 μ—†λ‚˜λ‹ˆ", // 1
229
+ "μ΄λŠ” κ·Έλ¦¬μŠ€λ„ 예수 μ•ˆμ— μžˆλŠ” 생λͺ…μ˜ μ„±λ Ήμ˜ 법이 죄와 μ‚¬λ§μ˜ λ²•μ—μ„œ λ„ˆλ₯Ό ν•΄λ°©ν•˜μ˜€μŒμ΄λΌ", // 2
230
+ "μœ¨λ²•μ΄ μœ‘μ‹ μœΌλ‘œ 말미암아 μ—°μ•½ν•˜μ—¬ ν•  수 μ—†λŠ” 그것을 ν•˜λ‚˜λ‹˜μ€ ν•˜μ‹œλ‚˜λ‹ˆ κ³§ μ£„λ‘œ 말미암아 자기 아듀을 죄 μžˆλŠ” μœ‘μ‹ μ˜ λͺ¨μ–‘μœΌλ‘œ 보내어 μœ‘μ‹ μ— 죄λ₯Ό μ •ν•˜μ‚¬", // 3
231
+ "μœ‘μ‹ μ„ λ”°λ₯΄μ§€ μ•Šκ³  κ·Έ μ˜μ„ 따라 ν–‰ν•˜λŠ” μš°λ¦¬μ—κ²Œ μœ¨λ²•μ˜ μš”κ΅¬κ°€ μ΄λ£¨μ–΄μ§€κ²Œ ν•˜λ € ν•˜μ‹¬μ΄λΌ", // 4
232
+ "μœ‘μ‹ μ„ λ”°λ₯΄λŠ” μžλŠ” μœ‘μ‹ μ˜ 일을, μ˜μ„ λ”°λ₯΄λŠ” μžλŠ” 영의 일을 μƒκ°ν•˜λ‚˜λ‹ˆ", // 5
233
+ "μœ‘μ‹ μ˜ 생각은 μ‚¬λ§μ΄μš” 영의 생각은 생λͺ…κ³Ό ν‰μ•ˆμ΄λ‹ˆλΌ", // 6
234
+ "μœ‘μ‹ μ˜ 생각은 ν•˜λ‚˜λ‹˜κ³Ό μ›μˆ˜κ°€ λ˜λ‚˜λ‹ˆ μ΄λŠ” ν•˜λ‚˜λ‹˜μ˜ 법에 κ΅΄λ³΅ν•˜μ§€ μ•„λ‹ˆν•  뿐 μ•„λ‹ˆλΌ ν•  μˆ˜λ„ μ—†μŒμ΄λΌ", // 7
235
+ "μœ‘μ‹ μ— μžˆλŠ” μžλ“€μ€ ν•˜λ‚˜λ‹˜μ„ κΈ°μ˜μ‹œκ²Œ ν•  수 μ—†λŠλ‹ˆλΌ", // 8
236
+ "만일 λ„ˆν¬ 속에 ν•˜λ‚˜λ‹˜μ˜ 영이 κ±°ν•˜μ‹œλ©΄ λ„ˆν¬κ°€ μœ‘μ‹ μ— μžˆμ§€ μ•„λ‹ˆν•˜κ³  μ˜μ— μžˆλ‚˜λ‹ˆ λˆ„κ΅¬λ“ μ§€ κ·Έλ¦¬μŠ€λ„μ˜ 영이 μ—†μœΌλ©΄ κ·Έλ¦¬μŠ€λ„μ˜ μ‚¬λžŒμ΄ μ•„λ‹ˆλΌ", // 9
237
+ "또 κ·Έλ¦¬μŠ€λ„κ»˜μ„œ λ„ˆν¬ μ•ˆμ— κ³„μ‹œλ©΄ λͺΈμ€ μ£„λ‘œ 말미암아 죽은 κ²ƒμ΄λ‚˜ μ˜μ€ 의둜 말미암아 μ‚΄μ•„ μžˆλŠ” κ²ƒμ΄λ‹ˆλΌ", // 10
238
+ "예수λ₯Ό 죽은 자 κ°€μš΄λ°μ„œ 살리신 이의 영이 λ„ˆν¬ μ•ˆμ— κ±°ν•˜μ‹œλ©΄ κ·Έλ¦¬μŠ€λ„ 예수λ₯Ό 죽은 자 κ°€μš΄λ°μ„œ 살리신 이가 λ„ˆν¬ μ•ˆμ— κ±°ν•˜μ‹œλŠ” 그의 영으둜 말미암아 λ„ˆν¬ 죽을 λͺΈλ„ μ‚΄λ¦¬μ‹œλ¦¬λΌ", // 11
239
+ "κ·ΈλŸ¬λ―€λ‘œ ν˜•μ œλ“€μ•„, μš°λ¦¬κ°€ λΉšμ§„ 자둜되 μœ‘μ‹ μ—κ²Œ μ Έμ„œ μœ‘μ‹ λŒ€λ‘œ μ‚΄ 것이 μ•„λ‹ˆλ‹ˆλΌ", // 12
240
+ "λ„ˆν¬κ°€ μœ‘μ‹ λŒ€λ‘œ μ‚΄λ©΄ λ°˜λ“œμ‹œ 죽을 κ²ƒμ΄λ‘œλ˜ μ˜μœΌλ‘œμ„œ λͺΈμ˜ 행싀을 죽이면 μ‚΄λ¦¬λ‹ˆ", // 13
241
+ "무릇 ν•˜λ‚˜λ‹˜μ˜ 영으둜 인도함을 λ°›λŠ” μ‚¬λžŒμ€ κ³§ ν•˜λ‚˜λ‹˜μ˜ 아듀이라", // 14
242
+ "λ„ˆν¬λŠ” λ‹€μ‹œ λ¬΄μ„œμ›Œν•˜λŠ” μ’…μ˜ μ˜μ„ λ°›μ§€ μ•„λ‹ˆν•˜κ³  μ–‘μžμ˜ μ˜μ„ λ°›μ•˜μœΌλ―€λ‘œ μš°λ¦¬κ°€ μ•„λΉ  아버지라고 λΆ€λ₯΄μ§–λŠλ‹ˆλΌ", // 15
243
+ "성령이 친히 우리의 영과 λ”λΆˆμ–΄ μš°λ¦¬κ°€ ν•˜λ‚˜λ‹˜μ˜ μžλ…€μΈ 것을 μ¦μ–Έν•˜μ‹œλ‚˜λ‹ˆ", // 16
244
+ "μžλ…€μ΄λ©΄ λ˜ν•œ 후사 κ³§ ν•˜λ‚˜λ‹˜μ˜ ν›„μ‚¬μš” κ·Έλ¦¬μŠ€λ„μ™€ ν•¨κ»˜ν•œ ν›„μ‚¬λ‹ˆ μš°λ¦¬κ°€ 그와 ν•¨κ»˜ μ˜κ΄‘μ„ λ°›κΈ° μœ„ν•˜μ—¬ κ³ λ‚œλ„ ν•¨κ»˜ λ°›μ•„μ•Ό ν•  κ²ƒμ΄λ‹ˆλΌ", // 17
245
+ "μƒκ°ν•˜κ±΄λŒ€ ν˜„μž¬μ˜ κ³ λ‚œμ€ μž₯μ°¨ μš°λ¦¬μ—κ²Œ λ‚˜νƒ€λ‚  μ˜κ΄‘κ³Ό 비ꡐ할 수 없도닀", // 18
246
+ "피쑰물이 κ³ λŒ€ν•˜λŠ” λ°”λŠ” ν•˜λ‚˜λ‹˜μ˜ 아듀듀이 λ‚˜νƒ€λ‚˜λŠ” κ²ƒμ΄λ‹ˆ", // 19
247
+ "피쑰물이 ν—ˆλ¬΄ν•œλ° κ΅΄λ³΅ν•˜λŠ” 것은 자기 뜻이 μ•„λ‹ˆμš” 였직 κ΅΄λ³΅ν•˜κ²Œ ν•˜μ‹  이둜 λ§λ―Έμ•”μŒμ΄λΌ", // 20
248
+ "κ·Έ λ°”λΌλŠ” 것은 피쑰물도 μ©μ–΄μ§μ˜ 쒅노릇 ν•œ λ°μ„œ ν•΄λ°©λ˜μ–΄ ν•˜λ‚˜λ‹˜μ˜ μžλ…€λ“€μ˜ μ˜κ΄‘μ˜ μžμœ μ— 이λ₯΄λŠ” κ²ƒμ΄λ‹ˆλΌ", // 21
249
+ "피쑰물이 λ‹€ μ΄μ œκΉŒμ§€ ν•¨κ»˜ νƒ„μ‹ν•˜λ©° ν•¨κ»˜ 고톡을 κ²ͺκ³  μžˆλŠ” 것을 μš°λ¦¬κ°€ μ•„λŠλ‹ˆλΌ", // 22
250
+ "그뿐 μ•„λ‹ˆλΌ λ˜ν•œ 우리 κ³§ μ„±λ Ήμ˜ 처음 읡은 μ—΄λ§€λ₯Ό 받은 μš°λ¦¬κΉŒμ§€λ„ μ†μœΌλ‘œ νƒ„μ‹ν•˜μ—¬ μ–‘μž 될 것 κ³§ 우리 λͺΈμ˜ μ†λŸ‰μ„ κΈ°λ‹€λ¦¬λŠλ‹ˆλΌ", // 23
251
+ "μš°λ¦¬κ°€ μ†Œλ§μœΌλ‘œ ꡬ원을 μ–»μ—ˆμœΌλ§€ λ³΄μ΄λŠ” μ†Œλ§μ΄ μ†Œλ§μ΄ μ•„λ‹ˆλ‹ˆ λ³΄λŠ” 것을 λˆ„κ°€ λ°”λΌλ¦¬μš”", // 24
252
+ "만일 μš°λ¦¬κ°€ 보지 λͺ»ν•˜λŠ” 것을 바라면 참음으둜 κΈ°λ‹€λ¦΄μ§€λ‹ˆλΌ", // 25
253
+ "이와 같이 성령도 우리의 연약함을 λ„μš°μ‹œλ‚˜λ‹ˆ μš°λ¦¬λŠ” λ§ˆλ•…νžˆ 기도할 λ°”λ₯Ό μ•Œμ§€ λͺ»ν•˜λ‚˜ 였직 성령이 말할 수 μ—†λŠ” νƒ„μ‹μœΌλ‘œ 우리λ₯Ό μœ„ν•˜μ—¬ 친히 κ°„κ΅¬ν•˜μ‹œλŠλ‹ˆλΌ", // 26
254
+ "λ§ˆμŒμ„ μ‚΄ν”Όμ‹œλŠ” 이가 μ„±λ Ήμ˜ 생각을 μ•„μ‹œλ‚˜λ‹ˆ μ΄λŠ” 성령이 ν•˜λ‚˜λ‹˜μ˜ λœ»λŒ€λ‘œ 성도λ₯Ό μœ„ν•˜μ—¬ κ°„κ΅¬ν•˜μ‹¬μ΄λ‹ˆλΌ", // 27
255
+ "μš°λ¦¬κ°€ μ•Œκ±°λ‹ˆμ™€ ν•˜λ‚˜λ‹˜μ„ μ‚¬λž‘ν•˜λŠ” 자 κ³§ 그의 λœ»λŒ€λ‘œ λΆ€λ₯΄μ‹¬μ„ μž…μ€ μžλ“€μ—κ²ŒλŠ” λͺ¨λ“  것이 ν•©λ ₯ν•˜μ—¬ 선을 μ΄λ£¨λŠλ‹ˆλΌ", // 28
256
+ "ν•˜λ‚˜λ‹˜μ΄ 미리 μ•„μ‹  μžλ“€μ„ λ˜ν•œ κ·Έ μ•„λ“€μ˜ ν˜•μƒμ„ λ³Έλ°›κ²Œ ν•˜κΈ° μœ„ν•˜μ—¬ 미리 μ •ν•˜μ…¨μœΌλ‹ˆ μ΄λŠ” 그둜 λ§Žμ€ ν˜•μ œ μ€‘μ—μ„œ 맏아듀이 되게 ν•˜λ € ν•˜μ‹¬μ΄λ‹ˆλΌ", // 29
257
+ "또 미리 μ •ν•˜μ‹  그듀을 λ˜ν•œ λΆ€λ₯΄μ‹œκ³  λΆ€λ₯΄μ‹  그듀을 λ˜ν•œ μ˜λ‘­λ‹€ ν•˜μ‹œκ³  μ˜λ‘­λ‹€ ν•˜μ‹  그듀을 λ˜ν•œ μ˜ν™”λ‘­κ²Œ ν•˜μ…¨λŠλ‹ˆλΌ", // 30
258
+ "κ·ΈλŸ°μ¦‰ 이 일에 λŒ€ν•˜μ—¬ μš°λ¦¬κ°€ 무슨 말을 ν•˜λ¦¬μš” 만일 ν•˜λ‚˜λ‹˜μ΄ 우리λ₯Ό μœ„ν•˜μ‹œλ©΄ λˆ„κ°€ 우리λ₯Ό λŒ€μ ν•˜λ¦¬μš”", // 31
259
+ "자기 아듀을 아끼지 μ•„λ‹ˆν•˜μ‹œκ³  우리 λͺ¨λ“  μ‚¬λžŒμ„ μœ„ν•˜μ—¬ λ‚΄μ£Όμ‹  이가 μ–΄μ°Œ κ·Έ μ•„λ“€κ³Ό ν•¨κ»˜ λͺ¨λ“  것을 μš°λ¦¬μ—κ²Œ μ£Όμ‹œμ§€ μ•„λ‹ˆν•˜κ² λŠλƒ", // 32
260
+ "λˆ„κ°€ λŠ₯히 ν•˜λ‚˜λ‹˜κ»˜μ„œ νƒν•˜μ‹  μžλ“€μ„ κ³ λ°œν•˜λ¦¬μš” μ˜λ‘­λ‹€ ν•˜μ‹  μ΄λŠ” ν•˜λ‚˜λ‹˜μ΄μ‹œλ‹ˆ", // 33
261
+ "λˆ„κ°€ μ •μ£„ν•˜λ¦¬μš” μ£½μœΌμ‹€ 뿐 μ•„λ‹ˆλΌ λ‹€μ‹œ μ‚΄μ•„λ‚˜μ‹  μ΄λŠ” κ·Έλ¦¬μŠ€λ„ μ˜ˆμˆ˜μ‹œλ‹ˆ κ·ΈλŠ” ν•˜λ‚˜λ‹˜ μš°νŽΈμ— 계신 μžμš” 우리λ₯Ό μœ„ν•˜μ—¬ κ°„κ΅¬ν•˜μ‹œλŠ” μžμ‹ μ΄λΌ", // 34
262
+ "λˆ„κ°€ 우리λ₯Ό κ·Έλ¦¬μŠ€λ„μ˜ μ‚¬λž‘μ—μ„œ λŠμœΌλ¦¬μš” ν™˜λ‚œμ΄λ‚˜ κ³€κ³ λ‚˜ λ°•ν•΄λ‚˜ κΈ°κ·Όμ΄λ‚˜ μ μ‹ μ΄λ‚˜ μœ„ν—˜μ΄λ‚˜ 칼이랴", // 35
263
+ "기둝된 λ°” μš°λ¦¬κ°€ 쒅일 μ£Όλ₯Ό μœ„ν•˜μ—¬ μ£½μž„μ„ λ‹Ήν•˜κ²Œ 되며 도살당할 양같이 여김을 λ°›μ•˜λ‚˜μ΄λ‹€ 함과 κ°™μœΌλ‹ˆλΌ", // 36
264
+ "κ·ΈλŸ¬λ‚˜ 이 λͺ¨λ“  일에 우리λ₯Ό μ‚¬λž‘ν•˜μ‹œλŠ” 이둜 말미암아 μš°λ¦¬κ°€ λ„‰λ„‰νžˆ μ΄κΈ°λŠλ‹ˆλΌ", // 37
265
+ "λ‚΄κ°€ ν™•μ‹ ν•˜λ…Έλ‹ˆ μ‚¬λ§μ΄λ‚˜ 생λͺ…μ΄λ‚˜ μ²œμ‚¬λ“€μ΄λ‚˜ κΆŒμ„Έμžλ“€μ΄λ‚˜ ν˜„μž¬ μΌμ΄λ‚˜ μž₯래 μΌμ΄λ‚˜ λŠ₯λ ₯μ΄λ‚˜", // 38
266
+ "λ†’μŒμ΄λ‚˜ κΉŠμŒμ΄λ‚˜ λ‹€λ₯Έ μ–΄λ–€ 피쑰물이라도 우리λ₯Ό 우리 μ£Ό κ·Έλ¦¬μŠ€λ„ 예수 μ•ˆμ— μžˆλŠ” ν•˜λ‚˜λ‹˜μ˜ μ‚¬λž‘μ—μ„œ λŠμ„ 수 μ—†μœΌλ¦¬λΌ" // 39
267
+ ];
268
+
269
+ const verseDisplay = document.getElementById('verse-display');
270
+ const prevButton = document.getElementById('prev-verse');
271
+ const nextButton = document.getElementById('next-verse');
272
+ const rateSlider = document.getElementById('rate-slider'); // 속도 쑰절 μŠ¬λΌμ΄λ”
273
+ let currentVerseIndex = 0; // ν˜„μž¬ λ³΄μ—¬μ£ΌλŠ” 절의 인덱슀 (0λΆ€ν„° μ‹œμž‘)
274
+
275
+
276
+ // νŠΉμ • μ ˆμ„ 화면에 ν‘œμ‹œν•˜λŠ” ν•¨μˆ˜
277
+ function displayVerse(index) {
278
+ // 인덱슀 λ²”μœ„ μœ νš¨μ„± 검사
279
+ if (index < 0 || index >= verses.length) {
280
+ return;
281
+ }
282
+
283
+ currentVerseIndex = index; // ν˜„μž¬ 절 인덱슀 μ—…λ°μ΄νŠΈ
284
+
285
+ // κΈ°μ‘΄ 절 λ‚΄μš© μ§€μš°κΈ°
286
+ verseDisplay.innerHTML = '';
287
+
288
+ // μƒˆ 절 μ»¨ν…Œμ΄λ„ˆ 생성 및 ν™œμ„±ν™” 클래슀 μΆ”κ°€
289
+ const verseDiv = document.createElement('div');
290
+ verseDiv.classList.add('verse', 'active');
291
+
292
+ // 절 번호 μΆ”κ°€
293
+ const verseNumberSpan = document.createElement('span');
294
+ verseNumberSpan.classList.add('verse-number');
295
+ verseNumberSpan.textContent = `λ‘œλ§ˆμ„œ 8μž₯ ${currentVerseIndex + 1}절`;
296
+ verseDiv.appendChild(verseNumberSpan);
297
+
298
+ // 절 ν…μŠ€νŠΈλ₯Ό 띄어쓰기 κΈ°μ€€μœΌλ‘œ λΆ„ν• 
299
+ const parts = verses[currentVerseIndex].split(' ');
300
+
301
+ // 파트 전체λ₯Ό λ‹΄λŠ” μ»¨ν…Œμ΄λ„ˆ 생성 (Flexbox둜 μ€„λ°”κΏˆ λ‹΄λ‹Ή)
302
+ const partsContainer = document.createElement('div');
303
+ partsContainer.classList.add('parts-container');
304
+
305
+ // 각 νŒŒνŠΈλ³„ 블둝 생성 및 partsContainer에 μΆ”κ°€
306
+ parts.forEach(partText => {
307
+ // 빈 λ¬Έμžμ—΄μ΄ μ•„λ‹Œ κ²½μš°μ—λ§Œ 파트 생성
308
+ if (partText.trim() !== '') {
309
+ const partDiv = document.createElement('div');
310
+ partDiv.classList.add('part');
311
+ // ν…μŠ€νŠΈ λ‚΄μš© μ„€μ • μ‹œ μ•žλ’€ 곡백 제거
312
+ partDiv.textContent = partText.trim();
313
+
314
+ // 클릭 이벀트 λ¦¬μŠ€λ„ˆ μΆ”κ°€
315
+ partDiv.addEventListener('click', function() {
316
+
317
+ // --- 클릭된 파트 ν•˜μ΄λΌμ΄νŠΈ (항상 λ…Έλž€μƒ‰) ---
318
+ // ν˜„μž¬ 절의 λͺ¨λ“  파트 블둝 κ°€μ Έμ˜€κΈ° (partsContainer λ‚΄μ—μ„œ 찾음)
319
+ const allPartsInVerse = partsContainer.querySelectorAll('.part');
320
+
321
+ // λͺ¨λ“  파트의 active 클래슀 제거 (클릭 μ•ˆ 된 μƒνƒœλ‘œ 되돌림)
322
+ allPartsInVerse.forEach(p => {
323
+ p.classList.remove('active');
324
+ });
325
+
326
+ // 클릭된 νŒŒνŠΈμ— active 클래슀 μΆ”κ°€ (λ…Έλž€μƒ‰μœΌλ‘œ λ³€κ²½)
327
+ this.classList.add('active');
328
+ // --- 클릭된 파트 ν•˜μ΄λΌμ΄νŠΈ 끝 ---
329
+
330
+
331
+ // --- TTS 둜직 ---
332
+ const textToSpeak = this.textContent; // 클릭된 파트의 ν…μŠ€νŠΈ κ°€μ Έμ˜€κΈ°
333
+
334
+ // 빈 λ¬Έμžμ—΄μ΄κ±°λ‚˜ TTS 지원 μ•ˆ ν•˜λ©΄ μ‹€ν–‰ μ•ˆ 함
335
+ if (textToSpeak && 'speechSynthesis' in window) {
336
+ // ν˜„μž¬ μž¬μƒ 쀑인 μŒμ„±μ΄ μžˆλ‹€λ©΄ 쀑지
337
+ window.speechSynthesis.cancel();
338
+
339
+ // μŒμ„± ν•©μ„± 객체 생성
340
+ const utterance = new SpeechSynthesisUtterance(textToSpeak);
341
+
342
+ // μ–Έμ–΄ μ„€μ • (ν•œκ΅­μ–΄)
343
+ utterance.lang = 'ko-KR';
344
+
345
+ // μŠ¬λΌμ΄λ” κ°’μœΌλ‘œ 속도 μ„€μ •
346
+ utterance.rate = parseFloat(rateSlider.value);
347
+
348
+
349
+ // ν…μŠ€νŠΈ 읽기 μ‹œμž‘
350
+ window.speechSynthesis.speak(utterance);
351
+ } else if (!('speechSynthesis' in window)) {
352
+ console.warn("Text-to-speech is not supported in this browser.");
353
+ }
354
+ // --- TTS 둜직 끝 ---
355
+ });
356
+
357
+ // partsContainer에 파트 블둝 μΆ”κ°€
358
+ partsContainer.appendChild(partDiv);
359
+ }
360
+ });
361
+
362
+ // 절 μ»¨ν…Œμ΄λ„ˆμ— partsContainer μΆ”κ°€
363
+ verseDiv.appendChild(partsContainer);
364
+
365
+ // 화면에 절 μ»¨ν…Œμ΄λ„ˆ μΆ”κ°€
366
+ verseDisplay.appendChild(verseDiv);
367
+
368
+ // λ„€λΉ„κ²Œμ΄μ…˜ λ²„νŠΌ μƒνƒœ μ—…λ°μ΄νŠΈ
369
+ prevButton.disabled = currentVerseIndex === 0; // 첫 절이면 이전 λ²„νŠΌ λΉ„ν™œμ„±ν™”
370
+ nextButton.disabled = currentVerseIndex === verses.length - 1; // λ§ˆμ§€λ§‰ 절이면 λ‹€μŒ λ²„νŠΌ λΉ„ν™œμ„±ν™”
371
+ // TTS μž¬μƒ 쀑지 (절 μ „ν™˜ μ‹œ λΆˆν•„μš”ν•œ μ†Œλ¦¬ λ°©μ§€)
372
+ if ('speechSynthesis' in window) {
373
+ window.speechSynthesis.cancel();
374
+ }
375
+ }
376
+
377
+ // 이전 절 λ²„νŠΌ 클릭 이벀트
378
+ prevButton.addEventListener('click', () => {
379
+ displayVerse(currentVerseIndex - 1);
380
+ });
381
+
382
+ // λ‹€μŒ 절 λ²„νŠΌ 클릭 이벀트
383
+ nextButton.addEventListener('click', () => {
384
+ displayVerse(currentVerseIndex + 1);
385
+ });
386
+
387
+
388
+ // νŽ˜μ΄μ§€ λ‘œλ“œ μ‹œ 첫 번째 절 ν‘œμ‹œ
389
+ document.addEventListener('DOMContentLoaded', () => {
390
+ displayVerse(currentVerseIndex);
391
+ });
392
+
393
+ </script>
394
+ </body>
395
+ </html>