/* =============================================================
   oyun.css — OYUN EKRANLARININ ORTAK STİLLERİ
   Yeni oyunlar da bu dosyayı kullanabilir: ekran geçişleri,
   üst bilgi çubuğu (hud), bitiş ekranı hepsinde aynı.
   ============================================================= */

/* ---------- oyun başlığı ---------- */
.gamehead{margin-top:26px}
.gamehead h1{
  font-family:var(--f-display);font-weight:800;font-size:clamp(30px,7vw,44px);
  margin:0;line-height:.96;letter-spacing:.01em;text-wrap:balance;
}
.gamehead p{font-size:13.5px;color:var(--muted);margin:8px 0 0;max-width:40ch}

/* ---------- ekran geçişleri ---------- */
.screen{display:none;margin-top:22px}
.screen.live{display:block}

/* ---------- mod kartları (oyun içi menü) ---------- */
.modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px;margin-top:20px}
.mode{
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-buyuk);
  padding:22px 20px 20px;display:flex;flex-direction:column;gap:10px;
}
.mode .no{font-family:var(--f-body);font-weight:600;font-size:13px;color:var(--vurgu);letter-spacing:.04em}
.mode h3{font-family:var(--f-display);font-weight:800;font-size:30px;margin:0;line-height:1;letter-spacing:.01em}
.mode p{margin:0;font-size:14px;color:var(--muted)}
.mode .spacer{flex:1}
.mode .best{
  font-family:var(--f-mono);font-size:12px;color:var(--muted);
  border-top:1px dashed var(--line);padding-top:10px;margin-top:2px;
}
.mode .best b{color:var(--text);font-weight:600}

.note{margin-top:26px;font-size:13px;color:var(--muted);border-left:2px solid var(--green-deep);padding-left:12px;max-width:66ch}

/* ---------- üst bilgi çubuğu ---------- */
.hud{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;background:var(--bg-2);
}
.hud .stat{font-family:var(--f-mono);font-size:12px;color:var(--muted);letter-spacing:.06em;margin-right:18px}
.hud .stat b{color:var(--text);font-size:17px;font-weight:600;margin-left:6px;font-variant-numeric:tabular-nums}
.hud .stat.hi b{color:var(--green)}
.flame{opacity:0;transition:opacity .3s;margin-left:6px}
.flame.on{opacity:1}
.linkbtn{
  background:none;border:none;color:var(--muted);font:500 13px var(--f-body);cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;padding:4px;
}
@media (hover:hover){ .linkbtn:hover{color:var(--text)} }

/* ---------- düello ekranı ---------- */
.duel{display:grid;grid-template-columns:1fr 54px 1fr;margin-top:14px;align-items:stretch}
.pane{
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);
  padding:26px 20px 22px;display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:10px;min-height:340px;justify-content:center;transition:border-color .25s;
}
.vs{
  display:flex;align-items:center;justify-content:center;position:relative;
  font-family:var(--f-display);font-weight:800;font-size:19px;color:var(--green);letter-spacing:.08em;
}
.vs::before,.vs::after{content:"";position:absolute;left:50%;width:1px;background:var(--line);height:calc(50% - 26px)}
.vs::before{top:0}
.vs::after{bottom:0}

.artist{
  font-family:var(--f-display);font-weight:800;font-size:clamp(25px,5vw,35px);
  line-height:1.02;margin:6px 0 0;text-wrap:balance;letter-spacing:.01em;
}
.count{
  font-family:var(--f-mono);font-weight:600;font-size:clamp(32px,7.5vw,50px);line-height:1;
  font-variant-numeric:tabular-nums;color:var(--green);min-height:1em;
}
.count.q{color:var(--line)}
.caption{font-size:13px;color:var(--muted);margin:0}
.meter{width:100%;max-width:250px;height:5px;background:var(--line-soft);border-radius:3px;overflow:hidden}
.meter i{
  display:block;height:100%;width:0;border-radius:3px;
  background:linear-gradient(90deg,var(--green-deep),var(--green) 65%,var(--lime));
  transition:width .7s cubic-bezier(.2,.8,.3,1);
}

.picks{display:flex;flex-direction:column;gap:9px;width:100%;max-width:250px;margin-top:4px}
.pick{
  font:600 16px/1 var(--f-body);background:transparent;color:var(--text);
  border:1px solid var(--line);border-radius:var(--r);padding:15px 18px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:9px;transition:.15s;
}
/* Üzerine gelince yeşillenme sadece fareli cihazlarda. Telefonda dokunulan düğme
   "üzerinde" kalıyordu; bir sonraki turda o düğme seçili gibi yeşil görünüyordu. */
@media (hover:hover){ .pick:hover:not(:disabled){border-color:var(--green);color:var(--green);background:var(--line-soft)} }
.pick:active:not(:disabled){border-color:var(--green);color:var(--green)}
.pick:disabled{opacity:.3;cursor:default}
.pick .arr{font-size:18px}

.verdict{font-family:var(--f-display);font-weight:800;font-size:25px;letter-spacing:.02em;min-height:1.1em;margin:2px 0 0}
.verdict.ok{color:var(--green)}
.verdict.no{color:var(--bad)}
.pane.ok{border-color:var(--green)}
.pane.no{border-color:var(--bad)}
.gap{font-family:var(--f-mono);font-size:12px;color:var(--muted);min-height:1.2em;margin:0}

/* ---------- tahmin ekranı ---------- */
.solo{
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);
  padding:30px 20px 26px;margin-top:14px;display:flex;flex-direction:column;
  align-items:center;text-align:center;gap:12px;
}
.guesswrap{position:relative;width:100%;max-width:340px;margin-top:4px}
.guessrow{display:flex;gap:8px;width:100%}
input[type="text"]{
  flex:1;min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);
  color:var(--text);font:600 20px var(--f-mono);padding:13px 15px;text-align:center;
  letter-spacing:.04em;transition:border-color .2s;
}
input[type="text"]::placeholder{color:var(--muted);opacity:.6;font-weight:500}
input[type="text"]:focus{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}
input[type="text"].err{border-color:var(--bad)}
.go{
  background:var(--vurgu);color:var(--vurgu-yazi);border:none;border-radius:var(--r);
  font:700 15px var(--f-body);padding:0 20px;cursor:pointer;flex:none;
}
@media (hover:hover){ .go:hover{background:var(--vurgu-acik)} }
.go:active:not(:disabled){background:var(--vurgu-acik)}
.go:disabled{opacity:.4;cursor:default}
.hint{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);letter-spacing:.03em}

/* anlık puan balonu */
.pop{
  position:absolute;left:50%;top:-6px;transform:translate(-50%,0);
  font-family:var(--f-display);font-weight:800;font-size:44px;letter-spacing:.01em;
  pointer-events:none;opacity:0;white-space:nowrap;text-shadow:0 2px 18px rgba(0,0,0,.6);
}
.pop.fire{animation:popup 1.5s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes popup{
  0%  {opacity:0;transform:translate(-50%,16px) scale(.7)}
  14% {opacity:1;transform:translate(-50%,0)    scale(1.14)}
  26% {           transform:translate(-50%,-6px) scale(1)}
  70% {opacity:1}
  100%{opacity:0;transform:translate(-50%,-72px) scale(1)}
}

.result{width:100%;max-width:420px;border-top:1px solid var(--line);padding-top:16px;margin-top:8px;display:none}
.result.live{display:block}
.rrow{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--f-mono);font-size:14px;padding:5px 0}
.rrow span{color:var(--muted)}
.rrow b{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}

/* tur tur sonuç şeridi */
.track{display:flex;gap:3px;flex-wrap:wrap;justify-content:center;margin-top:16px}
.track i{width:14px;height:14px;border-radius:3px;background:var(--line-soft);display:block}
.track i.s3{background:var(--green)}
.track i.s2{background:var(--lime)}
.track i.s1{background:var(--gold)}
.track i.s0{background:var(--bad)}

/* ---------- bitiş ekranı ---------- */
.over{
  background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);
  padding:40px 24px;text-align:center;margin-top:14px;
}
.over h2{font-family:var(--f-display);font-weight:800;font-size:30px;margin:0 0 4px;letter-spacing:.01em}
.over .big{
  font-family:var(--f-mono);font-weight:600;font-size:clamp(52px,14vw,86px);line-height:1;
  color:var(--green);font-variant-numeric:tabular-nums;
}
.over .sub{color:var(--muted);margin:10px 0 0;font-size:14px}
.over .msg{color:var(--text);font-size:16px;margin:14px auto 0;max-width:46ch}
.overbtns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:24px}

/* ---------- telefon: düello tek ekrana sığsın ----------
   Önceden iki sanatçı kutusu alt alta tam boy duruyordu; "Daha yüksek / Daha düşük"
   düğmeleri ekranın altında kalıyor, her turda aşağı kaydırmak gerekiyordu.
   Şimdi soldaki (bilinen) sanatçı yatay ince bir şerit, düğmeler yan yana. */
@media (max-width:720px){
  .duel{grid-template-columns:1fr;gap:0;margin-top:10px}
  .vs{height:26px;font-size:15px}
  .vs::before,.vs::after{width:calc(50% - 24px);height:1px;top:50%;bottom:auto}
  .vs::before{left:0}
  .vs::after{right:0;left:auto}
  .pane{min-height:0;padding:14px 14px 16px;gap:6px}
  .pane .avatar{width:52px;height:52px;font-size:22px}
  .artist{font-size:clamp(22px,6.4vw,28px);margin:0}
  .count{font-size:clamp(28px,8.5vw,38px)}
  .caption{font-size:12.5px}
  .verdict{font-size:21px}

  /* soldaki sanatçı: yuvarlak solda, isim ve sayı sağında */
  #pane-a{
    display:grid;grid-template-columns:52px 1fr;column-gap:12px;row-gap:3px;
    align-items:center;justify-items:start;text-align:left;
  }
  #pane-a .avatar{grid-row:1 / span 4}
  #pane-a .meter{max-width:none}

  .picks{flex-direction:row;max-width:none;gap:8px;margin-top:6px}
  .pick{flex:1;padding:16px 8px;min-height:54px}

  .hud{padding:8px 12px}
  .hud .stat{margin-right:12px}
  .solo{padding:22px 16px 20px}
}
