/* styles.css — MEMENTO (KOR evreni) */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { background: var(--void); color-scheme: dark; scroll-behavior: smooth; }
body { font-family: var(--font-body); font-size: var(--text-16); line-height: var(--lh-body); letter-spacing: var(--ls-body); color: var(--content-secondary); background: var(--void); min-width: 320px; overflow-x: clip; }
::selection { background: var(--kor); color: var(--void); }
h1, h2, h3 { font-family: var(--font-display); color: var(--content-primary); font-weight: 400; font-variation-settings: 'SOFT' 60, 'WONK' 0; overflow: visible; overflow-wrap: break-word; }
em { font-style: italic; color: var(--content-primary); }
code { font-family: var(--font-mono); }
:focus { outline: none; }
:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--radius-subtle); }
.skip-link { position: fixed; top: var(--space-2); left: var(--space-2); z-index: var(--z-erosion); background: var(--raised); color: var(--content-primary); padding: var(--space-2) var(--space-4); border-radius: var(--radius-subtle); transform: translateY(-200%); transition: transform var(--dur-micro) var(--ease-emphatic); font-family: var(--font-mono); font-size: var(--text-12); text-decoration: none; letter-spacing: var(--ls-label); text-transform: uppercase; }
.skip-link:focus-visible { transform: translateY(0); }
.container { width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: 20px; }
@media (min-width: 768px)  { .container { padding-inline: 32px; } }
@media (min-width: 1280px) { .container { padding-inline: 48px; } }
@media (min-width: 1440px) { .container { padding-inline: 80px; } }
.eyebrow { font-family: var(--font-mono); font-size: var(--text-12); line-height: var(--lh-label); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--verdigris); margin-bottom: var(--space-4); }
.lead { font-size: var(--text-18); line-height: var(--lh-lead); max-width: 56ch; }
@media (min-width: 768px) { .lead { font-size: var(--text-22); } }
.mono-meta { font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--content-tertiary); line-height: var(--lh-label); }
/* Ignişsyon */
.ignition { position: fixed; inset: 0; z-index: calc(var(--z-erosion) + 10); background: var(--void); display: grid; pointer-events: none; opacity: 1; transition: opacity var(--dur-primary) var(--ease-cool), background-color 700ms var(--ease-cool); }
.ignition__net { place-self: center; width: 150px; height: 90px; opacity: 0; transform: scale(.6); animation: net-in 900ms var(--ease-emphatic) 200ms forwards; transition: opacity 600ms var(--ease-cool), transform 600ms var(--ease-cool); }
@keyframes net-in { to { opacity: 1; transform: scale(1); } }
.ignition--clear { background: transparent; }
.ignition__net .nn-gone { animation: none; opacity: 0 !important; transition: opacity 300ms var(--ease-cool); }
.ignition__net--out { opacity: 0; transform: scale(.85); }
.ignition__traveler { position: absolute; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: var(--radius-ember); background: var(--kor); box-shadow: var(--glow); transition: transform 760ms var(--ease-ignite), opacity 420ms var(--ease-cool); }
.ignition__traveler.is-spent { opacity: 0; }
.ignite-pop { animation: ignite-pop 480ms var(--ease-emphatic); }
@keyframes ignite-pop { 0% { filter: brightness(2.2); } 100% { filter: brightness(1); } }
.ignition--done { opacity: 0; }
.ignition--off { display: none; }
@media (prefers-reduced-motion: reduce) { .ignition__net { animation: none; opacity: .8; transform: none; } .ignition { transition-duration: var(--dur-morph); } .ignite-pop { animation: none; } }
/* Grain & imleç */
.grain { position: fixed; inset: 0; z-index: 1; width: 100%; height: 100%; pointer-events: none; }
.cursor-core, .cursor-halo, .cursor-trail { position: fixed; top: 0; left: 0; pointer-events: none; display: none; }
body.has-cursor { cursor: none; }
body.has-cursor a, body.has-cursor button { cursor: none; }
body.has-cursor .cursor-core, body.has-cursor .cursor-halo, body.has-cursor .cursor-trail { display: block; }
.cursor-trail { z-index: var(--z-cursor-trail); width: 100%; height: 100%; mix-blend-mode: screen; }
[data-theme="light"] .cursor-trail { mix-blend-mode: multiply; }
.cursor-core { z-index: var(--z-cursor-core); width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: var(--radius-ember); background: var(--kor); box-shadow: 0 0 8px var(--glow-core); }
.cursor-halo { z-index: var(--z-cursor-core); width: 36px; height: 36px; margin: -18px 0 0 -18px; border-radius: var(--radius-ember); background: radial-gradient(circle, var(--glow-core), transparent 70%); transition: width var(--dur-micro) var(--ease-emphatic), height var(--dur-micro) var(--ease-emphatic); }
body.cursor-hot .cursor-halo { width: 52px; height: 52px; margin: -26px 0 0 -26px; }
/* Header */
.site-header { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: var(--space-4) 20px; background: color-mix(in srgb, var(--void) 82%, transparent); backdrop-filter: blur(12px); box-shadow: inset 0 -1px 0 var(--ember-edge); }
@media (min-width: 768px) { .site-header { padding-inline: 32px; } }
@media (min-width: 1280px) { .site-header { padding-inline: 48px; } }
.logo { font-family: var(--font-display); font-size: var(--text-18); letter-spacing: var(--ls-label); color: var(--content-primary); text-decoration: none; display: inline-flex; align-items: center; gap: var(--space-2); font-variation-settings: 'SOFT' 60, 'WONK' 0; transition: font-variation-settings 900ms var(--ease-cool); }
.logo:hover { font-variation-settings: 'SOFT' 0, 'WONK' 1; transition-duration: 300ms; }
.site-nav { display: flex; align-items: center; gap: var(--space-4); }
.site-nav__link { display: none; font-size: var(--text-14); color: var(--content-secondary); text-decoration: none; padding: var(--space-2); box-shadow: inset 0 -1px 0 transparent; transition: color var(--dur-micro-exit) var(--ease-cool), box-shadow var(--dur-micro-exit) var(--ease-cool); }
@media (min-width: 768px) { .site-nav__link { display: inline-block; } }
.site-nav__link:hover { color: var(--content-primary); box-shadow: inset 0 -1px 0 var(--kor); transition-duration: var(--dur-micro); }
/* Butonlar */
.btn { font-family: var(--font-body); font-size: var(--text-16); font-weight: 500; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: 44px; padding: var(--space-4) var(--space-8); border-radius: var(--radius-subtle); border: none; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color var(--dur-micro-exit) var(--ease-cool), color var(--dur-micro-exit) var(--ease-cool), box-shadow var(--dur-micro-exit) var(--ease-cool), transform var(--dur-micro-exit) var(--ease-cool); }
.btn:hover { transition-duration: var(--dur-micro); transition-timing-function: var(--ease-emphatic); }
.btn:active { transform: scale(.985); }
.btn:disabled { background: var(--surface); color: var(--content-ghost); box-shadow: none; cursor: not-allowed; transform: none; }
.btn--small { min-height: 44px; padding: var(--space-2) var(--space-4); font-size: var(--text-14); }
.btn--primary { background: var(--kor); color: var(--void); box-shadow: var(--glow); animation: glow-breath var(--dur-breath) var(--ease-cool) infinite; }
.btn--primary:hover:not(:disabled) { background: var(--kor-bright); transform: translateY(-1px); box-shadow: 0 0 34px var(--glow-core), 0 0 112px var(--glow-halo); }
.btn--primary:disabled { animation: none; }
.btn--secondary { background: transparent; color: var(--content-primary); box-shadow: inset 0 0 0 1px var(--ember-edge); }
.btn--secondary:hover:not(:disabled) { box-shadow: inset 0 0 0 1px var(--kor); }
.btn--ghost { background: transparent; color: var(--content-secondary); padding-inline: var(--space-2); position: relative; }
.btn--ghost::after { content: ''; position: absolute; left: var(--space-2); right: var(--space-2); bottom: var(--space-2); height: 1px; background: linear-gradient(90deg, var(--kor), var(--kor-bright)); transform: scaleX(0); transform-origin: left; transition: transform 300ms var(--ease-standard); }
.btn--ghost:hover { color: var(--content-primary); }
.btn--ghost:hover::after { transform: scaleX(1); }
.btn--success { background: var(--verdigris); color: var(--void); box-shadow: none; animation: success-cool 600ms var(--ease-cool); }
@keyframes success-cool { 0% { background: var(--signal-success); } 100% { background: var(--verdigris); } }
.btn--loading { position: relative; color: var(--content-tertiary); background: var(--surface); pointer-events: none; overflow: hidden; animation: none; box-shadow: none; }
.btn--loading::before { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; background: conic-gradient(from 0deg, transparent 0 70%, var(--kor) 85%, var(--kor-bright) 92%, transparent 100%); -webkit-mask: linear-gradient(var(--void) 0 0) content-box, linear-gradient(var(--void) 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: ember-run 1.4s linear infinite; }
@keyframes ember-run { to { transform: rotate(1turn); } }
@keyframes glow-breath { 0%, 100% { box-shadow: 0 0 24px var(--glow-core), 0 0 80px var(--glow-halo); } 50% { box-shadow: 0 0 28px color-mix(in srgb, var(--glow-core) 115%, transparent), 0 0 92px var(--glow-halo); } }
/* Görünümler & erozyon */
.view { display: none; }
.view--active { display: block; }
.view--enter { animation: erosion-in var(--dur-morph) var(--ease-cool); }
@keyframes erosion-in { 0% { opacity: 0; clip-path: inset(0 100% 0 0); filter: brightness(1.6); } 60% { opacity: 1; } 100% { clip-path: inset(0 0 0 0); filter: brightness(1); } }
[data-reveal] { opacity: 0; transform: translateY(var(--space-6)); transition: opacity 600ms var(--ease-standard), transform 600ms var(--ease-standard); }
[data-reveal].lit { opacity: 1; transform: none; }
/* Hero */
.hero { position: relative; isolation: isolate; min-height: 88vh; display: flex; align-items: flex-end; padding-block: var(--space-24); overflow: clip; }
.hero__field { position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse 70% 55% at 28% 88%, var(--glow-halo), transparent 65%), radial-gradient(ellipse 40% 30% at 30% 92%, var(--glow-core), transparent 70%), radial-gradient(ellipse 90% 70% at 75% 20%, color-mix(in srgb, var(--raised) 50%, transparent), transparent 70%); animation: glow-breath-bg var(--dur-breath) var(--ease-cool) infinite; }
@keyframes glow-breath-bg { 0%, 100% { opacity: .85; } 50% { opacity: 1; } }
.hero__title { font-size: clamp(var(--text-48), 11vw, var(--text-160)); line-height: var(--lh-display); letter-spacing: var(--ls-display); font-variation-settings: 'opsz' 144, 'SOFT' 60, 'WONK' 0; margin-bottom: var(--space-6); max-width: 12ch; }
.hero__lead { margin-bottom: var(--space-8); }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-bottom: var(--space-6); }
.hero__meta { color: var(--content-tertiary); }
.display-hot { transition: font-variation-settings 900ms var(--ease-cool); }
.display-hot.heat { font-variation-settings: 'opsz' 144, 'SOFT' 0, 'WONK' 1; transition-duration: 300ms; }

/* ░░ ANI TAKIMYILDIZI HERO — "an, anıya dönüşür" (sade ağ, köz/ateş yok) ░░
   Hero arkası: js/hero-neuro.js tek canvas çizer — anı çekirdekleri + bağlantılar
   + aralarında akan ışık sinyalleri. Açılışta ağ usulca odağa yerleşir (yumuşak
   emergence; anatomi/beyin yok). Fare ağı karıştırır; tıklama bir anıyı diğerlerini
   çağrıştırarak ağ boyunca yayar. Aydınlık/karanlık temaya duyarlı. Üstünde occasion
   çipleri yüzer. */
.hero__neurons { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 2; }
.hero--neuro .hero__field { opacity: 0; } /* canvas aktifse CSS fallback gradyanı söner */
.hero__inner { position: relative; z-index: 4; }
.hero__stage { position: absolute; z-index: 3; right: 7vw; top: 44%; transform: translateY(-50%); width: min(44vw, 500px); aspect-ratio: 1; pointer-events: none; }
.hero__chip { position: absolute; display: inline-flex; align-items: center; gap: var(--space-2); padding: 7px 13px; font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--content-secondary); background: color-mix(in srgb, var(--surface) 80%, transparent); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); border: 1px solid var(--ember-edge); border-radius: var(--radius-ember); box-shadow: var(--ember-edge-top), var(--raised-shadow); white-space: nowrap; animation: hero-drift 7s var(--ease-cool) infinite; }
.hero__chip-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--kor); box-shadow: 0 0 8px var(--glow-core); }
.hero__chip--1 { top: 4%;   left: -6%;     animation-delay: -.5s; }
.hero__chip--2 { top: -4%;  right: 10%;    animation-delay: -2.2s; }
.hero__chip--3 { top: 48%;  right: -10%;   animation-delay: -3.6s; }
.hero__chip--4 { bottom: 10%; left: -10%;  animation-delay: -1.4s; }
.hero__chip--5 { bottom: -4%; right: 16%;  animation-delay: -4.8s; }
@keyframes hero-drift { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
@media (max-width: 767px) {
  .hero__neurons { opacity: .85; }  /* ağ alta indi; başlık metni okunur kalsın */
  .hero__stage { display: none; }   /* mobilde çipler gizli — sade kalsın */
}

/* Sinematik sahne girişi: scroll ile ısınarak yükselen sahne (kâğıt karanlıktan doğar).
   Scroll-driven destekleyen tarayıcıda scrub'lu; değilse mevcut [data-reveal] IO geri düşüşü. */
@supports (animation-timeline: view()) {
  .scene--cinematic { opacity: 1; transform: none; animation: scene-rise linear both; animation-timeline: view(); animation-range: entry 2% cover 26%; }
  @keyframes scene-rise { from { opacity: 0; transform: translateY(46px) scale(.984); filter: brightness(.62); } to { opacity: 1; transform: none; filter: none; } }
}
@media (prefers-reduced-motion: reduce) {
  .hero__chip { animation: none !important; }
  .scene--cinematic { animation: none !important; opacity: 1 !important; transform: none !important; filter: none !important; }
}
/* ░░ PROTOTYPE — ŞEFİN SERVİSİ (imza scroll anı) ░░
   Onların şehirde gezen otobüsünün KOR çevirisi: kaydırınca Memento Şef, mum ışıklı
   restoranın içinde senin masana doğru yürür; her durakta bir adım (occasion→…→onay)
   tutuşur; sonunda tepsiyi masaya bırakıp kapağı (cloche) kaldırır — an servis edilir.
   Sahne tek bir canvas'ta çizilir (js/chef-walk.js); scroll ilerlemeyi sürer. */
.route { position: relative; height: 460vh; }
.route__sticky { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: clip; background: var(--void); }
.route__canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.route__caption { position: absolute; left: clamp(20px, 6vw, 100px); bottom: clamp(84px, 18vh, 180px); z-index: 2; max-width: min(82vw, 540px); transition: opacity .4s var(--ease-cool); }
.route__step { color: var(--kor); display: block; margin-bottom: var(--space-2); }
.route__line { font-family: var(--font-display); font-size: clamp(var(--text-28), 5vw, var(--text-64)); line-height: var(--lh-heading); letter-spacing: var(--ls-heading); color: var(--content-primary); }
.route__hint { position: absolute; left: 50%; bottom: clamp(18px, 5vh, 40px); transform: translateX(-50%); z-index: 2; color: var(--content-tertiary); opacity: .75; white-space: nowrap; transition: opacity .4s var(--ease-cool); }
/* Kapanış imzası: sahne koyulaşınca ekran ORTASINDA beliren tek söz (canvas'ta MEMENTO/wordmark yok).
   Tabaktan çıkmaz; ekran uzayında usulca yükselerek belirir — sade ve niş. */
.route__finale { position: absolute; left: 50%; top: 50%; transform: translate(-50%, calc(-50% + 18px)); z-index: 3; width: min(90vw, 880px); text-align: center; text-wrap: balance; font-family: var(--font-display); font-weight: 500; font-size: clamp(var(--text-22), 4.4vw, var(--text-48)); line-height: var(--lh-heading); letter-spacing: var(--ls-heading); color: var(--content-primary); text-shadow: 0 0 40px rgba(255,150,70,0.26); opacity: 0; pointer-events: none; transition: opacity 1s var(--ease-cool), transform 1s var(--ease-cool); }
.route.is-finale .route__finale { opacity: 1; transform: translate(-50%, -50%); }
.route.is-finale .route__caption, .route.is-finale .route__hint { opacity: 0; }
@media (max-width: 767px) { .route { height: 520vh; } }
@media (prefers-reduced-motion: reduce) { .route { display: none; } } /* hareketsizde aşağıdaki #yolculuk listesi geçerli */
/* ░░ /PROTOTYPE ░░ */

/* Strata */
.stratum { padding-block: var(--space-24); }
@media (min-width: 1024px) { .stratum { padding-block: var(--space-48); } }
.stratum__title { font-size: clamp(var(--text-36), 5.4vw, var(--text-80)); line-height: var(--lh-heading); letter-spacing: var(--ls-heading); margin-bottom: var(--space-6); max-width: 18ch; }
.stratum__main--left { max-width: 60%; }
.stratum__main--right { margin-left: auto; max-width: 60%; }
@media (max-width: 767px) { .stratum__main--left, .stratum__main--right { max-width: 100%; margin-left: 0; } }
.stratum__margin { display: none; position: absolute; right: 48px; top: var(--space-48); }
@media (min-width: 1280px) { .stratum { position: relative; } .stratum__margin { display: block; } .stratum__margin p { margin-bottom: var(--space-3); } }
/* Index listesi */
.index-list { list-style: none; margin-top: var(--space-8); }
.index-row { display: grid; grid-template-columns: auto 1fr; gap: var(--space-2) var(--space-6); align-items: baseline; padding-block: var(--space-6); box-shadow: inset 0 1px 0 var(--ember-edge); transition: background-color var(--dur-micro-exit) var(--ease-cool), padding-left var(--dur-micro-exit) var(--ease-cool); }
.index-row:hover { background: var(--surface); padding-left: var(--space-3); transition-duration: var(--dur-micro); }
.index-row__num { font-family: var(--font-mono); font-size: var(--text-14); color: var(--content-ghost); }
.index-row:hover .index-row__num { color: var(--kor); }
.index-row__title { font-size: var(--text-28); line-height: var(--lh-subheading); letter-spacing: var(--ls-subheading); }
@media (min-width: 768px) { .index-row__title { font-size: var(--text-36); } }
.index-row__meta { grid-column: 2; font-size: var(--text-14); color: var(--content-tertiary); max-width: 52ch; }
/* Kartlar */
.card { background: var(--surface); border-radius: var(--radius-soft); box-shadow: var(--ember-edge-top), var(--raised-shadow); padding: var(--space-6); transition: background-color var(--dur-micro-exit) var(--ease-cool), transform var(--dur-micro-exit) var(--ease-cool), box-shadow var(--dur-micro-exit) var(--ease-cool); }
@media (min-width: 768px) { .card { padding: var(--space-8); } }
.card__title { font-size: var(--text-22); line-height: var(--lh-subheading); letter-spacing: var(--ls-subheading); margin-bottom: var(--space-3); }
.card__body { font-size: var(--text-16); }
.card__body + .card__title { margin-top: var(--space-6); }
.feature-grid { display: grid; gap: var(--space-6); margin-top: var(--space-8); }
@media (min-width: 768px) { .feature-grid { grid-template-columns: 1fr 1fr; } }
.feature-card__icon { display: block; width: 24px; height: 24px; margin-bottom: var(--space-4); border-radius: var(--radius-ember); background: radial-gradient(circle, var(--kor) 30%, transparent 70%); box-shadow: var(--glow); }
.value-list { list-style: none; margin-top: var(--space-8); max-width: 64ch; }
.value-list__item { display: flex; align-items: baseline; gap: var(--space-4); padding-block: var(--space-4); box-shadow: inset 0 1px 0 var(--ember-edge); color: var(--content-primary); font-size: var(--text-18); }
.badge-v2 { font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--verdigris); border: 1px solid color-mix(in srgb, var(--verdigris) 35%, transparent); border-radius: var(--radius-ember); padding: 2px var(--space-3); margin-left: var(--space-2); white-space: nowrap; }
/* Akış (flow) */
.flow { padding-block: var(--space-12) var(--space-24); min-height: 80vh; display: flex; flex-direction: column; }
.flow__title { font-size: clamp(var(--text-36), 5vw, var(--text-64)); line-height: var(--lh-heading); letter-spacing: var(--ls-heading); margin-bottom: var(--space-6); }
.flow-steps { list-style: none; display: flex; gap: var(--space-2); margin-bottom: var(--space-8); }
.flow-steps__notch { flex: 1; height: 3px; background: var(--content-ghost); border-radius: var(--radius-ember); position: relative; transition: background-color var(--dur-secondary) var(--ease-cool); }
.flow-steps__notch span { position: absolute; top: var(--space-2); left: 0; font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--content-ghost); white-space: nowrap; transition: color var(--dur-secondary) var(--ease-cool); }
@media (max-width: 600px) { .flow-steps__notch:not(.is-current) span { display: none; } }
.flow-steps__notch.is-done { background: var(--verdigris); }
.flow-steps__notch.is-done span { color: var(--verdigris); }
.flow-steps__notch.is-current { background: var(--kor); box-shadow: var(--glow); }
.flow-steps__notch.is-current span { color: var(--kor); }
.flow__body { flex: 1; margin-block: var(--space-8); }
.flow__nav { display: flex; justify-content: space-between; gap: var(--space-4); padding-top: var(--space-6); box-shadow: inset 0 1px 0 var(--ember-edge); }
.flow-hint { font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--verdigris); margin-bottom: var(--space-6); }
/* Seçim kartları */
.pick-grid { display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
@media (min-width: 600px) { .pick-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .pick-grid { grid-template-columns: repeat(3, 1fr); } }
.pick-card { text-align: left; font-family: var(--font-body); background: var(--surface); border: none; border-radius: var(--radius-soft); box-shadow: var(--ember-edge-top), var(--raised-shadow); padding: var(--space-6); cursor: pointer; color: var(--content-secondary); display: flex; flex-direction: column; gap: var(--space-2); transition: background-color var(--dur-micro-exit) var(--ease-cool), box-shadow var(--dur-micro-exit) var(--ease-cool), transform var(--dur-micro-exit) var(--ease-cool); }
.pick-card:hover { background: var(--raised); transition-duration: var(--dur-micro); transition-timing-function: var(--ease-emphatic); }
.pick-card:active { transform: scale(.985); }
.pick-card.is-selected { box-shadow: inset 0 0 0 1px var(--kor), var(--glow); background: var(--raised); }
.pick-card__title { font-family: var(--font-display); font-size: var(--text-22); color: var(--content-primary); line-height: var(--lh-subheading); }
.pick-card__desc { font-size: var(--text-14); }
.pick-card__hint { font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-caption); color: var(--content-tertiary); margin-top: auto; padding-top: var(--space-3); }
.pick-card.is-selected .pick-card__hint { color: var(--verdigris); }
.filter-bar { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-8); }
.chip { font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-caption); text-transform: uppercase; min-height: 44px; padding: var(--space-2) var(--space-4); border-radius: var(--radius-ember); background: transparent; color: var(--content-secondary); border: 1px solid var(--content-ghost); cursor: pointer; transition: border-color var(--dur-micro-exit) var(--ease-cool), color var(--dur-micro-exit) var(--ease-cool), background-color var(--dur-micro-exit) var(--ease-cool); }
.chip:hover { border-color: var(--kor); color: var(--content-primary); transition-duration: var(--dur-micro); }
.chip[aria-pressed="true"] { background: var(--raised); border-color: var(--kor); color: var(--kor); }
.resto-card__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); }
.resto-card__score { font-family: var(--font-mono); font-size: var(--text-14); color: var(--kor); white-space: nowrap; }
.resto-card__meta { display: flex; flex-wrap: wrap; gap: var(--space-2); font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-caption); color: var(--content-tertiary); text-transform: uppercase; }
.resto-card__photo { position: relative; height: 120px; border-radius: var(--radius-subtle); overflow: hidden; background: radial-gradient(ellipse 80% 90% at 30% 100%, var(--glow-halo), transparent 70%), linear-gradient(160deg, var(--raised), var(--void)); margin-bottom: var(--space-3); display: grid; place-items: center; }
.resto-card__photo:empty::after { content: 'FOTO'; font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-label); color: var(--content-ghost); }
.resto-card__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); transition: transform var(--dur-micro-exit) var(--ease-cool); }
.resto-card__photo::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, color-mix(in srgb, var(--void) 12%, transparent), color-mix(in srgb, var(--void) 42%, transparent)); pointer-events: none; }
.pick-card:hover .resto-card__photo img { transform: scale(1.04); transition-duration: var(--dur-micro); }
.empty-state { text-align: center; padding: var(--space-16) var(--space-6); background: var(--surface); border-radius: var(--radius-soft); box-shadow: var(--ember-edge-top); }
.empty-state__ember, .empty-invite__ember, .reminder__ember { display: inline-block; width: 10px; height: 10px; border-radius: var(--radius-ember); background: var(--kor); box-shadow: var(--glow); animation: glow-breath var(--dur-breath) var(--ease-cool) infinite; margin-bottom: var(--space-4); }
.empty-state p { margin-bottom: var(--space-6); color: var(--content-primary); }
/* Kat planı */
/* minmax(0,…): SVG'nin 560px iç genişliği grid kolonunu şişirip paneli ekran dışına taşırmasın */
.floorplan-wrap { display: grid; gap: var(--space-6); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .floorplan-wrap { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: start; } }
/* Mobilde sticky nav paneli tamamen yutmasın: aside (panel) kat planının ÜSTÜNDE gösterilir.
   Boş durum "haritadan seç" mesajını üstte, floorplan'ı altında konumlandırır. */
@media (max-width: 767px) { .floorplan-wrap > aside { order: -1; } }
.floorplan { background: var(--surface); border-radius: var(--radius-soft); box-shadow: var(--ember-edge-top), var(--raised-shadow); padding: var(--space-4); }
.floorplan svg { width: 100%; height: auto; display: block; }
.fp-zone { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; fill: var(--content-ghost); text-anchor: middle; }
.fp-sea { fill: color-mix(in srgb, var(--verdigris) 8%, transparent); }
.fp-table { cursor: pointer; }
.fp-table circle { fill: var(--raised); stroke: var(--content-ghost); stroke-width: 1.5; transition: fill var(--dur-micro-exit) var(--ease-cool), stroke var(--dur-micro-exit) var(--ease-cool); }
.fp-table text { fill: var(--content-secondary); font-family: var(--font-mono); font-size: 12px; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.fp-table:hover circle { stroke: var(--kor); transition-duration: var(--dur-micro); }
.fp-table.is-selected circle { fill: var(--kor); stroke: var(--kor-bright); }
.fp-table.is-selected text { fill: var(--void); }
.fp-table.is-occupied { cursor: not-allowed; }
.fp-table.is-occupied circle { fill: var(--void); stroke: var(--content-ghost); stroke-dasharray: 3 3; }
.fp-table.is-occupied text { fill: var(--content-ghost); }
.fp-table:focus-visible { outline: none; }
.fp-table:focus-visible circle { stroke: var(--kor); stroke-width: 3; }
/* Yaşayan kat planı: seçili masada mum titremesi, şömine masası (S1) sıcaklığı,
   dolu masalarda hafif nabız — salonu "yaşayan" gösterir. reduced-motion'da kapalı. */
.fp-table.is-selected circle { animation: fp-candle 2.4s var(--ease-cool) infinite; }
@keyframes fp-candle { 0%, 100% { filter: drop-shadow(0 0 6px var(--glow-core)); } 45% { filter: drop-shadow(0 0 13px var(--glow-core)); } 70% { filter: drop-shadow(0 0 8px var(--glow-core)); } }
.fp-table[data-table-id="S1"]:not(.is-selected):not(.is-occupied) circle { stroke: var(--kor-bright); animation: fp-hearth 3.2s var(--ease-cool) infinite; }
@keyframes fp-hearth { 0%, 100% { filter: drop-shadow(0 0 4px rgba(255,120,40,.28)); } 50% { filter: drop-shadow(0 0 12px rgba(255,120,40,.5)); } }
.fp-table.is-occupied circle { animation: fp-occupied 3s var(--ease-cool) infinite; }
@keyframes fp-occupied { 0%, 100% { opacity: .55; } 50% { opacity: .82; } }
@media (prefers-reduced-motion: reduce) { .fp-table.is-selected circle, .fp-table[data-table-id="S1"] circle, .fp-table.is-occupied circle { animation: none; } }
.fp-legend { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-3); font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-caption); text-transform: uppercase; color: var(--content-tertiary); }
.fp-legend span { display: inline-flex; align-items: center; gap: var(--space-2); }
.fp-legend i { width: 10px; height: 10px; border-radius: var(--radius-ember); display: inline-block; }
.fp-legend .i-free { background: var(--raised); box-shadow: inset 0 0 0 1.5px var(--content-ghost); }
.fp-legend .i-selected { background: var(--kor); }
.fp-legend .i-occupied { background: var(--void); box-shadow: inset 0 0 0 1.5px var(--content-ghost); opacity: .5; }
.table-panel__photo { position: relative; height: 140px; border-radius: var(--radius-subtle); overflow: hidden; background: radial-gradient(ellipse 70% 80% at 70% 100%, var(--glow-halo), transparent 70%), linear-gradient(200deg, var(--raised), var(--void)); display: grid; place-items: center; margin-bottom: var(--space-4); }
.table-panel__photo:empty::after { content: 'MASA FOTOĞRAFI'; font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-label); color: var(--content-ghost); }
.table-panel__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); }
.table-panel__photo::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, color-mix(in srgb, var(--void) 12%, transparent), color-mix(in srgb, var(--void) 42%, transparent)); pointer-events: none; }
.table-panel__score { display: inline-block; font-family: var(--font-mono); font-size: var(--text-14); color: var(--kor); margin-bottom: var(--space-3); }
.table-panel__row { font-size: var(--text-14); padding-block: var(--space-3); box-shadow: inset 0 1px 0 var(--ember-edge); }
.table-panel__row strong { color: var(--content-primary); font-weight: 500; }
.time-row { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-4); }
/* Experience Builder */
.builder-grid { display: grid; gap: var(--space-4); }
@media (min-width: 1024px) { .builder-grid { grid-template-columns: 2fr 1fr; align-items: start; } }
.addon-stack { display: grid; gap: var(--space-4); }
.addon { background: var(--surface); border-radius: var(--radius-soft); box-shadow: var(--ember-edge-top), var(--raised-shadow); overflow: clip; }
.addon__head { width: 100%; display: flex; align-items: center; gap: var(--space-4); padding: var(--space-6); background: transparent; border: none; text-align: left; cursor: pointer; color: var(--content-primary); font-family: var(--font-body); transition: background-color var(--dur-micro-exit) var(--ease-cool); }
.addon__head:hover { background: var(--raised); transition-duration: var(--dur-micro); }
.addon__icon { flex: none; width: 24px; height: 24px; color: var(--content-tertiary); transition: color var(--dur-micro-exit) var(--ease-cool); }
.addon.is-open .addon__icon, .addon.is-active .addon__icon { color: var(--kor); }
.addon__icon svg { width: 100%; height: 100%; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.addon__title { font-family: var(--font-display); font-size: var(--text-18); }
.addon__desc { font-size: var(--text-14); color: var(--content-tertiary); }
.addon__state { margin-left: auto; font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--content-ghost); white-space: nowrap; }
.addon.is-active .addon__state { color: var(--verdigris); }
.addon__body { padding: 0 var(--space-6) var(--space-6); display: grid; gap: var(--space-4); }
.addon:not(.is-open) .addon__body { display: none; }
.opt-row { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.opt { font-family: var(--font-body); font-size: var(--text-14); min-height: 44px; padding: var(--space-2) var(--space-4); border-radius: var(--radius-subtle); background: var(--void); color: var(--content-secondary); border: 1px solid var(--content-ghost); cursor: pointer; transition: border-color var(--dur-micro-exit) var(--ease-cool), color var(--dur-micro-exit) var(--ease-cool), background-color var(--dur-micro-exit) var(--ease-cool); }
.opt:hover { border-color: var(--kor); transition-duration: var(--dur-micro); }
.opt[aria-pressed="true"] { border-color: var(--kor); color: var(--content-primary); background: var(--raised); }
.opt__price { color: var(--content-tertiary); font-family: var(--font-mono); font-size: var(--text-12); margin-left: var(--space-2); }
.field { display: grid; gap: var(--space-2); }
.field label { font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--content-tertiary); transition: color 200ms var(--ease-standard); }
.field:focus-within label { color: var(--verdigris); }
.field input { font-family: var(--font-body); font-size: var(--text-16); background: var(--void); border: none; border-bottom: 1px solid var(--ember-edge); color: var(--content-primary); padding: var(--space-3) var(--space-2); border-radius: var(--radius-subtle) var(--radius-subtle) 0 0; transition: border-color 200ms var(--ease-standard); }
.field input::placeholder { color: var(--content-tertiary); }
.field input:focus { outline: none; border-bottom: 2px solid var(--kor); }
.soundtrack { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--verdigris) 25%, transparent), var(--raised-shadow); }
.np-queue { list-style: none; display: grid; gap: var(--space-2); margin-top: var(--space-3); }
.np-queue li { display: flex; align-items: center; gap: var(--space-3); font-family: var(--font-mono); font-size: var(--text-14); color: var(--content-tertiary); padding: var(--space-2) var(--space-3); border-radius: var(--radius-subtle); }
.np-queue li.is-now { color: var(--content-primary); background: var(--raised); box-shadow: var(--ember-edge-top); }
.np-queue .np-dot { width: 8px; height: 8px; flex: none; border-radius: var(--radius-ember); background: var(--content-ghost); }
.np-queue li.is-now .np-dot { background: var(--kor); box-shadow: var(--glow); animation: glow-breath var(--dur-breath) var(--ease-cool) infinite; }
.np-note { font-size: var(--text-14); color: var(--content-tertiary); margin-top: var(--space-3); }
.playlist-pick { display: grid; gap: var(--space-2); }
.playlist-pick .opt { display: flex; justify-content: space-between; align-items: center; text-align: left; }
.summary { position: sticky; top: 96px; }
.summary__rows { list-style: none; margin-block: var(--space-4); }
.summary__rows li { display: flex; justify-content: space-between; gap: var(--space-4); font-size: var(--text-14); padding-block: var(--space-3); box-shadow: inset 0 1px 0 var(--ember-edge); }
.summary__rows li span:last-child { font-family: var(--font-mono); white-space: nowrap; color: var(--content-primary); }
.summary__total { display: flex; justify-content: space-between; font-size: var(--text-18); color: var(--content-primary); padding-top: var(--space-4); }
.summary__total strong { font-family: var(--font-mono); color: var(--kor); }
/* Timeline */
.timeline { list-style: none; display: grid; gap: 0; margin-top: var(--space-4); }
.timeline li { display: grid; grid-template-columns: auto auto 1fr; gap: var(--space-4); align-items: baseline; padding-block: var(--space-4); position: relative; }
.timeline li::before { content: ''; position: absolute; left: calc(var(--space-12) + 3px); top: 0; bottom: 0; width: 1px; background: var(--ember-edge); }
.timeline li:first-child::before { top: 50%; }
.timeline li:last-child::before { bottom: 50%; }
.timeline__time { font-family: var(--font-mono); font-size: var(--text-14); color: var(--content-tertiary); width: var(--space-12); }
.timeline__dot { width: 8px; height: 8px; align-self: center; border-radius: var(--radius-ember); background: var(--content-ghost); position: relative; z-index: 1; }
.timeline__event { color: var(--content-primary); font-size: var(--text-16); }
.timeline li.is-moment .timeline__dot { background: var(--kor); box-shadow: var(--glow); animation: glow-breath var(--dur-breath) var(--ease-cool) infinite; }
.timeline li.is-moment .timeline__event { font-family: var(--font-display); font-size: var(--text-18); }
.timeline li.is-moment .timeline__time { color: var(--kor); }
.brief-state { display: flex; align-items: center; gap: var(--space-3); margin-top: var(--space-6); padding: var(--space-4) var(--space-6); border-radius: var(--radius-soft); background: var(--surface); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--verdigris) 35%, transparent); color: var(--verdigris); font-family: var(--font-mono); font-size: var(--text-14); }
.brief-state svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.5; fill: none; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.confirm-grid { display: grid; gap: var(--space-6); }
@media (min-width: 1024px) { .confirm-grid { grid-template-columns: 3fr 2fr; align-items: start; } }
/* Memento */
.memento { padding-block: var(--space-12) var(--space-24); }
.memento__head { margin-bottom: var(--space-12); }
.memento__title { font-size: clamp(var(--text-48), 9vw, var(--text-110)); line-height: var(--lh-display); letter-spacing: var(--ls-display); margin-bottom: var(--space-4); }
.memento__link { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin-top: var(--space-6); }
.memento__url { font-size: var(--text-14); color: var(--verdigris); background: var(--surface); padding: var(--space-3) var(--space-4); border-radius: var(--radius-subtle); box-shadow: var(--ember-edge-top); }
.memento__grid { display: grid; gap: var(--space-4); }
@media (min-width: 768px) { .memento__grid { grid-template-columns: 1fr 1fr; } }
.memento-menu { list-style: none; }
.memento-menu li { padding-block: var(--space-3); box-shadow: inset 0 1px 0 var(--ember-edge); font-size: var(--text-14); color: var(--content-primary); }
.pinned-song { margin-top: var(--space-4); padding: var(--space-4); border-radius: var(--radius-subtle); background: var(--raised); box-shadow: var(--ember-edge-top); color: var(--content-primary); font-family: var(--font-display); font-size: var(--text-18); }
.pinned-song .mono-meta { color: var(--kor); display: block; margin-bottom: var(--space-1); }
.photo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2); }
.photo-grid .ph { aspect-ratio: 1; border-radius: var(--radius-subtle); background: radial-gradient(ellipse 80% 80% at 50% 100%, var(--glow-halo), transparent 75%), linear-gradient(165deg, var(--raised), var(--void)); display: grid; place-items: center; font-family: var(--font-mono); font-size: var(--text-12); color: var(--content-ghost); }
.reminder { display: flex; align-items: center; gap: var(--space-6); margin-top: var(--space-8); flex-wrap: wrap; }
.reminder__ember { margin-bottom: 0; flex: none; }
.reminder__state { color: var(--verdigris); margin-left: auto; white-space: nowrap; }
.memento__cta { margin-top: var(--space-12); }
/* Arşiv */
.archive { padding-block: var(--space-12) var(--space-24); }
.archive__title { font-size: clamp(var(--text-48), 8vw, var(--text-80)); line-height: var(--lh-heading); margin-bottom: var(--space-4); }
.archive__grid { display: grid; gap: var(--space-4); margin-block: var(--space-12); }
@media (min-width: 768px) { .archive__grid { grid-template-columns: repeat(3, 1fr); } }
.archive-card { text-decoration: none; display: flex; flex-direction: column; gap: var(--space-2); }
.archive-card:hover { background: var(--raised); transform: translateY(-2px); transition-duration: var(--dur-micro); }
.archive-card__title { font-family: var(--font-display); font-size: var(--text-28); color: var(--content-primary); line-height: var(--lh-subheading); }
.archive-card__meta { font-size: var(--text-14); color: var(--content-tertiary); }
.archive-card__live { margin-top: var(--space-3); font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--kor); }
.empty-invite { text-align: center; padding: var(--space-16) var(--space-6); border-radius: var(--radius-soft); background: var(--surface); box-shadow: var(--ember-edge-top); }
.empty-invite p { color: var(--content-primary); margin-bottom: var(--space-6); }
/* Footer */
.site-footer { margin-top: var(--space-24); background: radial-gradient(ellipse 60% 40% at 30% 100%, var(--glow-halo), transparent 70%), linear-gradient(var(--void), var(--surface)); box-shadow: inset 0 1px 0 var(--ember-edge); }
.site-footer__inner { padding-block: var(--space-24) var(--space-8); }
.site-footer__title { font-size: clamp(var(--text-28), 4.4vw, var(--text-48)); line-height: var(--lh-heading); margin-bottom: var(--space-8); max-width: 20ch; }
.site-footer__cta-zone { margin-bottom: var(--space-16); }
.site-footer__cols { display: grid; gap: var(--space-8); grid-template-columns: 1fr; padding-block: var(--space-8); box-shadow: inset 0 1px 0 var(--ember-edge); }
@media (min-width: 600px) { .site-footer__cols { grid-template-columns: repeat(3, 1fr); } }
.site-footer__col-head { margin-bottom: var(--space-4); color: var(--content-ghost); }
.site-footer__link { display: block; font-family: var(--font-mono); font-size: var(--text-14); color: var(--verdigris); text-decoration: none; padding-block: var(--space-2); transition: color var(--dur-micro-exit) var(--ease-cool); }
.site-footer__link:hover { color: var(--content-primary); transition-duration: var(--dur-micro); }
.site-footer__link--dim { color: var(--content-tertiary); }
.site-footer__disclaimer { padding-top: var(--space-8); max-width: 62ch; font-size: var(--text-12); line-height: var(--lh-body); color: var(--content-ghost); border-top: 1px solid color-mix(in srgb, var(--content-ghost) 30%, transparent); margin-top: var(--space-8); }
.site-footer__sig { padding-top: var(--space-4); color: var(--content-ghost); }
/* Toast */
.toast-zone { position: fixed; right: var(--space-4); bottom: var(--space-4); z-index: var(--z-erosion); display: grid; gap: var(--space-2); }
.toast { background: var(--raised); color: var(--content-primary); font-family: var(--font-mono); font-size: var(--text-14); padding: var(--space-3) var(--space-6); border-radius: var(--radius-subtle); box-shadow: var(--ember-edge-top), var(--raised-shadow); animation: toast-in 300ms var(--ease-emphatic), toast-cool 600ms var(--ease-cool) 4400ms forwards; }
@keyframes toast-in { from { opacity: 0; transform: translateY(var(--space-2)); } }
@keyframes toast-cool { to { opacity: 0; transform: translateY(var(--space-1)); } }
.shake { animation: err-shake 250ms var(--ease-standard); }
@keyframes err-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-6px); } 60% { transform: translateX(4px); } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; } .btn--primary { box-shadow: var(--glow); } [data-reveal] { opacity: 1; transform: none; } .view--enter { animation: none; } .shake { animation: none; } }
/* Mobilde backdrop-filter GPU maliyetini kaldır — solid arka plan aynı görünümü verir */
@media (max-width: 767px) {
  .site-header { -webkit-backdrop-filter: none; backdrop-filter: none; background: color-mix(in srgb, var(--void) 96%, transparent); }
  .flow__nav { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--void); }
}

/* Dil değiştirici */
.lang-switch { display: inline-flex; gap: 2px; border: 1px solid var(--content-ghost); border-radius: var(--radius-ember); padding: 2px; }
.lang-switch__btn { font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-caption); background: transparent; border: none; color: var(--content-tertiary); min-height: 32px; padding: 0 var(--space-3); border-radius: var(--radius-ember); cursor: pointer; transition: color var(--dur-micro-exit) var(--ease-cool), background-color var(--dur-micro-exit) var(--ease-cool); }
.lang-switch__btn:hover { color: var(--content-primary); transition-duration: var(--dur-micro); }
.lang-switch__btn[aria-pressed="true"] { background: var(--raised); color: var(--kor); }

/* Mobil iyileştirmeler — yalnızca dokunmatik / dar ekran; masaüstü görünümü değişmez */
@media (hover: none) {
  * { -webkit-tap-highlight-color: transparent; }
  .btn, .chip, .opt, .pick-card, .addon__head, .lang-switch__btn, .fp-table { touch-action: manipulation; }
  .pick-card:active, .addon__head:active { background: var(--raised); }
  .chip:active, .opt:active { border-color: var(--kor); color: var(--content-primary); }
  .index-row:active { background: var(--surface); }
  .archive-card:active { background: var(--raised); }
}
@media (max-width: 767px) {
  .site-header { padding-block: var(--space-3); padding-top: max(var(--space-3), env(safe-area-inset-top)); gap: var(--space-2); }
  .site-nav { gap: var(--space-2); }
  .hero { min-height: 0; align-items: flex-start; padding-block: var(--space-16) var(--space-12); }
  .hero__actions { width: 100%; }
  .hero__actions .btn { flex: 1 1 auto; min-width: 0; white-space: normal; text-align: center; }
  .stratum { padding-block: var(--space-16); }
  .flow { padding-block: var(--space-8) var(--space-16); }
  .flow__nav { position: sticky; bottom: 0; z-index: 50; background: color-mix(in srgb, var(--void) 88%, transparent); backdrop-filter: blur(10px); margin-inline: -20px; padding-inline: 20px; padding-top: var(--space-4); padding-bottom: max(var(--space-4), env(safe-area-inset-bottom)); }
  .flow__nav .btn--primary { flex: 1; min-width: 0; white-space: normal; }
  /* Sticky nav panelin altını örtmemesi için içerik alanına boşluk; scrollIntoView kaydırması için de scroll-margin */
  .flow__body { padding-bottom: 100px; }
  #table-panel { scroll-margin-top: 80px; }
  .floorplan { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .floorplan svg { min-width: 560px; }
  .summary { position: static; }
  .photo-grid { grid-template-columns: repeat(2, 1fr); }
  .memento__url { max-width: 100%; overflow-wrap: anywhere; }
  .toast-zone { left: var(--space-4); right: var(--space-4); bottom: max(var(--space-4), env(safe-area-inset-bottom)); }
  .toast { text-align: center; }
  .reminder { gap: var(--space-4); }
  .reminder__state { margin-left: 0; }
}
@media (max-width: 479px) {
  .site-nav .btn--primary { display: none; }
  .lang-switch__btn { padding: 0 var(--space-2); }
}

/* Nöron ağı — hafıza sinapsları (MEMENTO imza animasyonu) */
.neuro { display: inline-block; line-height: 0; }
.neuro svg { width: 100%; height: 100%; overflow: visible; display: block; filter: drop-shadow(0 0 4px var(--glow-core)); }
.neuro--logo { width: 38px; height: 23px; }
.neuro--lg { width: 104px; height: 62px; margin-bottom: var(--space-4); }
.nn-base { stroke: color-mix(in srgb, var(--kor-bright) 8%, transparent); stroke-width: 1; }
.nn-link { stroke: var(--kor); stroke-width: 1.2; stroke-linecap: round; opacity: 0; stroke-dasharray: 0 100; animation: nn-link 5s var(--ease-cool) infinite; }
.nn-signal { stroke: var(--kor-bright); stroke-width: 1.4; stroke-linecap: round; stroke-dasharray: 12 88; stroke-dashoffset: 100; opacity: 0; animation: nn-signal 5s linear infinite; }
.nn-node { fill: var(--kor); transform-box: fill-box; transform-origin: center; animation: nn-fire 5s var(--ease-cool) infinite; }
.nn-node--hub { fill: var(--kor-bright); }
@keyframes nn-link {
  0% { stroke-dasharray: 0 100; stroke-dashoffset: 0; opacity: 0; }
  6% { opacity: .85; }
  22% { stroke-dasharray: 100 100; stroke-dashoffset: 0; opacity: .85; }
  58% { stroke-dasharray: 100 100; stroke-dashoffset: 0; opacity: .85; }
  80% { stroke-dasharray: 100 100; stroke-dashoffset: -100; opacity: .45; }
  81%, 100% { stroke-dasharray: 100 100; stroke-dashoffset: -100; opacity: 0; }
}
@keyframes nn-signal {
  0%, 24% { opacity: 0; stroke-dashoffset: 100; }
  27% { opacity: .95; }
  56% { stroke-dashoffset: 0; opacity: .95; }
  58%, 100% { stroke-dashoffset: 0; opacity: 0; }
}
@keyframes nn-fire { 0%, 100% { opacity: .4; transform: scale(1); } 35% { opacity: 1; transform: scale(1.32); } }
@media (prefers-reduced-motion: reduce) { .nn-link { animation: none; stroke-dasharray: 100 100; stroke-dashoffset: 0; opacity: .45; } .nn-signal { animation: none; opacity: 0; } .nn-node { animation: none; opacity: .85; } }

/* Memento Voice — sesli asistan */
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.voice-toggle, .theme-toggle { width: 44px; height: 44px; display: inline-grid; place-items: center; background: transparent; border: 1px solid var(--content-ghost); border-radius: var(--radius-ember); color: var(--content-secondary); cursor: pointer; transition: color var(--dur-micro-exit) var(--ease-cool), border-color var(--dur-micro-exit) var(--ease-cool), box-shadow var(--dur-micro-exit) var(--ease-cool); }
.theme-toggle svg { width: 19px; height: 19px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.theme-toggle:hover { color: var(--kor-bright); border-color: var(--kor); transition-duration: var(--dur-micro); }
.theme-toggle__moon { display: none; }
[data-theme="light"] .theme-toggle__moon { display: block; }
[data-theme="light"] .theme-toggle__sun { display: none; }
/* Şef ikonu: çizgiler Gemini/Google karışımı dönen gradyanla yanar (defs index.html'de) */
.voice-toggle svg { width: 20px; height: 20px; stroke: url(#chef-grad); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.voice-toggle:hover { color: var(--kor-bright); border-color: var(--kor); transition-duration: var(--dur-micro); }
.voice-toggle[aria-pressed="true"] { color: var(--kor); border-color: var(--kor); box-shadow: var(--glow); }
.voice-orb { --orb-stack: 136px; --orb-gap: var(--space-8); position: fixed; left: 50%; top: calc(100vh - var(--orb-stack) - var(--orb-gap)); top: calc(100svh - var(--orb-stack) - var(--orb-gap)); transform: translateX(-50%); z-index: var(--z-erosion); display: grid; justify-items: center; gap: var(--space-3); pointer-events: none; transition: transform 600ms var(--ease-cool), opacity 600ms var(--ease-cool); }
.voice-orb[hidden] { display: none; }
.voice-orb__rings { position: absolute; top: 50%; left: 50%; width: 260px; height: 260px; margin: -130px 0 0 -130px; pointer-events: none; }
.voice-orb__disc { position: relative; width: 96px; height: 96px; border-radius: var(--radius-ember); border: 1px solid var(--ember-edge); background: radial-gradient(circle at 38% 32%, var(--raised), var(--void) 78%); box-shadow: var(--raised-shadow), 0 0 24px var(--glow-halo); cursor: pointer; display: grid; place-items: center; pointer-events: auto; transition: box-shadow var(--dur-micro-exit) var(--ease-cool), transform var(--dur-micro-exit) var(--ease-cool); }
.voice-orb__net { width: 58px; height: 36px; }
.voice-orb.is-speaking .voice-orb__disc { animation: voice-pulse 1.1s var(--ease-cool) infinite; }
.voice-orb.is-listening .voice-orb__disc { box-shadow: var(--raised-shadow), var(--glow); }
.voice-orb.is-standby { transform: translateX(-50%) scale(.55); opacity: .65; }
.voice-orb.is-standby .voice-orb__disc { animation: glow-breath var(--dur-breath) var(--ease-cool) infinite; }
@keyframes voice-pulse { 0%, 100% { box-shadow: var(--raised-shadow), 0 0 20px var(--glow-core); } 50% { box-shadow: var(--raised-shadow), 0 0 44px var(--glow-core), 0 0 120px var(--glow-halo); } }
.voice-orb__caption { position: absolute; bottom: calc(100% + var(--space-3)); left: 50%; transform: translateX(-50%); width: max-content; max-width: min(520px, 86vw); max-height: 6em; overflow-y: auto; scrollbar-width: none; overscroll-behavior: contain; text-align: center; font-family: var(--font-mono); font-size: var(--text-14); line-height: var(--lh-caption); color: var(--content-primary); background: color-mix(in srgb, var(--raised) 97%, var(--void)); backdrop-filter: blur(12px); padding: var(--space-3) var(--space-5); border-radius: var(--radius-soft); box-shadow: var(--ember-edge-top), var(--raised-shadow), 0 0 0 1px var(--ember-edge); min-height: 1.5em; }
.voice-orb__caption::-webkit-scrollbar { display: none; }
.voice-orb__caption:empty { opacity: 0; }
.voice-orb__caption.is-user { color: var(--verdigris); }
@media (max-width: 767px) { .voice-orb { --orb-stack: 124px; --orb-gap: calc(var(--space-16) + env(safe-area-inset-bottom)); } .voice-orb__disc { width: 84px; height: 84px; } }
/* Şef açıkken içerik orb'un altına sıkışmasın: akış adımları yukarı kaydırılabilir */
@media (max-width: 767px) { body.chef-on .flow { padding-bottom: 230px; } }
@media (prefers-reduced-motion: reduce) { .voice-orb.is-speaking .voice-orb__disc, .voice-orb.is-standby .voice-orb__disc { animation: none; } .voice-orb__rings { display: none; } }

/* Memento Chef — isim plakası */
.voice-orb__name { display: inline-flex; align-items: center; gap: var(--space-2); font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--kor-bright); background: color-mix(in srgb, var(--raised) 88%, transparent); padding: var(--space-1) var(--space-3); border-radius: var(--radius-ember); box-shadow: var(--ember-edge-top); }
.voice-orb__name svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; fill: none; }

/* Memento Chef — mikrofon sustur/aç düğmesi (orb diskinin yanında) */
.voice-orb__mute { position: absolute; bottom: 24px; left: 50%; margin-left: 56px; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--ember-edge); background: radial-gradient(circle at 38% 32%, var(--raised), var(--void) 80%); box-shadow: var(--raised-shadow); color: var(--content-secondary); cursor: pointer; pointer-events: auto; transition: color var(--dur-micro-exit) var(--ease-cool), border-color var(--dur-micro-exit) var(--ease-cool), box-shadow var(--dur-micro-exit) var(--ease-cool); }
.voice-orb__mute svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.voice-orb__mute:hover { color: var(--kor-bright); border-color: var(--kor); transition-duration: var(--dur-micro); }
.voice-orb__mute .voice-orb__mic-off { display: none; }
.voice-orb__mute[aria-pressed="true"] { color: var(--kor); border-color: var(--kor); box-shadow: var(--raised-shadow), var(--glow); }
.voice-orb__mute[aria-pressed="true"] .voice-orb__mic { display: none; }
.voice-orb__mute[aria-pressed="true"] .voice-orb__mic-off { display: block; }
/* sustururken "dinliyor" parıltısı sönsün: seni duymadığı belli olsun */
.voice-orb.is-muted.is-listening .voice-orb__disc { box-shadow: var(--raised-shadow); }
@media (max-width: 767px) { .voice-orb__mute { bottom: 20px; margin-left: 50px; width: 44px; height: 44px; } .voice-orb__mute svg { width: 18px; height: 18px; } }

/* Memento Chef — yazılı sohbet düğmesi (orb diskinin en solunda, xlate'in solunda).
   Yalnız orb açıkken JS tarafından görünür yapılır; tıklanınca metin sohbet panelini açar. */
.voice-orb__chat { position: absolute; bottom: 24px; left: 50%; margin-left: -160px; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--ember-edge); background: radial-gradient(circle at 38% 32%, var(--raised), var(--void) 80%); box-shadow: var(--raised-shadow); color: var(--content-secondary); cursor: pointer; pointer-events: auto; transition: color var(--dur-micro-exit) var(--ease-cool), border-color var(--dur-micro-exit) var(--ease-cool), box-shadow var(--dur-micro-exit) var(--ease-cool); }
.voice-orb__chat svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.voice-orb__chat:hover { color: var(--kor-bright); border-color: var(--kor); transition-duration: var(--dur-micro); }
.voice-orb__chat[aria-expanded="true"] { color: var(--kor); border-color: var(--kor); box-shadow: var(--raised-shadow), var(--glow); }
@media (max-width: 767px) { .voice-orb__chat { bottom: 20px; margin-left: -146px; width: 44px; height: 44px; } .voice-orb__chat svg { width: 18px; height: 18px; } }

/* Memento Chef — site çeviri rozeti (orb diskinin SOLUNDA, sustur düğmesinin aynası).
   Yalnız anlık çevrilen bir dil etkinken görünür; istek bitince (oturum kapanır ya da
   özgün dile dönülür) JS tarafından gizlenir. Tıklanınca siteyi özgün diline döndürür. */
.voice-orb__xlate { position: absolute; bottom: 24px; left: 50%; margin-left: -104px; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--kor); background: radial-gradient(circle at 38% 32%, var(--raised), var(--void) 80%); box-shadow: var(--raised-shadow), var(--glow); color: var(--kor-bright); cursor: pointer; pointer-events: auto; transition: color var(--dur-micro-exit) var(--ease-cool), border-color var(--dur-micro-exit) var(--ease-cool), box-shadow var(--dur-micro-exit) var(--ease-cool); }
.voice-orb__xlate svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.voice-orb__xlate:hover { color: var(--kor-bright); border-color: var(--kor-bright); transition-duration: var(--dur-micro); }
.voice-orb__xlate-code { position: absolute; bottom: -2px; right: -2px; min-width: 16px; height: 16px; padding: 0 3px; display: grid; place-items: center; font-family: var(--font-mono); font-size: 9px; line-height: 1; letter-spacing: 0.04em; text-transform: uppercase; color: var(--void); background: var(--kor); border-radius: 8px; box-shadow: var(--ember-edge-top); }
@media (max-width: 767px) { .voice-orb__xlate { bottom: 20px; margin-left: -94px; width: 44px; height: 44px; } .voice-orb__xlate svg { width: 18px; height: 18px; } }

/* Memento Chef — seçenek sunumu (spotlight) */
.voice-presenting .pick-card:not(.voice-candidate),
.voice-presenting .opt:not(.voice-candidate),
.voice-presenting .chip:not(.voice-candidate),
.voice-presenting .addon:not(.voice-candidate):not(:has(.voice-candidate)) { opacity: .25; filter: saturate(.5); transition: opacity 500ms var(--ease-cool), filter 500ms var(--ease-cool); }
.voice-presenting .fp-table:not(.voice-candidate) { opacity: .25; transition: opacity 500ms var(--ease-cool); }
.voice-candidate { position: relative; }
.pick-card.voice-candidate, .opt.voice-candidate, .chip.voice-candidate, .addon.voice-candidate { box-shadow: inset 0 0 0 1px var(--kor), var(--glow); animation: vc-intro 700ms var(--ease-emphatic) both; animation-delay: calc(var(--vc-i, 0) * 260ms); }
@keyframes vc-intro { 0% { transform: translateY(6px); opacity: .35; } 100% { transform: none; opacity: 1; } }
.voice-badge { position: absolute; top: -10px; left: -10px; width: 26px; height: 26px; border-radius: var(--radius-ember); background: var(--kor); color: var(--void); font-family: var(--font-mono); font-size: var(--text-12); display: grid; place-items: center; box-shadow: var(--glow); z-index: 2; animation: vc-intro 500ms var(--ease-emphatic) both; animation-delay: calc(var(--vc-i, 0) * 260ms + 180ms); }
.fp-table.voice-candidate circle { stroke: var(--kor); stroke-width: 3; animation: vc-fp 1.4s var(--ease-cool) infinite; animation-delay: calc(var(--vc-i, 0) * 260ms); }
@keyframes vc-fp { 0%, 100% { filter: drop-shadow(0 0 2px var(--glow-core)); } 50% { filter: drop-shadow(0 0 10px var(--glow-core)); } }
@media (prefers-reduced-motion: reduce) { .pick-card.voice-candidate, .opt.voice-candidate, .chip.voice-candidate, .addon.voice-candidate, .voice-badge { animation: none; } .fp-table.voice-candidate circle { animation: none; } }

/* Onay fişi — termal fiş estetiği; kâğıt her iki temada da beyaz kalır */
.receipt { position: relative; max-width: 340px; margin-top: var(--space-6); padding: 22px 20px 26px; background: #FFFDF6; color: #241A14; font-family: var(--font-mono); font-size: 12px; line-height: 1.55; filter: drop-shadow(0 12px 30px rgba(0,0,0,.4)); }
[data-theme="light"] .receipt { filter: drop-shadow(0 10px 24px rgba(96,62,32,.28)); }
.receipt::before, .receipt::after { content: ''; position: absolute; left: 0; right: 0; height: 8px; background-size: 14px 8px; background-repeat: repeat-x; }
.receipt::before { top: -8px; background-image: linear-gradient(135deg, transparent 50%, #FFFDF6 50%), linear-gradient(-135deg, transparent 50%, #FFFDF6 50%); background-position: 0 0, 7px 0; }
.receipt::after { bottom: -8px; background-image: linear-gradient(45deg, transparent 50%, #FFFDF6 50%), linear-gradient(-45deg, transparent 50%, #FFFDF6 50%); background-position: 0 0, 7px 0; }
.receipt__brand { font-family: var(--font-display); font-weight: 700; font-size: 24px; text-align: center; letter-spacing: .04em; }
.receipt__title { text-align: center; font-size: 10px; letter-spacing: .16em; margin-top: 2px; }
.receipt__meta { text-align: center; font-size: 10px; color: #6B5848; margin-top: 2px; }
.receipt__sep { border-top: 1px dashed #B7A085; margin: 10px 0; }
.receipt__kv { display: flex; justify-content: space-between; gap: 12px; }
.receipt__kv span:last-child { text-align: right; }
.receipt__total { display: flex; justify-content: space-between; font-weight: 700; font-size: 14px; margin-top: 6px; color: #E8430C; }
.receipt__codelabel { text-align: center; font-size: 10px; letter-spacing: .2em; }
.receipt__codeval { text-align: center; font-size: 24px; font-weight: 700; letter-spacing: .16em; margin: 2px 0 10px; }
.receipt__barcode { display: block; margin: 0 auto 4px; height: 26px; width: 72%; fill: #241A14; }
.receipt__note { margin: 10px 0 0; font-size: 10.5px; text-align: center; }
.receipt__fine { margin: 6px 0 0; font-size: 9.5px; color: #98856F; text-align: center; letter-spacing: .04em; }

/* ---- Duyusal katman: ambiyans rozeti + fotoğraf parallax'ı ---- */
.resto-card { position: relative; }
.amb-btn { position: absolute; top: var(--space-3); right: var(--space-3); z-index: 2; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--void) 64%, transparent); border: 1px solid var(--content-ghost); color: var(--content-secondary); cursor: pointer; transition: color var(--dur-micro) var(--ease-cool), border-color var(--dur-micro) var(--ease-cool), box-shadow var(--dur-micro) var(--ease-cool); }
.amb-btn svg { width: 17px; height: 17px; fill: currentColor; }
.amb-btn .amb-wave { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
.amb-btn:hover { color: var(--kor-bright); border-color: var(--kor); }
.amb-btn.is-playing { color: var(--kor); border-color: var(--kor); box-shadow: var(--glow); }
.amb-btn.is-playing .amb-wave { animation: amb-pulse 1.2s ease-in-out infinite; }
@keyframes amb-pulse { 50% { opacity: .2; } }
.table-panel__photo img { transition: transform 300ms var(--ease-cool); will-change: transform; }
@media (prefers-reduced-motion: reduce) { .amb-btn.is-playing .amb-wave { animation: none; } .table-panel__photo img { transition: none; } }

/* ---- Gece Provası: kuşbakışı sinematik sahne ---- */
.rehearsal { position: fixed; inset: 0; z-index: calc(var(--z-erosion) + 30); display: grid; grid-template-rows: auto 1fr auto auto auto; justify-items: center; align-content: center; gap: var(--space-4); padding: var(--space-6); background: color-mix(in srgb, var(--void) 94%, transparent); backdrop-filter: blur(14px); opacity: 0; transition: opacity 420ms var(--ease-cool); }
.rehearsal.is-open { opacity: 1; }
.rehearsal__title { color: var(--verdigris); letter-spacing: .3em; }
.rehearsal__stage { position: relative; width: min(520px, 92vw); }
.rehearsal__stage svg { width: 100%; height: auto; display: block; transition: filter 1200ms var(--ease-cool); }
.reh-floor { fill: var(--raised); stroke: var(--ember-edge); }
.reh-sea { fill: color-mix(in srgb, var(--verdigris) 14%, transparent); }
.reh-wave { fill: none; stroke: var(--verdigris); stroke-width: 1.2; opacity: .5; animation: reh-drift 7s linear infinite; }
.reh-wave2 { opacity: .3; animation-duration: 11s; }
@keyframes reh-drift { to { transform: translateX(40px); } }
.reh-window, .reh-frame { fill: none; stroke: var(--content-ghost); stroke-width: 1.4; }
.reh-fire { fill: var(--glow-halo); animation: reh-breath 3s ease-in-out infinite; }
.reh-fire-core { fill: var(--kor); opacity: .55; }
.reh-bulb { fill: var(--amber, #FFB36B); opacity: .6; }
.reh-table { fill: color-mix(in srgb, var(--raised) 60%, var(--void)); stroke: var(--kor); stroke-width: 1.6; }
.reh-runner { fill: color-mix(in srgb, var(--kor) 22%, transparent); }
.reh-chair { fill: none; stroke: var(--content-ghost); stroke-width: 1.4; }
.reh-plate { fill: none; stroke: var(--content-tertiary); stroke-width: 1; }
.reh-candle-glow { fill: var(--glow-halo); animation: reh-flicker 1.6s ease-in-out infinite; }
.reh-candle-dot { fill: var(--kor-bright, #FF7A3D); }
.reh-flowers circle { fill: color-mix(in srgb, var(--kor) 55%, #fff 12%); opacity: .85; }
.reh-decor { fill: none; stroke: var(--ember-edge); stroke-dasharray: 3 6; }
.reh-cake { opacity: 0; transition: opacity 900ms var(--ease-cool); }
.reh-cake-body { fill: #F2E4D0; stroke: var(--kor); stroke-width: 1; }
.act-candle .reh-cake, .act-moment .reh-cake, .act-close .reh-cake { opacity: 1; }
.reh-musician circle { fill: none; stroke: var(--verdigris); stroke-width: 1.4; }
.reh-musician text { fill: var(--verdigris); font: 11px var(--font-mono); text-anchor: middle; animation: reh-float 2.4s ease-in-out infinite; }
.reh-photog circle { fill: none; stroke: var(--content-ghost); stroke-width: 1.2; }
.reh-photog rect { fill: var(--content-ghost); }
.reh-ring { opacity: 0; }
.reh-ring circle { fill: none; stroke: #F5D78E; stroke-width: 1.6; }
.reh-spark { fill: #F5D78E; transform-origin: 0 -9px; }
.act-moment .reh-ring { opacity: 1; animation: reh-ringin 1s var(--ease-emphatic); }
.act-moment .reh-spark { animation: reh-flicker 1s ease-in-out infinite; }
@keyframes reh-ringin { from { opacity: 0; transform: translate(160px, 96px) scale(.4); } }
@keyframes reh-flicker { 0%,100% { opacity: .9; } 38% { opacity: .45; } 64% { opacity: .75; } }
@keyframes reh-breath { 50% { opacity: .65; } }
@keyframes reh-float { 50% { transform: translateY(-4px); } }
.rehearsal__spot { position: absolute; inset: 0; pointer-events: none; opacity: 0; background: radial-gradient(circle at 50% 56%, transparent 12%, color-mix(in srgb, var(--void) 88%, transparent) 38%); transition: opacity 1200ms var(--ease-cool); }
.act-arrive .rehearsal__stage svg { filter: brightness(1.05); }
.act-candle .rehearsal__stage svg { filter: brightness(.82) saturate(1.05); }
.act-moment .rehearsal__stage svg { filter: brightness(.5) saturate(1.15); }
.act-moment .rehearsal__spot { opacity: 1; }
.act-close .rehearsal__stage svg { filter: brightness(.68); }
.rehearsal__song { position: absolute; top: var(--space-3); right: var(--space-3); font-family: var(--font-mono); font-size: var(--text-12); color: var(--verdigris); background: color-mix(in srgb, var(--void) 64%, transparent); border: 1px solid var(--ember-edge); padding: 4px 10px; border-radius: 999px; animation: reh-float 3s ease-in-out infinite; max-width: 70%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rehearsal__caption { font-family: var(--font-mono); font-size: var(--text-14); color: var(--content-primary); text-align: center; max-width: 46ch; min-height: 2.6em; }
.rehearsal__time { color: var(--kor); margin-right: .6em; }
.rehearsal__dots { display: flex; gap: 6px; }
.rehearsal__dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--content-ghost); transition: background 300ms var(--ease-cool), box-shadow 300ms var(--ease-cool); }
.rehearsal__dots i.is-on { background: var(--kor); box-shadow: 0 0 8px var(--glow-core); }
.rehearsal__controls { display: flex; gap: var(--space-3); }
@media (prefers-reduced-motion: reduce) { .reh-wave, .reh-candle-glow, .reh-fire, .reh-musician text, .rehearsal__song { animation: none; } .rehearsal { transition: none; opacity: 1; } }

/* ---- Geri sayım sayfası ---- */
.countdown { padding-block: var(--space-16); text-align: center; display: grid; justify-items: center; gap: var(--space-5); min-height: 70vh; align-content: center; }
.countdown__title { font-size: clamp(2.2rem, 7vw, 4rem); }
.countdown__grid { display: flex; gap: var(--space-4); flex-wrap: wrap; justify-content: center; margin-top: var(--space-4); }
.countdown__cell { min-width: 92px; padding: var(--space-5) var(--space-4); border-radius: var(--radius-subtle); background: var(--raised); box-shadow: inset 0 0 0 1px var(--ember-edge); display: grid; gap: var(--space-2); }
.countdown__cell strong { font-family: var(--font-mono); font-size: clamp(1.8rem, 6vw, 2.6rem); color: var(--kor); text-shadow: 0 0 18px var(--glow-halo); font-weight: 500; }
.countdown__note { margin-top: var(--space-6); }

/* ---- Sürpriz modu göz düğmesi ---- */
.disc-btn { width: 34px; height: 34px; flex: none; display: inline-grid; place-items: center; background: transparent; border: 1px solid var(--content-ghost); border-radius: 50%; color: var(--content-secondary); cursor: pointer; transition: color var(--dur-micro) var(--ease-cool), border-color var(--dur-micro) var(--ease-cool); }
.disc-btn svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; }
.disc-btn:hover { color: var(--kor-bright); border-color: var(--kor); }
.disc-btn[aria-pressed="true"] { color: var(--kor); border-color: var(--kor); }

/* ---- Köz izi her cihazda ---- */
.cursor-trail { display: block; }

/* ---- Masa adımı cilası: tek satır tarih çipleri, sıcak kat planı, rozetli panel ---- */
#flow-body { overflow-x: clip; position: relative; }
/* A1 — adım geçiş ışığı: occasion'a özel sıcak radyal parıltı, içeriğin ARKASINDA (z-index:-1) */
#flow-body::before { content: ''; position: absolute; inset: -8% -4%; z-index: -1; pointer-events: none; opacity: 0; background: radial-gradient(ellipse 70% 55% at 50% 26%, var(--occ-accent, var(--glow-core)), transparent 70%); }
#flow-body.occ-flash::before { animation: occ-flash 1.2s var(--ease-cool); }
@keyframes occ-flash { 0% { opacity: 0; } 32% { opacity: .55; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { #flow-body.occ-flash::before { animation: none; } }
/* D3 — "anların" sayacı (arşiv başlığı altında, ince) */
.archive__stat { font-family: var(--font-mono); font-size: var(--text-12); letter-spacing: var(--ls-caption); text-transform: uppercase; color: var(--kor-bright); margin-top: var(--space-2); }
/* E1 — ilk kullanım ipucu baloncuğu (Şef butonunun yakınında, tek seferlik) */
.chef-tip { position: fixed; top: 68px; right: 16px; z-index: 60; max-width: 240px; padding: var(--space-3) var(--space-4); background: color-mix(in srgb, var(--raised) 94%, transparent); border: 1px solid var(--ember-edge); border-radius: var(--radius-soft); box-shadow: var(--raised-shadow), var(--glow); color: var(--content-primary); font-size: var(--text-14); line-height: var(--lh-body); opacity: 0; transform: translateY(-6px); transition: opacity var(--dur-secondary) var(--ease-cool), transform var(--dur-secondary) var(--ease-cool); }
.chef-tip.is-in { opacity: 1; transform: none; }
.chef-tip::after { content: ''; position: absolute; top: -6px; right: 26px; width: 11px; height: 11px; background: inherit; border-left: 1px solid var(--ember-edge); border-top: 1px solid var(--ember-edge); transform: rotate(45deg); }
@media (max-width: 767px) { .chef-tip { top: 60px; right: 12px; left: 12px; max-width: none; } }
.date-row { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-block: 2px; margin-bottom: var(--space-5); -webkit-mask-image: linear-gradient(90deg, transparent, #000 14px, #000 calc(100% - 14px), transparent); mask-image: linear-gradient(90deg, transparent, #000 14px, #000 calc(100% - 14px), transparent); }
.date-row::-webkit-scrollbar { display: none; }
.date-row .chip { flex: none; }
.floorplan { padding: var(--space-5); background: radial-gradient(ellipse 90% 70% at 50% 0%, color-mix(in srgb, var(--verdigris) 7%, transparent), transparent 60%), radial-gradient(ellipse 80% 60% at 50% 100%, var(--glow-halo), transparent 70%), var(--surface); }
.fp-sea { fill: color-mix(in srgb, var(--verdigris) 18%, transparent); }
.fp-zone { font-size: 12.5px; fill: var(--content-tertiary); }
.fp-table circle { fill: color-mix(in srgb, var(--raised) 90%, var(--kor)); stroke: var(--content-tertiary); stroke-width: 1.6; }
.fp-table text { font-size: 13px; fill: var(--content-primary); }
.fp-table.is-selected circle { fill: var(--kor); stroke: var(--kor-bright); filter: drop-shadow(0 0 10px var(--glow-core)); }
.fp-table.is-selected text { fill: var(--void); }
.fp-table.is-occupied circle { fill: var(--void); stroke: var(--content-ghost); }
.fp-table.is-occupied text { fill: var(--content-ghost); }
.fp-legend { margin-top: var(--space-4); gap: var(--space-2); }
.fp-legend span { background: var(--raised); border: 1px solid var(--ember-edge); border-radius: 999px; padding: 6px 12px; }
.table-panel__photo { height: 180px; }
@media (min-width: 1024px) { .table-panel__photo { height: 160px; } }
.table-panel__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); }
.table-panel__badge { font-family: var(--font-mono); font-size: var(--text-14); color: var(--kor); border: 1px solid var(--ember-edge); border-radius: 999px; padding: 3px 12px; white-space: nowrap; }
.table-panel__sub { display: block; margin: 2px 0 var(--space-3); }
#time-row { margin-top: var(--space-5); }
#time-row .chip { flex: 1; min-width: 84px; }
