/* =========================================================================
   ZUKKO BOLA — bolalar uchun ta'lim platformasi
   ========================================================================= */
:root{
  --cream:#FFF8EF;
  --paper:#FFFFFF;
  --ink:#241C3B;
  --ink-soft:#5B5470;
  --ink-faint:#8E88A0;
  --line:#EFE7DA;
  --coral:#FF7A59;
  --coral-dk:#F2603C;
  --sun:#FFC94D;
  --shadow-sm:0 2px 8px rgba(60,40,20,.06);
  --shadow-md:0 8px 24px rgba(60,40,20,.10);
  --shadow-lg:0 20px 48px rgba(60,40,20,.16);
  --r-lg:26px;
  --r-md:18px;
  --r-sm:12px;
  --font:"Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --display:"Baloo 2", var(--font);
  --player-h:76px;
  --topbar-h:64px;
  /* section palette */
  --c-sky:#2FA8E8;      --b-sky:#E2F4FE;
  --c-pink:#EC5A9E;     --b-pink:#FCE6F1;
  --c-emerald:#12A87A;  --b-emerald:#D6F5E9;
  --c-teal:#0FA9A0;     --b-teal:#D2F5F1;
  --c-violet:#8158E6;   --b-violet:#EDE6FE;
  --c-indigo:#5A63E0;   --b-indigo:#E4E6FD;
  --c-amber:#EA9A0B;    --b-amber:#FDF0D2;
  --c-rose:#F0526A;     --b-rose:#FDE3E7;
}

*{box-sizing:border-box}
/* The `hidden` attribute must always win, even for elements we give an explicit
   display (.modal=grid, .search-sheet=flex) — otherwise they can't be hidden. */
[hidden]{display:none!important}
html,body{margin:0;padding:0}
body{
  font-family:var(--font);
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  padding-bottom:calc(var(--player-h) + env(safe-area-inset-bottom));
  overflow-x:hidden;
}
body.no-scroll{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
img{display:block;max-width:100%}
.ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ic.fill{fill:currentColor;stroke:none}

/* ---------- Topbar ---------- */
.topbar{
  position:sticky;top:0;z-index:40;height:var(--topbar-h);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(14px,4vw,28px);
  background:rgba(255,248,239,.82);
  backdrop-filter:saturate(1.4) blur(12px);
  -webkit-backdrop-filter:saturate(1.4) blur(12px);
  border-bottom:1px solid transparent;transition:border-color .2s, box-shadow .2s;
}
.topbar.scrolled{border-bottom-color:var(--line);box-shadow:var(--shadow-sm)}
.brand{display:flex;align-items:center;gap:10px}
.brand-mark{position:relative;width:44px;height:44px;display:grid;place-items:center;
  background:linear-gradient(150deg,var(--sun),var(--coral));border-radius:14px;
  box-shadow:0 6px 14px rgba(255,122,89,.35);transform:rotate(-4deg)}
.bm-face{font-size:20px;line-height:1;filter:drop-shadow(0 1px 0 rgba(0,0,0,.1))}
.bm-2{position:absolute;bottom:2px;right:2px;font-size:15px}
.brand-word{font-family:var(--display);font-weight:800;font-size:23px;letter-spacing:.2px}
.brand-accent{color:var(--coral)}
.topbar-actions{display:flex;align-items:center;gap:10px}
.icon-btn{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;
  color:var(--ink-soft);background:var(--paper);box-shadow:var(--shadow-sm);transition:.15s}
.icon-btn:hover{color:var(--coral);transform:translateY(-1px)}
.lang-toggle{display:flex;background:var(--paper);border-radius:13px;padding:4px;box-shadow:var(--shadow-sm)}
.lang-btn{font-weight:800;font-size:14px;padding:6px 12px;border-radius:9px;color:var(--ink-faint);transition:.15s}
.lang-btn.is-active{background:linear-gradient(150deg,var(--sun),var(--coral));color:#fff;box-shadow:0 4px 10px rgba(255,122,89,.3)}

/* ---------- Layout ---------- */
.app{max-width:1080px;margin:0 auto;padding:0 clamp(14px,4vw,28px)}
.section-pad{padding-top:22px}

/* ---------- Hero ---------- */
.hero{position:relative;margin-top:14px;padding:34px clamp(20px,5vw,44px) 40px;
  border-radius:var(--r-lg);overflow:hidden;
  background:
    radial-gradient(120% 120% at 8% 0%, #FFE7A8 0%, rgba(255,231,168,0) 55%),
    radial-gradient(120% 120% at 100% 20%, #FFD0C2 0%, rgba(255,208,194,0) 50%),
    linear-gradient(160deg,#FFF3E0,#FFF8EF);
  box-shadow:var(--shadow-sm);border:1px solid #F6E9D3}
.hero-blob{position:absolute;border-radius:50%;filter:blur(2px);opacity:.9;pointer-events:none}
.hero h1{font-family:var(--display);font-weight:800;font-size:clamp(28px,6vw,46px);
  line-height:1.05;margin:0 0 12px;max-width:16ch}
.hero h1 .hl{color:var(--coral)}
.hero p{margin:0 0 22px;color:var(--ink-soft);font-size:clamp(15px,2.4vw,18px);max-width:46ch;font-weight:600}
.hero-search{display:flex;align-items:center;gap:10px;background:#fff;border-radius:16px;
  padding:12px 16px;box-shadow:var(--shadow-md);max-width:440px;cursor:text;transition:.15s}
.hero-search:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}
.hero-search .ic{color:var(--ink-faint)}
.hero-search span{color:var(--ink-faint);font-weight:700}
.hero-emojis{position:absolute;right:clamp(-10px,2vw,24px);top:50%;transform:translateY(-50%);
  font-size:clamp(60px,14vw,120px);opacity:.16;pointer-events:none;user-select:none}

/* ---------- Section heading ---------- */
.row-head{display:flex;align-items:baseline;justify-content:space-between;margin:30px 2px 14px}
.row-head h2{font-family:var(--display);font-weight:700;font-size:22px;margin:0}
.row-head .muted{color:var(--ink-faint);font-weight:700;font-size:13px}

/* ---------- Category grid ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.cat{position:relative;display:flex;flex-direction:column;gap:8px;padding:20px;
  border-radius:var(--r-md);background:var(--paper);box-shadow:var(--shadow-sm);
  border:1px solid var(--line);overflow:hidden;transition:transform .18s, box-shadow .18s;isolation:isolate}
.cat:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.cat::after{content:"";position:absolute;inset:auto -30% -60% auto;width:150px;height:150px;
  border-radius:50%;background:var(--tint);z-index:-1;opacity:.7}
.cat-ic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:30px;
  background:var(--tint);box-shadow:inset 0 0 0 1px rgba(0,0,0,.02)}
.cat h3{margin:6px 0 0;font-family:var(--display);font-weight:700;font-size:19px;color:var(--accent)}
.cat p{margin:0;color:var(--ink-soft);font-size:13.5px;font-weight:600;min-height:2.6em}
.cat-count{margin-top:6px;display:inline-flex;align-items:center;gap:6px;
  font-weight:800;font-size:13px;color:var(--accent)}
.cat-count .dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}
.cat-arrow{position:absolute;top:20px;right:18px;color:var(--accent);opacity:0;transform:translateX(-4px);transition:.18s}
.cat:hover .cat-arrow{opacity:1;transform:translateX(0)}

/* ---------- Continue card ---------- */
.continue{display:flex;align-items:center;gap:16px;padding:16px;border-radius:var(--r-md);
  background:linear-gradient(135deg,#2B2350,#3B2F63);color:#fff;box-shadow:var(--shadow-md);cursor:pointer;transition:.18s}
.continue:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.continue img{width:56px;height:56px;border-radius:12px;object-fit:cover;background:#0003}
.continue .ct-l{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.continue .ct-t{font-weight:800;font-size:16px;margin-top:2px}
.continue .ct-play{margin-left:auto;width:46px;height:46px;border-radius:50%;background:var(--coral);
  display:grid;place-items:center;color:#fff;box-shadow:0 6px 16px rgba(255,122,89,.5);flex:none}

/* ---------- Section page ---------- */
.sec-hero{display:flex;align-items:center;gap:18px;margin-top:14px;padding:24px;border-radius:var(--r-lg);
  background:var(--tint);border:1px solid rgba(0,0,0,.03)}
.sec-hero .s-ic{width:64px;height:64px;border-radius:18px;background:#fff;display:grid;place-items:center;
  font-size:34px;box-shadow:var(--shadow-sm);flex:none}
.sec-hero h1{font-family:var(--display);font-weight:800;font-size:clamp(22px,5vw,32px);margin:0;color:var(--accent)}
.sec-hero p{margin:4px 0 0;color:var(--ink-soft);font-weight:600}
.back-btn{display:inline-flex;align-items:center;gap:6px;margin:16px 0 0;color:var(--ink-soft);
  font-weight:800;font-size:14px;padding:8px 14px;border-radius:11px;background:var(--paper);box-shadow:var(--shadow-sm)}
.back-btn:hover{color:var(--coral)}
.back-btn .ic{width:18px;height:18px}

/* ---------- Track list ---------- */
.track-list{margin:18px 0 8px;display:flex;flex-direction:column;gap:8px}
.track{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:var(--r-md);
  background:var(--paper);box-shadow:var(--shadow-sm);border:1px solid var(--line);
  cursor:pointer;transition:transform .12s, box-shadow .15s;text-align:left;width:100%}
.track:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.track.is-current{border-color:var(--accent);background:var(--tint)}
.track-num{width:40px;height:40px;border-radius:12px;flex:none;display:grid;place-items:center;
  font-family:var(--display);font-weight:700;font-size:16px;color:var(--accent);background:var(--tint)}
.track.is-current .track-num{background:#fff}
.track-thumb{width:52px;height:52px;border-radius:12px;object-fit:cover;flex:none;background:var(--tint)}
.track-body{min-width:0;flex:1}
.track-title{font-weight:800;font-size:15.5px;line-height:1.25;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track-sub{color:var(--ink-faint);font-size:13px;font-weight:600;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track-badges{display:flex;gap:6px;margin-top:5px;flex-wrap:wrap}
.chip{font-size:11px;font-weight:800;padding:3px 9px;border-radius:20px;background:var(--tint);color:var(--accent);
  display:inline-flex;align-items:center;gap:4px}
.chip.plain{background:#F3EFE8;color:var(--ink-faint)}
.track-play{width:44px;height:44px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:var(--accent);color:#fff;box-shadow:0 6px 14px rgba(0,0,0,.14);transition:.15s}
.track:hover .track-play{transform:scale(1.06)}
.track-play .ic{width:20px;height:20px}
.track.playing-now .track-play{animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,.12)}50%{box-shadow:0 0 0 8px rgba(0,0,0,0)}}

/* equalizer bars for the currently playing row */
.eq{display:inline-flex;align-items:flex-end;gap:2px;height:16px}
.eq i{width:3px;background:currentColor;border-radius:2px;animation:eqbar .9s ease-in-out infinite}
.eq i:nth-child(2){animation-delay:.2s}.eq i:nth-child(3){animation-delay:.4s}.eq i:nth-child(4){animation-delay:.1s}
@keyframes eqbar{0%,100%{height:4px}50%{height:16px}}

/* ---------- Video grid ---------- */
.vid-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:18px 0}
.vid-card{background:var(--paper);border-radius:var(--r-md);box-shadow:var(--shadow-sm);overflow:hidden;
  border:1px solid var(--line);cursor:pointer;transition:transform .16s, box-shadow .16s;text-align:left}
.vid-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.vid-thumb{position:relative;aspect-ratio:16/9;background:var(--tint);overflow:hidden}
.vid-thumb img{width:100%;height:100%;object-fit:cover}
.vid-thumb .vplay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(20,10,30,.12);transition:.15s}
.vid-card:hover .vplay{background:rgba(20,10,30,.28)}
.vplay span{width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;
  color:var(--coral);box-shadow:var(--shadow-md)}
.vplay .ic{width:24px;height:24px;margin-left:3px}
.vid-cap{padding:12px 14px}
.vid-cap .vt{font-weight:800;font-size:14.5px;line-height:1.3}
.vid-cap .vs{color:var(--ink-faint);font-size:12.5px;font-weight:600;margin-top:3px}
.vid-num{position:absolute;top:8px;left:8px;background:rgba(0,0,0,.55);color:#fff;font-weight:800;
  font-size:12px;padding:3px 9px;border-radius:20px;backdrop-filter:blur(4px)}

/* ---------- Player bar ---------- */
.player{position:fixed;left:0;right:0;bottom:0;z-index:45;
  background:rgba(255,255,255,.9);backdrop-filter:saturate(1.4) blur(16px);-webkit-backdrop-filter:saturate(1.4) blur(16px);
  border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(60,40,20,.10);
  padding-bottom:env(safe-area-inset-bottom)}
.player-progress{height:4px;background:var(--line);cursor:pointer;position:relative}
.player-progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--sun),var(--coral));transition:width .1s linear}
.player-progress::after{content:"";position:absolute;inset:-8px 0;}
.player-inner{height:calc(var(--player-h) - 4px);max-width:1080px;margin:0 auto;
  display:flex;align-items:center;gap:12px;padding:0 clamp(12px,4vw,20px)}
.player-main{display:flex;align-items:center;gap:12px;min-width:0;flex:1;text-align:left}
.pb-art{width:50px;height:50px;border-radius:12px;object-fit:cover;flex:none;background:var(--b-sky);box-shadow:var(--shadow-sm)}
.pb-text{min-width:0;display:flex;flex-direction:column}
.pb-title{font-weight:800;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pb-sub{color:var(--ink-faint);font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-controls{display:flex;align-items:center;gap:6px;flex:none}
.pc-btn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--ink-soft);transition:.15s}
.pc-btn:hover{color:var(--coral);background:var(--cream)}
.pc-btn .ic{width:22px;height:22px}
.pc-play{width:52px;height:52px;background:linear-gradient(150deg,var(--sun),var(--coral));color:#fff;
  box-shadow:0 8px 18px rgba(255,122,89,.4)}
.pc-play:hover{color:#fff;background:linear-gradient(150deg,var(--sun),var(--coral-dk))}
.pc-play .ic{width:24px;height:24px}
@media(max-width:560px){.prev-hide{display:none}}

/* ---------- Now playing screen ---------- */
.np-screen{position:fixed;inset:0;z-index:60;overflow:hidden;
  transform:translateY(100%);transition:transform .34s cubic-bezier(.4,0,.2,1)}
.np-screen.open{transform:translateY(0)}
.np-bg{position:absolute;inset:0;background:linear-gradient(160deg,#2B2350,#3B2F63)}
.np-bg::after{content:"";position:absolute;inset:0;background:
  radial-gradient(60% 40% at 20% 10%, rgba(255,201,77,.35),transparent 60%),
  radial-gradient(60% 50% at 90% 20%, rgba(255,122,89,.35),transparent 55%)}
.np-collapse{position:absolute;top:14px;left:14px;z-index:2;width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center}
.np-collapse .ic{width:26px;height:26px}
.np-body{position:relative;z-index:1;height:100%;max-width:560px;margin:0 auto;color:#fff;
  display:flex;flex-direction:column;align-items:center;padding:76px 24px calc(var(--player-h) + 30px);
  overflow-y:auto}
.np-art{width:min(64vw,260px);aspect-ratio:1;border-radius:26px;overflow:hidden;box-shadow:var(--shadow-lg);
  flex:none;background:rgba(255,255,255,.1)}
.np-art img{width:100%;height:100%;object-fit:cover}
.np-info{text-align:center;margin-top:26px}
.np-info h2{font-family:var(--display);font-weight:800;font-size:26px;margin:0}
.np-info p{margin:6px 0 0;opacity:.8;font-weight:600}
.np-credits{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.np-credits .npc{background:rgba(255,255,255,.14);border-radius:20px;padding:6px 12px;font-size:13px;font-weight:700}
.np-lyrics{margin-top:26px;width:100%;background:rgba(255,255,255,.08);border-radius:20px;padding:22px 20px;
  font-size:16px;line-height:1.9;font-weight:600;white-space:pre-line;text-align:center}
.np-lyrics.empty{display:none}

/* ---------- Search sheet ---------- */
.search-sheet{position:fixed;inset:0;z-index:70;background:var(--cream);display:flex;flex-direction:column}
.search-head{display:flex;align-items:center;gap:12px;padding:14px clamp(14px,4vw,24px);border-bottom:1px solid var(--line)}
.search-input-wrap{flex:1;display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;
  padding:12px 16px;box-shadow:var(--shadow-sm)}
.search-input-wrap .ic{color:var(--ink-faint)}
.search-input-wrap input{flex:1;border:none;outline:none;font-family:inherit;font-size:16px;font-weight:700;color:var(--ink);background:none}
.text-btn{font-weight:800;color:var(--coral);padding:8px}
.search-results{flex:1;overflow-y:auto;padding:14px clamp(14px,4vw,24px) 40px;max-width:760px;margin:0 auto;width:100%}
.search-empty{text-align:center;color:var(--ink-faint);font-weight:700;padding:60px 20px}
.search-empty .big{font-size:52px;margin-bottom:10px}
.res-group-title{font-weight:800;color:var(--ink-faint);font-size:13px;margin:16px 4px 8px;text-transform:uppercase;letter-spacing:.04em}

/* ---------- Video modal ---------- */
.modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px}
.modal-backdrop{position:absolute;inset:0;background:rgba(20,10,30,.7);backdrop-filter:blur(4px)}
.modal-card{position:relative;z-index:1;width:min(920px,100%);background:#12101d;border-radius:var(--r-md);
  overflow:hidden;box-shadow:var(--shadow-lg)}
.modal-close{position:absolute;top:10px;right:10px;z-index:2;width:42px;height:42px;border-radius:50%;
  background:rgba(0,0,0,.5);color:#fff;display:grid;place-items:center}
.modal-video-wrap{aspect-ratio:16/9;background:#000}
.modal-video-wrap video{width:100%;height:100%;display:block}
.modal-meta{padding:16px 20px;color:#fff}
.modal-meta h3{margin:0;font-family:var(--display);font-weight:700;font-size:19px}
.modal-meta p{margin:6px 0 0;opacity:.7;font-weight:600;font-size:14px}
.modal-meta .mm-credits{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.modal-meta .npc{background:rgba(255,255,255,.12);border-radius:20px;padding:5px 11px;font-size:12.5px;font-weight:700}

/* ---------- Footer ---------- */
.foot{margin:40px 0 20px;padding:24px;border-radius:var(--r-lg);background:var(--paper);
  border:1px solid var(--line);box-shadow:var(--shadow-sm);text-align:center}
.foot .fbrand{font-family:var(--display);font-weight:800;font-size:20px}
.foot .fbrand .brand-accent{color:var(--coral)}
.foot p{color:var(--ink-soft);font-weight:600;font-size:14px;margin:8px 0 0}
.foot a.tg{display:inline-flex;align-items:center;gap:7px;margin-top:14px;background:var(--b-sky);color:var(--c-sky);
  font-weight:800;padding:9px 16px;border-radius:12px;font-size:14px}
.made{display:inline-flex;align-items:center;gap:5px;margin-top:16px;color:var(--ink-faint);
  font-size:12.5px;font-weight:700;opacity:.85}
.made a{color:var(--ink-soft);border-bottom:1px dashed var(--ink-faint)}
.made a:hover{color:var(--coral)}

/* ---------- misc ---------- */
.fade-in{animation:fade .3s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:520px){
  .brand-word{font-size:20px}
  .hero{padding-top:26px}
  .cat-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .cat{padding:15px}
  .cat-ic{width:48px;height:48px;font-size:26px}
  .cat h3{font-size:16px}
  .cat p{font-size:12.5px;min-height:0}
  .track-thumb{display:none}
  .vid-grid{grid-template-columns:1fr 1fr;gap:12px}
  .vid-cap .vt{font-size:13px}
}
@media(max-width:380px){.cat-grid{grid-template-columns:1fr}.vid-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001s!important;transition-duration:.05s!important}}
