606 lines
72 KiB
JavaScript
606 lines
72 KiB
JavaScript
import{d as Q,a as ee,p as Z,m as S,M as F,k as R,c as ae}from"./motor-DZcp5Afu.js";const H=[{slug:"modern-villa",ad:"Modern Villa",tur:"Mimari Tasarım",konum:"Temsilî — Ege kıyısı",yil:"2025",alan:"340 m²",kat:"2 kat + teras",ozet:"Eğimli araziye oturan, avluya açılan iki katlı bir villa önerisi. Salon ve mutfak zemin katta tek bir akışta birleşir; üst kat yatak odalarına ve çalışma mekânına ayrılır. Teras, güneşin batış yönüne doğru uzatılmıştır.",yaklasim:["Arazi eğimi, kot farkı ile değil yatay düzlemlerle karşılandı; giriş kotu avluya bağlandı.","Salon-cephe ilişkisi tam boy camla kuruldu, saçak derinliği yaz güneşini içeri almıyor.","Mutfak adası, yemek ve salon arasında geçiş eşiği olarak çalışıyor; servis hattı arka cepheye alındı.","Terasta gölgelenme, pergola ve doğal taş döşemenin ısı kütlesi üzerinden sağlandı."],olculer:[{ad:"Salon",deger:"42 m² · 6,0 × 7,0 m"},{ad:"Mutfak",deger:"18 m² · 4,5 × 4,0 m"},{ad:"Ebeveyn yatak odası",deger:"22 m² · 4,6 × 4,8 m"},{ad:"Çocuk odası",deger:"14 m² · 3,6 × 3,9 m"},{ad:"Teras",deger:"36 m²"},{ad:"Kat yüksekliği",deger:"3,05 m (net)"}],teknikler:["AutoCAD kat planı ve kesit paftaları (1/50)","Cephe görünüşleri ve malzeme paftası","Pergola detay kesitleri","Yerleşim (vaziyet) planı","3D kütle ve dış mekân modellemesi"],asamalar:[{ad:"İhtiyaç analizi",aciklama:"Aile yapısı, günlük akış ve depolama ihtiyacı çıkarıldı.",durum:"Tamamlandı"},{ad:"Ön tasarım",aciklama:"Üç alternatif kütle ve iki plan şeması üretildi.",durum:"Tamamlandı"},{ad:"Teknik çizim",aciklama:"1/50 plan, kesit ve cepheler AutoCAD üzerinde çizildi.",durum:"Tamamlandı"},{ad:"3D sunum",aciklama:"Dış mekân ve ana iç mekân görselleri hazırlandı.",durum:"Tamamlandı"},{ad:"Revizyon",aciklama:"Teras genişliği ve mutfak adası konumu güncellendi.",durum:"Tamamlandı"},{ad:"Teslim",aciklama:"Pafta seti, ölçü listesi ve malzeme föyü teslim edildi.",durum:"Teslim edildi"}],plan:{genislik:14,derinlik:11},palet:{zemin:"#efe7d9",duvar:"#3a3733",vurgu:"#9a6f3f"}},{slug:"luks-konut",ad:"Lüks Konut",tur:"İç Mimari",konum:"Temsilî — şehir merkezi rezidans",yil:"2025",alan:"210 m²",kat:"Tek kat (dubleks üst)",ozet:"Rezidans dairesinde iç mekân bütünlüğü üzerine kurulu bir düzenleme. Giriş holünden başlayan aks, salon boyunca devam edip manzaraya açılır; yatak odaları bu akstan ayrı bir koridorla koparılır.",yaklasim:["Mevcut taşıyıcı akslar korunarak yalnızca bölücü duvarlar yeniden düzenlendi.","Doğal taş, meşe kaplama ve patinajlı pirinç yüzeyler sınırlı sayıda malzemeyle birleştirildi.","Aydınlatma üç katmanda kuruldu: genel, vurgu ve dolaylı (kartonpiyer içi).","Depolama, duvar yüzeylerine gömülerek hacimden çalıntı yapılmadı."],olculer:[{ad:"Salon",deger:"38 m² · 5,8 × 6,6 m"},{ad:"Ana süit",deger:"26 m² · 4,4 × 6,0 m"},{ad:"Giyinme odası",deger:"8 m² · 2,2 × 3,6 m"},{ad:"Mutfak + ada",deger:"16 m²"},{ad:"Hol / koridor",deger:"11 m²"},{ad:"Tavan yüksekliği",deger:"2,85 m"}],teknikler:["Mobilya planı ve yerleşim paftası","İç cephe açılımları (elevation)","Tavan planı ve aydınlatma şeması","Malzeme ve renk föyü","Priz/anahtar elektrik yerleşimi"],asamalar:[{ad:"Ölçüm",aciklama:"Yerinde ölçü alındı, mevcut durum planı çizildi.",durum:"Tamamlandı"},{ad:"İhtiyaç analizi",aciklama:"Kullanıcı profili ve yaşam senaryosu belirlendi.",durum:"Tamamlandı"},{ad:"Ön tasarım",aciklama:"Yerleşim alternatifleri ve malzeme yönü sunuldu.",durum:"Tamamlandı"},{ad:"Teknik çizim",aciklama:"Mobilya planı ve iç cepheler çizildi.",durum:"Tamamlandı"},{ad:"Revizyon",aciklama:"Mutfak adası ve oturma grubu yerleşimi revize edildi.",durum:"Tamamlandı"},{ad:"Teslim",aciklama:"Uygulama paftaları ve metraj listesi teslim edildi.",durum:"Teslim edildi"}],plan:{genislik:13,derinlik:9.5},palet:{zemin:"#e8e0d2",duvar:"#4a443d",vurgu:"#b08a52"}},{slug:"bes-katli-apartman",ad:"Beş Katlı Apartman",tur:"Uygulama Projesi",konum:"Temsilî — Anadolu yakası",yil:"2024",alan:"1.240 m²",kat:"5 kat + zemin",ozet:"Dar parsel üzerinde, her katta iki daire olacak şekilde kurgulanmış bir apartman uygulama projesi. Yangın merdiveni ve asansör çekirdeği ortak alanda toplandı; daireler iki cepheden ışık alıyor.",yaklasim:["Parsef genişliği 11 m olduğundan derin plan tipolojisi yerine çift yönlü cephe kullanıldı.","Islak hacimler çekirdeğe yakın toplandı, tesisat şaftları üst üste getirildi.","Asansör holü ve merdiven, gün ışığı alan bir aydınlıkla desteklendi.","Kot almaşık düzeni ile kütle hareketi elde edildi, balkonlar cepheden okunur hale getirildi."],olculer:[{ad:"A tipi daire",deger:"96 m² · 3+1"},{ad:"B tipi daire",deger:"84 m² · 2+1"},{ad:"Salon",deger:"21 m² · 4,2 × 5,0 m"},{ad:"Ortak çekirdek",deger:"28 m²"},{ad:"Balkon",deger:"5,5 m² ila 7 m²"},{ad:"Kat yüksekliği",deger:"3,00 m (döşeme dahil)"}],teknikler:["Kot ve aks planı, vaziyet planı","Kalıp planı ile uyumlu mimari planlar","Yangın kaçış şeması","Kesit ve görünüşler (1/100)","Islak hacim detayları"],asamalar:[{ad:"Ön tasarım",aciklama:"Parsel verileri ve emsal hesabı üzerinden kütle çalışıldı.",durum:"Tamamlandı"},{ad:"Teknik çizim",aciklama:"1/50 planlar ve 1/100 görünüşler üretildi.",durum:"Tamamlandı"},{ad:"Uygulama projesi",aciklama:"Detay ve mahal listeleri hazırlandı.",durum:"Tamamlandı"},{ad:"Koordinasyon",aciklama:"Statik ve mekanik projelerle çakışma kontrolü yapıldı.",durum:"Tamamlandı"},{ad:"Teslim",aciklama:"Ruhsat pafta seti düzenlendi.",durum:"Teslim edildi"}],plan:{genislik:11,derinlik:16},palet:{zemin:"#ece6db",duvar:"#3f3b36",vurgu:"#8f6b3e"}},{slug:"ticari-ofis",ad:"Ticari Ofis",tur:"Planlama",konum:"Temsilî — iş merkezi katı",yil:"2025",alan:"480 m²",kat:"Tek kat",ozet:"Açık ofis, toplantı odaları ve odak çalışma bölmeleri arasında denge kurulmuş bir kat planı. Dolaşım omurgası cephe boyunca kurgulandı; kapalı hacimler çekirdeğe alınarak gün ışığı maksimum kullanıldı.",yaklasim:["Kapalı hacimler çekirdek çevresinde toplandı, açık ofis cepheye taşındı.","Dolaşım omurgası cephe boyunca ilerletilerek gün ışığı koridora taşındı.","Akustik, toplantı odalarında çift cam ara bölme ile çözüldü.","Kablolama ve veri hattı, yükseltilmiş döşeme ile zeminde toplandı."],olculer:[{ad:"Açık ofis",deger:"210 m² · yaklaşık 42 çalışma noktası"},{ad:"Büyük toplantı odası",deger:"34 m² · 5,0 × 6,8 m"},{ad:"Odak bölmeleri",deger:"4 × 4,5 m²"},{ad:"Resepsiyon / karşılama",deger:"26 m²"},{ad:"Dinlenme alanı",deger:"32 m²"},{ad:"Akustik tavan yüksekliği",deger:"3,1 m (net)"}],teknikler:["Yerleşim ve dolaşım şeması","Aks ve modülerlik planı (1,2 m ofis modülü)","Elektrik ve veri yerleşim şeması","Tavan planı ve aydınlatma hesabı","Metraj ve mahal listesi"],asamalar:[{ad:"İhtiyaç analizi",aciklama:"Departman sayıları ve çalışma biçimi haritalandı.",durum:"Tamamlandı"},{ad:"Planlama",aciklama:"Üç bölge şeması karşılaştırıldı.",durum:"Tamamlandı"},{ad:"Teknik çizim",aciklama:"1/50 plan, tavan ve elektrik paftaları çizildi.",durum:"Tamamlandı"},{ad:"Revizyon",aciklama:"Toplantı odası sayısı 3’ten 4’e çıkarıldı.",durum:"Tamamlandı"},{ad:"Teslim",aciklama:"Uygulama seti ve metraj teslim edildi.",durum:"Teslim edildi"}],plan:{genislik:24,derinlik:20},palet:{zemin:"#efeae1",duvar:"#35322f",vurgu:"#a37844"}},{slug:"butik-otel",ad:"Butik Otel",tur:"Konsept Tasarım",konum:"Temsilî — tarihi doku yakını",yil:"2026",alan:"760 m²",kat:"3 kat",ozet:"Avlulu bir taş yapının butik otele dönüşümü için konsept öneri. 14 oda, ortak avlu ve kahvaltı salonu; mevcut taş duvarlar açıkta bırakılarak yeni ekler bağımsız (beyaz/bronz) tutuldu.",yaklasim:["Mevcut taş duvarlar korunarak yeni ekler ayrıştırıldı (kontrast ilkesi).","Avlu, giriş ve kahvaltı arasında dağıtıcı çekirdek olarak çalışıyor.","Her odada farklı bir pencere tipolojisi; tekrar değil çeşitlilik hedeflendi.","Servis dolaşımı, misafir dolaşımından tamamen ayrıldı."],olculer:[{ad:"Standart oda",deger:"22 m² · 3,6 × 6,1 m"},{ad:"Süit",deger:"34 m² · 4,6 × 7,4 m"},{ad:"Avlu",deger:"96 m²"},{ad:"Kahvaltı salonu",deger:"58 m² · 6,6 × 8,8 m"},{ad:"Resepsiyon",deger:"18 m²"},{ad:"Oda sayısı",deger:"14 (12 standart + 2 süit)"}],teknikler:["Mevcut durum rölöve planı","Konsept plan ve malzeme panosu","Oda tipolojileri paftası","Cephe müdahale şeması (korunacak / eklenecek)","3D kütle ve avlu görselleri"],asamalar:[{ad:"Rölöve",aciklama:"Mevcut yapı ölçülendirilerek sayısallaştırıldı.",durum:"Tamamlandı"},{ad:"Konsept",aciklama:"İki farklı konfor düzeyi önerisi hazırlandı.",durum:"Tamamlandı"},{ad:"Teknik çizim",aciklama:"Oda tipleri ve avlu planı çizildi.",durum:"Tamamlandı"},{ad:"3D sunum",aciklama:"Avlu ve süit görselleri üretildi.",durum:"Tamamlandı"}],plan:{genislik:18,derinlik:22},palet:{zemin:"#e6dfd3",duvar:"#45403a",vurgu:"#b1874d"}},{slug:"kafe-restoran",ad:"Kafe ve Restoran",tur:"İç Mekân",konum:"Temsilî — kent merkezi",yil:"2024",alan:"180 m²",kat:"Tek kat",ozet:"Mutfak-salon ilişkisini açık servis hattı üzerinden kuran bir kafe-restoran düzeni. Bar, giriş aksının sonunda konumlandırıldı; koltuk düzeni üç bölgede farklı oturma sürelerine göre ayrıldı.",yaklasim:["Mutfak ile salon arasında geçirgen bir servis hattı kuruldu; sıcak servis kokusu bölgesi ayrıldı.","Bar, mekânın odak noktası ve giriş aksının son durağı olarak konumlandı.","Oturma bölgeleri ayrıldı: hızlı tüketim, uzun oturum, grup masaları.","Akustik, ahşap lamel tavan ve yumuşak yüzeylerle dengelendi."],olculer:[{ad:"Salon",deger:"96 m² · 8,0 × 12,0 m"},{ad:"Bar",deger:"12 m uzunlukta tezgâh"},{ad:"Mutfak",deger:"44 m²"},{ad:"Depo / soğuk oda",deger:"12 m²"},{ad:"WC bloğu",deger:"16 m² (2 engelli dahil)"},{ad:"Kişi kapasitesi",deger:"68 (iç mekân)"}],teknikler:["Mobilya yerleşim planı","Mutfak teçhizat planı ve servis akış şeması","Aydınlatma ve tavan detayı","Elektrik ve havalandırma koordinasyonu","İç cephe ve bar detay çizimleri"],asamalar:[{ad:"Ölçüm",aciklama:"Mevcut mekân ve tesisat altyapısı ölçüldü.",durum:"Tamamlandı"},{ad:"İhtiyaç analizi",aciklama:"Menü yapısı ve servis yoğunluğu çıkarıldı.",durum:"Tamamlandı"},{ad:"Teknik çizim",aciklama:"Yerleşim, tavan ve elektrik paftaları çizildi.",durum:"Tamamlandı"},{ad:"Revizyon",aciklama:"Bar yüksekliği ve tezgâh derinliği ergonomiye göre düzeltildi.",durum:"Tamamlandı"},{ad:"Teslim",aciklama:"Uygulama paftaları ve ekipman listesi teslim edildi.",durum:"Teslim edildi"}],plan:{genislik:16,derinlik:12},palet:{zemin:"#eee5d7",duvar:"#312e2a",vurgu:"#a87c45"}},{slug:"dubleks-ev",ad:"Dubleks Ev",tur:"Tadilat Projesi",konum:"Temsilî — banliyö",yil:"2024",alan:"265 m²",kat:"2 kat (dubleks)",ozet:"Mevcut bir dubleksin taşıyıcı sisteme dokunmadan yeniden düzenlenmesi. Alt katta mutfak-salon bütünleşmesi, üst katta ebeveyn süiti ve çalışma odası yeniden kurgulandı; merdiven konumu korundu.",yaklasim:["Taşıyıcı duvarlar sabit tutuldu; yalnızca dolgu duvarlar kaldırıldı.","Merdiven korkuluğu camla yenilendi, iki kat arasında görsel süreklilik kuruldu.","Alt kat ıslak hacimleri mevcut şaftlara bağlı kalarak büyütüldü.","Enerji performansı için cephede yalıtım ve pencere değişimi önerildi."],olculer:[{ad:"Salon + yemek",deger:"46 m²"},{ad:"Mutfak",deger:"15 m² · 3,5 × 4,3 m"},{ad:"Ebeveyn süiti",deger:"28 m² (oda + banyo + giyinme)"},{ad:"Çalışma odası",deger:"12 m² · 3,0 × 4,0 m"},{ad:"Merdiven",deger:"2,4 × 1,1 m · 16 rıht"},{ad:"Toplam net alan",deger:"231 m²"}],teknikler:["Rölöve planı ve mevcut durum kesiti","Yıkım / yapım paftası (renk kodlu)","Yeni yerleşim planları (1/50)","Cephe iyileştirme detayı","Elektrik ve tesisat yenileme şeması"],asamalar:[{ad:"Rölöve",aciklama:"Mevcut yapı iç ölçüleriyle belgelendi.",durum:"Tamamlandı"},{ad:"İhtiyaç analizi",aciklama:"Aile ihtiyaçları ve sirkülasyon problemleri tespit edildi.",durum:"Tamamlandı"},{ad:"Ön tasarım",aciklama:"Yıkım/yapım sınırları belirlendi.",durum:"Tamamlandı"},{ad:"Teknik çizim",aciklama:"Yeni yerleşim ve detay paftaları çizildi.",durum:"Tamamlandı"},{ad:"Teslim",aciklama:"Uygulama seti ve iş programı teslim edildi.",durum:"Teslim edildi"}],plan:{genislik:15,derinlik:10},palet:{zemin:"#f0e9dd",duvar:"#3c3833",vurgu:"#94693c"}},{slug:"karma-kullanimli-yapi",ad:"Karma Kullanımlı Yapı",tur:"Cephe Tasarımı",konum:"Temsilî — ana arter köşesi",yil:"2026",alan:"2.850 m²",kat:"7 kat (zemin + 6)",ozet:"Zemin katta ticari, üst katta ofis kullanımı olan köşe parsel yapısının cephe tasarımı. Cephe, kullanım farkını ritim ve malzemeyle ayırır; köşe, kütlenin okunurluğunu artıracak biçimde boşaltılmıştır.",yaklasim:["Zemin kat ve üst katlar cephede farklı ritimle ayrıştırıldı.","Köşe boşaltılarak giriş ve dükkân vitrini görünür hale getirildi.","İkinci cephede güneş kırıcı lameller, ısı yükünü azaltacak biçimde boyutlandırıldı.","Kontrast malzeme (taş/dolgu panel) ile yapı ölçeği okunur kılındı."],olculer:[{ad:"Ticari alan (zemin)",deger:"410 m²"},{ad:"Ofis katı tipik",deger:"385 m² · kat başına"},{ad:"Modül genişliği",deger:"1,35 m"},{ad:"Kat yüksekliği",deger:"3,6 m (tipik)"},{ad:"Güneş kırıcı derinliği",deger:"0,60 m"},{ad:"Toplam inşaat alanı",deger:"2.850 m²"}],teknikler:["Cephe görünüşleri (1/50 ve 1/20 detay)","Cephe kaplama ve birleşim detayları","Lamel/kırıcı hesap tablosu","Köşe detay ve düğüm çözümleri","3D cephe ve gölge çalışması"],asamalar:[{ad:"Ön tasarım",aciklama:"Üç cephe senaryosu kütle üzerinde denendi.",durum:"Tamamlandı"},{ad:"Teknik çizim",aciklama:"1/50 görünüşler ve 1/20 düğüm detayları çizildi.",durum:"Tamamlandı"},{ad:"Revizyon",aciklama:"Lamel aralığı güneş açısına göre yeniden hesaplandı.",durum:"Tamamlandı"},{ad:"3D sunum",aciklama:"Köşe perspektifi ve gölge simülasyonu üretildi.",durum:"Tamamlandı"},{ad:"Teslim",aciklama:"Cephe pafta seti ve malzeme tarifi teslim edildi.",durum:"Teslim edildi"}],plan:{genislik:26,derinlik:18},palet:{zemin:"#eae3d8",duvar:"#2f2d29",vurgu:"#ab8049"}}];function ie(a){return H.find(l=>l.slug===a)}const V=[{ad:"Mimari Proje Tasarımı",aciklama:"Arsa verisi ve kullanıcı ihtiyacından başlayan, kütle ve plan kararlarını birlikte kuran tasarım süreci. Avan proje ve uygulama aşamaları tek elden yürütülür."},{ad:"AutoCAD Teknik Çizimi",aciklama:"Kat planı, kesit, görünüş ve detay paftalarının ölçekli, katmanlı ve ölçülendirilmiş biçimde hazırlanması; pafta seti teslime hazır hale getirilir."},{ad:"3D Modelleme ve Sunum",aciklama:"Kütle, dış mekân ve iç mekân modelleri; malzeme ve ışık denemeleriyle sunum görselleri. Karar vermeyi kolaylaştıran açı ve ışık varyasyonları."},{ad:"İç Mimari",aciklama:"Mobilya yerleşimi, malzeme seçimi, tavan ve aydınlatma planları; iç cephe açılımları ve uygulama detayları."},{ad:"Renovasyon ve Tadilat",aciklama:"Mevcut yapının rölövesi, yıkım-yapım sınırlarının belirlenmesi ve taşıyıcı sisteme dokunmadan yeni yerleşim kurgusu."},{ad:"Uygulama Projesi",aciklama:"İmalata esas ölçü, detay ve mahal listelerinin üretilmesi; statik ve mekanik projelerle koordinasyon kontrolü."},{ad:"Keşif ve Metraj",aciklama:"Paftalar üzerinden malzeme miktarlarının çıkarılması, mahal listesi ve yaklaşık maliyet tablosunun hazırlanması."},{ad:"Danışmanlık ve Proje Takibi",aciklama:"Tasarım kararlarında ikinci görüş, ruhsat sürecinde pafta kontrolü ve şantiye uyum takibi."}],X=[{ad:"İlk Görüşme",aciklama:"Beklenti, bütçe aralığı ve takvim konuşulur; işin kapsamı netleştirilir."},{ad:"İhtiyaç Analizi",aciklama:"Kullanıcı profili, mekân ihtiyaçları ve arsa/yapı verileri çıkarılır."},{ad:"Ön Tasarım",aciklama:"Kütle ve plan alternatifleri üretilir; iki ya da üç yön karşılaştırılır."},{ad:"Teknik Çizim",aciklama:"Seçilen yön, ölçekli plan, kesit ve görünüşlere dönüştürülür."},{ad:"3D Sunum",aciklama:"Model ve görseller hazırlanır; tasarım mekân olarak okunur hale gelir."},{ad:"Revizyon",aciklama:"Geri bildirimle ölçü, malzeme ve yerleşim düzeltmeleri yapılır."},{ad:"Proje Teslimi",aciklama:"Pafta seti, metraj ve malzeme föyü teslim edilir; uygulama takibi başlar."}],Y=[{id:"kat-plani",ad:"Kat Planı",tur:"Plan",aciklama:"1/50 ölçekli kat planı; aks çizgileri, duvar kalınlıkları ve mahal isimleri."},{id:"vaziyet-plani",ad:"Vaziyet Planı",tur:"Plan",aciklama:"1/500 ölçekli yerleşim planı; parsel sınırı, yapı oturumu ve kot bilgileri."},{id:"kesit",ad:"Kesit Çizimi",tur:"Kesit",aciklama:"A-A kesiti; kat yükseklikleri, döşeme ve çatı kotları ölçülendirilmiş."},{id:"cephe",ad:"Cephe Görünüşü",tur:"Görünüş",aciklama:"Kuzey cephesi görünüşü; kaplama ayrımı ve doğrama yerleşimi."},{id:"olculendirme",ad:"Ölçülendirme Paftası",tur:"Detay",aciklama:"Genel ölçü çizgileri, modül ve aks aralıkları; ölçü zinciri kuralı."},{id:"kapi-pencere",ad:"Kapı-Pencere Yerleşimi",tur:"Detay",aciklama:"Doğrama listesi, açılış yönleri ve denizlik kotları."},{id:"mobilya-plani",ad:"Mobilya Planı",tur:"Plan",aciklama:"Sabit ve hareketli mobilya yerleşimi; kullanım mesafeleri."},{id:"elektrik",ad:"Elektrik Yerleşim Şeması",tur:"Tesisat",aciklama:"Priz, anahtar, aydınlatma ve veri noktalarının yerleşimi."}],T={eposta:"studio@ateliermimarlik.example",telefon:"+90 (000) 000 00 00",adres:"Temsilî stüdyo adresi — İstanbul",saatler:"Pazartesi – Cuma, 09:00 – 18:00"},M="#33302c",w="#6f6a62",P="#9a6f3f",te={yasam:"#f0e2cc",islak:"#dfe7ea",yatak:"#e8e0d2",servis:"#e3ded3",sirkulasyon:"#f6f2ea",dis:"#ffffff"};function h(a){return a*52}const q=52;function le(a,l,t){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${-t} ${-t} ${a+t*2} ${l+t*2}" role="img">`}function re(a){const l=h(a.x2),t=h(a.z2),e=h(a.t),d=a.ic?2.2:4.6,o=[],c=Q(a),y=c?(a.x2-a.x1)/c:0,m=c?(a.z2-a.z1)/c:0,r=(a.acikliklar??[]).slice().sort((s,u)=>s.ofset-u.ofset);let n=0;for(const s of r){s.ofset>n&&o.push({x1:h(a.x1+y*n),z1:h(a.z1+m*n),x2:h(a.x1+y*s.ofset),z2:h(a.z1+m*s.ofset)});const u=ee(a,s);o.push({x1:h(u.bas.x),z1:h(u.bas.z),x2:h(u.son.x),z2:h(u.son.z),tip:s.tip}),n=s.ofset+s.genislik}n<c&&o.push({x1:h(a.x1+y*n),z1:h(a.z1+m*n),x2:l,z2:t});let k="";for(const s of o)if(s.tip==="pencere")k+=`<line x1="${s.x1}" y1="${s.z1}" x2="${s.x2}" y2="${s.z2}" stroke="${M}" stroke-width="${e}" stroke-opacity="0.18"/>`,k+=`<line x1="${s.x1}" y1="${s.z1}" x2="${s.x2}" y2="${s.z2}" stroke="${M}" stroke-width="1.2"/>`,k+=`<line x1="${s.x1}" y1="${s.z1}" x2="${s.x2}" y2="${s.z2}" stroke="#fbf8f2" stroke-width="${e*.55}"/>`;else if(s.tip==="kapi"){const u=Math.hypot(s.x2-s.x1,s.z2-s.z1),f=Math.atan2(s.z2-s.z1,s.x2-s.x1)*180/Math.PI;k+=`<g transform="translate(${s.x1} ${s.z1}) rotate(${f})">`,k+=`<line x1="0" y1="${-e/2}" x2="0" y2="${e/2}" stroke="${M}" stroke-width="1.4"/>`,k+=`<line x1="${u}" y1="${-e/2}" x2="${u}" y2="${e/2}" stroke="${M}" stroke-width="1.4"/>`,k+=`<line x1="0" y1="0" x2="0" y2="${u}" stroke="${M}" stroke-width="1.8" stroke-linecap="round"/>`,k+=`<path d="M0 ${u} A ${u} ${u} 0 0 1 ${u} 0" fill="none" stroke="${w}" stroke-width="0.7" stroke-dasharray="2.5 2.5"/>`,k+=`<line x1="0" y1="0" x2="${u}" y2="0" stroke="${w}" stroke-width="0.5" opacity="0.6"/>`,k+="</g>"}else k+=`<line x1="${s.x1}" y1="${s.z1}" x2="${s.x2}" y2="${s.z2}" stroke="${M}" stroke-width="${e}" stroke-linecap="butt"/>`,k+=`<line x1="${s.x1}" y1="${s.z1}" x2="${s.x2}" y2="${s.z2}" stroke="#fbf8f2" stroke-width="${Math.max(e-d,.4)}" stroke-linecap="butt"/>`;return k}function K(a,l={}){const{olcu:t=!0,akslar:e=!0,etiket:d=!0,dolgu:o=!0,olcek:c="1/50"}=l,y=h(a.genislik),m=h(a.derinlik),r=t?92:44;let n=le(y,m,r);n+=`<title>${a.ad} — temsili mimari plan (AutoCAD tarzı)</title>`,n+=`<rect x="${-r}" y="${-r}" width="${y+r*2}" height="${m+r*2}" fill="#fbf8f2"/>`;for(const k of a.mahaller){if(k.w<=0||k.d<=0)continue;const s=h(k.x),u=h(k.z),f=h(k.w),$=h(k.d);o&&(n+=`<rect x="${s}" y="${u}" width="${f}" height="${$}" fill="${te[k.tip]}" opacity="0.75"/>`),d&&(n+=`<text x="${s+f/2}" y="${u+$/2}" font-family="Inter, sans-serif" font-size="11.5" fill="${k.tip==="islak"?"#3c5058":"#4a453e"}" text-anchor="middle" letter-spacing="0.06em">${k.ad}</text>`)}if(e){const k=["A","B","C","D","E","F"];[0,.25,.5,.75,1].forEach((f,$)=>{const g=h(a.genislik*f);n+=`<line x1="${g}" y1="-26" x2="${g}" y2="${m+26}" stroke="${P}" stroke-width="0.7" stroke-dasharray="16 5 3 5" opacity="0.85"/>`,n+=`<circle cx="${g}" cy="-34" r="11" fill="#fbf8f2" stroke="${P}" stroke-width="0.9"/>`,n+=`<text x="${g}" y="-30" font-family="Inter, sans-serif" font-size="11" fill="${P}" text-anchor="middle">${k[$]}</text>`}),[0,.5,1].forEach((f,$)=>{const g=h(a.derinlik*f);n+=`<line x1="-26" y1="${g}" x2="${y+26}" y2="${g}" stroke="${P}" stroke-width="0.7" stroke-dasharray="16 5 3 5" opacity="0.85"/>`,n+=`<circle cx="-34" cy="${g}" r="11" fill="#fbf8f2" stroke="${P}" stroke-width="0.9"/>`,n+=`<text x="-34" y="${g+4}" font-family="Inter, sans-serif" font-size="11" fill="${P}" text-anchor="middle">${$+1}</text>`})}for(const k of a.duvarlar)n+=re(k);for(const k of a.mobilyalar??[]){const s=h(k.x),u=h(k.z),f=h(k.w),$=h(k.d);n+=`<rect x="${s}" y="${u}" width="${f}" height="${$}" fill="none" stroke="${w}" stroke-width="0.9" stroke-dasharray="${k.tip==="ada"?"0":"4 3"}"/>`,(k.tip==="kanepe"||k.tip==="yatak")&&(n+=`<line x1="${s+4}" y1="${u+4}" x2="${s+f-4}" y2="${u+4}" stroke="${w}" stroke-width="0.7"/>`)}return t&&(n+=C(0,y,m+46,"x",a.genislik),n+=C(0,y,m+76,"x",a.genislik,!0),n+=C(0,m,-56,"z",a.derinlik),n+=C(0,m,-86,"z",a.derinlik,!0)),n+="</svg>",n}function C(a,l,t,e,d,o=!1){const c=o?l-a:(l-a)/4;let y="";const m=(n,k)=>e==="x"?`<line x1="${n}" y1="${k-4}" x2="${n}" y2="${k+4}" stroke="${w}" stroke-width="1"/>`:`<line x1="${k-4}" y1="${n}" x2="${k+4}" y2="${n}" stroke="${w}" stroke-width="1"/>`;e==="x"?y+=`<line x1="${a}" y1="${t}" x2="${l}" y2="${t}" stroke="${w}" stroke-width="0.8"/>`:y+=`<line x1="${t}" y1="${a}" x2="${t}" y2="${l}" stroke="${w}" stroke-width="0.8"/>`;const r=o?[a,l]:[a,a+c,a+c*2,a+c*3,l];for(const n of r)y+=m(n,t),e==="x"?y+=`<line x1="${n}" y1="${t-8}" x2="${n}" y2="${t-18}" stroke="${w}" stroke-width="0.5" opacity="0.5"/>`:y+=`<line x1="${t+8}" y1="${n}" x2="${t+18}" y2="${n}" stroke="${w}" stroke-width="0.5" opacity="0.5"/>`;for(let n=0;n<r.length-1;n++){const k=r[n],s=r[n+1],u=(k+s)/2,f=((s-k)/q).toFixed(2).replace(".",",");e==="x"?y+=`<text x="${u}" y="${t-5}" font-family="Inter, sans-serif" font-size="9" fill="${w}" text-anchor="middle">${f}</text>`:y+=`<text x="${t-6}" y="${u+3}" font-family="Inter, sans-serif" font-size="9" fill="${w}" text-anchor="middle" transform="rotate(-90 ${t-6} ${u+3})">${f}</text>`}if(o){const n=((l-a)/q).toFixed(2).replace(".",",");e==="x"?y+=`<text x="${(a+l)/2}" y="${t+16}" font-family="Inter, sans-serif" font-size="10" fill="${M}" text-anchor="middle" font-weight="600">${n} m</text>`:y+=`<text x="${t-16}" y="${(a+l)/2}" font-family="Inter, sans-serif" font-size="10" fill="${M}" text-anchor="middle" font-weight="600" transform="rotate(-90 ${t-16} ${(a+l)/2})">${n} m</text>`}return y}const p="#33302c",v="#6f6a62",A="#9a6f3f",ne=52,i=a=>a*ne;function I(a,l,t,e){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${-t} ${-t} ${a+t*2} ${l+t*2}" role="img"><title>${e}</title><rect x="${-t}" y="${-t}" width="${a+t*2}" height="${l+t*2}" fill="#fbf8f2"/>`}function _(a,l,t){return`<text x="${a+12}" y="${l+12}" font-family="Inter, sans-serif" font-size="9.5" fill="${v}" text-anchor="end" letter-spacing="0.14em">${t}</text>`}function se(){const d=i(14),o=i(6.5),c=104,y=o;let m=I(d,o,c,"A-A Kesiti — temsili mimari kesit");const r=f=>y-i(f);m+=`<line x1="-40" y1="${y}" x2="${d+40}" y2="${y}" stroke="${p}" stroke-width="2.4"/>`,m+=`<line x1="-40" y1="${y+6}" x2="${d+40}" y2="${y+6}" stroke="${p}" stroke-width="0.8" opacity="0.6"/>`;for(let f=0;f<44;f++){const $=-34+f*17;m+=`<line x1="${$}" y1="${y+6}" x2="${$+11}" y2="${y+16}" stroke="${v}" stroke-width="0.5" opacity="0.55"/>`}const n=(f,$,g,x)=>{let D=`<rect x="${f}" y="${g}" width="${$}" height="${x-g}" fill="#efe7d9" stroke="${p}" stroke-width="1.5"/>`;const L=8;for(let B=g+L;B<x;B+=L)D+=`<line x1="${f}" y1="${B}" x2="${f+$}" y2="${B}" stroke="${v}" stroke-width="0.35" opacity="0.5"/>`;return D};m+=n(0,i(.4),r(3.05+3.05+.4),r(0)),m+=n(d-i(.4),i(.4),r(3.05+3.05+.4),r(0));const k=f=>{const $=r(f);let g=`<rect x="0" y="${$}" width="${d}" height="${i(.35)}" fill="#e2d8c6" stroke="${p}" stroke-width="1.3"/>`;for(let x=0;x<3;x++)g+=`<line x1="0" y1="${$+5+x*5}" x2="${d}" y2="${$+5+x*5}" stroke="${v}" stroke-width="0.3" opacity="0.4"/>`;return g};m+=k(0),m+=k(3.05),m+=k(3.05+3.05),m+=`<rect x="${i(7.4)-4}" y="${r(3.05)}" width="${i(.15)}" height="${i(3.05)-i(.35)}" fill="#efe7d9" stroke="${p}" stroke-width="1.1"/>`,m+=`<rect x="${i(7.2)-4}" y="${r(3.05+3.05)}" width="${i(.15)}" height="${i(3.05)-i(.35)}" fill="#efe7d9" stroke="${p}" stroke-width="1.1"/>`,m+=`<rect x="${d}" y="${r(3.05)}" width="${i(2.6)}" height="${i(.22)}" fill="#ddd2bd" stroke="${p}" stroke-width="1.1"/>`,m+=`<line x1="${d}" y1="${r(3.05)}" x2="${d+i(2.6)}" y2="${r(3.05)}" stroke="${p}" stroke-width="1.1"/>`,m+=`<path d="M${-i(.3)} ${r(3.05+3.05+.4)} L${d/2} ${r(3.05+3.05+.4+.85)} L${d+i(.3)} ${r(3.05+3.05+.4)}" fill="none" stroke="${p}" stroke-width="2.2" stroke-linejoin="round"/>`;const s=(f,$,g,x)=>{const D=i(f),L=i($);return`<rect x="${D}" y="${r(x)}" width="${L}" height="${r(g)-r(x)}" fill="#fbf8f2" stroke="${p}" stroke-width="1.4"/><line x1="${D}" y1="${r((g+x)/2)}" x2="${D+L}" y2="${r((g+x)/2)}" stroke="${p}" stroke-width="0.9"/>`};m+=s(1.6,2.4,0,2.4),m+=s(6.2,2,.9,2.4),m+=s(2,2.4,3.05,3.05+2.5),m+=s(7,2.4,3.05+.9,3.05+2.5);const u=(f,$)=>{const g=r(f);return`<line x1="-92" y1="${g}" x2="-70" y2="${g}" stroke="${A}" stroke-width="0.8"/><text x="-96" y="${g+4}" font-family="Inter, sans-serif" font-size="10" fill="${A}" text-anchor="end">${$}</text>`};return m+=u(0,"±0,00"),m+=u(3.05,"+3,05"),m+=u(3.05+3.05,"+6,10"),m+=u(3.05+3.05+.4+.85,"+7,35 (mahya)"),m+=`<line x1="${d+26}" y1="${r(0)}" x2="${d+26}" y2="${r(3.05)}" stroke="${v}" stroke-width="0.8"/>`,m+=`<line x1="${d+20}" y1="${r(0)}" x2="${d+32}" y2="${r(0)}" stroke="${v}" stroke-width="1"/>`,m+=`<line x1="${d+20}" y1="${r(3.05)}" x2="${d+32}" y2="${r(3.05)}" stroke="${v}" stroke-width="1"/>`,m+=`<text x="${d+34}" y="${r(3.05/2)}" font-family="Inter, sans-serif" font-size="9.5" fill="${v}">3,05</text>`,m+=`<text x="${-c+8}" y="${-c+20}" font-family="Inter, sans-serif" font-size="11" fill="${p}" letter-spacing="0.16em">A — A KESİTİ</text>`,m+=_(d,o,"A-A KESİTİ · 1/50 · TEMSİLÎ ÇİZİM"),m+="</svg>",m}function oe(){const t=i(14),e=i(6.5),d=60,o=r=>e-i(r);let c=I(t,e,d,"Kuzey Cephesi görünüşü — temsili");c+=`<rect x="0" y="0" width="${t}" height="${e}" fill="#f4efe5" stroke="${p}" stroke-width="2"/>`,c+=`<rect x="0" y="${o(3.05)}" width="${t}" height="${i(3.05)}" fill="#e9e1d2" stroke="none"/>`;for(let r=0;r<14;r++)c+=`<line x1="${r*i(1)}" y1="${o(3.05)}" x2="${r*i(1)}" y2="${e}" stroke="${v}" stroke-width="0.25" opacity="0.35"/>`;c+=`<rect x="0" y="${o(6.1)}" width="${t}" height="${i(3.05)}" fill="#f7f3ea" stroke="none"/>`,c+=`<rect x="0" y="${o(3.05)}" width="${t}" height="${i(.2)}" fill="#ddd2bd" stroke="${p}" stroke-width="1"/>`;const y=(r,n,k,s,u=!1)=>{let f=`<rect x="${i(r)}" y="${o(s)}" width="${i(n)}" height="${o(k)-o(s)}" fill="#c9d3d6" stroke="${p}" stroke-width="1.6"/>`;return f+=`<line x1="${i(r)}" y1="${o((k+s)/2)}" x2="${i(r+n)}" y2="${o((k+s)/2)}" stroke="${p}" stroke-width="1"/>`,n>1.4&&(f+=`<line x1="${i(r+n/2)}" y1="${o(s)}" x2="${i(r+n/2)}" y2="${o(k)}" stroke="${p}" stroke-width="1"/>`),u&&(f+=`<rect x="${i(r)-4}" y="${o(s)-4}" width="${i(n)+8}" height="${o(k)-o(s)}" fill="none" stroke="${v}" stroke-width="0.8" opacity="0.6"/>`),f};c+=y(1.6,2.4,0,2.4,!0),c+=y(6.2,2,.9,2.4),c+=y(10.6,2,.9,2.4),c+=y(2,2.4,3.4,5.4,!0),c+=y(7,2.4,3.4,5.4),c+=y(11.4,1.8,3.4,5.4);for(let r=0;r<10;r++){const n=i(1.2)+r*i(1.15);c+=`<line x1="${n}" y1="${o(6.1)}" x2="${n}" y2="${o(6.1)-0}" stroke="none"/>`}c+=`<rect x="${i(6.6)}" y="${o(5.4)-22}" width="${i(3)}" height="7" fill="#c9b291" stroke="${p}" stroke-width="0.8"/>`,c+=`<rect x="-14" y="${o(6.5)}" width="${t+28}" height="${i(.35)}" fill="#ddd2bd" stroke="${p}" stroke-width="1.4"/>`,c+=`<line x1="-30" y1="${e}" x2="${t+30}" y2="${e}" stroke="${p}" stroke-width="2.4"/>`;const m=(r,n,k,s)=>{let u=`<line x1="${i(r)}" y1="${k}" x2="${i(n)}" y2="${k}" stroke="${v}" stroke-width="0.8"/>`;return u+=`<line x1="${i(r)}" y1="${k-4}" x2="${i(r)}" y2="${k+4}" stroke="${v}" stroke-width="1"/>`,u+=`<line x1="${i(n)}" y1="${k-4}" x2="${i(n)}" y2="${k+4}" stroke="${v}" stroke-width="1"/>`,u+=`<text x="${(i(r)+i(n))/2}" y="${k-4}" font-family="Inter, sans-serif" font-size="9" fill="${v}" text-anchor="middle">${s}</text>`,u};return c+=m(0,3,e+24,"3,00"),c+=m(3,7.4,e+24,"4,40"),c+=m(7.4,11,e+24,"3,60"),c+=m(11,14,e+24,"3,00"),c+=m(0,14,e+44,"14,00 m"),c+=`<text x="0" y="-20" font-family="Inter, sans-serif" font-size="11" fill="${p}" letter-spacing="0.16em">KUZEY CEPHESİ</text>`,c+=_(t,e,"CEPHE GÖRÜNÜŞÜ · 1/50 · TEMSİLÎ ÇİZİM"),c+="</svg>",c}function de(){const a=i(40),l=i(30);let e=I(a,l,70,"Vaziyet planı — temsili yerleşim");e+=`<rect x="0" y="0" width="${a}" height="${l}" fill="#f6f2e9" stroke="${p}" stroke-width="2" stroke-dasharray="14 6"/>`,e+=`<text x="14" y="26" font-family="Inter, sans-serif" font-size="10" fill="${v}" letter-spacing="0.14em">PARSEL SINIRI · 1.240 m²</text>`;const d=i(8),o=i(8),c=i(14),y=i(11);e+=`<rect x="${d}" y="${o}" width="${c}" height="${y}" fill="#e3d8c4" stroke="${p}" stroke-width="2.4"/>`,e+=`<rect x="${d}" y="${o}" width="${c}" height="${y}" fill="none" stroke="${p}" stroke-width="0.8" stroke-dasharray="5 4"/>`,e+=`<text x="${d+c/2}" y="${o+y/2}" font-family="Inter, sans-serif" font-size="11" fill="${p}" text-anchor="middle">YAPI OTURUMU</text>`,e+=`<text x="${d+c/2}" y="${o+y/2+16}" font-family="Inter, sans-serif" font-size="9.5" fill="${v}" text-anchor="middle">14,00 × 11,00 m</text>`,e+=`<rect x="${d+c}" y="${o+i(4)}" width="${i(4)}" height="${i(6)}" fill="#eee5d4" stroke="${v}" stroke-width="1.2" stroke-dasharray="6 4"/>`,e+=`<text x="${d+c+i(2)}" y="${o+i(7.1)}" font-family="Inter, sans-serif" font-size="9" fill="${v}" text-anchor="middle">TERAS</text>`,e+=`<ellipse cx="${d+c+i(9)}" cy="${o+i(6)}" rx="${i(4)}" ry="${i(2.4)}" fill="#cfe0e5" stroke="${p}" stroke-width="1.4"/>`,e+=`<rect x="0" y="${l}" width="${a}" height="${i(5)}" fill="#e8e3d9" stroke="${p}" stroke-width="1.4"/>`,e+=`<line x1="0" y1="${l+i(2.5)}" x2="${a}" y2="${l+i(2.5)}" stroke="${v}" stroke-width="0.9" stroke-dasharray="12 10"/>`,e+=`<text x="${a/2}" y="${l+i(4.2)}" font-family="Inter, sans-serif" font-size="10" fill="${v}" text-anchor="middle" letter-spacing="0.2em">YOL</text>`,e+=`<path d="M${d+c/2} ${l+i(4)} L${d+c/2} ${o+y+8}" stroke="${A}" stroke-width="1.6" marker-end="url(#ok)"/>`,e+=`<defs><marker id="ok" markerWidth="9" markerHeight="9" refX="7" refY="4.5" orient="auto"><path d="M0 0 L9 4.5 L0 9 z" fill="${A}"/></marker></defs>`,e+=`<text x="${d+c/2+10}" y="${o+y+30}" font-family="Inter, sans-serif" font-size="9.5" fill="${A}">GİRİŞ</text>`,e+=`<g transform="translate(${a+34} 40)"><path d="M0 0 L7 24 L0 18 L-7 24 z" fill="${p}"/><text x="0" y="-6" font-family="Inter, sans-serif" font-size="11" fill="${p}" text-anchor="middle">K</text></g>`;for(let m=0;m<7;m++){const r=i(4+m%4*9),n=i(24+Math.floor(m/4)*3.6);e+=`<circle cx="${r}" cy="${n}" r="12" fill="none" stroke="#7f9a6e" stroke-width="0.9" opacity="0.8"/>`,e+=`<line x1="${r}" y1="${n}" x2="${r}" y2="${n+9}" stroke="#7f9a6e" stroke-width="0.9"/>`}return e+=_(a,l,"VAZİYET PLANI · 1/500 · TEMSİLÎ ÇİZİM"),e+="</svg>",e}function me(){const a=i(14),l=i(11);let e=I(a,l,60,"Elektrik yerleşim şeması — temsili");e+=`<rect x="0" y="0" width="${a}" height="${l}" fill="#f8f5ee" stroke="${p}" stroke-width="2.4"/>`;const d=(s,u,f,$)=>`<line x1="${i(s)}" y1="${i(u)}" x2="${i(f)}" y2="${i($)}" stroke="${p}" stroke-width="3"/>`;e+=d(7.4,0,7.4,6.4),e+=d(7.4,6.4,14,6.4),e+=d(7.4,6.4,7.4,11),e+=d(11,6.4,11,11),e+=d(0,7.2,3.6,7.2),e+=d(3.6,7.2,3.6,11);const o=(s,u)=>`<g transform="translate(${i(s)} ${i(u)})"><circle r="7.5" fill="#fbf8f2" stroke="${p}" stroke-width="1.1"/><line x1="-7.5" y1="0" x2="7.5" y2="0" stroke="${p}" stroke-width="1.1"/><line x1="0" y1="-4" x2="0" y2="4" stroke="${p}" stroke-width="0.9"/></g>`,c=(s,u)=>`<g transform="translate(${i(s)} ${i(u)})"><circle r="6.5" fill="${p}"/><line x1="6.5" y1="-4" x2="14" y2="-8" stroke="${p}" stroke-width="1.4"/></g>`,y=(s,u)=>`<g transform="translate(${i(s)} ${i(u)})"><circle r="6.5" fill="none" stroke="${A}" stroke-width="1.1"/><line x1="-4.6" y1="-4.6" x2="4.6" y2="4.6" stroke="${A}" stroke-width="1.1"/><line x1="4.6" y1="-4.6" x2="-4.6" y2="4.6" stroke="${A}" stroke-width="1.1"/></g>`,m=[[1.2,.6],[4.4,.6],[6.6,1.4],[1.2,4.2],[.7,6.6],[2.6,6.6],[8.2,1],[12.4,1],[12.4,4.4],[8,5.8],[2,10.3],[5.4,10.3],[8.2,7.6],[12.6,7.6],[12.6,10.2]],r=[[3.9,6.9],[3.9,10.3],[6.6,6.9],[7.7,1],[10.6,6.9],[10.6,10.3],[7.7,6.9]],n=[[3.4,2.4],[3.4,5.2],[4.9,3.8],[10.8,3.2],[8.6,3.4],[12.6,2.2],[1.8,9],[5.4,9.6],[9.3,9.3],[12.6,8.8],[5.2,8.1]];for(const[s,u]of m)e+=o(s,u);for(const[s,u]of r)e+=c(s,u);for(const[s,u]of n)e+=y(s,u);e+=`<path d="M${i(3.6)} ${i(7.2)} L${i(7.4)} ${i(6.4)} L${i(7.4)} ${i(.4)}" fill="none" stroke="#9d5f3f" stroke-width="1.6" stroke-dasharray="8 4"/>`,e+=`<rect x="${i(3.2)}" y="${i(7)}" width="${i(.8)}" height="${i(.5)}" fill="#fbf8f2" stroke="#9d5f3f" stroke-width="1.2"/>`,e+=`<text x="${i(4.1)}" y="${i(7.5)}" font-family="Inter, sans-serif" font-size="9" fill="#9d5f3f">PANOLAR</text>`;const k=l+22;return e+=`<g transform="translate(0 ${k})">`,e+=`<circle cx="8" cy="0" r="7.5" fill="#fbf8f2" stroke="${p}" stroke-width="1.1"/><line x1="0.5" y1="0" x2="15.5" y2="0" stroke="${p}" stroke-width="1.1"/><text x="22" y="4" font-family="Inter, sans-serif" font-size="9.5" fill="${v}">Priz</text>`,e+=`<circle cx="90" cy="0" r="6.5" fill="${p}"/><text x="104" y="4" font-family="Inter, sans-serif" font-size="9.5" fill="${v}">Anahtar</text>`,e+=`<circle cx="176" cy="0" r="6.5" fill="none" stroke="${A}" stroke-width="1.1"/><text x="190" y="4" font-family="Inter, sans-serif" font-size="9.5" fill="${v}">Aydınlatma</text>`,e+=`<line x1="286" y1="0" x2="312" y2="0" stroke="#9d5f3f" stroke-width="1.6" stroke-dasharray="8 4"/><text x="320" y="4" font-family="Inter, sans-serif" font-size="9.5" fill="${v}">Besleme hattı</text>`,e+="</g>",e+=_(a,l+40,"ELEKTRİK YERLEŞİMİ · 1/50 · TEMSİLÎ ÇİZİM"),e+="</svg>",e}function ke(){const a=i(14),l=i(11);let e=I(a,l,66,"Kapı-pencere yerleşim şeması — temsili");e+=`<rect x="0" y="0" width="${a}" height="${l}" fill="#f9f6ef" stroke="${p}" stroke-width="4"/>`;const d=(m,r,n,k,s,u=!1)=>{let f=`<rect x="${i(m)}" y="${i(r)}" width="${i(n)}" height="${i(k)}" fill="${u?"#efe0cc":"#dbe4e7"}" stroke="${p}" stroke-width="1.5"/>`;return f+=`<line x1="${i(m)}" y1="${i(r+k/2)}" x2="${i(m+n)}" y2="${i(r+k/2)}" stroke="${p}" stroke-width="0.9"/>`,f+=`<text x="${i(m+n/2)}" y="${i(r+k/2)-4}" font-family="Inter, sans-serif" font-size="9" fill="${p}" text-anchor="middle">${s}</text>`,f},o=[[1.6,0,2.4,.4,"P1"],[6.2,0,2,.4,"P2"],[10.6,0,2,.4,"P3"],[13.6,1.4,.4,2.2,"P4"],[13.6,6,.4,1.8,"P5"],[8.4,10.6,2.4,.4,"P6"],[0,2.6,.4,2.2,"P7"],[0,7.4,.4,1.8,"P8"]];for(const[m,r,n,k,s]of o)e+=d(m,r,n,k,s);e+=d(4.2,10.6,2.8,.4,"K1 (GİRİŞ)",!0);const c=[[7.4,1.9,.16,1,"K2"],[7.5,6.4,.9,.16,"K3"],[7.4,9,.16,.9,"K4"],[3.5,8.8,.16,.9,"K5"],[1.6,7.2,.9,.16,"K6"]];for(const[m,r,n,k,s]of c)e+=d(m,r,n,k,s,!0);return e+=`<path d="M${i(9.6)} ${i(10.4)} l0 -18" stroke="${A}" stroke-width="1.4" marker-end="url(#ok2)"/>`,e+=`<defs><marker id="ok2" markerWidth="8" markerHeight="8" refX="6" refY="4" orient="auto"><path d="M0 0 L8 4 L0 8 z" fill="${A}"/></marker></defs>`,e+=`<g transform="translate(0 ${l+18})" font-family="Inter, sans-serif" font-size="9" fill="${v}">`,e+=`<text x="0" y="0" letter-spacing="0.14em" fill="${p}">DOĞRAMA LİSTESİ</text>`,["P1–P3 Ahşap doğrama, çift cam · 240/200/200 × 150","P4–P5 Sürmeli, ısı yalıtımlı · 220/180 × 150","P6–P8 Ahşap doğrama, çift cam · 240/220/180 × 150","K1 Çelik giriş kapısı · 280 × 220","K2–K6 Ahşap iç kapı · 90/85 × 210"].forEach((m,r)=>{e+=`<text x="0" y="${16+r*13}">${m}</text>`}),e+="</g>",e+=_(a,l+90,"KAPI-PENCERE YERLEŞİMİ · 1/50 · TEMSİLÎ ÇİZİM"),e+="</svg>",e}const J=[{ad:"Ana Sayfa",yol:"#/"},{ad:"Hakkımızda",yol:"#/hakkimizda"},{ad:"Projeler",yol:"#/projeler"},{ad:"Teknik Çizimler",yol:"#/cizimler"},{ad:"Hizmetler",yol:"#/hizmetler"},{ad:"Süreç",yol:"#/surec"},{ad:"İletişim",yol:"#/iletisim"}],ce={"modern-villa":{olcek:"1/100",renk:"krem"},"luks-konut":{olcek:"1/50",renk:"krem"},"bes-katli-apartman":{olcek:"1/200",renk:"antrasit"},"ticari-ofis":{olcek:"1/200",renk:"antrasit"},"butik-otel":{olcek:"1/200",renk:"krem"},"kafe-restoran":{olcek:"1/50",renk:"krem"},"dubleks-ev":{olcek:"1/100",renk:"antrasit"},"karma-kullanimli-yapi":{olcek:"1/200",renk:"antrasit"}};function G(a){const l=Z(a.slug),t=ce[a.slug]??{olcek:"1/100",renk:"krem"},e=K(l[0],{olcu:!0,akslar:!0,etiket:!0,dolgu:!0,olcek:t.olcek});return`<div class="proje-gorsel proje-gorsel--${t.renk}">
|
||
<div class="proje-gorsel__ic">${e}</div>
|
||
<span class="proje-gorsel__pafta">${t.olcek} · MİMARİ PLAN · TEMSİLÎ</span>
|
||
</div>`}function j(a,l=!1){return`<header class="ust${l?" ust--hero":""}" id="ust">
|
||
<a class="marka" href="#/" aria-label="ATELIER MİMARLIK ana sayfa">
|
||
<strong>Atelier</strong>
|
||
<span>Mimarlık · Teknik Çizim</span>
|
||
</a>
|
||
<div class="ust__sag">
|
||
<nav aria-label="Ana menü">
|
||
<ul class="menu" id="anaMenu">
|
||
${J.map(t=>`<li><a href="${t.yol}"${t.yol===a?' aria-current="page"':""}>${t.ad}</a></li>`).join("")}
|
||
<li><a href="kesif.html">3D Keşif</a></li>
|
||
</ul>
|
||
</nav>
|
||
<button class="menu-ac" id="menuAc" aria-expanded="false" aria-controls="anaMenu" aria-label="Menüyü aç">
|
||
<svg width="20" height="20" viewBox="0 0 20 20" aria-hidden="true"><path d="M2 5h16M2 10h16M2 15h16" stroke="currentColor" stroke-width="1.4"/></svg>
|
||
</button>
|
||
</div>
|
||
</header>`}function E(){return`<footer class="altbilgi">
|
||
<div class="kap">
|
||
<div class="altbilgi__izgara">
|
||
<div>
|
||
<div class="marka" style="color:var(--krem);margin-bottom:0.8rem">
|
||
<strong style="color:var(--krem)">Atelier</strong>
|
||
<span style="color:rgba(244,240,233,0.5)">Mimarlık · Teknik Çizim</span>
|
||
</div>
|
||
<p style="max-width:34ch;font-size:0.88rem">
|
||
AutoCAD ile profesyonel teknik çizim, mimari tasarım ve 3D sunum.
|
||
Temsilî portfolyo sitesi.
|
||
</p>
|
||
</div>
|
||
<div>
|
||
<h4>Bölümler</h4>
|
||
<ul>
|
||
${J.slice(1).map(a=>`<li><a href="${a.yol}">${a.ad}</a></li>`).join("")}
|
||
</ul>
|
||
</div>
|
||
<div>
|
||
<h4>İletişim</h4>
|
||
<ul>
|
||
<li><a href="mailto:${T.eposta}">${T.eposta}</a></li>
|
||
<li>${T.telefon}</li>
|
||
<li>${T.adres}</li>
|
||
<li><a href="kesif.html">3D Proje Gezintisi</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="altbilgi__alt">
|
||
<span>© ${new Date().getFullYear()} ATELIER MİMARLIK — Temsilî portfolyo</span>
|
||
<span>Bu sitede yer alan projeler ve çizimler temsilîdir; gerçek müşteri işi değildir.</span>
|
||
</div>
|
||
</div>
|
||
</footer>`}function ue(){const a=H.slice(0,4);return`${j("#/",!0)}
|
||
<main id="icerik">
|
||
<section class="hero" aria-labelledby="heroBaslik">
|
||
<div class="hero__tuval" id="heroTuval" aria-hidden="true"></div>
|
||
<div class="hero__perde"></div>
|
||
<div class="hero__ic kap">
|
||
<p class="ustbaslik ustbaslik--acik">Atelier Mimarlık · Mimari Tasarım ve Teknik Çizim</p>
|
||
<h1 id="heroBaslik">Çizgiden <em>Mekâna.</em></h1>
|
||
<p class="hero__alt">Hayal edilen yaşam alanlarını teknik doğruluk, estetik ve işlevsellikle buluşturuyoruz.</p>
|
||
<div class="hero__btnler">
|
||
<a class="btn btn--dolu" href="#/projeler">Projelerimizi Keşfedin</a>
|
||
<a class="btn btn--acik" href="kesif.html">3D Proje Gezintisi</a>
|
||
</div>
|
||
</div>
|
||
<div class="hero__serit" aria-hidden="true">
|
||
<span>AutoCAD · 1/50 Pafta</span>
|
||
<span>3D Modelleme</span>
|
||
<span>İstanbul</span>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bolum kap" aria-labelledby="studyoBaslik">
|
||
<div class="detay-izgara gorunum">
|
||
<div>
|
||
<p class="ustbaslik">Stüdyo</p>
|
||
<h2 id="studyoBaslik">Her çizgi bir karar;<br/>her karar bir mekân.</h2>
|
||
</div>
|
||
<div>
|
||
<p>
|
||
Atelier Mimarlık, mimari tasarımı teknik çizim disipliniyle birlikte yürütür.
|
||
Ön tasarımdan uygulama projesine kadar her aşamada ölçek, ölçü ve malzeme kararı
|
||
aynı masada verilir.
|
||
</p>
|
||
<p class="ince">
|
||
Çalışma biçimimiz sade: önce ihtiyacı netleştiririz, sonra iki üç yönü karşılaştırırız,
|
||
en sonunda seçilen yönü ölçekli paftalara dönüştürürüz. Kullanıcı her adımda neyin
|
||
neden değiştiğini görür.
|
||
</p>
|
||
<a class="btn btn--kucuk" href="#/hakkimizda">Yaklaşımımız</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="izgara-cizgi gorunum" style="margin-top:3rem">
|
||
<div><p class="ustbaslik" style="margin-bottom:0.3rem">01</p><h3>Ölçekli Doğruluk</h3><p class="ince" style="font-size:0.9rem;margin:0.5rem 0 0">Her pafta 1/50 veya 1/100 ölçekte, ölçü zinciriyle birlikte üretilir.</p></div>
|
||
<div><p class="ustbaslik" style="margin-bottom:0.3rem">02</p><h3>Temsil ve Gerçeklik</h3><p class="ince" style="font-size:0.9rem;margin:0.5rem 0 0">3D model, plandan türetilir; sunumdaki ile uygulamadaki aynı olur.</p></div>
|
||
<div><p class="ustbaslik" style="margin-bottom:0.3rem">03</p><h3>Malzeme Disiplini</h3><p class="ince" style="font-size:0.9rem;margin:0.5rem 0 0">Sınırlı sayıda malzeme, tutarlı bir bütün kurar.</p></div>
|
||
<div><p class="ustbaslik" style="margin-bottom:0.3rem">04</p><h3>Şeffaf Süreç</h3><p class="ince" style="font-size:0.9rem;margin:0.5rem 0 0">Her revizyon gerekçesiyle birlikte belgelenir.</p></div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bolum kap" aria-labelledby="seciliBaslik">
|
||
<div class="baslik-satir">
|
||
<div>
|
||
<p class="ustbaslik">Seçilmiş Çalışmalar</p>
|
||
<h2 id="seciliBaslik">Projeler</h2>
|
||
</div>
|
||
<p class="ince">Sekiz temsilî proje: konuttan cephe tasarımına, iç mekândan uygulama projesine.</p>
|
||
</div>
|
||
<div class="proje-izgara">
|
||
${a.map(l=>`<a class="proje-kart gorunum" href="#/proje/${l.slug}">
|
||
<span class="etiket">Temsilî örnek</span>
|
||
<div class="proje-kart__gorsel">${G(l)}</div>
|
||
<div class="proje-kart__govde">
|
||
<span class="proje-kart__ad">${l.ad}</span>
|
||
<span class="proje-kart__tur">${l.tur}</span>
|
||
</div>
|
||
</a>`).join("")}
|
||
</div>
|
||
<div style="margin-top:2.2rem">
|
||
<a class="btn" href="#/projeler">Tüm projeleri görün</a>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bolum--koyu bolum" id="karsilastir" aria-labelledby="karsBaslik">
|
||
<div class="kap" id="karsilastirKok">
|
||
<div class="baslik-satir">
|
||
<div>
|
||
<p class="ustbaslik ustbaslik--acik">2D / 3D Karşılaştırma</p>
|
||
<h2 id="karsBaslik">Plan ile model aynı veriden.</h2>
|
||
</div>
|
||
<p class="ince">Solda ölçekli plan, sağda aynı planın üç boyutlu karşılığı. Kat seçin, duvarları kapatın, kamerayı döndürün.</p>
|
||
</div>
|
||
<div class="kontrol-cubugu">
|
||
<div class="kontrol-grubu">
|
||
<span class="kontrol-etiket">Kat</span>
|
||
<button class="cip" data-kat="0" aria-pressed="true">Zemin</button>
|
||
<button class="cip" data-kat="1" aria-pressed="false">Üst</button>
|
||
</div>
|
||
<div class="kontrol-grubu">
|
||
<button class="cip" id="duvarBtn" aria-pressed="false">Duvarları gizle</button>
|
||
</div>
|
||
<div class="kontrol-grubu">
|
||
<span class="kontrol-etiket">Kamera</span>
|
||
<button class="cip" data-gorunum="dis" aria-pressed="true">Dış</button>
|
||
<button class="cip" data-gorunum="ic" aria-pressed="false">İç</button>
|
||
<button class="cip" data-gorunum="ust" aria-pressed="false">Üstten</button>
|
||
</div>
|
||
<div class="kontrol-grubu">
|
||
<span class="kontrol-etiket">Cephe</span>
|
||
<button class="cip" data-cephe="krem-siva" aria-pressed="true">Krem sıva</button>
|
||
<button class="cip" data-cephe="antrasit-tas" aria-pressed="false">Antrasit taş</button>
|
||
<button class="cip" data-cephe="meşe-panel" aria-pressed="false">Meşe panel</button>
|
||
</div>
|
||
</div>
|
||
<div class="karsilastir">
|
||
<div class="karsilastir__panel">
|
||
<span class="karsilastir__etiket">2D · Plan</span>
|
||
<div class="karsilastir__govde" id="k2d"></div>
|
||
</div>
|
||
<div class="karsilastir__panel">
|
||
<span class="karsilastir__etiket">3D · Model</span>
|
||
<div class="karsilastir__govde" id="k3d"></div>
|
||
</div>
|
||
</div>
|
||
<p class="ince" style="font-size:0.78rem;margin-top:0.9rem">
|
||
Not: 3D sahne ile 2D plan aynı geometriden üretilir; hiçbir hazır model dosyası kullanılmaz.
|
||
</p>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bolum--koyu bolum" aria-labelledby="hizmetOzet">
|
||
<div class="kap">
|
||
<div class="baslik-satir">
|
||
<div>
|
||
<p class="ustbaslik ustbaslik--acik">Hizmetler</p>
|
||
<h2 id="hizmetOzet">Tasarımdan paftaya</h2>
|
||
</div>
|
||
<p class="ince">Mimari proje tasarımı, AutoCAD teknik çizimi, 3D modelleme, iç mimari, renovasyon ve proje takibi.</p>
|
||
</div>
|
||
<div class="izgara-cizgi">
|
||
${V.slice(0,4).map(l=>`<div><h3 style="font-size:1.15rem;font-family:var(--font-metin);font-weight:500">${l.ad}</h3>
|
||
<p class="ince" style="font-size:0.88rem;margin:0.5rem 0 0">${l.aciklama}</p></div>`).join("")}
|
||
</div>
|
||
<div style="margin-top:2rem;display:flex;gap:0.8rem;flex-wrap:wrap">
|
||
<a class="btn btn--acik" href="#/hizmetler">Hizmetlerin tamamı</a>
|
||
<a class="btn btn--acik" href="#/cizimler">Teknik çizim galerisi</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bolum kap" aria-labelledby="cagri">
|
||
<div class="cagri-blok gorunum">
|
||
<div>
|
||
<p class="ustbaslik">İletişim</p>
|
||
<h2 id="cagri">Projenizi konuşalım.</h2>
|
||
<p class="ince" style="max-width:52ch;margin-top:0.8rem">
|
||
Proje türü, yaklaşık alan ve ihtiyaçlarınızı paylaşın; ilk görüşme için size dönüş yapalım.
|
||
</p>
|
||
</div>
|
||
<a class="btn btn--dolu" href="#/iletisim">İletişim formu</a>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
${E()}`}function ye(){return`${j("#/hakkimizda")}
|
||
<main id="icerik">
|
||
<section class="detay-baslik kap">
|
||
<p class="ustbaslik">Hakkımızda</p>
|
||
<h1>Çizgi, ölçü ve<br/><em style="font-style:italic;color:var(--bronz)">mekân</em> üzerine.</h1>
|
||
<p class="ince" style="max-width:58ch;margin-top:1.2rem">
|
||
Atelier Mimarlık; mimari tasarımı AutoCAD tabanlı teknik çizim disipliniyle birlikte
|
||
yürüten, konut ve ticari ölçekte proje üreten bir stüdyodur.
|
||
</p>
|
||
</section>
|
||
|
||
<section class="bolum--dar kap">
|
||
<div class="detay-izgara">
|
||
<div>
|
||
<h2 style="margin-bottom:1rem">Yaklaşım</h2>
|
||
<p>
|
||
Tasarımı, çizimden bağımsız bir "hayal etme" işi olarak görmüyoruz. Bir duvarın kalınlığı,
|
||
bir pencerenin denizlik kotu, bir kapının açılım yönü — bunlar tasarımın kendisidir.
|
||
Bu yüzden pafta ile mekânı aynı süreçte, birlikte üretiyoruz.
|
||
</p>
|
||
<p>
|
||
Her projeye üç soruyla başlıyoruz: Kim kullanacak? Günün hangi saatinde nerede olacak?
|
||
Bu mekânı beş yıl sonra ne değiştirecek? Cevaplar netleşmeden plan kararı almıyoruz.
|
||
</p>
|
||
</div>
|
||
<div>
|
||
<h2 style="margin-bottom:1rem">Felsefe</h2>
|
||
<p class="ince">
|
||
"Az ama doğru" — malzeme sayısını sınırlı tutmak, detayı ise sonuna kadar çözmek.
|
||
Gösterişli bir görsel yerine, uygulanabilir bir detay tercih ederiz.
|
||
</p>
|
||
<ul style="list-style:none;padding:0;margin:1.2rem 0 0;display:grid;gap:0.7rem">
|
||
<li style="border-left:2px solid var(--bronz);padding-left:0.9rem">Ölçek, kararın kendisidir.</li>
|
||
<li style="border-left:2px solid var(--bronz);padding-left:0.9rem">Işık, plan kararıyla gelir; aydınlatma sonradan eklenmez.</li>
|
||
<li style="border-left:2px solid var(--bronz);padding-left:0.9rem">Uygulanmayan detay çizilmemiş sayılır.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bolum--koyu bolum">
|
||
<div class="kap">
|
||
<div class="baslik-satir">
|
||
<div><p class="ustbaslik ustbaslik--acik">Teknik Uzmanlık</p><h2>Kullandığımız araçlar ve çıktılar</h2></div>
|
||
</div>
|
||
<div class="izgara-cizgi">
|
||
<div><h3 style="font-size:1.05rem;font-family:var(--font-metin);font-weight:500">AutoCAD</h3><p class="ince" style="font-size:0.88rem;margin:0.4rem 0 0">Katmanlı, ölçülendirilmiş 2D pafta üretimi (plan, kesit, görünüş, detay).</p></div>
|
||
<div><h3 style="font-size:1.05rem;font-family:var(--font-metin);font-weight:500">3D Modelleme</h3><p class="ince" style="font-size:0.88rem;margin:0.4rem 0 0">Kütle ve iç mekân modelleri; malzeme ve ışık denemeleri.</p></div>
|
||
<div><h3 style="font-size:1.05rem;font-family:var(--font-metin);font-weight:500">Metraj</h3><p class="ince" style="font-size:0.88rem;margin:0.4rem 0 0">Pafta üzerinden malzeme ve mahal listesi çıkarımı.</p></div>
|
||
<div><h3 style="font-size:1.05rem;font-family:var(--font-metin);font-weight:500">Koordinasyon</h3><p class="ince" style="font-size:0.88rem;margin:0.4rem 0 0">Statik ve mekanik projelerle çakışma kontrolü.</p></div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bolum kap">
|
||
<div class="baslik-satir">
|
||
<div><p class="ustbaslik">Proje Yönetimi</p><h2>Süreç nasıl işliyor</h2></div>
|
||
<p class="ince">Yedi adım, her adımda tek bir teslim ve tek bir onay noktası.</p>
|
||
</div>
|
||
<ol class="surec">
|
||
${X.map(a=>`<li><div><h3>${a.ad}</h3><p>${a.aciklama}</p></div></li>`).join("")}
|
||
</ol>
|
||
</section>
|
||
</main>
|
||
${E()}`}function pe(){return`${j("#/projeler")}
|
||
<main id="icerik">
|
||
<section class="detay-baslik kap">
|
||
<p class="ustbaslik">Portfolyo</p>
|
||
<h1>Projeler</h1>
|
||
<p class="ince" style="max-width:60ch;margin-top:1.1rem">
|
||
Sekiz temsilî proje. Her biri kendi detay sayfasında: yaklaşım, örnek alan ölçüleri,
|
||
kullanılan teknikler ve çalışma aşamaları.
|
||
</p>
|
||
<p class="bilgi-notu" style="margin-top:1.4rem">
|
||
Bu projeler gerçek müşteri işi değildir; stüdyo yaklaşımını göstermek için hazırlanmış temsilî örneklerdir.
|
||
</p>
|
||
</section>
|
||
|
||
<section class="bolum--dar kap">
|
||
<div class="proje-izgara">
|
||
${H.map(a=>`<a class="proje-kart gorunum" href="#/proje/${a.slug}">
|
||
<span class="etiket">Temsilî örnek</span>
|
||
<div class="proje-kart__gorsel">${G(a)}</div>
|
||
<div class="proje-kart__govde">
|
||
<span class="proje-kart__ad">${a.ad}</span>
|
||
<span class="proje-kart__tur">${a.tur}</span>
|
||
</div>
|
||
</a>`).join("")}
|
||
</div>
|
||
</section>
|
||
</main>
|
||
${E()}`}function fe(a){const l=ie(a);if(!l)return null;const t=H.findIndex(o=>o.slug===a),e=H[(t+1)%H.length],d=Z(a)[0];return`${j("#/projeler")}
|
||
<main id="icerik">
|
||
<section class="detay-baslik kap">
|
||
<a class="geri" href="#/projeler">
|
||
<svg width="14" height="10" viewBox="0 0 14 10" aria-hidden="true"><path d="M13 5H1M5 1L1 5l4 4" stroke="currentColor" stroke-width="1.4" fill="none"/></svg>
|
||
Tüm projeler
|
||
</a>
|
||
<p class="ustbaslik" style="margin-top:1.4rem">${l.tur} · Temsilî örnek</p>
|
||
<h1>${l.ad}</h1>
|
||
<dl class="detay-meta">
|
||
<div><dt>Konum</dt><dd>${l.konum}</dd></div>
|
||
<div><dt>Yıl</dt><dd>${l.yil}</dd></div>
|
||
<div><dt>Alan</dt><dd>${l.alan}</dd></div>
|
||
<div><dt>Kat</dt><dd>${l.kat}</dd></div>
|
||
</dl>
|
||
</section>
|
||
|
||
<section class="kap">
|
||
<div class="detay-gorsel detay-gorsel--buyuk">${G(l)}</div>
|
||
<p class="bilgi-notu" style="margin-top:0.7rem">
|
||
Görsel temsilîdir — fotoğraf değil; yapının kendi plan duvarlarından üretilmiş izometrik maket görünümüdür.
|
||
</p>
|
||
</section>
|
||
|
||
<section class="bolum--dar kap">
|
||
<div class="detay-izgara">
|
||
<div>
|
||
<h2 style="margin-bottom:1rem">Proje açıklaması</h2>
|
||
<p>${l.ozet}</p>
|
||
<h3 style="margin-top:2rem;font-size:1.2rem;font-family:var(--font-metin);font-weight:500">Tasarım yaklaşımı</h3>
|
||
<ul style="list-style:none;padding:0;margin:0.8rem 0 0;display:grid;gap:0.9rem">
|
||
${l.yaklasim.map((o,c)=>`<li style="display:grid;grid-template-columns:2rem 1fr;gap:0.6rem"><b style="color:var(--bronz);font-weight:500">0${c+1}</b><span>${o}</span></li>`).join("")}
|
||
</ul>
|
||
</div>
|
||
<aside>
|
||
<h3 style="font-size:1.05rem;font-family:var(--font-metin);font-weight:500;margin-bottom:0.7rem">Örnek alan ölçüleri</h3>
|
||
<table class="olcu-tablo">
|
||
<caption class="skip-link">Örnek alan ölçüleri tablosu</caption>
|
||
<thead><tr><th scope="col">Mahal</th><th scope="col">Ölçü</th></tr></thead>
|
||
<tbody>
|
||
${l.olculer.map(o=>`<tr><td>${o.ad}</td><td>${o.deger}</td></tr>`).join("")}
|
||
</tbody>
|
||
</table>
|
||
|
||
<h3 style="font-size:1.05rem;font-family:var(--font-metin);font-weight:500;margin:2rem 0 0.7rem">Kullanılan teknikler</h3>
|
||
<ul style="list-style:none;padding:0;margin:0;display:grid;gap:0.45rem;font-size:0.9rem">
|
||
${l.teknikler.map(o=>`<li style="border-bottom:1px dotted var(--cizgi);padding-bottom:0.45rem">${o}</li>`).join("")}
|
||
</ul>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bolum--dar kap">
|
||
<h2 style="margin-bottom:1rem">Çalışma aşamaları</h2>
|
||
<ul class="asama-listesi">
|
||
${l.asamalar.map((o,c)=>`<li><b style="color:var(--bronz)">${String(c+1).padStart(2,"0")}</b><span><b>${o.ad}</b> — ${o.aciklama}</span><em>${o.durum}</em></li>`).join("")}
|
||
</ul>
|
||
</section>
|
||
|
||
<section class="bolum--dar kap">
|
||
<h2 style="margin-bottom:0.6rem">Temsilî plan</h2>
|
||
<p class="ince" style="margin-bottom:1rem;font-size:0.9rem">
|
||
Aşağıdaki plan, projenin yaklaşımını gösteren temsilî bir çizimdir (${d.ad} · 1/50 · ölçülendirilmiş).
|
||
</p>
|
||
<div class="detay-gorsel">${K(d,{olcek:"1/50"})}</div>
|
||
<div style="margin-top:1.4rem;display:flex;gap:0.8rem;flex-wrap:wrap">
|
||
<a class="btn btn--kucuk" href="kesif.html">3D olarak keşfet</a>
|
||
<a class="btn btn--kucuk" href="#/cizimler">Teknik çizim galerisi</a>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="kap" style="padding-bottom:var(--bosluk)">
|
||
<div class="sonraki-proje">
|
||
<div>
|
||
<p class="ustbaslik" style="margin-bottom:0.3rem">Sonraki proje</p>
|
||
<strong>${e.ad}</strong>
|
||
</div>
|
||
<a class="btn btn--kucuk" href="#/proje/${e.slug}">Görüntüle</a>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
${E()}`}function he(){const a=S[0],l=S[1],t={"kat-plani":K(a,{olcek:"1/50"}),"vaziyet-plani":de(),kesit:se(),cephe:oe(),olculendirme:K(l,{olcu:!0,akslar:!0,etiket:!1,olcek:"1/50"}),"kapi-pencere":ke(),"mobilya-plani":K(a,{olcu:!1,akslar:!1,etiket:!0,olcek:"1/50"}),elektrik:me()};return`${j("#/cizimler")}
|
||
<main id="icerik">
|
||
<section class="detay-baslik kap">
|
||
<p class="ustbaslik">Teknik Çizimler</p>
|
||
<h1>Paftalar</h1>
|
||
<p class="ince" style="max-width:60ch;margin-top:1.1rem">
|
||
AutoCAD tarzında hazırlanmış temsilî mimari çizim galerisi. Ölçü çizgileri, aks çemberleri,
|
||
katman renkleri ve çizgi kalınlıklarıyla birlikte. Büyütmek için çizime dokunun.
|
||
</p>
|
||
<p class="bilgi-notu" style="margin-top:1.4rem">
|
||
Bu çizimler tarayıcıda SVG olarak üretilir; gerçek bir AutoCAD (.dwg) dosyası değildir.
|
||
</p>
|
||
</section>
|
||
|
||
<section class="bolum--dar kap">
|
||
<div class="cizim-filtre" role="group" aria-label="Çizim türüne göre filtrele">
|
||
<button class="cip" data-filtre="hepsi" aria-pressed="true">Hepsi</button>
|
||
${[...new Set(Y.map(e=>e.tur))].map(e=>`<button class="cip" data-filtre="${e}" aria-pressed="false">${e}</button>`).join("")}
|
||
</div>
|
||
|
||
<div class="cizim-izgara" id="cizimIzgara">
|
||
${Y.map(e=>`<article class="cizim-kart gorunum" data-tur="${e.tur}">
|
||
<div class="cizim-kart__tuval" data-cizim="${e.id}" data-ad="${e.ad}" tabindex="0" role="button" aria-label="${e.ad} çizimini büyüt">
|
||
${t[e.id]??K(a)}
|
||
</div>
|
||
<div class="cizim-kart__alt">
|
||
<div>
|
||
<h3>${e.ad}</h3>
|
||
<p class="ince" style="font-size:0.8rem;margin:0.2rem 0 0">${e.aciklama}</p>
|
||
</div>
|
||
<span>${e.tur}</span>
|
||
</div>
|
||
</article>`).join("")}
|
||
</div>
|
||
</section>
|
||
</main>
|
||
<div id="buyutecKok"></div>
|
||
${E()}`}function ve(){return`${j("#/hizmetler")}
|
||
<main id="icerik">
|
||
<section class="detay-baslik kap">
|
||
<p class="ustbaslik">Hizmetler</p>
|
||
<h1>Ne yapıyoruz?</h1>
|
||
<p class="ince" style="max-width:58ch;margin-top:1.1rem">
|
||
Dokuz başlıkta tanımlı hizmet; tek tek alınabildiği gibi baştan sona bütün bir proje
|
||
olarak da yürütülebilir.
|
||
</p>
|
||
</section>
|
||
|
||
<section class="bolum--dar kap">
|
||
${V.map((a,l)=>`<div class="hizmet gorunum">
|
||
<div style="display:flex;gap:1rem;align-items:baseline">
|
||
<span style="color:var(--bronz);font-family:var(--font-baslik);font-size:1.1rem">${String(l+1).padStart(2,"0")}</span>
|
||
<h3>${a.ad}</h3>
|
||
</div>
|
||
<p>${a.aciklama}</p>
|
||
</div>`).join("")}
|
||
<div class="hizmet gorunum">
|
||
<div style="display:flex;gap:1rem;align-items:baseline">
|
||
<span style="color:var(--bronz);font-family:var(--font-baslik);font-size:1.1rem">09</span>
|
||
<h3>Danışmanlık ve Proje Takibi</h3>
|
||
</div>
|
||
<p>Ruhsat sürecinde pafta kontrolü, şantiye uyum takibi ve tasarım kararlarında ikinci görüş.</p>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="bolum--koyu bolum">
|
||
<div class="kap" style="display:grId;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))">
|
||
<div>
|
||
<p class="ustbaslik ustbaslik--acik">Çıktılar</p>
|
||
<h2>Ne teslim ediyoruz?</h2>
|
||
</div>
|
||
<div>
|
||
<ul style="list-style:none;padding:0;margin:0;display:grid;gap:0.8rem;font-size:0.92rem">
|
||
<li>Pafta seti — plan, kesit, görünüş, detay (PDF + DWG)</li>
|
||
<li>Mahal listesi ve metraj tablosu</li>
|
||
<li>Malzeme ve renk föyü</li>
|
||
<li>3D model ve sunum görselleri</li>
|
||
<li>Revizyon gerekçe notları</li>
|
||
</ul>
|
||
<a class="btn btn--acik" style="margin-top:1.4rem" href="#/iletisim">Teklif isteyin</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
${E()}`}function $e(){return`${j("#/surec")}
|
||
<main id="icerik">
|
||
<section class="detay-baslik kap">
|
||
<p class="ustbaslik">Tasarım Sürecimiz</p>
|
||
<h1>Yedi adımda<br/>çizgiden mekâna.</h1>
|
||
<p class="ince" style="max-width:56ch;margin-top:1.1rem">
|
||
Her adımın bir teslimi ve bir onay noktası var. Sizin onayınız olmadan bir sonraki
|
||
adıma geçilmiyor.
|
||
</p>
|
||
</section>
|
||
|
||
<section class="bolum--dar kap">
|
||
<ol class="surec">
|
||
${X.map(a=>`<li class="gorunum"><div><h3>${a.ad}</h3><p>${a.aciklama}</p></div></li>`).join("")}
|
||
</ol>
|
||
</section>
|
||
|
||
<section class="bolum--dar kap">
|
||
<div class="detay-izgara">
|
||
<div>
|
||
<h2>Süre beklentisi</h2>
|
||
<p class="ince" style="margin-top:0.8rem">
|
||
Süreler proje kapsamına göre değişir. Aşağıdaki aralıklar temsilî bir konut projesi
|
||
için tipik değerlerdir; kesin takvim ilk görüşmede netleşir.
|
||
</p>
|
||
</div>
|
||
<table class="olcu-tablo">
|
||
<thead><tr><th scope="col">Aşama</th><th scope="col">Tipik süre</th></tr></thead>
|
||
<tbody>
|
||
<tr><td>İhtiyaç analizi</td><td>3–5 gün</td></tr>
|
||
<tr><td>Ön tasarım</td><td>7–10 gün</td></tr>
|
||
<tr><td>Teknik çizim</td><td>10–15 gün</td></tr>
|
||
<tr><td>3D sunum</td><td>5–7 gün</td></tr>
|
||
<tr><td>Revizyon</td><td>3–7 gün</td></tr>
|
||
<tr><td>Uygulama projesi</td><td>15–25 gün</td></tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
${E()}`}function ge(){return`${j("#/iletisim")}
|
||
<main id="icerik">
|
||
<section class="detay-baslik kap">
|
||
<p class="ustbaslik">İletişim</p>
|
||
<h1>Projenizi anlatın.</h1>
|
||
<p class="ince" style="max-width:56ch;margin-top:1.1rem">
|
||
Formu doldurun; proje türü, yaklaşık alan ve ihtiyaçlarınızı birlikte değerlendirelim.
|
||
</p>
|
||
</section>
|
||
|
||
<section class="bolum--dar kap">
|
||
<div class="detay-izgara">
|
||
<div>
|
||
<form class="form" id="iletisimForm" novalidate>
|
||
<div class="alan">
|
||
<label for="ad">Ad Soyad</label>
|
||
<input id="ad" name="ad" type="text" autocomplete="name" required placeholder="Adınız ve soyadınız" />
|
||
</div>
|
||
<div class="alan">
|
||
<label for="eposta">E-posta</label>
|
||
<input id="eposta" name="eposta" type="email" autocomplete="email" required placeholder="ornek@eposta.com" />
|
||
</div>
|
||
<div class="alan">
|
||
<label for="telefon">Telefon (opsiyonel)</label>
|
||
<input id="telefon" name="telefon" type="tel" autocomplete="tel" placeholder="05xx xxx xx xx" />
|
||
</div>
|
||
<div class="alan">
|
||
<label for="tur">Proje türü</label>
|
||
<select id="tur" name="tur" required>
|
||
<option value="">Seçiniz</option>
|
||
<option>Konut / Villa</option>
|
||
<option>İç Mimari</option>
|
||
<option>Ticari / Ofis</option>
|
||
<option>Otel / Konaklama</option>
|
||
<option>Renovasyon / Tadilat</option>
|
||
<option>Cephe Tasarımı</option>
|
||
<option>Diğer</option>
|
||
</select>
|
||
</div>
|
||
<div class="alan">
|
||
<label for="alan">Tahmini alan (m²)</label>
|
||
<input id="alan" name="alan" type="number" min="10" max="100000" step="1" placeholder="Örn. 240" />
|
||
</div>
|
||
<div class="alan">
|
||
<label for="konum">Proje konumu</label>
|
||
<input id="konum" name="konum" type="text" placeholder="İl / ilçe" />
|
||
</div>
|
||
<div class="alan alan--tam">
|
||
<label for="aciklama">Açıklama</label>
|
||
<textarea id="aciklama" name="aciklama" required placeholder="İhtiyaçlarınız, arsa/yapı durumu, hedeflediğiniz takvim…" minlength="20"></textarea>
|
||
<small>En az 20 karakter.</small>
|
||
</div>
|
||
<div class="alan alan--tam">
|
||
<label for="dosya">Dosya yükleme alanı (demo)</label>
|
||
<input id="dosya" name="dosya" type="file" accept=".pdf,.dwg,.dxf,.jpg,.jpeg,.png" />
|
||
<small>Gerçek yükleme yapılmaz — bu alan arayüz demosudur. Kabul edilen türler: PDF, DWG, DXF, JPG, PNG.</small>
|
||
</div>
|
||
<div class="alan alan--tam">
|
||
<label for="onay" style="display:flex;gap:0.6rem;align-items:flex-start;text-transform:none;letter-spacing:0;font-size:0.85rem;color:var(--antrasit)">
|
||
<input id="onay" name="onay" type="checkbox" required style="width:20px;height:20px;min-height:20px;margin-top:2px" />
|
||
<span>Bilgilerimin yalnızca bu talep için işlenmesini onaylıyorum. (Demo formu)</span>
|
||
</label>
|
||
</div>
|
||
<div class="alan alan--tam">
|
||
<button class="btn btn--dolu" type="submit" style="justify-self:start">Talebi Gönder</button>
|
||
</div>
|
||
</form>
|
||
<div id="formSonuc" role="status" aria-live="polite"></div>
|
||
<div class="uyari-kutu">
|
||
<strong>Bu form bir demodur.</strong> Gerçek bir sunucuya bağlı değildir; gönderdiğiniz
|
||
bilgi hiçbir yere iletilmez, yalnızca tarayıcınızda doğrulanır. Gerçek iletişim için
|
||
<a href="mailto:${T.eposta}" style="text-decoration:underline">${T.eposta}</a>
|
||
adresini kullanın.
|
||
</div>
|
||
</div>
|
||
|
||
<aside>
|
||
<h3 style="font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--bronz);font-family:var(--font-metin);margin-bottom:0.9rem">Stüdyo</h3>
|
||
<ul style="list-style:none;padding:0;margin:0;display:grid;gap:0.8rem;font-size:0.92rem">
|
||
<li>${T.adres}</li>
|
||
<li><a href="mailto:${T.eposta}">${T.eposta}</a></li>
|
||
<li>${T.telefon}</li>
|
||
<li class="ince">${T.saatler}</li>
|
||
</ul>
|
||
<p class="bilgi-notu" style="margin-top:1.4rem">İletişim bilgileri de temsilîdir.</p>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
${E()}`}const ze=document.getElementById("app");let z=null,b=null;function O(){const a=window.location.hash||"#/",l=()=>{z?.yokEt(),z=null,b?.yokEt(),b=null},[t,e,d]=a.split("/");let o="";e===void 0||e===""?o=ue():e==="hakkimizda"?o=ye():e==="projeler"?o=pe():e==="proje"&&d?o=fe(d)??U():e==="cizimler"?o=he():e==="hizmetler"?o=ve():e==="surec"?o=$e():e==="iletisim"?o=ge():o=U(),l(),ze.innerHTML=o,window.scrollTo(0,0),xe(),we(),(e===void 0||e==="")&&(Te(),Ae()),document.title=e===void 0||e===""?"ATELIER MİMARLIK | Mimari Tasarım ve Teknik Çizim":`${be(e,d)} | ATELIER MİMARLIK`}function be(a,l){const t={hakkimizda:"Hakkımızda",projeler:"Projeler",cizimler:"Teknik Çizimler",hizmetler:"Hizmetler",surec:"Tasarım Sürecimiz",iletisim:"İletişim"};return a==="proje"&&l?l.split("-").map(d=>d.charAt(0).toUpperCase()+d.slice(1)).join(" "):t[a]??"Sayfa"}function U(){return`<main id="icerik" class="kap" style="padding-top:8rem;min-height:60vh">
|
||
<p class="ustbaslik">404</p>
|
||
<h1>Aradığınız sayfa bulunamadı.</h1>
|
||
<p class="ince" style="margin-top:1rem">Bağlantı taşınmış ya da yanlış yazılmış olabilir.</p>
|
||
<a class="btn" style="margin-top:1.5rem" href="#/">Ana sayfaya dön</a>
|
||
</main>`}function xe(){const a=document.getElementById("ust"),l=()=>{a&&a.classList.toggle("ust--kaydi",window.scrollY>40)};l(),window.removeEventListener("scroll",l),window.addEventListener("scroll",l,{passive:!0});const t=document.getElementById("menuAc"),e=document.getElementById("anaMenu");t&&e&&(t.addEventListener("click",()=>{const d=e.classList.toggle("menu--acik");t.setAttribute("aria-expanded",String(d)),t.setAttribute("aria-label",d?"Menüyü kapat":"Menüyü aç")}),e.querySelectorAll("a").forEach(d=>d.addEventListener("click",()=>{e.classList.remove("menu--acik"),t.setAttribute("aria-expanded","false")})))}function we(){const a=document.querySelectorAll(".gorunum");if(!("IntersectionObserver"in window)){a.forEach(t=>t.classList.add("gorunum--girdi"));return}const l=new IntersectionObserver(t=>{t.forEach(e=>{e.isIntersecting&&(e.target.classList.add("gorunum--girdi"),l.unobserve(e.target))})},{rootMargin:"0px 0px -8% 0px",threshold:.08});a.forEach(t=>l.observe(t))}function Te(){const a=document.getElementById("heroTuval");if(!a)return;const l=window.matchMedia("(max-width: 760px)").matches;try{z=new F({kap:a,arka:1776152,golge:!l,don:!0});const t=z.malzemeler();for(let o=0;o<S.length;o++){const c=S[o];z.ekle(R(c,t,"krem-siva",o*3.05,{doseme:!0}))}const e=S.length*3.05;z.ekle(ae(S[0],t,"krem-siva",e));const d=window.matchMedia("(max-width: 760px)").matches;z.kamera.position.set(d?-26:-22,d?18:13,d?40:26),z.kontroller.target.set(7,d?4.2:3.2,5.5),z.kontroller.autoRotate=!0,z.kontroller.enableZoom=!1,z.kontroller.enablePan=!1,z.gece(!0),window.addEventListener("resize",()=>z?.boyutla())}catch(t){console.warn("3D arka plan başlatılamadı:",t)}}function Ae(){const a=document.getElementById("karsilastirKok");if(!a)return;let l=0,t=!0,e="dis",d="krem-siva";const o=a.querySelector("#k3d"),c=a.querySelector("#k2d");try{b=new F({kap:o,arka:2368031,golge:!0}),b.kontroller.target.set(7,1.5,5.5),b.kameraAyarla("dis"),window.addEventListener("resize",()=>b?.boyutla())}catch(r){o.innerHTML='<p style="padding:2rem;color:#c9c1b4;font-size:0.85rem">Tarayıcınız WebGL desteklemiyor; 3D görünüm kullanılamıyor. Soldaki plan görüntülenmeye devam eder.</p>',console.warn("Karşılaştırma sahnesi başlatılamadı:",r)}const y=()=>{const r=S[l];if(c.innerHTML=K(r,{olcu:!1,akslar:!0,olcek:"1/100"}),!b)return;b.bosalt();const n=b.malzemeler();t?b.ekle(R(r,n,d,0,{icDuvar:!0})):b.ekle(R(r,n,d,0,{icDuvar:!1})),b.kameraAyarla(e)};a.querySelectorAll("[data-kat]").forEach(r=>{r.addEventListener("click",()=>{l=Number(r.dataset.kat),a.querySelectorAll("[data-kat]").forEach(n=>n.setAttribute("aria-pressed",String(n===r))),y()})});const m=a.querySelector("#duvarBtn");m?.addEventListener("click",()=>{t=!t,m.setAttribute("aria-pressed",String(!t)),m.textContent=t?"Duvarları gizle":"Duvarları göster",y()}),a.querySelectorAll("[data-gorunum]").forEach(r=>{r.addEventListener("click",()=>{e=r.dataset.gorunum,a.querySelectorAll("[data-gorunum]").forEach(n=>n.setAttribute("aria-pressed",String(n===r))),b?.kameraAyarla(e)})}),a.querySelectorAll("[data-cephe]").forEach(r=>{r.addEventListener("click",()=>{d=r.dataset.cephe,a.querySelectorAll("[data-cephe]").forEach(n=>n.setAttribute("aria-pressed",String(n===r))),y()})}),y()}function W(){const a=document.getElementById("cizimIzgara");if(!a)return;a.querySelectorAll(".cip").forEach(()=>{}),document.querySelectorAll(".cizim-filtre .cip").forEach(t=>{t.addEventListener("click",()=>{const e=t.dataset.filtre??"hepsi";document.querySelectorAll(".cizim-filtre .cip").forEach(d=>d.setAttribute("aria-pressed",String(d===t))),a.querySelectorAll(".cizim-kart").forEach(d=>{const o=e==="hepsi"||d.dataset.tur===e;d.style.display=o?"":"none"})})});const l=t=>{const e=document.getElementById("buyutecKok");if(!e)return;const d=t.dataset.ad??"Çizim";e.innerHTML=`<div class="buyutec" role="dialog" aria-modal="true" aria-label="${d} büyük görünüm">
|
||
<button class="buyutec__kapat" aria-label="Kapat">✕</button>
|
||
<div class="buyutec__ic">${t.innerHTML}</div>
|
||
</div>`;const o=e.querySelector(".buyutec"),c=()=>{e.innerHTML="",document.removeEventListener("keydown",y),t.focus()},y=m=>{m.key==="Escape"&&c()};o.addEventListener("click",m=>{m.target===o&&c()}),e.querySelector(".buyutec__kapat").addEventListener("click",c),document.addEventListener("keydown",y),e.querySelector(".buyutec__kapat").focus()};a.querySelectorAll(".cizim-kart__tuval").forEach(t=>{t.addEventListener("click",()=>l(t)),t.addEventListener("keydown",e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),l(t))})})}function N(){const a=document.getElementById("iletisimForm");if(!a)return;const l=document.getElementById("formSonuc");a.addEventListener("submit",t=>{if(t.preventDefault(),!a.checkValidity()){l.innerHTML=`<div class="uyari-kutu" role="alert" style="border-left-color:#b4543f">
|
||
Lütfen zorunlu alanları doldurun. Açıklama en az 20 karakter olmalıdır.
|
||
</div>`,a.querySelector(":invalid")?.focus();return}l.innerHTML=`<div class="uyari-kutu" role="status" style="border-left-color:#5b7f5b">
|
||
<strong>Demo:</strong> Talebiniz tarayıcıda doğrulandı. Bu form gerçek bir sunucuya bağlı olmadığı için
|
||
hiçbir yere gönderilmedi. Gerçek iletişim için e-posta adresimizi kullanabilirsiniz.
|
||
</div>`,a.reset()})}function Me(){O(),window.addEventListener("hashchange",()=>{O(),W(),N()}),W(),N()}Me();window.atelierDurum=()=>({rota:window.location.hash||"#/",baslik:document.title});
|