/* ═══════════════════════════════════════════════════════════════
   ONMART — Mürekkep & Kağıt · Rafine Monokrom Sistem (Fable 5)
   Fontlar: Syne (display) · Space Grotesk (gövde) · Space Mono (etiket)
   ═══════════════════════════════════════════════════════════════ */

@font-face{
  font-family:'Adumu';
  /* Yalnızca woff2. TTF yedeği listede dururken tarayıcı 358 KB'lık dosyayı da
     indiriyordu — sayfanın tamamı bundan büyük değil. woff2, Adumu'nun kullanılan
     tüm karakterlerini (Türkçe dâhil) içeriyor ve her güncel tarayıcı destekliyor. */
  src:url('../fonts/Adumu.woff2') format('woff2');
  font-weight:400 800;
  font-display:swap;
}
:root{
  --ink:#101010;
  --ink-soft:#2b2b2b;
  --paper:#f4f1ea;
  --paper-deep:#e9e5db;
  --f-display:'Adumu','Syne',sans-serif;
  --f-body:'Space Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --f-mono:'Space Mono',monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --hair:1px solid;
  /* Sayfaların alt boşluğu: sabit iletişim çubuğu içeriği örtmesin.
     Çubuk ~56px; telif şeridi çubuktan çıkınca bu pay da kısaldı. */
  --bottom-nav-safe-height:96px;
  --player-safe-height:0px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--f-body);background:var(--ink);color:var(--paper);overflow:hidden;-webkit-font-smoothing:antialiased}
button{font-family:inherit;background:none;border:none;color:inherit;cursor:pointer}
a{color:inherit}
/* Menü öğeleri, kartlar ve düğümler artık gerçek <a> bağlantısı (Ctrl+tık ile
   yeni sekmede açılsın, adresi kopyalanabilsin diye). Buton görünümünü
   korumaları için tarayıcının bağlantı varsayılanları burada sıfırlanır. */
.file-item,.node,.portfolio-card,.social-card,.onmart-brand-card,.youtube-project-card,
.cabinet-card,.home-artist-portal,.artist-card,.service-portfolio-card,.portfolio-similar-card,
.instagram-card-link,.cbar-item{text-decoration:none;color:inherit;cursor:pointer}
.instagram-card-link{display:inline}
::selection{background:var(--paper);color:var(--ink)}

/* ── kaydırma çubukları ── */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:currentColor}

/* ═══ İNTRO ═══ */
.intro{position:fixed;inset:0;z-index:60;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .9s var(--ease),visibility .9s}
.intro.exit{opacity:0;visibility:hidden;pointer-events:none}
/* Perde solduktan sonra JS 'gone' ekler. Yalnızca visibility:hidden bırakılınca
   tam ekran grain katmanı, logo nefesi ve parıltı süpürmesi site boyunca arka
   planda çalışmayı sürdürüyordu; girişe geri dönülmediği için düğüm kaldırılır. */
.intro.gone{display:none}
/* derinlik katmanları: film grenli doku + kenar karartma */
.intro-grain{position:absolute;inset:-50%;pointer-events:none;opacity:.045;mix-blend-mode:screen;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain-drift 7s steps(6) infinite}
@keyframes grain-drift{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-2%)}80%{transform:translate(3%,1%)}100%{transform:translate(0,0)}}
.intro-vignette{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 45%, transparent 32%, rgba(0,0,0,.42) 78%, rgba(0,0,0,.72) 100%)}
.intro-frame{position:absolute;inset:22px;border:var(--hair);opacity:0;pointer-events:none;animation:frame-in 1.6s var(--ease) .15s forwards}
@keyframes frame-in{from{opacity:0;transform:scale(1.012)}to{opacity:.26;transform:none}}
.intro-frame::before,.intro-frame::after{content:'';position:absolute;width:14px;height:14px;border:var(--hair)}
.intro-frame::before{top:-8px;left:-8px;border-right:none;border-bottom:none}
.intro-frame::after{bottom:-8px;right:-8px;border-left:none;border-top:none}
.intro-corner{position:absolute;font-family:var(--f-mono);font-size:10px;letter-spacing:.32em;opacity:0;animation:corner-in 1s var(--ease) forwards}
.intro-corner.tl{top:38px;left:44px;animation-delay:.9s}
.intro-corner.tr{top:38px;right:44px;animation-delay:1.05s}
.intro-corner.bl{bottom:38px;left:44px;animation-delay:1.2s}
.intro-corner.br{bottom:38px;right:44px;animation-delay:1.35s}
@keyframes corner-in{to{opacity:.55}}
.intro-inner{position:relative;z-index:2;text-align:center;padding:0 20px;
  /* imleç paralaksı: katmanlar farklı hızda kayar → derinlik */
  transform:translate3d(calc(var(--px,0) * 6px), calc(var(--py,0) * 6px), 0);
  transition:transform .5s cubic-bezier(.16,1,.3,1)}

/* imleci izleyen yumuşak ışık */
.intro-spot{position:absolute;inset:0;pointer-events:none;opacity:0;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,45%), rgba(244,241,234,.07), transparent 62%);
  animation:corner-in 2.4s var(--ease) 1.2s forwards;transition:background .18s linear}

/* harf harf gelen üst başlık */
.intro-over{font-family:var(--f-mono);font-size:12px;letter-spacing:.5em;text-transform:lowercase;margin-bottom:34px}
.intro-over span{display:inline-block;opacity:0;transform:translateY(10px);
  animation:char-in .7s var(--ease) forwards;animation-delay:calc(.55s + var(--c) * .028s)}
@keyframes char-in{to{opacity:.62;transform:none}}

/* ölçüm aleti kadranı */
.intro-dial{position:absolute;top:50%;left:50%;width:clamp(380px,54vw,720px);aspect-ratio:1;
  transform:translate3d(calc(-50% - var(--px,0) * 14px), calc(-50% - var(--py,0) * 14px), 0);
  pointer-events:none;opacity:0;animation:dial-in 2.4s var(--ease) .35s forwards;
  transition:transform .7s cubic-bezier(.16,1,.3,1)}
@keyframes dial-in{from{opacity:0;transform:translate(-50%,-50%) scale(1.08)}to{opacity:1}}
.intro-dial svg{width:100%;height:100%;overflow:visible}
.intro-dial circle{fill:none;transform-origin:200px 200px}
/* çentikli halkalar: kesikli konturla üretilir */
.dial-ticks{stroke:rgba(244,241,234,.30);stroke-width:7;stroke-dasharray:1 13;animation:ring-spin 150s linear infinite}
.dial-ticks.fine{stroke:rgba(244,241,234,.16);stroke-width:4;stroke-dasharray:1 7;animation-duration:90s;animation-direction:reverse}
.dial-ring{stroke:rgba(244,241,234,.08);stroke-width:1}
/* ters yönde dönen iki ince yay */
.dial-arc{stroke:rgba(244,241,234,.5);stroke-width:1.4;stroke-linecap:round;
  stroke-dasharray:110 950;animation:ring-spin 26s linear infinite}
.dial-arc.rev{stroke:rgba(244,241,234,.3);stroke-dasharray:60 780;animation-duration:38s;animation-direction:reverse}
@keyframes ring-spin{to{transform:rotate(360deg)}}

/* merkezden dışa çizilen ince kural */
.intro-rule{height:1px;margin:26px auto 18px;width:min(320px,64vw);overflow:hidden}
.intro-rule i{display:block;height:100%;background:linear-gradient(90deg,transparent,rgba(244,241,234,.55),transparent);transform:scaleX(0);animation:rule-in 1.5s var(--ease) 1.5s forwards}
@keyframes rule-in{to{transform:scaleX(1)}}

/* logo: aşağıdan yukarı açılan maske ile girer, sonra hafifçe nefes alır */
.intro-logo{position:relative;display:inline-block;margin:4px 0;
  transform:translate3d(calc(var(--px,0) * -4px), calc(var(--py,0) * -4px), 0);
  transition:transform .6s cubic-bezier(.16,1,.3,1)}
.intro-logo img{width:clamp(230px,33vw,400px);height:auto;display:block;margin:0 auto;
  clip-path:inset(100% 0 0 0);transform:scale(1.05);
  animation:logo-reveal 1.5s cubic-bezier(.16,1,.3,1) .45s forwards, logo-breathe 7s ease-in-out 2.4s infinite}
@keyframes logo-reveal{
  0%{clip-path:inset(100% 0 0 0);transform:scale(1.05)}
  100%{clip-path:inset(0 0 0 0);transform:scale(1)}
}
@keyframes logo-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.014)}}
/* logonun arkasında yumuşak parlaklık — markayı öne çıkarır */
.intro-logo::before{content:'';position:absolute;inset:-22% -14%;pointer-events:none;z-index:-1;opacity:0;
  background:radial-gradient(closest-side, rgba(244,241,234,.13), transparent 72%);
  animation:corner-in 2s var(--ease) 1.1s forwards}
/* ışık süpürmesi yalnızca harf formlarında görünsün diye logo alfası maske olur */
.intro-sheen{position:absolute;inset:0;pointer-events:none;opacity:0;
  background:linear-gradient(100deg,transparent 38%,rgba(255,255,255,.9) 50%,transparent 62%);
  background-size:260% 100%;background-repeat:no-repeat;
  -webkit-mask-image:url('../img/onmart-logo-white.webp');mask-image:url('../img/onmart-logo-white.webp');
  -webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  animation:sheen-sweep 6.5s ease-in-out 1.9s infinite}
@keyframes sheen-sweep{
  0%{opacity:0;background-position:170% 0}
  8%{opacity:.9}
  26%{opacity:.9;background-position:-70% 0}
  34%,100%{opacity:0;background-position:-70% 0}
}
.intro-tag{font-family:var(--f-mono);font-size:10px;letter-spacing:.34em;text-transform:uppercase;opacity:0;animation:corner-in 1s var(--ease) 1.15s forwards}
.intro-coords{margin-top:22px;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.24em;opacity:0;animation:coords-in 1.2s var(--ease) 1.9s forwards}
@keyframes coords-in{to{opacity:.56}}

.click-line{width:1px;height:74px;margin:0 auto 18px;overflow:hidden}
.click-line span{display:block;width:100%;height:100%;background:currentColor;transform:scaleY(0);transform-origin:top;animation:grow-line 1.2s var(--ease) 1s forwards}
@keyframes grow-line{to{transform:scaleY(1)}}
.click{font-family:var(--f-mono);font-size:12px;letter-spacing:.4em;opacity:0;animation:pulse-click 2.4s ease 1.6s infinite}
.intro.exit .click{animation-play-state:paused}
@keyframes pulse-click{0%,100%{opacity:.35}50%{opacity:1}}
@media (prefers-reduced-motion: reduce){
  .intro-grain,.ring-arc,.intro-sheen{animation:none}
  .intro-grain{opacity:.03}
  .intro-sheen{display:none}
}

/* ═══ SAHNE / TEMA ═══ */
.stage{position:fixed;inset:0;opacity:0;visibility:hidden;transition:background .8s var(--ease),color .8s var(--ease),opacity .8s;overflow:hidden}
.stage.visible{opacity:1;visibility:visible}
.stage.dark{background:var(--ink);color:var(--paper)}
.stage.light{background:var(--paper);color:var(--ink)}
.grain{position:absolute;inset:0;pointer-events:none;opacity:.05;z-index:1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* Konum .stage-topbar'a taşındı; marka artık o şeridin ilk öğesi. */
.brand{z-index:20;font-family:var(--f-display);font-weight:800;font-size:22px;letter-spacing:-.01em;opacity:0;transform:translateY(-8px);transition:all .7s var(--ease);padding:0;text-align:left;text-decoration:none;color:inherit;white-space:nowrap}
.brand sup{font-family:var(--f-mono);font-size:9px;font-weight:400;margin-left:2px;opacity:.6}
.brand.show{opacity:1;transform:none}

/* ═══ ANA MENÜ ═══ */
/* Alt boşluk sabit iletişim çubuğunun payını içerir; yoksa son menü öğesi
   ("Teklif Al") çubuğun altında kalıyordu. */
.menu{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:24px max(6vw,42px) var(--bottom-nav-safe-height);z-index:5;transition:opacity .6s var(--ease),transform .6s var(--ease);overflow-y:auto;-webkit-overflow-scrolling:touch}
.menu.hide{opacity:0;transform:translateY(-26px);pointer-events:none}
.kicker,.page-kicker{font-family:var(--f-mono);font-size:11px;letter-spacing:.42em;text-transform:uppercase;opacity:.55;margin-bottom:14px}
.title{font-family:var(--f-display);font-weight:800;font-size:clamp(34px,6vw,74px);letter-spacing:-.02em;min-height:1.15em;line-height:1.05}
.title::after{content:'▌';font-weight:400;animation:caret .85s steps(2) infinite;margin-left:4px;opacity:.7}
.title.done::after{opacity:0;animation:none}
.menu.hide .title::after{animation-play-state:paused}
/* Menü kapalıyken önizleme ekranının boşta duran "yayın" döngüleri (tv-drift,
   tv-flicker, tv-sweep) görünmedikleri hâlde her karede boyanıyordu. */
.menu.hide .menu-preview *{animation-play-state:paused}
@keyframes caret{50%{opacity:0}}
/* Menü + önizleme ekranı yan yana; dar ekranda önizleme düşer, liste tam genişler. */
/* Liste ile önizleme çerçevesi aynı hizada başlar ve aynı yükseklikte biter:
   satır yüksekliğini liste belirler, ekran ona göre uzar (align-items:stretch). */
.menu-layout{margin-top:42px;display:grid;grid-template-columns:minmax(0,860px) minmax(320px,1fr);
  gap:clamp(30px,4vw,68px);align-items:stretch}
.file-menu{display:flex;flex-direction:column;border-top:var(--hair)}

/* ═══ MENÜ ÖNİZLEME EKRANI ═══
   Sağdaki boş alan artık ölü değil: bir başlığın üzerine gelindiğinde o sayfanın
   gerçek DOM'u kopyalanıp masaüstü genişliğinde kurulur ve kutuya sığacak kadar
   küçültülür. Yani sahte bir tel çerçeve değil, açılacak sayfanın kendisi görünür. */
.menu-preview{display:flex;flex-direction:column;opacity:0;transform:translateY(10px);
  animation:menu-preview-in .7s var(--ease) .55s forwards;pointer-events:none;user-select:none}
@keyframes menu-preview-in{to{opacity:1;transform:none}}
.menu-preview-screen{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;
  border:var(--hair);overflow:hidden;box-shadow:0 24px 60px -30px rgba(0,0,0,.55)}
.stage.dark .menu-preview-screen{background:#0d0d0d}
.stage.light .menu-preview-screen{background:var(--paper)}
.menu-preview-bar{flex:none;display:flex;align-items:center;gap:6px;padding:9px 12px;border-bottom:var(--hair)}
.menu-preview-bar .dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.28}
.menu-preview-url{margin-left:10px;font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;
  text-transform:lowercase;opacity:.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:opacity .2s var(--ease)}
/* Yükseklik satırdan gelir (liste boyu); oran sabitlenmez ki hizalama bozulmasın. */
.menu-preview-view{position:relative;flex:1;min-height:0;width:100%;overflow:hidden}

/* Kopya, gerçek sayfa gibi masaüstü ölçüsünde kurulur; --k ile kutuya ölçeklenir. */
.menu-preview-stage{position:absolute;top:0;left:0;width:var(--vw,1440px);height:var(--vh,900px);
  transform-origin:top left;transform:scale(var(--k,.28))}
.menu-preview-stage .page,.menu-preview-stage .detail-page,.menu-preview-stage .youtube-page{
  position:absolute;inset:0;opacity:1;visibility:visible;transform:none;transition:none;
  overflow:hidden;padding:54px 46px}
/* kopyada işlevsiz olan gezinme parçaları gizlenir */
.menu-preview-stage .btn-back,.menu-preview-stage .btn-detail-back,
.menu-preview-stage .contact-bar{display:none}
.menu-preview-fade{position:absolute;inset:auto 0 0 0;height:38%;pointer-events:none}
.stage.dark .menu-preview-fade{background:linear-gradient(to bottom,transparent,#0d0d0d)}
.stage.light .menu-preview-fade{background:linear-gradient(to bottom,transparent,var(--paper))}

/* ── Boştaki ekran: yayın beklerken duran bir televizyon ──
   Logo ekranın ortasında usulca salınır; üstünden tarama çizgileri ve ağır bir
   parlama geçer. Hover gelince katman söner, yerini gerçek sayfa önizlemesi alır. */
.menu-preview-idle{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;overflow:hidden;transition:opacity .35s var(--ease)}
.menu-preview.is-live .menu-preview-idle{opacity:0}
.tv-logo{width:min(48%,210px);animation:tv-drift 7.5s ease-in-out infinite}
.tv-logo img{display:block;width:100%;height:auto;opacity:.5;
  animation:tv-flicker 4.3s steps(1,end) infinite}
.stage.light .tv-logo img{filter:invert(1);opacity:.42}
/* yatay salınım + hafif eğilme: sabit bir görsel değil, canlı bir yayın hissi */
@keyframes tv-drift{
  0%,100%{transform:translate3d(0,0,0) rotate(-.7deg) scale(1)}
  25%    {transform:translate3d(2%,-4%,0) rotate(.5deg) scale(1.02)}
  50%    {transform:translate3d(0,-6%,0) rotate(.9deg) scale(1.01)}
  75%    {transform:translate3d(-2%,-3%,0) rotate(-.3deg) scale(1.03)}
}
/* tüplü ekran titremesi — seyrek ve hafif */
@keyframes tv-flicker{
  0%,92%,100%{opacity:.5}
  93%{opacity:.34}94%{opacity:.56}95%{opacity:.4}96%{opacity:.52}
}
.tv-scanlines{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(to bottom,currentColor 0 1px,transparent 1px 4px);
  mix-blend-mode:overlay}
.stage.dark .tv-scanlines{opacity:.14}
.stage.light .tv-scanlines{opacity:.09}
/* ekranı yukarıdan aşağıya tarayan parlama */
.tv-sweep{position:absolute;left:0;right:0;height:38%;pointer-events:none;opacity:.5;
  background:linear-gradient(to bottom,transparent,currentColor,transparent);
  animation:tv-sweep 6s linear infinite}
.stage.dark .tv-sweep{opacity:.05}
.stage.light .tv-sweep{opacity:.035}
@keyframes tv-sweep{from{transform:translateY(-140%)}to{transform:translateY(360%)}}
.tv-hint{position:absolute;left:0;right:0;bottom:26px;text-align:center;font-family:var(--f-mono);
  font-size:9px;letter-spacing:.22em;text-transform:uppercase;opacity:.3}
/* Alt yazı ekranın içine bindirilir; dışarıda dursaydı çerçeveyi yukarı iter,
   liste ile aynı hizada bitmezdi. */
.menu-preview-caption{position:absolute;left:12px;bottom:9px;z-index:2;margin:0;
  font-family:var(--f-mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  opacity:.38;transition:opacity .2s var(--ease);pointer-events:none}
.menu-preview.is-live .menu-preview-caption{opacity:.62}
/* içerik değişirken kısa bir geçiş — ekran "kanal değiştiriyor" hissi verir */
.menu-preview-stage{animation:menu-preview-swap .38s var(--ease)}
@keyframes menu-preview-swap{from{opacity:0;transform:scale(var(--k,.28)) translateY(14px)}}

@media(max-width:1180px){
  .menu-layout{grid-template-columns:1fr}
  .menu-preview{display:none}
}
@media (prefers-reduced-motion: reduce){
  .menu-preview{animation:none;opacity:1;transform:none}
  .menu-preview-stage,.tv-logo,.tv-logo img,.tv-sweep{animation:none}
  .tv-sweep{display:none}
}
.file-item{display:grid;grid-template-columns:64px minmax(0,1fr) auto 42px;align-items:center;gap:18px;text-align:left;padding:17px 6px;border-bottom:var(--hair);font-size:clamp(19px,2.5vw,29px);opacity:0;transform:translateX(-14px);transition:transform .22s cubic-bezier(.16,1,.3,1),background .15s ease-out;will-change:transform}

/* ── Menü satırlarının kademeli girişi ──────────────────────────────────────
   Bu kademe önce transition-delay ile yapılıyordu ve iki soruna yol açıyordu:

   1) transition-delay KALICIYDI. Yalnızca açılıştaki belirmeyi değil, o
      satırın sonraki bütün geçişlerini de geciktiriyordu. Listenin 8.
      maddesinin üzerine gelindiğinde arka plan yarım saniye (.52s) sonra
      beliriyordu; ok işareti kendi geçişine sahip olduğu için anında tepki
      veriyor, arada gecikme "site takılıyor" hissi yaratıyordu.

   2) .file-menu.active .file-item (üç sınıf) özgüllük olarak
      .file-item:hover (bir sınıf + bir sözde sınıf) kuralını EZİYORDU:
      hover'daki translateX(10px) hiç uygulanmıyordu. Satır sağa kaymıyor,
      yalnızca arka planı — o da geç — değişiyordu.

   Çözüm: kademe artık animation ile yapılıyor. animation-delay yalnızca
   animasyonu geciktirir, geçişlere karışmaz. "backwards" dolgusu sayesinde
   satır sırası gelene kadar görünmez bekler; animasyon bitince hiçbir dolgu
   bırakmaz, böylece hover geçişleri gecikmesiz ve tam çalışır. */
.file-menu.active .file-item{opacity:1;transform:none;animation:file-item-in .5s var(--ease) backwards}
@keyframes file-item-in{from{opacity:0;transform:translateX(-14px)}}
.file-menu.active .file-item:nth-child(1){animation-delay:.03s}
.file-menu.active .file-item:nth-child(2){animation-delay:.1s}
.file-menu.active .file-item:nth-child(3){animation-delay:.17s}
.file-menu.active .file-item:nth-child(4){animation-delay:.24s}
.file-menu.active .file-item:nth-child(5){animation-delay:.31s}
.file-menu.active .file-item:nth-child(6){animation-delay:.38s}
.file-menu.active .file-item:nth-child(7){animation-delay:.45s}
.file-menu.active .file-item:nth-child(8){animation-delay:.52s}
.file-menu.active .file-item:nth-child(9){animation-delay:.59s}
.onmart-menu-item .file-label{background:linear-gradient(90deg,#ff2d95,#8b5cf6,#00e5ff,#39ff88);background-clip:text;-webkit-background-clip:text;color:transparent}
.onmart-menu-item .file-arrow{color:#8b5cf6}
a.file-item{text-decoration:none}
.music-brand-card .brand-card-label{background:linear-gradient(90deg,#ff2d95,#8b5cf6,#00e5ff);background-clip:text;-webkit-background-clip:text;color:transparent}
.game-brand-card .brand-card-label{background:linear-gradient(90deg,#00e5ff,#a855f7,#39ff88,#ff8a3d,#ff2d95);background-clip:text;-webkit-background-clip:text;color:transparent}
.game-brand-card .brand-card-arrow{color:#a855f7}
.onmarter-brand-card .brand-card-label{color:#e0a326}
.onmarter-brand-card .brand-card-arrow{color:#e0a326}
.file-number{font-family:var(--f-mono);font-size:13px;opacity:.5}
.file-label{font-family:var(--f-display);font-weight:700;letter-spacing:-.01em;min-width:0;overflow-wrap:anywhere}
.file-tag{font-family:var(--f-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;opacity:0;transform:translateX(8px);transition:opacity .18s ease-out,transform .18s cubic-bezier(.16,1,.3,1);white-space:nowrap}
.file-arrow{font-size:.85em;justify-self:end;transition:transform .18s cubic-bezier(.16,1,.3,1);display:flex;align-items:center}
.file-arrow svg{width:1em;height:1em}
@media(max-width:480px){
  .file-item{grid-template-columns:38px minmax(0,1fr) auto 26px;gap:10px;font-size:clamp(16px,5.2vw,22px);padding:14px 4px}
  .file-tag{font-size:8px;letter-spacing:.13em}
  .file-number{font-size:10px}
}
@media(max-width:820px){
  /* dikey ortalama, kısa mobil ekranlarda başlığı marka logosu/tema anahtarının üzerine itiyordu */
  .menu{justify-content:flex-start;padding-top:86px}

  /* ── Menü sayfası telefonda "donmuş" hissettiriyordu ──────────────────────
     Ölçtük: iPhone 12 (390x844) ve iPhone 15 Pro Max'te menünün kaydırma
     payı tam olarak 0 pikseldi. Liste ekrana birebir sığdığı için parmak
     yukarı aşağı sürtülüyor, hiçbir şey kıpırdamıyordu; sayfa kilitlenmiş
     gibi duruyordu. Bir telefon sayfasının "canlı" olduğu, azıcık
     esnemesinden anlaşılır.

     Çözüm, listenin altına görünmez 46 piksellik bir pay koymaktır. Bunu
     normal bir kutuyla yapmak işe yaramaz: .menu bir flex kolonu ve artan
     boş alan flex tarafından paylaştırıldığı için toplam yükseklik her
     zaman ekrana eşitleniyor — denedik, kaydırma payı yine 0 çıktı.

     Bunun yerine mutlak konumlu bir işaretçi kullanılıyor. .menu zaten
     position:absolute olduğu için bu sözde eleman ona göre konumlanır;
     top:100% onu kutunun ALT KENARININ ardına taşır ve kaydırma alanını
     46 piksel uzatır. Görünen düzende hiçbir şey değişmez, yalnızca altta
     parmakla hissedilen küçük bir nefes payı doğar. */
  .menu::after{content:'';position:absolute;top:100%;left:0;width:1px;height:46px;pointer-events:none}
  /* Kaydırma menünün içinde kalsın; arkadaki sabit sahne birlikte sürüklenmesin. */
  .menu{overscroll-behavior-y:contain}
}
/* Özgüllük bilerek yükseltildi: yukarıdaki .file-menu.active .file-item
   kuralı üç sınıf taşıyor ve tek başına ".file-item:hover" onu yenemiyordu. */
.file-item:hover,
.file-menu.active .file-item:hover,
.file-menu.active .file-item:focus-visible{transform:translateX(10px);background:rgba(128,128,128,.1)}
.file-item:hover .file-tag{opacity:.6;transform:none}
.file-item:hover .file-arrow{transform:translate(4px,-4px)}
.file-item.fade{opacity:0!important;transform:translateX(-40px)!important;pointer-events:none}
.file-item.selected{background:rgba(128,128,128,.14)}
.note{margin-top:26px;font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;opacity:.58}

/* ═══ SAYFA ORTAK ═══ */
.page,.detail-page,.youtube-page{position:absolute;inset:0;z-index:6;padding:96px max(5vw,36px) calc(var(--bottom-nav-safe-height) + var(--player-safe-height));opacity:0;visibility:hidden;transform:translateY(24px);transition:all .6s var(--ease);overflow-y:auto;overflow-x:hidden}
.page:not(.show),.detail-page:not(.show),.youtube-page:not(.show){content-visibility:hidden}
body.has-music-player .page,body.has-music-player .detail-page,body.has-music-player .youtube-page{--player-safe-height:calc(var(--player-clear, 150px) + 30px)}
.page.show,.detail-page.show,.youtube-page.show{opacity:1;visibility:visible;transform:none}
.page-head{margin-bottom:14px}
.page-title{font-family:var(--f-display);font-weight:800;font-size:clamp(38px,6.5vw,84px);letter-spacing:-.025em;line-height:1}
.desc{max-width:820px;font-size:clamp(15px,1.6vw,19px);line-height:1.75;font-weight:300;margin:18px 0 8px;min-height:3.4em;opacity:.92}
.desc.typing::after{content:'▌';animation:caret .8s steps(2) infinite}

/* ═══ AĞ ÇİZGİLERİ ═══ */
.line-svg,.youtube-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.net-line,.work-line,.social-line,.youtube-line,.instagram-line,.hub-line,.youtube-gallery-line{fill:none;stroke:currentColor;stroke-width:1.2;opacity:.5;stroke-dasharray:6 5;transition:opacity .4s,stroke-width .4s}
.net-line.draw,.work-line.draw,.social-line.draw,.youtube-line.draw,.instagram-line.draw,.hub-line.draw,.youtube-gallery-line.draw{animation:dash-draw 1.25s var(--ease) forwards}
@keyframes dash-draw{to{stroke-dashoffset:0}}

/* ═══ 01 HİZMET AĞI ═══ */
.network{position:relative;height:800px;margin-top:20px}
.node{position:absolute;width:min(300px,30vw);min-width:218px;text-align:left;padding:18px 20px 16px;border:var(--hair);background:inherit;opacity:0;transform:translateY(16px) scale(.97);transition:all .55s var(--ease)}
.node::before{content:'';position:absolute;top:-5px;left:-5px;width:9px;height:9px;border-top:var(--hair);border-left:var(--hair);opacity:.7}
.node::after{content:'';position:absolute;bottom:-5px;right:-5px;width:9px;height:9px;border-bottom:var(--hair);border-right:var(--hair);opacity:.7}
.node.active{opacity:1;transform:none}
.node-index{font-family:var(--f-mono);font-size:11px;opacity:.5;display:block;margin-bottom:6px}
.node-title{font-family:var(--f-display);font-weight:700;font-size:clamp(17px,1.9vw,22px);display:block;margin-bottom:7px;letter-spacing:-.01em}
.node-desc{font-size:13px;line-height:1.55;font-weight:300;opacity:.78;display:block}
.node-go{font-family:var(--f-mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;display:block;margin-top:10px;opacity:0;transform:translateX(-6px);transition:all .35s var(--ease)}
.node:hover{background:rgba(128,128,128,.1)}
.node:hover .node-go{opacity:.75;transform:none}
.node-clip{position:absolute;top:14px;right:14px;display:flex;align-items:center;justify-content:center;width:24px;height:24px;opacity:.4;transition:opacity .3s,transform .3s}
.node-clip:hover{opacity:1;transform:rotate(-8deg) scale(1.1)}
.node:hover .node-clip{opacity:.7}

/* ─ sağ boşluk: hizmet önizleme dock'u (eski hoş geldiniz alanı) ─ */
.service-preview-dock{position:fixed;top:50%;right:max(6vw,50px);transform:translate(24px,-50%);width:min(300px,26vw);min-width:230px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s;z-index:50}
.service-preview-dock.show{opacity:1;visibility:visible;transform:translate(0,-50%)}
.service-preview-card{border:var(--hair);background:var(--ink);color:var(--paper)}
.stage.light .service-preview-card{background:var(--paper);color:var(--ink)}
@media(max-width:1180px){.service-preview-dock{display:none}}
/* dikey konumlar SVG çizgi uçlarıyla hizalı: %28.6 / %50 / %71.4 */
.node-a{left:2%;top:calc(28.6% - 85px)}.node-b{left:2%;top:calc(50% - 85px)}.node-c{left:2%;top:calc(71.4% - 85px)}
.node-d{right:2%;top:calc(28.6% - 85px)}.node-e{right:2%;top:calc(50% - 85px)}.node-f{right:2%;top:calc(71.4% - 85px)}
@media(max-width:860px){
  .network{height:auto;min-height:0;display:grid;grid-template-columns:1fr;gap:12px;padding-top:6px}
  .network .line-svg{display:none}
  .node{position:static;width:100%;min-width:0}
}

/* ═══ 02 PROJELER HUB ═══ */
.hub-question{font-family:var(--f-mono);font-size:clamp(13px,1.5vw,16px);letter-spacing:.12em;opacity:.75;margin:6px 0 10px}
.hub-network{position:relative;height:580px;margin-top:16px}
.hub-card{position:absolute;width:min(340px,34vw);min-width:230px;text-align:left;padding:22px 24px;border:var(--hair);background:inherit;opacity:0;transform:translateY(18px);transition:all .55s var(--ease)}
.hub-card.active-in{opacity:1;transform:none}
.hub-index{font-family:var(--f-mono);font-size:12px;border:var(--hair);width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px;opacity:.75}
.hub-card h3{font-family:var(--f-display);font-weight:700;font-size:clamp(20px,2.4vw,28px);margin-bottom:8px;letter-spacing:-.01em}
.hub-card p{font-size:13.5px;line-height:1.6;font-weight:300;opacity:.78}
.hub-card .node-go{margin-top:12px}
.hub-card:hover{background:rgba(128,128,128,.1)}
.hub-card:hover .node-go{opacity:.8;transform:none}
.hub-a{left:3%;top:calc(33% - 100px)}.hub-b{right:3%;top:calc(33% - 100px)}.hub-c{left:3%;top:calc(72% - 100px)}.hub-d{right:3%;top:calc(72% - 100px)}
@media(max-width:860px){
  .hub-network{height:auto;min-height:0;display:grid;gap:12px}
  .hub-network .line-svg{display:none}
  .hub-card{position:static;width:100%;min-width:0}
}

/* ═══ PORTFÖY GRID ═══ */
.portfolio-filters{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px}
.portfolio-filter{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:8px 16px;border:var(--hair);background:transparent;color:inherit;cursor:pointer;transition:background .2s,color .2s;box-sizing:border-box}
.portfolio-filter:not(.active):hover{background:rgba(128,128,128,.15)}
.stage.dark .portfolio-filter.active{background:var(--paper);color:var(--ink)}
.stage.light .portfolio-filter.active{background:var(--ink);color:var(--paper)}
.portfolio-filter:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
/* display:grid, tarayıcının [hidden] kuralını ezer; kanal görünümüne geçerken
   ızgaranın gerçekten gizlenmesi için bu kural gerekli. */
.portfolio-grid[hidden]{display:none}
.portfolio-card{position:relative;text-align:left;border:var(--hair);cursor:pointer;opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .5s var(--ease),background .2s;display:flex;flex-direction:column}
.portfolio-card.active-in{opacity:1;transform:none}
.portfolio-cover{position:relative;height:180px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;border-bottom:var(--hair)}
.portfolio-cover-fallback{font-family:var(--f-display);font-weight:800;font-size:42px;opacity:.25}
/* Kapak bir marka logosuysa kırpılmaz: kendi zemin renginde ortalanıp sığdırılır. */
.portfolio-cover.is-logo{background:var(--logo-bg,#fff);padding:10px 16px;overflow:hidden}
/* Profil fotoğrafı kapakları kart alanını tamamen doldurur; boşluk kalmaz,
   taşma da olmaz. Yüzler genelde üst yarıda olduğu için odak yukarı alınır. */
.portfolio-cover.is-photo{padding:0;overflow:hidden}
.portfolio-cover.is-photo .portfolio-logo{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.portfolio-logo{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
/* Kendi zemini olan logolarda boşluk bırakılmaz: logo kenara dayanır, kalan
   yeri aynı renk levha doldurur. Kırpma yapılmaz — dikey logolar bozulmasın. */
.portfolio-cover.is-logo.plate-brand{padding:0}
.portfolio-badge{position:absolute;top:10px;right:10px;font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:4px 8px;border:var(--hair);background:inherit}
.portfolio-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.portfolio-body h3{font-family:var(--f-display);font-weight:700;font-size:19px;letter-spacing:-.01em;margin-bottom:6px}
.portfolio-body p{font-size:13px;line-height:1.6;font-weight:300;opacity:.78;margin-bottom:10px}
.portfolio-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:auto}
.portfolio-tags span{font-family:var(--f-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;opacity:.65;border:var(--hair);padding:3px 8px}
.portfolio-foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px}
.portfolio-year{font-family:var(--f-mono);font-size:11px;opacity:.5}
.portfolio-card:hover{background:rgba(128,128,128,.1)}
.portfolio-card:hover .node-go{opacity:.8;transform:none}
@media(max-width:640px){ .portfolio-grid{grid-template-columns:1fr} }

/* ═══ HİZMET SAYFASI: ANLATIM PANELİ ═══
   Akış rayı + kapsam gezgini tek bir yüzeyde toplanır; altındaki
   "hazırlanan projeler" bölümü sayfa zemininde kalarak ayrışır. */
.service-explain{position:relative;margin:40px 0 0;padding:34px 32px 36px}
.stage.dark .service-explain{background:rgba(244,241,234,.035)}
.stage.light .service-explain{background:rgba(16,16,16,.035)}
.explain-frame{position:absolute;inset:0;border:var(--hair);opacity:.35;pointer-events:none}
.explain-frame::before,.explain-frame::after{content:'';position:absolute;width:12px;height:12px;border:var(--hair)}
.explain-frame::before{top:-7px;left:-7px;border-right:none;border-bottom:none}
.explain-frame::after{bottom:-7px;right:-7px;border-left:none;border-top:none}
.explain-head{margin-bottom:30px}
.explain-label{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.34em;text-transform:uppercase;opacity:.45;margin-bottom:10px}
.explain-title{font-family:var(--f-display);font-weight:700;font-size:clamp(20px,2.8vw,28px);line-height:1.08;letter-spacing:-.01em}
.explain-title.small{font-size:clamp(17px,2.2vw,22px)}
/* Eşit sütunlar şeridi boydan boya doldurur; esnek yerleşimde kutular sola yığılıp
   sağda geniş bir boşluk bırakıyor, şerit yarım kalmış gibi duruyordu. */
.explain-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:20px;border:var(--hair)}
.stage.dark .explain-meta{border-color:rgba(244,241,234,.3);background:rgba(244,241,234,.03)}
.stage.light .explain-meta{border-color:rgba(16,16,16,.3);background:rgba(16,16,16,.03)}
.explain-meta span{display:flex;flex-direction:column;justify-content:center;gap:5px;padding:14px 24px;font-family:var(--f-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;opacity:.55;border-right:var(--hair)}
.explain-meta span:last-child{border-right:none}
.explain-meta i{font-family:var(--f-display);font-style:normal;font-weight:700;font-size:19px;letter-spacing:0;text-transform:none;opacity:1}

/* ═══ İNTERAKTİF AKIŞ ŞEMASI ═══
   Üç katman: sayfa zemini → anlatım yüzeyi → ray oluğu + bilgi paneli.
   Aktif adımdan panele inen bağlantı, iki parçayı tek sistem gibi bağlar. */
.service-flow{position:relative;margin:0}
/* ray oluğu: anlatım yüzeyinin kenarlarına kadar taşar */
.flow-rail-wrap{overflow-x:auto;overflow-y:hidden;margin:0 -32px;padding:28px 32px 24px;border-top:var(--hair);border-bottom:var(--hair);scrollbar-width:none}
.stage.dark .flow-rail-wrap{background:#0d0d0d;border-color:rgba(244,241,234,.22)}
.stage.light .flow-rail-wrap{background:#e4e0d6;border-color:rgba(16,16,16,.22)}
.flow-rail-wrap::-webkit-scrollbar{display:none}
.flow-rail{position:relative;display:flex;gap:0;min-width:max-content}
/* Adımlar rayı eşit paylaşır; bağlantı çizgisi tek bir uzun omurga değil, her
   adımın bir sonrakine uzattığı parçadır. Böylece hat son adımda biter — önceden
   omurga rayın sonuna kadar gidip "devamı var" izlenimi bırakıyordu. */
.flow-node{position:relative;flex:1 1 0;min-width:126px;padding:0 10px;background:transparent;border:none;color:inherit;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.flow-node::after{content:'';position:absolute;left:33px;top:23px;width:100%;height:1px;
  background:currentColor;opacity:.22;pointer-events:none;z-index:0;transition:opacity .35s var(--ease),height .35s var(--ease)}
/* Son adım yalnızca kendi etiketi kadar yer kaplar: eşit paylaşımda arkasında
   geniş bir boşluk kalıyor, hat erken bitmiş gibi duruyordu. */
.flow-node:last-child{flex:0 0 auto;min-width:0;padding-right:0}
.flow-node:last-child::after{display:none}
/* tamamlanan adımların bağlantısı dolu görünür: ilerleme çubuğu artık hattın kendisi */
.flow-node.done::after{opacity:1;height:3px;top:22px}
.flow-node i{position:relative;z-index:2;display:grid;place-items:center;width:46px;height:46px;border:1px solid;border-radius:50%;font-family:var(--f-mono);font-size:12px;font-style:normal;letter-spacing:.06em;transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease),border-color .3s,box-shadow .3s}
/* Daireler omurga çizgisini keser; oluk zeminiyle birebir aynı dolgu gerekir. */
.stage.dark .flow-node i{background:#0d0d0d;border-color:rgba(244,241,234,.32)}
.stage.light .flow-node i{background:#e4e0d6;border-color:rgba(16,16,16,.32)}
.flow-node b{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;font-weight:400;opacity:.4;line-height:1.5;transition:opacity .3s}
.flow-node:hover i{transform:scale(1.07)}
.flow-node:hover b{opacity:.85}
/* tamamlanan adımlar: numarası tam okunur kalmalı, dolgu sadece bir işaret */
.stage.dark .flow-node.done i{background:#0d0d0d;border-color:rgba(244,241,234,.75);color:var(--paper)}
.stage.light .flow-node.done i{background:#e4e0d6;border-color:rgba(16,16,16,.75);color:var(--ink)}
.flow-node.done i::after{content:'';position:absolute;inset:4px;border-radius:50%;border:1px solid;opacity:.3}
.flow-node.done b{opacity:.7}
/* aktif adım: tam ters kontrast + halka */
.stage.dark .flow-node.active i{background:var(--paper);color:var(--ink);border-color:var(--paper);box-shadow:0 0 0 5px rgba(244,241,234,.1)}
.stage.light .flow-node.active i{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:0 0 0 5px rgba(16,16,16,.1)}
.flow-node.active i{transform:scale(1.04)}
.flow-node.active b{opacity:1;font-weight:700}
.flow-node:focus-visible{outline:2px solid currentColor;outline-offset:3px}

/* aktif adımdan panele inen bağlantı + adım numarası nişanı
   (z-index, nişanın panelin üst kenarının üstünde kalmasını garanti eder) */
.flow-link{position:relative;z-index:5;height:30px;pointer-events:none}
.flow-link::before{content:'';position:absolute;left:var(--active-x,50%);top:0;bottom:9px;width:1px;background:currentColor;opacity:.55;transition:left .45s var(--ease)}
.flow-link i{position:absolute;left:var(--active-x,50%);bottom:-1px;transform:translateX(-50%);display:grid;place-items:center;min-width:38px;height:20px;padding:0 8px;font-family:var(--f-mono);font-style:normal;font-size:9.5px;letter-spacing:.14em;transition:left .45s var(--ease)}
.stage.dark .flow-link i{background:var(--paper);color:var(--ink)}
.stage.light .flow-link i{background:var(--ink);color:var(--paper)}

/* İki sütun: solda metin + gezinme, sağda teslim kutusu. Teslim kutusu sütunun
   tamamını kaplar (stretch), köşede küçük bir kutu gibi asılı kalmaz. */
.flow-panel{position:relative;border:1px solid;padding:30px 30px 26px;margin-top:0;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:26px 34px;align-items:stretch}
.flow-panel-main{min-width:0;display:flex;flex-direction:column}
.flow-panel-main .flow-nav{margin-top:auto}
.stage.dark .flow-panel{background:var(--ink);border-color:rgba(244,241,234,.45);box-shadow:9px 9px 0 rgba(244,241,234,.05)}
.stage.light .flow-panel{background:var(--paper);border-color:rgba(16,16,16,.45);box-shadow:9px 9px 0 rgba(16,16,16,.06)}
.flow-panel-body{display:flex;flex-direction:column;gap:11px;min-width:0}
.flow-step-count{font-family:var(--f-mono);font-size:10px;letter-spacing:.28em;opacity:.45}
.flow-step-title{font-family:var(--f-display);font-weight:700;font-size:clamp(22px,3.2vw,30px);line-height:1.05;letter-spacing:-.01em}
.flow-step-desc{font-size:14.5px;line-height:1.72;font-weight:300;opacity:.85}
/* sağ kolon: bu adımda teslim edilenler */
/* Teslim listesi panelin en somut bilgisi — soluk bir yan sütun olarak kalmasın diye
   kendi zemini, çerçevesi ve onay işaretli maddeleriyle öne çıkarılır. */
/* Panelin iki satırını (metin + gezinme düğmeleri) boydan boya kaplar. Tek satıra
   oturduğunda sağ üst köşede küçük bir kutu gibi asılı kalıyordu. */
.flow-out{min-width:0;padding:22px 24px 24px;border:var(--hair)}
.stage.dark .flow-out{background:rgba(244,241,234,.055)}
.stage.light .flow-out{background:rgba(16,16,16,.045)}
.flow-out-label{display:flex;align-items:center;gap:9px;font-family:var(--f-mono);font-size:10px;
  letter-spacing:.18em;text-transform:uppercase;opacity:.9;margin-bottom:16px;font-weight:500}
.flow-out-label::before{content:'';flex:none;width:6px;height:6px;background:currentColor}
.flow-out-tags{display:flex;flex-direction:column;gap:0}
.flow-out-tags span{position:relative;font-size:13.5px;font-weight:400;padding:11px 0 11px 26px;border-bottom:var(--hair);opacity:1}
.flow-out-tags span:last-child{border-bottom:none;padding-bottom:0}
/* madde başına onay işareti — iki çizgiden oluşan tik */
.flow-out-tags span::before,.flow-out-tags span::after{content:'';position:absolute;background:currentColor}
.flow-out-tags span::before{left:3px;top:19px;width:4px;height:1.5px;transform:rotate(45deg)}
.flow-out-tags span::after{left:5px;top:17px;width:9px;height:1.5px;transform:rotate(-50deg)}
.flow-panel.switching .flow-panel-body,.flow-panel.switching .flow-out-tags{opacity:0;transform:translateY(8px)}
.flow-panel-body,.flow-out-tags{transition:opacity .28s var(--ease),transform .28s var(--ease)}
.flow-nav{grid-column:1/-1;display:flex;gap:8px;padding-top:6px}
.flow-arrow{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;padding:10px 16px;border:var(--hair);background:transparent;color:inherit;cursor:pointer;transition:background .2s,color .2s,opacity .2s}
.flow-arrow:not([disabled]):hover{background:rgba(128,128,128,.16)}
.flow-arrow[disabled]{opacity:.25;pointer-events:none}
.flow-prev{min-width:52px;text-align:center}

/* ═══ HİZMET SAYFASI: KAPSAM GEZGİNİ ═══
   Akış şemasıyla aynı dil: sol tarafta seçiciler, sağda aynı çerçeveli panel. */
.scope-explorer{margin:46px 0 0;padding-top:34px;border-top:1px solid}
.stage.dark .scope-explorer{border-color:rgba(244,241,234,.3)}
.stage.light .scope-explorer{border-color:rgba(16,16,16,.3)}
.scope-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:22px;margin-top:20px;align-items:start}
.scope-chips{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}
.scope-chip{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:9px 14px;border:var(--hair);background:transparent;color:inherit;cursor:pointer;transition:background .2s,color .2s,opacity .2s;opacity:.7}
.scope-chip:hover{opacity:1;background:rgba(128,128,128,.15)}
.stage.dark .scope-chip.active{background:var(--paper);color:var(--ink);opacity:1}
.stage.light .scope-chip.active{background:var(--ink);color:var(--paper);opacity:1}
.scope-chip:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.scope-detail{border:1px solid;padding:24px;position:sticky;top:0}
.stage.dark .scope-detail{background:var(--ink);border-color:rgba(244,241,234,.45);box-shadow:9px 9px 0 rgba(244,241,234,.05)}
.stage.light .scope-detail{background:var(--paper);border-color:rgba(16,16,16,.45);box-shadow:9px 9px 0 rgba(16,16,16,.06)}
.scope-detail-title{font-family:var(--f-display);font-weight:700;font-size:20px;line-height:1.1;margin-bottom:10px}
.scope-detail-desc{font-size:13.5px;line-height:1.7;font-weight:300;opacity:.82}
.scope-detail.switching .scope-detail-title,.scope-detail.switching .scope-detail-desc{opacity:0;transform:translateY(6px)}
.scope-detail-title,.scope-detail-desc{transition:opacity .24s var(--ease),transform .24s var(--ease)}

.service-detail-cta{margin-top:40px}
@media(max-width:900px){
  .flow-panel{grid-template-columns:1fr;gap:22px}
  .flow-out{padding:18px 18px 20px}
}
@media(max-width:820px){
  .service-explain{padding:26px 20px 28px}
  .flow-rail-wrap{margin:0 -20px;padding:24px 20px 20px}
  .scope-layout{grid-template-columns:1fr}
  .scope-detail{position:static}
  .flow-node{min-width:112px}
  .flow-panel{padding:24px 20px 20px;box-shadow:6px 6px 0 rgba(128,128,128,.07)}
  .scope-detail{box-shadow:6px 6px 0 rgba(128,128,128,.07)}
  .explain-meta span{padding:11px 16px;flex:1 0 auto}
}

/* ═══ HİZMET SAYFASI: ÖRNEK İŞ ŞERİDİ ═══
   Anlatım panelinden sonra tek sıra; tümü için portföye yönlendirir. */
.service-samples{margin-top:52px}
.samples-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.samples-all{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:9px 15px;border:var(--hair);background:transparent;color:inherit;cursor:pointer;transition:background .2s,color .2s;white-space:nowrap}
.stage.dark .samples-all:hover{background:var(--paper);color:var(--ink)}
.stage.light .samples-all:hover{background:var(--ink);color:var(--paper)}
/* grid-auto-flow:column → her zaman tek sıra; dar ekranda yatay kayar */
.samples-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(158px,1fr);gap:12px;overflow-x:auto;overflow-y:hidden;padding-bottom:6px;scrollbar-width:none}
.samples-row::-webkit-scrollbar{display:none}
.samples-row .media-card-meta{padding:10px 11px 12px}
.samples-note{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;opacity:.4;padding:22px 0}
/* "Daha fazla göster" basıldığında şerit ızgaraya açılır: yatay kaydırma biter,
   içerik satır satır aşağı büyür. Altındaki müşteri projeleri yerinde kalır. */
.service-samples.is-expanded .samples-row{grid-auto-flow:row;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));overflow:visible}
.samples-more{display:block;width:100%;margin-top:16px;padding:12px 16px;border:var(--hair);background:transparent;color:inherit;cursor:pointer;
  font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;transition:background .2s,color .2s}
.stage.dark .samples-more:hover{background:var(--paper);color:var(--ink)}
.stage.light .samples-more:hover{background:var(--ink);color:var(--paper)}
@media(max-width:640px){
  .samples-row{grid-auto-columns:minmax(132px,1fr)}
  .service-samples.is-expanded .samples-row{grid-template-columns:repeat(auto-fill,minmax(126px,1fr))}
}

/* ═══ HİZMET SAYFASI: BAĞLI PORTFÖY PROJELERİ ═══
   Anlatım panelinden sonra gelir; zeminde durarak ondan ayrışır. */
/* İki alt bölüm tek blok olarak okunur: aralarında bölüm boşluğu değil, satır arası. */
.service-portfolio{margin-top:30px}
/* alt başlık — bölüm başlığından bir kademe küçük, soldan hizalı */
.works-subhead{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-family:var(--f-mono);
  font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;opacity:.5}
.works-subhead::after{content:'';flex:1;height:1px;background:currentColor;opacity:.22}
.service-samples .works-subhead{margin-top:2px}
.service-portfolio .work-title::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:44px;height:2px;background:currentColor;opacity:.55}
.service-portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:18px}
.service-portfolio-card{text-align:left;padding:16px 18px;border:var(--hair);background:transparent;color:inherit;cursor:pointer;transition:background .2s}
/* Marka logosu levhası — logo kırpılmadan ortalanır, levha logonun kendi
   zemin rengini alır. Kendi zemini olan logolarda (Karamolla, Susspor) renk
   birebir aynı olduğu için logo kenardan kenara doluymuş gibi görünür.
   Nötr levhalar temaya göre değişir: açık temada beyaz, koyu temada
   sayfanın kağıt tonu — böylece koyu zeminde göz almaz. */
.card-logo{display:flex;align-items:center;justify-content:center;height:110px;margin:-4px -4px 12px;
  padding:8px 10px;background:var(--logo-bg,#fff);border:var(--hair);border-radius:2px;overflow:hidden}
.card-logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
/* Kendi zemini olan logolarda boşluk bırakılmaz; levhayla birleşir. */
.card-logo.plate-brand{padding:0}
/* Profil fotoğrafı: levhayı tamamen doldurur. */
.card-logo.plate-photo{padding:0;background:transparent}
.card-logo.plate-photo img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
/* Nötr levha, sitenin aydınlık tema zeminiyle (kağıt tonu) aynı: açık temada
   logo doğrudan sayfanın üstünde duruyormuş gibi görünür, koyu temada ise
   kartın içinden kabaran bir levha etkisi verir. İki temada da aynı renktir. */
.plate-light{--logo-bg:var(--paper)}
.plate-dark{--logo-bg:#141414}
.service-portfolio-card h4{font-family:var(--f-display);font-weight:700;font-size:15px;margin-bottom:6px}
.service-portfolio-card p{font-size:12.5px;line-height:1.55;font-weight:300;opacity:.75;margin-bottom:8px}
/* sonuç göstergeleri — kampanya kayıtlarında rakamlar öne çıkar */
.project-metrics{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 10px}
.project-metrics span{display:flex;flex-direction:column;gap:1px;border:var(--hair);padding:6px 9px;
  font-family:var(--f-mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.project-metrics b{font-family:var(--f-body);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;opacity:1}
.service-portfolio-card:hover{background:rgba(128,128,128,.1)}
.service-portfolio-card:hover .node-go{opacity:.8;transform:none}

/* ═══ PORTFÖY PROJE DETAYI ═══ */
.project-detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 24px}
.project-detail-meta .portfolio-tags{margin:0}
.project-detail-gallery-wrap,.project-detail-similar-wrap{margin-top:32px}
.project-detail-similar{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}

/* ═══ ORTAK MEDYA GALERİSİ (proje detayı + portföy hizmet filtresi) ═══ */
.media-block{margin-top:34px}
.media-filters{display:flex;flex-direction:column;gap:8px;margin:14px 0 20px}
.media-filter-row{display:flex;flex-wrap:wrap;gap:8px}
.media-filter-row.is-sub{padding-left:2px}
.media-filter{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:8px 14px;border:var(--hair);background:transparent;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .2s,color .2s,opacity .2s}
.media-filter i{font-style:normal;font-size:9.5px;letter-spacing:.06em;opacity:.5}
.media-filter:not(.active):hover{background:rgba(128,128,128,.15)}
.media-filter-row.is-sub .media-filter{padding:6px 12px;font-size:10px;opacity:.85}
.stage.dark .media-filter.active{background:var(--paper);color:var(--ink)}
.stage.light .media-filter.active{background:var(--ink);color:var(--paper)}
.media-filter.active i{opacity:.6}
.media-filter:focus-visible{outline:2px solid currentColor;outline-offset:2px}
/* YouTube kanal galerisi tür filtresi — medya filtreleriyle aynı görsel dil. */
.youtube-kind-filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.youtube-kind-filter button{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  padding:8px 14px;border:var(--hair);background:transparent;color:inherit;cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;transition:background .2s,color .2s}
.youtube-kind-filter button i{font-style:normal;font-size:9.5px;letter-spacing:.06em;opacity:.5}
.youtube-kind-filter button:not(.active):hover{background:rgba(128,128,128,.15)}
.stage.dark .youtube-kind-filter button.active{background:var(--paper);color:var(--ink)}
.stage.light .youtube-kind-filter button.active{background:var(--ink);color:var(--paper)}
.youtube-kind-filter button:focus-visible{outline:2px solid currentColor;outline-offset:2px}

.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.media-loading{grid-column:1/-1;font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.45;padding:26px 0}
.media-card{position:relative;display:flex;flex-direction:column;border:var(--hair);overflow:hidden;text-decoration:none;color:inherit;opacity:0;transform:translateY(14px);transition:opacity .45s var(--ease),transform .45s var(--ease),background .2s}
.media-card.active-in{opacity:1;transform:none}
/* Durağan görsel kartları <button> olarak basılır (site içinde açılır): tarayıcı
   varsayılanları temizlenip bağlantı kardeşleriyle birebir aynı görünür. */
.media-card.is-image{font:inherit;padding:0;text-align:left;width:100%;background:transparent;cursor:zoom-in}
/* Tek ölçü: gönderi (1:1), reels (9:16) ve video (16:9) aynı kutuya oturur, ızgara
   nizami kalır. Görsel kırpılmaz (contain); arkadaki bulanık kopya kutuyu doldurur. */
.media-card-thumb{position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;border-bottom:var(--hair)}
/* Logo kartları: görsel kendi levha renginin üstünde, kırpılmadan ortalanır.
   Bulanık arka plan kopyası logoyu kirlettiği için burada gizlenir. */
.media-card.is-plate .media-card-thumb{background:var(--logo-bg,#fff)}
.media-card.is-plate .media-card-bg{display:none}
.media-card.is-plate .media-card-img{object-fit:contain;padding:14px}
.media-card-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:blur(24px) saturate(1.3);transform:scale(1.25);opacity:.5;pointer-events:none}
.stage.light .media-card-bg{opacity:.4}
.media-card-img{position:relative;width:100%;height:100%;object-fit:contain;display:block;transition:transform .5s var(--ease)}
.media-card:hover .media-card-img{transform:scale(1.045)}
.media-card-glyph,.media-card-index{position:absolute;font-family:var(--f-mono);pointer-events:none}
.media-card-glyph{inset:0;display:none;align-items:center;justify-content:center;font-size:34px;opacity:.22}
.media-card-index{top:8px;left:9px;font-size:9px;letter-spacing:.14em;padding:3px 6px;background:rgba(0,0,0,.55);color:#fff;opacity:.85}
/* ön izleme görseli yoksa: boş kutu yerine markalı desen */
.media-card.no-thumb .media-card-glyph{display:flex}
.stage.dark .media-card.no-thumb .media-card-thumb{background:repeating-linear-gradient(135deg,rgba(244,241,234,.05) 0 8px,transparent 8px 16px)}
.stage.light .media-card.no-thumb .media-card-thumb{background:repeating-linear-gradient(135deg,rgba(16,16,16,.06) 0 8px,transparent 8px 16px)}
.media-card.no-thumb .media-card-index{background:transparent;color:inherit;opacity:.5}
/* Sütun düzeni: başlık ne kadar uzun olursa olsun kaynak düğmesi altta hizalanır. */
.media-card-meta{display:flex;flex-direction:column;align-items:flex-start;flex:1;padding:11px 12px 13px}
/* İşin sahibi: karışık listelerde hangi kanala/projeye ait olduğunu söyler ve
   o profile gider. Kartın içinde durduğu için <a> değil, rol verilmiş span.
   Sitenin diğer küçük düğmeleriyle (filtre çipleri, etiketler) aynı dil. */
.media-source{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;
  margin-top:auto;padding:5px 9px;border:var(--hair);
  font-family:var(--f-mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;
  line-height:1;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;
  opacity:.75;cursor:pointer;transition:background .2s,color .2s,opacity .2s}
/* Başlık ile düğme arasında en az bir nefes payı kalsın. */
.media-card-meta > span:not(.media-source){margin-bottom:9px}
.media-source:hover,.media-source:focus-visible{opacity:1}
.stage.dark .media-source:hover,.stage.dark .media-source:focus-visible{background:var(--paper);color:var(--ink)}
.stage.light .media-source:hover,.stage.light .media-source:focus-visible{background:var(--ink);color:var(--paper)}
.media-source:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.media-card-meta b{display:block;font-family:var(--f-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;opacity:.55;margin-bottom:4px}
/* Yalnızca iş başlığı — kaynak düğmesi bu kuraldan muaf, aksi hâlde o da
   satır kırpmalı blok metne dönüşüp düz yazı gibi duruyordu. */
.media-card-meta > span:not(.media-source){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12.5px;line-height:1.45;font-weight:300}
.stage.dark .media-card{background:var(--ink)}
.stage.light .media-card{background:var(--paper)}
.stage.dark .media-card:hover{background:var(--ink-soft)}
.stage.light .media-card:hover{background:var(--paper-deep)}
.media-more-wrap:empty{display:none}
.media-more{display:block;width:100%;margin-top:16px;padding:15px;border:var(--hair);background:transparent;color:inherit;font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s}
.media-more span{opacity:.45;margin-left:8px}
.stage.dark .media-more:hover{background:var(--paper);color:var(--ink)}
.stage.light .media-more:hover{background:var(--ink);color:var(--paper)}
.portfolio-grid.is-empty{display:none}
@media(max-width:640px){ .media-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px} }
.portfolio-similar-card{font-family:var(--f-display);font-weight:600;font-size:14px;padding:12px 18px;border:var(--hair);background:transparent;color:inherit;cursor:pointer;transition:background .2s}
.portfolio-similar-card:hover{background:rgba(128,128,128,.1)}

/* ═══ ONMART BÖLÜMÜ ═══ */
.onmart-brand-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:20px}
.onmart-brand-card{position:relative;text-align:left;padding:26px 24px;border:var(--hair);background:inherit;cursor:pointer;opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .5s var(--ease),background .2s}
.onmart-brand-card.active-in{opacity:1;transform:none}
.brand-card-status{display:inline-block;font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;opacity:.6;margin-bottom:14px}
.brand-card-label{font-family:var(--f-display);font-weight:800;font-size:clamp(20px,2.6vw,28px);letter-spacing:-.01em;margin-bottom:10px}
.onmart-brand-card p{font-size:13.5px;line-height:1.6;font-weight:300;opacity:.78;margin-bottom:14px}
.onmart-brand-card:hover{background:rgba(128,128,128,.1)}
.onmart-brand-card:hover .node-go{opacity:.8;transform:none}

/* ═══ WEB İŞLERİ ═══ */
.work-network{position:relative;height:1150px;margin-top:24px;opacity:0;transition:opacity .5s var(--ease)}
.detail-page.cards .work-network{opacity:1}
.work-title,.social-title-small,.youtube-section-label{font-family:var(--f-mono);font-size:11px;letter-spacing:.4em;text-transform:uppercase;text-align:center;opacity:.55;margin-bottom:10px}
.work-card{position:absolute;width:min(300px,29vw);min-width:220px;border:var(--hair);background:inherit;opacity:0;transform:translateY(18px);transition:all .5s var(--ease);cursor:pointer}
.work-card.active-in{opacity:1;transform:none}
.work-card:hover,.work-card.focus{background:rgba(128,128,128,.1);transform:translateY(-3px)}
.work-network.expanded-grid{height:auto;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:90px 0 80px}
.work-network.expanded-grid .line-svg{display:block;z-index:0}
.work-network.expanded-grid .work-card{position:static;width:100%;min-width:0}
.work-network.expanded-grid .work-title{position:absolute;top:8px;left:50%;width:max-content;transform:translateX(-50%);z-index:3}
.work-network.expanded-grid .site-g,.work-network.expanded-grid .site-g.active-in,.work-network.expanded-grid .site-g:hover,.work-network.expanded-grid .site-g.focus{transform:none}
@media(max-width:980px){.work-network.expanded-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.work-network.expanded-grid{grid-template-columns:1fr}}
.bar{display:flex;align-items:center;gap:5px;padding:8px 12px;border-bottom:var(--hair)}
.dot{width:7px;height:7px;border-radius:50%;border:var(--hair);opacity:.7}
.url{font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;margin-left:8px;opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.preview{padding:14px 16px 16px}
.preview h3{font-family:var(--f-display);font-weight:700;font-size:18px;margin-bottom:8px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.tags span{font-family:var(--f-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;border:var(--hair);padding:3px 8px;opacity:.7}
.mock{display:flex;gap:8px;margin-bottom:8px}
.mock-lines{flex:1;display:flex;flex-direction:column;gap:5px;justify-content:center}
.mock-lines span{height:4px;background:currentColor;opacity:.25}
.mock-lines span:nth-child(2){width:70%}
.mock-lines span:nth-child(3){width:45%}
.mock-img{width:44px;height:32px;border:var(--hair);background:repeating-linear-gradient(45deg,transparent,transparent 3px,currentColor 3px,currentColor 4px);opacity:.25}
.mock-btn{display:block;width:66px;height:12px;border:var(--hair);opacity:.4;margin-bottom:10px}
.preview p{font-size:12.5px;line-height:1.55;font-weight:300;opacity:.72}
/* dikey konumlar SVG çizgi uçlarıyla hizalı: %16 / %39 / %62 / %86 */
.site-a{left:1%;top:calc(16% - 135px)}.site-b{right:1%;top:calc(16% - 135px)}
.site-c{left:1%;top:calc(39% - 135px)}.site-d{right:1%;top:calc(39% - 135px)}
.site-e{left:1%;top:calc(62% - 135px)}.site-f{right:1%;top:calc(62% - 135px)}
.site-g{left:50%;top:calc(86% - 135px);transform:translate(-50%,18px)}
.site-g.active-in{transform:translate(-50%,0)}
.site-g:hover,.site-g.focus{transform:translate(-50%,-3px)}
@media(max-width:860px){
  .work-network{min-height:0;display:grid;gap:12px;padding-top:4px}
  .work-network .line-svg{display:none}
  .work-card{position:static;width:100%;min-width:0}
  .site-g,.site-g.active-in,.site-g:hover{transform:none}
}

/* ═══ GENEL HİZMET DETAYI ═══ */
.service-work-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:8px}
.service-work-grid .work-card{position:static;width:auto;min-width:0}
.service-work-grid .empty-note{grid-column:1/-1;margin-top:0}
.service-works{margin-top:28px}

/* ═══ SOSYAL KANALLAR ═══ */
.social-network{position:relative;height:660px;margin-top:24px;opacity:0;transition:opacity .5s var(--ease)}
/* Ağ artık portföy sayfasında (.page) da kullanılıyor, seçici sayfa türüne bağlı değil. */
.categories .social-network{opacity:1}
/* Portföyde kanal görünümü — proje ızgarasının yerine geçer, altına eklenmez */
.portfolio-channels{margin-top:8px}
.portfolio-channels[hidden]{display:none}
/* Henüz yayımlanmış işi olmayan kanal: bilgi kartı, tıklanabilir değil */
.social-card.is-info{cursor:default}
.social-card.is-info:hover{background:inherit}
.social-soon{display:inline-block;margin-top:10px;font-family:var(--f-mono);font-size:9px;
  letter-spacing:.16em;text-transform:uppercase;opacity:.4}
.social-card{position:absolute;width:min(280px,27vw);min-width:212px;text-align:left;padding:20px;border:var(--hair);background:inherit;opacity:0;transform:translateY(16px);transition:all .5s var(--ease);z-index:2;overflow:hidden}
.social-card.active-in{opacity:1;transform:none}
.social-card:hover,.social-card.focus{background:rgba(128,128,128,.1);transform:translateY(-3px)}
.social-card h3{font-family:var(--f-display);font-weight:700;font-size:20px;line-height:1.12;margin:10px 0 7px;overflow-wrap:anywhere}
.social-card p{font-size:13px;line-height:1.6;font-weight:300;opacity:.78}
/* çizgi uçları: üst satır %28 (sol/sağ), alt satır %68 (sol/sağ), tekil kart %84 ortada */
.social-a{left:2%;top:calc(28% - 95px)}.social-b{right:2%;top:calc(28% - 95px)}
.social-c{left:12%;top:calc(68% - 60px)}.social-d{right:12%;top:calc(68% - 60px)}
.social-e{left:50%;top:calc(84% - 60px);transform:translate(-50%,16px)}
.social-e.active-in{transform:translate(-50%,0)}.social-e:hover,.social-e.focus{transform:translate(-50%,-3px)}
@media(max-width:860px){
  /* Kartlar mutlak konumdan çıkıp alt alta diziliyor; sabit 660px yükseklik
     kalırsa liste kabından taşıyor, bu yüzden yükseklik içeriğe bırakılır. */
  .social-network{height:auto;min-height:0;display:grid;gap:12px}
  .social-network .line-svg{display:none}
  .social-card{position:static;width:100%;min-width:0}
  .social-e,.social-e.active-in,.social-e:hover{transform:none}
}

/* ── platform logoları (saf CSS, monokrom) ── */
.social-logo{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:var(--hair);border-radius:9px;position:relative;font-family:var(--f-display);font-weight:700;font-size:15px}
.social-logo.big{width:46px;height:46px;border-radius:12px}
.logo-instagram::before{content:'';width:14px;height:14px;border:var(--hair);border-radius:50%}
.logo-instagram::after{content:'';position:absolute;top:6px;right:6px;width:3px;height:3px;border-radius:50%;background:currentColor}
.social-logo.big.logo-instagram::before{width:19px;height:19px}
.logo-youtube{border-radius:11px}
.logo-youtube::before{content:'';width:0;height:0;border-left:11px solid currentColor;border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:3px}
.logo-tiktok::before{content:'♪';font-size:17px;font-family:var(--f-body)}
.logo-facebook::before{content:'f'}
.logo-kick::before{content:'K'}

/* ═══ INSTAGRAM / YOUTUBE / TIKTOK SAYFALARI ═══ */
.instagram-title-row{display:flex;align-items:center;gap:22px}
.instagram-title-row .title-logo{width:clamp(40px,4.6vw,60px);height:clamp(40px,4.6vw,60px);border-radius:15px;flex-shrink:0}
.instagram-title-row .title-logo.logo-instagram::before{width:44%;height:44%}
.instagram-hero-desc{font-size:14px;line-height:1.65;font-weight:300;opacity:.8;max-width:620px;margin:4px 0 26px}
.instagram-page.channel-open .instagram-hero-desc{display:none}
.youtube-head{margin-bottom:18px}
.youtube-title{font-family:var(--f-display);font-weight:800;font-size:clamp(36px,6vw,78px);letter-spacing:-.025em}
.youtube-hero-card{border:var(--hair);padding:22px 26px;max-width:760px;margin-bottom:26px;position:relative}
.youtube-hero-card::before{content:'';position:absolute;top:-5px;left:-5px;width:10px;height:10px;border-top:var(--hair);border-left:var(--hair)}
.youtube-hero-card h3{font-family:var(--f-display);font-weight:700;font-size:22px;margin:12px 0 8px}
.youtube-hero-card p{font-size:14px;line-height:1.65;font-weight:300;opacity:.8;max-width:600px}
.youtube-work-network{position:relative;height:560px}
.instagram-work-network{height:990px}
.youtube-page.channel-open .youtube-work-network,.youtube-page.channel-open .youtube-hero-card{display:none}
.youtube-detail,.instagram-detail{display:none}
.youtube-page.channel-open .youtube-detail,.instagram-page.channel-open .instagram-detail{display:block}
.youtube-project-card,.instagram-project-card{position:absolute;width:min(300px,28vw);min-width:216px;text-align:left;padding:18px 20px;border:var(--hair);background:inherit;opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease);z-index:2;overflow:hidden}
.youtube-project-card.active-in,.instagram-project-card.active-in{opacity:1;transform:none}
.youtube-project-card:hover,.youtube-project-card.focus{background:rgba(128,128,128,.1);transform:translateY(-3px)}
.youtube-project-card h3,.instagram-project-card h3{font-family:var(--f-display);font-weight:700;font-size:17px;line-height:1.16;margin:9px 0 6px;overflow-wrap:anywhere}
.youtube-project-card p,.instagram-project-card p{font-size:12.5px;line-height:1.55;font-weight:300;opacity:.75}
.youtube-a{left:4%;top:calc(31% - 100px)}.youtube-b{right:4%;top:calc(31% - 100px)}.youtube-c{left:4%;top:calc(71% - 100px)}.youtube-d{right:4%;top:calc(71% - 100px)}
.youtube-work-network.expanded-grid{height:auto;min-height:620px;padding-top:86px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-content:start}
.youtube-work-network.expanded-grid .youtube-section-label{grid-column:1/-1;position:absolute;top:0}
.youtube-work-network.expanded-grid .youtube-lines{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.youtube-work-network.expanded-grid .youtube-project-card{position:relative;inset:auto;width:100%;min-width:0;min-height:180px}
@media(max-width:960px){.youtube-work-network.expanded-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.youtube-work-network.expanded-grid{grid-template-columns:1fr}}

/* OnMart Music */
.music-page{--music-pink:#ff2d95;--music-purple:#8b5cf6;--music-cyan:#00e5ff}
.music-hero{position:relative;padding:12px 0 28px;border-bottom:var(--hair);overflow:hidden}
.music-logo{font-family:var(--f-display);font-size:clamp(48px,8vw,104px);line-height:.9;letter-spacing:-.045em}.music-logo em{font-style:normal;background:linear-gradient(90deg,var(--music-pink),var(--music-purple),var(--music-cyan));background-clip:text;-webkit-background-clip:text;color:transparent}
.music-hero>p:not(.page-kicker){max-width:680px;margin-top:18px;font-size:14px;line-height:1.7;opacity:.72}
.music-wave{position:absolute;right:1%;bottom:16px;height:68px;display:flex;align-items:center;gap:4px;opacity:.7}.music-wave i{display:block;width:3px;height:calc(10px + (var(--i) % 9)*5px);background:linear-gradient(var(--music-pink),var(--music-cyan));animation:music-wave .8s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-45ms)}
.music-page:not(.show) .music-wave i{animation-play-state:paused}
@keyframes music-wave{to{transform:scaleY(.28);filter:hue-rotate(120deg)}}
.music-layout{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:28px;padding-top:28px}.music-label{font-family:var(--f-mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;margin-bottom:12px;opacity:.55}
.artist-card{width:100%;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;text-align:left;padding:17px 14px;border:var(--hair);border-bottom:0;transition:.3s}.artist-card:last-child{border-bottom:var(--hair)}.artist-card span,.artist-card small{font-family:var(--f-mono);font-size:9px;opacity:.55}.artist-card strong{font-family:var(--f-display);font-size:18px}.artist-card.active,.artist-card:hover{box-shadow:inset 4px 0 var(--artist-color);background:color-mix(in srgb,var(--artist-color) 12%,transparent)}
.artist-profile{display:grid;grid-template-columns:96px 1fr;gap:20px;align-items:center;border:var(--hair);padding:20px;margin-bottom:18px}.artist-avatar{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-display);font-size:48px;color:#fff;background:radial-gradient(circle at 30% 25%,#fff0,var(--artist-color));border:1px solid var(--artist-color);box-shadow:0 0 34px color-mix(in srgb,var(--artist-color) 45%,transparent)}.artist-profile span{font-family:var(--f-mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;opacity:.55}.artist-profile h3{font-family:var(--f-display);font-size:30px;margin:5px 0}.artist-profile p{font-size:13px;line-height:1.6;opacity:.72}
.music-player{display:grid;grid-template-columns:minmax(260px,1fr) 240px;border:var(--hair);margin-bottom:18px}.music-player-screen{aspect-ratio:16/9;background:radial-gradient(circle at 30% 20%,#34205c,#09090f 70%);display:grid;place-items:center;color:#fff;font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase}.music-player-screen iframe{width:100%;height:100%;border:0}.music-now{display:flex;gap:14px;align-items:center;padding:20px}.music-now small{display:block;font-family:var(--f-mono);font-size:8px;letter-spacing:.2em;text-transform:uppercase;opacity:.5;margin-bottom:7px}.music-now strong{font-size:13px;line-height:1.35}.music-disc{width:54px;height:54px;border-radius:50%;background:repeating-radial-gradient(#111 0 4px,#333 5px 7px);color:#fff;display:grid;place-items:center;flex:none}.music-disc.spinning{animation:music-spin 2.5s linear infinite}@keyframes music-spin{to{transform:rotate(360deg)}}
.track-list{display:grid;gap:7px}.track-row{display:grid;grid-template-columns:34px 72px 1fr 28px;align-items:center;gap:12px;text-align:left;border:var(--hair);padding:7px 12px;transition:.25s}.track-row:hover,.track-row.playing{transform:translateX(5px);border-color:var(--music-cyan);background:rgba(0,229,255,.07)}.track-row>span{font-family:var(--f-mono);font-size:9px;opacity:.5}.track-row img{width:72px;aspect-ratio:16/9;object-fit:cover}.track-row strong{font-size:12px;line-height:1.35}.track-row i{font-style:normal}
@media(max-width:820px){.music-layout{grid-template-columns:1fr}.artist-list{display:grid;grid-template-columns:1fr 1fr}.music-label{grid-column:1/-1}.music-player{grid-template-columns:1fr}.music-wave{opacity:.25}.artist-profile{grid-template-columns:68px 1fr}.artist-avatar{width:68px;height:68px;font-size:32px}}
@media(max-width:520px){.artist-list{grid-template-columns:1fr}.music-player-screen{min-height:210px}.track-row{grid-template-columns:28px 58px 1fr 20px}.track-row img{width:58px}}

/* OnMart Music / deneysel ses laboratuvarı */
.music-page::before{content:'ONMART\A MUSIC';white-space:pre;position:fixed;right:-1vw;top:17vh;font-family:var(--f-display);font-size:clamp(90px,17vw,270px);line-height:.7;opacity:.025;pointer-events:none;transform:rotate(-7deg)}
.music-page .music-layout{grid-template-columns:1fr;gap:20px}
.music-page .artist-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:relative;padding-top:28px}
.music-page .artist-list::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,#ff2d95,#8b5cf6,#00e5ff,transparent)}
.music-page .music-label{position:absolute;top:-7px;left:50%;transform:translateX(-50%);background:var(--ink);padding:0 14px;z-index:1}.stage.light .music-page .music-label{background:var(--paper)}
.music-page .artist-card{border:0;border-right:var(--hair);border-bottom:var(--hair);position:relative;overflow:hidden;min-height:86px}.music-page .artist-card:first-of-type{border-left:var(--hair)}
.music-page .artist-card::after{content:'';position:absolute;width:70px;height:70px;border:1px solid var(--artist-color);border-radius:50%;right:-35px;bottom:-35px;opacity:.25;transition:.45s}
.music-page .artist-card:hover::after,.music-page .artist-card.active::after{width:150px;height:150px;right:-45px;bottom:-75px;opacity:.55;box-shadow:0 0 45px var(--artist-color)}
.music-page .artist-card.active{box-shadow:inset 0 -4px var(--artist-color);transform:translateY(-5px)}
.music-transmission{position:relative;min-height:360px;border:var(--hair);overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 55%,rgba(139,92,246,.18),transparent 34%),linear-gradient(120deg,rgba(255,45,149,.05),transparent 45%,rgba(0,229,255,.06))}
.music-transmission::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 7px,rgba(255,255,255,.025) 8px);pointer-events:none}
.music-transmission .artist-profile{position:relative;z-index:2;width:min(680px,76%);margin:0;grid-template-columns:130px 1fr;border:0;background:rgba(10,10,15,.72);color:#fff;backdrop-filter:blur(14px);clip-path:polygon(3% 0,100% 0,97% 100%,0 100%);padding:30px 42px}
.music-transmission .artist-avatar{width:112px;height:112px;font-size:54px;animation:artist-signal 3.2s ease-in-out infinite alternate}
.music-orbit{position:absolute;left:50%;top:50%;width:290px;height:290px;transform:translate(-50%,-50%);border:1px dashed rgba(255,255,255,.16);border-radius:50%;animation:music-spin 18s linear infinite}.music-orbit i{position:absolute;inset:24px;border:1px solid rgba(0,229,255,.25);border-radius:50%;transform:rotate(57deg)}.music-orbit i:nth-child(2){inset:-42px;border-color:rgba(255,45,149,.22);transform:rotate(112deg)}.music-orbit i:nth-child(3){inset:74px;border-style:dotted;border-color:rgba(255,234,0,.35)}.music-orbit b{position:absolute;top:-7px;left:50%;font-family:var(--f-mono);font-size:9px;letter-spacing:.2em;color:#fff}
.transmission-code{position:absolute;left:22px;bottom:17px;font-family:var(--f-mono);font-size:8px;letter-spacing:.3em;opacity:.45}
@keyframes artist-signal{to{transform:scale(1.06);filter:hue-rotate(55deg);box-shadow:0 0 70px var(--artist-color)}}
.music-page .track-list{grid-template-columns:1fr 1fr;gap:10px;padding:18px 0 120px}.music-page .track-row{min-height:88px;border-left:4px solid transparent;counter-increment:track}.music-page .track-row:nth-child(4n+2),.music-page .track-row:nth-child(4n+3){transform:translateX(16px)}.music-page .track-row:hover,.music-page .track-row.playing{transform:translateX(8px) scale(1.015);border-left-color:#ff2d95;box-shadow:12px 12px 0 rgba(139,92,246,.12)}

.persistent-player{position:fixed;left:18px;right:18px;bottom:14px;z-index:150;display:grid;grid-template-columns:12px minmax(180px,1fr) 48px 58px minmax(120px,180px) minmax(200px,1.35fr) 34px;align-items:center;gap:10px;min-height:70px;padding:10px 12px;border:1px solid rgba(255,255,255,.5);background:rgba(7,7,11,.92);color:#fff;backdrop-filter:blur(18px);box-shadow:0 12px 50px rgba(0,0,0,.5);transform:translateY(130%);opacity:0;pointer-events:none;transition:.45s var(--ease)}
.persistent-player.active{transform:none;opacity:1;pointer-events:auto}.persistent-embed{position:absolute;width:1px;height:1px;overflow:hidden;opacity:.01}.persistent-embed iframe{width:1px;height:1px;border:0}
.player-pulse{width:10px;height:42px;background:linear-gradient(#ff2d95,#8b5cf6,#00e5ff);animation:player-pulse .65s ease-in-out infinite alternate}.persistent-player:not(.playing) .player-pulse{animation-play-state:paused;opacity:.25}@keyframes player-pulse{to{transform:scaleY(.25);filter:hue-rotate(90deg)}}
.player-identity{min-width:0}.player-identity small{display:block;font-family:var(--f-mono);font-size:8px;letter-spacing:.22em;text-transform:uppercase;color:#00e5ff;margin-bottom:5px}.player-identity strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-control,.player-close{height:42px;border:1px solid rgba(255,255,255,.35);font-family:var(--f-mono);font-size:10px}.player-control:hover,.player-close:hover{background:#fff;color:#09090f}.player-select-label{font-family:var(--f-mono);font-size:7px;letter-spacing:.18em;color:rgba(255,255,255,.52)}.player-select-label select{display:block;width:100%;margin-top:4px;color:#fff;background:#111;border:1px solid rgba(255,255,255,.25);padding:7px;font-size:10px}.player-select-label option{background:#111;color:#fff}.player-close{font-size:20px}
/* JS her çalar durumu değiştiğinde --player-clear'ı gerçek yüksekliğe göre hesaplar —
   sabit bir piksel değeri bazı sayfalarda boşlukta asılı kalma, bazılarında da
   çalarla çakışma sorunu yaratıyordu. */
body.has-music-player .btn-back,body.has-music-player .btn-detail-back{bottom:var(--player-clear,102px)}
@media(max-width:900px){.music-page .artist-list{grid-template-columns:1fr 1fr}.music-transmission .artist-profile{width:90%}.persistent-player{grid-template-columns:10px 1fr 42px 52px 30px}.player-select-label{display:none}.music-page .track-list{grid-template-columns:1fr}.music-page .track-row:nth-child(n){transform:none}}
@media(max-width:560px){.music-transmission{min-height:320px}.music-transmission .artist-profile{grid-template-columns:68px 1fr;padding:22px}.music-page .artist-list{grid-template-columns:1fr 1fr}.persistent-player{left:7px;right:7px;bottom:7px}.player-identity strong{max-width:130px}}

/* Müzik arayüzü okunabilirlik düzenlemesi */
.music-page .music-hero{padding-bottom:18px}.music-page .music-logo{font-size:clamp(46px,6vw,78px)}.music-page .music-hero>p:not(.page-kicker){margin-top:12px}.music-page .music-layout{padding-top:20px}
.music-page .artist-card{min-height:82px;padding:14px 16px;grid-template-columns:32px 1fr auto}.music-page .artist-card strong{font-size:19px}.music-page .artist-card small{font-size:9px}
.music-transmission{min-height:190px;display:flex;align-items:center;padding:22px 5%;background:linear-gradient(110deg,rgba(255,45,149,.06),transparent 38%,rgba(0,229,255,.06))}
.music-transmission .artist-profile{width:min(760px,78%);margin:0;grid-template-columns:104px 1fr;border:var(--hair);background:var(--ink);color:var(--paper);clip-path:none;padding:24px 28px;box-shadow:14px 14px 0 rgba(128,128,128,.08)}
.stage.light .music-transmission .artist-profile{background:var(--paper);color:var(--ink)}
.music-transmission .artist-avatar{width:88px;height:88px;font-size:42px;animation:none;box-shadow:0 0 30px color-mix(in srgb,var(--artist-color) 35%,transparent)}
.music-transmission .artist-profile h3{font-size:32px;line-height:1;margin:7px 0 10px}.music-transmission .artist-profile p{max-width:520px;font-size:13px}
.music-orbit{left:auto;right:4%;top:50%;width:190px;height:190px;opacity:.32;animation-duration:30s}.music-orbit i:nth-child(2){inset:-20px}.music-orbit b{display:none}
.catalog-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:28px 2px 14px;border-bottom:var(--hair)}.catalog-heading span{font-family:var(--f-mono);font-size:8px;letter-spacing:.2em;text-transform:uppercase;opacity:.5}.catalog-heading h3{font-family:var(--f-display);font-size:32px;margin-top:4px}.catalog-heading p{font-family:var(--f-mono);font-size:9px;letter-spacing:.08em;opacity:.62}.catalog-heading p b{font-size:14px;color:var(--music-cyan)}
.music-page .track-list{display:grid;grid-template-columns:1fr;gap:8px;padding:12px 0 120px}.music-page .track-row:nth-child(n){transform:none}.music-page .track-row{grid-template-columns:34px 96px minmax(0,1fr) 92px;min-height:82px;padding:9px 14px;border-left:var(--hair);background:transparent}.music-page .track-row img{width:96px}.music-page .track-row strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-page .track-row:hover{transform:translateX(4px);box-shadow:none;border-color:rgba(0,229,255,.65);background:rgba(0,229,255,.05)}.music-page .track-row.playing{transform:none;border:1px solid var(--music-pink);border-left:5px solid var(--music-pink);background:linear-gradient(90deg,rgba(255,45,149,.14),transparent);box-shadow:none}
.track-action{justify-self:end;display:flex;align-items:center;justify-content:center;gap:8px;min-width:78px;padding:9px 10px;border:var(--hair);font-style:normal}.track-action i{font-style:normal;font-size:9px}.track-action b{font-family:var(--f-mono);font-size:8px;letter-spacing:.12em;text-transform:uppercase}.track-row.playing .track-action{background:var(--music-pink);border-color:var(--music-pink);color:#fff}.track-row.playing .track-action i{animation:player-pulse .6s ease-in-out infinite alternate}
.persistent-player{grid-template-columns:12px minmax(180px,1fr) 104px 110px minmax(120px,180px) minmax(200px,1.35fr) 34px;min-height:76px}.player-control{padding:0 10px;font-size:8px;letter-spacing:.08em}.player-identity small{color:#7defff}.player-identity strong{font-size:13px}
@media(max-width:900px){.music-transmission .artist-profile{width:86%}.persistent-player{grid-template-columns:10px 1fr 82px 86px 30px}.music-page .track-row{grid-template-columns:30px 78px minmax(0,1fr) 82px}.music-page .track-row img{width:78px}}
@media(max-width:560px){.music-transmission{min-height:210px;padding:18px}.music-transmission .artist-profile{width:100%;grid-template-columns:66px 1fr;padding:18px}.music-transmission .artist-avatar{width:58px;height:58px;font-size:28px}.music-transmission .artist-profile h3{font-size:23px}.music-orbit{display:none}.catalog-heading{align-items:start;flex-direction:column;gap:7px}.music-page .track-row{grid-template-columns:24px 58px minmax(0,1fr) 38px}.music-page .track-row img{width:58px}.track-action{min-width:34px;padding:8px}.track-action b{display:none}.persistent-player{grid-template-columns:8px 1fr 68px 72px 26px}.player-control{font-size:7px;padding:0 5px}}

/* ═══ MOBİL PERFORMANS: pahalı backdrop-filter'ları daraltır (aynı görünüm, daha az GPU yükü) ═══ */
@media(max-width:820px){
  .music-transmission .artist-profile{backdrop-filter:blur(6px)}
  .persistent-player{backdrop-filter:blur(8px)}
}

/* Sanatçı profili + klip sahnesi */
.music-profile-stage{display:grid;grid-template-columns:310px minmax(0,1fr);border:var(--hair);background:linear-gradient(135deg,rgba(255,45,149,.055),transparent 40%,rgba(0,229,255,.06));overflow:hidden}
.music-profile-stage .artist-profile{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:18px;margin:0;padding:34px 28px;border:0;border-right:var(--hair);background:linear-gradient(180deg,rgba(128,128,128,.08),transparent 72%);box-shadow:none;color:inherit}
.music-profile-stage .artist-avatar{width:112px;height:112px;font-size:52px;box-shadow:0 0 38px color-mix(in srgb,var(--artist-color) 38%,transparent)}
.music-profile-stage .artist-profile h3{font-size:34px;line-height:1;margin:7px 0 12px}.music-profile-stage .artist-profile p{font-size:13px;line-height:1.65}.music-profile-stage .artist-profile span{opacity:.62}
.music-clip-panel{display:grid;grid-template-columns:minmax(0,1fr);padding:22px;gap:14px}.music-clip-screen{width:100%;aspect-ratio:16/9;max-height:410px;display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,#252036,#08080d 68%);color:#fff;border:1px solid rgba(255,255,255,.24);font-family:var(--f-mono);font-size:9px;line-height:1.8;letter-spacing:.22em;text-align:center;overflow:hidden}.music-clip-screen iframe{width:100%;height:100%;border:0;display:block}
.music-visualizer{display:grid;grid-template-columns:70px minmax(180px,280px) minmax(220px,1fr) auto;align-items:center;gap:16px;min-height:82px;border-top:var(--hair);padding-top:13px;overflow:hidden}.vinyl-record{position:relative;width:64px;height:64px;border-radius:50%;background:repeating-radial-gradient(circle,#090909 0 4px,#292929 5px 7px);box-shadow:0 7px 18px rgba(0,0,0,.35)}.vinyl-record::after{content:'';position:absolute;inset:22px;border-radius:50%;background:linear-gradient(135deg,#ff2d95,#8b5cf6,#00e5ff)}.vinyl-record i{position:absolute;inset:29px;border-radius:50%;background:#fff;z-index:2}.vinyl-record b{position:absolute;left:50%;top:50%;z-index:3;transform:translate(-50%,-50%);font-family:var(--f-mono);font-size:5px;color:#000}.vinyl-record.spinning{animation:music-spin 2.6s linear infinite}
.equalizer{height:56px;display:flex;align-items:center;gap:4px;padding:8px 0;overflow:hidden}.equalizer i{flex:1;max-width:6px;height:28%;background:linear-gradient(#00e5ff,#8b5cf6,#ff2d95);opacity:.35;transform-origin:center}.equalizer.active i{opacity:.9;animation:eq-bar .55s ease-in-out infinite alternate;animation-delay:calc(var(--bar)*-37ms)}@keyframes eq-bar{to{transform:scaleY(1.8);filter:hue-rotate(80deg)}}
.visualizer-copy{min-width:0}.visualizer-copy small{display:block;font-family:var(--f-mono);font-size:8px;letter-spacing:.2em;text-transform:uppercase;opacity:.5;margin-bottom:7px}.visualizer-copy strong{display:block;font-size:13px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.persistent-player{grid-template-columns:12px minmax(170px,1fr) 36px 94px 36px 102px 150px minmax(120px,170px) minmax(190px,1.2fr) 34px}
.player-skip{height:42px;border:1px solid rgba(255,255,255,.35);font-family:var(--f-mono);font-size:16px}.player-skip:hover{background:#fff;color:#09090f}.player-volume{display:grid;grid-template-columns:auto 1fr 24px;align-items:center;gap:7px;font-family:var(--f-mono);font-size:7px;letter-spacing:.13em;color:rgba(255,255,255,.6)}.player-volume input{width:100%;accent-color:#00e5ff}.player-volume output{text-align:right;color:#fff;font-size:8px}
@media(max-width:1180px){.persistent-player{grid-template-columns:10px minmax(150px,1fr) 34px 82px 34px 90px 130px 30px}.persistent-player .player-select-label{display:none}}
@media(max-width:860px){.music-profile-stage{grid-template-columns:1fr}.music-profile-stage .artist-profile{display:grid;grid-template-columns:78px 1fr;border-right:0;border-bottom:var(--hair);padding:20px}.music-profile-stage .artist-avatar{width:70px;height:70px;font-size:34px}.music-clip-panel{padding:14px}.persistent-player{grid-template-columns:8px minmax(100px,1fr) 30px 66px 30px 76px 100px 26px;gap:6px}.player-control{font-size:7px}.player-volume{font-size:0}.player-volume output{display:none}}
@media(max-width:580px){.music-visualizer{grid-template-columns:54px 1fr}.equalizer{display:none}.vinyl-record{width:52px;height:52px}.vinyl-record::after{inset:18px}.vinyl-record i{inset:24px}.persistent-player{grid-template-columns:6px 1fr 28px 58px 28px 62px 24px}.player-volume{display:none}.player-identity strong{max-width:105px}}

/* Sanatçı seçimi ve YouTube işlemleri */
.music-page .artist-card{isolation:isolate;transition:transform .32s var(--ease),background .32s,border-color .32s,box-shadow .32s}.music-page .artist-card::after{display:none}.music-page .artist-card::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 15%,color-mix(in srgb,var(--artist-color) 18%,transparent) 50%,transparent 82%);transform:translateX(-110%);transition:transform .55s var(--ease)}.music-page .artist-card:hover::before,.music-page .artist-card.active::before{transform:translateX(0)}.music-page .artist-card:hover{transform:translateY(-4px);border-color:var(--artist-color);box-shadow:0 12px 28px rgba(0,0,0,.16)}.music-page .artist-card.active{transform:translateY(-4px);box-shadow:inset 0 -4px var(--artist-color),0 14px 34px color-mix(in srgb,var(--artist-color) 16%,transparent)}.music-page .artist-card.active strong{color:var(--artist-color)}
.music-profile-stage .artist-profile{align-items:center;justify-content:center;text-align:center}.music-profile-stage .artist-profile>div:last-child{display:flex;flex-direction:column;align-items:center}.music-profile-stage .artist-avatar{overflow:hidden}.music-profile-stage .artist-avatar img{width:100%;height:100%;object-fit:cover;display:block}.artist-track-total{display:inline-block;margin-top:15px;padding:7px 12px;border:var(--hair);font-family:var(--f-mono);font-size:8px;letter-spacing:.16em;text-transform:uppercase;opacity:.65}
.clip-actions{justify-self:end;display:flex;align-items:center;gap:9px}.clip-actions button,.clip-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 13px;border:var(--hair);font-family:var(--f-mono);font-size:8px;letter-spacing:.11em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:.25s}.clip-actions button:hover{background:currentColor;color:var(--ink)}.clip-actions a{background:#e62117;color:#fff;border-color:#e62117}.clip-actions a:hover{background:#ff3429;transform:translateY(-2px)}
.music-clip-screen:fullscreen{width:100vw;height:100vh;max-height:none;aspect-ratio:auto;background:#000;border:0}.music-clip-screen:fullscreen iframe{width:100%;height:100%}.music-clip-screen.expanded{position:fixed;inset:18px;z-index:210;width:auto;height:auto;max-height:none;aspect-ratio:auto;background:#000}
.music-page .track-row{grid-template-columns:34px 96px minmax(0,1fr) minmax(220px,auto)}.track-actions{justify-self:end;display:flex;align-items:center;gap:8px}.track-youtube{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border:1px solid #e62117;color:#e62117;font-family:var(--f-mono);font-size:8px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:.25s}.track-youtube:hover{background:#e62117;color:#fff}.track-actions .track-action{min-height:38px}
@media(max-width:900px){.music-page .track-row{grid-template-columns:30px 78px minmax(0,1fr) 190px}.track-youtube{font-size:7px;padding:7px}.clip-actions{grid-column:1/-1}}
@media(max-width:650px){.music-page .track-row{grid-template-columns:24px 58px minmax(0,1fr) 62px}.track-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.track-youtube{min-height:22px;padding:4px 7px;font-size:6px}.track-actions .track-action{min-height:26px;padding:5px 7px}.clip-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.clip-actions button,.clip-actions a{white-space:normal;text-align:center}}
.clip-fullscreen-close{display:none;position:absolute;right:18px;top:18px;z-index:3;width:44px;height:44px;border:1px solid rgba(255,255,255,.7);background:rgba(0,0,0,.7);color:#fff;font-size:24px}.music-clip-screen:fullscreen .clip-fullscreen-close,.music-clip-screen.expanded .clip-fullscreen-close{display:block}

/* Kalıcı oynatıcı: zaman çizgisi ve özel seçim menüleri */
.persistent-player{min-height:96px;padding-top:31px;overflow:visible}.player-timeline{position:absolute;left:22px;right:22px;top:9px;display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:9px}.player-timeline time{font-family:var(--f-mono);font-size:8px;color:rgba(255,255,255,.72);text-align:center}.player-timeline input{width:100%;height:14px;accent-color:#00e5ff;cursor:pointer}.player-timeline input::-webkit-slider-runnable-track{height:3px;background:linear-gradient(90deg,#ff2d95,#8b5cf6,#00e5ff);border-radius:0}.player-timeline input::-webkit-slider-thumb{margin-top:-5px}
.player-picker{position:relative;min-width:0}.picker-trigger{width:100%;height:48px;display:grid;grid-template-columns:1fr 18px;grid-template-rows:auto auto;text-align:left;align-content:center;padding:7px 10px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.025);color:#fff;transition:.25s}.picker-trigger:hover,.player-picker.open .picker-trigger{border-color:#00e5ff;background:rgba(0,229,255,.07)}.picker-trigger span{grid-column:1;font-family:var(--f-mono);font-size:7px;letter-spacing:.18em;color:#00e5ff}.picker-trigger strong{grid-column:1;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;margin-top:4px}.picker-trigger i{grid-column:2;grid-row:1/3;align-self:center;justify-self:center;font-style:normal;transition:transform .25s}.player-picker.open .picker-trigger i{transform:rotate(180deg)}
.picker-menu{display:none;position:absolute;left:0;right:0;bottom:calc(100% + 16px);max-height:min(430px,62vh);overflow:auto;border:1px solid rgba(255,255,255,.42);background:rgba(8,8,12,.98);box-shadow:0 -18px 48px rgba(0,0,0,.48);z-index:180;padding:6px}.player-picker.open .picker-menu{display:grid;animation:picker-open .22s var(--ease)}@keyframes picker-open{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.picker-menu button{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr) 20px;align-items:center;gap:10px;text-align:left;padding:8px;border-bottom:1px solid rgba(255,255,255,.1);color:#fff;transition:.2s}.picker-menu button:last-child{border-bottom:0}.picker-menu button:hover,.picker-menu button.selected{background:rgba(0,229,255,.1);box-shadow:inset 3px 0 #00e5ff}.picker-menu button img{width:38px;aspect-ratio:1;object-fit:cover}.picker-menu button span,.picker-menu button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.picker-menu button i{font-style:normal;font-size:9px;color:#00e5ff}.picker-artist-dot{width:36px;height:36px;border-radius:50%;display:grid;place-items:center!important;background:var(--picker-color);color:#fff;font-family:var(--f-display);font-size:16px!important}.track-picker .picker-menu{left:auto;width:min(520px,80vw)}
.track-row{cursor:pointer}.track-row:focus-within,.track-row:hover{outline:none}.track-row .track-youtube,.track-row .track-action{cursor:pointer}
@media(max-width:1180px){.persistent-player{grid-template-columns:10px minmax(150px,1fr) 34px 82px 34px 90px 130px minmax(120px,1fr) minmax(160px,1.2fr) 30px}.player-picker{display:block}.track-picker .picker-menu{width:min(460px,82vw)}}
@media(max-width:860px){.persistent-player{padding-top:28px}.persistent-player .player-picker{display:none}.player-timeline{left:10px;right:10px}}

/* OnMart Music ana giriş ekranı */
.music-home-mode .artist-profile{align-items:flex-start;justify-content:center;text-align:left;padding:38px 32px;background:linear-gradient(145deg,rgba(168,85,247,.18),transparent 65%)}.music-home-mode .artist-profile>div:last-child{align-items:flex-start}.music-home-mark{width:112px;height:112px;border:1px solid #a855f7;display:grid;place-items:center;font-family:var(--f-display);font-size:40px;line-height:.55;color:#fff;background:radial-gradient(circle at 30% 20%,#ff2d95,#6d28d9 62%,#111);box-shadow:0 0 42px rgba(168,85,247,.38)}.music-home-mark span{font-family:var(--f-mono);font-size:8px;letter-spacing:.25em}.music-home-mode .artist-profile h3{font-size:34px;line-height:1.04}.music-discover{margin-top:18px;border:var(--hair);padding:10px 14px;font-family:var(--f-mono);font-size:8px;letter-spacing:.15em;text-transform:uppercase;transition:.25s}.music-discover:hover{background:#a855f7;border-color:#a855f7;color:#fff;transform:translateY(-2px)}
.recent-cover-wall{width:100%;height:100%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;padding:8px;background:#08080c}.recent-cover-wall button{position:relative;overflow:hidden;min-height:0;background:#111}.recent-cover-wall img{width:100%;height:100%;object-fit:cover;display:block;opacity:.72;transition:transform .5s var(--ease),opacity .35s}.recent-cover-wall span{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.9));color:#fff;text-align:left;font-size:10px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-cover-wall button::after{content:'▶';position:absolute;left:50%;top:50%;width:38px;height:38px;border:1px solid rgba(255,255,255,.75);border-radius:50%;display:grid;place-items:center;color:#fff;transform:translate(-50%,-40%) scale(.8);opacity:0;transition:.3s}.recent-cover-wall button:hover img{transform:scale(1.055);opacity:1}.recent-cover-wall button:hover::after{opacity:1;transform:translate(-50%,-50%) scale(1)}
.music-home-mode .clip-actions{opacity:0;pointer-events:none}.music-home-mode .music-clip-panel.has-track .clip-actions{opacity:1;pointer-events:auto}.music-home-mode .visualizer-copy small{color:#a855f7}
@media(max-width:860px){.music-home-mode .artist-profile{align-items:center;text-align:center}.music-home-mode .artist-profile>div:last-child{align-items:center}.music-home-mark{width:76px;height:76px;font-size:28px}.recent-cover-wall span{font-size:8px}}

/* Bağımsız OnMart Music ana sayfası */
.music-home-view{display:none}.music-page.home-active{padding:0!important}.music-page.home-active .music-hero,.music-page.home-active .music-artist-view{display:none}.music-page.home-active .music-home-view{display:block}
.music-home-hero{position:relative;min-height:640px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:center;padding:80px clamp(30px,7vw,110px);overflow:hidden;border-bottom:var(--hair);background:radial-gradient(circle at 76% 44%,rgba(0,229,255,.14),transparent 25%),radial-gradient(circle at 66% 52%,rgba(255,45,149,.15),transparent 42%),linear-gradient(135deg,#08080d 0%,#11101a 55%,#08080d 100%);color:#fff}.music-home-hero::before{content:'MUSIC';position:absolute;right:-4vw;bottom:-7vw;font-family:var(--f-display);font-size:clamp(150px,27vw,440px);line-height:.7;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.055);transform:rotate(-7deg)}
.home-copy{position:relative;z-index:2;max-width:700px}.home-copy>p{font-family:var(--f-mono);font-size:9px;letter-spacing:.34em;text-transform:uppercase;color:#00e5ff}.home-copy h2{font-family:var(--f-display);font-size:clamp(76px,11vw,170px);line-height:.72;letter-spacing:-.045em;margin:28px 0 34px}.home-copy h2 em{font-style:normal;color:transparent;background:linear-gradient(90deg,#ff2d95,#8b5cf6,#00e5ff);background-clip:text;-webkit-background-clip:text}.home-copy>span{display:block;max-width:520px;font-size:14px;line-height:1.75;color:rgba(255,255,255,.68)}.home-copy button{margin-top:28px;border:1px solid rgba(255,255,255,.55);padding:13px 18px;font-family:var(--f-mono);font-size:9px;letter-spacing:.17em;text-transform:uppercase;transition:.3s}.home-copy button:hover{background:#fff;color:#09090f;transform:translateY(-3px)}
.home-signal{position:absolute;left:clamp(30px,7vw,110px);top:64px;right:clamp(30px,7vw,110px);display:flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:8px;letter-spacing:.25em;color:rgba(255,255,255,.45)}.home-signal span{margin-right:auto}.home-signal i{width:7px;height:7px;border-radius:50%;background:#ff2d95}.home-signal i:nth-child(3){background:#8b5cf6}.home-signal i:nth-child(4){background:#00e5ff}
/* bu bölüm her zaman koyu — tema aydınlıkken marka yazısı görünmez oluyordu */
body:has(.music-page.home-active.show) #brand{color:#fff}
.home-orbit{position:relative;justify-self:center;width:min(34vw,420px);aspect-ratio:1;border:1px solid rgba(255,255,255,.13);border-radius:50%;display:grid;place-items:center;animation:music-spin 28s linear infinite}.home-orbit::before,.home-orbit::after,.home-orbit i{content:'';position:absolute;border-radius:50%;border:1px solid rgba(0,229,255,.19)}.home-orbit::before{inset:12%}.home-orbit::after{inset:28%;border-color:rgba(255,45,149,.25)}.home-orbit i:nth-of-type(1){width:18px;height:18px;left:2%;top:48%;background:#00e5ff;box-shadow:0 0 26px #00e5ff}.home-orbit i:nth-of-type(2){width:11px;height:11px;right:15%;top:8%;background:#ff2d95;box-shadow:0 0 22px #ff2d95}.home-orbit i:nth-of-type(3){inset:40%;border-style:dashed}.home-orbit b{font-family:var(--f-display);font-size:clamp(48px,8vw,110px);background:linear-gradient(135deg,#fff,#8b5cf6);background-clip:text;-webkit-background-clip:text;color:transparent}
.home-releases,.home-artists{padding:70px clamp(28px,6vw,96px)}.home-releases>header,.home-artists>header{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}.home-releases header span,.home-artists header span{font-family:var(--f-mono);font-size:8px;letter-spacing:.28em;text-transform:uppercase;opacity:.5}.home-releases h3,.home-artists h3{font-family:var(--f-display);font-size:clamp(38px,5vw,68px);margin-top:7px}.home-releases header p{font-size:12px;opacity:.55}
.home-release-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.home-release-card{border:var(--hair);min-width:0;transition:.35s var(--ease)}.home-release-card:hover{transform:translateY(-7px);box-shadow:12px 14px 0 rgba(128,128,128,.1)}.home-release-card>button{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#000}.home-release-card img{width:100%;height:100%;object-fit:cover;display:block;opacity:.82;transition:.45s}.home-release-card:hover img{transform:scale(1.055);opacity:1}.release-play{position:absolute;left:50%;top:50%;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.72);color:#fff;transform:translate(-50%,-50%);padding-left:3px}.home-release-card>div{padding:15px}.home-release-card>div>span{font-family:var(--f-mono);font-size:7px;letter-spacing:.16em;color:#8b5cf6}.home-release-card h4{font-size:13px;line-height:1.35;margin:9px 0 16px;min-height:35px}.home-release-card a{font-family:var(--f-mono);font-size:7px;letter-spacing:.12em;text-transform:uppercase;color:#e62117;text-decoration:none}
.home-artists{border-top:var(--hair);padding-bottom:150px}.home-artist-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.home-artist-portal{position:relative;min-height:160px;display:grid;grid-template-columns:44px 92px 1fr auto;align-items:center;gap:18px;text-align:left;padding:24px;border:var(--hair);overflow:hidden;transition:.35s}.home-artist-portal::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 82% 50%,color-mix(in srgb,var(--artist-color) 25%,transparent),transparent 38%);opacity:.45;transition:.35s}.home-artist-portal:hover{transform:translateX(7px);border-color:var(--artist-color);box-shadow:inset 5px 0 var(--artist-color)}.home-artist-portal:hover::before{opacity:1}.portal-index{font-family:var(--f-mono);font-size:9px;opacity:.5}.portal-avatar{position:relative;z-index:1;width:82px;height:82px;border-radius:50%;display:grid;place-items:center;background:var(--artist-color);color:#fff;font-family:var(--f-display);font-size:34px;overflow:hidden}.portal-avatar img{width:100%;height:100%;object-fit:cover}.home-artist-portal strong{position:relative;font-family:var(--f-display);font-size:25px}.home-artist-portal small{position:relative;display:block;margin-top:7px;font-family:var(--f-mono);font-size:8px;opacity:.5}.home-artist-portal>i{position:relative;font-style:normal;font-family:var(--f-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:900px){
  .music-home-hero{grid-template-columns:1fr;min-height:720px}
  /* marka logosu/tema anahtarıyla çakışıyordu — sinyal satırına üstten boşluk */
  .home-signal{top:96px}
  /* disk artık ekran dışına taşmıyor, ortalanmış ve bütün olarak görünüyor.
     margin ile ortalanır (transform değil) — aksi halde dönme animasyonuyla
     çakışıp diski sağa sola oynatıyordu. */
  .home-orbit{position:absolute;left:50%;right:auto;margin-left:-150px;bottom:20px;width:300px;opacity:.4}
  .home-release-grid{grid-template-columns:1fr 1fr}
  .home-artist-grid{grid-template-columns:1fr}
}
@media(max-width:580px){.music-home-hero{min-height:650px;padding:70px 24px}.home-copy h2{font-size:72px}.home-orbit{width:230px;margin-left:-115px}.home-release-grid{grid-template-columns:1fr}.home-releases,.home-artists{padding:50px 20px}.home-releases>header{align-items:start;flex-direction:column}.home-artist-portal{grid-template-columns:28px 64px 1fr;padding:16px}.portal-avatar{width:60px;height:60px}.home-artist-portal>i{display:none}}

/* ─ instagram iş kartı: renk dolgusu + flip ─ */
.instagram-project-card{width:230px;min-width:0;cursor:pointer;padding:0;perspective:1400px}
.instagram-project-card.active-in{transform:translateY(0)}
.instagram-card-inner{position:relative;width:100%;min-height:232px;transition:transform .6s var(--ease);transform-style:preserve-3d;z-index:1}
.instagram-project-card.flipped .instagram-card-inner{transform:rotateY(180deg)}
.instagram-card-face{position:absolute;inset:0;padding:18px 20px;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;overflow:hidden}
.instagram-card-fill{position:absolute;inset:-45%;background:var(--ig-color,#c96a4d);transform:translate(-125%,125%) rotate(-10deg);transition:transform .55s var(--ease);z-index:0;pointer-events:none}
.instagram-project-card.focus .instagram-card-fill{transform:translate(0,0) rotate(-10deg)}
.instagram-card-face.front>*:not(.instagram-card-fill){position:relative;z-index:1}
.instagram-project-card.focus .instagram-card-face.front{color:#fff}
/* renk dolgusu geçişi yalnızca gerçek fare imleci olan cihazlarda: dokunmatikte "yapışan hover" olarak kalıyordu */
@media(hover:hover) and (pointer:fine){
  .instagram-project-card:hover .instagram-card-fill{transform:translate(0,0) rotate(-10deg)}
  .instagram-project-card:hover .instagram-card-face.front{color:#fff}
}
.instagram-card-face.back{transform:rotateY(180deg);justify-content:center}
.instagram-card-inspect{align-self:flex-start;margin-top:auto;font-family:var(--f-mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;border:1px solid currentColor;padding:7px 14px;opacity:.7;transition:opacity .3s,background .3s}
.instagram-card-inspect:hover{opacity:1;background:rgba(255,255,255,.18)}
.instagram-card-face.back h4{font-family:var(--f-display);font-weight:700;font-size:16px;margin:6px 0 8px}
.instagram-card-flipback{position:absolute;top:10px;left:10px;width:26px;height:26px;border:var(--hair);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;opacity:.7;transition:opacity .3s,transform .3s;z-index:2}
.instagram-card-flipback:hover{opacity:1;transform:rotate(-25deg)}
/* satırlar SVG uçlarına hizalı: %16.5 / %41 / %71 — dört sütun: %1 / %26 / sağ %26 / sağ %1 */
.instagram-a{left:1%;top:16.5%}.instagram-b{left:26%;top:15%}.instagram-c{right:26%;top:15%}.instagram-d{right:1%;top:16.5%}
.instagram-e{left:1%;top:41.5%}.instagram-f{left:26%;top:39.5%}.instagram-g{right:26%;top:39.5%}.instagram-h{right:1%;top:41.5%}
.instagram-i{left:1%;top:69.5%}.instagram-j{left:26%;top:72%}.instagram-k{right:26%;top:72%}.instagram-l{right:1%;top:69.5%}
@media(max-width:1120px){
  .instagram-work-network{height:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
  .instagram-lines{display:none}
  .instagram-project-card{position:static;width:100%}
}
@media(max-width:960px){
  .youtube-work-network{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .instagram-work-network{grid-template-columns:1fr 1fr}
  .youtube-lines{display:none}
  .youtube-project-card{position:static;width:100%;min-width:0}
}
@media(max-width:620px){
  .youtube-work-network,.instagram-work-network{grid-template-columns:1fr}
  /* kartlarda alt yazılar sıkışık duruyordu — daha fazla boşluk ve okunabilirlik */
  .youtube-project-card,.instagram-project-card{padding:16px 18px 20px}
  .youtube-project-card p,.instagram-project-card p{font-size:13px;line-height:1.6}
}
@media(max-width:1120px){.youtube-section-label{grid-column:1/-1}}

/* Instagram detay */
.instagram-focus-card,.youtube-focus-card{border:var(--hair);padding:22px 26px;max-width:760px;margin-bottom:22px}
.instagram-focus-card h3,.youtube-focus-card h3{font-family:var(--f-display);font-weight:700;font-size:24px;margin:12px 0 8px}
.instagram-focus-card p,.youtube-focus-card p{font-size:14px;line-height:1.6;font-weight:300;opacity:.8}
.instagram-type-tabs{display:flex;border:var(--hair);width:fit-content;margin-bottom:26px}
.instagram-type{font-family:var(--f-mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;padding:11px 22px;border-right:var(--hair);transition:all .3s}
.instagram-type:last-child{border-right:none}
.stage.dark .instagram-type.active{background:var(--paper);color:var(--ink)}
.stage.light .instagram-type.active{background:var(--ink);color:var(--paper)}
.instagram-media-grid,.tiktok-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.instagram-media-card,.tiktok-card{border:var(--hair);padding:14px;opacity:0;transform:translateY(16px);transition:all .55s var(--ease);transition-delay:var(--delay,0ms)}
.instagram-media-card.active-in,.tiktok-card.active-in{opacity:1;transform:none}
.instagram-media-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.instagram-media-head span{font-family:var(--f-mono);font-size:11px;opacity:.5}
.instagram-media-head strong{font-family:var(--f-display);font-weight:700;font-size:14px}
.instagram-phone-frame{position:relative;border:var(--hair);aspect-ratio:9/15.5;overflow:hidden;background:rgba(128,128,128,.06)}
.instagram-phone-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:none;background:#fff}
/* Gönderi linki olmayan kayıtlar (arşivden aktarılan tasarımlar): görselin kendisi.
   Kartlar eşit oranda; tasarım kırpılmadan içeri sığdırılır (contain). */
.instagram-phone-frame.is-image{aspect-ratio:4/5;display:block;width:100%;padding:0;cursor:zoom-in;border:var(--hair);color:inherit}
.instagram-phone-frame.is-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;transition:transform .4s var(--ease)}
.instagram-phone-frame.is-image:hover img{transform:scale(1.03)}
.instagram-phone-frame.is-empty{display:flex;align-items:center;justify-content:center;text-align:center;padding:0 14px}
.instagram-phone-frame.is-empty span{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.4}
.frame-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--f-display);font-weight:700;font-size:19px;opacity:.35;line-height:1.3}
.instagram-open-link{display:inline-block;margin-top:11px;font-family:var(--f-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;border-bottom:var(--hair);padding-bottom:2px;opacity:.75;transition:opacity .3s;background:none;border-top:none;border-left:none;border-right:none;color:inherit;cursor:pointer}
.instagram-open-link:hover{opacity:1}

/* ═══ WEB PROJESİ: CANLI SİTE ÖNİZLEMESİ ═══
   Sosyal medya kaydı olmayan projelerde iş zaten sitenin kendisidir. */
.site-preview{margin-top:34px}
.site-preview[hidden]{display:none}
.site-preview-frame{border:var(--hair);overflow:hidden;margin-top:14px}
.site-preview-bar{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:var(--hair)}
.site-preview-bar .dot{width:8px;height:8px;border-radius:50%;border:1px solid currentColor;opacity:.4;flex-shrink:0}
.site-preview-url{flex:1;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;opacity:.65;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:8px}
.site-preview-open{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;border:var(--hair);padding:7px 12px;white-space:nowrap;transition:background .2s,color .2s}
.stage.dark .site-preview-open:hover{background:var(--paper);color:var(--ink)}
.stage.light .site-preview-open:hover{background:var(--ink);color:var(--paper)}
.site-preview-body{position:relative;height:clamp(360px,58vh,620px);background:#fff}
.site-preview-body iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.site-preview-fallback{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;text-align:center;padding:24px;background:var(--ink);color:var(--paper)}
.site-preview-fallback.show{display:flex}
.site-preview-fallback p{font-size:13.5px;font-weight:300;opacity:.75}
.site-preview-fallback a{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  border:1px solid rgba(244,241,234,.4);padding:11px 16px;text-decoration:none}
.site-preview-fallback a:hover{background:var(--paper);color:var(--ink)}
@media(max-width:640px){ .site-preview-body{height:clamp(300px,50vh,420px)} .site-preview-open{display:none} }

/* ═══ SAYFA İÇİ GÖRSEL BÜYÜTECİ ═══ */
.lightbox{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;
  background:rgba(8,8,8,.94);padding:clamp(20px,5vw,60px);cursor:zoom-out}
.lightbox.show{display:flex;animation:lb-in .28s var(--ease)}
@keyframes lb-in{from{opacity:0}to{opacity:1}}
.lightbox-figure{max-width:min(1100px,100%);max-height:100%;display:flex;flex-direction:column;gap:14px;cursor:default;min-height:0}
.lightbox-stage{min-height:0;display:flex;align-items:center;justify-content:center;cursor:zoom-out}
.lightbox-figure img{max-width:100%;max-height:calc(100vh - 190px);object-fit:contain;display:block;margin:0 auto;
  border:1px solid rgba(244,241,234,.16)}
/* Gerçek boyut (1:1): görsel kendi piksel ölçüsünde basılır, sahne kaydırılır. */
.lightbox.zoomed .lightbox-stage{overflow:auto;justify-content:flex-start;align-items:flex-start;cursor:default}
.lightbox.zoomed .lightbox-figure{max-width:100%;width:100%;flex:1}
.lightbox.zoomed .lightbox-figure img{max-width:none;max-height:none;margin:auto}
.lightbox figcaption{display:flex;align-items:center;justify-content:space-between;gap:18px;color:#f4f1ea;flex-wrap:wrap}
.lightbox-title{font-family:var(--f-display);font-weight:700;font-size:15px}
.lightbox-side{display:flex;align-items:center;gap:14px}
.lightbox-zoom,.lightbox-src{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;
  color:#f4f1ea;background:transparent;border:1px solid rgba(244,241,234,.28);padding:7px 11px;cursor:pointer;
  text-decoration:none;transition:background .2s,color .2s;white-space:nowrap}
.lightbox-zoom:hover,.lightbox-src:hover{background:#f4f1ea;color:#101010}
.lightbox-count{font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;opacity:.5}
.lightbox-close,.lightbox-nav{position:absolute;background:transparent;border:1px solid rgba(244,241,234,.28);
  color:#f4f1ea;cursor:pointer;display:grid;place-items:center;transition:background .2s,color .2s}
.lightbox-close{top:20px;right:20px;width:42px;height:42px;font-size:22px;line-height:1}
.lightbox-nav{top:50%;transform:translateY(-50%);width:46px;height:46px;font-size:18px}
.lightbox-nav.prev{left:20px}
.lightbox-nav.next{right:20px}
.lightbox-close:hover,.lightbox-nav:hover{background:#f4f1ea;color:#101010}
.lightbox.single .lightbox-nav{display:none}
@media(max-width:640px){
  .lightbox-nav{width:38px;height:38px}
  .lightbox-figure img{max-height:calc(100vh - 220px)}
}
.instagram-empty{grid-column:1/-1;border:var(--hair);padding:34px;text-align:center}
.instagram-empty h4{font-family:var(--f-mono);letter-spacing:.3em;font-size:12px;margin-bottom:10px;opacity:.6}
.instagram-empty p{font-weight:300;opacity:.7;font-size:14px}
.instagram-load-more{grid-column:1/-1;justify-self:center;border:var(--hair);background:transparent;color:inherit;padding:14px 22px;font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background .25s,color .25s}
.instagram-load-more span{margin-left:10px;opacity:.55}
.stage.dark .instagram-load-more:hover{background:var(--paper);color:var(--ink)}
.stage.light .instagram-load-more:hover{background:var(--ink);color:var(--paper)}
.tiktok-note{font-size:12.5px;font-weight:300;line-height:1.5;opacity:.72;margin-top:10px}
.tiktok-page .tiktok-grid{margin-top:6px}

/* YouTube galeri */
.youtube-gallery-wrap{position:relative;height:660px}
.youtube-gallery-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.youtube-gallery{position:relative;width:100%;height:100%;z-index:1}
.youtube-gallery-item{position:absolute;width:min(280px,27vw);min-width:212px;border:var(--hair);padding:16px 18px;background:inherit;opacity:0;transform:translateY(16px);transition:all .5s var(--ease);z-index:2;overflow:hidden}
.youtube-gallery-item.active-in{opacity:1;transform:none}
.youtube-gallery-item.focus,.youtube-gallery-item:hover{background:rgba(128,128,128,.1)}
.youtube-mini-screen{font-family:var(--f-mono);font-size:12px;border:var(--hair);width:56px;height:36px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;opacity:.7}
.youtube-gallery-item h4{font-family:var(--f-display);font-weight:700;font-size:15.5px;line-height:1.18;margin-bottom:6px;overflow-wrap:anywhere}
.youtube-gallery-item p{font-size:12px;line-height:1.55;font-weight:300;opacity:.72}
/* çizgi uçları: üst sıra %21-24, alt sıra %72-82 */
.gallery-a{left:2%;top:calc(24% - 80px)}.gallery-b{left:50%;top:calc(18% - 60px);transform:translate(-50%,16px)}
.gallery-b.active-in{transform:translate(-50%,0)}
.gallery-c{right:2%;top:calc(24% - 80px)}.gallery-d{left:5%;top:calc(81% - 90px)}.gallery-e{left:50%;top:calc(92% - 80px);transform:translate(-50%,16px)}
.gallery-e.active-in{transform:translate(-50%,0)}
.gallery-f{right:5%;top:calc(81% - 90px)}
@media(max-width:860px){
  .youtube-gallery-wrap{min-height:0}
  .youtube-gallery-lines{display:none}
  .youtube-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .youtube-gallery-item{position:static;width:100%;min-width:0}
  .gallery-b,.gallery-b.active-in,.gallery-e,.gallery-e.active-in{transform:none}
}
@media(max-width:560px){
  .youtube-gallery{grid-template-columns:1fr}
  /* kart içi yazılar sıkışık/kaymış duruyordu — daha fazla iç boşluk ve okunabilirlik */
  .youtube-gallery-item{padding:16px 18px 20px}
  .youtube-gallery-item p{font-size:13px;line-height:1.6}
}

/* YouTube gerçek video / Shorts galerisi */
.youtube-services-block{margin:0 0 26px}
.youtube-services-label{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.6;display:block;margin-bottom:10px}
.youtube-services-tags{display:flex;flex-wrap:wrap;gap:8px}
.youtube-services-tags span{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.75;border:var(--hair);padding:6px 12px;cursor:default}
.youtube-services-tags button{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.85;border:var(--hair);padding:6px 12px;cursor:pointer;background:transparent;color:inherit;transition:background .2s}
.youtube-services-tags button:hover{background:rgba(128,128,128,.15)}
.youtube-other-channels{margin-top:38px}
.youtube-detail-foot{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:34px}
.youtube-related-service{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.7;text-decoration:none}
.youtube-related-service:hover{opacity:1}
.youtube-media-tabs{display:flex;width:fit-content;border:var(--hair);margin:0 0 22px}
.youtube-media-tabs[hidden]{display:none}
.youtube-media-tabs:has(.youtube-services-block){display:block;width:auto;border:none;margin:0 0 30px}
.youtube-media-tabs button{padding:11px 20px;border-right:var(--hair);font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.youtube-media-tabs button:last-child{border-right:none}
.youtube-media-tabs button span{margin-left:7px;opacity:.55}
.youtube-media-tabs .youtube-category-title{display:flex;align-items:center;gap:12px;padding:10px 18px;font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.youtube-media-tabs .youtube-category-title span{opacity:.55;white-space:nowrap}
.youtube-category-back{white-space:nowrap}
.youtube-gallery-item{color:inherit;text-align:left}
.youtube-gallery-item.has-media{cursor:pointer}
.youtube-gallery-item:disabled{color:inherit;cursor:default}
.youtube-category-count{display:inline-block;margin-top:12px;padding-top:9px;border-top:var(--hair);font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;opacity:.72}
.stage.dark .youtube-media-tabs button.active{background:var(--paper);color:var(--ink)}
.stage.light .youtube-media-tabs button.active{background:var(--ink);color:var(--paper)}
.youtube-gallery-wrap.media-mode{height:auto;min-height:0}
.youtube-gallery-wrap.media-mode .youtube-gallery-lines{display:none}
.youtube-gallery-wrap.media-mode .youtube-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;height:auto}
.youtube-media-card{border:var(--hair);min-width:0;overflow:hidden}
.youtube-media-card a{display:block;text-decoration:none;height:100%}
.youtube-media-thumb{position:relative;aspect-ratio:16/9;overflow:hidden;background:#000}
.youtube-media-thumb img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s var(--ease)}
.youtube-media-card:hover img{transform:scale(1.035)}
.youtube-play-mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,.72);color:#fff;font-size:15px;padding-left:2px}
.youtube-media-kind{position:absolute;right:9px;bottom:9px;background:rgba(0,0,0,.78);color:#fff;padding:5px 7px;font-family:var(--f-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase}
.youtube-media-copy{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:13px 14px 15px;align-items:start}
.youtube-media-copy>span{font-family:var(--f-mono);font-size:10px;opacity:.5;padding-top:3px}
.youtube-media-copy h4{font-family:var(--f-display);font-size:15px;line-height:1.25;overflow-wrap:anywhere}
.youtube-media-more{grid-column:1/-1;justify-self:center;border:var(--hair);padding:13px 21px;font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.youtube-media-more span{margin-left:9px;opacity:.55}
.stage.dark .youtube-media-card{background:var(--ink)}
.stage.light .youtube-media-card{background:var(--paper)}
@media(max-width:620px){.youtube-gallery-wrap.media-mode .youtube-gallery{grid-template-columns:1fr}.youtube-media-tabs{width:100%}.youtube-media-tabs button{flex:1}.youtube-media-tabs:has(.youtube-services-block){width:auto}}

/* Ağ kartları çizgilerin üstünde, tamamen opak bir yüzeyde kalır. */
.node,.hub-card,.work-card,.social-card,.youtube-project-card,.instagram-project-card,.youtube-gallery-item,.portfolio-card,.onmart-brand-card{z-index:2;overflow:hidden;overflow-wrap:anywhere}
.stage.dark .node,.stage.dark .hub-card,.stage.dark .work-card,.stage.dark .social-card,.stage.dark .youtube-project-card,.stage.dark .instagram-project-card,.stage.dark .youtube-gallery-item,.stage.dark .portfolio-card,.stage.dark .onmart-brand-card{background:var(--ink)}
.stage.light .node,.stage.light .hub-card,.stage.light .work-card,.stage.light .social-card,.stage.light .youtube-project-card,.stage.light .instagram-project-card,.stage.light .youtube-gallery-item,.stage.light .portfolio-card,.stage.light .onmart-brand-card{background:var(--paper)}
.stage.dark .node:hover,.stage.dark .hub-card:hover,.stage.dark .work-card:hover,.stage.dark .social-card:hover,.stage.dark .youtube-project-card:hover,.stage.dark .youtube-gallery-item:hover,.stage.dark .portfolio-card:hover,.stage.dark .onmart-brand-card:hover{background:var(--ink-soft)}
.stage.light .node:hover,.stage.light .hub-card:hover,.stage.light .work-card:hover,.stage.light .social-card:hover,.stage.light .youtube-project-card:hover,.stage.light .youtube-gallery-item:hover,.stage.light .portfolio-card:hover,.stage.light .onmart-brand-card:hover{background:var(--paper-deep)}

/* ═══ 03 HAKKIMIZDA ═══ */
.about-stats{display:grid;grid-template-columns:repeat(4,1fr);border:var(--hair);margin:30px 0 34px;max-width:920px}
.stat-block{padding:26px 20px;border-right:var(--hair);text-align:center;opacity:0;transform:translateY(14px);transition:all .6s var(--ease);transition-delay:var(--delay,0ms)}
.about-page.show .stat-block{opacity:1;transform:none}
.stat-block:last-child{border-right:none}
.stat-block strong{font-family:var(--f-display);font-weight:800;font-size:clamp(30px,4.5vw,52px);display:block;line-height:1}
.stat-block strong::after{content:'+';font-size:.55em;vertical-align:top;opacity:.6}
.stat-block span{font-family:var(--f-mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;opacity:.6;display:block;margin-top:8px}
@media(max-width:760px){.about-stats{grid-template-columns:1fr 1fr}.stat-block:nth-child(2){border-right:none}.stat-block:nth-child(1),.stat-block:nth-child(2){border-bottom:var(--hair)}}
.about-manifest{max-width:920px;border-top:var(--hair)}
.manifest-row{display:grid;grid-template-columns:52px 240px 1fr;gap:20px;padding:22px 4px;border-bottom:var(--hair);opacity:0;transform:translateY(12px);transition:all .6s var(--ease);transition-delay:calc(var(--delay,0ms) + 300ms)}
.about-page.show .manifest-row{opacity:1;transform:none}
.m-no{font-family:var(--f-mono);font-size:13px;opacity:.5}
.manifest-row h3{font-family:var(--f-display);font-weight:700;font-size:18px;letter-spacing:-.01em}
.manifest-row p{font-size:14px;font-weight:300;line-height:1.7;opacity:.8}
@media(max-width:760px){.manifest-row{grid-template-columns:40px 1fr}.manifest-row p{grid-column:2}}

/* ═══ 04 BLOG ═══ */
.blog-list{border-top:var(--hair);margin-top:24px;max-width:1000px}
.blog-row{display:grid;grid-template-columns:56px 1fr auto 40px;align-items:center;gap:18px;padding:20px 6px;border-bottom:var(--hair);text-decoration:none;opacity:0;transform:translateX(-12px);transition:opacity .55s var(--ease),transform .55s var(--ease),padding .3s var(--ease),background .3s;transition-delay:var(--delay,0ms)}
.blog-page.show .blog-row{opacity:1;transform:none}
.blog-row:hover{padding-left:20px;background:rgba(128,128,128,.08);transition-delay:0ms}
.blog-no{font-family:var(--f-mono);font-size:12px;opacity:.5}
.blog-body strong{font-family:var(--f-display);font-weight:700;font-size:clamp(16px,2vw,21px);display:block;letter-spacing:-.01em}
.blog-body em{font-style:normal;font-weight:300;font-size:13px;opacity:.7;display:block;margin-top:4px;line-height:1.5}
.blog-date{font-family:var(--f-mono);font-size:11px;opacity:.55;white-space:nowrap}
.blog-row .file-arrow{justify-self:end}
.blog-row:hover .file-arrow{transform:translate(4px,-4px)}
@media(max-width:640px){.blog-row{grid-template-columns:40px 1fr 32px}.blog-date{display:none}}

/* ═══ 05 İLETİŞİM ═══ */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:26px 0;max-width:1000px}
.contact-card{border:var(--hair);padding:20px 22px;text-decoration:none;display:block;position:relative;opacity:0;transform:translateY(14px);transition:all .55s var(--ease);transition-delay:var(--delay,0ms);background:inherit}
.contact-page.show .contact-card{opacity:1;transform:none}
a.contact-card:hover{background:rgba(128,128,128,.1)}
a.contact-card:hover .node-go{opacity:.8;transform:none}
.contact-key{font-family:var(--f-mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;opacity:.55;display:block;margin-bottom:9px}
.contact-val{font-family:var(--f-display);font-weight:700;font-size:clamp(16px,1.8vw,20px);display:block;word-break:break-word}
/* ═══ İLETİŞİM: 3D KONUM HARİTASI ═══
   Gerçek harita gömülü kare olarak ancak istendiğinde yüklenir; varsayılan görünüm
   site temasıyla uyumlu, eğik perspektifli bir konum sahnesidir. */
.geo-block{margin:52px 0 44px;padding-top:34px;border-top:var(--hair)}
.geo-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.geo-coords{font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;opacity:.45}
/* ═══ 3D KATLANMIŞ HARİTA SAHNESİ ═══ */
/* Sahne oranı kaptan gelir; JS viewBox'ı buna göre kurar, böylece dar ekranda
   harita yatık bir şeride sıkışmak yerine dikey alanı kullanır. */
.geo-scene{--geo-pad:clamp(14px,2.4vw,30px);position:relative;overflow:hidden;border:var(--hair);
  padding:var(--geo-pad);aspect-ratio:1000/640;cursor:grab;touch-action:none;user-select:none}
.geo-scene.dragging{cursor:grabbing}
.geo-place-peek{position:absolute;z-index:8;left:50%;bottom:18px;width:min(470px,calc(100% - 36px));
  min-height:74px;display:grid;grid-template-columns:86px minmax(0,1fr) auto;align-items:center;gap:13px;
  padding:8px 12px 8px 8px;border:1px solid rgba(244,241,234,.32);background:rgba(10,10,10,.92);
  color:#f4f1ea;box-shadow:0 18px 48px rgba(0,0,0,.38);backdrop-filter:blur(12px);
  transform:translate(-50%,14px);opacity:0;transition:opacity .2s ease,transform .25s var(--ease);touch-action:manipulation}
.geo-place-peek[hidden]{display:none}
.geo-place-peek.show{opacity:1;transform:translate(-50%,0)}
.geo-place-peek img{display:block;width:86px;height:58px;object-fit:cover;border:1px solid rgba(244,241,234,.24);pointer-events:none}
.geo-place-peek span{display:flex;min-width:0;flex-direction:column;gap:5px}
.geo-place-peek small{font:500 7px/1 var(--f-mono);letter-spacing:.2em;opacity:.55}
.geo-place-peek strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 14px/1.1 var(--f-display)}
.geo-peek-open{min-height:42px;padding:0 14px;border:0;background:#f2c91d;color:#111;white-space:nowrap;
  font:700 9px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.geo-peek-open b{font-size:14px;margin-left:5px}
.geo-peek-close{position:absolute;right:-9px;top:-9px;width:25px;height:25px;border:1px solid rgba(244,241,234,.4);
  border-radius:50%;background:#111;color:#fff;font:400 16px/1 sans-serif;cursor:pointer}
.stage.light .geo-place-peek{border-color:rgba(16,16,16,.28);background:rgba(244,241,234,.94);color:#111;box-shadow:0 18px 48px rgba(30,28,22,.22)}
.stage.light .geo-place-peek img{border-color:rgba(16,16,16,.18)}
.geo-hint{position:absolute;left:16px;bottom:14px;font-family:var(--f-mono);font-size:9px;letter-spacing:.24em;text-transform:uppercase;opacity:.35;pointer-events:none}
.geo-hint-mobile{display:none}
.geo-controls{position:absolute;z-index:4;left:14px;top:14px;display:flex;border:var(--hair);background:rgba(12,12,12,.68);backdrop-filter:blur(8px)}
.stage.light .geo-controls{background:rgba(244,241,234,.78)}
.geo-controls button{display:grid;place-items:center;width:36px;height:34px;padding:0;border:0;border-right:var(--hair);background:transparent;color:inherit;font:500 17px/1 var(--f-mono);cursor:pointer;transition:background .18s,color .18s}
.geo-controls button:last-child{border-right:0}
.stage.dark .geo-controls button:hover,.stage.dark .geo-controls button:focus-visible{background:var(--paper);color:var(--ink)}
.stage.light .geo-controls button:hover,.stage.light .geo-controls button:focus-visible{background:var(--ink);color:var(--paper)}
.geo-walk-toggle{display:none;position:absolute;z-index:5;right:10px;top:61px;border:var(--hair);padding:9px 11px;
  background:rgba(12,12,12,.78);backdrop-filter:blur(8px);color:inherit;font:600 8px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.stage.light .geo-walk-toggle{background:rgba(244,241,234,.86)}
.geo-walk-toggle[aria-pressed="true"]{background:#f2c91d;color:#111;border-color:#f2c91d}
.geo-walk-pad{display:none;position:absolute;z-index:5;right:12px;bottom:28px;width:108px;height:108px;
  grid-template:repeat(3,34px)/repeat(3,34px);gap:3px}
.geo-walk-pad button{display:grid;place-items:center;padding:0;border:var(--hair);border-radius:50%;background:rgba(12,12,12,.82);
  color:inherit;font:600 16px/1 var(--f-mono);cursor:pointer;backdrop-filter:blur(8px)}
.stage.light .geo-walk-pad button{background:rgba(244,241,234,.9)}
.geo-walk-pad [data-geo-step="up"]{grid-area:1/2}.geo-walk-pad [data-geo-step="left"]{grid-area:2/1}
.geo-walk-pad [data-geo-step="right"]{grid-area:2/3}.geo-walk-pad [data-geo-step="down"]{grid-area:3/2}
/* pusula — sahne döndükçe kuzey iğnesi de döner */
.geo-compass{position:absolute;top:16px;right:16px;width:42px;height:42px;border:var(--hair);border-radius:50%;
  display:grid;place-items:center;opacity:.55;pointer-events:none;transform:rotate(var(--rot,0deg));transition:transform .12s linear}
.geo-compass i{position:absolute;top:4px;left:50%;margin-left:-3px;width:0;height:0;
  border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:9px solid currentColor}
.geo-compass b{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;margin-top:5px}
.geo-scene.dragging .geo-hint{opacity:0}
.stage.dark .geo-scene{background:radial-gradient(120% 100% at 50% 20%,#161616,#0c0c0c)}
.stage.light .geo-scene{background:radial-gradient(120% 100% at 50% 20%,#f7f5f0,#e6e2d7)}
.geo-3d{display:block;width:100%;height:100%}

/* zemin gölgeleri — binaların altında tek katman, kütleleri zemine oturtur */
.gr-shadows{opacity:.55}
.stage.light .gr-shadows{opacity:.3}
.gr-shadow{fill:#000;stroke:none}

/* sokaklar — OSM çizgilerinden kalın kontur olarak çizilir */
.st-face{fill:none;stroke-linecap:round;stroke-linejoin:round}
.stage.dark .st-face{stroke:#0c0c0c}
.stage.light .st-face{stroke:#d5cfc2}
.st-dash{fill:none;stroke:currentColor;stroke-dasharray:9 13;stroke-linecap:round;opacity:.26}
.st-name{font-family:var(--f-mono);font-size:15px;letter-spacing:.22em;fill:currentColor;opacity:.55;text-anchor:middle}

/* ── Bina yüzeyleri ──────────────────────────────────────────────────────────
   Duvarlar iki sabit gri yerine sürekli tonlanır: JS her cephenin açısından bir
   --s (0–1 aydınlık) değeri hesaplar, renk burada iki uç arasında karışır.
   Böylece bina döndükçe ışık da doğal biçimde kayar. */
.stage.dark  .bl{--roof:#9c988b;--wall-lit:#837e70;--wall-dark:#45423b}
.stage.light .bl{--roof:#e8e4da;--wall-lit:#cfc9bb;--wall-dark:#a49e90}
/* Malzeme tonları — mahalle tek bir gri kütle gibi durmasın diye beş varyant.
   Kirli sarı, tuğla, kireç, taş ve kum: Fatsa sokak dokusuna yakın, kısık renkler. */
.stage.dark  .bl.m1{--roof:#a1907f;--wall-lit:#877565;--wall-dark:#4a3f36}
.stage.dark  .bl.m2{--roof:#8f9491;--wall-lit:#757b78;--wall-dark:#3d4240}
.stage.dark  .bl.m3{--roof:#a8a496;--wall-lit:#8b8779;--wall-dark:#4b4841}
.stage.dark  .bl.m4{--roof:#948577;--wall-lit:#7a6d60;--wall-dark:#423a33}
.stage.light .bl.m1{--roof:#e8dcd0;--wall-lit:#d0bfae;--wall-dark:#a89583}
.stage.light .bl.m2{--roof:#dfe3e0;--wall-lit:#c4cac6;--wall-dark:#9aa19d}
.stage.light .bl.m3{--roof:#efebe0;--wall-lit:#d6d1c2;--wall-dark:#aba695}
.stage.light .bl.m4{--roof:#e0d6c9;--wall-lit:#c6b9a8;--wall-dark:#9c8f7e}
/* Dükkan blokları — arka plandan bir ton parlak, malzeme varyantını ezerler */
.stage.dark  .bl.is-shop{--roof:#ddd8ca;--wall-lit:#b5b0a1;--wall-dark:#6b6759}
.stage.light .bl.is-shop{--roof:#fdfcf8;--wall-lit:#ddd7c8;--wall-dark:#b0a999}
.bl-top{fill:var(--roof)}
.bl-wall{fill:var(--wall-dark)}
/* Kırma çatı yüzeyleri: çatı tonundan duvar tonuna doğru eğime göre koyulaşır,
   böylece iki yamaç birbirinden ayrılır ama ikisi de "çatı" olarak okunur. */
.bl-roof{fill:var(--roof)}
@supports (color: color-mix(in srgb, #000, #fff)){
  .bl-wall{fill:color-mix(in srgb, var(--wall-lit) calc(var(--s,.5) * 100%), var(--wall-dark))}
  .bl-roof{fill:color-mix(in srgb, var(--roof) calc(var(--s,.6) * 100%), var(--wall-lit))}
}
.bl-top,.bl-wall,.bl-roof{stroke:#0a0a0a;stroke-width:.8;stroke-opacity:.35;stroke-linejoin:round}
/* Cephe detayları — malzemeden bağımsız koyu katmanlar, her tonda doğru oturur:
   zemin kat vitrini + üst kat pencereleri, ve çatı hizasında saçak bandı. */
.bl-win,.bl-eave{stroke:none;fill:#000}
.bl-win{opacity:.26}
.bl-eave{opacity:.13}
.bl-facade{opacity:.98;filter:saturate(.94) contrast(1.03);cursor:zoom-in}
.bl-facade-frame{fill:none;stroke:#f4f1ea;stroke-width:1.15;stroke-opacity:.48;pointer-events:none}
.stage.light .bl-facade-frame{stroke:#151515;stroke-opacity:.3}
.bl.is-focused .bl-facade{filter:saturate(1.05) contrast(1.05);opacity:1}
.bl.is-focused .bl-facade-frame{stroke:#f2c91d;stroke-width:2.2;stroke-opacity:1}
.stage.light .bl-win{opacity:.14}
.stage.light .bl-eave{opacity:.08}
.bl-mast{stroke:currentColor;stroke-width:1.6;opacity:.6}
.bl-beacon{fill:currentColor;opacity:.9;animation:bl-beacon 2.2s ease-in-out infinite}
@keyframes bl-beacon{0%,100%{opacity:.9;r:5}50%{opacity:.35;r:7}}
/* etiket kılavuzları */
.lb-leader{stroke:currentColor;stroke-width:1;opacity:.4}
.lb-dot{fill:currentColor;opacity:.65}
/* komşu referans binası biraz öne çıkar */
/* OnMart binası: sahnedeki en yüksek kontrast */
.stage.dark  .bl.is-onmart{--roof:#f4f1ea;--wall-lit:#d2cdbf;--wall-dark:#8d8879}
.stage.light .bl.is-onmart{--roof:#2b2b2b;--wall-lit:#1f1f1f;--wall-dark:#0b0b0b}
.bl.is-onmart{animation:bl-pulse 3.4s ease-in-out infinite}
@keyframes bl-pulse{0%,100%{opacity:1}50%{opacity:.82}}

/* Yüzen etiketler — konumları SVG viewBox'ının yüzdesi olarak verildiği için
   bu katman da tam SVG kutusuna oturmalı, yoksa kılavuz çizgileri etiketten kayar. */
.geo-labels{position:absolute;inset:var(--geo-pad);pointer-events:none}
.geo-tag[hidden]{display:none}
.geo-tag{position:absolute;left:var(--x);top:var(--y);display:flex;align-items:center;gap:8px;white-space:nowrap;
  padding:0;border:0;background:transparent;color:inherit;cursor:pointer;pointer-events:auto;
  opacity:0;animation:geo-tag-in .7s var(--ease) forwards}
.geo-tag:nth-child(1){animation-delay:.20s}
.geo-tag:nth-child(2){animation-delay:.30s}
.geo-tag:nth-child(3){animation-delay:.40s}
.geo-tag:nth-child(4){animation-delay:.50s}
.geo-tag:nth-child(5){animation-delay:.60s}
.geo-tag:nth-child(6){animation-delay:.70s}
.geo-tag:nth-child(7){animation-delay:.80s}
.geo-tag.is-main{animation-delay:.15s;z-index:2}
@keyframes geo-tag-in{to{opacity:1;transform:none}}
/* pill, kılavuz çizginin ucuna oturur */
.geo-tag{transform:translate(-50%,-100%) translateY(6px)}
@keyframes geo-tag-in{to{opacity:1;transform:translate(-50%,-100%)}}
/* nokta artık SVG tarafında (kılavuz ucu) — HTML'deki gizlenir */
.geo-tag i{display:none}
.geo-tag b{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:400;
  padding:8px 13px;border-radius:999px}
.stage.dark .geo-tag b{background:#f4f1ea;color:#101010}
.stage.light .geo-tag b{background:#101010;color:#f4f1ea}
.geo-tag.is-main b{font-family:var(--f-display);font-size:14px;letter-spacing:.01em;text-transform:none;font-weight:700;padding:9px 16px}
.geo-tag:hover b,.geo-tag:focus-visible b{outline:2px solid currentColor;outline-offset:3px}
@media(max-width:760px){
  /* dar ekranda sahne dikeye döner: mahalle 200 px'lik şeride sıkışmasın */
  .geo-scene{aspect-ratio:1/1}
  .geo-tag b{font-size:8px;letter-spacing:.1em;padding:6px 9px}
  .geo-tag.is-main b{font-size:11px;padding:7px 11px}
  .geo-tag i{width:8px;height:8px}
  .geo-hint-desktop{display:none}
  .geo-hint-mobile{display:inline}
  .geo-hint{left:12px;right:12px;bottom:10px;font-size:7px;letter-spacing:.14em;text-align:center}
  .geo-controls{left:10px;top:10px}
  .geo-controls button{width:31px;height:31px;font-size:15px}
  .geo-walk-toggle{display:block}
  .geo-scene.is-walking .geo-walk-pad{display:grid}
  .geo-scene.is-walking .geo-hint{display:none}
  .geo-place-peek{bottom:12px;width:calc(100% - 24px);grid-template-columns:66px minmax(0,1fr) auto;gap:9px;padding:7px}
  .geo-place-peek img{width:66px;height:52px}
  .geo-place-peek strong{font-size:12px}
  .geo-peek-open{min-height:44px;padding:0 10px;font-size:8px;letter-spacing:.06em}
}
@media(max-width:390px){
  .geo-place-peek{grid-template-columns:56px minmax(0,1fr) 76px}
  .geo-place-peek img{width:56px;height:48px}
  .geo-peek-open{padding:0 7px;white-space:normal;line-height:1.25}
}
@media(max-width:460px){
  .geo-scene{aspect-ratio:4/5}
}

.geo-map{position:relative;margin-top:18px;height:clamp(320px,44vw,470px);overflow:hidden;border:var(--hair)}
.geo-map[hidden]{display:none}
.stage.dark .geo-map{background:#111}
.stage.light .geo-map{background:var(--paper-deep)}
.geo-map iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0}
/* gömülü harita site paletine çekilir */
.stage.dark .geo-map iframe{filter:grayscale(1) invert(.91) contrast(.88) brightness(.96)}
.stage.light .geo-map iframe{filter:grayscale(1) contrast(1.04)}
/* köşe nişanları — sitenin çerçeve motifi */
.geo-frame{position:absolute;inset:0;z-index:2;pointer-events:none}
.geo-frame::before,.geo-frame::after{content:'';position:absolute;width:16px;height:16px;border:1px solid currentColor;opacity:.55}
.geo-frame::before{top:10px;left:10px;border-right:none;border-bottom:none}
.geo-frame::after{bottom:10px;right:10px;border-left:none;border-top:none}

.geo-loading{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;opacity:.5}
/* Harita gelince JS bu katmanı hidden yapar; display kuralı attribute'u ezmesin. */
.geo-loading[hidden]{display:none}
.geo-dot{position:relative;width:11px;height:11px;border-radius:50%;background:currentColor}
.geo-dot i{position:absolute;inset:-8px;border-radius:50%;border:1px solid currentColor;animation:geo-ping 2.4s var(--ease) infinite}
@keyframes geo-ping{0%{transform:scale(.55);opacity:.9}100%{transform:scale(2.2);opacity:0}}

/* harita üzerinde duran ofis kartı */
.geo-card{position:absolute;left:18px;bottom:18px;z-index:3;max-width:min(300px,72%);padding:16px 18px;border:var(--hair);
  display:flex;flex-direction:column;gap:5px;backdrop-filter:blur(6px)}
.stage.dark .geo-card{background:rgba(16,16,16,.9)}
.stage.light .geo-card{background:rgba(244,241,234,.93)}
.geo-card-key{font-family:var(--f-mono);font-size:9px;letter-spacing:.28em;text-transform:uppercase;opacity:.5}
.geo-card strong{font-family:var(--f-display);font-weight:700;font-size:17px;line-height:1.15}
.geo-card-addr{font-size:12.5px;font-weight:300;opacity:.75}
.geo-card-link{margin-top:7px;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid;padding-bottom:3px;align-self:flex-start;opacity:.8;transition:opacity .2s}
.geo-card-link:hover{opacity:1}

.geo-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:20px}
.geo-address{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.55}
.geo-actions{display:flex;gap:8px;flex-wrap:wrap}
.geo-btn{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:11px 16px;border:var(--hair);background:transparent;color:inherit;cursor:pointer;transition:background .2s,color .2s;white-space:nowrap;text-decoration:none}
.stage.dark .geo-btn:hover,.stage.dark .geo-btn.primary{background:var(--paper);color:var(--ink)}
.stage.light .geo-btn:hover,.stage.light .geo-btn.primary{background:var(--ink);color:var(--paper)}
@media(max-width:640px){
  .geo-card{left:12px;right:12px;bottom:12px;max-width:none;padding:14px 15px}
  .geo-map{height:clamp(280px,64vw,360px)}
}
@media (prefers-reduced-motion: reduce){
  .geo-dot i,.bl.is-onmart,.bl-beacon{animation:none}
  .geo-tag{opacity:1;transform:translate(-50%,-140%);animation:none}
}

.contact-cta{display:inline-flex;align-items:center;gap:12px;border:var(--hair);padding:16px 26px;font-family:var(--f-display);font-weight:700;font-size:16px;margin-top:8px;transition:all .35s var(--ease)}
.stage.dark .contact-cta:hover{background:var(--paper);color:var(--ink)}
.stage.light .contact-cta:hover{background:var(--ink);color:var(--paper)}

/* ═══ 06 TEKLİF AL ═══ */
.quote-form{max-width:860px;margin-top:14px}
.hp-field{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.qf-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.qf-field{display:flex;flex-direction:column;gap:8px;opacity:0;transform:translateY(12px);transition:all .55s var(--ease);transition-delay:var(--delay,0ms)}
.quote-page.show .qf-field{opacity:1;transform:none}
.qf-field.full{grid-column:1/-1}
.qf-field span{font-family:var(--f-mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;opacity:.6}
.qf-field input,.qf-field select,.qf-field textarea{font-family:var(--f-body);font-size:16px;font-weight:300;background:transparent;border:none;border-bottom:var(--hair);color:inherit;padding:9px 2px;outline:none;transition:border-color .3s;border-radius:0;-webkit-appearance:none;appearance:none;resize:vertical}
.qf-field select option{background:var(--ink);color:var(--paper)}
.stage.light .qf-field select option{background:var(--paper);color:var(--ink)}
.qf-field input::placeholder,.qf-field textarea::placeholder{color:currentColor;opacity:.3}
.qf-field input:focus,.qf-field select:focus,.qf-field textarea:focus{border-bottom-width:2px}
.qf-foot{display:flex;align-items:center;gap:22px;margin-top:28px;flex-wrap:wrap}
.qf-submit{display:inline-flex;align-items:center;gap:12px;border:var(--hair);padding:16px 28px;font-family:var(--f-display);font-weight:700;font-size:16px;transition:all .35s var(--ease)}
.stage.dark .qf-submit:hover:not(:disabled){background:var(--paper);color:var(--ink)}
.stage.light .qf-submit:hover:not(:disabled){background:var(--ink);color:var(--paper)}
.qf-submit:disabled{opacity:.45;cursor:wait}
.qf-status{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;opacity:.85}
@media(max-width:680px){.qf-grid{grid-template-columns:1fr}}

/* ═══ BOŞ DURUM ═══ */
.empty-note{border:var(--hair);padding:40px;text-align:center;max-width:560px;margin-top:26px}
.empty-note span{font-family:var(--f-mono);display:block;font-size:18px;opacity:.4;margin-bottom:12px}
.empty-note p{font-weight:300;line-height:1.7;opacity:.75;font-size:14px}
/* Boş bölüm çıkmaz sokak olmasın: metnin içinden teklif sayfasına geçilir. */
.empty-note-link{font:inherit;color:inherit;background:transparent;border:0;padding:0;
  text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.empty-note-link:hover{opacity:.7}

/* ═══ TEKLİF FORMU: KVKK ONAYI ═══
   Form ad, telefon, e-posta ve mesaj topluyor; açık rıza olmadan gönderilemez
   (sunucu tarafında da doğrulanır, bkz. quote_submit.php). */
.qf-consent{display:flex;align-items:flex-start;gap:11px;margin:20px 0 4px;max-width:720px;
  font-size:13px;line-height:1.6;font-weight:300;opacity:0;transform:translateY(10px);
  animation:qf-rise .6s var(--ease) var(--delay,0ms) forwards;cursor:pointer}
.qf-consent input{appearance:none;flex-shrink:0;width:17px;height:17px;margin-top:2px;
  border:var(--hair);border-color:currentColor;background:transparent;cursor:pointer;
  display:grid;place-items:center;transition:background .2s,color .2s}
.qf-consent input::after{content:'✓';font-size:12px;line-height:1;opacity:0;transition:opacity .18s}
.qf-consent input:checked{background:currentColor}
.qf-consent input:checked::after{opacity:1;color:var(--ink)}
.stage.light .qf-consent input:checked::after{color:var(--paper)}
.qf-consent input:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.qf-consent span{opacity:.82}
.qf-consent a{text-decoration:underline;text-underline-offset:3px}
.qf-consent a:hover{opacity:.72}
@keyframes qf-rise{to{opacity:1;transform:none}}

/* ═══ YASAL METİN SAYFASI (KVKK) ═══
   Uzun okuma metni: sütun genişliği göz için sınırlanır, ritim başlıklarla kurulur. */
.legal-content{max-width:38em;margin-top:22px;font-size:15px;line-height:1.8;font-weight:300}
.legal-content p{opacity:.86;margin-bottom:1.35em}
.legal-content h3{font-family:var(--f-display);font-weight:800;font-size:clamp(19px,2.2vw,24px);
  line-height:1.25;letter-spacing:-.015em;margin:2.1em 0 .6em;padding-top:.75em;border-top:var(--hair)}
.legal-content h3:first-child{margin-top:0;padding-top:0;border-top:0}
.legal-content h4{font-family:var(--f-display);font-weight:700;font-size:17px;margin:1.6em 0 .4em}
.legal-content ul,.legal-content ol{margin:0 0 1.35em;padding-left:1.3em}
.legal-content li{margin-bottom:.5em;opacity:.86}
.legal-content li::marker{opacity:.45}
.legal-content strong{font-weight:600;opacity:1}
.legal-content blockquote{border-left:2px solid currentColor;padding-left:1.1em;margin:1.6em 0;opacity:.8}

/* ═══ PROJE İNCELEME ═══ */
.project{position:absolute;inset:0;z-index:30;opacity:0;visibility:hidden;transform:scale(.985);transition:all .5s var(--ease);padding:84px max(4vw,28px) 30px;display:flex;flex-direction:column}
.stage.dark .project{background:var(--ink)}
.stage.light .project{background:var(--paper)}
.project.show{opacity:1;visibility:visible;transform:none}
.project .close{position:absolute;top:24px;right:30px;font-size:30px;width:48px;height:48px;border:var(--hair);display:flex;align-items:center;justify-content:center;transition:all .3s;z-index:2}
/* proje önizlemesi açıkken tema anahtarı/disko butonu kapatma çarpısıyla aynı köşede çakışıyordu */
body:has(.project.show) .top-controls,body:has(.project.show) .disco-btn{opacity:0;visibility:hidden;pointer-events:none}
.stage.dark .project .close:hover{background:var(--paper);color:var(--ink)}
.stage.light .project .close:hover{background:var(--ink);color:var(--paper)}
.project-head{margin-bottom:16px}
.project-title{font-family:var(--f-display);font-weight:800;font-size:clamp(26px,4vw,46px);letter-spacing:-.02em}
.project-note{font-weight:300;font-size:13.5px;opacity:.7;margin-top:6px;max-width:640px}
.project-browser{flex:1;border:var(--hair);display:flex;flex-direction:column;min-height:0}
.project-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:var(--hair)}
.project-url{font-family:var(--f-mono);font-size:11px;opacity:.65;margin-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.project-visit{margin-left:auto;flex-shrink:0;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:var(--hair);padding:6px 12px;white-space:nowrap;transition:background .25s,color .25s}
.stage.dark .project-visit:hover{background:var(--paper);color:var(--ink)}
.stage.light .project-visit:hover{background:var(--ink);color:var(--paper)}
.project-frame-wrap{position:relative;flex:1;min-height:0}
.project iframe{position:absolute;inset:0;width:100%;height:100%;border:none;background:#fff;z-index:1}
.fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--f-display);font-weight:800;font-size:clamp(30px,5vw,54px);opacity:.12;pointer-events:none;line-height:1.15}

/* ═══ KONTROLLER ═══ */
/* Geri düğmeleri artık markanın yanında, üst şeritte. Eskiden ekranın alt
   köşelerindeydiler; sabit iletişim çubuğu oraya geldiği için yukarı taşındılar.
   .stage-topbar akış içinde bir flex satırı — mutlak konum hesabı gerekmiyor. */
.stage-topbar{position:absolute;top:26px;left:34px;right:auto;z-index:20;display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:calc(100% - 68px)}
.btn-back,.btn-detail-back{z-index:40;font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;border:var(--hair);padding:9px 15px;background:inherit;opacity:0;visibility:hidden;transform:translateY(-6px);transition:all .45s var(--ease);white-space:nowrap}
.btn-back.show,.btn-detail-back.show{opacity:1;visibility:visible;transform:none}
.stage.dark .btn-back,.stage.dark .btn-detail-back{background:var(--ink)}
.stage.light .btn-back,.stage.light .btn-detail-back{background:var(--paper)}
.stage.dark .btn-back:hover,.stage.dark .btn-detail-back:hover{background:var(--paper);color:var(--ink)}
.stage.light .btn-back:hover,.stage.light .btn-detail-back:hover{background:var(--ink);color:var(--paper)}
.top-controls{position:absolute;top:26px;right:34px;z-index:40;display:flex;align-items:center;gap:12px}
.chase-toggle{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:9px 14px;border:var(--hair);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .6s var(--ease),visibility .6s,transform .6s var(--ease),background .3s}
.chase-toggle.show{opacity:.75;visibility:visible;transform:none}
.chase-toggle:hover{opacity:1}
.stage.dark .chase-toggle.off{background:rgba(128,128,128,.18)}
.stage.light .chase-toggle.off{background:rgba(128,128,128,.18)}
.chase-counter{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:9px 14px;border:var(--hair);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .6s var(--ease),visibility .6s,transform .6s var(--ease)}
.chase-counter.show{opacity:.75;visibility:visible;transform:none}
.chase-counter strong{font-family:var(--f-display);font-weight:800;margin-right:6px}
.chase-counter.pulse{animation:chase-counter-pulse .5s var(--ease)}
@keyframes chase-counter-pulse{0%{transform:scale(1)}45%{transform:scale(1.18)}100%{transform:scale(1)}}
.theme-switcher{opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .6s var(--ease)}
.theme-switcher.show{opacity:1;visibility:visible;transform:none}
.theme-track{display:flex;border:var(--hair)}
.theme-option{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:9px 14px;border-right:var(--hair);opacity:.6;transition:all .3s}
.theme-option:last-child{border-right:none}
/* Etiketin uzun/kısa hâli: geniş ekranda "Otomatik", darda "Oto". */
.t-kisa{display:none}
.theme-option.active{opacity:1}
.stage.dark .theme-option.active{background:var(--paper);color:var(--ink)}
.stage.light .theme-option.active{background:var(--ink);color:var(--paper)}
/* Alt orta köşeden üst kontrol kümesine taşındı (yeri sabit iletişim çubuğunun). */
.disco-btn{z-index:40;font-family:var(--f-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;border:var(--hair);padding:7px 13px;background:inherit;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .5s var(--ease);display:flex;flex-direction:column;gap:1px;align-items:center;line-height:1.25}
.stage.dark .disco-btn{background:var(--ink)}
.stage.light .disco-btn{background:var(--paper)}
.disco-btn.show{opacity:1;visibility:visible;transform:none}
.disco-warn{font-size:8px;letter-spacing:.28em;opacity:.5}
.disco-btn.on{color:#fff;border-color:#fff;background:linear-gradient(110deg,#ff1744,#ffea00,#00e5ff,#7c4dff,#ff1744);background-size:300% 100%;animation:disco-btn-flash .75s linear infinite;text-shadow:0 1px 4px #000}
@keyframes disco-btn-flash{to{background-position:300% 0}}

/* ═══ SABİT İLETİŞİM ÇUBUĞU (footer) ═══
   Sitede hiç footer yoktu; telefon ve WhatsApp yalnızca İletişim bölümünün
   içindeydi. Çubuk her bölümde görünür ve aynı zamanda telif + KVKK bağlantısını
   taşır. Tam genişlik: dokunmatikte parmağın doğal olarak gittiği yer burası. */
.contact-bar{position:fixed;left:0;right:0;bottom:0;z-index:120;
  display:flex;flex-direction:column;
  border-top:var(--hair);backdrop-filter:blur(14px);
  opacity:0;visibility:hidden;transform:translateY(100%);
  transition:opacity .5s var(--ease),visibility .5s,transform .5s var(--ease),bottom .35s var(--ease)}
/* Perde açıkken görünmez; girişten sonra yükselir. Diğer kontrollerle (marka,
   tema anahtarı, geri düğmeleri) aynı .show düzeni — sınıfı enter() ekler. */
.contact-bar.show{opacity:1;visibility:visible;transform:none}
.stage.dark .contact-bar{background:rgba(16,16,16,.93);color:var(--paper)}
.stage.light .contact-bar{background:rgba(244,241,234,.94);color:var(--ink)}
/* Müzik çalar açıldığında çubuk onun üstüne çıkar; ikisi üst üste binmez. */
body.has-music-player .contact-bar{bottom:var(--player-clear,150px)}
/* Web projesi inceleme modalı tam ekran çalışır; çubuk oradan çekilir. */
body:has(.project.show) .contact-bar{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(100%)}

/* Telif + KVKK satırı çubuktan çıkıp İletişim bölümünün altına taşındı. */
.site-legal{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:38px;
  padding-top:18px;border-top:var(--hair);font-family:var(--f-mono);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;opacity:.55}
.site-legal a{text-decoration:underline;text-underline-offset:3px}
.site-legal a:hover{opacity:.7}
.site-legal i{opacity:.6;font-style:normal}

.cbar-actions{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;align-items:stretch}
.cbar-item{display:flex;align-items:center;justify-content:center;gap:9px;
  padding:13px 10px;min-height:54px;border-left:var(--hair);border-color:currentColor;
  font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  transition:background .25s var(--ease),color .25s var(--ease)}
.cbar-item:first-child{border-left:none}
.cbar-item svg{width:19px;height:19px;flex-shrink:0}
.cbar-item b{font-weight:400}
/* WhatsApp: tek vurgulu eylem — en hızlı dönüşüm kanalı olduğu için ayrışır. */
.cbar-item.is-primary{position:relative}
.cbar-item.is-primary::before{content:'';position:absolute;inset:0;background:currentColor;opacity:.09;pointer-events:none}
.stage.dark .cbar-item:hover,.stage.dark .cbar-item:focus-visible{background:var(--paper);color:var(--ink)}
.stage.light .cbar-item:hover,.stage.light .cbar-item:focus-visible{background:var(--ink);color:var(--paper)}
.cbar-item:focus-visible{outline:2px solid currentColor;outline-offset:-4px}

@media(max-width:640px){
  /* Telefonda etiketler ikonun altına iner, ikonlar büyür. */
  .cbar-item{flex-direction:column;gap:4px;padding:9px 4px;min-height:56px;font-size:8px;letter-spacing:.1em}
  .cbar-item svg{width:21px;height:21px}
  .site-legal{font-size:9px;letter-spacing:.1em;gap:7px;margin-top:30px}
}

/* ═══ KOVALAYAN MASKOT ═══ */
.chase-mascot{position:fixed;left:0;top:0;width:38px;height:38px;border-radius:50%;border:var(--hair);display:flex;align-items:center;justify-content:center;font-family:var(--f-display);font-weight:800;font-size:11px;letter-spacing:-.02em;background:var(--ink);color:var(--paper);pointer-events:none;z-index:100;opacity:0;transform:translate(-50%,-50%);transition:opacity .5s var(--ease)}
.stage.light .chase-mascot{background:var(--paper);color:var(--ink)}
.chase-mascot.active{opacity:.92}
.chase-mascot.caught{animation:chase-caught .5s var(--ease)}
@keyframes chase-caught{0%{transform:translate(-50%,-50%) scale(1)}45%{transform:translate(-50%,-50%) scale(1.4)}100%{transform:translate(-50%,-50%) scale(1)}}
body.chase-caught-cursor,body.chase-caught-cursor *{cursor:none!important}
@media(max-width:860px),(hover:none){.chase-mascot{display:none}}

/* OnMart Music ana sayfa yenilemesi */
.home-copy h2{display:flex;flex-direction:column;align-items:flex-start;gap:.06em;font-size:clamp(68px,9vw,138px);line-height:.83;letter-spacing:-.035em}
.home-copy h2 span,.home-copy h2 em{display:block}
.home-orbit{border-color:rgba(255,255,255,.25);background:repeating-radial-gradient(circle at center,rgba(255,255,255,.04) 0 2px,rgba(0,0,0,.32) 3px 8px);box-shadow:0 36px 80px rgba(0,0,0,.5),inset 0 0 90px rgba(0,0,0,.62)}
.home-orbit img{position:relative;z-index:2;width:46%;height:46%;object-fit:contain;padding:8%;border-radius:50%;background:radial-gradient(circle,#251c39 0 45%,#08080d 47% 100%);box-shadow:0 0 0 2px rgba(255,255,255,.12),0 0 44px rgba(139,92,246,.42)}
.release-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.release-actions button,.release-actions a{border:1px solid currentColor;padding:9px 11px;font-family:var(--f-mono);font-size:7px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:.25s}
.release-actions button:hover{background:var(--ink);color:var(--paper)}
.release-actions a{border-color:#e62117;color:#e62117;font-weight:700}.release-actions a:hover{background:#e62117;color:#fff}
.music-home-return{grid-column:1/-1;justify-self:start;border:var(--hair);padding:11px 15px;font-family:var(--f-mono);font-size:8px;letter-spacing:.14em;text-transform:uppercase;transition:.25s}.music-home-return:hover{background:var(--ink);color:var(--paper);transform:translateX(-3px)}
.music-home-mark img{width:72%;height:72%;object-fit:contain}
.vinyl-record img{position:absolute;left:50%;top:50%;z-index:3;width:18px;height:18px;object-fit:contain;transform:translate(-50%,-50%)}
.chase-mascot{width:46px;height:46px}.chase-mascot img{width:78%;height:78%;object-fit:contain}.stage.light .chase-mascot img{content:url('../img/onmart-symbol-black.webp')}
@media(max-width:580px){.home-copy h2{font-size:clamp(58px,20vw,78px);line-height:.86}.home-orbit{right:-105px;bottom:38px;width:250px}.release-actions{align-items:stretch}.release-actions button,.release-actions a{flex:1;text-align:center;white-space:nowrap}.music-home-return{margin:0 0 10px}.persistent-player{grid-template-columns:5px minmax(0,1fr) 24px 54px 24px 54px 22px;gap:4px;padding-left:8px;padding-right:8px}.persistent-player .player-control{padding:0 3px}.player-identity strong{max-width:90px}}

/* Müzik oynatıcı küçültme kontrolü */
.home-copy>p{margin-bottom:0}.home-copy h2{margin-top:0;padding-top:34px}
.player-collapse{position:absolute;right:5px;top:-27px;width:32px;height:27px;border:1px solid rgba(255,255,255,.5);border-bottom:0;background:rgba(7,7,11,.94);color:#fff;font-size:17px;line-height:1;display:grid;place-items:center;transition:.25s;z-index:3}.player-collapse:hover{background:#fff;color:#09090f}
.persistent-player.collapsed{left:auto;width:min(520px,calc(100vw - 28px));grid-template-columns:6px minmax(0,1fr) 30px 70px 30px 25px;min-height:58px;padding:8px 10px;gap:6px}
.persistent-player.collapsed .player-timeline,.persistent-player.collapsed #playerMute,.persistent-player.collapsed .player-volume,.persistent-player.collapsed .player-picker{display:none}
.persistent-player.collapsed .player-pulse{height:34px}.persistent-player.collapsed .player-identity strong{max-width:250px}.persistent-player.collapsed .player-close{display:grid}
@media(max-width:580px){.home-copy h2{margin-top:0;padding-top:30px}.persistent-player.collapsed{right:7px;left:7px;width:auto;grid-template-columns:5px minmax(0,1fr) 24px 54px 24px 22px;min-height:56px;padding-top:7px}.persistent-player.collapsed .player-identity strong{max-width:120px}}

/* ═══ DISCO MOD ═══ */
.stage.disco{animation:disco-color-pulse .7s ease-in-out infinite alternate}
.stage.disco::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.72;mix-blend-mode:screen;filter:hue-rotate(var(--disco-hue,0deg));background:radial-gradient(circle at var(--dx,24%) var(--dy,30%),rgba(255,0,128,.85) 0%,transparent 31%),radial-gradient(circle at calc(100% - var(--dx,24%)) calc(100% - var(--dy,30%)),rgba(0,229,255,.75) 0%,transparent 34%),linear-gradient(125deg,rgba(124,77,255,.28),rgba(255,234,0,.2),rgba(0,230,118,.26));transition:filter .24s linear}
.stage.disco .node,.stage.disco .hub-card,.stage.disco .work-card,.stage.disco .social-card,.stage.disco .youtube-project-card,.stage.disco .instagram-project-card,.stage.disco .youtube-gallery-item,.stage.disco .youtube-media-card,.stage.disco .media-card,.stage.disco .portfolio-card,.stage.disco .onmart-brand-card{animation:disco-card-border .9s linear infinite alternate}
@keyframes disco-color-pulse{from{box-shadow:inset 0 0 45px rgba(255,0,128,.22)}to{box-shadow:inset 0 0 90px rgba(0,229,255,.32)}}
@keyframes disco-card-border{from{border-color:#ff2d95}50%{border-color:#00e5ff}to{border-color:#ffea00}}

/* ═══ MOBİL GENEL ═══ */
@media(max-width:640px){
  .stage-topbar{top:16px;left:16px;gap:8px;max-width:calc(100% - 130px)}
  .brand{font-size:18px}
  /* Dar ekranda iki geri düğmesi yan yana sığmaz. İkisini birden gizlemek
     ise derinlik 1'de (ör. /portfoy) hiç geri kontrolü bırakmıyordu.
     Kural: bir alt seviye varsa "← Geri", yoksa "← Menü" görünür — hangi
     bölümde olursanız olun tam bir tane geri düğmesi vardır. */
  .stage-topbar:has(.btn-detail-back.show) .btn-back{display:none}
  .btn-back,.btn-detail-back{font-size:9px;padding:8px 11px;letter-spacing:.12em}
  .top-controls{top:14px;right:14px;gap:8px}
  .chase-counter,.chase-toggle{display:none}
  .theme-option{padding:8px 7px;font-size:9px;letter-spacing:.1em}
  .t-uzun{display:none}
  .t-kisa{display:inline}
  .menu{padding:86px 22px calc(var(--bottom-nav-safe-height) - 10px)}
  .file-item{grid-template-columns:44px 1fr 32px;gap:12px}
  .file-tag{display:none}
  .page,.detail-page,.youtube-page{padding:78px 20px calc(var(--bottom-nav-safe-height) + var(--player-safe-height) + 10px)}
  .disco-btn{display:none}
  .project{padding:76px 16px 20px}
  .intro-corner{display:none}
}

/* ═══ INTRO / SIGNATURE EDITION ═══ */
.intro{
  --intro-ivory:#f2eee5;
  --intro-brass:#b99a62;
  --intro-brass-soft:rgba(185,154,98,.32);
  isolation:isolate;
  background:#090a0a;
  overflow:hidden;
}
.intro::before{content:'';position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(115deg,rgba(255,255,255,.025),transparent 28% 72%,rgba(185,154,98,.025)),
  radial-gradient(ellipse at 50% 46%,rgba(242,238,229,.055),transparent 34%),
  #090a0a}
.intro-frame{inset:clamp(12px,1.45vw,28px);border-color:rgba(242,238,229,.17);animation:signature-frame-in 1.4s var(--ease) .1s forwards}
.intro-frame::before,.intro-frame::after{width:28px;height:28px;border-color:var(--intro-brass);opacity:.72}
.intro-frame::before{top:-1px;left:-1px}.intro-frame::after{right:-1px;bottom:-1px}
@keyframes signature-frame-in{from{opacity:0;transform:scale(.992)}to{opacity:1;transform:none}}
.intro-grid{position:absolute;inset:clamp(12px,1.45vw,28px);z-index:-1;pointer-events:none;opacity:.17;background-image:linear-gradient(rgba(242,238,229,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(242,238,229,.08) 1px,transparent 1px);background-size:clamp(70px,7.5vw,144px) clamp(70px,7.5vw,144px);-webkit-mask-image:radial-gradient(circle at 50% 48%,#000,transparent 68%);mask-image:radial-gradient(circle at 50% 48%,#000,transparent 68%)}
.intro-axis{position:absolute;z-index:0;pointer-events:none;opacity:.32;background:linear-gradient(90deg,transparent,var(--intro-brass-soft),transparent)}
.intro-axis.axis-x{left:6%;right:6%;top:50%;height:1px;transform:scaleX(0);animation:axis-open-x 1.6s var(--ease) .3s forwards}
.intro-axis.axis-y{top:8%;bottom:8%;left:50%;width:1px;background:linear-gradient(transparent,var(--intro-brass-soft),transparent);transform:scaleY(0);animation:axis-open-y 1.6s var(--ease) .45s forwards}
@keyframes axis-open-x{to{transform:scaleX(1)}}@keyframes axis-open-y{to{transform:scaleY(1)}}
.intro-grain{opacity:.055}.intro-vignette{background:radial-gradient(ellipse at 50% 47%,transparent 25%,rgba(0,0,0,.28) 62%,rgba(0,0,0,.8) 100%)}
.intro-spot{opacity:1;background:radial-gradient(520px circle at var(--mx,50%) var(--my,46%),rgba(185,154,98,.075),transparent 64%);animation:none}
.intro-corner{color:var(--intro-ivory);font-size:9px;letter-spacing:.34em;text-transform:uppercase}
.intro-corner.tl,.intro-corner.tr{top:clamp(31px,2.65vw,51px)}.intro-corner.bl,.intro-corner.br{bottom:clamp(31px,2.65vw,51px)}
.intro-corner.tl,.intro-corner.bl{left:clamp(31px,2.65vw,51px)}.intro-corner.tr,.intro-corner.br{right:clamp(31px,2.65vw,51px)}
.intro-inner{width:min(92vw,760px);padding:0;display:flex;flex-direction:column;align-items:center;transform:translate3d(calc(var(--px,0) * 4px),calc(var(--py,0) * 4px),0);transition:transform .65s var(--ease)}
.intro-over{position:relative;margin:0 0 clamp(16px,2.2vh,26px);padding:0 18px;color:var(--intro-brass);font-size:9px;letter-spacing:.5em;text-transform:uppercase;line-height:1.5}
.intro-over::before,.intro-over::after{content:'';position:absolute;top:50%;width:clamp(28px,5vw,72px);height:1px;background:linear-gradient(90deg,transparent,var(--intro-brass-soft))}
.intro-over::before{right:100%}.intro-over::after{left:100%;transform:rotate(180deg)}
.intro-over span{animation-name:signature-char-in}
@keyframes signature-char-in{from{opacity:0;transform:translateY(7px);filter:blur(4px)}to{opacity:.9;transform:none;filter:none}}
.intro-seal{position:relative;width:min(56vh,35vw,500px);min-width:330px;aspect-ratio:1;display:grid;place-items:center;transform:translate3d(calc(var(--px,0) * -8px),calc(var(--py,0) * -8px),0);transition:transform .75s var(--ease)}
.intro-seal::before{content:'';position:absolute;inset:12%;border:1px solid rgba(242,238,229,.075);border-radius:50%;box-shadow:0 0 70px rgba(185,154,98,.055),inset 0 0 55px rgba(242,238,229,.025)}
.intro-seal::after{content:'';position:absolute;inset:22%;border:1px solid rgba(185,154,98,.2);transform:rotate(45deg);opacity:0;animation:diamond-in 1.5s var(--ease) 1s forwards}
@keyframes diamond-in{from{opacity:0;transform:rotate(45deg) scale(.8)}to{opacity:.42;transform:rotate(45deg) scale(1)}}
.intro-orbits{position:absolute;inset:-13%;z-index:0;pointer-events:none;opacity:0;animation:orbit-field-in 1.8s var(--ease) .65s forwards}
@keyframes orbit-field-in{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:none}}
.orbit{position:absolute;left:50%;top:50%;display:block;border:1px solid rgba(255,255,255,.13);border-radius:50%;transform:translate(-50%,-50%) rotate(var(--orbit-tilt));box-shadow:inset 0 0 20px rgba(255,255,255,.012)}
.orbit::after{content:'';position:absolute;inset:-2px;border-radius:inherit;background:conic-gradient(from 20deg,transparent 0 59%,rgba(255,255,255,.08) 64%,rgba(255,255,255,.92) 69%,rgba(255,255,255,.14) 73%,transparent 79%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));animation:orbit-light 11s linear infinite;filter:drop-shadow(0 0 4px rgba(255,255,255,.28))}
.orbit-a{--orbit-tilt:18deg;width:100%;height:67%}.orbit-a::after{animation-duration:13s}
.orbit-b{--orbit-tilt:-36deg;width:94%;height:55%}.orbit-b::after{animation-duration:17s;animation-direction:reverse}
.orbit-c{--orbit-tilt:72deg;width:84%;height:46%;border-color:rgba(255,255,255,.09)}.orbit-c::after{animation-duration:21s}
@keyframes orbit-light{to{transform:rotate(360deg)}}
.intro-rays{position:absolute;inset:-21%;z-index:0;pointer-events:none;opacity:0;animation:ray-field-in 1.5s var(--ease) 1s forwards}
@keyframes ray-field-in{to{opacity:1}}
.intro-rays i{position:absolute;left:0;right:0;top:50%;height:1px;display:block;transform:rotate(var(--ray));background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.72) 14%,rgba(255,255,255,.16) 25%,transparent 35% 65%,rgba(255,255,255,.16) 75%,rgba(255,255,255,.72) 86%,transparent 100%);opacity:.22;animation:ray-breathe 4.8s ease-in-out infinite;animation-delay:calc(var(--ray-delay) * -.65s)}
.intro-rays i::before,.intro-rays i::after{content:'';position:absolute;top:-2px;width:5px;height:5px;background:#fff;border-radius:50%;box-shadow:0 0 9px rgba(255,255,255,.85)}
.intro-rays i::before{left:13%}.intro-rays i::after{right:13%}
@keyframes ray-breathe{0%,100%{opacity:.12;filter:blur(.15px)}50%{opacity:.62;filter:none}}
.intro-dial{inset:0;top:0;left:0;width:100%;height:100%;transform:none;opacity:0;animation:signature-dial-in 1.8s var(--ease) .25s forwards;transition:none}
@keyframes signature-dial-in{from{opacity:0;transform:scale(1.08) rotate(-3deg)}to{opacity:1;transform:none}}
.intro-dial svg{display:block}.dial-halo{fill:none;stroke:rgba(242,238,229,.07);stroke-width:1}
.dial-ticks{stroke:rgba(242,238,229,.3);stroke-width:2;stroke-dasharray:1 10;animation:ring-spin 120s linear infinite}
.dial-ring{stroke:rgba(185,154,98,.24);stroke-width:1;stroke-dasharray:2 7}
.dial-arc{stroke:var(--intro-brass);stroke-width:1.15;stroke-dasharray:72 1360;filter:drop-shadow(0 0 5px rgba(185,154,98,.22));animation:ring-spin 34s linear infinite}
.dial-arc.rev{stroke:rgba(242,238,229,.5);stroke-dasharray:44 1020;animation-duration:46s}
.intro-logo{z-index:2;margin:0;width:55%;transform:none;transition:transform .7s var(--ease)}
.intro-logo img{width:100%;filter:drop-shadow(0 18px 26px rgba(0,0,0,.5));animation:logo-reveal 1.45s cubic-bezier(.16,1,.3,1) .5s forwards,logo-breathe 8s ease-in-out 2.4s infinite}
.intro-logo::before{inset:-38%;background:radial-gradient(circle,rgba(242,238,229,.095),transparent 62%)}
.seal-code{position:absolute;top:50%;z-index:3;color:var(--intro-brass);font-family:var(--f-mono);font-size:7px;letter-spacing:.25em;opacity:0;animation:seal-code-in 1s var(--ease) 1.35s forwards}
.seal-code-left{left:-4px;transform:translate(-50%,-50%) rotate(-90deg)}.seal-code-right{right:-4px;transform:translate(50%,-50%) rotate(90deg)}
@keyframes seal-code-in{to{opacity:.75}}
.intro-tag{margin-top:clamp(15px,2vh,23px);display:flex;align-items:center;justify-content:center;gap:clamp(9px,1.4vw,18px);color:var(--intro-ivory);font-size:8px;letter-spacing:.25em;animation-delay:1.2s}
.intro-tag i{display:block;width:3px;height:3px;border:1px solid var(--intro-brass);transform:rotate(45deg)}
.intro-enter{width:min(88vw,310px);height:48px;margin-top:clamp(18px,3vh,32px);display:grid;grid-template-columns:42px 1fr 42px;align-items:center;border-top:1px solid rgba(242,238,229,.25);border-bottom:1px solid rgba(242,238,229,.25);color:var(--intro-ivory);opacity:0;animation:enter-control-in 1s var(--ease) 1.5s forwards;transition:background .35s,color .35s,border-color .35s,transform .35s var(--ease)}
@keyframes enter-control-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.intro-enter::before,.intro-enter::after{content:'';position:absolute}.intro-enter:hover{background:var(--intro-ivory);color:#090a0a;border-color:var(--intro-ivory);transform:translateY(-2px)}
.enter-index,.enter-arrow{font-family:var(--f-mono);font-size:8px;letter-spacing:.12em;opacity:.52}.enter-arrow{font-size:16px;transition:transform .35s var(--ease)}.intro-enter:hover .enter-arrow{transform:translateX(4px)}
.click{font-family:var(--f-mono);font-size:9px;letter-spacing:.32em;text-transform:uppercase;opacity:1;animation:none}
.intro-coords{margin-top:14px;color:var(--intro-brass);font-size:7px;letter-spacing:.22em;animation-delay:1.85s}

@media(max-width:640px){
  .intro-frame{inset:10px}.intro-grid{inset:10px;background-size:64px 64px;opacity:.13}.intro-axis.axis-x{left:10%;right:10%}.intro-axis.axis-y{top:5%;bottom:5%}
  .intro-corner{display:block;font-size:7px;letter-spacing:.2em}.intro-corner.tr,.intro-corner.bl{display:none}.intro-corner.tl{top:23px;left:25px}.intro-corner.br{right:23px;bottom:23px}
  .intro-inner{width:100%;padding:0 22px}.intro-over{font-size:7px;letter-spacing:.34em;margin-bottom:14px}.intro-over::before,.intro-over::after{width:22px}
  .intro-seal{width:min(82vw,41vh,360px);min-width:0}.intro-logo{width:57%}.seal-code{font-size:6px}.seal-code-left{left:3px}.seal-code-right{right:3px}.intro-orbits{inset:-9%}.intro-rays{inset:-12%}.intro-rays i{opacity:.16}.intro-rays i::before,.intro-rays i::after{width:3px;height:3px;top:-1px}
  .intro-tag{gap:8px;margin-top:13px;font-size:6.5px;letter-spacing:.16em}.intro-tag i{width:2px;height:2px}
  .intro-enter{height:46px;margin-top:20px}.click{font-size:8px;letter-spacing:.25em}.intro-coords{margin-top:12px;font-size:6.5px}
}
@media(max-height:700px){
  .intro-seal{width:min(46vh,360px)}.intro-over{margin-bottom:9px}.intro-tag{margin-top:7px}.intro-enter{margin-top:12px;height:42px}.intro-coords{margin-top:8px}
}
@media(max-width:640px) and (max-height:620px){
  .intro-over,.intro-coords{display:none}.intro-seal{width:min(64vw,46vh)}.intro-tag{margin-top:5px}.intro-enter{margin-top:10px}
}
@media(prefers-reduced-motion:reduce){
  .intro *{animation-duration:.01ms!important;animation-iteration-count:1!important}.intro-inner,.intro-seal,.intro-logo{transform:none!important;transition:none!important}
}

/* ═══ INTRO / SPATIAL MOTIF + 3D MARK ═══ */
.intro-grid{opacity:.2;background-size:clamp(92px,9vw,170px) clamp(92px,9vw,170px);-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.08) 32% 68%,rgba(0,0,0,.72));mask-image:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.08) 32% 68%,rgba(0,0,0,.72))}
.intro-motifs{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;opacity:0;animation:motifs-in 1.8s var(--ease) .55s forwards}
@keyframes motifs-in{from{opacity:0}to{opacity:1}}
.motif-line{position:absolute;display:block;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05) 10%,rgba(255,255,255,.28) 46%,rgba(255,255,255,.08) 72%,transparent);transform-origin:center;animation:motif-drift 9s ease-in-out infinite alternate}
.motif-line::after{content:'';position:absolute;right:18%;top:-2px;width:5px;height:5px;border:1px solid rgba(255,255,255,.46);transform:rotate(45deg);background:#090a0a}
.motif-a{width:42vw;left:-7vw;top:24%;transform:rotate(14deg)}
.motif-b{width:34vw;right:-3vw;top:18%;transform:rotate(-21deg);animation-delay:-2s}
.motif-c{width:30vw;left:5vw;bottom:25%;transform:rotate(-12deg);animation-delay:-5s}
.motif-d{width:45vw;right:-9vw;bottom:28%;transform:rotate(17deg);animation-delay:-3s}
.motif-e{width:22vw;left:15vw;top:51%;transform:rotate(90deg);opacity:.65;animation-delay:-4s}
.motif-f{width:25vw;right:13vw;top:47%;transform:rotate(90deg);opacity:.55;animation-delay:-1s}
@keyframes motif-drift{from{margin-top:-4px;filter:brightness(.75)}to{margin-top:5px;filter:brightness(1.3)}}
.motif-cross{position:absolute;width:13px;height:13px;opacity:.38}
.motif-cross::before,.motif-cross::after{content:'';position:absolute;background:rgba(255,255,255,.55)}
.motif-cross::before{left:6px;top:0;width:1px;height:13px}.motif-cross::after{left:0;top:6px;width:13px;height:1px}
.cross-a{left:9%;top:17%}.cross-b{right:11%;top:34%}.cross-c{left:17%;bottom:15%}.cross-d{right:20%;bottom:18%}
.motif-number{position:absolute;font-family:var(--f-display);font-size:clamp(110px,17vw,300px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.16);opacity:.15;letter-spacing:-.08em}
.number-a{left:-1.6%;top:18%;transform:rotate(-90deg) translateX(-35%)}.number-b{right:-1.5%;bottom:8%;transform:rotate(90deg) translateX(30%)}
.intro-seal{width:min(48vh,31vw,440px);min-width:310px;filter:drop-shadow(0 40px 45px rgba(0,0,0,.65))}
.intro-seal::after{display:none}.intro-seal::before{inset:7%;border:0;border-radius:50%;background:radial-gradient(circle,rgba(242,238,229,.1),rgba(185,154,98,.045) 38%,transparent 68%);box-shadow:none;filter:blur(10px)}
.intro-orbits,.intro-rays,.intro-dial,.seal-code{display:none!important}
.intro-logo{width:70%;transform-style:preserve-3d;transform:perspective(760px) rotateX(calc(var(--py,0) * -8deg)) rotateY(calc(var(--px,0) * 10deg)) translate3d(calc(var(--px,0) * -8px),calc(var(--py,0) * -8px),28px);transition:transform .35s cubic-bezier(.16,1,.3,1)}
.intro-logo::before{inset:-40%;z-index:-3;background:radial-gradient(circle,rgba(255,255,255,.13),rgba(185,154,98,.045) 36%,transparent 67%);filter:blur(5px)}
.intro-logo::after{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(135deg,#d8c496 0,#665537 24%,#1b1b1a 62%,#a98b56 100%);-webkit-mask:url('../img/onmart-logo-white.webp') center/contain no-repeat;mask:url('../img/onmart-logo-white.webp') center/contain no-repeat;transform:translate3d(12px,15px,-34px);opacity:.92;filter:drop-shadow(9px 15px 13px rgba(0,0,0,.85));animation:logo-depth-in 1.4s var(--ease) .55s both}
@keyframes logo-depth-in{from{opacity:0;transform:translate3d(0,0,-34px)}to{opacity:.92;transform:translate3d(12px,15px,-34px)}}
.intro-logo img{filter:drop-shadow(-1px -1px 0 rgba(255,255,255,.5)) drop-shadow(2px 3px 0 rgba(185,154,98,.4)) drop-shadow(10px 17px 18px rgba(0,0,0,.7))}
.intro-tag{position:relative;z-index:3;margin-top:clamp(5px,1vh,12px)}

@media(max-width:640px){
  .intro-grid{background-size:78px 78px;opacity:.14}.motif-number{font-size:100px;opacity:.1}.number-a{left:-13%;top:17%}.number-b{right:-12%;bottom:13%}
  .motif-a,.motif-d{width:66vw}.motif-b,.motif-c{width:58vw}.motif-e,.motif-f{width:48vw}.motif-cross{transform:scale(.75)}
  .intro-seal{width:min(61vw,34vh,300px);min-width:230px}.intro-logo{width:78%;transform:perspective(700px) rotateX(calc(var(--py,0) * -5deg)) rotateY(calc(var(--px,0) * 6deg)) translateZ(22px)}
  .intro-logo::after{transform:translate3d(8px,10px,-24px)}.intro-tag{margin-top:5px}
}
@media(max-width:640px) and (max-height:620px){.intro-seal{width:min(48vw,38vh);min-width:190px}}

/* ═══ INTRO / CREATIVE AGENCY PLAYGROUND ═══ */
.intro{
  --agency-yellow:#ffdc35;
  --agency-coral:#ff6047;
  --agency-blue:#66a7ff;
  --agency-lime:#b9ed67;
}
.intro::before{background:radial-gradient(ellipse at 50% 45%,rgba(255,255,255,.055),transparent 34%),#090a0a}
.intro-axis,.intro-motifs{display:none}
.intro-grid{inset:0;opacity:.3;background-image:radial-gradient(rgba(255,255,255,.16) .7px,transparent .8px);background-size:26px 26px;-webkit-mask-image:linear-gradient(90deg,#000,transparent 32% 68%,#000);mask-image:linear-gradient(90deg,#000,transparent 32% 68%,#000)}
.intro-agency-canvas{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;font-family:var(--f-mono)}
.agency-window,.agency-social-card,.agency-poster,.agency-metric{position:absolute;opacity:0;box-shadow:12px 16px 0 rgba(0,0,0,.35);animation:agency-card-in 1.15s var(--ease) forwards,agency-float 6s ease-in-out 2s infinite alternate}
@keyframes agency-card-in{from{opacity:0;translate:0 24px;scale:.94}to{opacity:1;translate:0 0;scale:1}}
@keyframes agency-float{from{margin-top:-3px}to{margin-top:6px}}
.agency-window{left:6.5%;top:16%;width:250px;border:1px solid rgba(255,255,255,.72);background:#f5f0e7;color:#0b0b0b;transform:rotate(-3.5deg);animation-delay:.45s,1.8s}
.agency-window-bar{height:28px;display:flex;align-items:center;gap:6px;padding:0 9px;border-bottom:1px solid #111;background:var(--agency-blue)}
.agency-window-bar i{width:6px;height:6px;border:1px solid #111;border-radius:50%}.agency-window-bar span{margin-left:auto;font-size:6.5px;letter-spacing:.08em}
.agency-window-body{height:132px;padding:16px 18px;position:relative;background:linear-gradient(90deg,transparent 49.5%,rgba(0,0,0,.08) 50%,transparent 50.5%)}
.agency-window-body small{font-size:7px;letter-spacing:.12em}.agency-window-body strong{display:block;margin-top:10px;font-family:var(--f-display);font-size:29px;line-height:.82;letter-spacing:-.02em}.agency-window-body em{position:absolute;right:13px;bottom:11px;font-size:6px;font-style:normal;letter-spacing:.1em}
.agency-social-card{right:7%;top:15%;width:176px;height:220px;padding:16px;color:#101010;background:var(--agency-coral);transform:rotate(5deg);animation-delay:.65s,2.1s}
.agency-social-card::before{content:'';position:absolute;inset:44px 14px 58px;border:1px solid #101010;background:repeating-linear-gradient(135deg,rgba(255,255,255,.15) 0 8px,transparent 8px 16px)}
.agency-social-card>span{font-size:7px;letter-spacing:.16em}.agency-social-card>b{position:absolute;left:50%;top:46%;width:46px;height:46px;display:grid;place-items:center;border:1px solid #111;border-radius:50%;transform:translate(-50%,-50%);font-size:14px;padding-left:3px}.agency-social-card>strong{position:absolute;left:15px;bottom:22px;font-family:var(--f-display);font-size:19px;line-height:.88}.agency-social-card>i{position:absolute;right:14px;bottom:13px;font-size:6px;font-style:normal}
.agency-poster{left:8%;bottom:13%;width:216px;height:146px;padding:15px 17px;background:var(--agency-yellow);color:#101010;transform:rotate(2.5deg);animation-delay:.85s,2.4s}
.agency-poster small{font-size:6px;letter-spacing:.16em}.agency-poster strong{display:block;margin-top:11px;font-family:var(--f-display);font-size:25px;line-height:.78}.agency-poster i{position:absolute;right:15px;bottom:12px;font-family:var(--f-display);font-size:30px;font-style:normal}
.agency-metric{right:8.5%;bottom:16%;display:flex;align-items:center;gap:13px;padding:16px 18px;background:var(--agency-lime);color:#101010;transform:rotate(-3deg);animation-delay:1s,2.7s}
.agency-metric strong{font-family:var(--f-display);font-size:45px;line-height:.8}.agency-metric span{font-size:7px;line-height:1.45;letter-spacing:.12em}
.agency-swatches{position:absolute;right:25%;top:10%;display:flex;gap:5px;transform:rotate(-8deg);opacity:0;animation:swatches-in .9s var(--ease) 1.2s forwards}
@keyframes swatches-in{to{opacity:1;transform:rotate(-8deg) translateY(0)}}
.agency-swatches i{display:block;width:17px;height:17px;border:1px solid rgba(255,255,255,.5)}.agency-swatches i:nth-child(1){background:var(--agency-yellow)}.agency-swatches i:nth-child(2){background:var(--agency-coral)}.agency-swatches i:nth-child(3){background:var(--agency-blue)}.agency-swatches i:nth-child(4){background:var(--agency-lime)}
.agency-ticker{position:absolute;left:-4%;right:-4%;top:49%;height:34px;display:flex;align-items:center;overflow:hidden;color:#101010;background:var(--agency-yellow);border-block:1px solid rgba(255,255,255,.45);transform:rotate(-1.5deg);box-shadow:0 6px 20px rgba(0,0,0,.28);opacity:0;animation:ticker-in 1s var(--ease) .8s forwards}
.agency-ticker span{display:block;min-width:max-content;font-size:8px;font-weight:700;letter-spacing:.18em;animation:agency-marquee 24s linear 1.8s infinite}
@keyframes ticker-in{to{opacity:.88}}@keyframes agency-marquee{to{transform:translateX(-42%)}}
.intro-inner{z-index:3}.intro-over{color:var(--agency-yellow);font-size:8px;letter-spacing:.34em}
.intro-seal{width:min(45vh,29vw,420px);min-width:300px;filter:none}
.intro-seal::before{inset:8%;border-radius:0;background:var(--agency-blue);opacity:.11;clip-path:polygon(8% 14%,92% 2%,100% 86%,14% 100%);transform:rotate(-7deg);filter:none;animation:agency-backplate 6s ease-in-out 2s infinite alternate}
@keyframes agency-backplate{from{transform:rotate(-7deg) scale(.98)}to{transform:rotate(-3deg) scale(1.025)}}
.intro-logo{width:76%;transform:perspective(760px) rotateX(calc(var(--py,0) * -7deg)) rotateY(calc(var(--px,0) * 9deg)) translate3d(calc(var(--px,0) * -7px),calc(var(--py,0) * -7px),34px)}
.intro-logo::before{inset:-24%;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 66%);filter:none}
.intro-logo::after{background:var(--agency-coral);transform:translate3d(10px,13px,-30px);filter:drop-shadow(7px 7px 0 var(--agency-blue)) drop-shadow(10px 15px 14px rgba(0,0,0,.68));opacity:.95;animation:agency-logo-depth 1.4s var(--ease) .55s both}
@keyframes agency-logo-depth{from{opacity:0;transform:translate3d(0,0,-30px)}to{opacity:.95;transform:translate3d(10px,13px,-30px)}}
.intro-logo img{filter:drop-shadow(-3px -2px 0 rgba(102,167,255,.9)) drop-shadow(3px 3px 0 rgba(255,96,71,.82)) drop-shadow(12px 18px 18px rgba(0,0,0,.65))}
.intro-tag{margin-top:3px}.intro-tag i{border-color:var(--agency-yellow);background:var(--agency-yellow)}
.intro-enter{border-color:rgba(255,255,255,.45)}.intro-enter:hover{background:var(--agency-yellow);border-color:var(--agency-yellow);color:#101010}
.intro-coords{color:rgba(255,220,53,.7)}

@media(max-width:900px){.agency-window{left:-75px;top:13%;scale:.8}.agency-social-card{right:-58px;top:17%;scale:.76}.agency-poster{left:-85px;bottom:12%;scale:.72}.agency-metric{right:-70px;bottom:13%;scale:.75}.agency-swatches{right:18px;top:11%}}
@media(max-width:640px){
  .intro-grid{background-size:22px 22px;opacity:.22}.intro-over{font-size:6.5px;letter-spacing:.2em;max-width:290px}.intro-over::before,.intro-over::after{display:none}
  .agency-window{left:-30px;top:15%;scale:.52;transform-origin:left top;opacity:.58!important;animation:agency-mobile-in .8s var(--ease) .2s both,agency-float 6s ease-in-out 1.2s infinite alternate}.agency-social-card{right:-20px;top:19%;scale:.5;transform-origin:right top;opacity:.58!important;animation:agency-mobile-in .8s var(--ease) .35s both,agency-float 6s ease-in-out 1.4s infinite alternate}.agency-poster,.agency-metric{display:none}.agency-swatches{right:20px;top:12%;scale:.75}
  .agency-ticker{top:47%;height:27px;transform:rotate(-2deg)}.agency-ticker span{font-size:6px}
  .intro-seal{width:min(65vw,35vh,305px);min-width:230px}.intro-logo{width:82%}.intro-tag{font-size:6px;gap:7px}
}
@keyframes agency-mobile-in{from{opacity:0;translate:0 14px}to{opacity:.58;translate:0 0}}

/* Hizmet kartları: kontrollü asimetrik ajans kolajı */
.intro-seal::before{display:none!important}
.agency-window{left:max(5.5vw,calc(50% - 720px));top:18%;width:268px;transform:rotate(-2.2deg)}
.agency-window-body strong{font-size:27px;line-height:.84}.agency-window-body em{letter-spacing:.06em}
.agency-social-card{right:max(5.5vw,calc(50% - 720px));top:17%;width:210px;height:218px;transform:rotate(3deg)}
.agency-social-card>strong{max-width:176px;font-size:16px;line-height:.9}.agency-social-card>i{left:15px;right:auto;letter-spacing:.08em}
.agency-poster{left:max(7vw,calc(50% - 690px));bottom:14%;width:230px;height:150px;transform:rotate(1.8deg)}
.agency-poster strong{font-size:29px;line-height:.82}
.agency-metric{right:max(7vw,calc(50% - 690px));bottom:16%;min-width:225px;justify-content:center;transform:rotate(-2deg)}
.agency-metric strong{font-size:38px;letter-spacing:-.04em}.agency-metric span{font-size:6.5px}

@media(max-width:900px){
  .agency-window{left:-72px}.agency-social-card{right:-52px}.agency-poster{left:-74px}.agency-metric{right:-62px}
}
@media(max-width:640px){
  .agency-window{left:-30px;top:15%;width:268px;scale:.52}.agency-social-card{right:-20px;top:19%;width:210px;height:218px;scale:.5}
  .intro-tag{width:min(82vw,290px);display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;font-size:6px;line-height:1.35;text-align:center}
  .intro-tag i{display:none}.intro-tag span{padding:3px 4px;border:1px solid rgba(255,255,255,.16)}
}

/* Net merkez logo + genişletilmiş hizmet panosu */
.agency-ticker{display:none!important}
.intro-seal{width:min(48vh,32vw,450px);min-width:320px}
.intro-logo{width:82%;transform:perspective(800px) rotateX(calc(var(--py,0) * -5deg)) rotateY(calc(var(--px,0) * 6deg)) translate3d(calc(var(--px,0) * -4px),calc(var(--py,0) * -4px),28px)}
.intro-logo::after{background:#252525;transform:translate3d(7px,9px,-24px);filter:drop-shadow(9px 13px 14px rgba(0,0,0,.72));opacity:.78;animation:logo-clean-depth 1.3s var(--ease) .55s both}
@keyframes logo-clean-depth{from{opacity:0;transform:translate3d(0,0,-24px)}to{opacity:.78;transform:translate3d(7px,9px,-24px)}}
/* Beyaz logonun üzerine beyaz gölge binince kenarlar dumanlanıp "soluk" görünüyordu;
   yalnızca zeminden ayıran koyu gölge bırakıldı. */
.intro-logo img{filter:drop-shadow(0 16px 22px rgba(0,0,0,.72))}
.intro-enter{position:relative;width:auto;height:auto;margin-top:20px;display:inline-flex;align-items:center;justify-content:center;gap:14px;border:0;padding:0;color:var(--intro-ivory);background:transparent;animation:enter-control-in 1s var(--ease) 1.5s forwards}
.intro-enter:hover{background:transparent;color:var(--intro-ivory);border:0;transform:translateY(-2px)}
.intro-enter .click{font-size:9px;letter-spacing:.32em}.enter-arrow{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--agency-yellow);color:#101010;font-size:15px;opacity:1;box-shadow:0 6px 18px rgba(0,0,0,.3);transition:transform .3s var(--ease)}
.intro-enter:hover .enter-arrow{transform:translate(3px,-3px) rotate(8deg)}
.intro-coords{margin-top:12px}
.agency-mini-card{position:absolute;width:130px;height:76px;padding:10px 11px;border:1px solid rgba(255,255,255,.58);color:#101010;box-shadow:7px 9px 0 rgba(0,0,0,.3);opacity:0;animation:mini-card-in .9s var(--ease) forwards,mini-card-float 5s ease-in-out 2s infinite alternate}
.agency-mini-card span{position:absolute;right:8px;top:7px;font-size:6px;letter-spacing:.12em}.agency-mini-card strong{display:block;font-family:var(--f-display);font-size:15px;line-height:.84}.agency-mini-card small{position:absolute;left:10px;bottom:7px;font-size:5.5px;letter-spacing:.08em}
.mini-video{left:28%;top:11%;background:var(--agency-blue);transform:rotate(2deg);animation-delay:.7s,2s}.mini-content{right:27%;top:12%;background:var(--agency-lime);transform:rotate(-2.5deg);animation-delay:.85s,2.2s}.mini-ads{left:27%;bottom:10%;background:var(--agency-coral);transform:rotate(-2deg);animation-delay:1s,2.4s}.mini-commerce{right:28%;bottom:11%;background:var(--agency-yellow);transform:rotate(2.5deg);animation-delay:1.15s,2.6s}
@keyframes mini-card-in{from{opacity:0;translate:0 16px;scale:.92}to{opacity:.9;translate:0 0;scale:1}}
@keyframes mini-card-float{from{margin-top:-2px}to{margin-top:4px}}

@media(max-width:1100px){.agency-mini-card{width:112px;height:67px}.mini-video,.mini-ads{left:25%}.mini-content,.mini-commerce{right:24%}}
@media(max-width:640px){
  .intro-seal{width:min(68vw,36vh,315px);min-width:235px}.intro-logo{width:88%;transform:translateZ(22px)}.intro-logo::after{transform:translate3d(5px,7px,-18px)}
  .intro-enter{margin-top:14px}.intro-enter .click{font-size:8px;letter-spacing:.25em}.enter-arrow{width:31px;height:31px}
  .intro-coords{margin-top:9px}
  .agency-mini-grid{position:absolute;left:50%;bottom:58px;width:278px;display:grid;grid-template-columns:1fr 1fr;gap:7px;transform:translateX(-50%)}
  .agency-mini-card{position:relative;inset:auto!important;width:auto;height:42px;padding:7px 8px;transform:none!important;box-shadow:4px 5px 0 rgba(0,0,0,.26);animation:agency-mobile-in .75s var(--ease) both}
  .agency-mini-card strong{font-family:var(--f-mono);font-size:6.5px;line-height:1.1;letter-spacing:.06em}.agency-mini-card small{left:auto;right:7px;bottom:6px;font-size:4.5px}.agency-mini-card span{font-size:5px}
  .mini-video{animation-delay:.65s}.mini-content{animation-delay:.75s}.mini-ads{animation-delay:.85s}.mini-commerce{animation-delay:.95s}
}
@media(max-width:640px) and (max-height:700px){.agency-mini-grid{display:none}.intro-seal{width:min(55vw,34vh)}}

/* Görseldeki slogan tipografisi */
.intro-slogan{width:min(78vw,360px);margin:0 0 8px;padding:0;display:flex;flex-direction:column;align-items:center;color:var(--intro-ivory);font-size:inherit;letter-spacing:0;text-transform:none;line-height:.88;opacity:0;transform:translateY(12px);animation:slogan-stack-in 1s var(--ease) .45s forwards}
.intro-slogan::before,.intro-slogan::after{display:none}
.intro-slogan span{display:block;opacity:1;transform:none;animation:none;font-family:'Courier New',Courier,monospace;font-size:clamp(20px,2vw,29px);font-weight:400;letter-spacing:-.075em;line-height:.9;text-transform:lowercase;color:var(--intro-ivory)}
.intro-slogan strong{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;min-height:66px;margin-top:5px;padding:5px 20px 8px;font-family:'Arial Narrow','Roboto Condensed','Syne',Arial,sans-serif;font-size:clamp(39px,4vw,56px);font-weight:900;line-height:1;letter-spacing:-.045em;text-align:center;text-transform:uppercase;color:#0b0b0b;background:repeating-linear-gradient(102deg,rgba(255,255,255,.16) 0 3px,transparent 3px 8px),var(--agency-yellow);clip-path:polygon(1% 3%,99% 0,98% 96%,0 100%);transform:rotate(-1.2deg);text-shadow:none}
@keyframes slogan-stack-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}

@media(max-width:640px){
  .intro-slogan{width:240px;margin-bottom:5px}.intro-slogan span{font-size:17px;line-height:.88}.intro-slogan strong{min-height:47px;margin-top:4px;padding:4px 14px 6px;font-size:31px;line-height:1}
}
@media(max-width:640px) and (max-height:700px){.intro-slogan{display:none}}

/* Mobil: dağınık fakat kontrollü hizmet kolajı */
@media(max-width:640px){
  .intro-tag{display:none!important}
  .intro-seal{width:min(72vw,38vh,330px);min-width:248px}
  .intro-logo{width:94%;transform:translateZ(30px)}
  .intro-logo::after{transform:translate3d(8px,10px,-22px);opacity:.9;filter:drop-shadow(10px 15px 16px rgba(0,0,0,.78))}
  .intro-enter{margin-top:10px}
  .agency-window{left:-38px;top:12%;width:268px;scale:.44;transform-origin:left top;opacity:.54!important;animation:agency-mobile-in .8s var(--ease) .15s both,agency-float 6s ease-in-out 1.3s infinite alternate}
  .agency-social-card{right:-27px;top:16%;width:210px;height:218px;scale:.44;transform-origin:right top;opacity:.54!important;animation:agency-mobile-in .8s var(--ease) .25s both,agency-float 6s ease-in-out 1.5s infinite alternate}
  .agency-poster{display:block;left:-8px;top:64%;bottom:auto;width:230px;height:150px;scale:.4;transform-origin:left top;opacity:.62!important;animation:agency-mobile-in .8s var(--ease) .45s both,agency-float 6s ease-in-out 1.8s infinite alternate}
  .agency-metric{display:flex;right:-10px;top:65%;bottom:auto;min-width:225px;scale:.41;transform-origin:right top;opacity:.62!important;animation:agency-mobile-in .8s var(--ease) .55s both,agency-float 6s ease-in-out 2s infinite alternate}
  .agency-mini-grid{position:static;display:block;width:auto;transform:none}
  .agency-mini-card{position:absolute;width:112px;height:58px;padding:8px 9px;box-shadow:5px 6px 0 rgba(0,0,0,.3);opacity:.58!important;animation:agency-mobile-in .75s var(--ease) both,mini-card-float 5s ease-in-out 1.5s infinite alternate}
  .agency-mini-card strong{font-family:var(--f-display);font-size:11px;line-height:.86;letter-spacing:0}.agency-mini-card small{left:8px;right:auto;bottom:6px;font-size:4.5px}.agency-mini-card span{right:7px;top:6px;font-size:5px}
  .mini-video{inset:37% auto auto -18px!important;transform:rotate(-4deg)!important;animation-delay:.4s,1.5s}
  .mini-content{inset:39% -15px auto auto!important;transform:rotate(4deg)!important;animation-delay:.5s,1.7s}
  .mini-ads{inset:auto auto 5.5% 15px!important;transform:rotate(2.5deg)!important;animation-delay:.65s,1.9s}
  .mini-commerce{inset:auto 13px 7% auto!important;transform:rotate(-3deg)!important;animation-delay:.75s,2.1s}
}
@media(max-width:640px) and (max-height:700px){
  .intro-slogan{display:flex}.agency-window,.agency-social-card{display:block}.agency-mini-grid{display:block}
  .intro-seal{width:min(58vw,32vh);min-width:205px}.intro-slogan span{font-size:14px}.intro-slogan strong{min-height:39px;font-size:26px}.agency-poster,.agency-metric{top:62%}
}

/* Sabit masaüstü kartları + odaklı mobil giriş */
@media(min-width:641px){
  .agency-window{animation:agency-card-in 1.05s var(--ease) .35s both}
  .agency-social-card{animation:agency-card-in 1.05s var(--ease) .5s both}
  .agency-poster{animation:agency-card-in 1.05s var(--ease) .65s both}
  .agency-metric{animation:agency-card-in 1.05s var(--ease) .8s both}
  .mini-video{animation:mini-card-in .85s var(--ease) .55s both}
  .mini-content{animation:mini-card-in .85s var(--ease) .68s both}
  .mini-ads{animation:mini-card-in .85s var(--ease) .81s both}
  .mini-commerce{animation:mini-card-in .85s var(--ease) .94s both}
}
@media(max-width:640px){
  /* Hizmet kartları telefonda da görünür: masaüstündeki dağınık yerleşim yerine
     logonun çevresinde dört köşeye oturur, küçültülüp tam opaklıkta basılır. */
  .intro-agency-canvas{display:block;z-index:0}
  .intro-inner{position:relative;z-index:2;width:100%;padding:0 18px;align-items:center;justify-content:center}
  .agency-window,.agency-social-card,.agency-poster,.agency-metric{opacity:1!important}
  /* Kartlar ekran kenarından taşmıyor: dördü de 12px iç boşlukla tam görünür
     durur, böylece kırpılmış değil bilinçli yerleştirilmiş görünürler. */
  .agency-window{display:block;left:12px;top:7%;width:268px;scale:.5;transform:rotate(-3deg);transform-origin:left top;
    animation:agency-mobile-in .8s var(--ease) .2s both}
  .agency-social-card{display:block;right:12px;top:7%;width:210px;height:218px;scale:.5;transform:rotate(3deg);transform-origin:right top;
    animation:agency-mobile-in .8s var(--ease) .32s both}
  .agency-poster{display:block;left:12px;top:auto;bottom:11%;width:230px;height:150px;scale:.5;transform:rotate(2deg);transform-origin:left bottom;
    animation:agency-mobile-in .8s var(--ease) .44s both}
  .agency-metric{display:flex;right:12px;top:auto;bottom:11%;min-width:225px;scale:.5;transform:rotate(-2deg);transform-origin:right bottom;
    animation:agency-mobile-in .8s var(--ease) .56s both}
  /* Alt sıradaki dört küçük kart ile "Keşfet" düğmesi aynı alana düşüyor. */
  .agency-mini-grid,.agency-swatches{display:none}
  .intro-slogan{width:min(88vw,330px);margin-bottom:12px}
  .intro-slogan span{font-size:24px;line-height:.86;letter-spacing:-.085em}
  .intro-slogan strong{min-height:58px;padding:6px 18px 8px;font-size:40px;line-height:1}
  /* Logo kaynağı 500×500: yüksek yoğunluklu ekranda aşırı büyütülünce yumuşuyor.
     Ölçü, büyütmeyi ~1.4 katın altında tutacak şekilde sınırlanır. */
  .intro-seal{width:min(70vw,38vh,320px);min-width:250px;margin-inline:auto}
  .intro-logo{width:96%;max-width:300px;margin-inline:auto;transform:translateZ(34px)}
  .intro-logo::after{transform:translate3d(9px,11px,-24px);opacity:.92}
  .intro-enter{min-height:52px;margin-top:18px;padding:9px 10px 9px 22px;gap:14px;border:1px solid rgba(255,220,53,.92);border-radius:999px;background:var(--agency-yellow);color:#0b0b0b;box-shadow:0 13px 34px rgba(0,0,0,.38)}
  .intro-enter:hover{background:var(--agency-yellow);color:#0b0b0b;transform:translateY(-2px)}
  .intro-enter .click{font-size:8.5px;font-weight:700;letter-spacing:.2em}
  .enter-arrow{width:34px;height:34px;background:#0b0b0b;color:var(--agency-yellow);box-shadow:none}
  .intro-coords{display:none}
}
@media(max-width:640px) and (max-height:700px){
  .intro-slogan{display:flex;width:280px;margin-bottom:7px}.intro-slogan span{font-size:19px}.intro-slogan strong{min-height:47px;font-size:32px}
  .intro-seal{width:min(66vw,36vh);min-width:220px}.intro-enter{margin-top:9px;min-height:48px}
  /* Kısa ekranda ortadaki içerik yukarı/aşağı yaklaşıyor: kartlar küçülüp
     köşelere çekilerek slogan ve "Keşfet" düğmesiyle çakışmaz. */
  .agency-window,.agency-social-card{top:4%;scale:.42}
  .agency-poster,.agency-metric{bottom:8%;scale:.42}
}
@media(max-width:640px) and (max-height:620px){.intro-seal{width:min(48vw,38vh);min-width:190px}.agency-window,.agency-social-card{display:none}}

/* Düşük güçlü telefonlarda görünümü koruyup yalnızca sürekli GPU boyaması yapan
   dekoratif döngüleri durdurur. Giriş animasyonu ve tüm etkileşimler aynen kalır. */
@media(max-width:760px),(prefers-reduced-motion:reduce){
  .intro-grain,.dial-ticks,.dial-arc,.orbit::after,.motif-line,.intro-sheen{animation:none!important}
  .intro-grain{transform:none!important}
  /* logo-reveal animasyonu burada durduruluyor; ama açılış durumu base kuralda
     clip-path:inset(100% 0 0 0) olduğu için animasyonsuz logo tamamen kırpılıp
     görünmez kalıyordu — geriye yalnızca ::after koyu silüeti düşüyordu.
     Animasyonu kapatan her yerde bitiş durumu da elle verilmeli. */
  .intro-logo img{opacity:1!important;transform:none!important;animation:none!important;clip-path:none!important}
}
html.lite-motion .grain{display:none}

/* Atlama bağlantısı: normalde görünmez, Tab'a basılınca sol üstte belirir. */
.skip-link{position:fixed;top:0;left:0;z-index:200;transform:translateY(-140%);
  padding:14px 22px;min-height:44px;border:0;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  background:var(--paper);color:var(--ink);cursor:pointer;
  transition:transform .2s cubic-bezier(.16,1,.3,1)}
.skip-link:focus{transform:translateY(0)}

/* ── Klavye odağı ────────────────────────────────────────────────────────────
   Ana menü, portföy/iletişim kartları, hizmet düğümleri, marka ve tema
   düğmelerinin hiçbirinde görünür odak yoktu; klavyeyle gezen kullanıcı nerede
   olduğunu göremiyordu (WCAG 2.4.7).

   :focus-visible kullanılır: tarayıcı bunu yalnızca klavye/yardımcı teknoloji
   girişinde eşleştirir, fareyle veya dokunarak tıklayanda çerçeve çıkmaz —
   yani görünüm normal kullanımda hiç değişmez.

   currentColor seçilir ki hem koyu hem açık temada okunur kalsın; 2px çerçeve
   + 3px boşluk ince arayüz çizgileriyle karışmaz. */
:where(a, button, [tabindex]:not([tabindex="-1"]), input, select, textarea):focus-visible{
  outline:2px solid currentColor;
  outline-offset:3px;
  border-radius:1px;
}
/* Kart yüzeyi zemine bitişik olduğundan çerçeve dışarı taşmalı, kırpılmamalı. */
.portfolio-card:focus-visible,.media-card:focus-visible,.contact-card:focus-visible,
.file-item:focus-visible,.node:focus-visible{
  outline-offset:4px;
  position:relative;
  z-index:3;
}
/* Form alanları `outline:none` ile sıfırlanmış; :where() sıfır özgüllükte
   olduğu için o kural kazanıyordu. Burada açıkça geri verilir. */
.qf-field input:focus-visible,.qf-field select:focus-visible,.qf-field textarea:focus-visible{
  outline:2px solid currentColor;
  outline-offset:4px;
}

/* Dokunmatikte filtre çipleri 34px yüksekliğindeydi; parmak ucu ~44px olduğu için
   yan çipe basmak kolaydı. Yazı tipi, boyutu, rengi ve yatay boşluk aynı kalır —
   yalnızca dikey dokunma alanı büyür. Masaüstünde hiçbir şey değişmez. */
@media(hover:none),(max-width:640px){
  .portfolio-filter,.media-filter{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .media-filter-row.is-sub .media-filter{min-height:44px}

  /* Her sayfada duran küçük kontroller (marka düğmesi 22px, tema anahtarı 29px,
     oynatıcı küçültme 27px). Bunları büyütmek yerleşimi bozardı; görünmez bir
     katman dokunma alanını 44px'e tamamlar, görsel ölçü aynı kalır.
     Katman yalnızca dikeyde taşar, yan yana duran tema düğmeleri birbirinin
     dokunuşunu çalmaz. */
  .brand,.theme-option,.player-collapse{position:relative}
  .brand::after,.theme-option::after,.player-collapse::after{
    content:'';position:absolute;left:50%;top:50%;translate:-50% -50%;
    width:max(100%,44px);height:44px}

  /* Harita kontrolleri yan yana dizili; katman yalnızca dikeyde büyütülür,
     genişlik %100'de kalır ki komşu düğmenin dokunuşunu çalmasın. */
  .geo-controls button,.geo-walk-toggle,.geo-btn{position:relative}
  .geo-controls button::after,.geo-walk-toggle::after,.geo-btn::after{
    content:'';position:absolute;left:0;right:0;top:50%;translate:0 -50%;height:44px}

  /* Yüzen geri düğmeleri 43px'te kalıyordu. */
  .btn-back,.btn-detail-back{min-height:44px}
}
/* Son kalite katman?: odak, mobil okunabilirlik ve gizli g?r?n?m maliyeti. */
.page[tabindex="-1"]:focus,.detail-page[tabindex="-1"]:focus,.youtube-page[tabindex="-1"]:focus{outline:none}
.page:not(.show),.detail-page:not(.show),.youtube-page:not(.show){contain:layout style paint;contain-intrinsic-size:auto 900px}
.intro-enter{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.intro-enter:focus-visible{outline:3px solid var(--agency-yellow);outline-offset:5px}
.qf-field input:user-invalid,.qf-field select:user-invalid,.qf-field textarea:user-invalid{border-bottom-color:#e45252}
.qf-field input:user-valid,.qf-field select:user-valid,.qf-field textarea:user-valid{border-bottom-color:currentColor}
@media(max-width:650px){
  .track-youtube{font-size:10px;line-height:1.25;min-height:44px;display:inline-flex;align-items:center}
  .track-actions .track-action{min-width:44px;min-height:44px;font-size:10px}
  .music-page .track-row{min-height:76px}
  .picker-trigger,.music-home-return,.release-actions button,.release-actions a{min-height:44px;font-size:10px}
  .home-artist-portal>i,.portal-index,.intro-coords{font-size:9px}
}
@media(prefers-reduced-motion:reduce){
  .intro-enter,.file-item,.portfolio-card,.media-card,.contact-bar{animation:none!important;transition-duration:.01ms!important}
  .file-item,.portfolio-card,.media-card,.intro-enter{opacity:1!important;transform:none!important}
  .page,.detail-page,.youtube-page{transition-duration:.01ms!important}
  .chase-mascot,.chase-counter,.chase-toggle,.disco-btn{display:none!important}
}

/* ── Giriş perdesi: "devam etmek için tıkla" çağrısı ──
   Alt şeritteki 9px mono yazı koyu zeminde neredeyse okunmuyordu; ziyaretçi
   nereye tıklayacağını göremiyordu. Çağrı, slogandaki "BULUCUSU" rozetiyle
   aynı dile taşındı: sarı yama, sıkışık siyah harf, hafif eğim.
   Yanındaki ok kaldırıldı — yama ile ok birlikte tek satır oluşturduğu için
   yazı, üstündeki logo ve sloganın soluna kayıyordu. Tek çocuk kalınca yama
   perdenin tam ortasına oturur. */
.intro-enter{width:auto;height:auto;display:inline-flex;justify-content:center;gap:0}
@media(min-width:641px){
  .intro-enter .click{
    display:inline-flex;align-items:center;justify-content:center;
    padding:7px 20px 9px;
    font-family:'Arial Narrow','Roboto Condensed','Syne',Arial,sans-serif;
    font-size:clamp(19px,1.85vw,27px);font-weight:900;line-height:1;
    letter-spacing:-.02em;text-transform:uppercase;color:#0b0b0b;
    background:repeating-linear-gradient(102deg,rgba(255,255,255,.16) 0 3px,transparent 3px 8px),var(--agency-yellow);
    clip-path:polygon(1% 4%,99% 0,98% 96%,0 100%);
    transform:rotate(-1.2deg);
    transition:transform .35s var(--ease),filter .35s var(--ease)
  }
  .intro-enter:hover .click,.intro-enter:focus-visible .click{transform:rotate(-1.2deg) translateY(-3px);filter:brightness(1.07)}
}
/* Dar ekranda düğme zaten sarı hap biçiminde; yama üstüne yama binmesin diye
   yalnızca yazı büyütülür. Sağ boşluk oka ayrılmıştı, artık iki yan eşit. */
@media(max-width:640px){
  .intro-enter{padding-inline:22px}
  .intro-enter .click{
    font-family:'Arial Narrow','Roboto Condensed','Syne',Arial,sans-serif;
    font-size:15px;font-weight:900;letter-spacing:-.01em;text-transform:uppercase;text-align:center
  }
}
@media(prefers-reduced-motion:reduce){
  .intro-enter .click{transition-duration:.01ms!important}
}

/* ═══ SIK SORULAN SORULAR ═══
   Açılır satırlar <details>/<summary> ile kurulu; görsel dil hizmet akışındaki
   kapsam gezginiyle aynı — ince ayraç, mono numara, sağda +/− işareti.
   Ok yerine çizgilerden kurulu bir işaret kullanılır: font'a bağlı değil,
   döndürme ile artı/eksi arasında geçer. */
.faq-list{max-width:46em;margin-top:22px;border-top:var(--hair)}
.faq-item{border-bottom:var(--hair)}
.faq-item summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:14px;padding:18px 2px;transition:opacity .25s var(--ease)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{opacity:.72}
.faq-item summary:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.faq-index{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;opacity:.45;padding-top:.35em}
.faq-q{font-family:var(--f-display);font-weight:700;font-size:clamp(15px,1.6vw,19px);line-height:1.35;letter-spacing:-.01em}
/* İşaret: yatay çizgi sabit, dikey çizgi açılınca kaybolur (+ → −). */
.faq-sign{position:relative;width:15px;height:15px;margin-top:.3em;flex:none;opacity:.55}
.faq-sign::before,.faq-sign::after{content:'';position:absolute;left:0;top:7px;width:15px;height:1px;background:currentColor;transition:transform .3s var(--ease)}
.faq-sign::after{transform:rotate(90deg)}
.faq-item[open] .faq-sign::after{transform:rotate(0)}
.faq-a{margin:0 0 20px;padding-left:calc(10px + 14px);max-width:40em;font-size:15px;line-height:1.75;font-weight:300;opacity:.84}
.faq-page .contact-cta{margin-top:30px}
@media(max-width:640px){
  .faq-list{max-width:none}
  .faq-item summary{gap:10px;padding:15px 2px}
  .faq-q{font-size:14.5px}
  .faq-a{padding-left:0;font-size:14px;line-height:1.7}
}
@media(prefers-reduced-motion:reduce){
  .faq-sign::before,.faq-sign::after{transition-duration:.01ms!important}
}

/* ═══════════════════════════════════════════════════════════════════════════
   MOBİL DÜZELTMELER — 22 Ağustos 2026
   Dosyanın sonunda duruyorlar: aynı özgüllükteki önceki kuralları
   sırayla geçebilmeleri gerekiyor.
   ═══════════════════════════════════════════════════════════════════════════ */

@media(max-width:650px){

  /* ── Şarkı satırındaki düğmeler üst üste biniyordu ────────────────────────
     Ölçtük: satırın son sütunu 62 piksel ayrılmış, ama içindeki iki düğme
     ("YouTube'da dinle" + "Dinle") 139 piksel yer kaplıyordu. Kutu
     justify-self:end olduğu için taşan kısım SOLA doğru büyüyüp şarkı
     adının üzerine biniyordu — başlık 281'de bitiyor, düğmeler 216'da
     başlıyordu; 65 piksellik çakışma.

     Sebep, iki kuralın çakışmasıydı: önce mobil için düğmeler 6 punto/22
     piksele küçültülmüş, sonra dokunma hedefi kuralı hepsini yeniden 44
     piksele büyütmüştü. Küçültmek zaten çözüm değildi — 6 punto yazı
     telefonda okunmuyor.

     Doğru çözüm: düğmeler kendi satırına iner ve satırın tamamını
     paylaşır. Dokunma hedefleri 44 piksel kalır, hiçbir şey binmez. */
  .music-page .track-row{
    grid-template-columns:24px 58px minmax(0,1fr);
    row-gap:9px;
    align-items:center;
    padding:11px 12px;
  }
  .music-page .track-row .track-actions{
    grid-column:1 / -1;
    justify-self:stretch;
    flex-direction:row;
    align-items:stretch;
    gap:8px;
  }
  .music-page .track-row .track-actions > *{flex:1 1 0;min-width:0}
  .music-page .track-row .track-youtube{
    min-height:44px;padding:8px 10px;font-size:9px;letter-spacing:.06em;
    white-space:normal;text-align:center;line-height:1.25;
  }
  .music-page .track-row .track-action{min-height:44px;justify-self:stretch;width:100%}
  .music-page .track-row strong{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3}

  /* ── Alttaki müzik çubuğu telefonda dağılıyordu ───────────────────────────
     Çubuk masaüstü için 7 sütunlu tek satır olarak kurulmuş. 390 piksellik
     ekranda bu 7 sütun sığmayınca içerik kendi içinde eziliyor, yükseklik
     128 piksele çıkıyor, sanatçı adı "E..." diye kesiliyor, "SESİ KAPAT"
     yazısı satır atlıyordu — ekranın üçte birini kaplayan, okunmayan bir
     kutu.

     Telefonda üç satıra ayrılır:
       1. ilerleme çubuğu (tam genişlik)
       2. şarkı bilgisi + geri / oynat / ileri / kapat
       3. sanatçı ve şarkı seçiciler (yan yana, eşit)
     Ses düzeyi, sesi kapat ve küçültme düğmesi telefonda gizlenir:
     telefonun kendi ses tuşları zaten var, yer ise kısıtlı. */
  .persistent-player{
    left:8px;right:8px;bottom:8px;
    grid-template-columns:minmax(0,1fr) auto auto auto auto;
    grid-template-areas:
      "zaman   zaman   zaman zaman  zaman"
      "kimlik  onceki  oynat sonraki kucult"
      "sanatci sanatci parca parca  kapat";
    gap:9px;
    padding:11px 12px;
    min-height:0;
  }
  /* İlerleme çubuğu masaüstünde position:absolute ile çubuğun üstüne
     bindiriliyor ve altındaki içerik padding-top ile aşağı itiliyordu.
     Telefonda bu, çubuğun şarkı adının ÜZERİNE binmesine yol açıyordu.
     Burada normal akışa alınıp ızgaranın ilk satırı yapılır. */
  .persistent-player .player-timeline{
    position:static;left:auto;right:auto;top:auto;
    grid-area:zaman;
  }
  .persistent-player{padding-top:11px}
  .persistent-player .player-timeline time{font-size:9px}

  /* ── Sanatçı ve şarkı seçici telefonda GİZLİYDİ ───────────────────────────
     ".persistent-player .player-picker{display:none}" kuralı 860 pikselin
     altında iki seçiciyi de kapatıyordu. Yani telefonda müzik çalarken
     sanatçı ya da şarkı değiştirmenin hiçbir yolu yoktu — çubuktan
     değiştirilemiyor, listeye dönmek gerekiyordu.
     Üçüncü satırda, yan yana ve tam genişlikte geri getirilir. */
  .persistent-player .player-picker{display:block}
  .persistent-player .player-identity{grid-area:kimlik;min-width:0}
  .persistent-player .player-identity strong{max-width:none;font-size:12px}
  .persistent-player #playerPrev{grid-area:onceki}
  .persistent-player #playerToggle{grid-area:oynat}
  .persistent-player #playerNext{grid-area:sonraki}
  .persistent-player #playerClose{grid-area:kapat}
  /* Küçültme düğmesi masaüstünde position:absolute ile çubuğun 27 piksel
     ÜSTÜNE tutturulmuş küçük bir kulakçık. Telefonda bu kulakçık çubuğun
     dışında, havada duruyordu ve hiçbir yerleşim kuralına girmiyordu
     (ne ızgaraya ne flex'e — mutlak konumlu öğe akışta değildir).
     Normal akışa alınıp kontrol satırının bir üyesi yapılır. */
  .persistent-player #playerCollapse{
    position:static;inset:auto;
    grid-area:kucult;
    width:auto;height:44px;
    display:grid;place-items:center;
    border-radius:0;
  }
  .persistent-player #artistPicker{grid-area:sanatci;min-width:0}
  .persistent-player #trackPicker{grid-area:parca;min-width:0;width:auto}
  .persistent-player .track-picker .picker-menu{left:0;right:0;width:auto}

  /* Telefonda yeri olmayan ve karşılığı cihazda bulunan denetimler.
     Küçültme düğmesi listede YOK: çubuğu kareye indirmek için gerekiyor. */
  .persistent-player .player-pulse,
  .persistent-player #playerMute,
  .persistent-player .player-volume{display:none}

  /* Dokunma hedefleri parmakla rahat basılacak ölçüde. */
  .persistent-player #playerPrev,
  .persistent-player #playerNext,
  .persistent-player #playerToggle,
  .persistent-player #playerCollapse,
  .persistent-player #playerClose{min-width:44px;height:44px;padding:0 10px;
    border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff}
  .persistent-player #playerToggle{font-size:9px;letter-spacing:.06em}
  .persistent-player .picker-trigger{height:44px}

  /* Sayfanın altındaki boşluğa elle dokunulmaz: onmart.js çubuğun gerçek
     yüksekliğini ölçüp --player-clear değişkenine yazıyor, sayfa dolgusu
     ondan hesaplanıyor. Çubuk üç satıra çıktığında boşluk kendiliğinden
     büyür; sabit bir sayı yazmak bu ölçümü bozardı. */
}

/* ═══════════════════════════════════════════════════════════════════════════
   ALT ÇUBUKLARIN YERİ DEĞİŞTİ — 23 Ağustos 2026

   Eskiden müzik çubuğu ekranın en altındaydı; müzik çalmaya başlayınca
   iletişim çubuğu (Ara / WhatsApp / Instagram / Teklif Al) onun üstüne
   itiliyordu. Ölçtük: iletişim çubuğu alt kenardan 124 piksel yukarıda,
   havada asılı duruyordu. Sitenin asıl çağrı düğmeleri ekranın kenarından
   kopuyor, alt taraf iki katlı ve dağınık görünüyordu.

   Sıra ters çevrildi: iletişim çubuğu HER ZAMAN alt kenarda kalır, müzik
   çubuğu onun üstünde yüzer. Böylece tıklanması gereken düğmeler her zaman
   parmağın/imlecin gittiği yerde durur; müzik çubuğu ikincil kalır ve
   küçültüldüğünde de aynı hizada yüzmeye devam eder.

   --contact-bar-h değerini onmart.js ölçüp yazar (çubuğun yüksekliği
   ekran genişliğine göre değişiyor); JS çalışmazsa yedek değer kullanılır.
   ═══════════════════════════════════════════════════════════════════════════ */
body.has-music-player .contact-bar{bottom:0}
.persistent-player{bottom:calc(var(--contact-bar-h, 56px) + 12px)}

@media(max-width:650px){
  .persistent-player{left:8px;right:8px;bottom:calc(var(--contact-bar-h, 86px) + 8px)}
}

/* Sanatçı seçicideki profil fotoğrafı.
   Görsel dairenin içini tamamen doldurur; yüklenemezse img kendini siler ve
   altındaki baş harf ortaya çıkar (bkz. onmart.js → initPersistentPlayer). */
.picker-artist-dot{position:relative;overflow:hidden}
.picker-artist-dot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* ═══════════════════════════════════════════════════════════════════════════
   TELEFONDA KÜÇÜLTÜLMÜŞ ÇALAR — 23 Ağustos 2026

   Müzik çubuğu telefonda üç satır (ilerleme / kontroller / seçiciler) ve
   ekranın altından epey yer kaplıyor. Sayfayı rahat okumak isteyen biri için
   çubuğun içine bir küçültme düğmesi kondu: basıldığında çubuk 62×62'lik
   küçük bir kareye iner, sağ alt köşede durur. Tekrar basıldığında eski
   hâline döner — şarkı ve sanatçı seçicileri geri gelir.

   Kare içinde yalnızca küçültme düğmesi görünür; üstünde bir nota işareti,
   altında yön oku vardır.

   ÖNEMLİ: .persistent-embed (YouTube çerçevesi) gizlenmez. display:none
   verilen bir iframe'de tarayıcılar sesi durdurur — küçültmek müziği
   kapatırdı. Bu yüzden gizleme kuralı onu bilerek dışarıda bırakır.
   ═══════════════════════════════════════════════════════════════════════════ */
@media(max-width:650px){
  .persistent-player.collapsed{
    /* Izgara değil FLEX: ızgara satırı, içindeki düğmenin kendi yüksekliği
       kadar (38px) kalıyor ve düğme 62'lik karenin dışına taşıyordu.
       Flex'te tek çocuk kutunun tamamını kaplar. */
    display:flex;align-items:stretch;
    left:auto;right:8px;
    width:62px;height:62px;min-height:0;
    padding:0;gap:0;
    border-radius:16px;
    box-shadow:0 10px 30px rgba(0,0,0,.55);
  }
  /* Kare içinde her şey gizlenir — ses çerçevesi ve küçültme düğmesi hariç. */
  .persistent-player.collapsed > *:not(.persistent-embed):not(#playerCollapse){display:none}

  .persistent-player.collapsed #playerCollapse{
    position:static;inset:auto;
    grid-area:auto;
    flex:1 1 auto;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
    width:100%;height:100%;min-width:0;min-height:0;padding:0;
    border:0;background:transparent;color:#fff;
    font-size:15px;line-height:1;border-radius:16px;
  }
  /* Nota işareti: kutunun müzik çaları olduğunu tek bakışta anlatır. */
  .persistent-player.collapsed #playerCollapse::before{
    content:'♪';font-size:19px;line-height:1;display:block;
  }
}
