/* Shoyi — Atlas-ipak: adras naqshi fonda, ramka ustida shoyi yaltirashi, tepada rangli atlas yo‘li. Ota-onalar nomidan to'plami; ranglar manifest sxemasidan (--p1…--w4). */
.t-shoyi .small{font-family:var(--fb);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gl);font-weight:500}
.t-shoyi .content{padding:64px 22px 48px;gap:20px}
.t-shoyi .frame{border:1px solid var(--gl);border-radius:2px;background:var(--card);padding:36px 18px 28px}
.t-shoyi .names{font-family:var(--fs);font-size:clamp(30px,8.6vw,42px);line-height:1.12;letter-spacing:.02em;font-weight:600;color:var(--tx);margin:8px 0 4px}
.t-shoyi .names .amp{font-family:var(--fd);font-style:italic;font-size:.6em;color:var(--gl);margin:2px 0;line-height:1.2}
.t-shoyi .hero .host-of{font-family:var(--fb);font-size:10.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--gl);margin:12px 0 2px}
.t-shoyi .hero .host{font-family:var(--fd);font-size:16px;line-height:1.45;color:var(--tx2);margin:12px auto 0;max-width:36ch}
.t-shoyi .hero .host .host-line{color:var(--tx);font-weight:600}
.t-shoyi .hero .host .host-by{font-family:var(--fb);font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.8;margin-left:4px}
.t-shoyi .pr-photo{width:150px;height:150px;margin:14px auto 4px;border-radius:50%;overflow:hidden;border:2px solid var(--gl);box-shadow:0 12px 30px rgba(0,0,0,.16)}
.t-shoyi .pr-photo img{width:100%;height:100%;object-fit:cover}
.t-shoyi .pr-date{margin:18px auto 0;display:inline-grid;gap:3px;justify-items:center;padding:12px 26px;border-top:1px solid var(--gl);border-bottom:1px solid var(--gl)}
.t-shoyi .pr-date b{font-family:var(--fn);font-size:28px;letter-spacing:.1em;font-weight:500;color:var(--tx);line-height:1.1;font-variant-numeric:tabular-nums}
.t-shoyi .pr-date span{font-family:var(--fb);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--tx2)}
.t-shoyi .pr-quote{padding:0 10px}
.t-shoyi .quote{font-family:var(--fd);font-style:italic;font-size:18px;line-height:1.5;color:var(--tx2)}
.t-shoyi .greeting p{font-family:var(--fd);font-style:normal;font-size:18px;line-height:1.62;color:var(--tx)}
.t-shoyi .greeting p::first-line{font-family:var(--fd);font-size:22px;letter-spacing:.06em;text-transform:uppercase;color:var(--gl);line-height:1.9}
.t-shoyi .datebig{font-family:var(--fn);font-size:42px;letter-spacing:.06em;font-weight:500;color:var(--tx)}
.t-shoyi .datebig small{font-family:var(--fb);font-size:10.5px;letter-spacing:.24em;color:var(--gl);font-weight:500}
.t-shoyi .cd{gap:8px}
.t-shoyi .cd div{background:var(--card);border:1px solid var(--line);border-radius:2px;padding:12px 4px}
.t-shoyi .cd b{font-family:var(--fn);font-size:26px;font-weight:500;color:var(--tx)}
.t-shoyi .cd span{font-family:var(--fb);font-size:9px;letter-spacing:.14em;color:var(--tx2)}
.t-shoyi .today{background:var(--gl);color:var(--p1);border-radius:2px}
.t-shoyi .today .big{font-family:var(--fn)}
.t-shoyi .today .small{color:var(--p1);opacity:.85}
.t-shoyi .ev{background:var(--card);border:1px solid var(--line);border-radius:2px;text-align:left}
.t-shoyi .ev .t{font-family:var(--fn);font-size:22px;font-weight:500;color:var(--gl)}
.t-shoyi .ev .n{font-family:var(--fd);font-size:19px;font-weight:600;color:var(--tx)}
.t-shoyi .ev .d,.t-shoyi .ev .a{font-family:var(--fb);color:var(--tx2)}
.t-shoyi .parents{gap:10px}
.t-shoyi .parents>div{background:var(--card);border:1px solid var(--line);border-radius:2px;padding:14px 10px}
.t-shoyi .parents .who{font-family:var(--fb);font-size:9.5px;letter-spacing:.2em;color:var(--gl);background:transparent;border:0;border-radius:0;padding:0;margin-bottom:5px}
.t-shoyi .parents .nm{font-family:var(--fd);font-size:18px;font-weight:600;line-height:1.3;color:var(--tx);background:transparent;border:0;border-radius:0;padding:0}
.t-shoyi .note{background:var(--card);border:1px solid var(--line);border-radius:2px;font-family:var(--fb);text-align:left}
.t-shoyi .btn{border-radius:2px;font-family:var(--fb);font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:11px 18px;border-color:var(--gl);color:var(--gl)}
.t-shoyi .btn.solid{background:var(--gl);color:var(--p1)}
.t-shoyi .form input,.t-shoyi .form select,.t-shoyi .form textarea{background:var(--card);color:var(--tx);border:1px solid var(--line);border-radius:2px;font-family:var(--fb)}
.t-shoyi .seg button{border-radius:2px;font-family:var(--fb);font-weight:500;letter-spacing:.04em;color:var(--gl);border-color:var(--gl)}
.t-shoyi .seg button[aria-pressed="true"]{background:var(--gl);color:var(--p1)}
.t-shoyi .wi{background:var(--card);border:1px solid var(--line);border-radius:2px}
.t-shoyi .wi .m{font-family:var(--fd)}
.t-shoyi .gift .card{background:var(--card);border:1px solid var(--line);border-radius:2px;font-family:var(--fn);font-weight:500;letter-spacing:.1em;color:var(--tx)}
.t-shoyi .closing{font-family:var(--fd);font-style:italic;font-size:19px;color:var(--tx2)}
.t-shoyi .tl .it{background:var(--card);border:1px solid var(--line);border-radius:2px}
.t-shoyi .tl .it:before{background:var(--gl);box-shadow:0 0 0 3px var(--p1)}
.t-shoyi .tl .h{font-family:var(--fd);font-weight:600}
.t-shoyi .together{font-family:var(--fn);font-weight:500;color:var(--tx)}
.t-shoyi .together small{font-family:var(--fd);font-style:italic;font-size:22px;letter-spacing:.02em;text-transform:none;color:var(--gl)}
.t-shoyi .next{background:var(--card);border:1px solid var(--line);border-radius:2px}
.t-shoyi .next b{font-family:var(--fd);font-weight:600}
.t-shoyi .smp{border-radius:2px}
.t-shoyi .smp-b{border-color:var(--gl);color:var(--gl)}
.t-shoyi .cal{font-family:var(--fd)}
.t-shoyi .cal .dn span.on{color:var(--p1)}
.t-shoyi .gate{background:linear-gradient(180deg,var(--p1),var(--p2))}
.t-shoyi .gate-names{font-family:var(--fs);font-size:26px;letter-spacing:.04em}
.t-shoyi .env-back,.t-shoyi .env-front,.t-shoyi .env-flap{border-radius:2px}
.t-shoyi .env-letter{background:var(--p1);color:var(--tx);border-radius:calc(2px - 2px)}
.t-shoyi .env-letter .names{font-size:22px;letter-spacing:.03em}
.t-shoyi .env-seal{border-color:var(--p1);background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.28) 0,var(--gl) 60%,color-mix(in srgb,var(--gl) 70%,#000) 140%)}
.t-shoyi .music,.t-shoyi .langs{border-color:var(--line)}

.t-shoyi .inv{background:linear-gradient(180deg,var(--p1),var(--p2))}
.t-shoyi .wash{position:absolute;inset:0;pointer-events:none;background:var(--gl);opacity:.08;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cg fill='%23000'%3E%3Cpath d='M40 4l14 20-14 20-14-20z'/%3E%3Cpath d='M0 44l14 20L0 84zM80 44L66 64l14 20z' opacity='.6'/%3E%3Cpath d='M40 52l8 12-8 12-8-12z' opacity='.5'/%3E%3Cpath d='M12 8l4 6-4 6-4-6zM68 8l4 6-4 6-4-6z' opacity='.5'/%3E%3C/g%3E%3C/svg%3E") 0 0/80px 80px repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'%3E%3Cg fill='%23000'%3E%3Cpath d='M40 4l14 20-14 20-14-20z'/%3E%3Cpath d='M0 44l14 20L0 84zM80 44L66 64l14 20z' opacity='.6'/%3E%3Cpath d='M40 52l8 12-8 12-8-12z' opacity='.5'/%3E%3Cpath d='M12 8l4 6-4 6-4-6zM68 8l4 6-4 6-4-6z' opacity='.5'/%3E%3C/g%3E%3C/svg%3E") 0 0/80px 80px repeat}
.t-shoyi .frame{border:1px solid var(--gl);border-radius:2px;background:var(--card);padding:44px 20px 32px;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.1)}
.t-shoyi .frame:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.4) 50%,transparent 65%) 100% 0/300% 100% no-repeat;animation:shSheen 8s 1s linear infinite;pointer-events:none}
.t-shoyi .frame:after{content:"";position:absolute;left:0;right:0;top:0;height:9px;background:repeating-linear-gradient(90deg,var(--gl) 0 9px,var(--w2) 9px 18px,var(--w4) 18px 27px)}
.t-shoyi .names{font-size:clamp(40px,11vw,52px);color:var(--gl)}
.t-shoyi .names .amp{color:var(--tx2)}
.t-shoyi .greeting p::first-line{font-family:var(--fs);font-size:30px;letter-spacing:0;text-transform:none;line-height:1.6}
.t-shoyi .today{color:#fff}
.t-shoyi .today .small{color:#fff}
.t-shoyi .btn.solid{color:#fff}
.t-shoyi .seg button[aria-pressed="true"]{color:#fff}
.t-shoyi .cal .dn span.on{color:#fff}
@keyframes shSheen{0%,60%{background-position:100% 0}100%{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.t-shoyi .frame:before{animation:none}}
