/* Oyna — arka oynalar maketi: yarim doira ramkalar, tokchalar, oyna yuzasida yorug‘lik. Ranglar manifest sxemasidan. */
.t-oyna .inv{background:linear-gradient(180deg,var(--p1),var(--p2) 60%,var(--p1))}
.t-oyna .content{padding:0 0 46px;gap:30px}
.t-oyna .content>section{padding-inline:22px}
.t-oyna .small{font-family:var(--fb);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gl);font-weight:600}

/* Oyna ramkasi — yuqorisi yarim doira arka */
.t-oyna .oy-win{position:relative;overflow:hidden;background:var(--card);
  border:1px solid var(--gl);border-radius:50% 50% 8px 8px/30% 30% 8px 8px;
  box-shadow:0 20px 46px rgba(0,0,0,.10),inset 0 0 0 6px rgba(255,255,255,.34);
  transform-origin:bottom center;animation:oy-open 1s cubic-bezier(.2,.75,.25,1) both}
.t-oyna .oy-win:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;
  background:linear-gradient(114deg,transparent 30%,rgba(255,255,255,.6) 44%,rgba(255,255,255,.18) 51%,transparent 62%);
  background-size:280% 100%;animation:oy-shine 8s ease-in-out infinite}
@keyframes oy-open{from{transform:translateY(30px) scaleY(.92);opacity:0}to{transform:translateY(0) scaleY(1);opacity:1}}
@keyframes oy-shine{0%{background-position:190% 0}55%,100%{background-position:-95% 0}}

/* Birinchi ekran — bitta katta oyna, orqasida manzara */
.t-oyna .oy-first{padding-top:74px}
.t-oyna .oy-big{padding:132px 24px 34px;text-align:center;min-height:clamp(430px,62vh,540px)}
.t-oyna .oy-land{position:absolute;inset:0;border-radius:inherit;z-index:0;
  background:linear-gradient(180deg,var(--w1) 0%,var(--w3) 52%,var(--p1) 100%)}
.t-oyna .oy-sun{position:absolute;left:50%;top:16%;width:88px;height:88px;margin-left:-44px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.95),rgba(255,255,255,.25) 62%,transparent 72%);animation:oy-glow 9s ease-in-out infinite}
.t-oyna .oy-hill{position:absolute;left:-14%;right:-14%;bottom:-16%;height:44%;border-radius:50% 50% 0 0/100% 100% 0 0;background:var(--w4);opacity:.8}
@keyframes oy-glow{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
.t-oyna .oy-in{position:relative;z-index:1}
.t-oyna .oy-lbl{font-family:var(--fb);font-size:10px;letter-spacing:.36em;text-transform:uppercase;color:var(--tx2);margin-bottom:16px}
.t-oyna .names{font-family:var(--fs);font-size:clamp(28px,8vw,40px);line-height:1.3;color:var(--tx);margin:0;text-shadow:0 2px 10px rgba(255,255,255,.6)}
.t-oyna .names .amp{font-family:var(--fd);font-size:.66em;color:var(--gl);line-height:1.5}
.t-oyna .oy-date{font-family:var(--fn);font-size:20px;letter-spacing:.1em;color:var(--gl);margin-top:18px;font-variant-numeric:tabular-nums}
.t-oyna .oy-sub{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;font-family:var(--fb);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--tx2)}
.t-oyna .oy-sub i{font-style:normal;color:var(--gl)}

/* Tokcha (deraza tokchasi) — oyna ostida, kalendar shu yerda turadi */
.t-oyna .oy-shelf{position:relative;height:14px;width:calc(100% + 18px);margin:0 -9px;border-radius:4px;
  background:linear-gradient(180deg,var(--gl),rgba(0,0,0,.18));box-shadow:0 12px 24px rgba(0,0,0,.14);opacity:.92}
.t-oyna .oy-shelf.sm{width:min(84%,320px);margin:0 auto}
.t-oyna .quote{margin:22px auto 0;max-width:30ch;text-align:center;font-family:var(--fd);font-size:17px;line-height:1.6;color:var(--tx2)}

/* Kalendar — tokcha ostida */
.t-oyna .cal{margin-top:14px}
.t-oyna .oy-first .cal{margin-top:16px}
.t-oyna .cal .m{font-family:var(--fd);letter-spacing:.36em;color:var(--gl)}
.t-oyna .cal .dn span{font-family:var(--fn)}
.t-oyna .cal .dn span.on{background:var(--gl);box-shadow:0 6px 16px rgba(0,0,0,.18)}

.t-oyna .greeting{text-align:center}
.t-oyna .greeting p{font-family:var(--fd);font-style:normal;font-size:19px;line-height:1.62;color:var(--tx);max-width:32ch;margin:0 auto}
.t-oyna .greeting p::first-line{font-family:var(--fs);font-size:24px;line-height:2;color:var(--gl)}

/* Sana va sanoq — kichik arkali ustunlar */
.t-oyna .datebig{font-family:var(--fn);font-size:44px;letter-spacing:.1em;text-align:center;color:var(--tx)}
.t-oyna .datebig small{font-family:var(--fb);letter-spacing:.24em;color:var(--gl);font-size:11px;margin-top:10px}
.t-oyna .cd{gap:9px}
.t-oyna .cd div{background:var(--card);border:1px solid var(--line);border-radius:50% 50% 5px 5px/26% 26% 5px 5px;padding:26px 4px 12px;box-shadow:0 10px 22px rgba(0,0,0,.06)}
.t-oyna .cd b{font-family:var(--fn);font-size:26px;font-weight:400;color:var(--gl)}
.t-oyna .cd span{letter-spacing:.14em;color:var(--tx2)}

/* Dastur — uch kichik oyna qatori, orasida ingichka ustun */
.t-oyna .oy-prog{text-align:center}
.t-oyna .oy-ev{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:18px}
.t-oyna .oy-ev li{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--gl);
  border-radius:50% 50% 6px 6px/26% 26% 6px 6px;padding:42px 14px 18px;text-align:center;
  box-shadow:0 14px 32px rgba(0,0,0,.08),inset 0 0 0 5px rgba(255,255,255,.34);
  transform-origin:bottom center;animation:oy-open .9s cubic-bezier(.2,.75,.25,1) both}
.t-oyna .oy-ev li:nth-child(2){animation-delay:.14s}
.t-oyna .oy-ev li:nth-child(3){animation-delay:.28s}
.t-oyna .oy-ev li:nth-child(4){animation-delay:.42s}
.t-oyna .oy-ev li:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(114deg,transparent 32%,rgba(255,255,255,.5) 46%,transparent 60%);
  background-size:280% 100%;animation:oy-shine 8s ease-in-out infinite}
.t-oyna .oy-ev li:nth-child(2):after{animation-delay:1.2s}
.t-oyna .oy-ev li:nth-child(3):after{animation-delay:2.4s}
.t-oyna .oy-t{font-family:var(--fn);font-size:20px;letter-spacing:.1em;color:var(--gl);font-variant-numeric:tabular-nums}
.t-oyna .oy-n{font-family:var(--fd);font-size:19px;line-height:1.25;color:var(--tx);margin-top:6px}
.t-oyna .oy-v{font-family:var(--fb);font-size:12px;font-weight:600;color:var(--tx);margin-top:8px}
.t-oyna .oy-a{font-family:var(--fb);font-size:11.5px;line-height:1.5;color:var(--tx2);margin-top:4px}
.t-oyna .maps{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;justify-content:center}
.t-oyna .oy-ev .btn.sm{font-size:11px;padding:6px 9px;min-height:28px;letter-spacing:.02em}

/* Surat — arkali oynada, ostida tokcha */
.t-oyna .oy-ph{width:min(80%,290px);margin:0 auto;aspect-ratio:3/4;overflow:hidden;border:1px solid var(--gl);
  border-radius:50% 50% 6px 6px/32% 32% 6px 6px;box-shadow:0 18px 40px rgba(0,0,0,.14)}
.t-oyna .oy-ph img{width:100%;height:100%;object-fit:cover}

/* Umumiy bloklar — arkali ramkalar */
.t-oyna .frame{border:1px solid var(--gl);background:var(--card);border-radius:50% 50% 12px 12px/22% 22% 12px 12px;padding-top:56px}
.t-oyna .parents{gap:14px}
.t-oyna .parents div{background:var(--card);border:1px solid var(--line);border-radius:50% 50% 6px 6px/24% 24% 6px 6px;padding:30px 12px 14px;text-align:center;box-shadow:0 10px 24px rgba(0,0,0,.06)}
.t-oyna .parents .nm{font-family:var(--fd);font-size:18px}
.t-oyna .note,.t-oyna .wi,.t-oyna .next,.t-oyna .tl .it,.t-oyna .smp,.t-oyna .today{background:var(--card);border:1px solid var(--line);border-radius:14px 14px 4px 4px}
.t-oyna .today{background:var(--gl);color:#fff;border-color:var(--gl);border-radius:40% 40% 6px 6px/20% 20% 6px 6px;padding-top:26px}
.t-oyna .today .big{font-family:var(--fn);letter-spacing:.08em}
.t-oyna .gift .card{background:var(--card);border:1px solid var(--line);border-radius:999px;font-family:var(--fn);letter-spacing:.14em;color:var(--gl)}
.t-oyna .together{font-family:var(--fn);font-size:58px;letter-spacing:.06em;color:var(--gl)}
.t-oyna .together small{font-family:var(--fs);font-size:20px;color:var(--tx2)}
.t-oyna .tl:before{background:var(--gl);opacity:.4}
.t-oyna .btn{border-radius:999px;border-color:var(--line);color:var(--tx);font-family:var(--fb);font-size:12px;font-weight:600;letter-spacing:.06em}
.t-oyna .btn:hover{border-color:var(--gl);color:var(--gl)}
.t-oyna .btn.solid{background:var(--gl);color:#fff;border-color:var(--gl)}
.t-oyna .form input,.t-oyna .form select,.t-oyna .form textarea{background:rgba(255,255,255,.8);border-color:var(--line);border-radius:12px 12px 6px 6px}
.t-oyna .seg button{border-radius:999px;border-color:var(--line);color:var(--tx2)}
.t-oyna .seg button[aria-pressed="true"]{background:var(--gl);color:#fff;border-color:var(--gl)}
.t-oyna .closing{font-family:var(--fs);font-size:20px;color:var(--gl);text-align:center}
.t-oyna .music,.t-oyna .langs{background:rgba(255,255,255,.82);border-color:var(--line)}
.t-oyna .langs button[aria-pressed="true"]{background:var(--gl);color:#fff}
.t-oyna .content>section.note{margin-inline:22px;padding:15px 18px}
.t-oyna .content>section.smp{margin-inline:22px;padding:20px 18px}

/* Konvert — arkali */
.t-oyna .gate{background:linear-gradient(180deg,var(--w1),var(--p1) 70%)}
.t-oyna .env-back{border-radius:16px 16px 12px 12px}
.t-oyna .env-front{border-radius:12px}
.t-oyna .env-flap{border-radius:16px 16px 0 0}
.t-oyna .env-letter{border-radius:40% 40% 8px 8px/18% 18% 8px 8px;padding-top:26px}
.t-oyna .env-letter .names{font-size:20px}
.t-oyna .env-letter .env-date{font-family:var(--fn);letter-spacing:.12em}
.t-oyna .gate-names{font-family:var(--fs);font-size:24px}

@media (prefers-reduced-motion:reduce){
  .t-oyna .oy-win,.t-oyna .oy-ev li{animation:none}
  .t-oyna .oy-win:after,.t-oyna .oy-ev li:after,.t-oyna .oy-sun{animation:none}
}

/* Mezbon qatori (ota-onalar nomidan): «Farzandlarimiz» yorlig'i ismlardan oldin, «… nomidan» qatori ismlardan keyin */
.t-oyna .host-of{font-family:var(--fb);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--tx2);margin:0 0 6px}
.t-oyna .host{font-family:var(--fd);font-size:16px;line-height:1.35;color:var(--tx2);margin:10px 0 0}
.t-oyna .host .host-line{color:var(--tx);font-weight:600}
.t-oyna .host .host-by{font-family:var(--fb);font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.8;margin-left:4px}
.t-oyna .host-of{color:var(--gl)}
.t-oyna .host{font-family:var(--fd);font-size:16px}
