

@font-face{
  font-family:'XXII Arabian OneNightStand Cyr';
  src:url(../fonts/font-1.ttf) format('truetype');
  font-weight:400 900;
  font-style:normal;
  font-display:block;
}
@import url('https://fonts.googleapis.com/css2?family=El+Messiri:wght@500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Montserrat:wght@400;500;600&display=swap');
:root{
  --bg:#071316;--panel:rgba(6,17,19,.82);--gold:#d9b15a;--gold2:#f1d391;
  --cream:#f7ebd4;--muted:#c7bba7;--teal:#16484c;--wine:#6e282c
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,#0b2f31,#0e3d3e 42%,#092729);color:var(--cream);font-family:Montserrat,Arial,sans-serif}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.10;z-index:50;
background-image:radial-gradient(circle at 14% 20%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 82% 75%,#fff 0 1px,transparent 1.5px);
background-size:135px 135px,185px 185px}
a{color:inherit}
.container{width:min(1160px,calc(100% - 36px));margin:auto;position:relative;z-index:3}
.hero{min-height:100vh;position:relative;overflow:hidden;display:grid;align-items:center;
background:
radial-gradient(circle at 75% 30%,rgba(24,79,81,.42),transparent 34%),
linear-gradient(90deg,rgba(4,31,33,.86),rgba(4,31,33,.56) 44%,rgba(4,31,33,.22)),
linear-gradient(180deg,rgba(3,20,21,.18),rgba(3,20,21,.58))}
.hero:after{content:"";position:absolute;inset:0;background:
linear-gradient(90deg,transparent 0 54%,rgba(0,0,0,.34) 70%,rgba(0,0,0,.60) 100%);
pointer-events:none}
.hero-bg{position:absolute;inset:0;background:
linear-gradient(90deg,rgba(5,38,40,.90),rgba(5,38,40,.50) 42%,rgba(5,38,40,.15) 100%),
url(../images/image-1.png) 74% 45%/auto 120% no-repeat;
opacity:.38;filter:saturate(.9) contrast(1.05);transform:scale(1.03)}
.orn{position:absolute;left:0;right:0;height:56px;z-index:4;opacity:.78;background:
linear-gradient(135deg,transparent 45%,var(--gold) 46%,var(--gold) 50%,transparent 51%) 0 0/36px 36px,
linear-gradient(45deg,transparent 45%,var(--gold) 46%,var(--gold) 50%,transparent 51%) 18px 0/36px 36px;
mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.orn.top{top:0}.orn.bottom{bottom:0;transform:rotate(180deg)}
.hero-grid{display:grid;grid-template-columns:1.03fr .97fr;gap:54px;align-items:center;padding:78px 0}
.kicker{font-size:10px;letter-spacing:5px;text-transform:uppercase;color:var(--gold2);margin-bottom:10px}
.name{font:600 clamp(58px,8vw,100px)/.84 Arial;color:var(--gold2);margin:0}
.age{font:700 clamp(120px,18vw,215px)/.72 Arial;color:var(--gold);letter-spacing:-5px;text-shadow:0 20px 60px #000;margin:10px 0}
.hero-age-phrase{font-size:clamp(78px,12vw,150px);letter-spacing:-2px;white-space:nowrap}

.tagline{font:500 clamp(28px,4vw,54px)/1 Arial;margin-top:26px;max-width:560px;text-align:center;text-wrap:balance}
.lead{max-width:610px;color:var(--muted);line-height:1.9;font-size:14px;margin-top:22px}
.actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border:1px solid rgba(217,177,90,.58);
background:rgba(5,15,17,.66);color:var(--cream);text-decoration:none;text-transform:uppercase;letter-spacing:2px;font-size:10px;cursor:pointer}
.btn.primary{background:linear-gradient(135deg,var(--wine),#88363a);border-color:#bd756a}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 35px rgba(217,177,90,.12)}

.photo-wrap{justify-self:end;width:min(500px,100%);position:relative}
.photo-frame{position:relative;padding:11px;background:linear-gradient(145deg,#f0d18e,#7b5a2a 42%,#d9b15a);
box-shadow:0 30px 90px rgba(0,0,0,.50)}
.photo-frame:before,.photo-frame:after{content:"";position:absolute;inset:8px;border:1px solid rgba(255,244,208,.55);pointer-events:none}
.photo-frame img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;object-position:center;position:relative;z-index:1}
.photo-caption{position:absolute;left:28px;right:28px;bottom:28px;z-index:2;padding:15px 17px;
background:linear-gradient(90deg,rgba(3,10,11,.88),rgba(3,10,11,.20));backdrop-filter:blur(8px);
font:500 28px/1 Arial;color:var(--gold2)}
.photo-caption small{display:block;font:10px Montserrat;letter-spacing:2px;text-transform:uppercase;color:#ddd0b9;margin-top:7px}

.lantern{position:absolute;width:68px;height:96px;border:1px solid rgba(240,212,151,.35);border-radius:45%;
box-shadow:0 0 30px rgba(217,177,90,.12),inset 0 0 22px rgba(217,177,90,.06);z-index:2;animation:float 7s ease-in-out infinite}
.lantern:before,.lantern:after{content:"";position:absolute;left:50%;transform:translateX(-50%);background:var(--gold)}
.lantern:before{width:16px;height:9px;top:-7px;border-radius:3px}
.lantern:after{width:1px;height:26px;top:-28px;box-shadow:0 0 10px rgba(217,177,90,.65)}
.lantern span{position:absolute;left:50%;bottom:-16px;width:1px;height:16px;background:var(--gold)}
.l1{left:3%;top:18%;transform:scale(.72);animation-delay:-1s}.l2{right:6%;top:12%;transform:scale(.85);animation-delay:-3s}
.l3{left:14%;bottom:9%;transform:scale(.52);animation-delay:-4s}.l4{right:20%;bottom:6%;transform:scale(.58);animation-delay:-2s}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -20px}}

section{padding:100px 0;position:relative}
.section-label{text-align:center;text-transform:uppercase;letter-spacing:5px;color:var(--gold);font-size:10px;margin-bottom:13px}
h2{font:600 54px/1 Arial;color:var(--gold2);text-align:center;margin:0 0 22px}
.panel{padding:46px;position:relative;background:linear-gradient(180deg,rgba(13,64,64,.68),rgba(7,32,34,.74));
border:1px solid rgba(217,177,90,.28);box-shadow:0 25px 70px rgba(0,0,0,.25);margin-top:35px}
.panel:before,.panel:after{content:"✦";position:absolute;color:var(--gold);font-size:22px}
.panel:before{left:20px;top:13px}.panel:after{right:20px;bottom:13px}
.invite{font:500 31px/1.48 Arial;text-align:center;color:#efe1c6}
.invite em{font-style:normal;color:var(--gold2)}
.signature{text-align:center;margin-top:24px;color:var(--gold);font:600 24px Arial}
.event-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(217,177,90,.18);border-bottom:1px solid rgba(217,177,90,.18);margin-top:30px}
.event{padding:26px 18px;text-align:center}.event + .event{border-left:1px solid rgba(217,177,90,.16)}
.event strong{display:block;font:600 30px Arial;color:var(--gold2);margin-bottom:7px}
.event span{font-size:10px;letter-spacing:1.7px;text-transform:uppercase;color:var(--muted)}
.address{text-align:center;margin-top:22px;color:#d6cab7;line-height:1.75;font-size:13px}
.map{display:inline-block;margin-top:14px;color:var(--gold2);text-decoration:none;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;border-bottom:1px solid rgba(217,177,90,.42);padding-bottom:4px}

.rsvp{background:linear-gradient(180deg,rgba(12,70,70,.28),rgba(5,27,29,.12))}
form{max-width:600px;margin:28px auto 0;display:grid;gap:12px}.rsvp-label{font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:var(--gold2);margin-top:4px}
input,select,textarea{width:100%;padding:15px 16px;background:rgba(3,12,14,.72);border:1px solid rgba(217,177,90,.27);color:var(--cream);font:inherit;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--gold)}
.status{min-height:24px;text-align:center;color:var(--gold2);font-size:12px}
.note{text-align:center;color:#908779;font-size:10px;line-height:1.7;margin-top:14px}
footer{padding:34px 0 48px;text-align:center;color:#8d8577;font-size:10px;letter-spacing:3px;text-transform:uppercase}

@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:35px}
  .photo-wrap{justify-self:center;width:min(520px,100%)}
  .hero-bg{background-position:74% center}
  .event-grid{grid-template-columns:1fr}
  .event + .event{border-left:0;border-top:1px solid rgba(217,177,90,.16)}
  section{padding:78px 0}
  .panel{padding:33px 21px}
}
@media(max-width:620px){
  .container{width:min(100% - 28px,1160px)}
  .hero{min-height:auto}
  .hero-grid{padding-top:90px;padding-bottom:60px}
  .hero-bg{opacity:.29;background-position:72% 20%;background-size:auto 90%}
  .invite{font-size:26px}
  h2{font-size:44px}.section-label + h2{font-size:clamp(34px,7vw,50px)}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}

/* XXII Arabian OneNightStand Cyr — принудительно для заголовков */
h1,h2,.age,.tagline,.photo-caption,.event strong{
  font-family:'XXII Arabian OneNightStand Cyr' !important;
}

@font-face{
  font-family:'Arabia Cyrillic';
  src:url(../fonts/font-2.ttf) format('truetype');
  font-weight:400 900;
  font-style:normal;
  font-display:block;
}

body,p,.lead,.address,.note,.status,.kicker,.section-label,
.event span,.eyebrow,.map,.btn,footer,.rsvp-label,
input,select,textarea,button{
  font-family:'Arabia Cyrillic',Arial,sans-serif !important;
}

h1,h2,.age,.tagline,.photo-caption,.event strong,.invite,.signature{
  font-family:'XXII Arabian OneNightStand Cyr' !important;
}

/* Единый шрифт Arabia Cyrillic для всего текста — без декоративных полос над буквами */
html, body, body * {
  font-family:'Arabia Cyrillic', Arial, sans-serif !important;
}

/* Сохраняем форму и размеры крупных заголовков, меняем только гарнитуру. */
h1, h2, .age, .tagline, .photo-caption, .event strong, .invite, .signature {
  font-family:'Arabia Cyrillic', Arial, sans-serif !important;
}


@font-face {
  font-family: 'Embedded_01_XXII_Arabian';
  src: url(../fonts/font-1.ttf) format('truetype');
  font-style: normal;
  font-weight: 400 900;
  font-display: block;
}
.age, .tagline {
  font-family: 'Embedded_01_XXII_Arabian' !important;
}


.guest-list{
  display:grid;
  gap:18px;
}
.guest-card{
  position:relative;
  display:grid;
  gap:12px;
  padding:20px;
  border:1px solid rgba(217,177,90,.28);
  background:rgba(3,12,14,.36);
}
.guest-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:2px;
}
.guest-card-title{
  color:var(--gold2);
  font-family:'EmbeddedCharisSIL', serif;
  font-size:19px;
}
.remove-guest{
  border:0;
  background:transparent;
  color:#b7aa98;
  padding:5px 0;
  font:inherit;
  font-size:12px;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
}
.remove-guest:hover{color:var(--gold2)}
.guest-kind-note{
  margin:-3px 0 1px;
  color:#9f9587;
  font-size:11px;
  line-height:1.5;
}
.guest-drinks[hidden]{display:none!important}
.add-guest{
  width:100%;
  margin-top:4px;
  background:linear-gradient(135deg,#285c5d,#20494b);
  border-color:rgba(241,211,145,.85);
  color:#ffe4ac;
}
.submit-all{
  margin-top:4px;
}
@media(max-width:620px){
  .guest-card{padding:16px 14px}
  .guest-card-title{font-size:18px}
}


.drink-options{
  display:grid;
  gap:8px;
}
.drink-option{
  display:flex;
  align-items:center;
  gap:11px;
  width:100%;
  box-sizing:border-box;
  padding:13px 15px;
  background:rgba(3,12,14,.72);
  border:1px solid rgba(217,177,90,.27);
  color:var(--cream);
  cursor:pointer;
}
.drink-option:hover{
  border-color:rgba(217,177,90,.55);
}
.drink-option input[type="checkbox"]{
  width:18px !important;
  height:18px;
  min-width:18px;
  margin:0;
  padding:0 !important;
  accent-color:var(--gold);
}
.drink-option span{
  line-height:1.35;
}


@font-face {
  font-family: 'EmbeddedCharisSIL';
  src: url(../fonts/font-3.ttf) format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: 'EmbeddedCharisSIL';
  src: url(../fonts/font-4.ttf) format('truetype');
  font-weight: 400;
  font-style: italic;
  font-display: block;
}
@font-face {
  font-family: 'EmbeddedCharisSIL';
  src: url(../fonts/font-5.ttf) format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: block;
}

/* RSVP: меняем шрифт только у вопросов и ответов, не трогаем заголовок RSVP */
.rsvp form,
.rsvp form label,
.rsvp form input,
.rsvp form select,
.rsvp form textarea,
.rsvp form option,
.rsvp form .drink-option span,
.rsvp form .status {
  font-family: 'EmbeddedCharisSIL', serif !important;
}

.rsvp-label {
  font-size: 14px !important;
  letter-spacing: .3px !important;
  text-transform: none !important;
}

.rsvp input::placeholder,
.rsvp textarea::placeholder {
  font-family: 'EmbeddedCharisSIL', serif !important;
}

.rsvp select,
.rsvp textarea,
.rsvp input,
.rsvp .drink-option {
  font-size: 17px !important;
  line-height: 1.35;
}

.rsvp .drink-option {
  border-radius: 10px;
}

.rsvp .status {
  font-size: 16px !important;
}



/* Вариант 1: орнаментальные рамки вместо табличных линий */
.event-grid{
  border-top:none !important;
  border-bottom:none !important;
  gap:18px !important;
  align-items:stretch;
}
.event + .event{
  border-left:none !important;
}
.event{
  position:relative;
  padding:28px 18px 30px !important;
  background:linear-gradient(180deg,rgba(8,28,30,.76),rgba(8,28,30,.58));
  border:1px solid rgba(217,177,90,.35);
  border-radius:18px;
  box-shadow:0 16px 34px rgba(0,0,0,.18);
}
.event:before,
.event:after{
  content:"✦";
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  color:rgba(217,177,90,.9);
  font-size:18px;
}
.event:before{top:8px;}
.event:after{bottom:8px;}
.event strong{
  display:inline-block;
  padding:10px 20px 8px;
  border:1px solid rgba(217,177,90,.38);
  border-radius:999px;
  background:rgba(217,177,90,.06);
}
.event span{
  display:block;
  margin-top:16px;
}
@media(max-width:900px){
  .event-grid{gap:14px !important;}
}


/* Адрес и ссылка на карту — встроенный Charis SIL */
.address-charis{
  font-family:'EmbeddedCharisSIL', serif !important;
}
.map-charis{
  font-family:'EmbeddedCharisSIL', serif !important;
  font-size:14px !important;
  letter-spacing:.2px !important;
  text-transform:none !important;
}


.map-links{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 22px;
  margin-top:14px;
}
.map-links .map{
  margin-top:0 !important;
}


.success-overlay{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(2,7,9,.76);
  backdrop-filter:blur(5px);
  z-index:9999;
  opacity:0;
  visibility:hidden;
  transition:opacity .32s ease, visibility .32s ease;
}
.success-overlay.show{
  opacity:1;
  visibility:visible;
}
.success-card{
  position:relative;
  width:min(92vw,520px);
  aspect-ratio:320/273;
  overflow:hidden;
  border-radius:18px;
  background-image:url("../images/image-2.png");
  background-size:100% 100%;
  background-repeat:no-repeat;
  background-position:center;
  box-shadow:0 22px 70px rgba(0,0,0,.5);
}
.success-card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:18px;
  box-shadow:inset 0 0 0 1px rgba(255,223,160,.08);
  pointer-events:none;
}
.success-motion-svg{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}
.success-motion-svg .trail-blur{
  stroke:rgba(255,203,96,.26);
  stroke-width:7;
  fill:none;
  stroke-linecap:round;
  filter:blur(2px);
}
.success-motion-svg .trail{
  stroke:rgba(248,190,73,.95);
  stroke-width:2.5;
  fill:none;
  stroke-linecap:round;
  filter:drop-shadow(0 0 8px rgba(255,204,98,.72));
}
.success-motion-svg .spark-run{
  stroke:rgba(255,233,171,.98);
  stroke-width:4.2;
  fill:none;
  stroke-linecap:round;
  stroke-dasharray:0.1 9;
  filter:drop-shadow(0 0 10px rgba(255,217,130,.95));
  animation:dashMove 2.8s linear infinite;
}
.success-motion-svg .spark-run.bottom{animation-duration:3.4s}
.success-motion-svg .orb{
  fill:rgba(255,225,154,.98);
  filter:drop-shadow(0 0 10px rgba(255,214,126,.92));
  animation:orbPulse 2.1s ease-in-out infinite;
}
.success-lantern-glow{
  position:absolute;
  z-index:2;
  border-radius:50%;
  pointer-events:none;
  background:radial-gradient(circle, rgba(255,228,163,.62), rgba(255,185,72,.22) 38%, rgba(255,185,72,0) 72%);
  animation:glowPulse 2.5s ease-in-out infinite;
}
.success-lantern-glow.g1{left:1.2%;top:5%;width:64px;height:64px;animation-delay:.2s}
.success-lantern-glow.g2{left:12%;top:8%;width:42px;height:42px;animation-delay:1.3s}
.success-lantern-glow.g3{right:3.5%;top:5%;width:64px;height:64px;animation-delay:.7s}
.success-lantern-glow.g4{right:2.5%;top:26.5%;width:58px;height:58px;animation-delay:1.8s}
.success-star{
  position:absolute;
  z-index:2;
  color:rgba(255,217,123,.96);
  line-height:1;
  text-shadow:0 0 14px rgba(255,205,104,.5);
  pointer-events:none;
  animation:twinkle 2.6s ease-in-out infinite;
}
.success-star.s1{left:17%;top:18%;font-size:18px;animation-delay:.1s}
.success-star.s2{left:13%;top:43%;font-size:23px;animation-delay:1.0s}
.success-star.s3{left:28%;top:25%;font-size:14px;animation-delay:1.7s}
.success-star.s4{right:13.5%;top:44%;font-size:22px;animation-delay:.5s}
.success-star.s5{right:8.5%;bottom:12%;font-size:24px;animation-delay:1.8s}
.success-star.s6{left:13%;bottom:15%;font-size:19px;animation-delay:2.2s}
.success-star.s7{right:28%;top:23%;font-size:16px;animation-delay:1.2s}
.success-particle{
  position:absolute;
  z-index:2;
  width:4px;
  height:4px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,238,184,.98), rgba(255,193,83,.55) 55%, rgba(255,193,83,0) 75%);
  pointer-events:none;
  animation:floatSpark 4.2s ease-out infinite;
}
.success-particle.p1{left:9%;top:47%;animation-delay:.2s}
.success-particle.p2{left:16%;top:49%;animation-delay:1.1s}
.success-particle.p3{left:21%;top:50%;animation-delay:2s}
.success-particle.p4{left:29%;top:54%;animation-delay:.8s}
.success-particle.p5{left:37%;top:57%;animation-delay:1.6s}
.success-particle.p6{left:62%;bottom:8%;animation-delay:.4s}
.success-particle.p7{left:71%;bottom:7%;animation-delay:1.4s}
.success-particle.p8{left:79%;bottom:6%;animation-delay:2.2s}
.success-particle.p9{left:88%;bottom:7%;animation-delay:3s}

@keyframes twinkle{
  0%,100%{opacity:.48;transform:scale(.9)}
  50%{opacity:1;transform:scale(1.18)}
}
@keyframes glowPulse{
  0%,100%{opacity:.42;transform:scale(.95)}
  50%{opacity:.88;transform:scale(1.10)}
}
@keyframes dashMove{
  from{stroke-dashoffset:0}
  to{stroke-dashoffset:-54}
}
@keyframes orbPulse{
  0%,100%{opacity:.8;transform:scale(1)}
  50%{opacity:1;transform:scale(1.15)}
}
@keyframes floatSpark{
  0%{opacity:0;transform:translate(0,0) scale(.7)}
  15%{opacity:1}
  100%{opacity:0;transform:translate(20px,-14px) scale(1.35)}
}

@media(max-width:520px){
  .success-card{width:min(95vw,410px)}
  .success-lantern-glow.g1{width:54px;height:54px}
  .success-lantern-glow.g2{width:36px;height:36px}
  .success-lantern-glow.g3{width:54px;height:54px}
  .success-lantern-glow.g4{width:50px;height:50px}
}


/* Matching gold ornaments above event details and the style note. */
.details-ornament,.style-ornament{display:block;width:300px;max-width:88%;height:56px;color:var(--gold);pointer-events:none;opacity:.9}
.details-ornament{position:absolute;left:50%;top:-128px;transform:translateX(-50%)}
.style-ornament{margin:36px auto 0}
@media(max-width:900px){
  .details-ornament{top:-106px}
}

.guest-food[hidden],.guest-food-label[hidden]{display:none!important}