  :root{
    --hue: 262;
    --card-bg: rgba(255,255,255,.05);
    --card-border: rgba(255,255,255,.12);
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ height:100%; }
  body{
    font-family:"Inter","Segoe UI",system-ui,sans-serif;
    color:#eef0ff;
    background:#0b0d17;
    min-height:100%;
    overflow-x:hidden;
  }
  /* gradyanlar viewport'a sabit katmanda: sayfa uzunluğundan bağımsız,
     kaydırırken tekrarlamaz ve hep aynı köşelerden ışır */
  body::before{
    content:"";
    position:fixed; inset:0; z-index:-1; pointer-events:none;
    background:
      radial-gradient(1200px 700px at 20% -10%, hsla(var(--hue),70%,30%,.45), transparent 60%),
      radial-gradient(1000px 600px at 90% 110%, hsla(calc(var(--hue) + 60),70%,25%,.35), transparent 60%),
      #0b0d17;
    transition: background 1.2s ease;
  }
  main{ max-width:980px; margin:0 auto; padding:8px 20px 60px; }
  header{ text-align:center; padding:38px 16px 6px; }
  header h1{
    font-family:"Sora","Inter",sans-serif;
    font-size:clamp(24px,4vw,36px); font-weight:700; letter-spacing:-.3px;
    color:#f5f6ff;
  }
  header p{ opacity:.6; margin-top:10px; font-size:15.5px; }

  /* üst gezinme */
  .nav{
    position:sticky; top:0; z-index:40;
    background:rgba(11,13,23,.78); backdrop-filter:blur(14px);
    border-bottom:1px solid rgba(255,255,255,.07);
  }
  .nav-inner{
    max-width:980px; margin:0 auto; padding:12px 20px;
    display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap;
  }
  .logo{
    font-family:"Sora","Inter",sans-serif; font-weight:800; font-size:19px;
    color:#fff; text-decoration:none; letter-spacing:.2px;
  }
  .logo span{
    background:linear-gradient(90deg,#ffd66e,#ff9ecf);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .nav-right{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .acct{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  #langSel{
    background:var(--card-bg); color:#eef0ff; border:1px solid var(--card-border);
    border-radius:999px; padding:7px 12px; font-size:13px; cursor:pointer; outline:none;
    font-family:inherit;
  }
  #langSel option{ background:#141628; color:#eef0ff; }

  /* bölüm başlıkları */
  .section-title{
    font-family:"Sora","Inter",sans-serif; font-size:17px; font-weight:700;
    margin:34px 2px 2px;
  }

  /* altbilgi */
  footer{
    border-top:1px solid rgba(255,255,255,.07);
    margin-top:30px; padding:26px 20px 34px;
  }
  .foot-inner{
    max-width:980px; margin:0 auto;
    display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap;
    font-size:13px; opacity:.55;
  }
  .foot-links{ display:flex; gap:18px; }
  .foot-links a{ color:#eef0ff; text-decoration:none; }
  .foot-links a:hover{ text-decoration:underline; }
  .badge{ background:linear-gradient(135deg,#ffd66e,#ff9ecf); color:#101223;
          border-radius:999px; padding:4px 12px; font-weight:700; font-size:12px; }
  .banner{ max-width:940px; margin:12px auto 0; padding:10px 18px;
           border:1px solid rgba(255,214,110,.4); background:rgba(255,214,110,.08);
           border-radius:14px; font-size:13.5px; display:flex; gap:12px;
           align-items:center; justify-content:center; flex-wrap:wrap; }

  /* kontrol */
  .controls{ display:flex; justify-content:center; align-items:center; gap:12px; margin:18px 0 8px; flex-wrap:wrap; }
  #playBtn{
    font-size:18px; font-weight:700; color:#101223;
    background:linear-gradient(135deg,#ffd66e,#ff9ecf);
    border:none; border-radius:999px; padding:14px 34px; cursor:pointer;
    box-shadow:0 6px 30px hsla(var(--hue),80%,60%,.35);
    transition:transform .12s ease;
  }
  #playBtn:active{ transform:scale(.96); }
  #dlBtn{
    font-size:15px; color:#eef0ff; background:transparent;
    border:1px solid var(--card-border); border-radius:999px;
    padding:13px 24px; cursor:pointer; transition:border-color .2s, opacity .2s;
  }
  #dlBtn:hover{ border-color:rgba(255,255,255,.35); }
  #dlBtn:disabled{ opacity:.5; cursor:wait; }

  /* palet */
  .cat-title{
    margin:22px 2px 10px; font-size:12px; font-weight:700;
    letter-spacing:2px; text-transform:uppercase; opacity:.5;
  }
  .cat-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(112px,1fr)); gap:10px; }
  .card{
    position:relative; user-select:none; cursor:pointer; text-align:center;
    background:var(--card-bg); border:1px solid var(--card-border);
    border-radius:16px; padding:12px 6px 10px;
    transition:transform .15s ease, background .2s, border-color .2s, box-shadow .2s, opacity .2s;
  }
  .card:hover{ transform:translateY(-2px); }
  .card .emoji{ font-size:27px; display:block; filter:grayscale(.9) opacity(.55); transition:filter .25s; }
  .card .name{ font-size:13px; font-weight:700; margin-top:5px; }
  .card .desc{ font-size:10.5px; opacity:.55; margin-top:2px; }
  .card.on{ background:hsla(var(--hue),60%,55%,.24); border-color:hsla(var(--hue),85%,72%,.85);
            box-shadow:0 0 22px hsla(var(--hue),80%,60%,.3), inset 0 0 14px hsla(var(--hue),80%,70%,.12); }
  .card.on .emoji{ filter:none; }
  .card.queued{ border-color:rgba(255,214,110,.7); animation:breathe 1.1s ease-in-out infinite; }
  .card.queued .emoji{ filter:grayscale(.3); }
  .card.queued::after{
    content:"geliyor…"; position:absolute; top:5px; right:7px; font-size:9px;
    color:#ffd66e; letter-spacing:.4px;
  }
  .card.locked{ opacity:.42; }
  .card.locked-premium::after{
    content:"🔒"; position:absolute; top:5px; right:7px; font-size:12px;
  }
  .card.locked-user::after{
    content:"👤"; position:absolute; top:5px; right:7px; font-size:12px; opacity:.9;
  }
  @keyframes breathe{ 50%{ box-shadow:0 0 18px rgba(255,214,110,.35);} }
  .card.hit{ animation:pulse .22s ease-out; }
  @keyframes pulse{ 0%{ transform:scale(1.07); } 100%{ transform:scale(1);} }

  /* melodi */
  .melody{ margin-top:38px; }
  .melody-head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:10px; flex-wrap:wrap; gap:8px; }
  .melody-head h2{ font-size:18px; font-weight:700; }
  .melody-head button{
    background:transparent; color:#eef0ff; opacity:.7; border:1px solid var(--card-border);
    border-radius:999px; padding:6px 16px; font-size:13px; cursor:pointer;
  }
  .melody-head button:hover{ opacity:1; }
  .melody-head button.sel{
    opacity:1; color:#ffd66e; border-color:rgba(255,214,110,.65);
    box-shadow:0 0 12px rgba(255,214,110,.2);
  }

  .chips{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:12px; }
  .chips-label{ font-size:12.5px; opacity:.55; margin-right:2px; }
  .chip{
    user-select:none; cursor:pointer; font-size:13px;
    background:var(--card-bg); border:1px solid var(--card-border);
    border-radius:999px; padding:7px 14px;
    transition:background .2s, border-color .2s, box-shadow .2s, transform .12s, opacity .2s;
  }
  .chip:hover{ transform:translateY(-1px); }
  .chip.sel{
    background:hsla(var(--hue),60%,55%,.22); border-color:hsla(var(--hue),80%,70%,.7);
    box-shadow:0 0 16px hsla(var(--hue),80%,60%,.25);
  }
  .chip.locked{ opacity:.45; }
  .chip .dot{
    width:8px; height:8px; border-radius:50%; display:inline-block;
    margin-right:6px; vertical-align:baseline; opacity:.5;
  }
  .chip.has-notes .dot{ opacity:1; box-shadow:0 0 7px currentColor; }

  /* dünya (tema) seçici */
  #themeChips{ justify-content:center; margin:14px 0 4px; }

  /* stüdyo alanı (yalnız aboneye görünür) */
  #studioSection{ margin-top:8px; }
  .studio-panel{
    border:1px solid var(--card-border); border-radius:18px;
    background:rgba(255,255,255,.03); padding:16px 18px 14px;
  }
  .studio-panel .chips{ margin-bottom:10px; }
  .studio-panel .chips:last-child{ margin-bottom:0; }
  #mixerRows{ margin:4px 0 12px; }
  .chip .x{
    margin-left:8px; opacity:.5; font-size:11px;
  }
  .chip .x:hover{ opacity:1; color:#ff9ecf; }
  /* döngü/şarkı mod anahtarı */
  .seg{
    display:inline-flex; border:1px solid var(--card-border); border-radius:999px;
    overflow:hidden; margin-right:4px;
  }
  .seg-btn{
    padding:7px 14px; font-size:13px; cursor:pointer; user-select:none;
    opacity:.6; transition:background .2s, opacity .2s;
    white-space:nowrap; /* rozet pill içinde satır atlayıp taşmasın */
  }
  .seg-btn.sel{
    opacity:1; background:hsla(var(--hue),60%,55%,.25);
    box-shadow:inset 0 0 12px hsla(var(--hue),80%,70%,.15);
  }
  /* mikser */
  .mix-row{
    display:flex; align-items:center; gap:10px;
    padding:7px 2px; border-bottom:1px solid rgba(255,255,255,.05);
  }
  .mix-row:last-child{ border-bottom:none; }
  .mix-name{ flex:0 0 150px; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  /* sürgü: tarayıcı varsayılanına güvenme — her motorda aynı görünüm
     (dolu kısım JS'in güncellediği --p ile boyanır) */
  .mix-row input[type=range]{
    flex:1; min-width:60px; cursor:pointer;
    -webkit-appearance:none; appearance:none;
    height:6px; border-radius:999px; outline:none;
    background:linear-gradient(to right, #ffd66e var(--p, 77%), rgba(255,255,255,.14) var(--p, 77%));
  }
  .mix-row input[type=range]::-webkit-slider-thumb{
    -webkit-appearance:none; appearance:none;
    width:16px; height:16px; border-radius:50%;
    background:#ffd66e; border:2px solid #101223;
    box-shadow:0 0 8px rgba(255,214,110,.5);
  }
  .mix-row input[type=range]::-moz-range-thumb{
    width:13px; height:13px; border-radius:50%;
    background:#ffd66e; border:2px solid #101223;
    box-shadow:0 0 8px rgba(255,214,110,.5);
  }
  .mix-row input[type=range]::-moz-range-track{
    height:6px; border-radius:999px; background:transparent;
  }
  .mix-val{ flex:0 0 42px; text-align:right; font-size:12px; opacity:.55; font-variant-numeric:tabular-nums; }
  .mix-btn{
    width:28px; height:28px; border-radius:8px; cursor:pointer; font-size:12px; font-weight:700;
    background:var(--card-bg); border:1px solid var(--card-border); color:#eef0ff; opacity:.7;
    transition:background .15s, border-color .15s, opacity .15s;
  }
  .mix-btn:hover{ opacity:1; }
  .mix-btn.sel{ background:hsla(var(--hue),60%,55%,.4); border-color:hsla(var(--hue),85%,72%,.9); opacity:1; }
  .mix-btn.solo.sel{ background:rgba(255,214,110,.3); border-color:rgba(255,214,110,.8); color:#ffd66e; }
  @media (max-width:640px){
    .mix-name{ flex-basis:110px; font-size:12px; }
    .mix-val{ flex-basis:36px; }
    .studio-panel{ padding:12px 12px 10px; }
  }

  /* paywall'daki stüdyo teklifi */
  .or-div{ text-align:center; opacity:.45; font-size:12.5px; margin:16px 0 10px; }
  .studio-box{
    border:1px solid var(--card-border); border-radius:16px; padding:14px 16px;
    background:rgba(255,255,255,.03);
  }
  .studio-box h4{ font-size:15px; }
  .studio-box .mini{ text-align:left; margin-top:6px; }
  .studio-box .st-btns{ display:flex; gap:8px; margin-top:12px; }
  .studio-box button{
    flex:1; font-size:14px; font-weight:700; color:#eef0ff; cursor:pointer;
    background:transparent; border:1px solid var(--card-border); border-radius:999px; padding:10px;
    transition:border-color .2s;
  }
  .studio-box button:hover{ border-color:rgba(255,255,255,.4); }
  .studio-box button:disabled, #upBtn:disabled{ opacity:.45; cursor:not-allowed; }

  .forgot{
    font-size:12.5px; opacity:.6; cursor:pointer; text-align:right; margin-top:8px;
  }
  .forgot:hover{ opacity:1; text-decoration:underline; }
  .acct-row{
    display:flex; justify-content:space-between; gap:12px;
    padding:9px 2px; font-size:14px; border-bottom:1px solid rgba(255,255,255,.06);
  }
  .acct-row .k{ opacity:.55; }
  .cp-title{ margin-top:20px; font-size:14.5px; }

  #mcan{
    width:100%; height:300px; display:block; touch-action:none; cursor:crosshair;
    background:rgba(255,255,255,.03);
    border:1px solid var(--card-border); border-radius:18px;
  }
  .hint{ text-align:center; opacity:.5; font-size:13px; margin-top:10px; }

  /* modallar */
  .overlay{
    position:fixed; inset:0; background:rgba(5,6,12,.72); backdrop-filter:blur(3px);
    display:none; place-items:center; z-index:50;
  }
  .overlay.show{ display:grid; }
  .modal{
    position:relative; width:min(92vw,400px);
    max-height:90vh; overflow-y:auto;
    background:#141628; border:1px solid var(--card-border); border-radius:22px;
    padding:28px; box-shadow:0 20px 80px rgba(0,0,0,.5);
  }
  .modal h3{ text-align:center; font-size:20px; }
  .modal .close{
    position:absolute; top:10px; right:14px; background:none; border:none;
    color:#eef0ff; font-size:22px; cursor:pointer; opacity:.6;
  }
  .modal input{
    width:100%; margin-top:12px; padding:12px 16px; border-radius:12px;
    border:1px solid var(--card-border); background:rgba(255,255,255,.05);
    color:#eef0ff; font-size:16px;   /* 16px altı iOS'ta otomatik zoom yapar */
  }
  .modal .primary{
    width:100%; margin-top:16px; font-size:15px; font-weight:700; color:#101223;
    background:linear-gradient(135deg,#ffd66e,#ff9ecf); border:none;
    border-radius:999px; padding:12px; cursor:pointer;
  }
  .modal .primary:disabled{ opacity:.6; cursor:wait; }
  .tabs{ display:flex; gap:6px; margin-bottom:6px; }
  .tab{
    flex:1; text-align:center; padding:9px; border-radius:999px; cursor:pointer;
    border:1px solid transparent; opacity:.6; font-size:14px;
  }
  .tab.sel{ border-color:var(--card-border); background:rgba(255,255,255,.06); opacity:1; font-weight:700; }
  .err{ color:#ff9ecf; font-size:13px; min-height:18px; margin-top:10px; text-align:center; }
  .feats{ list-style:none; margin:14px 0; display:grid; gap:8px; font-size:14.5px; }
  .price{ text-align:center; font-size:30px; font-weight:800; margin:8px 0 2px; }
  .mini{ font-size:12px; opacity:.55; margin-top:12px; text-align:center; }

  #toast{
    position:fixed; left:50%; bottom:28px; transform:translateX(-50%) translateY(20px);
    background:rgba(20,22,40,.95); border:1px solid var(--card-border); color:#eef0ff;
    padding:12px 22px; border-radius:999px; opacity:0; pointer-events:none;
    transition:.3s; z-index:99; font-size:14px; max-width:88vw; text-align:center;
  }
  #toast.show{ opacity:1; transform:translateX(-50%); }

  /* dar ekranlar */
  @media (max-width:640px){
    main{ padding:6px 14px 40px; }
    .nav-inner{ padding:10px 14px; }
    header{ padding:26px 12px 2px; }
    header p{ font-size:14px; }
    #playBtn{ padding:12px 26px; font-size:16px; }
    #dlBtn{ padding:11px 18px; font-size:14px; }
    #mcan{ height:240px; }
    .cat-grid{ grid-template-columns:repeat(auto-fill,minmax(100px,1fr)); gap:8px; }
    .card .emoji{ font-size:24px; }
    .melody-head button{ padding:6px 12px; font-size:12.5px; }
    .foot-inner{ justify-content:center; text-align:center; }
  }

/* stüdyo abonelik teklifi (paywall + kilit): dönem anahtarı + tasarruf + tek CTA */
#stOffer, .lock-box .st-btns{ text-align:center; margin-top:10px; }
.bill-seg{ margin-bottom:12px; }
.st-price{ font-size:30px; font-weight:800; line-height:1.1; }
.st-price small{ font-size:13px; font-weight:500; opacity:.55; }
.st-sub{ font-size:12px; opacity:.55; margin-top:4px; }
.save-badge{
  margin-left:7px; font-size:10px; font-weight:800; color:#101223;
  background:linear-gradient(135deg,#ffd66e,#a6ffbf);
  border-radius:999px; padding:2px 7px; vertical-align:middle;
}
.st-cta{
  width:100%; max-width:300px; margin-top:14px; font-size:15px; font-weight:700; color:#101223;
  background:linear-gradient(135deg,#ffd66e,#ff9ecf); border:none;
  border-radius:999px; padding:12px; cursor:pointer; transition:transform .12s ease;
}
.st-cta:active{ transform:scale(.97); }
.st-cta:disabled{ opacity:.45; cursor:not-allowed; }

/* ---- auth/hesap: şifre göster-gizle, doğrulama kodu, ikincil buton ---- */
.pw-wrap{ position:relative; }
.pw-wrap input{ padding-right:44px; }
.pw-eye{
  position:absolute; right:10px; top:calc(50% + 6px); transform:translateY(-50%);
  background:none; border:none; cursor:pointer; font-size:16px;
  opacity:.5; padding:4px; line-height:1;
}
.pw-eye:hover{ opacity:1; }
#vfCode{ text-align:center; font-size:24px; font-weight:700; letter-spacing:10px; }
.vf-links{ display:flex; justify-content:space-between; align-items:center; margin-top:4px; }
.vf-links .forgot{ margin-top:8px; }
.modal .ghost{
  width:100%; margin-top:10px; font-size:14px; font-weight:600; color:#eef0ff;
  background:transparent; border:1px solid rgba(255,255,255,.25);
  border-radius:999px; padding:11px; cursor:pointer; transition:border-color .2s;
}
.modal .ghost:hover{ border-color:rgba(255,255,255,.5); }
.row-act{
  font-size:11.5px; font-weight:700; color:#101223; white-space:nowrap;
  background:linear-gradient(135deg,#ffd66e,#ff9ecf); border:none;
  border-radius:999px; padding:3px 10px; cursor:pointer;
}
/* satın alma panelindeki tema seçici */
.up-pick{ justify-content:center; margin:12px 0 2px; }
/* stüdyo tema sekmeleri (ses seçici + raf) — SABİT GENİŞLİK KURALI:
   seçim kalın yazıyla değil arka planla gösterilir, nokta için baştan yer
   ayrılır; böylece seçim/nokta durumunda sekmeler kayıp zıplamaz */
.vtabs{ display:flex; flex-wrap:wrap; gap:5px; width:100%; margin-bottom:2px; }
.vtab{
  font-size:11px; padding:4px 9px; border-radius:999px; cursor:pointer;
  user-select:none; opacity:.55; border:1px solid transparent; transition:opacity .15s;
}
.vtab:hover{ opacity:.85; }
.vtab.sel{ opacity:1; background:rgba(255,255,255,.08); border-color:var(--card-border); }
.vtab::after{ content:'•'; margin-left:4px; color:transparent; }
.vtab.has-notes::after{ color:#ffd66e; }
