:root{
  /* Koyu gri palet */
  --bg-1:#12151b;
  --bg-2:#0e1217;
  --bg-3:#0b0f14;

  --text:#ebe6da;
  --text-2:#c9c0af;

  --gold1:#d8b874;
  --gold2:#bf8333;

  --shadow:0 40px 100px rgba(0,0,0,.55), 0 2px 12px rgba(0,0,0,.35);
  --glass-border: rgba(255,255,255,.18);
  --glass-bg: rgba(255,255,255,.07);
  --glass-bg-strong: rgba(255,255,255,.10);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  background:
    radial-gradient(1200px 700px at 15% -10%, rgba(255,210,120,.06), transparent 60%),
    radial-gradient(1200px 700px at 85% -10%, rgba(120,200,255,.05), transparent 60%),
    linear-gradient(180deg, var(--bg-1), var(--bg-2) 50%, var(--bg-3));
}

a{color:inherit}

/* 4K / HiDPI */
@media (min-width:2000px){
  :root{ --shadow:0 50px 120px rgba(0,0,0,.55), 0 3px 14px rgba(0,0,0,.35); }
  body{ font-size:18px; }
}

/* Arka plan kod akışı */
#codebg{
  position:fixed; inset:0; margin:0; pointer-events:none; z-index:0;
  font: 13px/1.4 "JetBrains Mono", monospace;
  color:rgba(160,255,220,.12);
  padding:20px; white-space:pre-wrap;
  mask-image: linear-gradient(to right, rgba(0,0,0,0), rgba(0,0,0,1) 15%, rgba(0,0,0,1) 85%, rgba(0,0,0,0));
  filter: saturate(115%) contrast(105%);
}

/* Neon atom camın altında ama görünür */
#atom{
  position:fixed; inset:0; margin:auto;
  width:min(40vmin, 360px); height:auto;
  z-index:0;                 /* codebg (0) üstünde, glass-layer (1) altında */
  pointer-events:none;
  filter: drop-shadow(0 0 10px rgba(255,255,255,.35))
          drop-shadow(0 0 24px rgba(255,150,80,.25));
  opacity:.9;
}
#atom .spin{
  transform-origin:100px 100px;
  animation: spin 18s linear infinite;
}
@keyframes spin{ to{ transform: rotate(360deg); } }

/* Glass layer */
.glass-layer{
  position:relative;
  z-index:1;
  isolation:isolate;
  max-width:min(1200px,92vw);
  margin:36px auto;
  border-radius:26px;
  padding:10px 0 0;
  background: rgba(255,255,255,.06);
  border:1px solid var(--glass-border);
  backdrop-filter: blur(22px) saturate(165%);
  -webkit-backdrop-filter: blur(22px) saturate(165%);
  box-shadow:0 20px 80px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.12);
}
.glass-layer::before{
  content:""; position:absolute; left:0; right:0; top:0; height:86px;
  border-top-left-radius:26px; border-top-right-radius:26px;
  background: linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,0));
}
.glass-layer::after{
  content:""; position:absolute; inset:0; border-radius:26px;
  background:
    radial-gradient(1200px 700px at 20% -10%, rgba(255,220,120,.08), transparent 60%),
    radial-gradient(1200px 700px at 80% -10%, rgba(120,200,255,.07), transparent 60%),
    repeating-linear-gradient(45deg, rgba(255,255,255,.02) 0 2px, rgba(0,0,0,0) 2px 4px);
  mix-blend-mode: soft-light; opacity:.55;
}
/* 🔧 Tıklama engellemesini kaldır */
.glass-layer::before,
.glass-layer::after{
  pointer-events:none;
}

/* Topbar */
.topbar.center{
  position:sticky; top:0; z-index:10;
  display:flex; justify-content:center; align-items:center;
  padding:20px 26px 6px;
  background:transparent;
}
/* --- LOGO (küçük, fixed ve ana ekranla hizalı) --- */
.topbar.center {
  position: fixed;
  top: 20px;                /* biraz aşağı, ekranın üstüne yapışık değil */
  left: 0;
  width: 100%;
  z-index: 50;
  display: flex;
  justify-content: center;
  background: transparent;  /* cam efekt zaten var, tekrar etmiyoruz */
  padding: 0;
}

.brand {
  display: flex;
  align-items: center;
  justify-content: center;
}

.logo-img {
  height: 87px;             /* küçük, ana ekranla orantılı */
  width: auto;
  display: block;
  filter: drop-shadow(0 0 8px rgba(255, 200, 120, 0.4));
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* küçük ekranlarda da düzgün hizalansın */
@media (max-width: 600px) {
  .logo-img { height: 36px; }
}

/* Hero */
.hero{ min-height:66vh; display:grid; place-items:center; padding:36px 26px 14px; text-align:center }
.overline{ letter-spacing:.28em; text-transform:uppercase; color:var(--text-2); font-size:11px; }
.typewrap{ margin:.2em 0 .15em; font-size:clamp(42px,6.5vw,78px); line-height:1.05; }
.retro-italic{ font-family:'Oxanium',sans-serif; font-style:italic; transform:skewX(-6deg); letter-spacing:.6px; }
.gradient-gold{ background:linear-gradient(180deg,var(--gold1),var(--gold2)); -webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:0 3px 18px rgba(199,132,41,.16); }
.caret{ color:var(--gold2); animation:blink 1s steps(2,start) infinite; }
@keyframes blink{ 50%{opacity:0} }
.tagline{ color:var(--text-2); max-width:880px; margin:0 auto 22px; filter:contrast(105%); }

/* CTA Button */
.btn{ border:none; cursor:pointer; border-radius:16px; padding:14px 18px; font-weight:800; transition:transform .06s, box-shadow .28s, background .28s; }
.btn.glossy{ position:relative; overflow:hidden; background:linear-gradient(#1b2030,#131a27) padding-box, linear-gradient(#3a4c8f,#0f1322) border-box; border:1px solid transparent; color:#fff; box-shadow:inset 0 2px 0 rgba(255,255,255,.14),0 14px 40px rgba(0,0,0,.55); }
.btn.glossy:active{ transform:translateY(1px) scale(.99); }
.attention{ animation:bob 5s ease-in-out infinite; }
@keyframes bob{ 0%{transform:translateY(0) scale(1)} 6%{transform:translateY(-2px) scale(1.02)} 12%{transform:translateY(0) scale(1)} 100%{transform:translateY(0) scale(1)} }
.attention::before{ content:""; position:absolute; inset:-2px; border-radius:16px; background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,0) 45%,rgba(255,255,255,.5) 50%,rgba(255,255,255,0) 55%,transparent 100%); transform:translateX(-130%); animation:sheen 5s linear infinite; }
@keyframes sheen{ 0%{transform:translateX(-130%);opacity:0} 6%{transform:translateX(140%);opacity:1} 10%{opacity:0} 100%{transform:translateX(140%);opacity:0} }
.attention::after{ content:""; position:absolute; inset:-2px; border-radius:16px; box-shadow:0 0 0 0 rgba(255,170,60,.32); animation:pulse5 5s ease-out infinite; }
@keyframes pulse5{ 0%{box-shadow:0 0 0 0 rgba(255,170,60,.32)} 6%{box-shadow:0 0 0 14px rgba(255,170,60,0)} 100%{box-shadow:0 0 0 0 rgba(255,170,60,0)} }

/* Mini sheet (glass) */
.mini-sheet{
  position:absolute; top:calc(50% + 118px); left:50%;
  transform:translate(-50%,-6px) scale(.985);
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter: blur(20px) saturate(175%);
  -webkit-backdrop-filter: blur(20px) saturate(175%);
  border-radius:18px; padding:8px; width:min(360px,92vw);
  box-shadow:var(--shadow); display:none;
  animation:sheetIn .24s ease forwards;
}
@keyframes sheetIn{ from{opacity:.4;transform:translate(-50%,-10px) scale(.98)} to{opacity:1;transform:translate(-50%,0) scale(1)} }
.mini-item{ width:100%; padding:14px 16px; text-align:center; border:none; background:transparent; color:#fff; font-weight:800; border-radius:14px; cursor:pointer; }
.mini-item:hover{ background:rgba(255,255,255,.12); }
.mini-item:active{ transform:translateY(1px); }

/* Modals (glass) */
.modal{ position:fixed; inset:0; display:none; place-items:center; background:rgba(0,0,0,.45); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); z-index:1000; }
.modal.show{ display:grid; }
.panel{
  width:min(960px,92vw);
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.20);
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  border-radius:20px;
  box-shadow:0 24px 80px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.10);
  transform:translateY(10px); animation:floatIn .28s ease forwards;
}
@keyframes floatIn{ from{transform:translateY(18px);opacity:.96} to{transform:translateY(0);opacity:1} }
.panel .x{ position:absolute; right:16px; top:12px; background:transparent; border:1px solid rgba(255,255,255,.25); color:#fff; border-radius:10px; width:36px; height:30px; cursor:pointer; }
.panel-body{ padding:32px 22px 26px; }
.panel-body h2{ margin:0 0 10px; font-family:'Playfair Display',serif; background:linear-gradient(90deg,#f6e7c6,#e6c07b,#b96b2d); -webkit-background-clip:text; color:transparent; text-shadow:0 1px 10px rgba(0,0,0,.25); }
.muted{ color:var(--text-2) }
.action-grid{ display:flex; gap:12px; margin:14px 0 6px; flex-wrap:wrap; }
.btn.outline{ background:transparent; color:var(--text); border:1px solid rgba(255,255,255,.18); border-radius:12px; padding:10px 14px; font-weight:700; }
.btn.outline:hover{ background:rgba(255,255,255,.08) }
.save-msg{ margin-top:10px; color:#9be995; min-height:1.2em; }

/* Games */
.games-list{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:760px){ .games-list{ grid-template-columns:repeat(2,1fr);} }
.game-card{
  background:linear-gradient(180deg,#161a23 0%,#111620 100%);
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px; padding:18px;
  transition: transform .12s ease, box-shadow .25s ease, border-color .25s ease;
  box-shadow:0 14px 34px rgba(0,0,0,.38);
}
.game-card:hover{ transform:translateY(-2px); border-color:rgba(255,255,255,.16); box-shadow:0 20px 44px rgba(0,0,0,.45); }
.card-title{ font-weight:900; margin-bottom:4px }
.card-sub{ color:var(--text-2); font-size:13px; }
.game-details{ max-height:0; overflow:hidden; transition:max-height .38s cubic-bezier(.25,.84,.32,1); }
.game-card.open .game-details{ max-height:320px; animation:detailsIn .35s ease; }
@keyframes detailsIn{ from{opacity:.65; transform:translateY(-4px)} to{opacity:1; transform:translateY(0)} }
.game-details h3{ background:linear-gradient(90deg,#f6e7c6,#e6c07b,#b96b2d); -webkit-background-clip:text; color:transparent; }
.soon{ margin-top:10px; display:inline-block; padding:6px 10px; border:1px dashed rgba(255,255,255,.25); border-radius:999px; font-size:12px; color:var(--text-2); }

/* Toast & Footer */
.toast{ position:fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(20px); background:#121726; border:1px solid rgba(255,255,255,.12); color:#e5ffe5; padding:12px 16px; border-radius:12px; box-shadow:var(--shadow); opacity:0; pointer-events:none; transition: opacity .25s, transform .25s; }
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
.footer{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; padding:32px 18px 42px; color:var(--text-2); }

/* === iOS-26 tarzı Game Chooser Modal === */
.games-grid-chooser{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:22px;
  padding:20px 6px 10px;
  justify-items:center;
}

.game-tile{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  width:200px;
  padding:18px 12px 26px;
  border-radius:22px;
  background:var(--glass-bg-strong);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(18px) saturate(180%);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  cursor:pointer;
  box-shadow:0 10px 40px rgba(0,0,0,.45);
  transition:transform .25s ease, box-shadow .3s ease, background .3s ease;
  overflow: visible; /* ikon altı panel için gerekli */
}
.game-tile:hover{
  transform:translateY(-4px) scale(1.02);
  background:rgba(255,255,255,.12);
  box-shadow:0 16px 50px rgba(0,0,0,.55);
}
.tile-icon{
  width:84px; height:84px; object-fit:contain;
  border-radius:20px;
  margin-bottom:10px;
  filter:drop-shadow(0 0 8px rgba(255,255,255,.25));
}
.tile-name{
  font-weight:800;
  font-family:'Oxanium',sans-serif;
  letter-spacing:.4px;
  margin-bottom:6px;
  text-align:center;
}
.tile-status{
  font-size:12px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.25);
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.tile-status.testing{ border-color:#ffe083; color:#ffe083; }
.tile-status.soon{ border-color:#a6c0ff; color:#a6c0ff; }

/* --- (A) Hover yazısını KAPAT --- */
.tile-summary{
  display:none !important;
  opacity:0 !important;
  pointer-events:none !important;
  position:absolute;
  left:0; right:0; bottom:6px;
  padding:10px 14px;
  font-size:13px;
  color:var(--text-2);
  background:rgba(0,0,0,.55);
  border-radius:0 0 22px 22px;
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  transform:translateY(10px);
  transition:none;
}
/* Önceden açan hover/focus kurallarını etkisizleştir */
.game-tile:hover .tile-summary,
.game-tile:focus .tile-summary,
.game-tile:active .tile-summary,
.game-tile .tile-summary:not([hidden]){
  display:none !important;
  opacity:0 !important;
  transform:none !important;
}

/* --- (B) Oyun isimleri: altın-beyaz parlak --- */
.games-grid-chooser .tile-name{
  background: linear-gradient(180deg, #fffbe8 0%, var(--gold1) 55%, var(--gold2) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-shadow:
    0 2px 12px rgba(255, 224, 130, .25),
    0 0 24px rgba(191, 131, 51, .20);
}

/* --- (C) İkon altı panel (şimdilik görünmez, JS ile açacağız) --- */
.tile-panel{
  position:absolute;
  top:110%; left:50%;
  transform: translateX(-50%) translateY(8px);
  width:min(420px, 86vw);
  padding:16px 18px;
  border-radius:18px;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter: blur(20px) saturate(175%);
  -webkit-backdrop-filter: blur(20px) saturate(175%);
  box-shadow:0 20px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.10);
  display:none;
  z-index: 400;
}
.tile-panel.show{
  display:block;
  animation: panelIn .24s ease;
}
@keyframes panelIn{
  from{ opacity:.0; transform: translateX(-50%) translateY(16px) scale(.98) }
  to  { opacity:1;  transform: translateX(-50%) translateY(8px)  scale(1) }
}
.tile-panel h3{
  margin:0 0 8px;
  font-family:'Playfair Display',serif;
  background:linear-gradient(90deg,#f6e7c6,#e6c07b,#b96b2d);
  -webkit-background-clip:text;
  color:transparent;
}
.tile-panel p{ margin:0; color:var(--text-2); font-size:14px; }

/* Küçük ekranlar */
@media(max-width:600px){
  .games-grid-chooser{grid-template-columns:1fr 1fr;gap:14px;}
  .game-tile{width:100%;padding:14px 8px;}
  .tile-icon{width:70px;height:70px;}
}

/* ========================= */
/* (1) Mini Sheet iyileştirme*/
/* ========================= */
.mini-sheet{ z-index:200; } /* diğer içerikler üstünde dursun */

/* ========================= */
/* (2) Responsive dokunuşlar */
/* ========================= */
@media (max-width:600px){
  /* Atom biraz küçülsün ve opaklığı azalsın */
  #atom{ width:min(52vmin, 300px); opacity:.85; }

  /* Mini sheet biraz daha yukarı gelsin ki parmakla erişim kolay olsun */
  .mini-sheet{ top:calc(50% + 96px); }
}

/* Klavye erişimi için net odak halkaları */
button:focus-visible,
.btn:focus-visible,
.game-tile:focus-visible,
.mini-item:focus-visible,
.panel .x:focus-visible{
  outline:2px solid rgba(255,255,255,.45);
  outline-offset:2px;
  box-shadow:0 0 0 3px rgba(255,255,255,.12);
}

/* ========================= */
/* (4) Açılış animasyonu     */
/* ========================= */
/* Geçiş animasyonlarını tanımla */
#atom,
.glass-layer,
.topbar.center,
.hero,
.footer,
#codebg{
  transition: opacity .6s ease, transform .6s ease, filter .6s ease;
}

/* preload varken gizle + hafif blur/offset */
body.preload #atom,
body.preload .glass-layer,
body.preload .topbar.center,
body.preload .hero,
body.preload .footer{
  opacity:0;
  transform: translateY(8px) scale(.995);
  filter: blur(6px);
}

#codebg{ opacity:1; transition-duration:.8s; }
body.preload #codebg{ opacity:0; }

/* Animasyon sonrası (JS load ile .preload kalkınca) otomatik görünür */
/* ========================= */
/* Görsel katman düzeltmesi  */
/* ========================= */
.games-grid-chooser,
.game-tile,
.tile-icon {
  position: relative;
  z-index: 300; /* cam katmanların üstünde dursun */
}
/* ========================= */
/* Görsel boyut garantisi     */
/* ========================= */
.tile-icon {
  display: block;
  width: 84px !important;
  height: 84px !important;
  min-width: 64px;
  min-height: 64px;
  object-fit: contain;
}
