-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathantikkent.html
More file actions
1192 lines (1084 loc) · 67 KB
/
antikkent.html
File metadata and controls
1192 lines (1084 loc) · 67 KB
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<title>Saklı Tiyatrolar — Anadolu'nun Ücretsiz Antik Kentleri</title>
<meta name="description" content="Anadolu'daki 27 antik kentin interaktif haritası. Tiyatroları, ulaşım bilgilerini ve keşif notlarını keşfedin.">
<link href="https://unpkg.com/maplibre-gl@latest/dist/maplibre-gl.css" rel="stylesheet" />
<script src="https://unpkg.com/maplibre-gl@latest/dist/maplibre-gl.js"></script>
<link href="https://api.fontshare.com/v2/css?f[]=satoshi@400,500,700&display=swap" rel="stylesheet">
<style>
/* ========== CSS VARIABLES & RESET ========== */
:root {
--bg: #1a1714;
--bg-elevated: #231f1b;
--bg-surface: #2a2520;
--text: #e8dcc8;
--text-muted: #a89a86;
--gold: #c49a5c;
--gold-dim: rgba(196,154,92,0.15);
--gold-bright: #d4aa6c;
--border: rgba(196,154,92,0.12);
--shadow: rgba(0,0,0,0.4);
--radius: 12px;
--radius-sm: 8px;
--radius-xs: 6px;
/* Region colors */
--likya: #c49a5c;
--karya: #7eb89b;
--pisidya: #b07ec4;
--pamfilya: #5c9ec4;
--kilikya: #c47e7e;
/* Access colors */
--uzak: #c47e7e;
--orta: #c4b05c;
--kolay: #7ec47e;
}
[data-theme="light"] {
--bg: #f5f0e8;
--bg-elevated: #ffffff;
--bg-surface: #ede7db;
--text: #2a2520;
--text-muted: #6b5f50;
--gold: #a07838;
--gold-dim: rgba(160,120,56,0.1);
--gold-bright: #b08848;
--border: rgba(160,120,56,0.15);
--shadow: rgba(0,0,0,0.08);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
font-family: 'Satoshi', -apple-system, BlinkMacSystemFont, sans-serif;
background: var(--bg);
color: var(--text);
-webkit-text-size-adjust: 100%;
-webkit-font-smoothing: antialiased;
}
body {
min-height: 100dvh;
overflow: hidden;
position: relative;
}
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
a { color: var(--gold); text-decoration: none; }
a:hover { text-decoration: underline; }
/* ========== HEADER ========== */
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
background: var(--bg-elevated);
border-bottom: 1px solid var(--border);
padding: 8px 12px;
display: flex;
align-items: center;
gap: 8px;
height: 52px;
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
}
.logo-mark {
flex-shrink: 0;
width: 32px;
height: 32px;
color: var(--gold);
}
.header-text {
flex: 1;
min-width: 0;
}
.header-title {
font-family: Georgia, 'Times New Roman', serif;
font-size: 15px;
font-weight: 700;
color: var(--text);
line-height: 1.15;
letter-spacing: 0.02em;
}
.header-subtitle {
font-size: 10px;
color: var(--text-muted);
line-height: 1.2;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.header-actions {
display: flex;
align-items: center;
gap: 4px;
flex-shrink: 0;
}
.icon-btn {
width: 36px;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
border-radius: var(--radius-sm);
transition: background 0.15s;
color: var(--text-muted);
}
.icon-btn:hover { background: var(--gold-dim); }
.icon-btn.active { color: var(--gold); background: var(--gold-dim); }
.icon-btn svg { width: 18px; height: 18px; }
/* ========== FILTER BAR ========== */
.filter-bar {
position: fixed;
top: 52px;
left: 0;
right: 0;
z-index: 99;
background: var(--bg);
border-bottom: 1px solid var(--border);
padding: 6px 12px;
display: flex;
gap: 6px;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.filter-bar::-webkit-scrollbar { display: none; }
.chip {
flex-shrink: 0;
padding: 6px 12px;
border-radius: 20px;
font-size: 12px;
font-weight: 500;
background: var(--bg-surface);
color: var(--text-muted);
border: 1px solid var(--border);
transition: all 0.15s;
white-space: nowrap;
min-height: 32px;
display: flex;
align-items: center;
}
.chip:hover { border-color: var(--gold); }
.chip.active {
background: var(--gold-dim);
color: var(--gold);
border-color: var(--gold);
}
.chip-separator {
flex-shrink: 0;
width: 1px;
height: 20px;
background: var(--border);
align-self: center;
}
/* ========== MAP ========== */
.map-container {
position: fixed;
top: 88px;
left: 0;
right: 0;
bottom: 0;
}
#map {
width: 100%;
height: 100%;
}
.maplibregl-ctrl-attrib { font-size: 10px !important; }
.maplibregl-ctrl-attrib a { color: var(--text-muted) !important; }
/* Custom markers */
.marker {
cursor: pointer;
transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.marker:hover { transform: scale(1.2); }
.marker-dot {
border-radius: 50%;
background: var(--gold);
border: 2.5px solid var(--bg-elevated);
box-shadow: 0 0 8px rgba(196,154,92,0.5), 0 2px 4px rgba(0,0,0,0.3);
position: relative;
}
.marker-dot::after {
content: '';
position: absolute;
inset: -4px;
border-radius: 50%;
background: rgba(196,154,92,0.15);
animation: pulse 2.5s ease-in-out infinite;
}
.marker.active .marker-dot {
background: #fff;
border-color: var(--gold);
box-shadow: 0 0 12px rgba(196,154,92,0.8), 0 2px 8px rgba(0,0,0,0.4);
}
@keyframes pulse {
0%, 100% { transform: scale(1); opacity: 0.6; }
50% { transform: scale(1.6); opacity: 0; }
}
/* ========== BOTTOM SHEET ========== */
.sheet-overlay {
position: fixed;
inset: 0;
background: rgba(0,0,0,0.4);
z-index: 200;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s;
}
.sheet-overlay.visible {
opacity: 1;
pointer-events: auto;
}
.bottom-sheet {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 201;
background: var(--bg-elevated);
border-radius: 16px 16px 0 0;
transform: translateY(100%);
transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
max-height: 85dvh;
display: flex;
flex-direction: column;
box-shadow: 0 -4px 24px var(--shadow);
}
.bottom-sheet.open {
transform: translateY(0);
}
.sheet-handle-area {
padding: 8px 0;
display: flex;
justify-content: center;
cursor: grab;
flex-shrink: 0;
touch-action: none;
}
.sheet-handle {
width: 36px;
height: 4px;
background: var(--text-muted);
border-radius: 2px;
opacity: 0.4;
}
.sheet-header {
padding: 0 16px 12px;
border-bottom: 1px solid var(--border);
flex-shrink: 0;
}
.sheet-title-row {
display: flex;
align-items: flex-start;
gap: 10px;
margin-bottom: 8px;
}
.rank-badge {
flex-shrink: 0;
width: 28px;
height: 28px;
border-radius: 50%;
background: var(--gold);
color: var(--bg);
font-size: 12px;
font-weight: 700;
display: flex;
align-items: center;
justify-content: center;
}
.sheet-site-name {
font-family: Georgia, 'Times New Roman', serif;
font-size: 20px;
font-weight: 700;
line-height: 1.2;
flex: 1;
}
.sheet-close-btn {
flex-shrink: 0;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: var(--bg-surface);
color: var(--text-muted);
transition: background 0.15s;
}
.sheet-close-btn:hover { background: var(--border); }
.sheet-close-btn svg { width: 16px; height: 16px; }
.sheet-badges {
display: flex;
gap: 6px;
flex-wrap: wrap;
}
.badge {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 3px 8px;
border-radius: 4px;
font-size: 11px;
font-weight: 600;
letter-spacing: 0.02em;
}
.badge-region { background: var(--gold-dim); color: var(--gold); }
.badge-region[data-region="Karya"] { background: rgba(126,184,155,0.15); color: var(--karya); }
.badge-region[data-region="Pisidya"] { background: rgba(176,126,196,0.15); color: var(--pisidya); }
.badge-region[data-region="Pamfilya"] { background: rgba(92,158,196,0.15); color: var(--pamfilya); }
.badge-region[data-region="Kilikya"] { background: rgba(196,126,126,0.15); color: var(--kilikya); }
.badge-access { font-size: 11px; }
.badge-access[data-access="Uzak"] { background: rgba(196,126,126,0.15); color: var(--uzak); }
.badge-access[data-access="Orta"] { background: rgba(196,176,92,0.15); color: var(--orta); }
.badge-access[data-access="Kolay"] { background: rgba(126,196,126,0.15); color: var(--kolay); }
.badge-fee {
background: var(--bg-surface);
color: var(--text-muted);
}
.sheet-body {
flex: 1;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
padding: 16px;
}
.sheet-section {
margin-bottom: 16px;
}
.sheet-section-label {
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--text-muted);
margin-bottom: 6px;
}
.sheet-section p {
font-size: 14px;
line-height: 1.6;
color: var(--text);
}
.sheet-section .detail-text {
font-size: 13px;
color: var(--text-muted);
line-height: 1.5;
}
.sheet-links {
display: flex;
flex-direction: column;
gap: 8px;
}
.sheet-link {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 12px;
background: var(--bg-surface);
border-radius: var(--radius-sm);
border: 1px solid var(--border);
color: var(--text);
transition: border-color 0.15s;
min-height: 44px;
}
.sheet-link:hover { border-color: var(--gold); text-decoration: none; }
.sheet-link svg { flex-shrink: 0; width: 18px; height: 18px; color: var(--gold); }
.sheet-link-text {
flex: 1;
min-width: 0;
}
.sheet-link-title {
font-size: 13px;
font-weight: 500;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.sheet-link-subtitle {
font-size: 11px;
color: var(--text-muted);
}
.sheet-link-arrow { flex-shrink: 0; color: var(--text-muted); width: 14px; height: 14px; }
/* ========== LIST VIEW ========== */
.list-view {
position: fixed;
top: 88px;
left: 0;
right: 0;
bottom: 0;
background: var(--bg);
z-index: 50;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
display: none;
padding: 12px;
}
.list-view.visible { display: block; }
.site-card {
background: var(--bg-elevated);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 14px;
margin-bottom: 10px;
cursor: pointer;
transition: border-color 0.15s, transform 0.15s;
display: flex;
gap: 12px;
align-items: flex-start;
}
.site-card:hover { border-color: var(--gold); }
.site-card:active { transform: scale(0.99); }
.card-rank {
flex-shrink: 0;
width: 32px;
height: 32px;
border-radius: 50%;
background: var(--gold-dim);
color: var(--gold);
font-size: 13px;
font-weight: 700;
display: flex;
align-items: center;
justify-content: center;
}
.card-content { flex: 1; min-width: 0; }
.card-name {
font-family: Georgia, 'Times New Roman', serif;
font-size: 15px;
font-weight: 700;
line-height: 1.2;
margin-bottom: 4px;
}
.card-badges {
display: flex;
gap: 4px;
flex-wrap: wrap;
margin-bottom: 6px;
}
.card-excerpt {
font-size: 12px;
line-height: 1.5;
color: var(--text-muted);
display: -webkit-box;
line-clamp: 2;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
/* ========== FOOTER ========== */
.list-footer {
padding: 20px 12px 32px;
text-align: center;
}
.list-footer-text {
font-size: 12px;
color: var(--text-muted);
margin-bottom: 4px;
}
.list-footer a {
font-size: 11px;
color: var(--text-muted);
opacity: 0.7;
}
.list-footer a:hover { color: var(--gold); opacity: 1; }
/* Map footer */
.map-footer {
position: fixed;
bottom: 8px;
left: 12px;
z-index: 10;
font-size: 10px;
color: var(--text-muted);
opacity: 0.6;
pointer-events: auto;
}
.map-footer a { color: var(--text-muted); }
.map-footer a:hover { color: var(--gold); }
/* ========== SITE COUNT PILL ========== */
.site-count {
position: fixed;
bottom: 16px;
right: 12px;
z-index: 10;
background: var(--bg-elevated);
border: 1px solid var(--border);
border-radius: 20px;
padding: 6px 12px;
font-size: 11px;
color: var(--text-muted);
display: flex;
align-items: center;
gap: 6px;
box-shadow: 0 2px 8px var(--shadow);
}
.site-count .count-dot {
width: 6px;
height: 6px;
background: var(--gold);
border-radius: 50%;
}
/* ========== DESKTOP ENHANCEMENTS ========== */
@media (min-width: 768px) {
.header { padding: 8px 20px; height: 56px; }
.header-title { font-size: 17px; }
.header-subtitle { font-size: 11px; }
.filter-bar { top: 56px; padding: 8px 20px; gap: 8px; }
.chip { padding: 6px 14px; font-size: 13px; }
.map-container { top: 92px; }
.list-view { top: 92px; padding: 16px 20px; }
.bottom-sheet {
left: auto;
right: 16px;
bottom: 16px;
width: 400px;
border-radius: 16px;
max-height: calc(100dvh - 120px);
}
.bottom-sheet.open {
transform: translateY(0);
}
.list-view {
max-width: 720px;
margin: 0 auto;
}
}
@media (min-width: 1024px) {
.bottom-sheet { width: 420px; }
.list-view {
max-width: 900px;
display: none;
}
.list-view.visible {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 12px;
align-content: start;
}
.list-view.visible .site-card { margin-bottom: 0; }
.list-view.visible .list-footer { grid-column: 1 / -1; }
}
</style>
</head>
<body data-theme="dark">
<!-- HEADER -->
<header class="header">
<svg class="logo-mark" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" aria-label="Saklı Tiyatrolar">
<path d="M4 26h24" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
<path d="M6 26V22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
<path d="M10 26V18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
<path d="M14 26V15" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
<path d="M18 26V15" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
<path d="M22 26V18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
<path d="M26 26V22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
<path d="M4 26C4 18 8 10 16 7C24 10 28 18 28 26" stroke="currentColor" stroke-width="1.5" fill="none"/>
<circle cx="16" cy="7" r="2" fill="currentColor"/>
</svg>
<div class="header-text">
<div class="header-title">Saklı Tiyatrolar</div>
<div class="header-subtitle">Anadolu'nun Ücretsiz Antik Kentleri</div>
</div>
<div class="header-actions">
<button class="icon-btn" id="listToggle" aria-label="Liste görünümü" title="Liste görünümü">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
<button class="icon-btn" id="themeToggle" aria-label="Tema değiştir" title="Tema değiştir">
<svg id="moonIcon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
<svg id="sunIcon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" style="display:none"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
</button>
</div>
</header>
<!-- FILTER BAR -->
<div class="filter-bar" id="filterBar">
<button class="chip active" data-filter="region" data-value="all">Tümü</button>
<button class="chip" data-filter="region" data-value="Likya">Likya</button>
<button class="chip" data-filter="region" data-value="Pisidya">Pisidya</button>
<button class="chip" data-filter="region" data-value="Pamfilya">Pamfilya</button>
<button class="chip" data-filter="region" data-value="Frigya">Frigya</button>
<button class="chip" data-filter="region" data-value="Galatya">Galatya</button>
<button class="chip" data-filter="region" data-value="Aiolis">Aiolis</button>
<button class="chip" data-filter="region" data-value="İyonya">İyonya</button>
<button class="chip" data-filter="region" data-value="Bitinya">Bitinya</button>
<button class="chip" data-filter="region" data-value="Paflagonya">Paflagonya</button>
<button class="chip" data-filter="region" data-value="Misya">Misya</button>
<div class="chip-separator"></div>
<button class="chip active" data-filter="access" data-value="all">Tümü</button>
<button class="chip" data-filter="access" data-value="Uzak">Uzak</button>
<button class="chip" data-filter="access" data-value="Orta">Orta</button>
<button class="chip" data-filter="access" data-value="Kolay">Kolay</button>
</div>
<!-- MAP -->
<div class="map-container" id="mapContainer">
<div id="map"></div>
</div>
<!-- SITE COUNT -->
<div class="site-count" id="siteCount">
<span class="count-dot"></span>
<span id="countText">25 antik kent • 10 bölge</span>
</div>
<!-- MAP FOOTER -->
<div class="map-footer" id="mapFooter">
</div>
<!-- BOTTOM SHEET OVERLAY -->
<div class="sheet-overlay" id="sheetOverlay"></div>
<!-- BOTTOM SHEET -->
<div class="bottom-sheet" id="bottomSheet">
<div class="sheet-handle-area" id="sheetHandle">
<div class="sheet-handle"></div>
</div>
<div class="sheet-header">
<div class="sheet-title-row">
<div class="rank-badge" id="sheetRank">1</div>
<div class="sheet-site-name" id="sheetName">—</div>
<button class="sheet-close-btn" id="sheetClose" aria-label="Kapat">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
</button>
</div>
<div class="sheet-badges" id="sheetBadges"></div>
</div>
<div class="sheet-body" id="sheetBody"></div>
</div>
<!-- LIST VIEW -->
<div class="list-view" id="listView"></div>
<script>
// ========== INLINE DATA ==========
const SITES=[{"n":"İdebessos","la":36.5546,"lo":30.2022,"r":"Lycia","rc":"Likya","nr":"Kozağacı (Karacaören, Kumluca, Antalya)","ac":"Uzak","ad":"Uzak (overgrown with forest, hard to reach, hiking required)","f":"Ücretsiz","tc":"Reasonably well preserved, small with 7-8 visible steps","v":"Remote forested mountain site like Kyaneai, small theater integrated with nature, overgrown ruins, difficult access, atmospheric solitude","rk":1,"su":"Bey Dağları eteklerinde, ormanlar içinde gizli bir Likya hazinesi olan İdebessos Antik Kenti, muhteşem antik tiyatrosu ve benzersiz lahitleriyle dikkat çekiyor. Yaklaşık 600 kişilik Helenistik tiyatro, sahne binası olmadan sade mimarisiyle dönemin ruhunu yansıtıyor; ziyaretçiler ormanın huzurlu atmosferinde tarihle baş başa kalıyor. Kumluca'dan Karacaören üzerinden tabelaları takip ederek ulaşabileceğiniz kentte, Likya ve Pisidia etkilerini bir arada taşıyan lahitler, unutulmaz bir keşif deneyimi sunuyor.","au":"https://nafidurmus.com/idebessos-antik-kenti/","at":"İdebessos Antik Kenti - Kumluca Antik Kentler - Sırt Çantalı Hikayeler","as":"Sırt Çantalı Hikayeler, TurizmTR","wt":"https://tr.wikipedia.org/wiki/İdebissos"},{"n":"Kadyanda (Cadyanda)","la":36.7172,"lo":29.2363,"r":"Lycia","rc":"Likya","nr":"Yeşilüzümlü (Üzümlü)","ac":"Uzak","ad":"Uzak","f":"Ücretsiz (free, recent reviews)","tc":"Ruined/collapsed but visible, unrestored, poor stage house, built into rocky slope","v":"Untouched pine-forested hilltop, exploration feel, overgrown paths, no crowds, minimal excavation, peaceful discovery vibe like Kyaneai","rk":2,"su":"Fethiye'nin Yeşilüzümlü yakınlarında, çam ormanlarıyla çevrili tepelerde yer alan Kadyanda Antik Kenti, Helenistik tiyatrosu ve Roma hamamıyla dikkat çeken sakin bir Likya yerleşimi. Atmosferi, devasa çam ağaçları altında orman yürüyüşüyle birleşen antik kalıntılarla büyüleyici; sarnıçlar su kıtlığını hatırlatıyor. Fethiye'den Üzümlü üzerinden stabilize orman yolunu takip ederek araçla girişe ulaşılıyor, ardından patikalarla tiyatro ve agora keşfediliyor; ziyaretçiler manzaraya karşı stadium basamaklarında mola veriyor.","au":"https://www.arpaboyuyol.com/kadyanda-antik-kenti/","at":"Kadyanda Antik Kenti | arpa boyu yol","as":"arpa boyu yol","wt":"https://tr.wikipedia.org/wiki/Kadyanda"},{"n":"Oinoanda","la":36.80917,"lo":29.54972,"r":"Lycia (Kibyratis Tetrapolis)","rc":"Likya","nr":"İncealiler","ac":"Uzak","ad":"Uzak (hilltop, trekking required, isolated)","f":"Free (no mention of fees; unregulated access)","tc":"Ruined but not exceptionally bad; seats and frons scenae visible despite earthquakes and exposure.","v":"Remote hilltop ruins like Kyaneai; overgrown shrubbery, rocks, trees; requires hiking, off-beaten-path with cedar-covered hills.","rk":3,"su":"Oinoanda Antik Kenti, Likya ovalarına hâkim 1400 metre yükseklikteki tepede yer alır ve Epikürcü filozof Diogenes'in dünyanın en büyük felsefi yazıtını barındırır. Antik tiyatrosu vadinin muhteşem manzarasına nazır, surları ve hamam kalıntılarıyla atmosferi büyüleyicidir. Fethiye-Seki yolundan İncealiler'e sapılarak dar patikayla 45 dakika yürüyüşle ulaşılır; zorlu ama ödüllendirici bir ziyaret deneyimidir.","au":"https://slowtravelguide.net/oinoanda-tr/","at":"OINOANDA","as":"Slow Travel Guide","wt":"https://tr.wikipedia.org/wiki/Oinoanda"},{"n":"Boubon (Bubon)","la":36.96906,"lo":29.40705,"r":"Northern Lycia (part of Cabalia, Kibyratis tetrapolis)","rc":"Likya","nr":"İbecik village (Gölhisar district, Burdur); 20km south of Gölhisar","ac":"Uzak","ad":"Uzak (remote, steep mountain side, off-beaten-path, not major tourist site)","f":"Free/unregulated (no mention of fee; rural unregulated site)","tc":"Ruined, damaged by illegal excavations, small sandstone theater visible but hard to identify among remains","v":"Remote Lycian hilltop site with overgrown ruins, damaged by looting like Kyaneai; small theater, fortifications, sebasteion with famous looted bronzes; atmospheric isolation in mountains.","rk":4,"su":"Boubon Antik Kenti, Burdur Gölhisar’daki Dikmentepe’nin dik yamaçlarında yer alan, Likya Birliği’nde stratejik önemiyle Patara gibi büyük kentlerle eşit oya sahip küçük ama özel bir Roma yerleşimidir; özellikle 14 bronz imparator heykelinin sebasteiondan kaçırılıp bazılarının geri dönmesiyle dramatik bir hikayeye sahiptir. Helenistik tiyatrosu, agora ve nekropolisiyle dağlık konumunda mistik bir atmosfer sunarken, Commodus’un onur yazıtı gibi buluntular ziyaretçiyi büyüler. Burdur’dan İbecik Köyü yoluyla ulaşılıp, devam eden kazılarla yaşayan bir arkeolojik deneyim vaat eder.","au":"https://turkiyeturizmansiklopedisi.com/boubon-antik-kenti","at":"Boubon Antik Kenti","as":"Türkiye Turizm Ansiklopedisi","wt":"https://tr.wikipedia.org/wiki/Bubon"},{"n":"Kitanaura","la":36.6475,"lo":30.36639,"r":"Lycia","rc":"Likya","nr":"Saraycık (Kumluca, Antalya)","ac":"Uzak","ad":"Uzak (mountain trek, off-beaten-path, ask locals)","f":"Ücretsiz (free, 24/7 open)","tc":"ruined remains (small kalıntısı)","v":"Small remote Lycian hill site with acropolis, heroon, baths, churches, necropolis; overgrown ruins requiring short trek, similar isolated atmosphere","rk":5,"su":"1300 metre yükseklikte, ormanlık tepelerde gizlenmiş Kitanaura Antik Kenti, etkileyici hamam kalıntıları, bazilikalar ve Saraycık Heroonu ile Likya'nın gizli hazinelerinden biridir. Küçük antik tiyatrosu ve surlarla çevrili akropolü, ziyaretçilere antik sosyal hayatı ve savunma mimarisini hissettirirken, rüzgarlı vadi atmosferi huzurlu bir keşif sunar. Kumluca merkezden 40 km uzaklıkta, özel araç veya Gölcük minibüsleriyle ulaşılıp ücretsiz gezilebilen bu UNESCO adaylı sitede, nekropoldeki kabartmalı mezarlar büyülü bir tarih yolculuğu vadeder.","au":"https://herantalya.com/tr/blog/kitanaura-ancient-city-antalya-257","at":"Kitanaura Antik Kenti Antalya","as":"HerAntalya","wt":"https://tr.wikipedia.org/wiki/Kitanaura"},{"n":"Sidyma","la":36.4107,"lo":29.1928,"r":"Lycia","rc":"Likya","nr":"Dodurga (Dudurga Asari)","ac":"Uzak","ad":"Uzak","f":"Free, no entrance fee or facilities","tc":"Ruined, heavily buried/drained, only top steps or few seat rows visible","v":"Unexcavated, ruins integrated into living village of Dodurga, overgrown with agriculture/olive groves, tombs scattered in fields, quiet rural atmosphere, no crowds or restorations.","rk":6,"su":"Sidyma Antik Kenti, Fethiye-Seydikemer arasında Dodurga köyünde, kazılmamış Likya kenti olarak sakin ve otantik bir atmosfere sahip; antik mezarlar, Sebasteion tapınağı ve kısmen toprak altında tiyatro kalıntılarıyla dikkat çeker. Ziyaretçiler, zeytinlikler arasında özgürce dolaşarak köy yaşamıyla iç içe antik kalıntıları keşfeder, sessiz patikalarda sürpriz buluşmalar yaşar. Fethiye’den özel araçla 1 saatte ulaşılır, ücretsiz girişli bu gizli cennette yürüyüş ayakkabısı ve merak şarttır.","au":"https://likyaninsesi.com/sidyma-antik-kenti-dodurga-gezi-notlari/","at":"Sidyma Antik Kenti: İmparatorluk Kehaneti ve 2026 Gezi Rehberi","as":"Likyansın Sesi","wt":"https://tr.wikipedia.org/wiki/Sidyma"},{"n":"Adada","la":37.57528,"lo":30.98306,"r":"Pisidia","rc":"Pisidya","nr":"Sağrak village, Sütçüler township","ac":"Uzak","ad":"Uzak (middle of nowhere, few tourists, 2-hour drive through forest)","f":"Free (no fences, no entrance fee mentioned)","tc":"Partially excavated, unfinished, with visible seat rows; well-preserved among site structures but only partially uncovered.","v":"Remote, overgrown ruins in high valley with temples, agora, theater; low tourist traffic, natural setting with pine forests, ideal for quiet exploration like Kyaneai.","rk":7,"su":"Isparta Sütçüler'deki Adada Antik Kenti, Pisidya bölgesinin en iyi korunmuş yapılarından biri olarak çam ve ardıç ormanları arasında mistik bir atmosfere sahip. Helenistik dönemden kalma agora, forum, Traianus Tapınağı ve özellikle 500 kişilik antik tiyatrosu ziyaretçileri büyülüyor. Isparta merkeze 90 km uzaklıkta, Sağrak köyü yakınından tabelaları takip ederek kolayca ulaşılıyor; Aziz Paul Yolu üzerinde yer alan kentte yürüyüş yaparak tapınaklar, bazilika ve anıtsal çeşme arasında huzurlu bir keşif yapılıyor.","au":"https://gezekalin.com/2014/06/01/toroslarda-baharadada-antik-kenti-tota-dagi-kasimlar-koyu/","at":"Toroslarda Bahar:Adada Antik Kenti, Tota Dağı, Kasımlar Köyü","as":"Gezekalın, Gezimanya","wt":"https://tr.wikipedia.org/wiki/Adada"},{"n":"Balboura","la":36.95522,"lo":29.581139,"r":"Lycia","rc":"Likya","nr":"Çölkayiği / Altınyayla","ac":"Uzak","ad":"Uzak","f":"Ücretsiz (free, no fee mentioned)","tc":"Ruins only, non-standing; unexcavated, denuded, seats attached to natural rock [Wikipedia](https://en.wikipedia.org/wiki/Balbura_(Lycia)), [FTSO PDF](https://www.ftso.org.tr/assets/upload/dosyalar/r011x-balboura-antik-kenti.pdf).","v":"High-elevation (1200m) remote Lycian ruins in river valley, overgrown/non-standing structures, appeals to archaeology enthusiasts; undeveloped highland (yayla) atmosphere similar to Kyaneai.","rk":8,"su":"Burdur’un Altınyayla ilçesinde, dağlık bir konumda yer alan Balbura Antik Kenti, Likya döneminin en kuzeydeki yerleşimlerinden biri olup Kibyra öncülüğündeki Tetrapolis’in üyesidir. Akropol tepesindeki minik tiyatro ve vadideki su kemeri kalıntılarıyla dikkat çeken kent, heybetli surları, Nemesis tapınağı ve yağmalanmış lahitleriyle mistik bir atmosfere sahiptir. Gölhisar-Fethiye yolundan toprak yola sapılarak ulaşılır; doğa yürüyüşü severler için ideal, define izleri taşıyan bakir bir ziyaret deneyimi sunar.","au":"https://www.baydere.com/2025/02/balboura-antik-kenti-kesif-yuruyusu.html","at":"Balboura Antik Kenti Keşif Yürüyüşü","as":"baydere.com","wt":"https://tr.wikipedia.org/wiki/Balbura"},{"n":"Kremna","la":37.4977,"lo":30.6881,"r":"Pisidia","rc":"Pisidya","nr":"Çamlık village (15 km from Bucak)","ac":"Uzak","ad":"Uzak","f":"Ücretsiz","tc":"Ruined remnants, mostly heaps of stone, overgrown in places ([ToposText](https://topostext.org/place/375307UKre)), remains visible ([Tripadvisor](https://www.tripadvisor.com/Attraction_Review-g4590574-d13397589-Reviews-Kremna_Antik_Kenti-Bucak_Burdur_Province.html)).","v":"Remote cliff-top ruins in mountains, overgrown and ruined like Kyaneai, off-beaten-path with natural defenses, minimal tourists, requiring mountain road access.","rk":9,"su":"Kremna Antik Kenti, Burdur’un Bucak ilçesindeki Çamlık Köyü’nde, Aksu Vadisi’ne hâkim 1250 metre yükseklikteki uçurumlar arasında konumlanmış gizemli bir Roma kenti. Ünlü antik tiyatrosu, kütüphanesi, bazilikası ve surlarıyla dikkat çeken sitede, dik yamaçlardan yürüyerek ulaşılan taş yığınları arasında dolaşmak büyülü bir atmosfer sunuyor; manzarası ise nefes kesici. Ziyaretçiler, Bucak’tan 15 km’lik patika yollarla kolayca ulaşabilir, doğa ve tarih severler için unutulmaz bir deneyim vaat ediyor.","au":"https://gezginimgezgin.com/kremna-gezi-rehberi-ucurum-cicegi/","at":"Kremna Gezi Rehberi: Uçurum Çiçeği","as":"Gezginim Gezgin","wt":"https://tr.wikipedia.org/wiki/Kremna"},{"n":"Lyrbe Seleukeia","la":36.87477,"lo":31.47344,"r":"Pamphylia","rc":"Pamfilya","nr":"Bucakşeyhler (1 km north)","ac":"Uzak","ad":"Uzak (difficult access via dirt road through forest, rarely visited)","f":"Ücretsiz (free admission)","tc":"Well-preserved small structure with seats visible","v":"Forgotten hilltop fortress city in pine forest, overgrown paths, empty site, mystical atmosphere similar to remote Lycian ruins.","rk":10,"su":"Antalya Manavgat Bucakşeyhler Köyü'nde, Toros Dağları'nın eteklerinde yer alan Lyrbe Seleukeia Antik Kenti, çam ormanları arasında gizlenmiş sakin ve büyüleyici bir atmosfere sahip. Pamfilyanın en iyi korunmuş agorası ile dikkat çeken sitede odeion benzeri yarım daire planlı yapılar ve hamam kalıntıları ziyaretçileri Roma döneminin ihtişamına götürüyor; tiyatro benzeri yapılarla dolu. Manavgat merkezden araçla 12 km dar orman yolundan kolayca ulaşılıyor, giriş ücretsiz ancak yazın sıcak için erken saatler ideal. Az ziyaretçisi sayesinde huzurlu bir keşif deneyimi sunuyor, orman kokuları eşliğinde taşlar arasında dolaşmak unutulmaz.","au":"https://cokokuyancokgezen.com/lyrbe-antik-kenti-manavgat-antalya/","at":"Lyrbe Antik Kenti Nerede, Nasıl Gidilir, Giriş Ücreti- Manavgat, Antalya","as":"Çok Okuyan Çok Gezen","wt":"https://tr.wikipedia.org/wiki/Seleukia_(Antalya"},{"n":"Sillyon","la":36.9925,"lo":30.98972,"r":"Pamphylia","rc":"Pamfilya","nr":"Asar Köy (Serik district, Antalya)","ac":"Uzak","ad":"Uzak (steep hike on goat paths, overgrown, no facilities, off-beaten-path adventure site)","f":"Ücretsiz (free, no admission fee)","tc":"Ruined; upper seats remain, stage collapsed due to 1969 landslide/earthquake, odeon destroyed.","v":"Steep hilltop ruins, overgrown vegetation, hiking adventure through brush and goat paths to acropolis; untouched, ruinous state with panoramic views; similar remote, rugged access and wild atmosphere.","rk":11,"su":"Antalya'nın Serik ilçesinde, 235 metre yüksekliğindeki Koçhisar Tepesi üzerinde yer alan Sillyon Antik Kenti, Büyük İskender'in bile fethedemediği sarp bir kale-kent olarak öne çıkıyor. Hellenistik dönemden kalma 8 bin kişilik tiyatrosu büyük ölçüde çökmüş olsa da, mistik atmosferi ve Pamfilya ovasına hakim panoramik manzarasıyla ziyaretçileri büyülüyor. Antalya merkezden 37 km uzaklıkta, tabelaları takip ederek kolayca ulaşılıyor; araç park edip 10 dakikalık yürüyüşle kalıntılar arasında keşfe çıkılıyor, ancak dikenli otlar ve düzensiz patikalar için sağlam ayakkabı şart.","au":"https://www.rehbername.com/seyahat/sillyon-antik-kenti","at":"Sillyon Antik Kenti Rehberi","as":"RehberName","wt":"https://tr.wikipedia.org/wiki/Sillyon"},{"n":"Selge","la":37.22944,"lo":31.12722,"r":"Pisidia","rc":"Pisidya","nr":"Altınkaya (Zerk)","ac":"Uzak","ad":"Uzak (Taurus Mountains, 1250m alt., limited tourists/archaeology, ~55km mountain road from highway)","f":"Free (no guard/fence)","tc":"Cavea exceptionally well-preserved with original seating intact; scaenae frons collapsed; overall remarkable integrity despite weathering/vegetation.","v":"Remote mountain site in national park, ruins integrated with modern village houses using ancient materials; untouched by mass tourism, authentic rugged atmosphere with theater visible from afar amid terraced fields and canyons.","rk":12,"su":"Toros Dağları'nın güney yamacında, 1250 metre yükseklikte yer alan Selge Antik Kenti, muhteşem antik tiyatrosu ve sakin dağ atmosferiyle ziyaretçileri büyülüyor. 9000 kişilik tiyatrosu kayalara oyulmuş, stadyum ve agora kalıntılarıyla çevrili; Roma döneminin ihtişamını yansıtıyor. Köprülü Kanyon'dan virajlı yolla ulaşılıyor, Altınkaya Köyü'nde tarihle doğa iç içe, huzurlu bir ziyaret deneyimi sunuyor.","au":"https://gezimanya.com/antalya/gezilecek-yerler/selge-antik-kenti","at":"Selge Antik Kenti - Gezimanya","as":"Gezimanya","wt":"https://tr.wikipedia.org/wiki/Selge"},{"n":"Rhodiapolis","la":36.38694,"lo":30.26556,"r":"Lycia","rc":"Likya","nr":"Kumluca (7-10km, 10 min drive uphill)","ac":"Orta","ad":"Orta (well signposted paved road from Kumluca, steep climb, not major tourist site but accessible)","f":"Free (visitor center under construction, possible future fee)","tc":"Partially restored/reconstructed (some new stonework); cavea 70% exposed and well-preserved; stage building preserved; ongoing restoration criticized in places.","v":"Compact hilltop Roman city like Kyaneai; overgrown until recent excavations, off-beaten-path Lycian site with theater, baths, tombs; rugged terrain, views over greenhouses.","rk":13,"su":"Rhodiapolis Antik Kenti, Antalya'nın Kumluca ilçesine 2,5 km kuzeyinde, çam ormanları içinde yer alan gizemli bir Likya şehri. En dikkat çeken yapısı, 1500 kişilik küçük Grek tiyatrosu olup, sahne binası kısmen korunmuş halde güneye bakıyor; Opramoas'ın anıt mezarı ise Anadolu'nun en uzun antik Yunanca yazıtını barındırıyor. Kumluca'dan dar yolla kolayca ulaşılıyor, orman yürüyüşleri ve terk edilmiş evlerle dolu tepede sakin, mistik bir atmosfer hakim; ziyaretçiler antik taş evler arasında tarihle baş başa kalıyor.","au":"https://sanat-magazin.com/yazarlarimiz/sahikaoner/rhodiapolis-antik-kenti-kumluca/","at":"RHODİAPOLİS ANTİK KENTİ & KUMLUCA","as":"İstanbul Sanat Magazin","wt":"https://tr.wikipedia.org/wiki/Rhodiapolis"},{"n":"Ariassos","la":37.18111,"lo":30.4725,"r":"Pisidia","rc":"Pisidya","nr":"Dağbeli/Akkoç Köyü","ac":"Orta","ad":"Orta","f":"Ücretsiz","tc":"Unknown; likely ruined/advanced destruction like other non-gate structures","v":"Uncrowded mountain pass ruins on slopes, hiking required, unguarded/free access, overgrown minor structures, Pisidian sarcophagi necropolis, forgotten site","rk":14,"su":"Toros Dağları'nın eteklerinde, Antalya'ya 50 km kuzeyde yer alan Ariassos Antik Kenti, iyi korunmuş üç kemerli anıtsal şehir kapısı, tiyatro kalıntıları, hamamlar, agora ve nekropolleriyle dikkat çeker. Sakin ve gizemli atmosferi ile tarih severleri büyüleyen site, Akkoç Köyü yakınından kolayca ulaşılabilir; Antalya-Burdur yolundan saparak kısa bir yolculukla varılır. Ziyaretçiler, çam ormanları arasında antik yolları keşfederek huzurlu bir zaman yolculuğu yapar, dağ havasının ferahlığında kalıntıları fotoğraflayarak unutulmaz anlar biriktirir.","au":"https://www.gzt.com/foto-galeri/seyahat/ariassos-antik-kenti-tarihle-dag-havasinin-bulustugu-yer-2046979","at":"Ariassos Antik Kenti: Tarihle dağ havasının buluştuğu yer & Ariassos Antik Kenti – Antalya - Gezi Fotoğrafları ve Blog Sayfası","as":"GZT, gezcek.com Blog","wt":"https://tr.wikipedia.org/wiki/Ariassos"},{"n":"Prusias ad Hypium (Konuralp)","la":40.9061,"lo":31.1481,"r":"Bithynia","rc":"Bitinya","nr":"Konuralp, Düzce","ac":"Orta","ad":"Orta (Düzce'den 8 km, ulaşımı kolay)","f":"Ücretsiz","tc":"İyi korunmuş — oturma sıraları, sahne binası, tonozlu geçitler mevcut, kazılar devam ediyor","v":"Yeşillikler içinde açık hava tiyatrosu, modern Konuralp mahallesinin içinde antik kent, sakin atmosfer","au":"https://www.ibrahiminyeri.com/post/konuralp-prusias-ad-hypium-antik-kenti-duzce","at":"Konuralp – Prusias ad Hypium Antik Kenti: Düzce’nin Binlerce Yıllık Mirası","as":"ibrahiminyeri.com","wt":"https://tr.wikipedia.org/wiki/Prusias_Ad_Hypium","su":"Düzce Konuralp'teki Prusias ad Hypium Antik Kenti, \"Batı Karadeniz'in Efes'i\" olarak anılan, Helenistik ve Roma dönemlerine ait muhteşem kalıntılarıyla özel bir yerdir. Yaklaşık 10.000 kişilik antik tiyatrosu, iki kademeli yapısı, tonozlu geçitleri ve aslan pençeli süslemeleriyle dikkat çeker; halk arasında \"Kırk Basamaklar\" diye bilinir. Tepe üzerinde, Melen Çayı manzarasıyla mistik bir atmosfere sahip olan kentte, surlar, su kemerleri ve Roma köprüsü gibi yapılar da ziyaretçiyi büyüler. Düzce merkezden 5-8 km kuzeyde, kolayca araçla ulaşılabilir; sabah saatlerinde gezmek idealdir.","rk":15},{"n":"İznik (Nikaia) Roma Tiyatrosu","la":40.4268,"lo":29.7169,"r":"Bithynia","rc":"Bitinya","nr":"İznik, Bursa","ac":"Kolay","ad":"Kolay (İznik şehir merkezinde, kolayca ulaşılır)","f":"Ücretsiz","tc":"2024'te restorasyonla ziyarete açıldı, iyi korunmuş, oturma sıraları ve sahne binası görülebilir","v":"Tarihi İznik surları içinde, 1. Konsil kenti, göl kenarında atmosferik, yeni restore edilmiş","au":"https://gezibilen.com/travelpoint/bursa/iznik-roma-tiyatrosu","at":"İznik Roma Tiyatrosu - GeziBilen Dijital Rehber","as":"GeziBilen","wt":"https://tr.wikipedia.org/wiki/%C4%B0znik","su":"Bursa’nın İznik ilçesinde, antik Nikaia kentinin kalbinde yer alan Roma Tiyatrosu, MS 2. yüzyılda İmparator Traianus döneminde inşa edilmiş 15.000 kişilik devasa bir yapıdır ve Türkiye’deki Roma tiyatroları arasında mimari özellikleriyle (düz araziye tonozlarla yükseltilmiş olması) özel bir yere sahiptir. 19 oturma kademesi, geniş galerileri ve beşik tonozlarıyla dikkat çeken tiyatro, gladyatör dövüşleri ve oyunlara ev sahipliği yapmış, kazılarda bulunan kandiller, sikkeler gibi eserler dönemin hayatını aydınlatmaktadır. İznik Gölü kıyısındaki bu büyüleyici atmosferde, geçmişin izlerini hissedebileceğiniz site salı-pazar 08:00-17:00 saatleri arasında ücretsiz ziyaret edilebilir. Bursa merkezden 80 km mesafede, İznik merkeze otobüsle veya araçla kolayca ulaşılır, ilçe içinden yürüyerek tiyatroya varabilirsiniz.","rk":16},{"n":"Hadrianopolis (Budaklar)","la":40.9258,"lo":32.4913,"r":"Paphlagonia","rc":"Paflagonya","nr":"Eskipazar, Karabük","ac":"Uzak","ad":"Uzak (Ankara'dan 200 km, kazı alanı)","f":"Ücretsiz","tc":"Kazıyla ortaya çıkarılıyor, tiyatro kalıntıları görülebilir, mozaikler ünlü","v":"Karadeniz'in Zeugma'sı, eşsiz mozaikler, devam eden kazılar, keşif atmosferi","au":"https://www.kulturportali.gov.tr/turkiye/karabuk/gezilecekyer/hadrianopolis-antik-kenti","at":"HADRİANAPOLİS ANTİK KENTİ","as":"Kültür Portalı","wt":"https://tr.wikipedia.org/wiki/Hadrianopolis_(Paflagonya)","su":"Karabük'ün Eskipazar ilçesinde yer alan Hadrianopolis antik kenti, Roma ve Bizans dönemlerine ait mozaikleri, kiliseleri ve kamu yapılarıyla Paflagonya bölgesinin önemli bir arkeolojik hazinesidir; özellikle cennet nehirlerini betimleyen eşsiz mozaikleri onu özel kılar. Antik tiyatro kalıntıları, surlar ve hamamlar gibi yapılarla zenginleşen kentte, kazılarla gün yüzüne çıkan tiyatro bölümü Roma döneminin mimari şaheserini yansıtır. Huzurlu doğa içinde, Viranşehir mevkiinde yer alan site sakin bir atmosfer sunar, sanki zaman durmuş gibi hissettirir. Eskipazar ilçe merkezine 3 km uzaklıkta olup, Ankara-Karabük yolundan kolayca ulaşılabilir, Budaklar Köyü üzerinden asfalt yolla erişim sağlanır.","rk":17},{"n":"Erythrai (Ildırı)","la":38.3828,"lo":26.4808,"r":"Ionia","rc":"İyonya","nr":"Ildırı köyü, Çeşme (İzmir)","ac":"Orta","ad":"Orta (Çeşme'den 20 km, köy yoluyla)","f":"Ücretsiz","tc":"Helenistik tiyatro, çift diazomalı, oturma alanları görülebilir, sahne temelleri kısmen ayakta","v":"İyon'un 12 kentinden biri, akropol tepesinde deniz manzarası, bitki örtüsüyle kaplı sakin kalıntılar, az ziyaretçi","au":"https://www.mehmetakinci.com.tr/erythrai-antik-kenti-2.html","at":"Erythrai Antik Kenti Çeşme İzmir","as":"Mehmet Akıncı Blog","wt":"https://tr.wikipedia.org/wiki/Erithrai","su":"Erythrai Antik Kenti, İyon'un 12 şehrinden biri olarak \"Kızıl Kent\" adıyla anılan, kırmızı toprağı ve zengin tarihiyle özel bir yere sahip. Akropol kuzey yamacındaki antik tiyatro, Helenistik döneme ait çift diazomalı yapısıyla dikkat çeker ve sahne temelleri kısmen günümüze ulaşmış. Deniz kenarındaki sakin atmosferi, muhteşem körfez manzaraları ve kalıntılar arasında huzurlu bir gezi sunar. İzmir'den Çeşme'ye, oradan Ildırı köyüne dolmuşla ulaşılır; köyden tabelaları takip ederek siteye yürüyerek çıkılır.","rk":18},{"n":"Kyme (Nemrut)","la":38.7595,"lo":26.9363,"r":"Aeolis","rc":"Aiolis","nr":"Çakmaklı, Aliağa (İzmir)","ac":"Orta","ad":"Orta (Aliağa'dan 20 dk, sanayi alanları arasında)","f":"Ücretsiz","tc":"Helenistik-Roma tiyatro kalıntıları, oturma basamakları sökülmüş ama yapı tanınabilir","v":"Aiolis'in en büyük kenti, Nemrut Körfezi kıyısında, sanayi tesisleri arasında mistik atmosfer, Amazon efsanesi","au":"https://www.gezinomi.com/gezi-rehberi/aliaga-nin-gorulmesi-gereken-tarihi-ve-turistik-yerleri.html","at":"Aliağa'nın Görülmesi Gereken Tarihi ve Turistik Yerleri","as":"Gezinomi","wt":"https://tr.wikipedia.org/wiki/Kyme","su":"İzmir Aliağa'da Nemrut Körfezi kıyısında yer alan Kyme Antik Kenti, Aiolis'in en büyük ve en eski kentlerinden biri olarak liman ticaretindeki önemi ve Amazon Kyme efsanesiyle özel bir yere sahiptir. Hellenistik döneme ait Roma tiyatrosu kalıntıları, surlar ve agora gibi yapılarla dikkat çeker; sanayi tesisleri arasında sakin ve mistik bir atmosfere sahiptir. Aliağa merkezden özel araçla 20-25 dakikada veya 745/756 ESHOT hatlarıyla Çakmaklı mevkiine ulaşarak ziyaret edebilirsiniz.","rk":19},{"n":"Notion","la":37.9928,"lo":27.1975,"r":"Ionia/Aeolis","rc":"İyonya","nr":"Ahmetbeyli, Menderes (İzmir)","ac":"Uzak","ad":"Uzak (tepeye yürüyüş gerekli, altyapı yok)","f":"Ücretsiz","tc":"3.500 kişilik Helenistik tiyatro, doğu yamacında, çoğunlukla gömülü ama yapı tanınabilir","v":"Kolophon'un liman kenti, denize hâkim tepe, çitlembik ağaçları ve koyun sürüleri, huzurlu ve yalnız","au":"https://dagakactim.blogspot.com/2012/12/kolophon-klaros-ve-notionu-solumak.html","at":"KOLOPHON, KLAROS ve NOTION'U SOLUMAK","as":"Dağa Kaçtım blogu","wt":"https://tr.wikipedia.org/wiki/Notion_(antik_kent","su":"Ahmetbeyli’de, Kuşadası-Seferihisar yolunun 40. kilometresinde yer alan Notion Antik Kenti, Kolophon’un liman kenti olarak özel bir yere sahiptir; Athena Polias Tapınağı’nın denize hâkim konumu ve iyi korunmuş Hellenistik surlarıyla dikkat çeker. Doğu yamacındaki yaklaşık 3500 kişilik antik tiyatro, agora büyüklüğü ve akropol manzarasıyla büyüleyici bir atmosfere sahip; çitlembik ağaçları, koyun sürüleri ve Ege Denizi’nin mavisi huzurlu bir gezi sunar. İzmir merkeze 50 km uzaklıkta, Ahmetbeyli sahilinden tepeye yürüyerek veya araçla dere kenarından tırmanarak ulaşabilirsiniz.","rk":20},{"n":"Kyzikos (Cyzicus)","la":40.3984,"lo":27.8845,"r":"Mysia","rc":"Misya","nr":"Erdek, Bandırma (Balıkesir)","ac":"Uzak","ad":"Uzak (orman içinde, zorlu arazi, ulaşım güç)","f":"Ücretsiz","tc":"Devasa Roma amfiteatr kalıntıları (155x180m), tonozlu geçitler ve duvarlar görülebilir, çoğunlukla ormanla kaplı","v":"Antik dünyanın en büyük tapınağının olduğu kent, orman içinde kaybolmuş dev kalıntılar, macera gerektiren keşif","au":"https://www.fumefly.com/blog/yazi/kyzikos-antik-kenti-hakkinda-merak-edilen-her-sey/","at":"Kyzikos Antik Kenti Hakkında Merak Edilen Her Şey - FumeFly Blog","as":"FumeFly Blog","wt":"https://tr.wikipedia.org/wiki/Kizikos","su":"Kyzikos Antik Kenti, üç doğal limanı ve stratejik konumuyla antik dünyanın en önemli ticaret merkezlerinden biri olarak öne çıkar; Hadrian Tapınağı ve elektron sikkeleriyle ün salmıştır. Hellenistik döneme ait 10-15 bin kişilik görkemli tiyatrosu, doğal araziye oturtulmuş devasa yapısıyla ziyaretçileri büyüler. Sakin sabah saatlerinde dolaşırken huzurlu bir tarih atmosferi hakimdir, agora ve tapınak kalıntıları arasında zaman yolculuğu yaparsınız. Erdek-Bandırma karayolu üzerinde yer alır; Erdek’ten 8 km doğuda, özel araçla veya halk otobüsleriyle kolayca ulaşabilirsiniz.","rk":21},{"n":"Ankara Roma Tiyatrosu","la":39.94194,"lo":32.86028,"r":"Galatia","rc":"Galatya","nr":"Ankara Ulus (şehir merkezi)","ac":"Kolay","ad":"Kolay (Ankara Ulus'ta, metro ile ulaşılır)","f":"Ücretsiz","tc":"Restore edilmiş, oturma sıraları ve sahne yapısı görülebilir, restorasyon devam ediyor","v":"Ankara Kalesi yamacında, şehrin kalbinde Roma antik tiyatrosu, ücretsiz ve her gün açık","au":"https://www.gezinomi.com/gezi-rehberi/altindag-in-gorulmesi-gereken-tarihi-ve-turistik-yerleri.html","at":"Altındağ’ın Görülmesi Gereken Tarihi ve Turistik Yerleri","as":"Gezinomi","wt":"https://tr.wikipedia.org/wiki/Ankara_Roma_Tiyatrosu","su":"Ankara Roma Tiyatrosu, MS 2. yüzyılda inşa edilmiş, Ulus semtinde Ankara Kalesi'nin kuzeybatı yamacında yer alan özel bir antik Roma tiyatrosudur; cavea, orkestra ve sahne yapısıyla Roma mimarisinin Anadolu'daki nadir örneklerinden biridir. Atmosferi, tarihi kazılarda ortaya çıkarılan heykeller ve eserlerle zenginleşmiş olup, Osmanlı döneminde cam-seramik atölyesi olarak kullanılmıştır; bu buluntular Anadolu Medeniyetleri Müzesi'nde sergilenmektedir. Ulaşım için Ulus metro durağından inip otobüslerle (185, 203 vb.) Kale mevkiine gidilebilir, giriş ücretsiz ve her gün açıktır.","rk":22},{"n":"Apameia Kelainai","la":38.07167,"lo":30.16556,"r":"Phrygia","rc":"Frigya","nr":"Dinar (Afyonkarahisar)","ac":"Orta","ad":"Orta (Afyon'a 100 km, Dinar ilçe merkezinde)","f":"Ücretsiz","tc":"Helenistik tiyatro kalıntıları, kısmen kazılmış, yerinde araştırmalar devam ediyor","v":"Efes'ten sonra en önemli Roma ticaret merkezi, Mercimek Tepesi yamacında sakin kalıntılar, az ziyaretçi","au":"http://arkeolojigezginleri.blogspot.com/2014/08/apameia-apameia-kibotos.html","at":"APAMEIA ( APAMEİA KİBOTOS )","as":"Arkeoloji Gezginleri blogu","wt":"https://tr.wikipedia.org/wiki/Apameia_Kibotos","su":"Apameia Kelainai Antik Kenti, Afyonkarahisar'ın Dinar ilçesinde yer alan, MÖ 6. yüzyıldan beri Efes'ten sonraki en önemli ticaret merkezi olarak bilinen tarihi bir yerleşimdir; stratejik konumu sayesinde Roma ve Helenistik dönemlerde büyük önem kazanmıştır. Mercimek Tepesi yamaçlarındaki Helenistik tiyatro kalıntıları, stadyum ve kilise gibi yapılarla dikkat çeker. Sakin ve depremlerle şekillenmiş atmosferi, antik ticaret yollarının kesişiminde huzurlu bir tarih yolculuğu sunar. Afyonkarahisar merkeze 100 km uzaklıkta, Dinar üzerinden karayoluyla kolayca ulaşılabilir; yakınındaki Suçıkan doğal kaynağıyla da bilinir.","rk":23},{"n":"Kolybrassos","la":36.7316,"lo":31.9754,"r":"Pamphylia","rc":"Pamfilya","nr":"Bayırkozağacı, Alanya (Antalya)","ac":"Uzak","ad":"Uzak (Toros Dağları'nda vadi içinde, özel araç gerekli)","f":"Ücretsiz","tc":"Küçük tiyatro/odeon kalıntıları, iyi korunmuş yapı izleri","v":"Toroslar'daki gizli vadi kenti, Medusa kaya mezarı, İon tapınağı neredeyse sağlam, macera gerektiren keşif","au":"https://turizmtr.com/akdeniz/antalya/antalya-tarihi-mirasi/antalya-colybrassus-antik-kenti-alanyanin-toros-daglarindaki-gizli-hazinesi-1284/","at":"Antalya Colybrassus Antik Kenti: Alanya'nın Toros Dağlarındaki Gizli Hazinesi","as":"Türkiye Turizm Rehberi","wt":"https://tr.wikipedia.org/wiki/Colybrassus","su":"Alanya'nın yaklaşık 30 km kuzeydoğusunda, Toros Dağları'ndaki vadi içinde yer alan Kolybrassos Antik Kenti, Helenistik, Roma ve Bizans dönemlerine ait kalıntılarıyla dikkat çeker; özellikle odeon ve eksedra gibi kültürel yapılarla özel bir atmosfere sahiptir. Medusa başlı kaya mezarı ve neredeyse çatıya kadar sağlam İon tapınağı, kentin benzersiz mimari zenginliğini yansıtır. Alanya'dan özel araçla ulaşılabilir, ücretsiz gezilebilir ve dağlık konumundan dolayı huzurlu, keşif dolu bir deneyim sunar.","rk":24},{"n":"Pednelissos","la":37.2142,"lo":30.9341,"r":"Pisidia","rc":"Pisidya","nr":"Kozan köyü, Serik (Antalya)","ac":"Uzak","ad":"Uzak (Toroslar eteklerinde, patika yol, tesis yok)","f":"Ücretsiz","tc":"Oturma sıraları iyi korunmuş, Helenistik tiyatro kalıntıları","v":"Saklı Pisidya kenti, ormanlık tepede surlar ve agora, mistik ve kalabalıktan uzak atmosfer","au":"https://serikreklam.com.tr/pednelissos-antik-kenti-antalyanin-sakli-tarih-hazinesi/","at":"Pednelissos Antik Kenti: Antalya'nın Saklı Tarih Hazinesi","as":"Serik Reklam","wt":"Yok (Türkçe Wikipedia sayfası bulunamadı; İngilizce: https://en.wikipedia.org/wiki/Pednelissus)","su":"Pednelissos Antik Kenti, Antalya Serik Kozan Köyü yakınlarında Bodrumkaya Tepesi'nde yer alan, Pisidya'nın önemli Hellenistik kökenli kentlerinden biridir; surlar, agora, market binası, Apollon Kutsal Alanı, hamam ve tiyatro kalıntılarıyla dikkat çeker. Tiyatrosu sosyal-kültürel yaşamı yansıtan oturma sıraları iyi korunmuş yapılar arasındadır. Toroslar'ın eteklerinde ormanlık alanda huzurlu, kalabalıktan uzak mistik bir atmosfere sahip olup doğa yürüyüşü ve fotoğrafçılık için idealdir. Antalya merkezden 30 km uzaklıkta Kepez üzerinden özel araçla tabelaları takip ederek ulaşılır, giriş ücretsiz ve tesis yoktur.","rk":25}];
// ========== STATE ==========
let map, markers = [], activeMarker = null;
let currentView = 'map'; // 'map' | 'list'
let filters = { region: 'all', access: 'all' };
let isDark = true;
// ========== INIT ==========
document.addEventListener('DOMContentLoaded', () => {
initMap();
initFilters();
initThemeToggle();
initListToggle();
initSheet();
renderList();
});
// ========== MAP ==========
function getStyleUrl() {
return isDark
? 'https://tiles.openfreemap.org/styles/dark'
: 'https://tiles.openfreemap.org/styles/positron';
}
function initMap() {
map = new maplibregl.Map({
container: 'map',
style: getStyleUrl(),
center: [30.0, 37.0],
zoom: 6.2,
attributionControl: true,
maxZoom: 15,
minZoom: 4,
});
map.addControl(new maplibregl.NavigationControl({ showCompass: false }), 'top-right');
map.on('load', () => {
addMarkers();
// Fit to all markers on initial load
const bounds = new maplibregl.LngLatBounds();
SITES.forEach(s => bounds.extend([s.lo, s.la]));
map.fitBounds(bounds, { padding: { top: 20, bottom: 60, left: 20, right: 20 }, maxZoom: 9 });
});
}
function addMarkers() {
clearMarkers();
const filtered = getFilteredSites();
filtered.forEach(site => {
const el = document.createElement('div');
el.className = 'marker';
el.dataset.rank = site.rk;
const size = site.rk <= 10 ? 16 : 12;
const dot = document.createElement('div');
dot.className = 'marker-dot';
dot.style.width = size + 'px';
dot.style.height = size + 'px';
el.appendChild(dot);
el.addEventListener('click', (e) => {
e.stopPropagation();
openSite(site);
});
const marker = new maplibregl.Marker({ element: el, anchor: 'center' })
.setLngLat([site.lo, site.la])
.addTo(map);
markers.push({ marker, el, site });
});
updateCount(filtered.length);
}
function clearMarkers() {
markers.forEach(m => m.marker.remove());
markers = [];
activeMarker = null;
}
function setActiveMarker(site) {
markers.forEach(m => {
m.el.classList.toggle('active', m.site.rk === site.rk);
});
}
// ========== FILTERS ==========
function getFilteredSites() {
return SITES.filter(s => {
if (filters.region !== 'all' && s.rc !== filters.region) return false;
if (filters.access !== 'all' && s.ac !== filters.access) return false;
return true;
});
}
function initFilters() {
document.querySelectorAll('.chip[data-filter]').forEach(chip => {
chip.addEventListener('click', () => {
const type = chip.dataset.filter;
const value = chip.dataset.value;
filters[type] = value;
document.querySelectorAll(`.chip[data-filter="${type}"]`).forEach(c => {
c.classList.toggle('active', c.dataset.value === value);
});
addMarkers();
renderList();
closeSheet();
fitToMarkers();
});
});
}
function fitToMarkers() {
const filtered = getFilteredSites();
if (filtered.length === 0) return;
if (filtered.length === 1) {
map.flyTo({ center: [filtered[0].lo, filtered[0].la], zoom: 10, duration: 800 });
return;
}
const bounds = new maplibregl.LngLatBounds();
filtered.forEach(s => bounds.extend([s.lo, s.la]));
map.fitBounds(bounds, { padding: { top: 20, bottom: 60, left: 20, right: 20 }, duration: 800, maxZoom: 12 });
}
function updateCount(count) {
const regions = new Set(getFilteredSites().map(s => s.rc));
document.getElementById('countText').textContent =
`${count} antik kent • ${regions.size} bölge`;
}
// ========== THEME ==========
function initThemeToggle() {
const btn = document.getElementById('themeToggle');
const moonIcon = document.getElementById('moonIcon');
const sunIcon = document.getElementById('sunIcon');
btn.addEventListener('click', () => {
isDark = !isDark;
document.body.dataset.theme = isDark ? 'dark' : 'light';
moonIcon.style.display = isDark ? '' : 'none';
sunIcon.style.display = isDark ? 'none' : '';
map.setStyle(getStyleUrl());
map.once('style.load', () => {
addMarkers();
});
});
}
// ========== LIST TOGGLE ==========
function initListToggle() {
const btn = document.getElementById('listToggle');
const listView = document.getElementById('listView');
const mapContainer = document.getElementById('mapContainer');
const siteCount = document.getElementById('siteCount');
const mapFooter = document.getElementById('mapFooter');
btn.addEventListener('click', () => {
if (currentView === 'map') {
currentView = 'list';
btn.classList.add('active');
listView.classList.add('visible');
siteCount.style.display = 'none';
mapFooter.style.display = 'none';
} else {
currentView = 'map';
btn.classList.remove('active');
listView.classList.remove('visible');
siteCount.style.display = '';
mapFooter.style.display = '';
}
});
}
function switchToMap(site) {
currentView = 'map';
document.getElementById('listToggle').classList.remove('active');
document.getElementById('listView').classList.remove('visible');
document.getElementById('siteCount').style.display = '';
document.getElementById('mapFooter').style.display = '';
map.flyTo({ center: [site.lo, site.la], zoom: 12, duration: 1200 });
setTimeout(() => openSite(site), 600);
}
// ========== LIST RENDERING ==========
function renderList() {
const listView = document.getElementById('listView');
const filtered = getFilteredSites().sort((a, b) => a.rk - b.rk);
let html = '';
filtered.forEach(site => {
const excerpt = site.su.substring(0, 120) + '…';
html += `
<div class="site-card" data-rank="${site.rk}" onclick="switchToMap(SITES.find(s=>s.rk===${site.rk}))">
<div class="card-rank">${site.rk}</div>
<div class="card-content">
<div class="card-name">${site.n}</div>
<div class="card-badges">
<span class="badge badge-region" data-region="${site.rc}">${site.rc}</span>
<span class="badge badge-access" data-access="${site.ac}">${site.ac}</span>
</div>
<div class="card-excerpt">${excerpt}</div>
</div>
</div>
`;
});
html += `
<div class="list-footer">
<div class="list-footer-text">${filtered.length} antik kent • ${new Set(filtered.map(s => s.rc)).size} bölge</div>
</div>
`;
listView.innerHTML = html;
}
// ========== BOTTOM SHEET ==========
function initSheet() {
const overlay = document.getElementById('sheetOverlay');
const closeBtn = document.getElementById('sheetClose');
overlay.addEventListener('click', closeSheet);
closeBtn.addEventListener('click', closeSheet);
// Drag to dismiss
let startY = 0, currentTranslate = 0, isDragging = false;
const handle = document.getElementById('sheetHandle');
const sheet = document.getElementById('bottomSheet');
function onDragStart(e) {
isDragging = true;
startY = e.touches ? e.touches[0].clientY : e.clientY;
sheet.style.transition = 'none';
}
function onDragMove(e) {
if (!isDragging) return;
const y = e.touches ? e.touches[0].clientY : e.clientY;
const delta = y - startY;
if (delta > 0) {
currentTranslate = delta;
sheet.style.transform = `translateY(${delta}px)`;
}
}
function onDragEnd() {
if (!isDragging) return;
isDragging = false;
sheet.style.transition = '';
if (currentTranslate > 120) {
closeSheet();
} else {
sheet.style.transform = 'translateY(0)';
}
currentTranslate = 0;
}
handle.addEventListener('touchstart', onDragStart, { passive: true });
handle.addEventListener('touchmove', onDragMove, { passive: true });
handle.addEventListener('touchend', onDragEnd);
handle.addEventListener('mousedown', onDragStart);
document.addEventListener('mousemove', onDragMove);
document.addEventListener('mouseup', onDragEnd);
}
function openSite(site) {
setActiveMarker(site);
const sheet = document.getElementById('bottomSheet');
const overlay = document.getElementById('sheetOverlay');
document.getElementById('sheetRank').textContent = site.rk;
document.getElementById('sheetName').textContent = site.n;
// Badges
const badgesHtml = `
<span class="badge badge-region" data-region="${site.rc}">${site.rc}</span>
<span class="badge badge-access" data-access="${site.ac}">${site.ac}</span>
<span class="badge badge-fee">${site.f.split('(')[0].trim()}</span>
`;
document.getElementById('sheetBadges').innerHTML = badgesHtml;
// Sanitize theater condition (strip markdown links)
const cleanTc = site.tc.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1').replace(/\(https?:\/\/[^)]+\)/g, '');
// Body
const gmapsUrl = `https://www.google.com/maps/search/?api=1&query=${site.la},${site.lo}`;
let bodyHtml = `
<div class="sheet-section">
<div class="sheet-section-label">Özet</div>
<p>${site.su}</p>
</div>
<div class="sheet-section">
<div class="sheet-section-label">Tiyatro Durumu</div>
<p class="detail-text">${cleanTc}</p>
</div>