:root {
  --blacktop: #0A0A0A; --zemin-2: #121314; --zemin-3: #1A1C1E; --cizgi: #26292C;
  --yazi: #F4F8FB; --gri: #9EA7B0; --fusion: #D7EFFF;
  --yazi-tipi: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; height: 100%; overflow: hidden; }
body { background: var(--blacktop); color: var(--yazi); font-family: var(--yazi-tipi); font-size: 15px; line-height: 1.4; -webkit-font-smoothing: antialiased; }
:focus-visible { outline: 2px solid var(--fusion); outline-offset: 2px; }
.soluk { color: var(--gri); }
.gizli { display: none !important; }

#sahne { position: fixed; inset: 0; touch-action: none; }
#sahne canvas { display: block; }

.ust { position: fixed; top: 0; left: 0; right: 0; display: flex; align-items: center; gap: 1rem; padding: .75rem 1rem; padding-top: max(.75rem, env(safe-area-inset-top));
  background: linear-gradient(var(--blacktop), color-mix(in srgb, var(--blacktop) 0%, transparent)); pointer-events: none; z-index: 3; }
.ust > * { pointer-events: auto; }
.geri { color: var(--yazi); text-decoration: none; font-weight: 500; padding: .35rem .7rem; border: 1px solid var(--cizgi); border-radius: 999px; background: color-mix(in srgb, var(--blacktop) 80%, transparent); white-space: nowrap; }
.geri:hover { border-color: var(--fusion); }
.baslik { display: flex; flex-direction: column; min-width: 0; }
.baslik b { font-weight: 600; font-size: 1.05rem; letter-spacing: -0.01em; }
.baslik span { font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.pusula { position: fixed; right: 1rem; top: max(4.2rem, calc(env(safe-area-inset-top) + 3.6rem)); width: 44px; height: 44px; z-index: 2; }
.pusula svg { width: 100%; height: 100%; }
.pusula circle { fill: color-mix(in srgb, var(--blacktop) 75%, transparent); stroke: var(--cizgi); stroke-width: 1.2; }
.pusula path { fill: var(--fusion); }
.pusula text { fill: var(--yazi); font: 600 7px var(--yazi-tipi); text-anchor: middle; dominant-baseline: central; }

.yukleme { position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem; z-index: 4; background: var(--blacktop); transition: opacity .4s; }
.yukleme.bitti { opacity: 0; pointer-events: none; }
.etiket { margin: 0; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fusion); }
.yukleme p { margin: 0; }
.cubuk { width: min(260px, 70vw); height: 2px; background: var(--cizgi); }
.cubuk span { display: block; height: 100%; width: 0; background: var(--fusion); transition: width .2s; }

.panel { position: fixed; left: 50%; bottom: max(1rem, env(safe-area-inset-bottom)); transform: translateX(-50%); width: min(560px, calc(100vw - 2rem));
  display: flex; flex-direction: column; gap: .55rem; padding: .8rem .9rem; z-index: 3;
  background: color-mix(in srgb, var(--zemin-2) 92%, transparent); border: 1px solid var(--cizgi); border-radius: 14px; backdrop-filter: blur(10px); }
.satir { display: flex; align-items: center; gap: .7rem; min-width: 0; }
.satir .ad { flex: 0 0 3.6rem; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gri); }
.katlar { display: flex; gap: .3rem; overflow-x: auto; scrollbar-width: none; min-width: 0; }
.katlar::-webkit-scrollbar { display: none; }
.katlar button, .dugme { font: 500 .85rem var(--yazi-tipi); color: var(--yazi); background: var(--zemin-3); border: 1px solid var(--cizgi); border-radius: 999px; padding: .38rem .75rem; cursor: pointer; white-space: nowrap; }
.katlar button:hover, .dugme:hover { border-color: var(--gri); }
.katlar button[aria-pressed="true"], .dugme[aria-pressed="true"] { background: var(--fusion); color: var(--blacktop); border-color: var(--fusion); }
.dugme.ikincil { background: transparent; margin-left: auto; }
.dugme:disabled { opacity: .45; cursor: default; }
.dugmeler { flex-wrap: wrap; gap: .4rem; }
input[type=range] { flex: 1; accent-color: var(--fusion); min-width: 0; }
.ipucu { margin: 0; font-size: .75rem; }

.mekan { font: 500 11px var(--yazi-tipi); color: var(--blacktop); background: color-mix(in srgb, var(--fusion) 90%, transparent); padding: 2px 6px; border-radius: 4px; white-space: nowrap; pointer-events: none; }

.hata { max-width: 32rem; text-align: center; padding: 0 1.5rem; }

@media (max-width: 600px) {
  body { font-size: 14px; }
  .ust { padding: .6rem .75rem; }
  .baslik span { display: none; }
  .panel { padding: .65rem .7rem; gap: .45rem; width: calc(100vw - 1.2rem); bottom: max(.6rem, env(safe-area-inset-bottom)); }
  .satir .ad { flex-basis: 2.8rem; font-size: .7rem; }
  .katlar button, .dugme { padding: .34rem .62rem; font-size: .8rem; }
  .ipucu { display: none; }
  .pusula { width: 38px; height: 38px; right: .75rem; }
}
