:root{--bg:#f7f6f3;--paper:#ffffff;--ink:#3f3d3a;--muted:#827e78;--rose:#a99d8c;--rose-dark:#756b5e;--blush:#eeece7;--line:#e4e0d8;--gold:#b7a582;--shadow:0 18px 50px rgba(116,68,82,.10);}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:20px}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 Manrope,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
button,a{font:inherit;-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.topbar{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:flex-end;padding:18px max(18px,env(safe-area-inset-right)) 12px max(18px,env(safe-area-inset-left));gap:10px}
.lang-switch{display:flex;gap:3px;padding:4px;border:1px solid rgba(255,255,255,.75);background:rgba(250,249,246,.92);backdrop-filter:blur(12px);border-radius:999px;box-shadow:0 5px 18px rgba(80,45,58,.08)}
.lang-switch button{border:0;background:transparent;color:var(--muted);padding:7px 12px;border-radius:999px;font-size:12px;font-weight:700;min-width:42px;cursor:pointer}
.lang-switch button[aria-pressed="true"]{background:var(--rose);color:#fff}
.hero{position:relative;min-height:740px;min-height:100svh;display:flex;align-items:flex-end;justify-content:center;padding:100px 20px 48px;overflow:hidden;text-align:center;color:white;background:#77736c}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,34,31,.12) 0%,rgba(35,34,31,.12) 30%,rgba(35,34,31,.78) 100%)}
.hero-content{position:relative;z-index:1;width:min(100%,540px);margin:auto}
.eyebrow{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#e9e3d8;margin:0 0 18px}
h1,h2,.script{font-family:"Playfair Display",Georgia,serif;font-weight:400}
h1{font-size:clamp(42px,12vw,68px);line-height:1.08;margin:0 auto 18px;letter-spacing:-.035em}
h1 span{display:block;font-style:italic;color:#eee8dd}
.hero-desc{max-width:330px;margin:0 auto;color:#f8f6f1;font-size:14px;line-height:1.8}
.hero-date{margin:28px auto 0;display:inline-flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.hero-date::before,.hero-date::after{content:"";width:25px;height:1px;background:#e8c7ce}
.scroll-hint{margin-top:34px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#f8dfe3}
section{padding:62px 20px}
.container{width:min(100%,580px);margin:0 auto}
.intro{text-align:center;padding-top:54px;padding-bottom:42px}
.flower-mark{color:var(--rose);font-size:24px;line-height:1;margin-bottom:17px}
h2{font-size:clamp(30px,8vw,40px);line-height:1.2;margin:0 0 20px;text-align:center}
.intro p{font-family:"Playfair Display",Georgia,serif;font-size:19px;line-height:1.8;margin:0 auto;max-width:470px;color:#755c65}
.details{padding-top:24px}
.details-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:28px}
.detail-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:22px 20px;text-align:center;box-shadow:var(--shadow)}
.detail-icon{width:42px;height:42px;display:grid;place-items:center;margin:0 auto 10px;background:var(--blush);border-radius:50%;color:var(--rose-dark);font-size:18px}
.detail-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 5px}
.detail-value{font-size:16px;font-weight:700;line-height:1.55;margin:0}
.detail-sub{font-size:13px;color:var(--muted);margin:5px 0 0}
.countdown{margin:28px auto 0;padding:22px 12px;background:var(--blush);border-radius:20px;display:flex;justify-content:center;gap:clamp(12px,5vw,28px)}
.count-item{min-width:52px;text-align:center}
.count-item strong{display:block;font-family:"Playfair Display",Georgia,serif;font-size:30px;font-weight:400;line-height:1.2;color:var(--rose-dark);font-variant-numeric:tabular-nums}
.count-item span{font-size:10px;color:var(--muted);letter-spacing:.04em}
.gallery{padding-top:40px;padding-bottom:42px}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:26px}
.gallery figure{margin:0;overflow:hidden;border-radius:20px;background:var(--blush);box-shadow:var(--shadow)}
.gallery figure:first-child{grid-column:1/-1}
.gallery img{display:block;width:100%;height:100%;min-height:170px;object-fit:cover}
.gallery figure:first-child img{aspect-ratio:1.2;max-height:390px;object-position:center 20%}
.gallery figure:not(:first-child) img{aspect-ratio: .78}
.rsvp-wrap{padding-top:30px;padding-bottom:70px}
.rsvp{padding:32px 22px;background:var(--paper);border:1px solid var(--line);border-radius:26px;text-align:center;box-shadow:var(--shadow)}
.rsvp p{font-size:14px;color:var(--muted);margin:0 auto 22px;max-width:330px}
.phone{font-family:"Playfair Display",Georgia,serif;font-size:23px;color:var(--rose-dark);text-decoration:none;display:inline-block;margin-bottom:24px}
.actions{display:grid;grid-template-columns:1fr;gap:10px}
.btn{min-height:50px;display:flex;align-items:center;justify-content:center;padding:13px 18px;border-radius:999px;text-decoration:none;font-size:13px;font-weight:700;border:1px solid var(--rose);color:var(--rose-dark);background:transparent;cursor:pointer}
.btn.primary{background:var(--rose);color:#fff;border-color:var(--rose)}
footer{text-align:center;padding:0 20px calc(28px + env(safe-area-inset-bottom));color:var(--muted);font:italic 17px "Playfair Display",Georgia,serif}
.music-btn{position:fixed;z-index:10;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:9px;min-height:48px;padding:0 17px;border:1px solid rgba(255,255,255,.8);border-radius:999px;background:rgba(250,249,246,.96);backdrop-filter:blur(12px);box-shadow:0 8px 28px rgba(77,42,54,.16);color:var(--rose-dark);font-size:12px;font-weight:700;cursor:pointer}
.music-dot{width:8px;height:8px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 4px var(--blush)}
.music-btn.playing .music-dot{animation:pulse 1.6s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(201,130,145,.12)}}
@media(min-width:600px){.hero{min-height:760px}section{padding-left:28px;padding-right:28px}.details-grid{grid-template-columns:1fr 1fr}.detail-card:last-child{grid-column:1/-1}.actions{grid-template-columns:1fr 1fr}.gallery figure:first-child img{aspect-ratio:1.55}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Дополнительная совместимость и мобильная полировка */
img { max-width: 100%; }
button, a { touch-action: manipulation; }
.hero-content, .container { position: relative; }
@media (max-width: 380px) {
  .hero { padding-left: 16px; padding-right: 16px; }
  .countdown { gap: 10px; padding-left: 8px; padding-right: 8px; }
  .count-item { min-width: 45px; }
  .count-item strong { font-size: 27px; }
  .music-btn { left: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); }
}
