/*
 * Alpomish — sunnat to'yi. «Alpomish» dostoni: bola bobosining hech kim torta olmagan kamonini tortadi,
 * o'qi tog' cho'qqisiga yetadi — yigitlikka birinchi qadam. Shior: «kichik botirning katta kuni».
 * Hikoya: tong oldi (intro) → quyoshli bayram hovlisi (hero) → kechki tog', cho'qqida yulduz va o'q izi (yakun).
 * Ranglar: tong oldi zangori, qizil to'n, quyosh-oltin; yorug' bo'limlar quyoshli och.
 *
 * Bo'limlar navbatma-navbat: quyoshli (invite, photo, program, gift) va zangori (date, venue, rsvp).
 * Kontrast: qizil #C0392B quyoshli fonda 4.9:1 — matnda ishlatsa bo'ladi; oltin #F2A541 faqat bezak va to'q fonda.
 */
:root{
  --page:#0E2A47;
  --bg:#FFF4E0; --bg-2:#FFF4E0;
  --ink:#1B2433; --muted:#5E5A55;
  --accent:#C0392B; --accent-ink:#FFF8EC; --title:#A92F23;
  --gold:#E0912F; --gold-2:#FFD27A;
  --navy:#0E2A47; --navy-2:#12355B; --sun:#F2A541; --sun-2:#FFD27A;
  --line:rgba(120,70,20,.18); --card:#FFFBF2; --ring:rgba(192,57,43,.14);
  --display:"Alegreya SC",Georgia,serif; --serif:"Alegreya",Georgia,serif; --sans:"Rubik",system-ui,sans-serif;
  --hero-ink:#0E2A47;
  --veil:linear-gradient(rgba(255,248,232,.72),rgba(255,248,232,.38) 30%,rgba(255,248,232,0) 46%,rgba(255,248,232,0) 74%,rgba(14,42,71,.4));
  --veil-final:linear-gradient(rgba(10,22,40,0) 50%,rgba(10,22,40,.45) 66%,rgba(10,22,40,.88));
  --chip-bg:rgba(14,42,71,.62); --chip-ink:#FFD27A; --chip-muted:#D8E2EE; --chip-line:rgba(255,210,122,.32);
  --radius:999px;
  --dissolve:1.3s;
  /* ajratgich: o'rtada kichik kamon va o'q (mask — rangi CSS'dan) */
  --bowline:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='24' viewBox='0 0 240 24'%3E%3Cpath d='M8 12h84M148 12h84' stroke='%23000' stroke-width='1' stroke-dasharray='1 4' stroke-linecap='round'/%3E%3Cpath d='M106 2c10 4 14 10 14 10s4 6 14 10' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' transform='rotate(-90 120 12) translate(0 0)'/%3E%3Cpath d='M106 4c6 6 6 10 0 16' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3Cpath d='M106 4v16' stroke='%23000' stroke-width='.8'/%3E%3Cpath d='M98 12h40' stroke='%23000' stroke-width='1.4'/%3E%3Cpath d='M138 12l-6-3.5v7z'/%3E%3Cpath d='M98 12l-4-3M98 12l-4 3M101 12l-4-3M101 12l-4 3' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E");
  /* burchak: do'ppi naqshidagi qalampir (bodom) */
  --qalampir:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cpath d='M30 4c14 6 20 18 16 30-3 10-12 16-20 22 2-8 0-12-6-18-8-8-6-24 10-34z'/%3E%3Cpath d='M30 14c8 4 11 11 9 18-2 6-7 10-12 13' fill='none' stroke='%23fff' stroke-width='2.2'/%3E%3Cpath d='M33 4c4-2 6-2 8 0' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
}
body{font-size:18.5px}

/* ---------- Zangori bo'limlar ---------- */
.sec{color:var(--ink);background:var(--bg)}
.sec.invite,.sec.photo,.sec.program,.sec.gift{background:
  radial-gradient(110% 55% at 50% 0%,rgba(255,214,140,.38),transparent 62%),#FFF4E0}
.sec.date,.sec.venue,.sec.rsvp{
  --bg:#0E2A47; --bg-2:#0E2A47;
  --ink:#F4F1EA; --muted:#B9C7D8;
  --accent:#FFD27A; --accent-ink:#0E2A47; --title:#FFD27A;
  --gold:#F2A541;
  --line:rgba(255,210,122,.22); --card:rgba(255,255,255,.05); --ring:rgba(242,165,65,.25);
  background:
    radial-gradient(100% 45% at 50% 0%,rgba(242,165,65,.13),transparent 60%),
    radial-gradient(1.3px 1.3px at 14% 16%,rgba(255,255,255,.75),transparent),
    radial-gradient(1px 1px at 82% 10%,rgba(255,255,255,.6),transparent),
    radial-gradient(1.2px 1.2px at 60% 28%,rgba(255,255,255,.5),transparent),
    linear-gradient(#12355B,#0E2A47 60%,#0B2239);
}

/* ---------- Intro: tong oldi, toshda kamon ---------- */
.intro .scene{background:#0E2A47;container-type:size}
.intro .film__art{background:linear-gradient(#0b1f3a 0%,#1d3d6b 30%,#6a5a8a 44%,#e09060 52%,#6a5a50 60%,#3a2a24 100%)}
.ap{position:absolute;left:50%;top:50%;width:100%;height:100%;transform:translate(-50%,-50%)}
@supports (width:1cqw){ .ap{width:max(100cqw,56.25cqh);height:auto;aspect-ratio:9/16} }
.ap i,.ap svg{position:absolute;display:block}
.ap__sun{left:50%;top:22%;width:30px;height:30px;margin:-15px;border-radius:50%;opacity:0;background:radial-gradient(circle,#fffbe8 0 30%,#ffe2a0 50%,rgba(255,210,140,0) 72%)}
.ap__peak{left:10%;right:10%;top:20%;height:16%;background:linear-gradient(#f6efe8,#8a9ab8 30%,#3a4a6a);clip-path:polygon(0 100%,30% 45%,42% 52%,50% 0,58% 40%,70% 30%,100% 100%)}
.ap__rock{left:-6%;right:-6%;top:51%;bottom:0;border-radius:40% 40% 0 0/12% 12% 0 0;background:linear-gradient(#8a6a50,#5a4030 30%,#3a2a20)}
/* kamon: dastasidagi oltin plastinka hotspot nuqtasida (x .5, y .497) */
.ap__bow{left:2%;width:96%;top:41.5%;aspect-ratio:400/80;overflow:visible;filter:drop-shadow(0 10px 10px rgba(0,0,0,.45))}
.ap__arrow{left:50%;top:48%;width:3px;height:70px;margin-left:-1.5px;border-radius:2px;opacity:0;background:linear-gradient(#fff6d0,#F2A541 30%,#8a5a10);box-shadow:0 0 12px #FFD27A}
.ap__flash{left:50%;top:22%;width:40px;height:40px;margin:-20px;border-radius:50%;opacity:0;background:radial-gradient(circle,#fffaf0 0%,#ffe6b0 40%,rgba(255,220,160,0) 70%)}
/* videosiz ochilish (≈3 s): kamon ko'tariladi, ip tortiladi → o'q oltin iz bilan cho'qqiga → yumshoq quyosh → sahifa */
.intro.no-video .ap__bow{animation:lift .9s ease-out forwards}
@keyframes lift{to{transform:translateY(-14%) scale(1.04)}}
.intro.no-video .ap__string{animation:draw .5s .4s ease-in forwards,release .1s .95s forwards}
@keyframes draw{to{d:path("M14 10L200 44L386 10")}}
@keyframes release{to{d:path("M14 10L200 10L386 10")}}
.intro.no-video .ap__arrow{animation:fly .9s 1s cubic-bezier(.5,0,.8,.6) forwards}
@keyframes fly{0%{opacity:1;transform:none}100%{opacity:1;transform:translateY(-370%) scaleY(1.6);box-shadow:0 60px 30px -10px rgba(255,210,122,.6)}}
.intro.no-video .ap__sun{animation:sunup 1.2s 1.8s ease-out forwards}
@keyframes sunup{to{opacity:1;transform:scale(3)}}
.intro.no-video .ap__flash{animation:flash 1s 2.2s ease-in forwards}
@keyframes flash{to{opacity:1;transform:scale(60)}}

.intro__kicker{position:absolute;top:9%;bottom:auto;left:0;right:0;text-align:center;z-index:3;font-family:var(--sans);font-size:11px;letter-spacing:.38em;font-weight:600;color:#FFE7B8;text-transform:uppercase;transition:opacity .5s;text-shadow:0 1px 10px rgba(0,0,0,.85)}
body.is-opening .intro__kicker{opacity:0}
.intro__to{top:auto;bottom:17.5%;color:#FFF6E2;font-family:var(--display);font-weight:700;font-size:clamp(23px,6.6vw,29px);line-height:1.2;text-shadow:0 2px 14px rgba(0,0,0,.9),0 0 3px rgba(0,0,0,.6)}
.intro__hint{bottom:6.5%;color:#0E2A47;background:rgba(255,246,226,.95);padding:13px 22px;border-radius:999px;box-shadow:0 8px 28px rgba(0,0,0,.5)}
.intro__hint::before{content:"";width:8px;height:8px;border-radius:50%;background:#C0392B;animation:ping 1.6s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(192,57,43,.6)}70%,100%{box-shadow:0 0 0 10px rgba(192,57,43,0)}}
.intro{--pulse:rgba(255,215,140,.85)}
.intro__pulse i{border-width:1.5px;box-shadow:0 0 16px rgba(255,210,122,.45)}
/* bosilganda: kamondan oltin to'lqin */
body.is-opening .intro .intro__pulse{opacity:1;transition:none}
body.is-opening .intro__pulse i{border:2px solid #FFD27A;box-shadow:0 0 22px rgba(255,200,100,.65);animation:wave 1.2s cubic-bezier(.2,.6,.3,1) forwards}
body.is-opening .intro__pulse i+i{animation-delay:.2s}
@keyframes wave{from{transform:scale(.6);opacity:1}to{transform:scale(4.5);opacity:0}}
/* «A» — kamon dastasidagi oltin plastinkaga o'yilgandek */
.intro__mono{position:absolute;z-index:2;transform:translate(-50%,-50%);display:flex;align-items:baseline;pointer-events:none;white-space:nowrap;
  font-family:var(--display);font-weight:800;font-size:calc(var(--pr,80px) * .6);line-height:1;
  color:rgba(110,50,10,.85);text-shadow:0 1px 0 rgba(255,236,170,.8),0 -1px 0 rgba(60,20,0,.45);transition:opacity .5s ease}
body.is-opening .intro__mono{opacity:0}

/* ---------- Hero: quyoshli bayram hovlisi ---------- */
.hero .film__art{background:linear-gradient(#5aa0e0,#a8d0f0 40%,#f6e6c4 62%,#c88a50)}
.hero .film__art i{position:absolute;display:block}
.hero .film__art i:nth-child(1){left:-5%;right:-5%;top:34%;height:22px;background:
  linear-gradient(135deg,transparent 50%,transparent 0),
  conic-gradient(from 150deg at 8px 0,#C0392B 0 60deg,transparent 0) 0 0/32px 22px repeat-x,
  conic-gradient(from 150deg at 8px 0,#F2A541 0 60deg,transparent 0) 16px 0/32px 22px repeat-x;animation:flags 3s ease-in-out infinite alternate}
@keyframes flags{to{transform:translateY(3px) skewX(-3deg)}}
.hero .film__art i:nth-child(2){left:0;right:0;bottom:0;height:34%;background:linear-gradient(#b0623a,#7a3a1c)}
.hero .film__art i:nth-child(3){left:20%;right:20%;bottom:24%;height:12%;border-radius:12px;background:repeating-linear-gradient(90deg,#C0392B 0 14px,#a02a1e 14px 18px,#F2A541 18px 22px)}
.hero .film__art i:nth-child(n+4){display:none}
.hero__text{top:0;bottom:0;padding-top:12vh;padding-top:12svh}
.hero .eyebrow{color:#A92F23;letter-spacing:.4em;font-weight:600}
.names{font-weight:800;font-size:clamp(50px,15vw,68px);line-height:1;color:#0E2A47;text-shadow:0 0 18px rgba(255,248,232,.85),0 0 4px rgba(255,248,232,.9)}
.names.shine .names__one{background:linear-gradient(110deg,#0E2A47 0 36%,#a2580f 45%,#FFD27A 50%,#a2580f 55%,#0E2A47 64% 100%);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 0 10px rgba(255,248,232,.9));animation:shine 6s ease-in-out infinite}
@keyframes shine{0%{background-position:100% 0}60%,100%{background-position:0 0}}
.hero__sub{font-family:var(--serif);font-style:italic;font-weight:500;font-size:23px;color:#0E2A47;text-shadow:0 0 12px rgba(255,248,232,.95)}
.hero .datepill{position:absolute;left:0;right:0;bottom:12.5%;margin:0 auto;width:max-content;background:#C0392B;color:#FFF8EC;box-shadow:0 10px 26px rgba(120,20,10,.4)}
.hero .cue{color:#FFF8EC;text-shadow:0 1px 8px rgba(0,0,0,.7)}

/* ---------- Bo'limlar ---------- */
.sec{padding:84px 26px}
.sec + .sec::before,.final::before{content:"";position:absolute;left:50%;top:-12px;width:230px;height:24px;margin-left:-115px;z-index:3;
  background:linear-gradient(90deg,#C0392B,#FFD27A 50%,#C0392B);-webkit-mask:var(--bowline) center/contain no-repeat;mask:var(--bowline) center/contain no-repeat}
.title{font-weight:700;font-size:clamp(34px,10vw,44px)}
.orn{display:block;width:200px;height:22px;margin:12px auto 18px;background:var(--gold);-webkit-mask:var(--bowline) center/contain no-repeat;mask:var(--bowline) center/contain no-repeat}
.orn i,.orn b{display:none}
.lead{font-size:21px}

/* taklif: burchaklarda qalampir */
.invite{padding-top:110px;padding-bottom:110px}
.invite > :not(.corner){position:relative}
.corner{width:64px;height:64px;background:#C0392B;opacity:.85;-webkit-mask:var(--qalampir) 0 0/contain no-repeat;mask:var(--qalampir) 0 0/contain no-repeat}
.corner--tl{left:16px;top:18px;transform:rotate(-30deg)}.corner--br{right:16px;bottom:18px;transform:rotate(150deg)}
.invite .body{font-size:20.5px}
.invite .body b{color:var(--accent)}
.hosts{font-family:var(--serif);font-style:italic;font-weight:500;font-size:25px}

/* bola surati: oltin-qizil naqshli ramka */
.photo__frame{padding:9px;background:repeating-conic-gradient(#C0392B 0 10deg,#F2A541 10deg 20deg);box-shadow:0 0 0 3px #FFF4E0,0 0 0 5px #E0912F,0 16px 40px rgba(120,60,10,.3)}
.photo__cap{font-weight:700;color:var(--title)}

/* manzil, to'yona, javob: burchakda qalampir */
.sec.venue::after,.sec.gift::after,.sec.rsvp::after{content:"";position:absolute;right:16px;top:18px;width:44px;height:44px;pointer-events:none;opacity:.55;transform:rotate(25deg);
  background:var(--gold);-webkit-mask:var(--qalampir) 0 0/contain no-repeat;mask:var(--qalampir) 0 0/contain no-repeat}
.sec.venue::before,.sec.gift::before,.sec.rsvp::before{z-index:3}

/* sana: quyosh diski */
.bigdate__day{flex:none}
.bigdate__day::before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 38% 32%,#fff6d8,#FFD27A 36%,#F2A541 70%,#c0701f);box-shadow:0 0 0 6px #0E2A47,0 0 0 7.5px #C0392B,0 0 50px rgba(255,210,122,.35)}
.bigdate__day::after{content:"";position:absolute;inset:-18px;border-radius:50%;background:repeating-conic-gradient(rgba(255,210,122,.55) 0 3deg,transparent 3deg 15deg);-webkit-mask:radial-gradient(circle,transparent 62%,#000 63%,#000 70%,transparent 71%);mask:radial-gradient(circle,transparent 62%,#000 63%,#000 70%,transparent 71%);animation:spin 50s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.bigdate__day b{font-weight:800;color:#0E2A47}
.cal__grid span.event{background:#C0392B;color:#fff;box-shadow:0 0 0 2px #FFD27A,0 0 16px rgba(255,210,122,.5);animation:glow 2.2s ease-in-out infinite}
@keyframes glow{50%{box-shadow:0 0 0 2px #fff,0 0 24px rgba(255,210,122,.7)}}
.cd__row b{font-weight:700}
.sec.date .btn.ghost{border-color:rgba(255,210,122,.45)}

/* dastur: vaqt chizig'i — uchib ketayotgan o'qning oltin izi, oxirida o'q uchi */
.program .timeline::before{width:3px;margin-left:-1px;background:linear-gradient(rgba(242,165,65,0),#F2A541 12%,#FFD27A 60%,#C0392B);box-shadow:0 0 10px rgba(242,165,65,.5);bottom:-6px}
.program .timeline::after{content:"";position:absolute;left:66px;bottom:-22px;width:18px;height:18px;background:#C0392B;clip-path:polygon(50% 100%,0 0,50% 30%,100% 0)}
.program .tl__ic{background:linear-gradient(135deg,#C0392B,#8f2419);color:#FFE7B8;box-shadow:0 0 0 4px var(--bg),0 0 0 5.5px #F2A541}
.program .tl__t{color:var(--accent);font-weight:600}

.btn.primary{box-shadow:0 10px 24px rgba(150,40,20,.25)}
.sec.venue .btn.primary,.sec.rsvp .btn.primary{background:linear-gradient(180deg,#FFD27A,#F2A541);color:#0E2A47;box-shadow:0 10px 26px rgba(0,0,0,.35)}
.btn.taxi{background:#ffdb4d;border-color:#f2c900;color:#1c1c1c}
.map{border-color:rgba(255,210,122,.25)}

/* to'yona: qizil to'n — oltin zarbof chiziqlar */
.gift .card{color:#FFF8EC;background:
  repeating-linear-gradient(115deg,transparent 0 22px,rgba(255,210,122,.16) 22px 24px),
  radial-gradient(120% 90% at 100% 0%,rgba(255,210,122,.35),transparent 60%),
  linear-gradient(135deg,#7a1c14,#C0392B 60%,#d9582f);box-shadow:0 18px 40px rgba(150,40,20,.35)}
.card__chip{background:linear-gradient(135deg,#fff6d8,#F2A541 60%,#a2580f)}

.choice input{accent-color:#F2A541}
.thanks h3{color:var(--title)}

/* ---------- Yakun: kechki tog'lar, cho'qqida yulduz, osmonda o'q izi ---------- */
.final .film__art{background:linear-gradient(#0b1a33,#1d2f5a 40%,#5a4a7a 52%,#2a3050 60%,#0b1a33 70%)}
.final .film__art i{position:absolute;display:block}
.final .film__art i:nth-child(1){left:62%;top:14%;width:20px;height:20px;margin:-10px;border-radius:50%;background:radial-gradient(circle,#fff 0 25%,#FFD27A 45%,rgba(255,210,122,0) 70%);box-shadow:0 0 40px 14px rgba(255,220,150,.45);animation:twinkle 2.4s ease-in-out infinite alternate}
@keyframes twinkle{to{transform:scale(1.25);opacity:.8}}
.final .film__art i:nth-child(2){left:6%;top:12%;width:58%;height:12%;border-top:2px solid rgba(255,210,122,.75);border-radius:100% 100% 0 0;filter:drop-shadow(0 0 6px #FFD27A);transform:rotate(-8deg)}
.final .film__art i:nth-child(3){left:0;right:0;top:30%;height:30%;background:linear-gradient(#d8dcea,#5a6a8a 30%,#1d2a48);clip-path:polygon(0 100%,18% 50%,30% 60%,46% 8%,58% 40%,72% 28%,100% 100%)}
.final .film__art i:nth-child(n+4){display:none}
.final{color:#F4F1EA}
.final__text{bottom:7%}
.final .title{color:#FFD27A;font-weight:800;text-shadow:0 2px 20px rgba(0,0,0,.5)}
.final .names--sm{font-size:28px;font-weight:700;color:#F4F1EA;text-shadow:0 2px 14px rgba(0,0,0,.6)}
.final .lead{font-style:italic;text-shadow:0 1px 10px rgba(0,0,0,.6)}
