1+ * {
2+ margin : 0 ;
3+ padding : 0 ;
4+ box-sizing : border-box;
5+ }
6+
7+ body {
8+ font-family : -apple-system, BlinkMacSystemFont, 'Segoe UI' , Roboto, sans-serif;
9+ overflow : hidden;
10+ }
11+
12+ # app-container {
13+ display : flex;
14+ width : 100vw ;
15+ height : 100vh ;
16+ flex-direction : row;
17+ }
18+
19+ # map-container {
20+ flex : 0 0 50% ;
21+ position : relative;
22+ }
23+
24+ # info-container {
25+ flex : 0 0 50% ;
26+ display : flex;
27+ align-items : center;
28+ justify-content : center;
29+ background : # 000 ;
30+ }
31+
32+ /* Medium screens */
33+ @media (min-width : 768px ) {
34+ # map-container {
35+ flex : 0 0 60% ;
36+ }
37+
38+ # info-container {
39+ flex : 0 0 40% ;
40+ }
41+ }
42+
43+ /* Large screens */
44+ @media (min-width : 1200px ) {
45+ # map-container {
46+ flex : 0 0 68% ;
47+ }
48+
49+ # info-container {
50+ flex : 0 0 32% ;
51+ }
52+ }
53+
54+ # deck {
55+ width : 100% ;
56+ height : 100% ;
57+ }
58+
59+ @media (max-aspect-ratio : 1 / 1 ) {
60+ # app-container {
61+ flex-direction : column;
62+ }
63+
64+ # map-container {
65+ flex : 0 0 60% ;
66+ }
67+
68+ # info-container {
69+ flex : 0 0 40% ;
70+ }
71+
72+ # photo {
73+ max-height : 25vh ;
74+ }
75+ }
76+
77+ # loading {
78+ position : absolute;
79+ top : 50% ;
80+ left : 50% ;
81+ transform : translate (-50% , -50% );
82+ background : rgba (0 , 0 , 0 , 0.8 );
83+ color : white;
84+ padding : 30px 50px ;
85+ border-radius : 10px ;
86+ font-size : 20px ;
87+ z-index : 1000 ;
88+ }
89+
90+ # controls {
91+ background : rgba (0 , 0 , 0 , 0.85 );
92+ padding : 2em ;
93+ border-radius : 10px ;
94+ display : none;
95+ flex-direction : column;
96+ }
97+
98+ # info-panel {
99+ color : white;
100+ font-size : 14px ;
101+ text-align : center;
102+ font-weight : 500 ;
103+ margin-bottom : .7em ;
104+ position : relative;
105+ }
106+
107+ .info-icon {
108+ position : absolute;
109+ right : 0 ;
110+ top : 50% ;
111+ transform : translateY (-50% );
112+ background : transparent;
113+ border : none;
114+ color : rgba (255 , 255 , 255 , 0.6 );
115+ font-size : 1.2em ;
116+ padding : 0 ;
117+ min-width : auto;
118+ cursor : pointer;
119+ transition : color 0.2s ;
120+ }
121+
122+ .info-icon : hover {
123+ background : transparent;
124+ color : rgba (255 , 255 , 255 , 1 );
125+ transform : translateY (-50% ) scale (1.1 );
126+ }
127+
128+ .modal {
129+ display : none;
130+ position : fixed;
131+ z-index : 2000 ;
132+ left : 0 ;
133+ top : 0 ;
134+ width : 100% ;
135+ height : 100% ;
136+ background-color : rgba (0 , 0 , 0 , 0.8 );
137+ backdrop-filter : blur (5px );
138+ }
139+
140+ .modal-content {
141+ background : linear-gradient (135deg , # 1a1a1a 0% , # 2a2a2a 100% );
142+ margin : 10% auto;
143+ padding : 2em ;
144+ border : 1px solid rgba (255 , 140 , 0 , 0.3 );
145+ border-radius : 12px ;
146+ width : 90% ;
147+ max-width : 500px ;
148+ color : white;
149+ box-shadow : 0 10px 40px rgba (0 , 0 , 0 , 0.5 );
150+ }
151+
152+ .modal-content h2 {
153+ color : # FFA500 ;
154+ font-size : 1.5em ;
155+ }
156+
157+ .modal-content h3 {
158+ color : # FF8C00 ;
159+ font-size : 1.1em ;
160+ }
161+
162+ .modal-content p {
163+ line-height : 1.6 ;
164+ color : rgba (255 , 255 , 255 , 0.9 );
165+ }
166+
167+ .modal-content a {
168+ color : # FFA500 ;
169+ text-decoration : none;
170+ transition : color 0.2s ;
171+ }
172+
173+ .modal-content a : hover {
174+ color : # FFB520 ;
175+ text-decoration : underline;
176+ }
177+
178+ .modal-close {
179+ color : rgba (255 , 255 , 255 , 0.6 );
180+ font-size : 28px ;
181+ font-weight : bold;
182+ cursor : pointer;
183+ line-height : 20px ;
184+ position : absolute;
185+ right : 1em ;
186+ transition : color 0.2s ;
187+ }
188+
189+ .modal-close : hover {
190+ color : # FFA500 ;
191+ }
192+
193+ # photo {
194+ width : 100% ;
195+ height : auto;
196+ object-fit : contain;
197+ border-radius : 8px ;
198+ }
199+
200+ # progress-container {
201+ width : 100% ;
202+ height : 6px ;
203+ background : rgba (255 , 255 , 255 , 0.2 );
204+ border-radius : 3px ;
205+ overflow : hidden;
206+ }
207+
208+ # progress-bar {
209+ height : 100% ;
210+ background : linear-gradient (90deg , # FF8C00, # FFA500 );
211+ width : 0% ;
212+ transition : width 0.3s ease;
213+ }
214+
215+ # button-container {
216+ margin-top : .7em ;
217+ display : flex;
218+ gap : 5px ;
219+ justify-content : center;
220+ }
221+
222+ button {
223+ background : rgba (255 , 255 , 255 , 0.1 );
224+ border : 1px solid rgba (255 , 255 , 255 , 0.3 );
225+ color : white;
226+ padding : 6px 12px ;
227+ border-radius : 6px ;
228+ cursor : pointer;
229+ font-size : 1em ;
230+ font-weight : 600 ;
231+ transition : all 0.2s ;
232+ }
233+
234+ button : hover {
235+ background : rgba (255 , 255 , 255 , 0.2 );
236+ border-color : rgba (255 , 255 , 255 , 0.5 );
237+ }
238+
239+ button : active {
240+ transform : scale (0.98 );
241+ }
242+
243+ # play-btn {
244+ background : linear-gradient (135deg , # FF8C00, # FFA500 );
245+ border-color : # FF8C00 ;
246+ min-width : 60px ;
247+ }
248+
249+ # play-btn : hover {
250+ background : linear-gradient (135deg , # FFA500, # FFB520 );
251+ }
0 commit comments