:root{
  --black:#090807;
  --paper:#f5f1e9;
  --white:#fffdf8;
  --red:#a61d12;
  --red-dark:#5d100c;
  --orange:#e85a22;
  --brown:#6a4b3a;
  --muted:#93877f;
  --hairline:rgba(13,10,8,.22);
}

html{background:var(--black)}
body{background:var(--paper);color:var(--black);font-family:Manrope,Arial,sans-serif}
.grain{z-index:100;opacity:.035;mix-blend-mode:multiply}

.topbar{
  position:absolute;inset:0 0 auto;z-index:10;padding:28px 4.5vw;
  color:rgba(255,255,255,.82);font-size:11px;font-weight:700;
  letter-spacing:.16em;border-bottom:1px solid rgba(255,255,255,.15)
}

.hero{
  min-height:100svh;padding:130px 4.5vw 52px;background:var(--black);isolation:isolate;
  color:var(--white);display:grid;align-items:end;overflow:hidden
}
.hero:before{
  content:"";position:absolute;inset:-25% -15% -20% 25%;z-index:-2;
  width:auto;height:auto;border:0;border-radius:0;
  background:
    radial-gradient(ellipse at 60% 18%,rgba(255,226,180,.9) 0 3%,rgba(238,78,27,.72) 9%,transparent 28%),
    radial-gradient(ellipse at 45% 46%,rgba(185,29,14,.9),transparent 46%),
    linear-gradient(118deg,transparent 22%,rgba(237,85,28,.36) 42%,transparent 65%);
  filter:blur(18px);transform:rotate(-8deg) scale(1.15);animation:lightDrift 12s ease-in-out infinite alternate
}
.hero:after{
  content:"";position:absolute;inset:0;z-index:-1;width:auto;height:auto;border:0;border-radius:0;
  background:linear-gradient(90deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.68) 42%,rgba(0,0,0,.12) 100%),linear-gradient(0deg,rgba(0,0,0,.65),transparent 55%)
}
.hero-grid{width:100%;grid-template-columns:minmax(0,1.25fr) minmax(270px,.55fr);gap:8vw;align-items:end}
.eyebrow{margin-bottom:24px;color:rgba(255,255,255,.72);font-size:11px;letter-spacing:.2em;animation:riseIn .9s .1s both}
.eyebrow:before{width:36px;background:var(--orange)}
.hero h1{font-size:clamp(86px,14vw,220px);line-height:.7;letter-spacing:-.075em;animation:riseIn 1.1s .2s both}
.hero-name{font-weight:400;text-shadow:0 12px 45px rgba(0,0,0,.25)}
.hero-age{
  align-self:flex-start;margin:.28em 0 0 .08em;padding:0;background:none;color:var(--white);
  font-family:Prata,Georgia,serif;font-size:.62em;font-weight:400;font-style:italic;
  line-height:1;letter-spacing:-.08em;transform:none
}
.hero-info{padding:0 0 3vh;animation:riseIn 1s .42s both}
.hero-note{max-width:390px;margin-bottom:30px;font-size:clamp(18px,1.65vw,24px);line-height:1.25;font-weight:600}
.date-pill{
  width:100%;justify-content:space-between;margin:0;padding:16px 0;border:0;border-top:1px solid rgba(255,255,255,.55);
  border-bottom:1px solid rgba(255,255,255,.22);border-radius:0;font-size:13px
}
.date-pill b{color:var(--white)}
.scroll{left:auto;right:4.5vw;bottom:25px;color:rgba(255,255,255,.58);animation:softPulse 2.4s ease-in-out infinite}
.spark{z-index:-1;color:rgba(255,255,255,.25);font-size:28px;animation:floatSpark 7s ease-in-out infinite}.s1{right:7%;bottom:14%}.s2{left:52%;top:18%;font-size:18px}.s3{right:38%;top:35%;font-size:12px}

section{padding:120px 4.5vw}
.intro{min-height:78svh;grid-template-columns:.42fr 1.58fr;gap:6vw;align-items:start;background:var(--paper);border-bottom:1px solid var(--hairline)}
.kicker{color:var(--red);font-size:11px;letter-spacing:.18em}
.big-copy{max-width:1100px;font-family:Manrope,Arial,sans-serif;font-size:clamp(44px,6vw,96px);font-weight:700;line-height:.98;letter-spacing:-.065em}
.big-copy i{color:var(--red);font-family:Prata,Georgia,serif;font-weight:400}

.countdown{padding:0;background:var(--black);color:var(--white);border:0}
.count-grid{border:0;grid-template-columns:repeat(4,1fr)}
.count-item{min-height:260px;padding:42px 4.5vw;border-right:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;justify-content:space-between}
.count-item:last-child{border-right:0}
.count-num{font-family:Manrope,Arial,sans-serif;font-size:clamp(68px,9vw,140px);font-weight:600;line-height:.8;letter-spacing:-.08em}
.count-label{color:rgba(255,255,255,.58);font-size:11px}

.chapter{padding-top:140px;padding-bottom:140px;background:linear-gradient(145deg,var(--red-dark),var(--red) 55%,#c53d18);color:var(--white)}
.chapter:after{content:"25";position:absolute;right:-.03em;bottom:-.28em;color:rgba(255,255,255,.055);font:400 clamp(300px,48vw,760px)/1 Prata,serif;letter-spacing:-.12em;pointer-events:none}
.chapter h2{position:relative;z-index:1;max-width:980px;font-family:Manrope,Arial,sans-serif;font-size:clamp(54px,8vw,122px);font-weight:700;line-height:.88;letter-spacing:-.07em}
.chapter h2 em{color:var(--white);font-family:Prata,serif;font-weight:400}
.cards{position:relative;z-index:1;gap:0;border-top:1px solid rgba(255,255,255,.45)}
.card,.card:nth-child(1),.card:nth-child(2),.card:nth-child(3){min-height:330px;padding:28px 28px 20px;background:transparent;color:var(--white);border-right:1px solid rgba(255,255,255,.28);border-radius:0;transform:none}
.card:last-child{border-right:0}.card-no{font-family:Manrope,sans-serif;font-size:15px}.card p{max-width:320px;font-size:24px;font-weight:600;line-height:1.18}.sticker{padding:0;background:none;color:rgba(255,255,255,.55);font-size:10px;transform:none}

.details{min-height:85svh;padding-top:140px;background:var(--paper);grid-template-columns:1.1fr .9fr;gap:8vw}
.details h2{font-family:Manrope,sans-serif;font-size:clamp(60px,9vw,140px);font-weight:700;line-height:.83;letter-spacing:-.075em}.details h2 span{color:var(--red);font-family:Prata,serif;font-weight:400}
.detail-list{border-color:var(--black)}.detail{grid-template-columns:100px 1fr;padding:26px 0}.detail small{font-size:10px}.detail strong{font-size:21px}.soon{opacity:.48}

.program{padding-top:130px;padding-bottom:130px;background:var(--black);color:var(--white);border:0}
.section-head{align-items:start;margin-bottom:78px}.section-head h2{font-family:Manrope,sans-serif;font-size:clamp(62px,9vw,138px);font-weight:700;line-height:.82;letter-spacing:-.075em}.section-head p{color:rgba(255,255,255,.58);font-size:16px;line-height:1.45}
.timeline{border-color:rgba(255,255,255,.38)}.timeline-row{grid-template-columns:150px 1fr 30px;padding:27px 0;border-color:rgba(255,255,255,.2)}.timeline-row time{font-family:Manrope,sans-serif;font-size:18px;color:var(--orange)}.timeline-row strong{font-size:19px}.timeline-row span{color:var(--orange)}

.wishlist{min-height:72svh;padding-top:140px;background:var(--paper);display:grid;align-content:center;text-align:left;border-bottom:1px solid var(--hairline)}
.wishlist-star{margin:0 0 32px;color:var(--red);font-size:30px}.wishlist h2,.rsvp h2{font-family:Manrope,sans-serif;font-size:clamp(66px,10vw,150px);font-weight:700;line-height:.82;letter-spacing:-.075em}.wishlist p{max-width:650px;margin:0;font-size:19px;line-height:1.5}.link-btn{width:max-content;margin-top:42px;padding:15px 0;background:transparent;color:var(--black);border-bottom:1px solid var(--black);border-radius:0;font-size:12px}.link-btn:hover{background:transparent;color:var(--red);transform:none;border-color:var(--red)}

.rsvp{padding-top:150px;padding-bottom:150px;background:var(--white)}
.rsvp-grid{grid-template-columns:.78fr 1.22fr;gap:7vw}.rsvp-copy{top:45px}.rsvp-copy .kicker{margin-bottom:22px}.rsvp-copy p{color:#5d5550}
.guest-form{gap:30px;padding:46px;background:transparent;border:1px solid var(--black);box-shadow:none}
.field{gap:12px;padding-bottom:4px}.field>label,.field>legend,.field>span{font-size:13px;letter-spacing:.04em;line-height:1.45}.field>input,.field>select,.field>textarea{padding:14px 0;border-color:var(--black)}
.checks{gap:8px}.check{padding:11px 15px;border-color:rgba(0,0,0,.25);border-radius:0;font-weight:500}.check:has(input:checked){background:var(--black);color:var(--white);border-color:var(--black)}
.form-btn,button{border-radius:0;background:var(--black);color:var(--white)}.form-btn:hover,button:hover{background:var(--red);color:var(--white)}

.wish{min-height:80svh;padding-top:140px;padding-bottom:140px;background:linear-gradient(160deg,var(--red-dark),var(--red) 58%,var(--orange));display:grid;align-content:center}
.wish h2{font-family:Manrope,sans-serif;font-size:clamp(60px,9vw,132px);font-weight:700;line-height:.85;letter-spacing:-.075em}.wish p{color:rgba(255,255,255,.72)}
.wish-box{max-width:760px;padding:42px;background:rgba(255,255,255,.98);font-family:Prata,serif;transform:none}
.wish button{justify-self:center;background:transparent;border:1px solid rgba(255,255,255,.65)}

footer{padding:46px 4.5vw;background:var(--black);border-top:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.65)}

@keyframes riseIn{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
@keyframes lightDrift{0%{transform:rotate(-8deg) scale(1.08) translate3d(-3%,1%,0)}100%{transform:rotate(-4deg) scale(1.24) translate3d(6%,-3%,0)}}
@keyframes floatSpark{0%,100%{transform:translateY(0) rotate(0);opacity:.18}50%{transform:translateY(-20px) rotate(90deg);opacity:.5}}
@keyframes softPulse{0%,100%{opacity:.45}50%{opacity:1}}

@media(max-width:760px){
  .topbar{padding:22px 5vw;font-size:9px}.topbar span:last-child{display:block}
  .hero{min-height:100svh;padding:110px 5vw 46px;align-items:end}.hero:before{inset:-5% -60% 8% -10%;filter:blur(13px)}.hero:after{background:linear-gradient(0deg,rgba(0,0,0,.86) 0%,rgba(0,0,0,.34) 72%,rgba(0,0,0,.5) 100%)}
  .hero-grid{gap:52px}.hero h1{font-size:clamp(70px,24vw,104px);line-height:.74}.hero-age{margin-top:.34em;font-size:.64em}.eyebrow{font-size:10px}.hero-info{padding:0}.hero-note{font-size:18px;line-height:1.28}.scroll{display:none}.s2{left:auto;right:15%;top:25%}
  section{padding:90px 5vw}.intro{min-height:auto;gap:44px}.big-copy{font-size:clamp(42px,13vw,62px);line-height:.98}
  .count-grid{grid-template-columns:repeat(2,1fr);border:0}.count-item{min-height:170px;padding:27px 5vw;border-bottom:1px solid rgba(255,255,255,.18)}.count-item:nth-child(2){border-right:0}.count-num{font-size:64px}
  .chapter{padding-top:100px;padding-bottom:100px}.chapter h2{font-size:56px;line-height:.92;margin-bottom:55px}.cards{grid-template-columns:1fr}.card,.card:nth-child(1),.card:nth-child(2),.card:nth-child(3){min-height:210px;padding:24px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.25)}.card:last-child{border-bottom:0}.card p{font-size:21px}
  .details{min-height:auto;padding-top:100px;gap:70px}.details h2{font-size:64px;line-height:.88}.detail{grid-template-columns:80px 1fr}.detail strong{font-size:18px}
  .program{padding-top:100px;padding-bottom:100px}.section-head{margin-bottom:55px}.section-head h2{font-size:68px}.timeline-row{grid-template-columns:70px 1fr 18px;gap:10px}.timeline-row time{font-size:15px}.timeline-row strong{font-size:16px;line-height:1.25}
  .wishlist{min-height:68svh;padding-top:100px}.wishlist h2,.rsvp h2{font-size:68px}.wishlist p{font-size:17px}
  .rsvp{padding:105px 5vw}.rsvp-grid{gap:60px}.guest-form{padding:24px 18px}.checks{grid-template-columns:1fr}.check{border-radius:0}.form-btn{border-radius:0}
  .wish{min-height:75svh;padding:100px 5vw}.wish h2{font-size:62px}.wish-box{padding:28px 22px}.wish button{width:auto}
  footer{padding:38px 5vw}
}

@media(max-width:480px){
  html,body{width:100%;max-width:100%;overflow-x:clip}
  main,section,.hero-grid,.intro,.details,.rsvp-grid,.section-head,.count-grid,.cards,.timeline,.guest-form{min-width:0;max-width:100%}
  .topbar{gap:12px;padding:20px;font-size:8px;letter-spacing:.13em;white-space:nowrap}
  .hero{min-height:100svh;padding:96px 20px 34px}
  .hero-grid{display:flex;min-height:calc(100svh - 130px);flex-direction:column;justify-content:flex-end;gap:44px}
  .hero:before{inset:-8% -95% 18% -30%;filter:blur(11px)}
  .hero h1{width:100%;font-size:clamp(62px,22vw,88px);line-height:.78;letter-spacing:-.065em}
  .hero-name{max-width:100%;white-space:normal}
  .hero-age{margin-top:.3em;margin-left:0;font-size:.66em}
  .eyebrow{gap:9px;margin-bottom:20px;font-size:9px;letter-spacing:.15em}.eyebrow:before{width:24px}
  .hero-info{width:100%}.hero-note{max-width:295px;margin-bottom:22px;font-size:17px;line-height:1.3}
  .date-pill{gap:12px;padding:13px 0;font-size:12px}
  .s1{right:4%;bottom:24%}.s2{right:10%;top:19%}.s3{display:none}

  section{padding:80px 20px}
  .intro{display:block}.intro .kicker{margin-bottom:34px}
  .big-copy{font-size:clamp(36px,11.5vw,48px);line-height:1.01;letter-spacing:-.055em;overflow-wrap:break-word}

  .count-item{min-height:145px;padding:23px 20px}.count-num{font-size:clamp(48px,15vw,60px)}.count-label{font-size:9px}

  .chapter{padding:84px 20px}.chapter h2{font-size:clamp(44px,13vw,54px);line-height:.96;letter-spacing:-.055em;overflow-wrap:break-word}.chapter:after{right:-.12em;font-size:330px}
  .card,.card:nth-child(1),.card:nth-child(2),.card:nth-child(3){min-height:185px}.card p{font-size:19px}

  .details{display:block;padding:86px 20px}.details h2{max-width:100%;margin-bottom:64px;font-size:clamp(48px,15vw,60px);line-height:.9;letter-spacing:-.06em;overflow-wrap:break-word}
  .detail{display:grid;grid-template-columns:1fr;gap:8px;padding:20px 0}.detail small{font-size:9px}.detail strong{font-size:17px;line-height:1.35}

  .program{padding:86px 20px}.section-head{display:block;margin-bottom:46px}.section-head h2{max-width:100%;font-size:clamp(52px,16vw,64px);line-height:.88}.section-head p{margin-top:26px}
  .timeline-row{grid-template-columns:54px minmax(0,1fr) 12px;gap:9px;padding:21px 0}.timeline-row time{font-size:13px}.timeline-row strong{font-size:15px;line-height:1.3}.timeline-row span{font-size:15px}

  .wishlist{min-height:auto;padding:90px 20px}.wishlist-star{margin-bottom:22px}.wishlist h2,.rsvp h2,.wish h2{max-width:100%;font-size:clamp(48px,15vw,60px);line-height:.9;letter-spacing:-.06em;overflow-wrap:break-word}.wishlist p{font-size:16px;line-height:1.5}.link-btn{max-width:100%;font-size:10px;line-height:1.4}

  .rsvp{padding:90px 20px}.rsvp-grid{display:block}.rsvp-copy{margin-bottom:50px}.rsvp-copy p{font-size:16px}.guest-form{width:100%;gap:25px;padding:24px 16px}
  .field>label,.field>legend,.field>span{font-size:13px;line-height:1.45;letter-spacing:.035em;overflow-wrap:break-word}
  .field>input,.field>select,.field>textarea{max-width:100%;font-size:16px}.field input[type="file"]{font-size:12px}
  .checks{width:100%}.check{width:100%;min-width:0;padding:12px;font-size:14px;white-space:normal}.form-btn{max-width:100%;padding:16px 12px;font-size:10px}

  .wish{min-height:auto;padding:92px 20px}.wish h2{overflow-wrap:normal}.wish p{font-size:16px;line-height:1.45}.wish-box{width:100%;max-width:100%;min-height:160px;padding:25px 18px;font-size:clamp(21px,7vw,28px);overflow-wrap:break-word}.wish button{max-width:100%;padding:15px 18px;font-size:10px}
  footer{gap:14px;padding:34px 20px;font-size:9px;line-height:1.5}
}

/* Отдельная композиция для телефона — не масштаб десктопной версии */
@media(max-width:600px){
  body{font-size:16px}
  .topbar{align-items:center;padding:18px 18px;font-size:8px;letter-spacing:.1em}.topbar span:first-child{max-width:55%;overflow:hidden;text-overflow:ellipsis}
  .hero{padding:82px 18px 30px}
  .hero-grid{min-height:calc(100svh - 112px);display:flex;flex-direction:column;justify-content:space-between;gap:32px}
  .hero-grid>div:first-child{width:100%;margin-top:10svh;text-align:center}
  .eyebrow{justify-content:center;margin-bottom:22px;font-size:9px;letter-spacing:.13em}.eyebrow:before{display:none}
  .hero h1{align-items:center;width:100%;font-size:clamp(58px,19vw,76px);line-height:.8;letter-spacing:-.055em}
  .hero-name{white-space:nowrap}.hero-age{align-self:center;margin:.34em 0 0;font-size:.7em}
  .hero-info{width:100%;padding:0}.hero-note{max-width:100%;margin:0 0 20px;font-size:16px;line-height:1.35;font-weight:600}
  .date-pill{padding:12px 0;font-size:11px}.spark{display:none}

  section{padding:72px 18px}
  .intro{min-height:auto}.intro .kicker{margin-bottom:28px}.big-copy{font-size:clamp(34px,10.5vw,43px);line-height:1.03;letter-spacing:-.045em}
  .count-item{min-height:130px;padding:21px 18px}.count-num{font-size:clamp(44px,13vw,54px)}
  .chapter{padding:76px 18px}.chapter h2{max-width:330px;margin-bottom:42px;font-size:clamp(39px,11.5vw,48px);line-height:.98;letter-spacing:-.045em}.chapter:after{display:none}
  .card,.card:nth-child(1),.card:nth-child(2),.card:nth-child(3){min-height:160px;padding:20px 0}.card p{max-width:290px;font-size:18px;line-height:1.25}
  .details{padding:76px 18px}.details h2{max-width:330px;margin-bottom:48px;font-size:clamp(42px,12.5vw,52px);line-height:.94;letter-spacing:-.045em}
  .program{padding:76px 18px}.section-head{margin-bottom:38px}.section-head h2{font-size:clamp(44px,13vw,54px);line-height:.92;letter-spacing:-.05em}.section-head p{margin-top:22px;font-size:15px}
  .timeline-row{grid-template-columns:48px minmax(0,1fr);gap:10px;padding:19px 0}.timeline-row time{font-size:12px}.timeline-row strong{font-size:15px}.timeline-row span{display:none}
  .wishlist{padding:78px 18px}.wishlist h2,.rsvp h2,.wish h2{font-size:clamp(42px,12.5vw,52px);line-height:.95;letter-spacing:-.045em}.wishlist p{font-size:16px}.link-btn{margin-top:30px}
  .rsvp{padding:78px 18px}.rsvp-copy{margin-bottom:38px}.rsvp-copy .kicker{margin-bottom:16px}.guest-form{gap:24px;padding:22px 14px}.checks{gap:7px}.check{min-height:48px;padding:11px 12px}.form-btn{min-height:50px;margin-top:2px}
  .wish{padding:78px 18px}.wish h2{max-width:330px;margin-left:auto;margin-right:auto}.wish p{margin-bottom:24px}.wish-box{min-height:145px;padding:22px 17px;font-size:22px}.wish button{margin-top:22px}
  footer{padding:30px 18px}
}

@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
