/* ============================================================
   INTERDI -- Typographic, Minimal, Section-Clear
   #e92038 · #020202 · #ffffff | Steelfish (CDN) + Poppins
   Max-width: 1400px everywhere
============================================================ */

/* ── FONT YÜKLEME ──────────────────────────────────────────
   Steelfish & Poppins: HTML <head> içinde <link> ile yükleniyor.

   ⚠️ BÜYÜK "I" BOZULMASI (BUiLD / DAİLY / FİVE DİSCİPLİNES):
   Sebep font DEĞİL → CSS "text-transform:uppercase" tarayıcının/OS'un
   locale'ini (Türkçe) baz alıp küçük "i" harfini noktalı "İ" yapıyordu.
   <html lang="en"> her tarayıcıda bu Unicode özel-casing'i engellemiyor.
   ÇÖZÜM (A — kalıcı): Sorunlu başlıklarda text-transform:uppercase KALDIRILDI
   ve metin HTML kaynağında zaten BÜYÜK yazıldı. Böylece transform katmanı
   devreye girmez → "i"→"İ" dönüşümü fiziksel olarak imkânsız.
   Düzeltilen yerler aşağıda "KALDIRILDI → TR locale i→İ bug" notuyla işaretli. */

/* ── ÇÖZÜM (B — GENEL/KALICI) ──────────────────────────────
   CSS `-webkit-locale` özelliği text-transform'ın hangi DİL kurallarını
   kullanacağını sabitler. "en" verince küçük "i" → BÜYÜK "I" olur,
   noktalı "İ" ASLA üretilmez — OS/tarayıcı dili Türkçe olsa, panel
   <html lang="tr"> olsa bile. Bu, sitedeki TÜM uppercase metinleri
   (mevcut + gelecek) kökünden korur. Site komple İngilizce olduğu için
   güvenli. (Firefox uppercase'i zaten lang="en" ile doğru yapar.) */
html, body, * {
  -webkit-locale: "en";
}

/* ── Variables ──────────────────────────────────────────── */
:root {
  --red:    #e92038;
  --bg:     #020202;
  --bg2:    #080808;
  --bg3:    #0f0f0f;

  /* ── Site-wide SECTION BACKGROUND SCALE ───────────────
     Use these tokens for ALL section backgrounds so the
     rhythm stays consistent across every page.
     Order from darkest → lightest.                       */
  --sec-1:  #020202;  /* Default / hero          (= --bg)  */
  --sec-2:  #070707;  /* 1st step up                       */
  --sec-3:  #0a0a0a;  /* 2nd step up                       */
  --sec-4:  #0f0f0f;  /* 3rd step up (accent)    (= --bg3) */

  --line:   #1c1c1c;
  --gray:   #666;
  --dim:    #3a3a3a;
  --white:  #fff;
  --sf:     'Steelfish', sans-serif;
  /* NOT: Steelfish uppercase başlıklarda küçük 'i' büyütülünce noktalı 'İ' (dotted) çıkabiliyor.
     Çözüm aşağıda: .sf / uppercase başlıklarda dilden bağımsız İngilizce büyük 'I' davranışı. */
  --pp:     'Poppins', sans-serif;
  --max:    1400px;
  --px:     clamp(1.5rem, 4vw, 4rem);
  /* Fullscreen menü üst hizası — nav linkleri ve kırmızı panel aynı yerden başlar.
     Logo yüksekliği ~72px (siyah panelde nav, logonun ALTINDAN başlar). */
  --menu-top:      14vh;
  --menu-logo-h:   72px;
}

/* ── Reset ──────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
html, body { overflow-x: hidden; }
/* html arkaplanı da siyah — sayfa geçişlerinde (unload/load arası)
   browser varsayılan beyaz arka planı asla görünmesin */
html { background: #000; }
body { background: var(--bg); font-family: var(--pp); color: var(--white); }

/* ── SAYFA AÇILIŞI (intro fade) ──────────────────────────────
   İçerik hazır olana (nav/logo enjekte) kadar body çok hafif soluk + 1px aşağı;
   menu.js `inject()` sonrası <html> 'is-ready' alır → her şey AYNI ANDA yumuşak
   süzülerek gelir. Böylece "önce hero, sonra logo pat diye gelir" sıçraması biter.
   JS yoksa (no-js) içerik daima görünür kalır. */
html:not(.is-ready) body { opacity: 0; }
body {
  opacity: 1;
  transition: opacity .5s ease, transform .5s ease;
}
html.is-ready body { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  html:not(.is-ready) body { opacity: 1; }
  body { transition: none; }
}

/* ── Custom cursor disabled site-wide — native OS cursor only.
   Keeping selectors as explicit resets in case legacy markup loads. */
body { cursor: auto; }
a, button, [role="button"], [role="link"] { cursor: pointer; }
ul { list-style: none; }
img { max-width: 100%; display: block; height: auto; }
::selection { background: var(--red); color: #fff; }

/* ── Global anchor reset ──────────────────────────────────
   Tarayıcının varsayılan mavi/mor underline ve :visited
   mor rengini her yerde kapat. Link renkleri her bileşende
   kendi CSS kuralıyla belirlenir. */
a,
a:link,
a:visited,
a:hover,
a:active,
a:focus {
  color: inherit;
  text-decoration: none;
}
a:visited { color: inherit; } /* WebKit için ekstra güvence */
button { color: inherit; }

/* ── Container ──────────────────────────────────────────── */
.container {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--px);
  width: 100%;
}
.nav-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--px);
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* ── Legacy variable aliases (inner-page HTML compatibility) */
:root {
  --main:      var(--bg);
  --darkgray:  var(--bg2);
  --black:     #000;
  --steelfish: 'Steelfish', sans-serif;
  --poppins:   'Poppins', sans-serif;
}

/* ── Global Type Tokens ─────────────────────────────────── */
.display-title {
  font-family: var(--sf);
  font-size: clamp(2.8rem, 6vw, 5.5rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -.025em;
  line-height: 1.02;
  color: var(--white);
}
.display-title .accent { color: var(--red); }
.text-red { color: var(--red); }

.section-label {
  font-family: var(--pp);
  font-size: .6rem;
  letter-spacing: .4em;
  /* text-transform:uppercase KALDIRILDI → TR locale i→İ bug. Metin kaynakta büyük. */
  color: var(--red);
  font-weight: 500;
  margin: 0 0 .55rem 0;
  padding: 0;
  text-indent: 0;
  display: block;
  line-height: 1;
}

.body-text {
  font-size: .88rem;
  color: rgba(255,255,255,.6);
  line-height: 1.7;
}

/* ══════════════════════════════════════════════════════════
   IN-LAB TOPBAR — shared across all lab sub-pages
══════════════════════════════════════════════════════════ */
.inlab-topbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 clamp(1.2rem, 4vw, 3rem);
  background: rgba(2,2,2,.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,.06);
  z-index: 9000;
}

/* Left: logo + badge */
.inlab-topbar__brand {
  display: flex;
  align-items: center;
  gap: .7rem;
  text-decoration: none;
}
.inlab-topbar__logo {
  height: 24px;
  width: auto;
  opacity: .7;
  transition: opacity .25s;
}
.inlab-topbar__brand:hover .inlab-topbar__logo { opacity: 1; }
.inlab-topbar__divider {
  width: 1px; height: 16px;
  background: rgba(255,255,255,.15);
}
.inlab-topbar__badge {
  font-family: var(--sf);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--red);
  line-height: 1;
}

/* Center: experiment name (optional) */
.inlab-topbar__center {
  position: absolute;
  left: 50%; transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: .5rem;
}
.inlab-topbar__exp-tag {
  font-family: var(--pp);
  font-size: .42rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(255,255,255,.2);
}
.inlab-topbar__exp-name {
  font-family: var(--pp);
  font-size: .48rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
}
.inlab-topbar__exp-sep {
  color: rgba(255,255,255,.15);
  font-size: .5rem;
}

/* Right: nav buttons */
.inlab-topbar__nav {
  display: flex;
  align-items: center;
  gap: .5rem;
}
.inlab-topbar__btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .38rem .9rem;
  font-family: var(--pp);
  font-size: .42rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  background: transparent;
  border: 1px solid rgba(255,255,255,.08);
  text-decoration: none;
  transition: color .2s, border-color .2s, background .2s;
  cursor: pointer;
  white-space: nowrap;
}
.inlab-topbar__btn:hover {
  color: rgba(255,255,255,.85);
  border-color: rgba(255,255,255,.2);
}
.inlab-topbar__btn--home:hover {
  color: var(--red);
  border-color: rgba(233,32,56,.35);
}
.inlab-topbar__btn i { font-size: .5rem; }

@media (max-width: 600px) {
  .inlab-topbar__center { display: none; }
  .inlab-topbar__btn span { display: none; }
  .inlab-topbar__btn { padding: .38rem .65rem; }
}

/* ── Global Button Standard ──────────────────────────────
   Tüm buton/link hover'ları: border kırmızı, bg hafif kırmızı,
   text beyaz, ok sağa kayar.
───────────────────────────────────────────────────────── */
.txt-link {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  font-size: .63rem;
  letter-spacing: .2em;
  /* text-transform:uppercase KALDIRILDI → TR locale i→İ bug. Metin kaynakta büyük. */
  color: rgba(255,255,255,.55);
  border: 1px solid rgba(255,255,255,.12);
  padding: .75rem 1.6rem;
  transition: border-color .3s, color .3s, background .3s;
  margin-top: 1.8rem;
}
.txt-link i { font-size: .68rem; transition: transform .3s ease; }
.txt-link:hover {
  color: var(--white);
  border-color: var(--red);
  background: rgba(233,32,56,.08);
}
.txt-link:hover i { transform: translateX(5px); }

.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  font-size: .65rem;
  letter-spacing: .2em;
  /* text-transform:uppercase KALDIRILDI → TR locale i→İ bug. Metin kaynakta büyük. */
  color: rgba(255,255,255,.7);
  border: 1px solid rgba(255,255,255,.15);
  padding: .9rem 2rem;
  transition: border-color .3s, color .3s, background .3s;
  white-space: nowrap;
  flex-shrink: 0;
}
.btn-outline:hover {
  border-color: var(--red);
  color: var(--white);
  background: rgba(233,32,56,.08);
}
.btn-outline i { font-size: .7rem; transition: transform .3s ease; }
.btn-outline:hover i { transform: translateX(5px); }

/* Section separator — removed; sections separated by background color contrast */

/* ── Noise ──────────────────────────────────────────────── */
.noise-overlay {
  position: fixed; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  background-size: 200px;
  opacity: .035; pointer-events: none; z-index: 9997;
  will-change: transform;
  animation: noiseAnim .2s steps(2) infinite;
}


@keyframes noiseAnim {
  0%   { background-position: 0 0; }
  50%  { background-position: 10px 12px; }
  100% { background-position: 0 0; }
}

/* ============================================================
   NAVIGATION
============================================================ */
/* ── Scroll Progress Bar — üst şerit ── */
.scroll-progress {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: 2px;
  background: transparent;
  z-index: 10001;                 /* nav'ın (10000) üstünde */
  pointer-events: none;
}
.scroll-progress__fill {
  width: 100%;
  height: 100%;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .12s linear;
  will-change: transform;
  box-shadow: 0 0 6px rgba(233,32,56,.5);
}
/* Menü açıkken progress bar'ı gizle (mantıklı: scroll kilitli) */
body:has(.menu-overlay.open) .scroll-progress { opacity: 0; }

.nav-container {
  position: fixed; top: 0; left: 0; width: 100%;
  height: 72px; z-index: 10000;
  transition: background .4s, border-color .4s, opacity .35s, visibility .35s;
  border-bottom: 1px solid transparent;
}
.nav-container.scrolled {
  background: rgba(12,12,12,.92);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom-color: transparent;
}
/* Hide sticky nav bar when fullscreen menu is open.
   z-index menünün (9999) ALTINA düşürülür ve gizleme ANINDA olur → logo menüye binmez. */
.nav-container.menu-open {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 9998;
  transition: opacity .15s ease, visibility 0s;
}
.nav-logo { outline: none !important; }
.nav-logo img { height: 37px; opacity: .85; transition: opacity .3s; outline: none !important; }
.nav-logo img:hover { opacity: 1; }

.nav-trigger {
  display: flex; flex-direction: column; gap: 5px;
  cursor: pointer; padding: 8px; z-index: 10001; position: relative;
}
.nav-trigger span {
  display: block; background: var(--white); height: 1.5px;
  transition: all .45s cubic-bezier(.77,0,.175,1);
}
.nav-trigger span:nth-child(1){ width: 28px; }
.nav-trigger span:nth-child(2){ width: 18px; }
.nav-trigger span:nth-child(3){ width: 24px; }
.nav-trigger.active span:nth-child(1){ transform: rotate(45deg) translate(5px,5px); width: 24px; background: var(--red); }
.nav-trigger.active span:nth-child(2){ opacity: 0; transform: translateX(-8px); }
.nav-trigger.active span:nth-child(3){ transform: rotate(-45deg) translate(5px,-6px); width: 24px; background: var(--red); }

/* ── Menu Overlay ───────────────────────────────────────── */
.menu-overlay {
  position: fixed; inset: 0; z-index: 9999;
  /* Kırmızı panel SOLDA (42%), siyah navigasyon paneli SAĞDA (58%).
     Hamburger sağ üstte olduğu için kullanıcı tıklayınca doğrudan
     sağdaki menü linklerine ulaşır. Panellerin sırası order ile değişir. */
  display: grid; grid-template-columns: 42% 58%;
  pointer-events: none; visibility: hidden;
  /* Curtain-drop reveal — both panels descend together from the top.
     No diagonal/asymmetric motion. Single, unified gesture. */
  transition: visibility 0s linear .85s;
}
.menu-overlay.open {
  pointer-events: all; visibility: visible;
  transition: visibility 0s linear 0s;
}

/* ── Subtle dim layer behind the panels — fades in first, anchors the motion ── */
.menu-overlay::before {
  content: '';
  position: fixed; inset: 0; z-index: -1;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}
.menu-overlay.open::before { opacity: 1; }

.menu-overlay-left {
  background: #060606;
  /* SİYAH navigasyon paneli → SAĞ kolon (order:2) */
  order: 2;
  display: flex; flex-direction: column;
  padding: 0;
  position: relative;
  overflow: hidden;
  /* Drops down from above — synced with right panel */
  transform: translateY(-100%);
  transition: transform .8s cubic-bezier(.7,0,.2,1);
  will-change: transform;
}
.menu-overlay.open .menu-overlay-left {
  transform: translateY(0);
}

/* ── Logo inside menu — aligned horizontally with the "Home" nav label
      (offset by link-num width + gap so the logo sits exactly above the text) ── */
.menu-logo-wrap {
  padding-left: calc(var(--px) + 1.5rem + .7rem);
  padding-right: var(--px);
  padding-top: calc((72px - 37px) / 2);
  padding-bottom: calc((72px - 37px) / 2);
  opacity: 0;
  transform: translateY(-8px);
  /* Wait for the curtain to settle, then fade in */
  transition: opacity .5s ease .45s, transform .5s cubic-bezier(.22,1,.36,1) .45s;
  flex-shrink: 0;
}
.menu-overlay.open .menu-logo-wrap {
  opacity: 1;
  transform: translateY(0);
}
.menu-logo-img {
  height: 37px;
  width: auto;
  display: block;
  transition: transform .3s cubic-bezier(.22,1,.36,1), opacity .3s;
}
.menu-logo-img:hover {
  transform: scale(1.07) translateX(3px);
  opacity: 0.9;
  filter: brightness(1.15);
}

/* ── Wrap nav only (sec-nav moved to bottom) ──
   Nav linkleri ÜSTTEN sabit hizadan başlar (kırmızı panel ile aynı --menu-top). */
.menu-nav-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: var(--menu-top, 14vh) var(--px) 0;
}

/* ── X (close) button — pinned to right edge of the red panel,
      vertically aligned with the square Interdi logo on the left ── */
.menu-close-btn {
  position: fixed;
  top: calc((72px - 32px) / 2);
  right: clamp(2rem, 4%, 4rem);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 0;
  color: rgba(255,255,255,.65);
  background: transparent;
  font-size: 1.2rem;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: rotate(-45deg) scale(.7);
  /* Appears after the panels arrive */
  transition: opacity .35s ease .55s,
              transform .45s cubic-bezier(.22,1,.36,1) .55s,
              color .2s;
  z-index: 10002;
  padding: 4px;
}
.menu-overlay.open .menu-close-btn {
  opacity: 1;
  pointer-events: all;
  transform: rotate(0deg) scale(1);
}
.menu-close-btn:hover {
  color: var(--red);
  background: transparent;
  transform: rotate(90deg) scale(1.12);
  transition: color .18s,
              transform .32s cubic-bezier(.34,1.56,.64,1);
}

.menu-overlay-right {
  background: var(--red);
  /* KIRMIZI panel → SOL kolon (order:1) */
  order: 1;
  /* Üst blok ÜSTTEN sabit --menu-top hizasından başlar (nav linkleri ile aynı);
     alt bloklar (contact/social) margin-top:auto ile alta itilir. */
  display: flex; flex-direction: column; justify-content: flex-start;
  /* Kırmızı panelde logo yok → siyah taraftaki logo yüksekliğini ekle.
     Eyebrow (tag) yüksekliğini ÇIKAR → BÜYÜK BAŞLIK (WELCOME) sağdaki HOME ile hizalanır. */
  padding: calc(var(--menu-top, 14vh) + var(--menu-logo-h, 72px) - 2.2rem) clamp(2rem,4%,4rem) 2rem;
  overflow: hidden;
  /* Drops down from above — synced with left panel.
     Delay .12s (önceki .06s'in iki katı) — kırmızı/siyah arasında
     daha belirgin bir cascade hissi. */
  transform: translateY(-100%);
  transition: transform .8s cubic-bezier(.7,0,.2,1) .12s;
  will-change: transform;
}
.menu-overlay.open .menu-overlay-right {
  transform: translateY(0);
}

/* Stagger each menu item sliding in */
.menu-nav-list { list-style: none; }
.menu-nav-item {
  overflow: hidden;
}
.menu-nav-item:first-child { border-top: none; }

.menu-nav-link {
  display: flex;
  align-items: baseline;
  gap: .7rem;
  padding: .55rem 0;
  font-family: var(--sf);
  font-size: clamp(2.4rem,5vw,4.5rem);
  font-weight: 700; text-transform: uppercase;
  color: var(--white); letter-spacing: -.02em; line-height: 1;
  transform: translateY(110%);
  transition: transform .65s cubic-bezier(.22,1,.36,1), color .25s, padding-left .25s;
}
.menu-overlay.open .menu-nav-link { transform: translateY(0); }

/* Stagger delays — start after the curtain has dropped (~.45s) */
.menu-nav-item:nth-child(1) .menu-nav-link { transition-delay: .50s, 0s, 0s; }
.menu-nav-item:nth-child(2) .menu-nav-link { transition-delay: .56s, 0s, 0s; }
.menu-nav-item:nth-child(3) .menu-nav-link { transition-delay: .62s, 0s, 0s; }
.menu-nav-item:nth-child(4) .menu-nav-link { transition-delay: .68s, 0s, 0s; }
.menu-nav-item:nth-child(5) .menu-nav-link { transition-delay: .74s, 0s, 0s; }
.menu-nav-item:nth-child(6) .menu-nav-link { transition-delay: .80s, 0s, 0s; }

.menu-nav-link:hover { color: var(--red); padding-left: .6rem; }
.menu-nav-link--active { color: var(--red); }
.menu-nav-link--active .link-num { color: rgba(233,32,56,.55); }

/* Small ordinal number beside each nav title */
.link-num {
  display: inline-block;
  width: 1.5rem;           /* fixed width — keeps all nav labels aligned
                              and matches .menu-logo-wrap left padding */
  font-family: var(--sf);
  font-size: .9rem;
  font-weight: 400;
  letter-spacing: .08em;
  color: rgba(255,255,255,.28);
  line-height: 1;
  align-self: flex-end;
  margin-bottom: .18em;
  transition: color .25s;
  flex-shrink: 0;
}
.menu-nav-link:hover .link-num {
  color: rgba(233,32,56,.55);
}

/* ── Right-panel content: subtle fade-up after the curtain settles ── */
.menu-right-tag,
.menu-right-title,
.menu-right-desc,
.menu-right-contact,
.menu-right-address {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .55s ease, transform .55s cubic-bezier(.22,1,.36,1);
}
.menu-overlay.open .menu-right-tag      { opacity: 1; transform: translateY(0); transition-delay: .55s; }
.menu-overlay.open .menu-right-title    { opacity: 1; transform: translateY(0); transition-delay: .62s; }
.menu-overlay.open .menu-right-desc     { opacity: 1; transform: translateY(0); transition-delay: .69s; }
.menu-overlay.open .menu-right-contact  { opacity: 1; transform: translateY(0); transition-delay: .76s; }
.menu-overlay.open .menu-right-address  { opacity: 1; transform: translateY(0); transition-delay: .82s; }

.menu-right-tag {
  font-size: .58rem; letter-spacing: .3em; text-transform: uppercase;
  color: rgba(255,255,255,.5); margin-bottom: .8rem;
}
.menu-right-title {
  /* %20 büyütüldü x2 (2.16→2.592→3.110 / 4.8vw→5.76vw→6.912vw / 3.84→4.608→5.530) */
  font-family: var(--sf); font-size: clamp(3.110rem,6.912vw,5.530rem); font-weight: 700;
  text-transform: uppercase; color: var(--white); line-height: 1; margin-bottom: 1rem;
}
.menu-right-desc {
  font-size: .78rem; color: rgba(255,255,255,.7); line-height: 1.8; max-width: 260px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
/* Contact bloğu (Say Hello + tel/mail): biraz yukarı taşınır (alt boşluk),
   sosyal satır kendi yerinde kalır. İçerik birbirine yakın. */
.menu-right-contact { display: flex; flex-direction: column; gap: .15rem; margin-top: auto; margin-bottom: clamp(1.5rem, 5vh, 3.5rem); }
.menu-right-contact p { font-size: .6rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.5); margin-bottom: .15rem; }
.menu-right-contact a { font-size: 1.08rem; color: var(--white); transition: opacity .25s, letter-spacing .25s; font-weight: 500; }
.menu-right-contact a:hover { opacity: .75; letter-spacing: .02em; }
.menu-right-address {
  margin-top: .8rem;
  padding-top: 0;
  border-top: none;
  font-size: .52rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  line-height: 1.7;
  font-weight: 300;
}
/* social-row — sits at bottom of right panel, aligned with sec-nav bottom */
.menu-social-row {
  display: flex; gap: 2rem; flex-wrap: wrap; align-items: center;
  /* Sosyal satır eski alt hizasında kalır (üst boşluk orijinal) */
  padding: 1.6rem 0 0;
}
.menu-social-row a {
  display: flex; align-items: center; gap: .5rem;
  font-size: .84rem; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(255,255,255,.65); transition: color .25s, gap .25s, transform .25s;
  font-weight: 400;
}
.menu-social-row a:hover { color: var(--white); gap: .7rem; transform: translateX(2px); }
.menu-social-row i { font-size: 1rem; }

/* ── Menu secondary nav — sits at very bottom of left panel.
      Left padding matches the "Home" label start (var(--px) + link-num width + gap)
      so the first sec-nav link aligns vertically with the Home nav label. ── */
.menu-sec-nav {
  flex-shrink: 0;
  padding: 1.4rem var(--px) 2rem calc(var(--px) + 1.5rem + .7rem);
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: .6rem;
  align-items: flex-start;
  /* Fades in once the curtain has finished its drop */
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .5s ease, transform .5s cubic-bezier(.22,1,.36,1);
}
.menu-overlay.open .menu-sec-nav {
  opacity: 1;
  transform: translateY(0);
  transition-delay: .85s;
}
/* Group wrapper (legacy – kept for backwards compat) */
.menu-sec-nav__group {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 1.6rem;
  flex-basis: 100%;
}
/* Direct list (new menu.js output) */
.menu-sec-nav__list {
  list-style: none;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0;
  align-items: center;
}
.menu-sec-nav__item {
  overflow: hidden;
}
.menu-sec-nav__item:first-child { border-top: none; }
.menu-sec-nav__link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0;
  padding: .32rem 0;
  margin-right: 1.8rem;
  font-family: var(--sf);
  font-size: 1.35rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #fff;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transform: translateY(110%);
  transition: transform .55s cubic-bezier(.77,0,.175,1),
              color .25s;
}
/* Default state: sönük beyaz — ana nav'dan ayırır, hover'da parlar */
.menu-sec-nav__item:not(.menu-sec-nav__item--highlight) .menu-sec-nav__link {
  color: rgba(255,255,255,.5);
}
.menu-sec-nav__item:not(.menu-sec-nav__item--highlight) .menu-sec-nav__link:hover {
  color: rgba(255,255,255,.92);
}
/* Clean underline that sweeps in from the left on hover */
.menu-sec-nav__link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: .12rem;
  width: 100%;
  height: 1px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .38s cubic-bezier(.22,1,.36,1);
}
.menu-sec-nav__link:hover::after {
  transform: scaleX(1);
}
.menu-overlay.open .menu-sec-nav__link { transform: translateY(0); }
.menu-sec-nav__item:nth-child(1) .menu-sec-nav__link { transition-delay: .28s, 0s; }
.menu-sec-nav__item:nth-child(2) .menu-sec-nav__link { transition-delay: .32s, 0s; }
.menu-sec-nav__item:nth-child(3) .menu-sec-nav__link { transition-delay: .36s, 0s; }
.menu-sec-nav__item:nth-child(4) .menu-sec-nav__link { transition-delay: .40s, 0s; }
.menu-sec-nav__item:nth-child(5) .menu-sec-nav__link { transition-delay: .44s, 0s; }
.menu-sec-nav__item:nth-child(6) .menu-sec-nav__link { transition-delay: .48s, 0s; }
.menu-sec-nav__item:nth-child(7) .menu-sec-nav__link { transition-delay: .52s, 0s; }
.menu-sec-nav__item:nth-child(8) .menu-sec-nav__link { transition-delay: .56s, 0s; }
.menu-sec-nav__link:hover { color: var(--red); }

/* Highlighted sec-nav item (Directory) — pulsing red dot before label */
.menu-sec-nav__item--highlight .menu-sec-nav__link {
  color: var(--red);
}
.menu-sec-nav__item--highlight .sec-link-mark {
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: .55rem;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 0 rgba(233,32,56,.6);
  animation: secMarkPulse 1.8s ease-out infinite;
  transform: translateY(-1px);
}
.menu-sec-nav__item--highlight .menu-sec-nav__link:hover {
  color: rgba(255,255,255,.92);
}
.menu-sec-nav__item--highlight .menu-sec-nav__link:hover .sec-link-mark {
  animation-duration: .9s;
}
@keyframes secMarkPulse {
  0%   { box-shadow: 0 0 0 0   rgba(233,32,56,.55); }
  70%  { box-shadow: 0 0 0 7px rgba(233,32,56,0);   }
  100% { box-shadow: 0 0 0 0   rgba(233,32,56,0);   }
}
/* Sub-links (In-Play, In-Forge) */
.menu-sec-nav__link.sub-link {
  padding-left: 1.2rem;
  color: rgba(255,255,255,.28);
  font-size: .72rem;
  letter-spacing: .06em;
}
.menu-sec-nav__link.sub-link:hover { color: rgba(255,255,255,.65); }
/* No visible marker — the sec-link-mark element is kept in DOM for
   backwards compatibility but completely hidden. Hover feedback is
   handled by a clean underline on the link text itself (see below). */
.sec-link-mark {
  display: none;
}

/* Eski sub-link stilleri — artık kullanılmıyor, temizlendi */

/* ============================================================
   HERO
============================================================ */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
}

.hero-bg {
  position: absolute; inset: 0;
  background: #05020a;
}
.hero-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; opacity: .55; z-index: 0;
  filter: grayscale(1) contrast(1.15) brightness(1.08);
  /* subtle slow-zoom for extra motion feel */
  animation: heroZoom 18s ease-in-out infinite alternate;
  transform-origin: center center;
}
@keyframes heroZoom {
  0%   { transform: scale(1.0) translateX(0); }
  50%  { transform: scale(1.07) translateX(-1%); }
  100% { transform: scale(1.04) translateX(1%); }
}
.hero-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(2,2,2,.15) 0%,
    rgba(2,2,2,.08) 25%,
    rgba(2,2,2,.55) 60%,
    rgba(2,2,2,.97) 100%
  );
}

/* Cursor-aware edge vignette: opposite side darkens based on mouse position.
   Defaults to a centered radial; JS updates --vx / --vy to follow cursor. */
.hero-vignette {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  --vx: 50%;
  --vy: 50%;
  background: radial-gradient(
    ellipse 70% 65% at var(--vx) var(--vy),
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,0) 35%,
    rgba(0,0,0,.55) 85%,
    rgba(0,0,0,.85) 100%
  );
  transition: background .25s ease;
  mix-blend-mode: multiply;
}

/* ── Hero-only grain — canvas-drawn pixel noise (same technique as page transitions) ── */
#hero-grain-cv {
  position: absolute; inset: 0; z-index: 2;
  width: 100%; height: 100%;
  pointer-events: none;
  mix-blend-mode: screen;
  opacity: 0.14;
}

/* Thin red line at top */
.hero::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: var(--red); z-index: 10; opacity: .65;
}

.hero-inner {
  position: relative; z-index: 3;
  padding-top: 180px;
  padding-bottom: 3.5rem;
}

.hero-eyebrow {
  font-family: var(--pp);
  font-size: .713rem;
  letter-spacing: .38em;
  text-transform: uppercase;
  color: rgba(255,255,255,.38);
  font-weight: 400;
  margin: 0 0 1.05rem 0;
  padding: 0;
  text-indent: 0;
  display: block;
  line-height: 1;
  opacity: 0;
  animation: fadeUp .7s ease .3s forwards;
  font-style: normal;
}

.hero-title {
  font-family: var(--sf);
  font-size: clamp(3.8rem, 9.5vw, 12.5rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -.03em;
  line-height: .92;
  margin-bottom: 4.5rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}
/* Red "IN" fragments inside hero title */
.ht-in { color: var(--red); }
.ht-line { display: block; overflow: hidden; }
.ht-line span {
  display: block;
  opacity: 0;
  transform: translateY(110%);
  animation: slideUp .9s cubic-bezier(.77,0,.175,1) forwards;
  /* Scramble sırasında font değişmesi engellenir */
  font-variant-numeric: tabular-nums;
  letter-spacing: inherit;
  white-space: nowrap;
}
.ht-white    span { color: var(--white);   animation-delay: .45s; }
.ht-line2    span { color: var(--white);   animation-delay: .6s; }
.ht-red      span { color: var(--red);     animation-delay: .6s; }
.ht-red-line span { color: var(--red);     animation-delay: .62s; }

/* Scramble başladıktan sonra JS .scramble-active ekler */
.scramble-active {
  opacity: 1 !important;
  transform: translateY(0) !important;
  animation: none !important;
  display: block;
  color: var(--white);
  white-space: nowrap;
}
/* Kırmızı kelimeler scramble sonrası */
.scramble-active .ht-in,
.ht-line span .ht-in {
  color: var(--red);
  font-style: normal;
}

@keyframes slideUp { to { opacity: 1; transform: translateY(0); } }
@keyframes fadeUp  { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }

/* Hero lead — short paragraph between title and tags row */
.hero-lead {
  font-family: var(--pp);
  font-size: clamp(.95rem, 1.1vw, 1.1rem);
  line-height: 1.65;
  color: rgba(255,255,255,.62);
  max-width: 620px;
  margin: -2.5rem 0 3rem 0;
  padding: 0;
  opacity: 0;
  animation: fadeUp .7s ease .9s forwards;
}
@media (max-width: 768px) {
  .hero-lead {
    font-size: .9rem;
    margin: -1rem 0 2rem 0;
    max-width: 100%;
  }
}

.hero-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  border-top: 1px solid rgba(255,255,255,.07);
  padding-top: 2rem;
  opacity: 0;
  animation: fadeUp .7s ease 1.1s forwards;
}

.hero-tags {
  display: flex;
  gap: 0;
  flex-wrap: wrap;
}
.hero-tags span {
  font-family: var(--pp);
  font-size: .6rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gray);
  padding-right: 1.4rem;
  position: relative;
}
.hero-tags span::after {
  content: '/';
  color: var(--dim);
  margin-left: 1.4rem;
}
.hero-tags span:last-child::after { display: none; }

/* Scroll hint */
.hero-scroll {
  position: absolute;
  right: var(--px);
  bottom: 2.5rem;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .8rem;
}
.hero-scroll span {
  font-size: .52rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--dim);
  writing-mode: vertical-lr;
}
.scroll-line {
  width: 1px; height: 56px;
  background: var(--line);
  position: relative; overflow: hidden;
}
.scroll-dot {
  position: absolute; top: -50%; left: 0;
  width: 100%; height: 50%;
  background: var(--red);
  animation: scrollDot 2.2s ease-in-out infinite 1s;
}
@keyframes scrollDot { 0%{top:-50%} 100%{top:100%} }

/* ============================================================
   SELECTED WORKS
============================================================ */
.s-works {
  background: var(--sec-2);
  padding-top: 5.5rem;
}

.s-works__head { padding-bottom: 3rem; }

.s-works__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 2rem;
  margin-top: .6rem;
}

.slider-controls {
  display: flex;
  align-items: center;
  gap: .8rem;
  flex-shrink: 0;
  padding-bottom: .3rem;
}
.sc-btn {
  width: 40px; height: 40px;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--dim);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; font-size: .8rem;
  transition: border-color .25s, color .25s, background .25s;
}
.sc-btn:hover { border-color: var(--red); color: var(--white); background: rgba(233,32,56,.08); }
.sc-btn:disabled { opacity: .2; pointer-events: none; }
.sc-count {
  font-family: var(--pp); font-size: .62rem; letter-spacing: .15em;
  color: var(--dim); min-width: 48px; text-align: center;
  display: flex; align-items: center; gap: .35rem;
}
.sc-count .sc-cur { color: var(--white); }
.sc-count em { font-style: normal; color: var(--line); }

/* Rail */
.works-rail-wrap { overflow: hidden; cursor: grab; user-select: none; }
.works-rail-wrap:active { cursor: grabbing; }
.works-rail {
  display: flex; gap: 2px;
  transition: transform .75s cubic-bezier(.77,0,.175,1);
  will-change: transform;
  padding-left: var(--px);
}
.work-slide { flex: 0 0 41.6%; overflow: hidden; }
.work-slide:first-child { flex: 0 0 41.6%; overflow: hidden; }

.work-img {
  width: 100%;
  aspect-ratio: 808 / 632;
  overflow: hidden;
  position: relative;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  /* Varsayılan: tam siyah-beyaz, parlaklık ve kontrast iyi tutulur
     ki görsel silik/karanlık görünmesin */
  filter: grayscale(1) brightness(1) contrast(1.05);
  opacity: 1;
  transition: filter .65s cubic-bezier(.22,1,.36,1);
}

/* çok hafif overlay — sadece üst yazılar okunsun diye */
.work-img::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.10);
  transition: opacity .5s ease;
  pointer-events: none;
  z-index: 2;
}

/* kırmızı reveal — soldan sağa wipe */
.work-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg,
    rgba(233,32,56,.18) 0%,
    rgba(233,32,56,0) 60%);
  opacity: 0;
  pointer-events: none;
  z-index: 3;
  transition: opacity .5s ease;
}

/* hover — tam renk açılır */
.work-slide:hover .work-img {
  filter: grayscale(0) brightness(1.05) contrast(1.06) saturate(1.2);
}
.work-slide:hover .work-img::before {
  opacity: 0;
}
.work-slide:hover .work-img::after {
  opacity: 1;
}
.g1{background-color:#120608}
.g2{background-color:#060812}
.g3{background-color:#060e06}
.g4{background-color:#0c0800}
.g5{background-color:#080412}
.g6{background-color:#04080e}
.g7{background-color:#08060e}

.work-info {
  display: flex; align-items: baseline; gap: 1.5rem;
  padding: 1.4rem 0 1.8rem;
  border-bottom: 1px solid var(--line);
}
.wi-num {
  font-family: var(--sf); font-size: .7rem; letter-spacing: .15em;
  color: var(--dim); flex-shrink: 0;
}
.wi-name {
  font-family: var(--sf);
  font-size: clamp(1.1rem, 2.2vw, 1.7rem);
  font-weight: 700; text-transform: uppercase;
  color: var(--white); letter-spacing: .01em;
  transition: color .25s; margin-bottom: .4rem;
}
.work-slide:hover .wi-name { color: var(--red); }
.wi-tags { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .3rem; }
.wi-tags span {
  font-size: .56rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--dim); border: 1px solid var(--line);
  padding: .12rem .55rem;
}

.work-slide.is-active  { opacity: 1;   transition: opacity .5s; }
.work-slide:not(.is-active) { opacity: .35; transition: opacity .5s; }

/* ============================================================
   SERVICES
============================================================ */
.s-services {
  background: var(--sec-1);
  padding: 7rem 0;
}

.s-services__grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 7rem;
  align-items: start;
}

.s-services__lead .display-title { margin-bottom: 1.8rem; }
.s-services__lead .body-text { margin-bottom: 0; max-width: 360px; }

.s-services__list { padding-top: .5rem; }

.svc-row {
  display: grid;
  grid-template-columns: 2.4rem 1fr 1fr auto;
  align-items: center;
  gap: 1.5rem;
  padding: 1.5rem 1rem;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition: padding-left .35s cubic-bezier(.22,1,.36,1);
}
.svc-row:first-child { border-top: none; }

/* Animated dark fill — sweeps in from left on hover */
.svc-row::before {
  content: '';
  position: absolute;
  inset: 0;
  background: #0a0a0a;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .55s cubic-bezier(.22,1,.36,1);
  z-index: 0;
  pointer-events: none;
}
.svc-row:hover::before { transform: scaleX(1); }

/* Left red accent bar — appears as fill arrives */
.svc-row::after {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--red);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .45s cubic-bezier(.22,1,.36,1) .1s;
  z-index: 2;
  pointer-events: none;
}
.svc-row:hover::after { transform: scaleY(1); }

/* Lift content above the fill */
.svc-row > * { position: relative; z-index: 1; }

.svc-row:hover { padding-left: 1.6rem; }

.svc-num {
  font-family: var(--pp); font-size: .58rem;
  letter-spacing: .15em; color: var(--dim);
  transition: color .35s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
.svc-row:hover .svc-num {
  color: var(--red);
  transform: translateX(4px);
}
.svc-name {
  font-family: var(--sf);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  font-weight: 700; text-transform: uppercase;
  color: var(--white);
  transition: color .35s ease, letter-spacing .35s cubic-bezier(.22,1,.36,1), transform .35s cubic-bezier(.22,1,.36,1);
}
.svc-row:hover .svc-name {
  color: var(--red);
  letter-spacing: .04em;
  transform: translateX(2px);
}
.svc-desc {
  font-size: .72rem; color: var(--dim); line-height: 1.5;
  transition: color .35s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
.svc-row:hover .svc-desc {
  color: rgba(255,255,255,.75);
  transform: translateX(3px);
}
.svc-row > i {
  font-size: .68rem; color: var(--dim);
  transition: transform .35s cubic-bezier(.22,1,.36,1), color .35s ease;
  flex-shrink: 0;
}
.svc-row:hover > i {
  transform: translateX(8px) rotate(-45deg);
  color: var(--red);
}

/* ============================================================
   BRANDS — homepage slider
============================================================ */
.s-brands {
  background: var(--sec-3);
  padding: 6.5rem 0;
}

.s-brands__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 3.5rem;
}

/* ── Home Brands Grid ──────────────────────────────────── */
.brands-home-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .75rem;
  background: transparent;
  border: none;
}

.brand-home-cell {
  aspect-ratio: 1 / 1;
  background: transparent;
  border: 1px solid rgba(255,255,255,.08);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition: opacity .3s, border-color .3s;
}
.brand-home-cell:hover {
  border-color: rgba(255,255,255,.18);
}

/* hover fill animation removed — cells stay static */
.brand-home-cell::before { display: none; }

.brand-home-cell img {
  /* Sabit kutu boyutu — tüm logolar aynı alana object-fit: contain
     ile yerleşir. Böylece dar/geniş/kare fark etmeksizin hepsi
     optik olarak eşit bir boyda görünür. (boyut +30%) */
  width: 80%;
  height: 73%;
  max-width: 182px;
  max-height: 91px;
  object-fit: contain;
  object-position: center;
  filter: brightness(0) invert(1);
  opacity: .7;
  position: relative;
  z-index: 1;
  pointer-events: none;
  transition: opacity .3s;
}
.brand-home-cell:hover img { opacity: 1; }
/* no hover change on the logos either */

/* CTA cell — subtle outline, no solid fill */
.brand-home-cta {
  background: transparent !important;
  border: 1px solid rgba(255,255,255,.08);
  text-decoration: none;
  flex-direction: column;
  gap: 0;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1.4rem 1.4rem 1.2rem;
  transition: border-color .3s;
  overflow: hidden;
  isolation: isolate;
}
.brand-home-cta:hover {
  border-color: #1f1f1f;
}
/* Soldan sağa açılan koyu hover background */
.brand-home-cta::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background: #0c0c0c;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .55s cubic-bezier(.77,0,.175,1);
  z-index: -1;
  pointer-events: none;
}
.brand-home-cta:hover::before {
  transform: scaleX(1);
}

/* üst küçük etiket */
.brand-home-cta .cta-eyebrow {
  font-family: var(--pp);
  font-size: .45rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  display: block;
}

/* orta büyük metin — her kelime ayrı satır, sola dayalı */
.brand-home-cta .cta-main {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
  gap: 0;
}
.brand-home-cta .cta-word {
  font-family: var(--sf);
  font-size: clamp(1.6rem, 2.8vw, 2.6rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -.02em;
  color: var(--white);
  display: block;
  transition: color .35s ease;
}
/* hover: both words turn red */
.brand-home-cta:hover .cta-word { color: var(--red); }

/* alt satır: çizgi + ok */
.brand-home-cta .cta-foot {
  display: flex;
  align-items: center;
  gap: .6rem;
  width: 100%;
}
.brand-home-cta .cta-line {
  flex: 1;
  height: 1px;
  background: rgba(255,255,255,.35);
  transform-origin: left;
  transform: scaleX(0.35);
  transition: transform .5s cubic-bezier(.77,0,.175,1), background-color .35s ease;
}
.brand-home-cta:hover .cta-line {
  transform: scaleX(1);
  background: var(--red);
}
.brand-home-cta .cta-foot i {
  font-size: .75rem;
  color: rgba(255,255,255,.7);
  flex-shrink: 0;
  transition: transform .45s cubic-bezier(.22,1,.36,1), color .3s ease;
}
.brand-home-cta:hover .cta-foot i {
  transform: translateX(6px);
  color: var(--red);
}

@media (max-width: 1024px) {
  .brands-home-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 600px) {
  .brands-home-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 400px) {
  .brands-home-grid { grid-template-columns: repeat(2, 1fr); }
}


/* ============================================================
   ABOUT — container içi, tek fotoğraf + içerik yan yana
============================================================ */
.s-about {
  background: var(--sec-1);
  padding: 5rem 0 6rem;
  overflow: hidden;
}

.s-about__wrap {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 5rem;
  align-items: start;
}

/* ── LEFT: single photo frame ─────────────────── */
.s-about__visual {
  position: relative;
}

.s-about__photo-frame {
  position: relative;
  aspect-ratio: 3 / 4;
  overflow: hidden;
}

/* slide stack — legacy (kept for fallback) */
.s-about__photo-img {
  position: absolute;
  inset: 0;
}
.s-about__slide {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  filter: grayscale(1) brightness(.72);
  opacity: 0;
  transform: scale(1.07);
  transition: opacity 1s cubic-bezier(.25,.46,.45,.94),
              transform 1.4s cubic-bezier(.25,.46,.45,.94);
}
.s-about__slide.active {
  opacity: 1;
  transform: scale(1);
}

/* ═══════════════════════════════════
   VIDEO FRAME — IN-CULTURE promo for MORE ABOUT US
═══════════════════════════════════ */
.s-about__videoframe {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: #050505;
}
.s-about__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 1;
  display: block;
}

/* bottom gradient */
.s-about__photo-overlay {
  position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(
    to bottom,
    transparent 45%,
    rgba(2,2,2,.85) 100%
  );
  pointer-events: none;
}

/* est. badge — top-left */
.s-about__since {
  position: absolute;
  top: 1.6rem; left: 1.8rem;
  z-index: 4;
  display: flex; align-items: center; gap: .7rem;
  font-family: var(--pp);
  font-size: .54rem; letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  background: rgba(2,2,2,.45);
  backdrop-filter: blur(8px);
  padding: .35rem .8rem;
  border: 1px solid rgba(255,255,255,.12);
}
.s-about__since-line {
  width: 18px; height: 1px;
  background: var(--red); flex-shrink: 0;
}


/* big faded year behind photo */
.s-about__bg-year {
  position: absolute;
  bottom: -1.2rem; left: -1.5rem;
  font-family: var(--sf);
  font-size: clamp(4.5rem, 11vw, 11rem);
  font-weight: 700;
  color: rgba(233,32,56,.055);
  line-height: 1;
  letter-spacing: -.05em;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

/* ── RIGHT: content ──────────────────────────────── */
.s-about__content {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-top: .5rem;
}

.s-about__big {
  font-family: var(--sf);
  font-size: clamp(3rem, 8vw, 7rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -.02em;
  line-height: 1.05;
  margin: 0 0 2rem;
  text-align: right;
}

.s-about__body {
  font-size: .88rem;
  color: rgba(255,255,255,.6);
  line-height: 1.7;
  margin-bottom: 2.2rem;
  max-width: 460px;
  text-align: right;
  margin-left: auto;
}
.s-about__body strong { color: rgba(255,255,255,.82); font-weight: 500; }

/* stat strip */
.s-about__statstrip {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  border: 1px solid var(--line);
  margin-bottom: 2.2rem;
}
.sass-item {
  padding: 1.4rem 1.2rem;
  border-right: 1px solid var(--line);
  position: relative; overflow: hidden;
  transition: background .3s;
  min-height: 115px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  text-align: left;
}
.sass-item:last-child { border-right: none; }
/* Rotasyon efekti — yeni slide aktif olduğunda kısa süreli "flash" */
.sass-item.is-flash { background: rgba(233,32,56,.05); }
.sass-item::before {
  content: '';
  position: absolute; top: 0; left: 0;
  width: 0; height: 2px; background: var(--red);
  transition: width .7s cubic-bezier(.77,0,.175,1);
}
.sass-item.is-flash::before { width: 100%; }

/* rotating fact slides inside each stat cell */
.sass-fact {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-align: left;
  padding: 1rem 1.2rem;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .55s ease, transform .55s ease;
  pointer-events: none;
}
.sass-fact.active {
  opacity: 1;
  transform: translateY(0);
}
.sass-headline {
  font-family: var(--sf);
  font-size: clamp(1.35rem, 2.1vw, 2rem);
  font-weight: 700;
  color: var(--white);
  letter-spacing: -.01em;
  line-height: 1;
  text-transform: uppercase;
  transition: color .3s;
}
.sass-item.is-flash .sass-fact.active .sass-headline { color: var(--red); }

.sass-num-big {
  font-family: var(--sf);
  font-size: clamp(2.2rem, 3.6vw, 3.8rem);
  font-weight: 700;
  color: var(--white);
  letter-spacing: -.02em;
  line-height: 1;
  display: inline-flex;
  align-items: flex-start;
  justify-content: flex-start;
  transition: color .3s;
}
.sass-num-big sup {
  font-family: var(--sf);
  font-size: .34em;
  color: var(--red);
  margin-top: .15em;
  margin-left: .05em;
  font-weight: 700;
}
.sass-item.is-flash .sass-fact.active .sass-num-big { color: var(--red); }

.sass-sub {
  font-family: var(--sf);
  font-size: clamp(.58rem, .72vw, .68rem);
  font-weight: 500;
  color: rgba(255,255,255,.58);
  letter-spacing: .22em;
  line-height: 1.2;
  text-transform: uppercase;
  margin-top: .55rem;
}

/* navigation links — replaces capability list */
/* about nav buttons — matches .btn-outline style, right-aligned */
.s-about__navlinks {
  display: flex;
  flex-direction: row;
  gap: .75rem;
  margin-bottom: 2.2rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* CTA */
.s-about__cta {
  display: flex; align-items: center;
  gap: 2rem; flex-wrap: wrap;
}
.s-about__cta .txt-link { margin-top: 0; }

/* legacy — hide deprecated layout classes */
.s-about__inner        { display: contents; }
.s-about__left-text,
.s-about__photo-grid,
.sap-col,
.s-about__left,
.s-about__right,
.s-about__statgrid,
.sag-item,
.s-about__img-overlay,
.s-about__slide-counter,
.s-about__slide-label,
.s-about__pillars,
.sa-pillar,
.s-about__pills,
.sap-pill,
.s-about__tagblock,
.s-about__tabs,
.s-about__dots { display: none; }

/* slide label — bottom-left of photo */
.sap-label {
  position: absolute;
  bottom: 1.4rem; left: 1.6rem;
  z-index: 4;
  font-family: var(--pp);
  font-size: .52rem; letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
  padding: .32rem .75rem;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(2,2,2,.5);
  backdrop-filter: blur(8px);
  transition: opacity .35s;
}

/* slider nav bar below photo */
.s-about__slider-nav {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1rem;
}
/* .san-prev/.san-next removed — arrows no longer used in about slider */
.san-dots {
  display: flex; align-items: center; gap: .4rem; flex: 1;
}
.san-dot {
  width: 8px; height: 8px;
  border-radius: 1px;
  background: rgba(255,255,255,.2);
  border: none;
  cursor: pointer; padding: 0;
  transition: background .25s;
}
.san-dot:hover { background: rgba(255,255,255,.5); }
.san-dot.active { background: var(--red); }

/* ── Legacy class aliases (inner pages) ─────── */
.section-tag {
  font-size: .6rem; letter-spacing: .4em; text-transform: uppercase;
  color: var(--red); font-weight: 500; display: block;
}
.section-title {
  font-family: var(--sf); font-size: clamp(2rem,5vw,4rem);
  font-weight: 700; text-transform: uppercase;
  letter-spacing: -.025em; line-height: 1.02; color: var(--white);
}
.section-title .dot { color: var(--red); }
.section-header { display: flex; justify-content: space-between; align-items: flex-end; }
.redline { width: 32px; height: 2px; background: var(--red); margin-bottom: 1.5rem; }
.view-all-btn {
  display: inline-flex; align-items: center; gap: .7rem;
  font-size: .63rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--gray); border: 1px solid rgba(255,255,255,.12);
  padding: .75rem 1.6rem;
  transition: border-color .3s, color .3s, background .3s;
}
.view-all-btn:hover { color: var(--white); border-color: var(--red); background: rgba(233,32,56,.06); }
.gd-link {
  display: inline-flex; align-items: center; gap: .7rem;
  font-size: .63rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--gray); border: 1px solid rgba(255,255,255,.12);
  padding: .75rem 1.6rem; margin-top: 1.5rem;
  transition: border-color .3s, color .3s, background .3s;
}
.gd-link:hover { color: var(--white); border-color: var(--red); background: rgba(233,32,56,.06); }

/* ── deprecated stat/layout class aliases ── */
.stats-grid,
.s-about__stats,
.s-about__lead,
.s-about__metrics,
.s-about__panels { display: none; }

/* ============================================================
   CULTURE
============================================================ */
/* ════════════════════════════════════════════════════════
   CULTURE — Yeni asymmetric layout
   Üst: geniş intro / Orta: 2 kolon (tipografi + crew görseller)
   Alt: cfp-grid (Manifesto + INfinite kart ikilisi)
   ═══════════════════════════════════════════════════════ */
.s-culture {
  background: var(--sec-2);
  padding: 7rem 0 5rem;
  position: relative;
}

/* ── Başlık — IN-LAB ile aynı tipografik ölçü ── */
.s-culture__heading {
  margin: 0 0 .4rem;
  font-size: clamp(3rem, 8vw, 7rem);
  line-height: 1.05;
  letter-spacing: -.02em;
}

/* ── 2 kolonlu ana grid ──
   Sağ fotoğraf bloğu, alttaki .cfp-grid'in sağ (INfinite) kutusu
   ile aynı sol hizada başlasın diye 1fr 1fr + 1px gap (cfp-grid ile aynı). */
.s-culture__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  align-items: start;
  margin-bottom: 4rem;
}

.s-culture__text {
  display: flex;
  flex-direction: column;
  gap: 1.8rem;
  padding-right: 4rem;
}
.s-culture__lead {
  font-family: var(--pp);
  font-size: .88rem;
  line-height: 1.7;
  color: rgba(255,255,255,.6);
  margin: 0;
  max-width: 42ch;
}
.s-culture__more {
  align-self: flex-start;
  margin-top: auto;
  position: relative;
  overflow: hidden;
  color: var(--white);
  background: var(--red);
  border: 0 !important;            /* .txt-link border'ı override */
  outline: none;
  padding: .95rem 1.9rem;
  z-index: 0;
  letter-spacing: .22em;
  transition: color .35s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
.s-culture__more::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    rgba(0,0,0,.0) 0%,
    rgba(0,0,0,.35) 50%,
    rgba(0,0,0,.0) 100%);
  transform: translateX(-100%);
  transition: transform .6s cubic-bezier(.22,1,.36,1);
  z-index: -1;
}
.s-culture__more::after {
  content: '';
  position: absolute;
  inset: 0;
  background: #c81a2e;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
  z-index: -1;
}
.s-culture__more:hover {
  color: var(--white);
  background: var(--red);
  border: 0 !important;
}
.s-culture__more:hover::before {
  transform: translateX(100%);
}
.s-culture__more:hover::after {
  transform: scaleX(1);
}
.s-culture__more span,
.s-culture__more i {
  position: relative;
  z-index: 1;
}
.s-culture__more:hover i {
  transform: translateX(8px);
}

/* ── Kültür prensipleri — slideshow (büyük başlık + açıklama) ── */
.s-culture__slider {
  position: relative;
  margin: 1.2rem 0 1.6rem;
  padding: 1.6rem 0 1.4rem;
  border-bottom: none;
}
/* Kısa üst çizgi — tam genişlik yerine 60px dekoratif aksan */
.s-culture__slider::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 60px;
  height: 1px;
  background: rgba(255,255,255,.25);
}
.scs-stage {
  position: relative;
  min-height: 110px;
}
.scs-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .5s ease;
  pointer-events: none;
}
.scs-slide.is-active {
  opacity: 1;
  pointer-events: auto;
}
.scs-title {
  font-family: var(--sf), 'Impact', sans-serif;
  font-size: clamp(2.6rem, 4.4vw, 4rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .005em;
  line-height: 1;
  color: var(--white);
  margin: 0 0 .9rem;
  min-height: 1em;
}
.scs-desc {
  font-family: var(--pp);
  font-size: .82rem;
  line-height: 1.55;
  color: rgba(255,255,255,.72);
  margin: 0;
  max-width: 28ch;
  letter-spacing: .01em;
}

/* Typewriter caret (title only) — red, taller than the glyphs.
   Extends ~4px above and below the cap-height so it visually
   overshoots the title text top & bottom. */
.scs-title {
  position: relative;
}
.scs-title .tw-caret {
  display: inline-block;
  width: 5px;
  height: calc(1em + 6px);
  background: var(--red);
  margin-left: .1em;
  vertical-align: middle;
  transform: translateY(-0.1em);
  opacity: 0;
}
.scs-title .tw-caret.is-on {
  animation: twBlink 1s steps(1, end) infinite;
}
@keyframes twBlink {
  0%, 50%      { opacity: 1; }
  50.01%, 100% { opacity: 0; }
}

/* Desc — typewriter feel; visibility toggled before/after typing */
.scs-desc {
  transition: opacity .2s ease;
}
.scs-desc.is-hidden   { opacity: 0; }
.scs-desc.is-revealed { opacity: 1; }

/* Kare dots */
.scs-dots {
  display: flex;
  gap: .55rem;
  margin-top: 2.6rem;
}
.scs-dot {
  width: 10px;
  height: 10px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.28);
  background: transparent;
  border-radius: 0;
  cursor: pointer;
  transition: background-color .3s ease, border-color .3s ease;
}
.scs-dot:hover { border-color: rgba(255,255,255,.6); }
.scs-dot.is-active {
  background: var(--red);
  border-color: var(--red);
}
@media (max-width: 640px) {
  /* Mobilde slide metni daha kompakt — gereksiz boşluk yok */
  .scs-stage { min-height: 130px; }
  .scs-title { margin-bottom: .5rem; }
  /* Dot'lar slide metninin hemen altına çekildi */
  .scs-dots { margin-top: 1rem; }
  /* Slider'ın çevresindeki dış boşluk da kısaltıldı */
  .s-culture__slider {
    margin: .8rem 0 .8rem;
    padding: 1rem 0 .4rem;
  }
}

/* ── culture stats — vertical list ──────────── */
.culture-stat-list {
  display: flex;
  flex-direction: column;
  margin-bottom: 2rem;
  border-left: 2px solid var(--line);
}
.csl-item {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding: .85rem 0 .85rem 1.4rem;
  border-bottom: 1px solid var(--line);
  transition: border-left-color .3s;
  position: relative;
}
.csl-item::before {
  content: '';
  position: absolute;
  left: -2px; top: 0; bottom: 0;
  width: 2px;
  background: var(--red);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .38s cubic-bezier(.77,0,.175,1);
}
.csl-item:hover::before { transform: scaleY(1); }
.csl-num {
  font-family: var(--sf);
  font-size: clamp(2rem, 3.2vw, 2.8rem);
  font-weight: 700;
  color: var(--white);
  line-height: 1;
  min-width: 4rem;
  letter-spacing: -.03em;
  transition: color .3s;
  flex-shrink: 0;
}
.csl-plus {
  font-size: .65em;
  color: var(--red);
  vertical-align: .1em;
  margin-left: .04em;
}
.csl-item:hover .csl-num { color: var(--red); }
.csl-item:hover .csl-plus { color: var(--white); }
.csl-text {
  display: flex;
  flex-direction: column;
  gap: .12rem;
}
.csl-text strong {
  font-family: var(--pp);
  font-size: .78rem;
  font-weight: 600;
  color: var(--white);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.csl-text span {
  font-family: var(--pp);
  font-size: .65rem;
  color: var(--gray);
  line-height: 1.5;
}

/* ── culture statement slider ──────────────── */
.culture-slider {
  margin-bottom: 2rem;
  position: relative;
}

/* slide track */
.cs-track {
  position: relative;
  min-height: 200px;
}

.cs-slide {
  position: absolute;
  inset: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity .5s cubic-bezier(.4,0,.2,1), transform .5s cubic-bezier(.4,0,.2,1);
}
.cs-slide.active {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  position: relative;
}

.cs-slide-tag {
  font-family: var(--pp);
  font-size: .55rem;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--red);
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: 1.1rem;
}
.cs-slide-tag::before {
  content: '';
  width: 20px; height: 1px;
  background: var(--red);
  flex-shrink: 0;
}

.cs-slide-title {
  font-family: var(--sf);
  font-size: clamp(1.7rem, 2.8vw, 2.4rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -.025em;
  line-height: 1.04;
  color: var(--white);
  margin-bottom: 1rem;
}
.cs-slide-title em {
  font-style: normal;
  color: var(--red);
}

.cs-slide-body {
  font-family: var(--pp);
  font-size: .72rem;
  color: rgba(255,255,255,.42);
  line-height: 1.85;
  max-width: 380px;
}

/* nav row — borderless */
.cs-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.4rem 0 0;
}

.cs-dots {
  display: flex;
  align-items: center;
  gap: .45rem;
}
.cs-dot {
  width: 8px; height: 8px;
  border-radius: 1px;
  background: rgba(255,255,255,.2);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background .25s;
}
.cs-dot:hover { background: rgba(255,255,255,.5); }
.cs-dot.active { background: var(--red); }

/* .cs-arrows/.cs-prev/.cs-next removed — culture slider arrows no longer used */

/* culture flip title — always state-a */
.culture-flip-title { position: relative; }
.cft-state-a { display: block; }
.cft-state-b { display: none; }

/* ════════════════════════════════════════════════════════
   CREW VISUAL — Asymmetric görsel kompozisyonu
   1 büyük merkez + 2 yan kare + dikey rozet
   ═══════════════════════════════════════════════════════ */
.s-culture__crew-visual {
  position: relative;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  grid-template-rows: 1fr 1fr;
  grid-template-areas:
    "main top"
    "main bot";
  gap: 1rem;
  min-height: 560px;
}
.crew-fig {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: #0a0a0a;
  cursor: pointer;
}
.crew-fig--main { grid-area: main; }
.crew-fig--top  { grid-area: top; }
.crew-fig--bot  { grid-area: bot; }

.crew-fig img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.05) brightness(.95);
  transition: filter .6s cubic-bezier(.22,1,.36,1),
              transform .6s cubic-bezier(.22,1,.36,1);
}
.crew-fig:hover img {
  filter: grayscale(1) contrast(1.1) brightness(1);
  transform: scale(1.04);
}

/* Caption, overlay ve corner aksanları kaldırıldı — sadece görsel. */

/* sağdaki dikey rozet yazı */
.crew-vertical {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%) rotate(90deg);
  transform-origin: right center;
  font-family: var(--pp);
  font-size: .55rem;
  font-weight: 500;
  letter-spacing: .45em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  white-space: nowrap;
}

/* Responsive */
@media (max-width: 960px) {
  .s-culture__grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .s-culture__crew-visual {
    min-height: 460px;
  }
}
@media (max-width: 560px) {
  .s-culture { padding: 4.5rem 0 3rem; }
  .s-culture__intro { margin-bottom: 2.5rem; }
  .s-culture__grid { margin-bottom: 2.5rem; gap: 2.2rem; }
  .s-culture__crew-visual {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    grid-template-areas:
      "main main"
      "top  bot";
    min-height: 0;
  }
  .crew-fig--main { aspect-ratio: 4/3; }
  .crew-fig--top,
  .crew-fig--bot { aspect-ratio: 1/1; }
  .crew-vertical { font-size: .48rem; letter-spacing: .35em; }
}



/* ============================================================
   JOIN
============================================================ */
/* ============================================================
   IN-LAB SECTION
============================================================ */
.s-inlab {
  padding: 5rem 0 5.5rem;
  background: var(--sec-1);
}

/* Header row */
.sil-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2.8rem;
  flex-wrap: wrap;
}
.sil-eyebrow {
  font-family: var(--pp);
  font-size: .52rem;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: var(--red);
  display: block;
  margin-bottom: .6rem;
}
.sil-title {
  font-family: var(--sf);
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -.03em;
  color: var(--white);
  line-height: 1;
  margin: 0;
}
.sil-header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .9rem;
  max-width: 340px;
  text-align: right;
}
.sil-sub {
  font-family: var(--pp);
  font-size: .65rem;
  color: var(--gray);
  line-height: 1.7;
}
.sil-all-link {
  font-family: var(--pp);
  font-size: .52rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  transition: color .2s;
}
.sil-all-link:hover { color: var(--white); }
.sil-all-link:hover i { transform: translate(3px,-3px); }
.sil-all-link i { transition: transform .2s; }

/* Cards strip — horizontal, single row */
.sil-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--line);
}
.sil-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  padding: 1.8rem 1.6rem 1.6rem;
  border-right: 1px solid var(--line);
  text-decoration: none;
  color: var(--white);
  overflow: hidden;
  transition: background .3s;
}
.sil-card:last-child { border-right: none; }
.sil-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--red);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .42s cubic-bezier(.77,0,.175,1);
  z-index: 0;
}
.sil-card:hover::before { transform: scaleY(1); }
.sil-card > * { position: relative; z-index: 1; }

.sil-card__num {
  font-family: var(--sf);
  font-size: .72rem;
  color: rgba(255,255,255,.15);
  letter-spacing: .08em;
  transition: color .3s;
}
.sil-card:hover .sil-card__num { color: rgba(255,255,255,.35); }

.sil-card__ico {
  font-size: 1.5rem;
  color: rgba(255,255,255,.18);
  transition: color .3s;
}
.sil-card:hover .sil-card__ico { color: rgba(255,255,255,.9); }

.sil-card__title {
  display: block;
  font-family: var(--sf);
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  text-transform: uppercase;
  letter-spacing: -.01em;
  color: var(--white);
  line-height: 1.1;
  margin-bottom: .5rem;
  transition: color .3s;
}
.sil-card__title em {
  font-style: normal;
  color: var(--red);
  transition: color .3s;
}
.sil-card:hover .sil-card__title em { color: rgba(255,255,255,.7); }

.sil-card__desc {
  font-family: var(--pp);
  font-size: .58rem;
  color: rgba(255,255,255,.35);
  line-height: 1.7;
  transition: color .3s;
}
.sil-card:hover .sil-card__desc { color: rgba(255,255,255,.75); }

.sil-card__tag {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-family: var(--pp);
  font-size: .42rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.2);
  border: 1px solid rgba(255,255,255,.1);
  padding: .25rem .7rem;
  width: fit-content;
  margin-top: auto;
  transition: color .3s, border-color .3s;
}
.sil-card:hover .sil-card__tag {
  color: rgba(255,255,255,.8);
  border-color: rgba(255,255,255,.35);
}

.sil-card__arrow {
  position: absolute;
  top: 1.3rem;
  right: 1.4rem;
  font-size: .65rem;
  color: rgba(255,255,255,.1);
  opacity: 0;
  transform: translate(-4px, 4px);
  transition: opacity .3s, transform .3s, color .3s;
}
.sil-card:hover .sil-card__arrow {
  opacity: 1;
  transform: translate(0, 0);
  color: rgba(255,255,255,.8);
}

/* Accent card */
.sil-card--accent {
  background: rgba(233,32,56,.06);
  border-color: rgba(233,32,56,.2);
}
.sil-card--accent .sil-card__ico { color: rgba(233,32,56,.5); }
.sil-card--accent .sil-card__title em { color: var(--red); }

@media (max-width: 900px) {
  .sil-strip { grid-template-columns: repeat(2, 1fr); }
  .sil-card:nth-child(2) { border-right: none; }
  .sil-card:nth-child(1),
  .sil-card:nth-child(2) { border-bottom: 1px solid var(--line); }
}
@media (max-width: 540px) {
  .sil-strip { grid-template-columns: 1fr; }
  .sil-card { border-right: none; border-bottom: 1px solid var(--line); }
  .sil-card:last-child { border-bottom: none; }
  .sil-header { align-items: flex-start; }
  .sil-header-right { align-items: flex-start; text-align: left; }
}

/* ============================================================
   NEED MORE? — compact square tiles (footer öncesi, IN-LAB altı)
   Anasayfanın son section'ı. Anasayfada kendi section'ı OLMAYAN
   sayfalara kare kutular: IN-Words, Join, INfinite, Manifesto,
   Wallpapers, Contact. Her kutu: üstte tag, ortada başlık, altta desc.
============================================================ */
.s-directory {
  padding: 3rem 0 3.5rem;
  background: var(--sec-3);
  position: relative;
  overflow: hidden;
}

/* ── Üst blok: sol 2 satırlı başlık · sağ Full Directory butonu ── */
.s-directory__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 1.75rem;
  position: relative;
  z-index: 1;
  gap: 1.5rem;
  flex-wrap: wrap;
}

/* İki satırlı başlık — daha ufak */
.s-directory__title {
  font-family: var(--sf);
  font-size: clamp(1.6rem, 2.6vw, 2.25rem);
  font-weight: 700;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: var(--white);
  margin: 0;
  line-height: 1.1;
}
.s-directory__title .accent { color: var(--red); }

/* Full Directory butonu — IN-LAB'teki Explore IN-LAB butonuyla birebir aynı stil */
.s-directory__btn {
  font-family: var(--pp);
  font-size: .56rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .6rem 1.3rem;
  border: 1px solid rgba(255,255,255,.14);
  background: transparent;
  transition: color .25s, border-color .25s, background .25s;
  white-space: nowrap;
  flex-shrink: 0;
}
.s-directory__btn:hover {
  color: #fff;
  border-color: var(--red);
  background: rgba(233,32,56,.07);
}
.s-directory__btn i {
  font-size: .55rem;
  transition: transform .25s;
}
.s-directory__btn:hover i { transform: translateX(5px); }

/* ══════════════════════════════════════════════════════════
   NEED MORE — Farklı genişlikte fotoğraflı 5 kutu
   Asimetrik flex-row: w1=1, w2=1.5, w3=2 — yatayda dolu
   Her kutu BG image + dark shade + tipografik içerik
   ══════════════════════════════════════════════════════════ */
.dir-hd {
  display: flex;
  flex-direction: column;
  gap: .55rem;
  margin-bottom: 1.75rem;
  position: relative;
  z-index: 1;
}
.dir-hd__eyebrow {
  font-family: var(--pp);
  font-size: .58rem;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--red);
  line-height: 1;
  margin: 0 0 .55rem 0;
  padding: 0;
  text-indent: 0;
  display: block;
}
.dir-hd__title {
  font-family: var(--sf), 'Impact', sans-serif;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 700;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: var(--white);
  margin: 0;
  line-height: 1.08;
}
.dir-hd__title .dir-hd__dot { color: var(--red); }

/* Asimetrik kutular — yatay flex, farklı genişlikler */
.dir-tiles {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  position: relative;
  z-index: 1;
}

/* Kutu — fotoğraf arka planlı, dark shade overlay, içerik altta */
.dir-tile {
  position: relative;
  display: block;
  height: 280px;
  min-width: 0;
  overflow: hidden;
  text-decoration: none;
  background-color: var(--sec-3);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  isolation: isolate;
  flex: 1 1 0;
  filter: grayscale(1) brightness(.72);
  /* Hover'da sağa doğru kayar gibi binme efekti */
  transition:
    filter .4s ease,
    transform .5s cubic-bezier(.22,1,.36,1),
    box-shadow .4s ease,
    z-index 0s linear .5s;
  transform: translateX(0);
  z-index: 1;
}

/* Genişlik varyantları — sabit, hover'da değişmez */
.dir-tile--w1 { flex-grow: 1; }
.dir-tile--w2 { flex-grow: 1.6; }
.dir-tile--w3 { flex-grow: 2.3; }

/* Hover: kutu sağa doğru kayar, üst katmana çıkar, gölge bırakır */
.dir-tile:hover {
  filter: grayscale(0) brightness(.95);
  transform: translateX(4%);
  z-index: 5;
  box-shadow: -18px 0 36px rgba(0,0,0,.55), 0 8px 24px rgba(0,0,0,.4);
  transition:
    filter .4s ease,
    transform .5s cubic-bezier(.22,1,.36,1),
    box-shadow .4s ease,
    z-index 0s linear 0s;
}

/* Hover edilen kutudan SONRAKİ kutu da hafifçe sağa kayar — domino hissi */
.dir-tile:hover ~ .dir-tile {
  transform: translateX(2%);
}

/* Karartma katmanı — alttan üste dark gradient (hover'da değişmez) */
.dir-tile__shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(2,2,2,.1) 0%, rgba(2,2,2,.55) 60%, rgba(2,2,2,.88) 100%);
  z-index: 0;
}

/* İçerik bloğu — alt-sol köşede */
.dir-tile__body {
  position: absolute;
  left: 1.2rem;
  right: 1.2rem;
  bottom: 1.1rem;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: .35rem;
}

.dir-tile__tag {
  font-family: var(--pp);
  font-size: .52rem;
  font-weight: 600;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--red);
  line-height: 1;
}

.dir-tile__name {
  font-family: var(--sf), 'Impact', sans-serif;
  font-size: clamp(1.4rem, 2vw, 1.9rem);
  font-weight: 700;
  letter-spacing: -.005em;
  text-transform: uppercase;
  line-height: 1;
  color: var(--white);
  margin: 0;
}

/* Eski sınıfları temizle */
.s-directory__grid,
.s-directory__head,
.s-directory__heading-wrap,
.s-directory__eyebrow,
.s-directory__btn,
.dir-split, .dir-hero, .dir-hero__eyebrow, .dir-hero__title,
.dir-hero__dot, .dir-hero__lead, .dir-hero__cta, .dir-hero__count,
.dir-matrix, .dir-matrix__cell, .dir-matrix__num, .dir-matrix__name,
.dir-matrix__desc, .dir-matrix__arrow,
.dir-box, .dir-list, .dir-list__item, .dir-list__link,
.dir-trio, .dir-trio__card, .dir-trio__tag, .dir-trio__title, .dir-trio__arrow,
.dir-index, .dir-index__row, .dir-index__link, .dir-index__num,
.dir-index__name, .dir-index__desc, .dir-index__dots, .dir-index__arrow,
.dir-box__bgnum, .dir-box__arrow, .dir-box__num, .dir-box__top,
.dir-box__cta, .dir-box__tag, .dir-box__name, .dir-box__desc,
.dir-list__title, .dir-list__icon { all: unset; }
.s-directory__grid, .s-directory__head, .dir-split, .dir-matrix,
.dir-box, .dir-list, .dir-trio, .dir-index { display: none; }

/* ── Responsive ── */
@media (max-width: 960px) {
  .dir-tiles { flex-wrap: wrap; }
  .dir-tile { flex: 1 1 calc(50% - .3rem); height: 220px; }
  .dir-tile--w3 { flex: 1 1 100%; }
  .dir-tile:hover { flex-grow: 1; }
}
@media (max-width: 560px) {
  .dir-tile { flex: 1 1 100%; height: 180px; }
  .dir-tile__desc { max-height: 4em; opacity: 1; margin-top: .3rem; }
}

/* ══════════════════════════════════════════════════════════
   LUCK PITCH — kapanış davet bandı
   Üstündeki .s-directory (--sec-3) ve alttaki footer (--sec-1)
   arasında ORTA ton (--sec-2) — net biçimde ayrılır.
   Üst border yok, alt hairline footer'dan ayırır.
   ══════════════════════════════════════════════════════════ */
.s-luckpitch {
  padding: 7rem 0;
  background: var(--sec-2);
  text-align: center;
  position: relative;
}

.s-luckpitch__inner {
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.s-luckpitch__eyebrow {
  font-family: var(--pp);
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--red);
  margin: 0 0 .55rem 0;
  padding: 0;
  text-indent: 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: .9rem;
}
.s-luckpitch__eyebrow::before,
.s-luckpitch__eyebrow::after {
  content: '';
  width: 26px;
  height: 1px;
  background: var(--red);
  opacity: .8;
}

.s-luckpitch__title {
  font-family: var(--sf), 'Impact', sans-serif;
  font-size: clamp(3rem, 8vw, 7rem);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--white);
  line-height: 1.02;
  letter-spacing: -.02em;
  margin: 0 0 1.5rem;
}

.s-luckpitch__lead {
  font-family: var(--pp);
  font-size: .9rem;
  color: rgba(255,255,255,.6);
  line-height: 1.7;
  max-width: 52ch;
  margin: 0 auto 2.8rem;
}
.s-luckpitch__lead strong { color: var(--white); font-weight: 600; }

/* Closing-CTA variant: sits between page content and footer.
   Uses --sec-3 so it visually separates from both the section
   above and the footer below. Includes a simple outline CTA. */
.s-luckpitch--cta {
  background: var(--sec-3);
  padding: 8rem 0;
}
.s-luckpitch__btn {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-family: var(--pp);
  font-size: .58rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
  text-decoration: none;
  padding: .95rem 1.7rem;
  border: 1px solid rgba(255,255,255,.2);
  background: transparent;
  transition: color .25s, border-color .25s, background .25s, gap .25s;
}
.s-luckpitch__btn:hover {
  color: #fff;
  border-color: var(--red);
  background: var(--sec-2);
  gap: .9rem;
}
.s-luckpitch__btn i { font-size: .65rem; }

/* ══════════════════════════════════════════════════════════
   RANDOM SHORTCUT — "boarding tag" stili buton
   Sol: DEST etiketi + 3 harfli destination kodu (LAB / WRK / MAN ...)
   Orta: küçük üst çizgi (RANDOM SHORTCUT) + Steelfish büyük etiket
   Sağ: GO ↗ ikonu
   Hover: sol kırmızı bant tüm buton üzerine kayar (wipe), kod flip,
          GO bloğu hafifçe sağa süzülür.
   ══════════════════════════════════════════════════════════ */
.rnd-tag {
  --rnd-h: 88px;
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: stretch;
  gap: 0;
  width: 460px;
  max-width: 100%;
  height: var(--rnd-h);
  background: var(--sec-2);
  color: var(--white);
  text-decoration: none;
  border: 1px solid var(--line);
  overflow: hidden;
  transition:
    transform .35s cubic-bezier(.22,1,.36,1),
    border-color .35s ease;
}
.rnd-tag:hover { border-color: var(--red); }

/* Hover sırasında soldan sağa açılan kırmızı katman (içerik üzerine değil,
   yalnızca arka plan olarak — z-index:0). */
.rnd-tag::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .55s cubic-bezier(.22,1,.36,1);
  z-index: 0;
}
.rnd-tag:hover::before { transform: scaleX(1); }

/* Tüm iç bloklar arka planın üstünde */
.rnd-tag > * { position: relative; z-index: 1; }

/* ── SOL: DEST kodu kutusu ── */
.rnd-tag__meta {
  flex-shrink: 0;
  width: 96px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 0 1rem;
  background: var(--bg);
  border-right: 1px solid var(--line);
  transition: background-color .35s ease, border-color .35s ease;
}
.rnd-tag:hover .rnd-tag__meta {
  background: #b3162a;
  border-right-color: rgba(255,255,255,.18);
}
.rnd-tag__meta-k {
  font-family: var(--pp);
  font-size: .55rem;
  letter-spacing: .32em;
  color: var(--dim);
  text-transform: uppercase;
  margin-bottom: .25rem;
  transition: color .35s ease;
}
.rnd-tag:hover .rnd-tag__meta-k { color: rgba(255,255,255,.7); }
.rnd-tag__code {
  font-family: var(--sf), 'Impact', sans-serif;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
  color: var(--red);
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  display: inline-block;
  transition: color .25s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
.rnd-tag:hover .rnd-tag__code { color: var(--white); }
.rnd-tag__code.is-flip {
  transform: translateY(-4px);
  opacity: 0;
}

/* ── ORTA: ayraç noktalı çizgi ── */
.rnd-tag__sep {
  flex-shrink: 0;
  width: 1px;
  margin: 14px 0;
  background-image: linear-gradient(
    to bottom,
    rgba(255,255,255,.22) 0,
    rgba(255,255,255,.22) 4px,
    transparent 4px,
    transparent 8px
  );
  background-size: 1px 8px;
}

/* ── ORTA: hint + label ── */
.rnd-tag__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 1.25rem;
  overflow: hidden;
}
.rnd-tag__hint {
  font-family: var(--pp);
  font-size: .55rem;
  letter-spacing: .32em;
  color: var(--dim);
  text-transform: uppercase;
  margin-bottom: .35rem;
  transition: color .35s ease;
}
.rnd-tag:hover .rnd-tag__hint { color: rgba(255,255,255,.85); }
.rnd-tag__label {
  font-family: var(--sf), 'Impact', sans-serif;
  font-weight: 700;
  font-size: 1.55rem;
  letter-spacing: .02em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--white);
  transition:
    opacity .22s ease,
    transform .3s cubic-bezier(.22,1,.36,1);
}
.rnd-tag__label.is-swapping {
  opacity: 0;
  transform: translateY(-4px);
}

/* ── SAĞ: GO ↗ ── */
.rnd-tag__go {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: 0 1.4rem;
  font-family: var(--pp);
  font-size: .62rem;
  line-height: 1;
  letter-spacing: 0;                  /* letter-spacing'i metne özgü uyguluyoruz */
  color: rgba(255,255,255,.7);
  text-transform: uppercase;
  border-left: 1px solid var(--line);
  transition: color .35s ease, padding .35s cubic-bezier(.22,1,.36,1), border-color .35s ease;
}
.rnd-tag__go-txt {
  display: inline-block;
  letter-spacing: .32em;
  /* sağdaki letter-spacing boşluğunu sıfırla → optik hizalama düzelir */
  margin-right: -.32em;
  line-height: 1;
}
.rnd-tag__go i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .78rem;
  line-height: 1;
  /* FontAwesome ikon glyph'i baseline'da hafif aşağıda oturuyor; optik düzeltme */
  transform: translateY(-1px);
  transition: transform .35s cubic-bezier(.22,1,.36,1);
}
.rnd-tag:hover .rnd-tag__go {
  color: var(--white);
  border-left-color: rgba(255,255,255,.25);
  padding-right: 1.7rem;
}
.rnd-tag:hover .rnd-tag__go i { transform: translate(4px,-5px); }

/* Responsive */
@media (max-width: 560px) {
  .rnd-tag { width: 100%; --rnd-h: 76px; }
  .rnd-tag__meta { width: 78px; padding: 0 .8rem; }
  .rnd-tag__code { font-size: 1.6rem; }
  .rnd-tag__body { padding: 0 .9rem; }
  .rnd-tag__label { font-size: 1.2rem; }
  .rnd-tag__go { padding: 0 .9rem; font-size: .55rem; }
  .rnd-tag__go i { font-size: .7rem; }
}
@media (max-width: 380px) {
  .rnd-tag__hint { display: none; }
  .rnd-tag__go span { display: none; }
}

/* ── Scramble: hover sırasında karakterler titrer gibi karışır ── */
.scramble {
  display: inline-block;
  font-variant-ligatures: none;
  /* JS karakterleri değiştirirken layout zıplamasın */
  font-feature-settings: "tnum" 1;
}
.scramble.is-scrambling {
  /* hafif kırmızı flicker — koyu/açık karakterleri ayırır */
  text-shadow: 0 0 .5px rgba(233,32,56,.35);
}

/* ── Responsive ── */
@media (max-width: 1024px) {
  .s-directory { padding: 2.5rem 0 3rem; }
  .s-directory__grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
  .s-directory { padding: 2.25rem 0 2.5rem; }
  .s-directory__head {
    margin-bottom: 1.5rem;
    gap: 1.1rem;
    align-items: flex-start;
    flex-direction: column;
  }
  .s-directory__btn { align-self: flex-start; padding: .55rem 1.1rem; }
  .s-directory__grid { grid-template-columns: repeat(2, 1fr); gap: .5rem; }
  .dir-box { padding: .85rem .8rem; }
  .dir-box__name { font-size: 1rem; }
  .dir-box__desc { font-size: .62rem; }
}

/* ============================================================
   IN-DNA SECTION — Sade Tipografik Tasarım
============================================================ */
.s-indna {
  padding: 6rem 0 7rem;
  background: var(--sec-3);
  position: relative;
  overflow: hidden;
}

/* CMS YÖNLENDİRME BLOĞU — ilk yükte "hayalet/flash" önleyici.
   Blok CMS verisi işlenene kadar gizli kalır (cms.js .cms-pending'i kaldırır).
   JS yoksa/cms yüklenmezse 1.2sn sonra fallback olarak görünür (FOUC koruması). */
.s-indna.cms-pending { visibility: hidden; }
@keyframes cmsPendingFailsafe { to { visibility: visible; } }
.s-indna.cms-pending { animation: cmsPendingFailsafe 0s linear 1.2s forwards; }



/* ── Sol kutular: soldan sağa kayarak gelir ── */
.sid-anim-cols {
  opacity: 0;
  transform: translateX(-24px);
  transition: opacity .75s ease .35s, transform .75s cubic-bezier(.22,1,.36,1) .35s;
}
.s-indna.indna-visible .sid-anim-cols {
  opacity: 1;
  transform: translateX(0);
}

/* ── Sağ başlık bloğu: sağdan sola kayarak gelir ── */
.sid-anim-header {
  opacity: 0;
  transform: translateX(24px);
  transition: opacity .75s ease .55s, transform .75s cubic-bezier(.22,1,.36,1) .55s;
}
.s-indna.indna-visible .sid-anim-header {
  opacity: 1;
  transform: translateX(0);
}

/* Ana layout — SOL kutular · SAĞ başlık (yan yana, üst hizada) */
.sid-layout {
  display: grid;
  grid-template-columns: 2fr 1fr;   /* kutular daha geniş, başlık daha dar */
  gap: 1.8rem;                      /* blok arası boşluk azaltıldı */
  align-items: start;               /* Başlık kutuların üst hizasıyla aynı yatay hizada */
}

/* Sağ: başlık sütunu — en sağda, tüm yazılar sağa dayalı */
.sid-title-col {
  display: flex;
  flex-direction: column;
  align-items: flex-end;   /* content right-aligned */
  text-align: right;       /* text right-aligned */
  gap: .55rem;             /* standard eyebrow-to-title gap */
  padding-top: .2rem;      /* optical top alignment with box padding */
}
.sid-title-col .sid-heading { text-align: right; }
.sid-title-col .sid-eyebrow { text-align: right; }

.sid-cta-question {
  font-family: var(--pp);
  font-size: .88rem;
  letter-spacing: .01em;
  color: rgba(255,255,255,.6);
  font-style: normal;
  text-align: right;
  line-height: 1.7;
  margin: .8rem 0 .6rem;
  max-width: 42ch;
}
/* IN-DNA CTA — IN-LAB "Explore" butonu ile birebir aynı stil */
.sid-cta-btn {
  font-family: var(--pp);
  font-size: .56rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .6rem 1.3rem;
  border: 1px solid rgba(255,255,255,.14);
  background: transparent;
  transition: color .25s, border-color .25s, background .25s;
  white-space: nowrap;
}
.sid-cta-btn:hover {
  color: #fff;
  border-color: var(--red);
  background: rgba(233,32,56,.07);
}
.sid-cta-btn i {
  font-size: .55rem;
  transition: transform .25s;
}
.sid-cta-btn:hover i { transform: translateX(5px); }
.sid-eyebrow {
  font-family: var(--pp);
  font-size: .46rem;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: rgba(255,255,255,.25);
}
.sid-link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-family: var(--pp);
  font-size: .46rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  text-decoration: none;
  transition: color .25s;
}
.sid-link:hover { color: var(--white); }
.sid-link i { transition: transform .25s; }
.sid-link:hover i { transform: translateX(4px); }

/* Büyük başlık — IN-LAB ile aynı tipografik ölçü */
.sid-heading {
  font-family: var(--sf);
  font-size: clamp(3rem, 8vw, 7rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -.02em;
  line-height: 1.05;
  color: var(--white);
  margin: 0;
}
.sid-dash { color: var(--red); }
.sid-dot  { display: none; }

/* İki kutu — sol blok içinde yan yana */
.sid-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  min-width: 0; /* grid item overflow koruması */
}

.sid-col {
  display: flex;
  flex-direction: column;
  gap: 1.8rem;
  padding: 3.8rem 3rem 3.4rem 2.8rem;
  min-height: 32rem;
  text-decoration: none;
  color: var(--white);
  /* Gri arkaplandan ayrılacak koyu ton — her kutu kendi başına */
  background: #0a0a0a;
  border: 1px solid rgba(255,255,255,.06);
  position: relative;
  overflow: hidden;
  transition: background .35s, border-color .35s;
}
.sid-col:first-child { padding-left: 2.8rem; }
.sid-col:last-child {
  border-right: 1px solid rgba(255,255,255,.06);
  padding-left: 2.8rem;
  padding-right: 2.8rem;
}
.sid-col:hover {
  background: #0d0d0d;
  /* kırmızı border kaldırıldı — sadece hafif bir ton değişimi */
  border-color: rgba(255,255,255,.12);
}

/* Hover: sol/sağ kenardan kırmızı çizgi yukarı kayar */
.sid-col::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s cubic-bezier(.22,1,.36,1);
}
.sid-col:hover::before { transform: scaleX(1); }

.sid-col__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.sid-col__num,
.sid-col__cipher {
  font-family: 'JetBrains Mono', 'Courier New', monospace;
  font-size: .36rem;
  letter-spacing: .18em;
  color: rgba(255,255,255,.22);
  /* text-transform yok → TR locale i→İ bug. Metin kaynakta yazıldığı gibi. */
  transition: color .35s ease;
}
.sid-col:hover .sid-col__cipher {
  color: rgba(233,32,56,.55);
}
.sid-col__badge {
  font-family: var(--pp);
  font-size: .4rem;
  letter-spacing: .2em;
  /* text-transform yok → TR locale i→İ bug. Metin kaynakta yazıldığı gibi. */
  color: rgba(233,32,56,.6);
  border: 1px solid rgba(233,32,56,.2);
  padding: .22rem .7rem;
  transition: color .3s, border-color .3s;
}
.sid-col:hover .sid-col__badge {
  color: var(--red);
  border-color: rgba(233,32,56,.45);
}

.sid-col__title {
  font-family: var(--sf);
  font-size: clamp(2.4rem, 4.6vw, 4.2rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -.025em;
  line-height: 1.05;
  color: var(--white);
  /* color transition only -- letter-spacing / line-height fixed */
  transition: color .35s ease;
}
/* Hover: başlık kırmızıya döner, tipografik bütünlük korunur */
.sid-col:hover .sid-col__title { color: var(--red); }

.sid-col__desc {
  font-family: var(--pp);
  font-size: .66rem;
  line-height: 1.75;
  color: rgba(255,255,255,.28);
  max-width: 360px;
  /* text-transform yok → TR locale i→İ bug. Metin kaynakta yazıldığı gibi. */
  transition: color .3s;
}
.sid-col:hover .sid-col__desc { color: rgba(255,255,255,.55); }

/* ── Başlık BÜYÜK harf. TR locale i→İ bug'ına karşı :lang(tr) istisnası. ── */
.sid-col__title:lang(tr) {
  text-transform: none;
}

/* ── CTA: sade tipografik — kırmızı vurgulu, çizgi ve ok yok ── */
.sid-col__cta {
  display: inline-flex;
  align-items: center;
  font-family: var(--pp);
  font-size: .46rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--red);
  margin-top: auto;
  transition: color .3s ease, letter-spacing .3s ease;
}
.sid-col__cta-text {
  white-space: nowrap;
  color: var(--red);
  transition: color .3s ease;
}
/* Hover: kırmızı biraz daha canlı, harf aralığı hafifçe açılır */
.sid-col:hover .sid-col__cta { letter-spacing: .26em; }
.sid-col:hover .sid-col__cta-text { color: var(--red); filter: brightness(1.15); }

/* Responsive */
@media (max-width: 1024px) {
  .sid-layout { grid-template-columns: 1.5fr 1fr; gap: 2.2rem; }
  .sid-heading { font-size: clamp(2.6rem, 7.5vw, 5rem); }
}
@media (max-width: 860px) {
  /* Küçük ekranda: başlık en üste çıkar, kutular altına gelir */
  .sid-layout {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .sid-title-col {
    order: -1;
    padding-top: 0;
  }
  .sid-cta-question { max-width: 100%; }
}
@media (max-width: 720px) {
  .sid-cols { grid-template-columns: 1fr; gap: 1rem; }
  .sid-heading { font-size: clamp(2.6rem, 12vw, 5rem); }
  /* Mobilde kutular kompakt — başlık + kısa açıklama + CTA;
     sabit min-height kaldırıldı, dikey hava ve padding sıkıştırıldı */
  .sid-col {
    padding: 1.6rem 1.1rem 1.5rem;
    border-right: none;
    min-height: 0;
    gap: .9rem;
  }
  .sid-col:first-child { padding-left: 1.1rem; }
  .sid-col:last-child { padding-left: 1.1rem; padding-right: 1.1rem; border-bottom: none; }
  .sid-col__title { font-size: clamp(2rem, 9vw, 2.6rem); line-height: 1.02; }
  .sid-col__desc { font-size: .7rem; line-height: 1.55; max-width: 100%; }
  .sid-col__cta { margin-top: .4rem; }
}

/* ============================================================
   JOIN
============================================================ */
/* ── IN-LAB Portal Section (index.html) ── */
/* ════════════════════════════════════════════
   IN-LAB PORTAL — Showcase Cards
════════════════════════════════════════════ */
/* ════════════════════════════════════════════════════════
   IN-LAB PORTAL — Static section (no canvas, no animation).
   Uses palette-grey background like other major sections.
════════════════════════════════════════════════════════ */
.s-inlab-portal {
  padding: calc(6.5rem + 20px) 0;
  background: var(--sec-2);
  position: relative;
}

/* ── IN-LAB bölümü: düz koyu gri zemin (site paleti) ── */
.s-inlab-portal--lab {
  background: var(--sec-2);   /* #070707 — diğer ana bölümlerle aynı düz koyu gri */
  border-top: 1px solid rgba(255,255,255,.05);
  isolation: isolate;
  overflow: hidden;
}

/* ── Asimetrik vitrin: 1 büyük öne çıkan + küçük kartlar ── */
.s-inlab-portal--lab .silp-grid--featured {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 1fr;
  gap: 1.2rem;
}
/* küçük kartlar */
.s-inlab-portal--lab .silp-card { min-height: 248px; }
.s-inlab-portal--lab .silp-card__visual { height: 104px; }
.s-inlab-portal--lab .silp-card__content { padding: .9rem; }
.s-inlab-portal--lab .silp-card__title { font-size: 1.05rem; }
.s-inlab-portal--lab .silp-card__desc { font-size: .64rem; line-height: 1.45; }
.s-inlab-portal--lab .silp-bigicon { font-size: 2.1rem; }

/* ── Küçük kartlar (feature HARİÇ): başlık büyük (%15 daha büyük: 1.42→1.63rem) ── */
.s-inlab-portal--lab .silp-card:not(.silp-card--feature) .silp-card__title {
  font-size: 1.63rem;
  line-height: 1.04;
  letter-spacing: -.01em;
}
/* alttaki açıklama küçük kartlarda gizli (hover overlay'de gösterilir) */
.s-inlab-portal--lab .silp-card:not(.silp-card--feature) .silp-card__desc { display: none; }

/* ── HOVER OVERLAY — tam kart boyutunda kırmızı; ikon + büyük başlık ÜSTTE ──
   Düz animasyon: blur YOK, sadece yumuşak yukarı-kayma + fade (iç öğeler kademeli) */
.silp-card__hover {
  --silp-ease-soft: cubic-bezier(.22, .61, .36, 1);
  position: absolute; inset: 0; z-index: 8;
  display: flex; flex-direction: column; justify-content: flex-start;
  gap: .65rem; padding: 1.4rem;
  background: linear-gradient(155deg, var(--red) 0%, #b3162a 100%);
  opacity: 0; visibility: hidden;
  transform: translateY(14px) scale(.985);
  transition:
    opacity .4s var(--ease),
    visibility .4s var(--ease),
    transform .45s var(--ease);
  pointer-events: none;
}
.s-inlab-portal--lab .silp-card:not(.silp-card--feature):hover .silp-card__hover {
  opacity: 1; visibility: visible; transform: none;
}
/* overlay iç öğeleri sırayla akışkan şekilde gelsin (yumuşak yay-eğrisi + hafif netleşme) */
.silp-card__hover > * {
  opacity: 0; transform: translateY(16px);
  filter: blur(3px);
  transition:
    opacity .55s var(--silp-ease-soft),
    transform .6s var(--silp-ease-soft),
    filter .55s var(--silp-ease-soft);
  will-change: opacity, transform, filter;
}
.silp-card:hover .silp-card__hover > * { opacity: 1; transform: none; filter: blur(0); }
.silp-card:hover .silp-card__hover-icon  { transition-delay: .10s; }
.silp-card:hover .silp-card__hover-title { transition-delay: .18s; }
.silp-card:hover .silp-card__hover-desc  { transition-delay: .26s; }
.silp-card:hover .silp-card__hover-btn   { transition-delay: .34s; }
/* ikon — başlığın üstünde */
.silp-card__hover-icon {
  font-size: 1.5rem; color: #fff; line-height: 1;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.3));
}
/* başlık — büyük ve üstte (%15 daha büyük: 1.95→2.24rem) */
.silp-card__hover-title {
  font-family: var(--sf); font-weight: 800; font-size: 2.24rem; line-height: 1;
  color: #fff; margin: 0;
}
.silp-card__hover-desc {
  font-size: .72rem; line-height: 1.5; color: rgba(255,255,255,.92); margin: 0;
}
/* buton altta (auto-margin ile aşağı itilir) */
.silp-card__hover-btn {
  display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start;
  margin-top: auto;
  font-family: var(--pp); font-size: .56rem; letter-spacing: .18em; color: #fff;
  padding: .55rem 1rem; border: 1px solid rgba(255,255,255,.55); background: rgba(0,0,0,.12);
  transition: background .25s, border-color .25s, opacity .4s var(--ease), transform .45s var(--ease);
}
.silp-card__hover-btn i { font-size: .54rem; transition: transform .25s; }
.silp-card__hover-btn:hover { background: #000; border-color: #000; }
.silp-card:hover .silp-card__hover-btn:hover i { transform: translateX(4px); }
/* coming-soon kartlarında overlay kırmızı yerine SİYAH olsun */
.silp-card--soon .silp-card__hover {
  background: linear-gradient(155deg, #161616 0%, #050505 100%);
}
/* "COMING SOON" butonu — pasif görünüm (tıklanmaz, hover'da değişmez) */
.silp-card__hover-btn--soon {
  border-color: rgba(255,255,255,.28);
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.7);
  cursor: default;
}
.silp-card__hover-btn--soon:hover { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.28); }

/* ÖNE ÇIKAN kart — 2×2 alan kaplar */
.s-inlab-portal--lab .silp-card--feature {
  grid-column: span 2;
  grid-row: span 2;
  min-height: 0;
}
.s-inlab-portal--lab .silp-card--feature .silp-card__visual { height: auto; flex: 1; min-height: 240px; }
.s-inlab-portal--lab .silp-card--feature .silp-card__content { padding: 1.6rem; }
.s-inlab-portal--lab .silp-card--feature .silp-card__title { font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.02; }
.s-inlab-portal--lab .silp-card--feature .silp-card__desc { font-size: .82rem; line-height: 1.55; max-width: 42ch; }
.s-inlab-portal--lab .silp-card--feature .silp-card__num { font-size: 1.4rem; }
/* öne çıkan rozeti */
.silp-card__feat-badge {
  position: absolute; top: 1rem; left: 1rem; z-index: 6;
  display: inline-flex; align-items: center; gap: .45rem;
  font-family: var(--pp); font-size: .6rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: #fff;
  background: var(--red); border-radius: 999px; padding: .4rem .75rem;
  box-shadow: 0 6px 20px -6px rgba(233,32,56,.6);
}
.silp-card__feat-badge i { font-size: .58rem; }

/* VFX'i olmayan oyunlar için sade ikon görseli (oyun rengine göre) */
.silp-card__visual--icon {
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(120% 120% at 50% 35%,
      color-mix(in srgb, var(--c, #e92038) 22%, transparent), transparent 70%),
    #060606;
}
.silp-card__visual--icon .silp-card__visual-inner {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
}
.silp-bigicon {
  font-size: 2.6rem;
  color: var(--c, #e92038);
  filter: drop-shadow(0 0 16px color-mix(in srgb, var(--c, #e92038) 45%, transparent));
  opacity: .9; transition: transform .45s, opacity .45s;
}
.silp-card:hover .silp-bigicon { transform: scale(1.08); opacity: 1; }

/* ════════════════════════════════════════════════════════════
   ANASAYFA IN-LAB KARTLARI — IN-LAB sayfasındaki VFX'lerin BİREBİR aynısı
   (in-lab.html içindeki inline <style>'lardan kopyalandı)
════════════════════════════════════════════════════════════ */
.s-inlab-portal--lab .lab-card__vfx { position: relative; overflow: hidden; }

/* ── INLOOP — generative grid (14×14 ping) ── */
.silp-loopgrid {
  position: absolute; inset: 18px;
  display: grid; grid-template-columns: repeat(14, 1fr); grid-template-rows: repeat(14, 1fr);
  gap: 2px;
}
@keyframes gridCellPing { 0%,100% { background:rgba(255,255,255,.05); } 50% { background:#E92038; box-shadow:0 0 10px rgba(233,32,56,.6); } }
.silp-loopgrid .mini-gcell { background:rgba(255,255,255,.05); border-radius:1px; }
.silp-loopgrid .mini-gcell.p1 { animation: gridCellPing 2.4s ease-in-out infinite; animation-delay: 0s; }
.silp-loopgrid .mini-gcell.p2 { animation: gridCellPing 2.4s ease-in-out infinite; animation-delay: .3s; }
.silp-loopgrid .mini-gcell.p3 { animation: gridCellPing 2.4s ease-in-out infinite; animation-delay: .6s; }
.silp-loopgrid .mini-gcell.p4 { animation: gridCellPing 2.4s ease-in-out infinite; animation-delay: .9s; }
.silp-loopgrid .mini-gcell.p5 { animation: gridCellPing 2.4s ease-in-out infinite; animation-delay: 1.2s; }
.silp-loopgrid .mini-gcell.p6 { animation: gridCellPing 2.4s ease-in-out infinite; animation-delay: 1.5s; }
.silp-loopgrid .mini-gcell.p7 { animation: gridCellPing 2.4s ease-in-out infinite; animation-delay: 1.8s; }
.silp-loopgrid .mini-gcell.p8 { animation: gridCellPing 2.4s ease-in-out infinite; animation-delay: 2.1s; }

/* ── PIX DROP — collective pile + falling grains ── */
@keyframes heapFall { 0% { transform: translateY(-30px); opacity: 0; } 30% { opacity: 1; } 100% { transform: translateY(0); opacity: 1; } }
@keyframes heapCount { 0%,100% { opacity: .4; } 50% { opacity: 1; } }
.heap-vfx-stage { position: absolute; inset: 0; }
.heap-grain { position: absolute; width: 2px; height: 2px; background: #c9c9c9; }
.heap-grain.r { background: #E92038; }
.heap-falling { position: absolute; width: 2px; height: 2px; background: #ffffff; animation: heapFall 1.6s ease-in infinite; }
.heap-base { position: absolute; left: 0; right: 0; bottom: 56px; height: 1px; background: rgba(255,255,255,.12); }
.heap-meta { position: absolute; left: 14px; top: 14px; font-family: var(--pp); font-size: .55rem; letter-spacing: .25em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.heap-meta i { color: var(--red); margin-right: .35rem; }
.heap-count { position: absolute; right: 14px; top: 14px; font-family: 'Steelfish', var(--pp); font-size: 1.1rem; letter-spacing: .04em; color: rgba(255,255,255,.55); animation: heapCount 2.4s ease-in-out infinite; }

/* ── REFLEXIN — skill arena ── */
@keyframes rxTrace { 0% { stroke-dashoffset:200; } 60% { stroke-dashoffset:0; } 100% { stroke-dashoffset:0; } }
@keyframes rxTargetPop { 0%,70% { transform:scale(0); opacity:0; } 80% { transform:scale(1.2); opacity:1; } 100% { transform:scale(.9); opacity:.85; } }
@keyframes rxPadFlash { 0%,100% { opacity:.2; } 50% { opacity:1; } }
@keyframes rxStarTwinkle { 0%,100% { opacity:.2; } 50% { opacity:.85; } }
.rx-vstars { position:absolute; inset:0; }
.rx-vstar  { position:absolute; width:2px; height:2px; border-radius:50%; background:#fff; animation:rxStarTwinkle 2.8s ease-in-out infinite; }
.rx-svg    { position:absolute; inset:0; width:100%; height:100%; }
.rx-path   { fill:none; stroke:#e92038; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 0 6px rgba(233,32,56,.8)); stroke-dasharray:200; animation:rxTrace 4s ease-in-out infinite; }
.rx-ghost  { fill:none; stroke:rgba(255,255,255,.16); stroke-width:3; stroke-dasharray:5 7; stroke-linecap:round; }
.rx-target { position:absolute; width:16px; height:16px; margin:-8px 0 0 -8px; border-radius:50%; border:2px solid #ffb02e; box-shadow:0 0 10px rgba(255,176,46,.7); animation:rxTargetPop 3.2s ease-in-out infinite; }
.rx-pad    { position:absolute; width:14px; height:14px; border-radius:4px; }
.rx-meta   { position:absolute; left:14px; top:14px; font-family:var(--pp); font-size:.55rem; letter-spacing:.25em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.rx-meta i { color:var(--red); margin-right:.35rem; }

/* ── KAAHIN — mystic oracle ── */
@keyframes kkOrbPulse { 0%,100% { transform:scale(.92); opacity:.55; } 50% { transform:scale(1.08); opacity:1; } }
@keyframes kkRing { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
@keyframes kkEyeBlink { 0%,92%,100% { transform:scaleY(1); } 96% { transform:scaleY(.1); } }
@keyframes kkSpark { 0%,100% { opacity:.15; } 50% { opacity:.8; } }
.kk-stage { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.kk-orb { width:96px; height:96px; border-radius:50%; background:radial-gradient(circle at 42% 38%, #ff9bb0 0%, #c11d3b 42%, #2a0410 100%); box-shadow:0 0 44px -6px rgba(193,29,59,.8), inset 0 0 22px rgba(0,0,0,.6); animation:kkOrbPulse 3.4s ease-in-out infinite; }
.kk-ring { position:absolute; width:150px; height:150px; margin:-75px 0 0 -75px; left:50%; top:50%; border:1px dashed rgba(255,107,124,.4); border-radius:50%; animation:kkRing 14s linear infinite; }
.kk-ring.r2 { width:200px; height:200px; margin:-100px 0 0 -100px; border-color:rgba(255,107,124,.18); animation-duration:22s; animation-direction:reverse; }
.kk-eye { position:absolute; left:50%; top:50%; width:26px; height:14px; margin:-7px 0 0 -13px; background:#fff; border-radius:50%; box-shadow:0 0 12px rgba(255,255,255,.7); animation:kkEyeBlink 5s ease-in-out infinite; }
.kk-eye::after { content:''; position:absolute; left:50%; top:50%; width:8px; height:8px; margin:-4px 0 0 -4px; background:#1a0008; border-radius:50%; }
.kk-spark { position:absolute; width:3px; height:3px; border-radius:50%; background:#ff8b9a; animation:kkSpark 2.6s ease-in-out infinite; }
.kk-meta { position:absolute; left:14px; top:14px; font-family:var(--pp); font-size:.55rem; letter-spacing:.25em; text-transform:uppercase; color:rgba(255,255,255,.5); }
.kk-meta i { color:#ff6b6b; margin-right:.35rem; }

/* ── INIVERSE — cosmos ── */
@keyframes ivStarDrift { 0% { transform:translateY(0) scale(1); opacity:.2; } 50% { opacity:.9; } 100% { transform:translateY(-18px) scale(1.3); opacity:.2; } }
@keyframes ivPlanetSpin { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
@keyframes ivCorePulse { 0%,100% { box-shadow:0 0 36px -4px rgba(58,150,255,.7), inset 0 0 18px rgba(0,0,0,.55); } 50% { box-shadow:0 0 56px -2px rgba(58,150,255,.95), inset 0 0 18px rgba(0,0,0,.55); } }
.iv-stage { position:absolute; inset:0; }
.iv-star { position:absolute; width:2px; height:2px; border-radius:50%; background:#cfe6ff; animation:ivStarDrift 3.6s ease-in-out infinite; }
.iv-core { position:absolute; left:50%; top:50%; width:84px; height:84px; margin:-42px 0 0 -42px; border-radius:50%; background:radial-gradient(circle at 40% 36%, #bfe0ff 0%, #2f7ad6 44%, #06121f 100%); animation:ivCorePulse 3.6s ease-in-out infinite; }
.iv-orbit { position:absolute; left:50%; top:50%; border:1px solid rgba(120,180,255,.22); border-radius:50%; }
.iv-orbit.o1 { width:150px; height:150px; margin:-75px 0 0 -75px; animation:ivPlanetSpin 18s linear infinite; }
.iv-orbit.o2 { width:210px; height:210px; margin:-105px 0 0 -105px; animation:ivPlanetSpin 28s linear infinite reverse; }
.iv-planet { position:absolute; top:-5px; left:50%; width:10px; height:10px; margin-left:-5px; border-radius:50%; background:#6fb0ff; box-shadow:0 0 12px rgba(111,176,255,.9); }
.iv-planet.p2 { background:#ff9bb0; box-shadow:0 0 12px rgba(255,155,176,.9); }
.iv-meta { position:absolute; left:14px; top:14px; font-family:var(--pp); font-size:.55rem; letter-spacing:.25em; text-transform:uppercase; color:rgba(255,255,255,.5); }
.iv-meta i { color:#6fb0ff; margin-right:.35rem; }

/* meta etiketleri ufak kartta biraz küçülsün */
.s-inlab-portal--lab .heap-meta, .s-inlab-portal--lab .rx-meta,
.s-inlab-portal--lab .kk-meta, .s-inlab-portal--lab .iv-meta { font-size: .5rem; left: 11px; top: 11px; }
.s-inlab-portal--lab .heap-count { font-size: .95rem; right: 11px; top: 11px; }

/* hareketi azaltmayı tercih edenlere saygı */
@media (prefers-reduced-motion: reduce) {
  .silp-loopgrid .mini-gcell, .heap-falling, .heap-count, .rx-vstar, .rx-path, .rx-target, .rx-pad,
  .kk-orb, .kk-ring, .kk-eye, .kk-spark, .iv-star, .iv-core, .iv-orbit { animation: none; }
}

/* Coming soon kartları — diğer kartlarla AYNI; sadece tıklanmaz (pointer iptal) */
.silp-card--soon { cursor: default; pointer-events: auto; }
/* kart içeriği tıklanmaz ama hover overlay görünsün diye kart hover'ı aktif kalır */
.silp-card--soon .silp-card__content,
.silp-card--soon .silp-card__visual { pointer-events: none; }
/* ── "More coming" — minimal yazı + buton satırı (sola dayalı, grid altında) ── */
.silp-more-bar {
  display: flex; align-items: center; justify-content: flex-start;
  flex-wrap: wrap; gap: .9rem 1.4rem;
  margin-top: 2.2rem;
  text-align: left;
}
.silp-more-bar__txt {
  margin: 0; font-size: .68rem; line-height: 1.5;
  color: rgba(255,255,255,.5);
}
/* VIEW IN-LAB butonuna benzer ama daha ufak (köşeli, ince border) */
.silp-more-bar__btn {
  display: inline-flex; align-items: center; gap: .45rem; flex-shrink: 0;
  font-family: var(--pp); font-size: .52rem; letter-spacing: .2em;
  color: rgba(255,255,255,.55); text-decoration: none;
  padding: .5rem 1.05rem;
  border: 1px solid rgba(255,255,255,.14); background: transparent;
  transition: color .25s, border-color .25s, background .25s;
  white-space: nowrap;
}
.silp-more-bar__btn i { font-size: .5rem; transition: transform .25s; }
.silp-more-bar__btn:hover { color: #fff; border-color: var(--red); background: rgba(233,32,56,.07); }
.silp-more-bar__btn:hover i { transform: translateX(4px); }

@media (max-width: 1100px) {
  .s-inlab-portal--lab .silp-grid--featured { grid-template-columns: repeat(3, 1fr); }
  .s-inlab-portal--lab .silp-card--feature { grid-column: span 3; grid-row: span 1; }
  .s-inlab-portal--lab .silp-card--feature .silp-card__visual { min-height: 180px; }
}
@media (max-width: 760px) {
  .s-inlab-portal--lab .silp-grid--featured { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
  .s-inlab-portal--lab .silp-card--feature { grid-column: span 2; }
}
@media (max-width: 440px) {
  .s-inlab-portal--lab .silp-grid--featured { grid-template-columns: 1fr; }
  .s-inlab-portal--lab .silp-card--feature { grid-column: span 1; }
}
.s-inlab-portal .container,
.s-inlab-portal .silp-header-row,
.s-inlab-portal .silp-grid {
  position: relative;
  z-index: 1;
}

/* ── Başlık satırı ── */
.silp-header-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 3rem;
  margin-bottom: 4rem;
}
.silp-header-left {}
.silp-eyebrow {
  font-family: var(--pp);
  font-size: .62rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--red);
  display: block;
  margin-bottom: .55rem;
}
.silp-title {
  font-family: var(--sf);
  font-size: clamp(3rem, 8vw, 7rem);
  line-height: 1.05;
  letter-spacing: -.02em;
  color: var(--white);
  margin: 0;
}
.silp-sub {
  font-family: var(--pp);
  font-size: .88rem;
  color: rgba(255,255,255,.6);
  line-height: 1.7;
  max-width: 280px;
  text-align: right;
  flex-shrink: 0;
}

/* ── 4'lü yatay kart grid ── */
.silp-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 0;
  background: transparent;
}

/* ── Kart ── */
.silp-card {
  position: relative;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--white);
  overflow: hidden;
  background: var(--bg2);
  min-height: 400px;
  cursor: pointer;
  border: 1px solid var(--line);
  transition: background .35s;
}
/* Hover: border rengi parlar, arka plan hafifçe açılır */
.silp-card::before { display: none; }
.silp-card:hover {
  background: rgba(255,255,255,.018);
  border-color: rgba(255,255,255,.16);
}

/* Görsel alan */
.silp-card__visual {
  width: 100%;
  height: 200px;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  transition: filter .45s;
}
.silp-card:hover .silp-card__visual { filter: brightness(1.18) saturate(1.15); }

.silp-card__visual-inner {
  position: absolute;
  inset: 0;
}

/* ── Her karta özgü arka plan rengi / gradient ── */
.silp-card__visual--bb {
  background: radial-gradient(ellipse at 60% 40%, #1a0008 0%, #0a0002 100%);
}
.silp-card__visual--noise {
  background: radial-gradient(ellipse at 40% 60%, #00080f 0%, #000509 100%);
}
.silp-card__visual--pixel {
  background: radial-gradient(ellipse at 50% 50%, #060010 0%, #020008 100%);
}
.silp-card__visual--clock {
  background: radial-gradient(ellipse at 50% 40%, #0a0a00 0%, #040400 100%);
}

/* ── VFX Elementleri ── */

/* Brief Breaker — ızgara + top + raket */
.silp-vfx--grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(233,32,56,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(233,32,56,.06) 1px, transparent 1px);
  background-size: 24px 24px;
  animation: silp-grid-move 6s linear infinite;
}
@keyframes silp-grid-move {
  from { background-position: 0 0; }
  to   { background-position: 0 48px; }
}
.silp-vfx--ball {
  position: absolute;
  width: 10px; height: 10px;
  background: var(--red);
  border-radius: 50%;
  box-shadow: 0 0 12px var(--red), 0 0 24px rgba(233,32,56,.4);
  animation: silp-ball 3.2s cubic-bezier(.36,.07,.19,.97) infinite;
  top: 40%; left: 30%;
}
@keyframes silp-ball {
  0%   { transform: translate(0,0); }
  25%  { transform: translate(80px, -50px); }
  50%  { transform: translate(130px, 30px); }
  75%  { transform: translate(40px, 60px); }
  100% { transform: translate(0,0); }
}
.silp-vfx--paddle {
  position: absolute;
  bottom: 18px; left: 50%;
  transform: translateX(-50%);
  width: 56px; height: 6px;
  background: rgba(255,255,255,.25);
  border-radius: 3px;
  animation: silp-paddle 3.2s ease-in-out infinite;
}
@keyframes silp-paddle {
  0%,100% { left: 40%; }
  50%      { left: 60%; }
}

/* ══════════════════════════════════════════════
   PAINT WALL — Dalga / Frekans Görselleştirme
══════════════════════════════════════════════ */
.silp-card__visual--noise {
  background: #030a10;
}
.silp-vfx--paint {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
/* Dalga çizgileri — sinüs dalgaları */
.nm-stroke {
  position: absolute;
  left: 0; right: 0;
  height: 1px;
  opacity: 0;
  transform-origin: left center;
}
.nm-s1 {
  top: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(233,32,56,.7) 20%, rgba(233,32,56,.9) 50%, rgba(233,32,56,.7) 80%, transparent 100%);
  animation: nm-wave1 2.8s ease-in-out infinite;
  animation-delay: 0s;
  box-shadow: 0 0 8px rgba(233,32,56,.3);
}
.nm-s2 {
  top: 42%;
  background: linear-gradient(90deg, transparent 0%, rgba(80,160,255,.6) 25%, rgba(80,160,255,.8) 50%, rgba(80,160,255,.6) 75%, transparent 100%);
  animation: nm-wave2 3.5s ease-in-out infinite;
  animation-delay: .4s;
  box-shadow: 0 0 6px rgba(80,160,255,.2);
}
.nm-s3 {
  top: 54%;
  background: linear-gradient(90deg, transparent 0%, rgba(80,220,160,.5) 30%, rgba(80,220,160,.7) 50%, rgba(80,220,160,.5) 70%, transparent 100%);
  animation: nm-wave1 4s ease-in-out infinite;
  animation-delay: .8s;
  box-shadow: 0 0 6px rgba(80,220,160,.15);
}
.nm-s4 {
  top: 66%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,80,255,.5) 25%, rgba(200,80,255,.65) 50%, rgba(200,80,255,.5) 75%, transparent 100%);
  animation: nm-wave2 3.2s ease-in-out infinite;
  animation-delay: 1.2s;
  box-shadow: 0 0 6px rgba(200,80,255,.15);
}
.nm-s5 {
  top: 18%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,180,0,.4) 30%, rgba(255,180,0,.55) 50%, rgba(255,180,0,.4) 70%, transparent 100%);
  animation: nm-wave1 5s ease-in-out infinite;
  animation-delay: .2s;
}
@keyframes nm-wave1 {
  0%   { opacity: 0; transform: scaleY(1) translateX(-5%); }
  10%  { opacity: 1; }
  50%  { transform: scaleY(8) translateX(0%); opacity: .7; }
  90%  { opacity: .6; }
  100% { opacity: 0; transform: scaleY(1) translateX(5%); }
}
@keyframes nm-wave2 {
  0%   { opacity: 0; transform: scaleY(1) translateX(5%); }
  10%  { opacity: 1; }
  50%  { transform: scaleY(6) translateX(0%); opacity: .8; }
  90%  { opacity: .5; }
  100% { opacity: 0; transform: scaleY(1) translateX(-5%); }
}
/* Frekans çubukları — dip kısımda */
.nm-blob {
  position: absolute;
  bottom: 0;
  width: 6px;
  border-radius: 2px 2px 0 0;
  opacity: 0;
  transform-origin: bottom;
}
.nm-b1 {
  left: 10%; height: 30%;
  background: rgba(233,32,56,.6);
  animation: nm-bar 1.4s ease-in-out infinite alternate;
  animation-delay: 0s; opacity: 1;
}
.nm-b2 {
  left: 22%; height: 55%;
  background: rgba(80,160,255,.55);
  animation: nm-bar 1.1s ease-in-out infinite alternate;
  animation-delay: .1s; opacity: 1;
}
.nm-b3 {
  left: 34%; height: 40%;
  background: rgba(80,220,160,.5);
  animation: nm-bar 1.6s ease-in-out infinite alternate;
  animation-delay: .2s; opacity: 1;
}
@keyframes nm-bar {
  from { transform: scaleY(.3); opacity: .5; }
  to   { transform: scaleY(1);  opacity: 1; }
}
/* Tarama imleci */
.nm-cursor {
  position: absolute;
  width: 1px;
  top: 0; bottom: 0;
  background: linear-gradient(to bottom, transparent, rgba(255,255,255,.5) 40%, rgba(255,255,255,.5) 60%, transparent);
  animation: nm-cursor-scan 3s linear infinite;
  pointer-events: none;
}
@keyframes nm-cursor-scan {
  from { left: 0%;   opacity: 0; }
  5%   { opacity: 1; }
  95%  { opacity: 1; }
  to   { left: 100%; opacity: 0; }
}

/* ══════════════════════════════════════════════
   FREE PIXEL — Terminal / Mesaj Yazma Efekti
══════════════════════════════════════════════ */
.silp-card__visual--pixel {
  background: #030306;
}
.silp-vfx--wall {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
/* İnce ızgara arka plan */
.fp-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 20px 20px;
}
/* Terminal satırları */
.fp-note {
  position: absolute;
  left: 12px; right: 12px;
  height: 20px;
  display: flex;
  align-items: center;
  border-radius: 2px;
  opacity: 0;
  overflow: hidden;
}
.fp-note em {
  display: block;
  height: 2px;
  border-radius: 1px;
  flex: 1;
  animation: fp-type-line 1s ease forwards;
}
.fp-n1 { top: 12%; animation: fp-line-in 4s ease-in-out infinite 0s; }
.fp-n2 { top: 27%; animation: fp-line-in 4s ease-in-out infinite .5s; }
.fp-n3 { top: 42%; animation: fp-line-in 4s ease-in-out infinite 1s; }
.fp-n4 { top: 57%; animation: fp-line-in 4s ease-in-out infinite 1.5s; }
.fp-n5 { top: 72%; animation: fp-line-in 4s ease-in-out infinite 2s; }
.fp-n6 { top: 87%; animation: fp-line-in 4s ease-in-out infinite 2.5s; }
.fp-n1 em { background: linear-gradient(90deg, rgba(233,32,56,.8) 0%, rgba(233,32,56,.6) 65%, transparent 100%); width: 72%; }
.fp-n2 em { background: linear-gradient(90deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.15) 80%, transparent 100%); width: 85%; }
.fp-n3 em { background: linear-gradient(90deg, rgba(80,160,255,.7) 0%, rgba(80,160,255,.4) 55%, transparent 100%); width: 58%; }
.fp-n4 em { background: linear-gradient(90deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.1) 75%, transparent 100%); width: 90%; }
.fp-n5 em { background: linear-gradient(90deg, rgba(80,220,160,.6) 0%, rgba(80,220,160,.3) 60%, transparent 100%); width: 65%; }
.fp-n6 em { background: linear-gradient(90deg, rgba(233,32,56,.5) 0%, rgba(233,32,56,.25) 70%, transparent 100%); width: 78%; }
@keyframes fp-line-in {
  0%   { opacity: 0; transform: translateX(-8px); }
  8%   { opacity: 1; transform: translateX(0); }
  72%  { opacity: .8; }
  88%  { opacity: 0; }
  100% { opacity: 0; }
}
/* Yanıp sönen imleç */
.fp-cursor {
  position: absolute;
  width: 7px; height: 14px;
  background: rgba(233,32,56,.9);
  box-shadow: 0 0 8px rgba(233,32,56,.5);
  animation: fp-cursor-blink 1s step-end infinite, fp-cursor-walk 8s linear infinite;
  top: 12%; left: 12px;
}
@keyframes fp-cursor-blink {
  0%,100% { opacity: 1; }
  50%      { opacity: 0; }
}
@keyframes fp-cursor-walk {
  0%   { top: 12%; left: 12px; }
  16%  { top: 12%; left: 85%; }
  17%  { top: 27%; left: 12px; }
  32%  { top: 27%; left: 90%; }
  33%  { top: 42%; left: 12px; }
  48%  { top: 42%; left: 62%; }
  49%  { top: 57%; left: 12px; }
  64%  { top: 57%; left: 95%; }
  65%  { top: 72%; left: 12px; }
  80%  { top: 72%; left: 70%; }
  81%  { top: 87%; left: 12px; }
  96%  { top: 87%; left: 82%; }
  100% { top: 12%; left: 12px; }
}

/* ══════════════════════════════════════════════
   LIFE IN — Akan istatistik sayaçları
══════════════════════════════════════════════ */
.silp-card__visual--clock {
  background: #03050c;
}
.silp-vfx--stats {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
  padding: 10px 16px;
  overflow: hidden;
}
/* Her istatistik satırı */
.li-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 4px 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
  opacity: 0;
  transform: translateY(6px);
}
.li-row:last-of-type { border-bottom: none; }
.li-label {
  font-family: 'Poppins', sans-serif;
  font-size: .38rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.3);
  flex-shrink: 0;
}
.li-val {
  font-family: 'Steelfish', 'Impact', sans-serif;
  font-size: .9rem;
  letter-spacing: .04em;
  color: rgba(255,255,255,.85);
  font-weight: 400;
  position: relative;
  overflow: hidden;
  min-width: 60px;
  text-align: right;
}
/* Satır belirme — sırayla aşağıdan yukarı */
.li-r1 { animation: li-row-in .5s ease forwards, li-count-tick 1.6s linear infinite; animation-delay: .1s, .1s; }
.li-r2 { animation: li-row-in .5s ease forwards, li-count-tick 1.6s linear infinite; animation-delay: .25s, .25s; }
.li-r3 { animation: li-row-in .5s ease forwards, li-count-tick 1.6s linear infinite; animation-delay: .4s, .4s; }
.li-r4 { animation: li-row-in .5s ease forwards, li-count-tick 1.6s linear infinite; animation-delay: .55s, .55s; }
.li-r5 { animation: li-row-in .5s ease forwards, li-count-tick 1.6s linear infinite; animation-delay: .7s, .7s; }
.li-r6 { animation: li-row-in .5s ease forwards, li-count-tick 1.6s linear infinite; animation-delay: .85s, .85s; }
@keyframes li-row-in {
  to { opacity: 1; transform: translateY(0); }
}
/* Sayı değerleri — CSS counter ile yukarı akan rakamlar */
.li-val::after {
  content: attr(data-v);
}
/* Sayı değer animasyonu — ince titreme efekti */
@keyframes li-count-tick {
  0%, 89%  { opacity: 1; }
  90%      { opacity: .4; }
  91%      { opacity: 1; }
}
/* Scan çizgisi */
.li-scan {
  position: absolute;
  left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(233,32,56,.6) 30%, rgba(233,32,56,.8) 50%, rgba(233,32,56,.6) 70%, transparent);
  box-shadow: 0 0 8px rgba(233,32,56,.4);
  animation: li-scan-move 3s linear infinite;
  animation-delay: 1s;
  opacity: 0;
}
@keyframes li-scan-move {
  0%   { top: -2px; opacity: 0; }
  5%   { opacity: 1; }
  95%  { opacity: 1; }
  100% { top: 102%; opacity: 0; }
}
@keyframes silp-clock-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* ══════════════════════════════════════════════
   FREE WALL — Open digital wall mini-preview
   Colored message blocks drop onto a faint grid,
   a spray cursor traces across, an OPEN WALL · LIVE
   tag pulses in the corner. Compact 4th-card visual.
══════════════════════════════════════════════ */
.silp-card__visual--openwall {
  background: radial-gradient(ellipse at 50% 50%, #0a0a0c 0%, #050505 100%);
}
.silp-vfx--openwall {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
/* Faint background grid */
.silp-vfx--openwall .ow-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 16px 16px;
  opacity: .85;
}
/* Dropping colored message blocks */
.silp-vfx--openwall .ow-block {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Steelfish', 'Impact', sans-serif;
  font-size: .72rem;
  letter-spacing: .04em;
  color: #fff;
  opacity: 0;
  border-radius: 1px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.25);
  animation: ow-drop 6s ease-in-out infinite;
  will-change: opacity, transform;
}
.silp-vfx--openwall .ow-b1 { left: 14px;  top: 22px;  width: 38px; height: 22px; background:#E92038; animation-delay: .2s; }
.silp-vfx--openwall .ow-b2 { left: 58px;  top: 22px;  width: 26px; height: 22px; background:#ffd400; color:#111; animation-delay: 1.1s; }
.silp-vfx--openwall .ow-b3 { left: 90px;  top: 22px;  width: 44px; height: 22px; background:#33b53d; animation-delay: 2s; }
.silp-vfx--openwall .ow-b4 { left: 14px;  top: 50px;  width: 60px; height: 28px; background:#3257d6; animation-delay: 2.9s; }
.silp-vfx--openwall .ow-b5 { left: 80px;  top: 50px;  width: 54px; height: 28px; background:#fff;    color:#111; animation-delay: 3.6s; }
.silp-vfx--openwall .ow-b6 { left: 14px;  top: 84px;  width: 34px; height: 24px; background:#7a3bd6; animation-delay: 4.3s; }
.silp-vfx--openwall .ow-b7 { left: 54px;  top: 84px;  width: 80px; height: 24px; background:#ff7a00; animation-delay: 5s; }
@keyframes ow-drop {
  0%   { opacity: 0; transform: translateY(-6px) scale(.92); }
  10%  { opacity: 1; transform: translateY(0) scale(1); }
  78%  { opacity: 1; transform: translateY(0) scale(1); }
  92%  { opacity: .35; }
  100% { opacity: 0; transform: translateY(0) scale(1); }
}
/* Spray cursor — small ring that travels across the wall */
.silp-vfx--openwall .ow-cursor {
  position: absolute;
  top: 0; left: 0;
  width: 14px; height: 14px;
  border: 2px solid #fff;
  background: rgba(255,255,255,.06);
  box-shadow: 0 0 8px rgba(255,255,255,.55);
  pointer-events: none;
  will-change: transform;
  animation: ow-cursor-walk 8s ease-in-out infinite;
  z-index: 3;
}
@keyframes ow-cursor-walk {
  0%   { transform: translate(20px, 26px); }
  25%  { transform: translate(96px, 28px); }
  50%  { transform: translate(112px, 60px); }
  75%  { transform: translate(38px, 92px); }
  100% { transform: translate(20px, 26px); }
}
/* Live tag — top-right pulsing badge */
.silp-vfx--openwall .ow-tag {
  position: absolute;
  right: 10px; top: 10px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 7px;
  background: rgba(0,0,0,.6);
  border: 1px solid rgba(233,32,56,.4);
  font-family: 'Poppins', sans-serif;
  font-size: .42rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: #fff;
  z-index: 4;
  backdrop-filter: blur(4px);
}
.silp-vfx--openwall .ow-tag::before {
  content: '';
  width: 5px; height: 5px;
  border-radius: 50%;
  background: #E92038;
  box-shadow: 0 0 6px rgba(233,32,56,.7);
  animation: ow-blink 1.4s ease-in-out infinite;
}
@keyframes ow-blink { 0%,100%{opacity:.3} 50%{opacity:1} }

/* Reduced motion: keep static composition, freeze animations */
@media (prefers-reduced-motion: reduce) {
  .silp-vfx--openwall .ow-block,
  .silp-vfx--openwall .ow-cursor,
  .silp-vfx--openwall .ow-tag::before {
    animation-play-state: paused !important;
    opacity: 1 !important;
  }
}

/* ── Karartma overlay ── */
.silp-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(2,2,2,.2) 0%,
    rgba(2,2,2,.55) 50%,
    rgba(8,8,8,.95) 100%
  );
  transition: opacity .45s ease;
  z-index: 2;
  pointer-events: none;
}
.silp-card:hover .silp-card__overlay { opacity: .6; }

/* ── İçerik alanı ── */
.silp-card__content {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.6rem 1.8rem 1.8rem;
  gap: .8rem;
}

.silp-card__num {
  font-family: var(--pp);
  font-size: .52rem;
  color: var(--dim);
  letter-spacing: .16em;
}

.silp-card__info {
  flex: 1;
}

/* Alt satır: sol icon + sağ tag */
.silp-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  margin-top: auto;
  padding-top: .6rem;
}

.silp-card__tag {
  font-family: var(--pp);
  font-size: .42rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(233,32,56,.65);
  display: flex;
  align-items: center;
  gap: .35rem;
  transition: color .3s;
  text-align: right;
}
.silp-card:hover .silp-card__tag { color: var(--red); }

/* Başlık — %15 daha büyük */
.silp-card__title {
  font-family: var(--sf);
  font-size: clamp(1.27rem, 1.85vw, 1.62rem);
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: .45rem;
  line-height: 1.05;
  transition: color .3s, letter-spacing .3s;
}
.silp-card:hover .silp-card__title { color: #fff; letter-spacing: .06em; }

/* Açıklama — her zaman görünür, hover'da parlaklaşır */
.silp-card__desc {
  font-family: var(--pp);
  font-size: .66rem;
  color: rgba(255,255,255,.38);
  line-height: 1.7;
  transition: color .35s;
}
.silp-card:hover .silp-card__desc { color: rgba(255,255,255,.65); }

/* ── Sağ blok: açıklama + View All butonu ── */
.silp-header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1.4rem;
  flex-shrink: 0;
}

/* View All butonu — başlığın sağ altında */
.silp-view-all {
  font-family: var(--pp);
  font-size: .56rem;
  letter-spacing: .22em;
  /* text-transform:uppercase KALDIRILDI → TR locale i→İ bug. Metin kaynakta büyük. */
  color: rgba(255,255,255,.55);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .6rem 1.3rem;
  border: 1px solid rgba(255,255,255,.14);
  background: transparent;
  transition: color .25s, border-color .25s, background .25s;
  white-space: nowrap;
}
.silp-view-all:hover {
  color: #fff;
  border-color: var(--red);
  background: rgba(233,32,56,.07);
}
.silp-view-all i {
  font-size: .55rem;
  transition: transform .25s;
}
.silp-view-all:hover i { transform: translateX(5px); }

/* Kart ikon kutusu — sol alt */
.silp-card__arrow {
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.2);
  font-size: .8rem;
  transition: background .35s, border-color .35s, color .35s, box-shadow .35s;
  flex-shrink: 0;
}
.silp-card:hover .silp-card__arrow {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
  box-shadow: 0 0 14px rgba(233,32,56,.4);
}

/* ============================================================
   CULTURE — içi Join The Crew kompakt kutu
   3 eleman: WE ARE HIRING · JOIN THE CREW · SAY HELLO
   Sade, inline-flex, içeriğe göre dar.
============================================================ */
/* ════════════════════════════════════════════════════════
   CULTURE FOOTER — Manifesto + INfinite (sade ikili)
   Sadece tipografi: numara · başlık · desc · ok.
   Hiçbir VFX/animasyon yok, gürültüsüz.
   ═══════════════════════════════════════════════════════ */
.cfp-grid {
  margin-top: 4rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: #1c1c1c;
  border: 1px solid #1c1c1c;
}

.cfp-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  padding: 3rem 2.4rem 2.4rem;
  background: var(--sec-2);
  text-decoration: none;
  color: inherit;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition: background .35s ease;
}
/* Background fill animation disabled */
.cfp-card::before { display: none !important; }

/* Faded background art on the right side of each card.
   Idle: desaturated to grayscale; Hover: full color. */
.cfp-card__art {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 65% !important;
  background-size: cover !important;
  background-position: center right !important;
  background-repeat: no-repeat !important;
  opacity: .45;
  filter: contrast(1.05) brightness(.95);
  -webkit-mask-image: linear-gradient(to left, #000 0%, rgba(0,0,0,.85) 35%, rgba(0,0,0,.3) 75%, rgba(0,0,0,0) 100%);
          mask-image: linear-gradient(to left, #000 0%, rgba(0,0,0,.85) 35%, rgba(0,0,0,.3) 75%, rgba(0,0,0,0) 100%);
  pointer-events: none;
  z-index: 0 !important;
  transition: opacity .55s ease, filter .55s ease;
}
.cfp-card:hover .cfp-card__art {
  opacity: 1;
  filter: contrast(1.1) brightness(1.05) saturate(1.1);
}
/* Lift text content above the art image */
.cfp-card > *:not(.cfp-card__art) {
  position: relative;
  z-index: 2;
}
/* Disable old plain background swap on hover (animated fill is used) */
.cfp-card:hover { background: var(--sec-2); }

/* Hover: title and description shift color */
.cfp-card__title,
.cfp-card__desc,
.cfp-card__eyebrow {
  transition: color .35s ease;
}
.cfp-card:hover .cfp-card__title { color: var(--red); }
.cfp-card:hover .cfp-card__title .cfp-red { color: var(--white); }
.cfp-card:hover .cfp-card__desc { color: rgba(255,255,255,.85); }
.cfp-card:hover .cfp-card__eyebrow { color: var(--white); }

/* ── Eyebrow: kırmızı küçük başlık ── */
.cfp-card__eyebrow {
  font-family: var(--pp);
  font-size: .58rem;
  font-weight: 500;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: -.45rem;
}

/* ── Başlık ── */
.cfp-card__title {
  font-family: var(--sf), 'Impact', sans-serif;
  font-size: clamp(2.4rem, 4.6vw, 3.8rem);
  font-weight: 700;
  letter-spacing: -.005em;
  line-height: 1.08;
  text-transform: uppercase;
  color: var(--white);
  margin: 0;
}
.cfp-card__title .cfp-red { color: var(--red); }

/* ── Açıklama: ufak font, her iki kartta tek satır ── */
.cfp-card__desc {
  font-family: var(--pp);
  font-size: .72rem;
  line-height: 1.6;
  color: rgba(255,255,255,.55);
  margin: 0;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── CTA — küçük tipografik link, sağa kayan ok ── */
.cfp-card__cta {
  margin-top: .4rem;
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  font-family: var(--pp);
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--white);
  transition: color .25s ease, gap .35s ease;
}
.cfp-card__cta i {
  font-size: .68rem;
  color: var(--red);
  transition: transform .35s ease;
}
.cfp-card:hover .cfp-card__cta {
  color: var(--red);
  gap: 1.1rem;
}
.cfp-card:hover .cfp-card__cta i {
  transform: translateX(4px);
}

/* ── Responsive ── */
@media (max-width: 860px) {
  .cfp-grid {
    grid-template-columns: 1fr;
    margin-top: 3rem;
  }
  .cfp-card { padding: 2.4rem 1.6rem 2rem; }
}
@media (max-width: 560px) {
  .cfp-card__title { font-size: clamp(2rem, 9vw, 2.8rem); }
  .cfp-card__desc { font-size: .76rem; }
}

/* Scramble JS hâlâ .jt-letter kullanıyor — uyumlu kalsın */
.jt-letter { display: inline-block; transition: color .12s; }

/* ============================================================
   FOOTER
============================================================ */
/* ============================================================
   SITE FOOTER — Full-Width Redesign
============================================================ */
.site-footer {
  background: var(--sec-1);
}

/* ── CTA Band ── */
.footer-cta-band {
  padding: 1rem 0 4rem;
}
.site-footer .footer-main {
  padding-top: 4rem;
}
.footer-cta-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  column-gap: 2rem;
  align-items: end;
}
.footer-cta-text {
  display: contents;
}
.footer-cta-tag {
  grid-column: 1;
  grid-row: 1;
}
.footer-cta-headline {
  grid-column: 1;
  grid-row: 2;
}
.footer-cta-socials {
  grid-column: 2;
  grid-row: 2;
  align-self: stretch;
}
.footer-cta-tag {
  display: block;
  font-size: .58rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--dim);
  margin-bottom: 1rem;
}
.footer-cta-headline {
  font-family: var(--sf);
  font-size: clamp(2rem, 4vw, 3.8rem);
  font-weight: 700;
  text-transform: uppercase;
  line-height: 1.1;
  color: var(--white);
}
.footer-cta-headline em {
  font-style: normal;
  color: var(--red);
}
/* ── CTA Social Buttons — tall rectangle cards ── */
.footer-cta-socials {
  display: flex;
  gap: 0;
  flex-shrink: 0;
  border: 1px solid rgba(255,255,255,.1);
}

/* Each button: slim rectangle, height equals headline h2 */
.fcsb {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: .4rem;
  width: 200px;
  height: 100%;
  padding: 1.4rem 1rem .85rem;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: border-color .35s;
  border-right: 1px solid rgba(255,255,255,.1);
}
.fcsb:last-child { border-right: none; }

/* sweep fill from bottom */
.fcsb::before {
  content: '';
  position: absolute;
  inset: 0;
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .45s cubic-bezier(.77,0,.175,1);
}
.fcsb--ig::before { background: linear-gradient(135deg,#c13584,#e1306c,#f77737); }
.fcsb--be::before { background: #1769ff; }
.fcsb:hover::before { transform: scaleY(1); }
.fcsb > * { position: relative; z-index: 1; }

/* top row: icon + arrow (top-left) */
.fcsb__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
  width: 100%;
  flex-shrink: 0;
}
.fcsb__ico {
  font-size: 1.45rem;
  color: rgba(255,255,255,.75);
  transition: color .3s;
}
.fcsb:hover .fcsb__ico { color: #fff; }
.fcsb__ext {
  font-size: .6rem;
  color: rgba(255,255,255,.25);
  transition: color .3s, transform .3s;
}
.fcsb:hover .fcsb__ext {
  color: rgba(255,255,255,.9);
  transform: translate(3px,-3px);
}

/* bottom row: sub + name (bottom-left, lifted up) */
.fcsb__bottom {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  text-align: left;
  align-self: flex-start;
  margin-bottom: .35rem;
}
.fcsb__sub {
  font-family: var(--pp);
  font-size: .52rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  transition: color .3s;
}
.fcsb:hover .fcsb__sub { color: rgba(255,255,255,.7); }
.fcsb__name {
  font-family: var(--sf);
  font-size: 1.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--white);
  line-height: 1;
}

/* ── Footer logo col — contact strip below about text ── */
.footer-contact-strip {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: .5rem;
  border: 1px solid rgba(255,255,255,.07);
}
.fcs-item {
  display: flex;
  align-items: center;
  gap: .9rem;
  padding: .9rem 1rem;
  font-family: var(--pp);
  font-size: .72rem;
  color: rgba(255,255,255,.5);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.05);
  transition: color .25s, background .25s;
}
.fcs-item:last-child { border-bottom: none; }
.fcs-item:hover { color: var(--white); background: rgba(255,255,255,.04); }
.fcs-ico {
  font-size: .75rem;
  color: var(--red);
  width: 14px;
  flex-shrink: 0;
}
.fcs-item--cta {
  color: var(--red);
  font-weight: 500;
  letter-spacing: .05em;
}
.fcs-item--cta:hover { background: rgba(235,0,0,.08); color: var(--white); }
.fcs-item--cta .fcs-ico { color: var(--red); }
/* Subtle rule between CTA and nav grid */
.footer-red-rule {
  height: 1px;
  background: rgba(255,255,255,.12);
  margin-bottom: 0;
}

/* ── Main Grid ── */
.footer-main {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr 1.2fr;
  gap: 0;
  padding-top: 5rem;
  padding-bottom: 4rem;
}
/* border-bottom container padding'inden etkilenmemesi için ayrı wrapper */
.footer-main-wrapper {
  border-bottom: 1px solid var(--line);
}
.footer-main-col {
  padding: 0 2rem;
}
.footer-main-col:first-child { padding-left: 0; }
.footer-main-col:last-child  { padding-right: 0; }

/* About col */
.footer-logo-wrap { display: inline-block; margin-bottom: .6rem; }
.footer-logo-img {
  height: 96px;
  width: auto;
  opacity: .9;
  transition: opacity .3s;
  display: block;
}
.footer-logo-img:hover { opacity: 1; }
.footer-about-text {
  font-family: var(--pp);
  font-size: .58rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  line-height: 1.5;
  margin: 0 0 1.6rem 0;
}
.footer-socials {
  display: flex;
  gap: 1rem;
}
.footer-socials a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.45);
  font-size: 1rem;
  text-decoration: none;
  transition: color .25s, border-color .25s, background .25s;
}
.footer-socials a:hover {
  color: #fff;
  border-color: var(--red);
  background: rgba(235,0,0,.08);
}

/* Col labels */
.footer-col-label {
  display: block;
  font-size: .52rem;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: #555454;
  margin-bottom: 2rem;
  padding-bottom: .9rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

/* Sub-label: ikinci bir grup için (örn. IN-LAB Experiments altında IN-DNA Identity) */
.footer-col-label--sub {
  margin-top: 2rem;
  margin-bottom: 1.1rem;
  padding-bottom: .6rem;
  font-size: .46rem;
  letter-spacing: .3em;
  color: rgba(255,255,255,.35);
  border-bottom: 1px solid rgba(255,255,255,.04);
}

/* Nav lists */
.footer-nav-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.footer-nav-list a {
  display: flex;
  align-items: baseline;
  gap: .9rem;
  font-family: var(--sf);
  font-size: clamp(.9rem, 1.5vw, 1.1rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: rgba(255,255,255,.7);
  text-decoration: none;
  padding: .65rem 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
  transition: color .35s ease, padding-left .25s;
}
.footer-nav-list a:last-child { border-bottom: none; }
.footer-nav-list a:hover {
  color: var(--red);
  font-weight: 700;
  padding-left: .4rem;
}
.fn-num {
  font-family: var(--pp);
  font-size: .52rem;
  letter-spacing: .1em;
  color: var(--dim);
  min-width: 20px;
  flex-shrink: 0;
  transition: color .25s;
}
.footer-nav-list a:hover .fn-num { color: var(--red); }
.fn-exp {
  font-size: .44rem;
  letter-spacing: .12em;
  color: var(--red) !important;
  opacity: .85;
  min-width: 24px;
  text-align: left;
}
.fn-hub {
  font-size: .44rem !important;
  letter-spacing: .18em !important;
  color: rgba(255,255,255,.85) !important;
  background: rgba(233,32,56,.12);
  padding: .12rem .35rem;
  border: 1px solid rgba(233,32,56,.3);
  min-width: 32px !important;
  text-align: center;
  font-weight: 600;
}
.footer-nav-list a:hover .fn-hub {
  background: var(--red);
  border-color: var(--red);
  color: #fff !important;
}

/* "Directory" vurgulu link — directory.html için */
.footer-nav-highlight {
  color: var(--white) !important;
  position: relative;
  background: linear-gradient(90deg, rgba(233,32,56,.08) 0%, transparent 100%);
  padding-left: .6rem !important;
  border-left: 2px solid var(--red);
  margin-bottom: .25rem;
}
.footer-nav-highlight:hover {
  background: linear-gradient(90deg, rgba(233,32,56,.18) 0%, transparent 100%);
  padding-left: .9rem !important;
}
.fn-star {
  color: var(--red) !important;
  font-size: .85rem !important;
  letter-spacing: 0 !important;
  opacity: 1;
  min-width: 20px;
  text-align: center;
  animation: fnStarPulse 2.4s ease-in-out infinite;
}
@keyframes fnStarPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: .55; transform: scale(.88); }
}

/* Contact col */
.footer-contact-col {
  text-align: right;
}
.footer-contact-col .footer-col-label {
  text-align: right;
}
.footer-contact-link {
  display: block;
  font-family: var(--pp);
  font-size: .85rem;
  color: rgba(255,255,255,.75);
  text-decoration: none;
  margin-bottom: .8rem;
  transition: color .25s;
}
.footer-contact-link:hover { color: var(--red); }
.footer-address {
  font-family: var(--pp);
  font-size: .75rem;
  color: var(--dim);
  line-height: 1.7;
  font-style: normal;
  margin-top: 1.5rem;
}

/* Footer Col 1: contact block under logo + about text */
.footer-about-contact {
  margin-top: 1.6rem;
  padding-top: 1.4rem;
  border-top: 1px solid rgba(255,255,255,.07);
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.footer-about-contact .footer-contact-link {
  display: block;
  font-family: var(--pp);
  font-size: .8rem;
  color: rgba(255,255,255,.75);
  text-decoration: none;
  margin-bottom: .55rem;
  text-align: left;
  transition: color .25s;
}
.footer-about-contact .footer-contact-link:hover { color: var(--red); }
.footer-about-contact .footer-address {
  margin-top: .8rem;
  text-align: left;
}

/* ── Divider ── */
.footer-divider {
  height: 1px;
  background: var(--line);
  display: none; /* already handled by grid border-bottom */
}

/* ── Bottom Bar ── */
.footer-bottom-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 1rem;
  padding-bottom: 1.2rem;
  /* .container class'ı zaten max-width + padding-left/right sağlıyor */
}
.footer-copy {
  font-family: var(--pp);
  font-size: .62rem;
  color: var(--dim);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.footer-legal-links {
  display: flex;
  gap: 2rem;
}
.footer-legal-links a {
  font-family: var(--pp);
  font-size: .62rem;
  color: var(--dim);
  letter-spacing: .1em;
  /* text-transform:uppercase KALDIRILDI → TR locale i→İ bug. Metin kaynakta BÜYÜK. */
  text-decoration: none;
  transition: color .25s;
}
.footer-legal-links a:hover { color: var(--white); }

/* ── Legacy classes kept for backward compat (other pages) ── */
footer { background: var(--sec-1); padding: 5.5rem 0 0; }
.footer-top { display:grid; grid-template-columns:1fr 1fr 1fr; gap:4rem; padding-bottom:4rem; border-bottom:1px solid var(--red); }
.footer-label { display:block; font-size:.58rem; letter-spacing:.32em; text-transform:uppercase; color:var(--dim); margin-bottom:1.5rem; }
.footer-headline { font-family:var(--sf); font-size:clamp(1.8rem,3.5vw,3rem); font-weight:700; text-transform:uppercase; line-height:1.15; }
.footer-link { display:block; font-size:.9rem; color:var(--white); transition:color .25s; margin-bottom:.4rem; }
.footer-link:hover { color:var(--red); }
.footer-dir-link { display:inline-flex; align-items:center; gap:.5rem; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--dim); text-decoration:none; margin-top:1.4rem; border-bottom:1px solid rgba(255,255,255,.15); padding-bottom:2px; transition:color .25s,border-color .25s; }
.footer-dir-link i { font-size:.6rem; transition:transform .3s; }
.footer-dir-link:hover { color:var(--white); border-color:var(--red); }
.footer-dir-link:hover i { transform:translateX(4px); }
.footer-social { display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); }
.footer-social a { display:flex; flex-direction:row; align-items:center; justify-content:center; gap:.7rem; padding:1.5rem 1.2rem; font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.45); text-decoration:none; transition:color .25s,background .25s; position:relative; }
.footer-social a:first-child::after { content:''; position:absolute; right:0; top:18%; bottom:18%; width:1px; background:var(--line); }
.footer-social a i { font-size:1.1rem; transition:color .25s; }
.footer-social a:hover { color:var(--white); background:rgba(255,255,255,.03); }
.footer-social a:hover i { color:var(--red); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding:1.8rem 0 2.5rem; }
.footer-bottom img { height:25px; opacity:.45; transition:opacity .3s; }
.footer-bottom img:hover { opacity:1; }
.footer-meta { display:flex; gap:2rem; align-items:center; }
.footer-meta a { font-size:.62rem; color:var(--dim); letter-spacing:.1em; text-transform:uppercase; transition:color .25s; }
.footer-meta a:hover { color:var(--white); }
.footer-meta span { font-size:.62rem; color:var(--dim); }

/* ============================================================
   COOKIE BAR — Red Heartbeat Design
============================================================ */
@keyframes cookie-heartbeat {
  0%   { transform: translate(-50%, 0) scale(1); box-shadow: 0 8px 32px rgba(233,32,56,.45); }
  14%  { transform: translate(-50%, 0) scale(1.018); box-shadow: 0 10px 40px rgba(233,32,56,.65); }
  28%  { transform: translate(-50%, 0) scale(1); box-shadow: 0 8px 32px rgba(233,32,56,.45); }
  42%  { transform: translate(-50%, 0) scale(1.011); box-shadow: 0 9px 36px rgba(233,32,56,.55); }
  70%  { transform: translate(-50%, 0) scale(1); box-shadow: 0 8px 32px rgba(233,32,56,.45); }
  100% { transform: translate(-50%, 0) scale(1); box-shadow: 0 8px 32px rgba(233,32,56,.45); }
}
@keyframes cookie-slide-up {
  from { transform: translate(-50%, 120%); opacity: 0; }
  to   { transform: translate(-50%, 0);    opacity: 1; }
}
.cookie-bar {
  position: fixed; 
  left: 50%; 
  bottom: 2rem;
  transform: translate(-50%, 120%);
  opacity: 0;
  background: var(--red);
  border: none;
  padding: 1.1rem 1.6rem;
  z-index: 9999;
  display: flex; 
  align-items: center; 
  gap: 1.8rem;
  max-width: 560px;
  width: calc(100% - 2rem);
  border-radius: 6px;
  box-shadow: 0 8px 32px rgba(233,32,56,.45);
}
.cookie-bar.visible {
  animation:
    cookie-slide-up .6s cubic-bezier(.22,1,.36,1) .8s forwards,
    cookie-heartbeat 2.4s ease-in-out 1.6s infinite;
}
.cookie-bar.hide {
  animation: none !important;
  transform: translate(-50%, 120%) !important;
  opacity: 0 !important;
  transition: transform .4s ease, opacity .4s ease;
}
.cookie-bar p { 
  font-size: .7rem; 
  color: rgba(255,255,255,0.92); 
  line-height: 1.5; 
  flex: 1;
  font-family: var(--pp);
}
.cookie-bar p a {
  color: var(--red, #e92038);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.cookie-bar p a:hover { color: #fff; }
.cookie-btns {
  display: flex;
  gap: .6rem;
  flex-shrink: 0;
}
.cookie-btn {
  background: rgba(0,0,0,0.25);
  color: var(--white); 
  border: 1px solid rgba(255,255,255,0.35);
  padding: .5rem 1.2rem; 
  font-size: .58rem; 
  letter-spacing: .15em;
  text-transform: uppercase; 
  cursor: pointer; 
  white-space: nowrap;
  transition: all .25s; 
  font-family: var(--pp);
  font-weight: 500;
  border-radius: 3px;
}
.cookie-btn:hover {
  background: rgba(255,255,255,0.2);
  border-color: rgba(255,255,255,.7);
}
.cookie-btn.allow {
  background: rgba(255,255,255,0.18);
  border-color: rgba(255,255,255,.5);
}
.cookie-btn.allow:hover {
  background: rgba(255,255,255,0.32);
  border-color: rgba(255,255,255,.8);
}
.cookie-btn.leave:hover {
  border-color: rgba(255,255,255,0.4);
  color: rgba(255,255,255,0.9);
}

/* ============================================================
   SCROLL REVEAL
============================================================ */
.reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity .9s ease, transform .9s ease;
  will-change: opacity, transform;
}
.reveal.visible { opacity: 1; transform: none; will-change: auto; }

.reveal-left {
  opacity: 0; transform: translateX(-36px);
  transition: opacity .9s ease, transform .9s ease;
  will-change: opacity, transform;
}
.reveal-left.visible { opacity: 1; transform: none; will-change: auto; }

.reveal-right {
  opacity: 0; transform: translateX(36px);
  transition: opacity .9s ease, transform .9s ease;
  will-change: opacity, transform;
}
.reveal-right.visible { opacity: 1; transform: none; will-change: auto; }

.reveal-scale {
  opacity: 0; transform: scale(.94);
  transition: opacity .9s ease, transform .9s ease;
  will-change: opacity, transform;
}
.reveal-scale.visible { opacity: 1; transform: none; will-change: auto; }

.delay-1, .d1 { transition-delay: .10s !important; }
.delay-2, .d2 { transition-delay: .20s !important; }
.delay-3, .d3 { transition-delay: .30s !important; }
.delay-4, .d4 { transition-delay: .40s !important; }
.delay-5, .d5 { transition-delay: .50s !important; }

/* Glitch — kept for backwards compat but join uses clip-path reveal */
.glitch-hover { overflow: visible; }
@keyframes glitch {
  0%   { text-shadow: none; }
  25%  { text-shadow: -3px 0 var(--red), 3px 0 #00f; }
  50%  { text-shadow:  3px 0 var(--red),-3px 0 #0f0; }
  75%  { text-shadow: -2px 0 #0f0, 2px 0 var(--red); }
  100% { text-shadow: none; }
}

/* ============================================================
   LEGAL MODALS (Privacy Policy / Security)
============================================================ */
.legal-modal {
  position: fixed; inset: 0; z-index: 9999998;
  display: flex; align-items: center; justify-content: center;
  padding: 1.5rem;
  pointer-events: none; visibility: hidden;
}
.legal-modal.open { pointer-events: all; visibility: visible; }

.legal-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.85);
  opacity: 0;
  transition: opacity .4s ease;
  cursor: pointer;
}
.legal-modal.open .legal-modal__backdrop { opacity: 1; }

.legal-modal__panel {
  position: relative; z-index: 1;
  background: #0a0a0a;
  border: 1px solid var(--line);
  border-top: 2px solid var(--red);
  width: 100%; max-width: 760px;
  max-height: 85vh;
  display: flex; flex-direction: column;
  transform: translateY(40px);
  opacity: 0;
  transition: transform .5s cubic-bezier(.77,0,.175,1), opacity .4s ease;
}
.legal-modal.open .legal-modal__panel {
  transform: translateY(0);
  opacity: 1;
}

.legal-modal__close {
  position: absolute; top: 1.2rem; right: 1.2rem;
  width: 36px; height: 36px;
  background: transparent; border: 1px solid var(--line);
  color: var(--gray); font-size: .85rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: border-color .25s, color .25s, background .25s;
  z-index: 2;
}
.legal-modal__close:hover { border-color: var(--red); color: var(--white); background: var(--red); }

.legal-modal__scroll {
  overflow-y: auto; padding: 3rem;
  scrollbar-width: thin; scrollbar-color: var(--red) var(--bg);
}
.legal-modal__scroll::-webkit-scrollbar { width: 2px; }
.legal-modal__scroll::-webkit-scrollbar-thumb { background: var(--red); }

.legal-modal__tag {
  font-size: .58rem; letter-spacing: .35em; text-transform: uppercase;
  color: var(--red); display: block; margin-bottom: 1rem;
}
.legal-modal__title {
  font-family: var(--sf); font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 700; text-transform: uppercase; letter-spacing: -.02em;
  color: var(--white); line-height: 1; margin-bottom: .6rem;
}
.legal-modal__updated {
  font-size: .65rem; color: var(--dim); letter-spacing: .1em;
  margin-bottom: 2.5rem; padding-bottom: 2rem; border-bottom: 1px solid var(--line);
}
.legal-modal__body h3 {
  font-family: var(--sf); font-size: 1.05rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em;
  color: var(--white); margin: 2rem 0 .75rem;
}
.legal-modal__body p {
  font-size: .84rem; color: rgba(255,255,255,.5); line-height: 1.9;
  margin-bottom: 1rem;
}
.legal-modal__body p strong { color: var(--white); font-weight: 500; }

/* Scrollbar */
::-webkit-scrollbar { width: 2px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--red); }
:focus-visible { outline: 1px solid var(--red); outline-offset: 3px; }
.nav-logo:focus-visible,
.nav-logo img:focus-visible { outline: none; }

/* ============================================================
   INNER-PAGE HERO kurallar\u0131 css/pages.css dosyas\u0131nda.
   Burada sadece .page-eyebrow (eski isim) korunuyor.
============================================================ */
.page-eyebrow {
  font-size: .62rem; letter-spacing: .32em; text-transform: uppercase;
  color: var(--red); margin-bottom: 1.5rem; font-style: normal; display: block;
}

/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 1024px) {
  .menu-overlay { grid-template-columns: 100%; }
  .menu-overlay-right { display: none; }
  /* about: stack vertically on tablet */
  .s-about__wrap { grid-template-columns: 1fr; gap: 3rem; }
  .s-about__photo-frame { aspect-ratio: 16/9; }
  .s-services__grid { grid-template-columns: 1fr; gap: 3.5rem; }
  .s-culture__body { grid-template-columns: 1fr; gap: 3rem; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 3rem; }
  .svc-row { grid-template-columns: 2.4rem 1fr auto; }
  .svc-desc { display: none; }
}

@media (max-width: 1100px) {
  .footer-main {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
  }
  .footer-main-col:nth-child(1) { grid-column: 1 / -1; border-bottom: 1px solid var(--line); padding: 0 0 3rem; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; }
  .footer-main-col:nth-child(2) { padding-left: 0; }
  .footer-main-col:nth-child(5) { grid-column: 1 / -1; border-top: 1px solid var(--line); padding: 3rem 0 0; }
  .footer-cta-inner { flex-direction: column; align-items: flex-start; gap: 2.5rem; }
  .footer-cta-socials { flex-direction: row; }
  .fcsb { flex: 1; width: auto; }
}

@media (max-width: 768px) {
  .work-slide,
  .work-slide:first-child { flex: 0 0 88% !important; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; gap: 1.5rem; text-align: center; }
  /* ── Mobile footer: kompakt accordion-style ── */
  .footer-cta-band { padding: 1rem 0 2.4rem; }
  .site-footer .footer-main { padding-top: 2.4rem; }
  .footer-cta-inner { flex-direction: column; gap: 2rem; }
  .footer-cta-headline { font-size: clamp(1.8rem,8vw,2.8rem); }
  .footer-cta-socials { flex-direction: row; width: 100%; border: 1px solid rgba(255,255,255,.1); }
  .fcsb { flex: 1; width: auto; height: 120px; padding: 1.2rem 1.2rem; border-right: 1px solid rgba(255,255,255,.1); }
  .fcsb:last-child { border-right: none; }
  .fcsb__name { font-size: 1rem; }
  .fcsb__ico { font-size: 1.4rem; }
  /* footer main: tam kompakt tek sütun accordion */
  .footer-main { grid-template-columns: 1fr; padding-top: 0; }
  .footer-main-col { padding: 0; border-right: none; border-bottom: 1px solid rgba(255,255,255,.06); }
  .footer-main-col:last-child { border-bottom: none; }
  .footer-main-col:nth-child(1) { display: block; padding: 2rem 0; grid-column: auto; }
  .footer-main-col:nth-child(5) { grid-column: auto; border-top: none; padding: 0; }
  /* Mobil menüde Pages / Explore / IN-LAB / IN-DNA kolonları gizle */
  .footer-main-col:nth-child(2),
  .footer-main-col:nth-child(3),
  .footer-main-col:nth-child(4),
  .footer-main-col:nth-child(5) { display: none; }
  /* collapsible nav columns */
  .footer-main-col .footer-col-label {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.2rem 0;
    margin-bottom: 0;
    border-bottom: none;
  }
  .footer-main-col .footer-col-label::after {
    content: '+';
    font-size: .9rem;
    color: rgba(255,255,255,.3);
    transition: transform .3s;
    font-family: var(--pp);
  }
  .footer-main-col.mob-open .footer-col-label::after { transform: rotate(45deg); }
  .footer-main-col .footer-nav-list,
  .footer-main-col .footer-contact-link,
  .footer-main-col .footer-address { display: none; }
  .footer-main-col.mob-open .footer-nav-list { display: flex; padding-bottom: 1rem; }
  .footer-main-col.mob-open .footer-contact-link,
  .footer-main-col.mob-open .footer-address { display: block; }
  .footer-main-col:nth-child(1) .footer-nav-list,
  .footer-main-col:nth-child(1) .footer-contact-link,
  .footer-main-col:nth-child(1) .footer-address,
  .footer-main-col:nth-child(1) .footer-contact-strip { display: block !important; }
  .footer-main-col:nth-child(1) .footer-col-label { display: none; }
  /* Say Hello column: always show phone/email/address on mobile,
     no accordion toggle. */
  .footer-contact-col .footer-col-label { display: none !important; }
  .footer-contact-col .footer-contact-link,
  .footer-contact-col .footer-address { display: block !important; }
  .footer-contact-col { text-align: left; pointer-events: auto; }
  .footer-contact-col .footer-col-label::after { content: none !important; }
  .footer-nav-list a { font-size: .85rem; padding: .5rem 0; }
  .footer-bottom-bar { flex-direction: column; align-items: flex-start; gap: 1.2rem; }
  .footer-legal-links { flex-wrap: wrap; gap: 1rem; }
  .hero-tags { display: none; }
  .s-works__top { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
  .menu-nav-link { font-size: clamp(2.2rem,8vw,3.8rem); }
  .menu-overlay-left { padding: 4rem 2rem; }
  
  .s-culture__mosaic { grid-template-columns: 1fr; }
  .mosaic-tall { grid-row: span 1; }
  /* .s-about__big mobil override kaldırıldı — IN CULTURE başlığı ile aynı clamp kullanır */
  .s-about__statstrip { grid-template-columns: repeat(2,1fr); }
  /* photo grid: stack on mobile */
  .s-about__photo-grid { grid-template-columns: 1fr; }
  .sap-col--stack { flex-direction: row; }
  .sap-col--stack .sap-img--half { min-height: 180px; }
  .sap-col--stack .sap-img--half:first-child { border-bottom: none; border-right: 1px solid var(--line); }
  .sap-img--main { min-height: 300px; }
  /* IN-LAB portal responsive */
  .s-inlab-portal { padding: calc(5rem + 20px) 0 calc(4rem + 20px); }
  .silp-header-row { flex-direction: column; align-items: flex-start; gap: 1.5rem; margin-bottom: 3rem; }
  .silp-header-right { align-items: flex-start; }
  .silp-sub { text-align: left; max-width: 100%; }
  .silp-grid { grid-template-columns: 1fr 1fr; gap: .7rem; }
  .silp-card { min-height: 320px; }
  .silp-card__visual { height: 150px; }
  .silp-card:hover .silp-card__visual { height: 165px; }
}

@media (max-width: 480px) {
  .silp-grid { grid-template-columns: 1fr 1fr; }
  .silp-card { min-height: 280px; }
  .silp-card__visual { height: 130px; }
  .work-slide,
  .work-slide:first-child { flex: 0 0 93% !important; }
  .brand-box { height: 110px; }
  .sa-stat__num { font-size: 2rem; }
  .s-about__stats { grid-template-columns: 1fr 1fr; }
  .cookie-bar { right: .8rem; bottom: .8rem; max-width: calc(100vw - 1.6rem); }
  /* New footer mobile sm */
  .footer-main { grid-template-columns: 1fr; }
  .footer-main-col { border-right: none !important; border-bottom: 1px solid var(--line); padding: 2rem 0 !important; }
  .footer-main-col:last-child { border-bottom: none; }
  .footer-cta-band { padding: 1rem 0; }
  .footer-cta-btn { width: 100%; justify-content: center; }
}

/* ── Fullscreen menu: mobile — hide right panel ── */
@media (max-width: 620px) {
  .menu-overlay {
    grid-template-columns: 1fr;
  }
  .menu-overlay-right {
    display: none;
  }
  .menu-nav-link {
    font-size: clamp(2rem, 9vw, 3.2rem);
  }
  .menu-sec-nav {
    padding: 1rem 1.5rem 1.8rem;
  }
  .menu-sec-nav__link {
    font-size: 1.05rem;
    margin-right: 1.2rem;
  }
}

/* ============================================================
   GİRİŞ POP-UP (cms.js injectPopup — kampanya/duyuru modalı)
   DNA: siyah/kırmızı · blur overlay · 3 biçim (card/full/bar)
   prefers-reduced-motion korumalı · responsive · erişilebilir
============================================================ */
.cms-popup {
  position: fixed; inset: 0; z-index: 100000;
  display: flex; align-items: center; justify-content: center;
  padding: 1.5rem;
  background: rgba(2,2,2,.72);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  opacity: 0;
  transition: opacity .26s ease;
}
.cms-popup.is-open { opacity: 1; }

.cms-popup__box {
  position: relative;
  background: #0a0a0a;
  border: 1px solid var(--line, #303030);
  border-radius: 0;
  max-width: 576px; width: 100%;
  max-height: 90vh; overflow: visible;
  box-shadow: 0 40px 120px -30px #000, 0 0 60px -20px rgba(233,32,56,.25);
  transform: translateY(22px) scale(.97);
  opacity: 0;
  transition: transform .32s cubic-bezier(.22,1,.36,1), opacity .32s ease;
}
.cms-popup.is-open .cms-popup__box { transform: none; opacity: 1; }

/* Kapatma butonu — kutunun DIŞINDA, sağ üst köşede (görselin üstüne binmez) */
.cms-popup__close {
  position: absolute; top: -44px; right: 0; z-index: 3;
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,.55);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 0;
  color: #fff; font-size: 1.4rem; line-height: 1;
  cursor: pointer;
  outline: none;
  transition: background .2s, border-color .2s, transform .2s;
}
.cms-popup__close:hover {
  background: var(--red, #e92038);
  border-color: rgba(255,255,255,.2);
  transform: rotate(90deg);
}
.cms-popup__close:focus,
.cms-popup__close:focus-visible {
  outline: none;
  box-shadow: none;
}

/* Görsel */
.cms-popup__img { display: block; width: 100%; height: auto; border-radius: 0; }
.cms-popup__imglink { display: block; }

/* Metin gövdesi */
.cms-popup__body { padding: 1.8rem 1.8rem 2rem; }
.cms-popup__title {
  font-family: var(--sf, 'Steelfish', sans-serif);
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -.01em;
  margin: 0 0 .7rem;
}
.cms-popup__text {
  font-family: var(--pp, 'Poppins', sans-serif);
  font-size: .82rem;
  line-height: 1.7;
  color: rgba(255,255,255,.6);
  margin: 0;
}
.cms-popup__btn {
  display: inline-flex; align-items: center; gap: .6rem;
  margin-top: 1.4rem;
  background: var(--red, #e92038); color: #fff;
  font-family: var(--pp, 'Poppins', sans-serif);
  font-size: .72rem; font-weight: 600;
  letter-spacing: .12em;
  padding: .8rem 1.5rem;
  border-radius: 0;
  text-decoration: none;
  transition: background .25s, transform .25s;
}
.cms-popup__btn:hover { background: #c41a2e; }

/* ── BİÇİM: Tam görsel (afiş) — gövde varsa görsel altında ── */
.cms-popup--full .cms-popup__box { max-width: 672px; }
.cms-popup--full .cms-popup__body { padding-top: 1.4rem; }

/* ── BİÇİM: Alt şerit ── */
.cms-popup--bar {
  align-items: flex-end;
  background: rgba(2,2,2,.4);
  backdrop-filter: none; -webkit-backdrop-filter: none;
  padding: 0;
}
.cms-popup--bar .cms-popup__box {
  max-width: none; width: 100%;
  border-radius: 0; border-left: none; border-right: none; border-bottom: none;
  display: flex; align-items: center; gap: 1.4rem;
  transform: translateY(100%);
}
.cms-popup--bar.is-open .cms-popup__box { transform: none; }
/* alt şeritte kapatma butonu kutunun İÇİNDE (üstte yer yok) */
.cms-popup--bar .cms-popup__close { top: .5rem; right: .6rem; }
.cms-popup--bar .cms-popup__img { max-width: 90px; border-radius: 0; }
.cms-popup--bar .cms-popup__body { padding: 1rem 1.4rem; flex: 1; display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; }
.cms-popup--bar .cms-popup__title { font-size: 1.2rem; margin: 0; }
.cms-popup--bar .cms-popup__text { flex: 1; min-width: 180px; margin: 0; }
.cms-popup--bar .cms-popup__btn { margin-top: 0; }

/* Responsive */
@media (max-width: 560px) {
  .cms-popup { padding: 1rem; padding-top: 4rem; }
  .cms-popup__box { max-width: 100%; }
  .cms-popup__body { padding: 1.4rem 1.3rem 1.6rem; }
  .cms-popup--bar .cms-popup__body { flex-direction: column; align-items: flex-start; gap: .8rem; }
  .cms-popup--bar .cms-popup__btn { width: 100%; justify-content: center; }
  /* dar ekranda kapatma butonu kutunun üst-sağ köşesine yapışsın */
  .cms-popup__close { top: -42px; }
}

/* Hareketi azalt tercihi */
@media (prefers-reduced-motion: reduce) {
  .cms-popup, .cms-popup__box { transition: opacity .01s linear; }
  .cms-popup__box { transform: none !important; }
  .cms-popup__close { transition: none; }
  .cms-popup__close:hover { transform: none; }
  .cms-popup__btn:hover { transform: none; }
}

