/* Konfeti — Oq fon, rang-barang uchayotgan konfeti va oltin gulbarglar — quvnoq bayram kayfiyati. Ranglar manifest sxemasidan; animatsiyalar prefers-reduced-motion da o‘chadi. */
.t-konfeti .inv{background:linear-gradient(180deg,var(--p1),var(--p2))}
.t-konfeti .wash{position:absolute;inset:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg opacity='.9'%3E%3Crect x='12' y='20' width='10' height='16' rx='2' fill='%23F45B8A' transform='rotate(20 17 28)'/%3E%3Crect x='70' y='60' width='9' height='15' rx='2' fill='%23FFC93C' transform='rotate(-30 74 67)'/%3E%3Crect x='140' y='30' width='10' height='16' rx='2' fill='%233ECFB2' transform='rotate(45 145 38)'/%3E%3Crect x='40' y='130' width='9' height='15' rx='2' fill='%236C8CFF' transform='rotate(-15 44 137)'/%3E%3Crect x='120' y='150' width='10' height='16' rx='2' fill='%23F45B8A' transform='rotate(60 125 158)'/%3E%3Ccircle cx='100' cy='110' r='6' fill='%23FF8C42'/%3E%3Ccircle cx='170' cy='95' r='5' fill='%233ECFB2'/%3E%3Ccircle cx='25' cy='90' r='5' fill='%23FFC93C'/%3E%3Cpath d='M150 180l8-12 8 12z' fill='%236C8CFF'/%3E%3Cpath d='M60 20l6-10 6 10z' fill='%23FF8C42'/%3E%3C/g%3E%3C/svg%3E");background-size:220px 220px;opacity:.9;animation:confFall 14s linear infinite}
.t-konfeti .wash::after{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg opacity='.9'%3E%3Crect x='12' y='20' width='10' height='16' rx='2' fill='%23F45B8A' transform='rotate(20 17 28)'/%3E%3Crect x='70' y='60' width='9' height='15' rx='2' fill='%23FFC93C' transform='rotate(-30 74 67)'/%3E%3Crect x='140' y='30' width='10' height='16' rx='2' fill='%233ECFB2' transform='rotate(45 145 38)'/%3E%3Crect x='40' y='130' width='9' height='15' rx='2' fill='%236C8CFF' transform='rotate(-15 44 137)'/%3E%3Crect x='120' y='150' width='10' height='16' rx='2' fill='%23F45B8A' transform='rotate(60 125 158)'/%3E%3Ccircle cx='100' cy='110' r='6' fill='%23FF8C42'/%3E%3Ccircle cx='170' cy='95' r='5' fill='%233ECFB2'/%3E%3Ccircle cx='25' cy='90' r='5' fill='%23FFC93C'/%3E%3Cpath d='M150 180l8-12 8 12z' fill='%236C8CFF'/%3E%3Cpath d='M60 20l6-10 6 10z' fill='%23FF8C42'/%3E%3C/g%3E%3C/svg%3E");background-size:300px 300px;background-position:120px 60px;opacity:.55;animation:confFall 22s linear infinite reverse}
@keyframes confFall{from{background-position-y:0}to{background-position-y:220px}}
.t-konfeti .gate{background:linear-gradient(180deg,var(--p1),var(--p2))}
.t-konfeti .frame{border:3px solid var(--gl);border-radius:30px;background:var(--card);box-shadow:0 20px 50px rgba(0,0,0,.08)}
.t-konfeti .frame::before{content:'';position:absolute;inset:8px;border:1.5px dashed var(--line);border-radius:22px;pointer-events:none}
.t-konfeti .names{font-size:46px;color:var(--gl)} .t-konfeti .names .amp{color:var(--tx2);font-size:28px}
.t-konfeti .greeting p::first-line{font-size:32px;color:var(--gl)}
.t-konfeti .datebig{font-family:var(--fn);font-size:60px;font-weight:700;color:var(--tx)}
.t-konfeti .cd div{border:0;border-radius:18px;background:var(--gl);color:#fff} .t-konfeti .cd b{font-family:var(--fn);font-size:34px;color:#fff} .t-konfeti .cd span{color:rgba(255,255,255,.85)}
.t-konfeti .ev,.t-konfeti .parents div,.t-konfeti .note,.t-konfeti .wi,.t-konfeti .gift .card,.t-konfeti .tl .it,.t-konfeti .next{border:2px solid var(--line);border-radius:20px;background:var(--card)}
.t-konfeti .ev .t{font-family:var(--fn);font-size:30px;font-weight:700;color:var(--gl)}
.t-konfeti .btn{border-width:2px;border-radius:999px} .t-konfeti .btn.primary{background:var(--gl);border-color:var(--gl)}
.t-konfeti .photo{border-radius:30px;border:5px solid #fff;box-shadow:0 12px 30px rgba(0,0,0,.12);transform:rotate(-2deg)}
@media (prefers-reduced-motion:reduce){.t-konfeti .wash,.t-konfeti .wash::after{animation:none}}
