/*
 * Tema Motoru v2 — motor yapısal iskeleti (engine.css).
 *
 * YALNIZ yapı: kutu modeli, grid/spacing iskeletleri, erişilebilirlik ve
 * `--color-* → --ob-*` token türev köprüsü. GÖRSEL KİMLİK YOK — buradaki her
 * renk yalnız panelden enjekte edilen `--color-*` token'ından türetilir;
 * gölge/dekorasyon/tipografi kimliği TEMANIN app.css'inin işidir.
 *
 * Sıra sözleşmesi (engine::head): bu dosya tema app.css'inden ÖNCE yüklenir —
 * tema, buradaki her kuralı aynı özgüllükle ezebilir.
 */

/* --- Token köprüsü: --color-* (panel girdisi) → --ob-* (tüketim türevi) --- */
:root {
  --ob-bg: var(--color-bg, #ffffff);
  --ob-surface: var(--color-surface, #f7f8fa);
  --ob-elevate: var(--color-elevate, #ffffff);
  --ob-ink: var(--color-ink, #111827);
  --ob-muted: var(--color-muted, #5b6472);
  --ob-accent: var(--color-accent, #2563eb);
  --ob-accent-ink: var(--color-accent-ink, #ffffff);
  --ob-line: var(--color-line, #e4e7ec);

  /* Yapısal ritim — tema token'la ezebilir. */
  --ob-container: 76rem;
  --ob-section-y: clamp(2.5rem, 5vw, 5rem);
  --ob-gap: clamp(1rem, 2vw, 2rem);
  --ob-radius: var(--radius, 0.125rem);
}

@media (prefers-color-scheme: dark) {
  :root {
    --ob-bg: var(--color-bg-dark, var(--color-bg, #0e1117));
    --ob-surface: var(--color-surface-dark, var(--color-surface, #161a21));
    --ob-elevate: var(--color-elevate-dark, var(--color-elevate, #1d222b));
    --ob-ink: var(--color-ink-dark, var(--color-ink, #f3f5f7));
    --ob-muted: var(--color-muted-dark, var(--color-muted, #a2aab8));
    --ob-accent: var(--color-accent-dark, var(--color-accent, #5b8def));
    --ob-accent-ink: var(--color-accent-ink-dark, var(--color-accent-ink, #0e1117));
    --ob-line: var(--color-line-dark, var(--color-line, #2a3038));
  }
}

/* Kullanıcı anahtarı işletim sistemi tercihini EZER — iki yönde de. */
[data-theme="dark"] {
  --ob-bg: var(--color-bg-dark, var(--color-bg, #0e1117));
  --ob-surface: var(--color-surface-dark, var(--color-surface, #161a21));
  --ob-elevate: var(--color-elevate-dark, var(--color-elevate, #1d222b));
  --ob-ink: var(--color-ink-dark, var(--color-ink, #f3f5f7));
  --ob-muted: var(--color-muted-dark, var(--color-muted, #a2aab8));
  --ob-accent: var(--color-accent-dark, var(--color-accent, #5b8def));
  --ob-accent-ink: var(--color-accent-ink-dark, var(--color-accent-ink, #0e1117));
  --ob-line: var(--color-line-dark, var(--color-line, #2a3038));
}

[data-theme="light"] {
  --ob-bg: var(--color-bg, #ffffff);
  --ob-surface: var(--color-surface, #f7f8fa);
  --ob-elevate: var(--color-elevate, #ffffff);
  --ob-ink: var(--color-ink, #111827);
  --ob-muted: var(--color-muted, #5b6472);
  --ob-accent: var(--color-accent, #2563eb);
  --ob-accent-ink: var(--color-accent-ink, #ffffff);
  --ob-line: var(--color-line, #e4e7ec);
}

/* --- Temel iskelet --- */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: var(--ob-bg); color: var(--ob-ink); }
img, video { max-width: 100%; height: auto; }
[hidden] { display: none !important; }

.ob-container { max-width: var(--ob-container); margin-inline: auto; padding-inline: 1rem; }

.ob-skip { position: absolute; left: -999rem; top: 0; padding: 0.5rem 1rem; background: var(--ob-elevate); color: var(--ob-ink); z-index: 100; }
.ob-skip:focus { left: 0.5rem; top: 0.5rem; }

/* --- Nötr kabuk: header / footer --- */
.ob-header { border-bottom: 1px solid var(--ob-line); background: var(--ob-surface); }
.ob-header__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--ob-gap); flex-wrap: wrap; padding-block: 0.75rem; }
.ob-header__brand { color: var(--ob-ink); text-decoration: none; font-weight: 700; }
.ob-header__nav { display: flex; gap: 1rem; flex-wrap: wrap; }
.ob-header__nav a { color: var(--ob-ink); text-decoration: none; }

.ob-footer { margin-top: var(--ob-section-y); border-top: 1px solid var(--ob-line); background: var(--ob-surface); color: var(--ob-muted); }
.ob-footer__cols { display: grid; gap: var(--ob-gap); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); padding-block: var(--ob-gap); }
.ob-footer a { color: var(--ob-ink); text-decoration: none; display: block; }
.ob-footer__legal { padding-block: 1rem; border-top: 1px solid var(--ob-line); margin: 0; }

/* --- Yüzey iskeletleri: detail / listing (bloklar Task 5+ ile dolar) --- */
/* Ana kap grid'dir: temalar [data-block="…"]{grid-area:…} ile blokları
   mekânsal olarak yeniden yerleştirebilir (farklılaşma katmanı). */
.ob-detail { padding-block: var(--ob-section-y); }
.ob-detail__grid { display: grid; gap: var(--ob-gap); align-items: start; }
@media (min-width: 64rem) {
  .ob-detail__grid--aside { grid-template-columns: minmax(0, 1fr) 20rem; }
}
/* Aside bloğu kalmadıysa frame tek sütun tam genişlik basar (aside modeli). */
.ob-detail__grid--full { grid-template-columns: minmax(0, 1fr); }
.ob-detail__main { display: grid; gap: var(--ob-gap); min-width: 0; }
.ob-detail__aside { display: grid; gap: var(--ob-gap); min-width: 0; }

.ob-listing { padding-block: var(--ob-section-y); }
.ob-listing__grid { display: grid; gap: var(--ob-gap); grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }

/* --- Nötr kart --- */
.ob-card { display: flex; flex-direction: column; gap: 0.5rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-elevate); overflow: hidden; }
.ob-card__media { display: block; }
.ob-card__media img { display: block; width: 100%; object-fit: cover; }
.ob-card__body { padding: 0.75rem 1rem 1rem; display: grid; gap: 0.35rem; }
.ob-card__title { margin: 0; }
.ob-card__title a { color: var(--ob-ink); text-decoration: none; }
.ob-card__excerpt { margin: 0; color: var(--ob-muted); }

/* --- engine::ui.* iskeletleri --- */
.ob-field { display: grid; gap: 0.35rem; }
.ob-field input, .ob-field select, .ob-field textarea { padding: 0.5rem 0.75rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-bg); color: var(--ob-ink); font: inherit; }
.ob-field__hint { color: var(--ob-muted); }
.ob-field__error { color: var(--ob-accent); }

.ob-notice { padding: 0.75rem 1rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-surface); }
.ob-notice p { margin: 0; }

.ob-status { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.ob-status__step { display: flex; align-items: center; gap: 0.5rem; color: var(--ob-muted); }
.ob-status__dot { width: 0.65rem; height: 0.65rem; border-radius: 50%; border: 1px solid var(--ob-line); background: var(--ob-surface); flex: none; }
.ob-status__step--done .ob-status__dot, .ob-status__step--current .ob-status__dot { background: var(--ob-accent); border-color: var(--ob-accent); }
.ob-status__step--current { color: var(--ob-ink); font-weight: 600; }

.ob-empty { display: grid; gap: 0.75rem; justify-items: start; padding: var(--ob-gap); border: 1px dashed var(--ob-line); border-radius: var(--ob-radius); color: var(--ob-muted); }
.ob-empty p { margin: 0; }

.ob-btn { display: inline-block; padding: 0.5rem 1rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-accent); color: var(--ob-accent-ink); text-decoration: none; cursor: pointer; font: inherit; }
.ob-btn--ghost { background: transparent; color: var(--ob-ink); }

/* --- Blok iskeletleri: nav + header ailesi (Task 5) --- */
.ob-b-breadcrumb { font-size: 0.875rem; color: var(--ob-muted); }
.ob-b-breadcrumb a { color: var(--ob-muted); text-decoration: none; }
.ob-b-breadcrumb [aria-current="page"] { color: var(--ob-ink); }

.ob-b-parent-label { margin: 0; }
.ob-label { display: inline-block; padding: 0.15rem 0.6rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-surface); color: var(--ob-ink); text-decoration: none; }

.ob-b-filter-categories { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ob-b-filter-categories a { padding: 0.25rem 0.75rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); color: var(--ob-ink); text-decoration: none; }
.ob-b-filter-categories a[aria-current="true"] { background: var(--ob-accent); border-color: var(--ob-accent); color: var(--ob-accent-ink); }

.ob-b-filter-search input { width: 100%; max-width: 24rem; padding: 0.5rem 0.75rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-bg); color: var(--ob-ink); font: inherit; }

.ob-b-head { display: grid; gap: 0.5rem; }
.ob-b-head h1 { margin: 0; }
.ob-b-head__lead { margin: 0; color: var(--ob-muted); }
.ob-b-head__kicker { margin: 0; color: var(--ob-muted); font-size: 0.8125rem; letter-spacing: 0.04em; text-transform: uppercase; }

.ob-b-listing-head h1 { margin: 0; }
.ob-b-listing-head__kicker { margin: 0 0 0.25rem; color: var(--ob-muted); font-size: 0.8125rem; letter-spacing: 0.04em; text-transform: uppercase; }

.ob-b-article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin: 0; color: var(--ob-muted); }

.ob-b-meta-table { display: flex; flex-wrap: wrap; gap: var(--ob-gap); margin: 0; padding: 0.75rem 1rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-surface); }
.ob-b-meta-table dt { color: var(--ob-muted); font-size: 0.8125rem; }
.ob-b-meta-table dd { margin: 0; }

.ob-b-updated-stamp, .ob-b-gallery-count { margin: 0; color: var(--ob-muted); }

/* --- Blok iskeletleri: media + content ailesi (Task 6) --- */
.ob-b-cover { margin: 0; }
.ob-b-cover img { width: 100%; display: block; object-fit: cover; }
.ob-b-cover--contained { border-radius: var(--ob-radius); overflow: hidden; }
/* Bleed: konteynerden tam viewport genişliğine taşar (v1 .ob-cover--bleed hesabı). */
.ob-b-cover--bleed { margin-inline: calc(50% - 50vw); }
.ob-b-cover--bleed img { max-height: 60vh; }

.ob-b-banner { margin: 0; border-radius: var(--ob-radius); overflow: hidden; }
.ob-b-banner img { width: 100%; display: block; object-fit: cover; }

.ob-b-media-showcase { display: grid; gap: 0.6rem; }
.ob-b-media-showcase__main { margin: 0; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); overflow: hidden; }
.ob-b-media-showcase__main img { width: 100%; display: block; }
.ob-b-media-showcase__thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr)); gap: 0.5rem; }
.ob-b-media-showcase__thumbs a { display: block; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); overflow: hidden; }
.ob-b-media-showcase__thumbs img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }

.ob-b-gallery a { display: block; border-radius: var(--ob-radius); overflow: hidden; border: 1px solid var(--ob-line); }
.ob-b-gallery img { width: 100%; display: block; }
.ob-b-gallery--masonry { columns: 3 14rem; gap: var(--ob-gap); }
.ob-b-gallery--masonry > a { margin-bottom: var(--ob-gap); break-inside: avoid; }
.ob-b-gallery--grid { display: grid; gap: var(--ob-gap); grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); }
.ob-b-gallery--strip { display: flex; gap: var(--ob-gap); overflow-x: auto; }
.ob-b-gallery--strip > a { flex: 0 0 14rem; }

/* Gövde: okunur satır uzunluğu (v1 .ob-detail__body 68ch varsayılanı). */
.ob-b-body { max-width: 68ch; }
.ob-b-body > :first-child { margin-top: 0; }
.ob-b-body img { border-radius: var(--ob-radius); }

.ob-b-toc__details { border: 1px solid var(--ob-line); border-radius: var(--ob-radius); padding: 0.85rem 1rem; background: var(--ob-surface); }
.ob-b-toc__summary { cursor: pointer; font-weight: 600; }
.ob-b-toc__list { margin: 0.75rem 0 0; padding: 0; list-style: none; display: grid; gap: 0.45rem; }
.ob-b-toc__list a { color: var(--ob-muted); text-decoration: none; font-size: 0.875rem; }

.ob-b-specs { margin: 0; border-top: 1px solid var(--ob-line); }
.ob-b-specs__row { display: grid; grid-template-columns: minmax(8rem, 1fr) 2fr; gap: var(--ob-gap); padding-block: 0.55rem; border-bottom: 1px solid var(--ob-line); }
.ob-b-specs dt { color: var(--ob-muted); font-size: 0.8125rem; }
.ob-b-specs dd { margin: 0; }

.ob-b-share { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; padding-top: var(--ob-gap); border-top: 1px solid var(--ob-line); }
.ob-b-share__label { color: var(--ob-muted); font-size: 0.875rem; }
.ob-b-share__link { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 0.85rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); color: var(--ob-ink); text-decoration: none; font-size: 0.875rem; }

.ob-b-quote-cta { margin: 0; }

/* --- Blok iskeletleri: relations ailesi (Task 7) --- */
.ob-b-related, .ob-b-children, .ob-b-siblings, .ob-b-module-strip { display: grid; gap: var(--ob-gap); }
.ob-b-related h2, .ob-b-children h2, .ob-b-siblings h2, .ob-b-module-strip h2 { margin: 0; }
.ob-b-related__grid, .ob-b-children__grid, .ob-b-module-strip__grid { display: grid; gap: var(--ob-gap); grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); }

.ob-b-prevnext { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--ob-gap); padding-top: var(--ob-gap); border-top: 1px solid var(--ob-line); }
.ob-b-prevnext__item { color: var(--ob-ink); text-decoration: none; }
.ob-b-prevnext__item--next { margin-left: auto; text-align: right; }

.ob-b-siblings__list { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.45rem; }
.ob-b-siblings__list a { color: var(--ob-ink); }
.ob-b-siblings__cloud { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.ob-b-embedded-listing { display: grid; gap: var(--ob-gap); }
.ob-b-embedded-listing__grid { display: grid; gap: var(--ob-gap); grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); }
.ob-b-embedded-listing__faq { display: grid; gap: 0.6rem; }
.ob-b-embedded-listing__item { border: 1px solid var(--ob-line); border-radius: var(--ob-radius); padding: 0.75rem 1rem; background: var(--ob-surface); }
.ob-b-embedded-listing__item summary { cursor: pointer; font-weight: 600; }
.ob-b-embedded-listing__empty { margin: 0; color: var(--ob-muted); }

/* Sayfalama parçası (liste gövdesiyle daima birlikte — Task 8 de kullanır). */
.ob-pagination { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.ob-pagination a { min-width: 2.25rem; padding: 0.35rem 0.6rem; text-align: center; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); color: var(--ob-ink); text-decoration: none; }
.ob-pagination__current { background: var(--ob-accent); border-color: var(--ob-accent); color: var(--ob-accent-ink); }

/* --- Blok iskeletleri: listing ailesi (Task 8) --- */
.ob-b-listing-cards, .ob-b-listing-masonry, .ob-b-listing-rows, .ob-b-listing-docs,
.ob-b-listing-accordion, .ob-b-listing-grouped, .ob-b-logo-wall, .ob-b-quote-grid { display: grid; gap: var(--ob-gap); }

.ob-b-listing-cards__grid { display: grid; gap: var(--ob-gap); }
@media (min-width: 40rem) { .ob-b-listing-cards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64rem) {
  .ob-b-listing-cards__grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ob-b-listing-cards__grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* Modifier'lar sütun kurallarından SONRA gelir ki aynı özgüllükte kazansın. */
.ob-b-listing-cards__grid--wide { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 40rem) {
  /* İlk kart öne çıkar (v1 --news/--projects deseni). */
  .ob-b-listing-cards__grid--news > :first-child, .ob-b-listing-cards__grid--projects > :first-child { grid-column: 1 / -1; }
}

.ob-b-listing-masonry__wall { columns: 3 16rem; gap: var(--ob-gap); }
.ob-b-listing-masonry__wall > * { break-inside: avoid; margin-bottom: var(--ob-gap); }

.ob-b-listing-rows__list { margin: 0; padding: 0; list-style: none; display: grid; }
.ob-b-listing-rows__list a { display: flex; align-items: baseline; gap: 0.75rem; padding: 0.75rem 0.25rem; border-bottom: 1px solid var(--ob-line); color: var(--ob-ink); text-decoration: none; }
.ob-b-listing-rows__title { font-weight: 600; }
.ob-b-listing-rows__sub { color: var(--ob-muted); font-size: 0.875rem; }
.ob-b-listing-rows__arrow { margin-left: auto; color: var(--ob-muted); }

.ob-b-listing-docs__list { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.6rem; }
.ob-b-listing-docs__row { display: flex; align-items: center; flex-wrap: wrap; gap: 0.75rem; padding: 0.75rem 1rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-elevate); }
.ob-b-listing-docs__kind { flex: none; display: inline-flex; align-items: center; justify-content: center; min-width: 2.75rem; height: 2rem; padding: 0 0.4rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-surface); color: var(--ob-muted); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.05em; }
.ob-b-listing-docs__info { display: grid; gap: 0.15rem; min-width: 0; flex: 1 1 12rem; }
.ob-b-listing-docs__title { font-weight: 600; }
.ob-b-listing-docs__desc { color: var(--ob-muted); font-size: 0.875rem; }
.ob-b-listing-docs__size { color: var(--ob-muted); font-size: 0.8125rem; white-space: nowrap; }
.ob-b-listing-docs__dl { flex: none; }

.ob-b-listing-accordion__list { display: grid; gap: 0.6rem; }
.ob-b-listing-accordion__item { border: 1px solid var(--ob-line); border-radius: var(--ob-radius); padding: 0.75rem 1rem; background: var(--ob-surface); }
.ob-b-listing-accordion__item summary { cursor: pointer; font-weight: 600; }
.ob-b-listing-accordion__body { margin-top: 0.5rem; }

.ob-b-listing-grouped__group { display: grid; gap: var(--ob-gap); }
.ob-b-listing-grouped__title { margin: 0; }
.ob-b-listing-grouped__title a { color: var(--ob-ink); text-decoration: none; }
.ob-b-listing-grouped__grid { display: grid; gap: var(--ob-gap); grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); }

.ob-b-logo-wall__wall { display: grid; gap: var(--ob-gap); grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); align-items: center; }
.ob-b-logo-wall__item { display: grid; place-items: center; padding: 0.75rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-elevate); }
.ob-b-logo-wall__item img { max-height: 4rem; width: auto; object-fit: contain; }

.ob-b-quote-grid__heading { margin: 0; }
.ob-b-quote-grid__grid { display: grid; gap: var(--ob-gap); grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.ob-b-quote-grid__card { margin: 0; display: grid; gap: 0.5rem; padding: 1rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-surface); }
.ob-b-quote-grid__card blockquote { margin: 0; }
.ob-b-quote-grid__card figcaption { color: var(--ob-muted); font-size: 0.875rem; }

/* --- Blok iskeletleri: aside + closing ailesi (Task 9) --- */
.ob-b-sidebar { display: grid; gap: var(--ob-gap); align-content: start; }
.ob-b-sidebar__cta { display: grid; gap: 0.5rem; padding: 1rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-elevate); }
.ob-b-sidebar__cta h2 { margin: 0; }
.ob-b-sidebar__kicker { margin: 0; color: var(--ob-muted); font-size: 0.8125rem; letter-spacing: 0.04em; text-transform: uppercase; }
/* icon prop (opt-in) — motor yalnız boyutlanmış, içeriksiz bir slot verir;
   ikonun kendisi (background/mask/::before) temanın CSS'idir. */
.ob-b-sidebar__icon { display: block; width: 1.5rem; height: 1.5rem; }
.ob-b-sidebar__block { display: grid; gap: 0.5rem; }
.ob-b-sidebar__block h3 { margin: 0; font-size: 1rem; }
.ob-b-sidebar__links { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.45rem; }
.ob-b-sidebar__links a { color: var(--ob-ink); }
.ob-b-sidebar__hub { font-weight: 600; color: var(--ob-ink); }

.ob-b-cta-band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ob-gap); padding: 1.25rem 1.5rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-elevate); }
.ob-b-cta-band__text { display: grid; gap: 0.25rem; }
.ob-b-cta-band__text h2, .ob-b-cta-band__text p { margin: 0; }
.ob-b-cta-band__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }

.ob-b-cta-inline { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0; }

.ob-b-nap-line { margin: 0; color: var(--ob-muted); }
.ob-b-nap-line__part { white-space: nowrap; }

.ob-b-contact-form { display: grid; gap: var(--ob-gap); }

/* --- engine.js'in enjekte ettiği motor davranış kabukları --- */
/* Lightbox: motorun bastığı kanca (data-ob-lightbox) temasız da çalışmalı —
   yapısal overlay burada, görsel cila temada. */
.ob-lightbox { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 2rem; background: rgb(0 0 0 / 80%); }
.ob-lightbox img { max-width: 100%; max-height: 90vh; height: auto; }
.ob-lightbox__close { position: absolute; top: 1rem; right: 1rem; padding: 0.25rem 0.75rem; border: 1px solid var(--ob-line); border-radius: var(--ob-radius); background: var(--ob-elevate); color: var(--ob-ink); font-size: 1.25rem; cursor: pointer; }
