/* Свадебный сайт — премиальное оформление. Темы: classic (по умолчанию), botanica, minimal, night */
:root{
  --bg:#fbf8f3;--bg2:#f4ede2;--card:#fffdf9;--ink:#231d19;--muted:#7a6e63;--line:#e6dccd;
  --acc:#b2935b;--acc2:#9c5a63;--btn:#231d19;--btn-ink:#fbf8f3;--dark:#1d1814;--dark-ink:#efe6d8;
  --h:"Cormorant Garamond",Georgia,serif;--t:"Manrope",system-ui,sans-serif;--script:"Great Vibes","Cormorant Garamond",cursive;
  --r:18px;--ease:cubic-bezier(.2,.7,.2,1);
}
html[data-theme="botanica"]{--bg:#f3f4ee;--bg2:#e6ebdf;--card:#fbfcf8;--ink:#28321f;--muted:#66705e;--line:#d3dccb;--acc:#9b8a55;--acc2:#5f7356;--btn:#2f3a2b;--btn-ink:#f3f4ee;--dark:#1f271c;--dark-ink:#e9eee2}
html[data-theme="minimal"]{--bg:#fff;--bg2:#f5f3f0;--card:#fff;--ink:#111;--muted:#6b6b6b;--line:#e5e2de;--acc:#8b8378;--acc2:#111;--btn:#111;--btn-ink:#fff;--dark:#111;--dark-ink:#f2f2f2;--h:"Manrope",system-ui,sans-serif;--script:"Manrope",system-ui,sans-serif;--r:2px}
html[data-theme="night"]{--bg:#17141c;--bg2:#1f1b26;--card:#221e2a;--ink:#f1e8da;--muted:#b3a796;--line:#38323f;--acc:#cfae7a;--acc2:#c39bc4;--btn:#cfae7a;--btn-ink:#17141c;--dark:#0f0d13;--dark-ink:#f1e8da}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:300 17px/1.75 var(--t);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
html[data-theme="night"] body::before{mix-blend-mode:screen;opacity:.035}
img{max-width:100%;display:block}
figure{margin:0}
a{color:var(--acc2)}
::selection{background:var(--acc);color:#fff}
b,strong{font-weight:600}
h2{font:300 clamp(40px,5.4vw,68px)/1.05 var(--h);margin:0 0 .3em;text-align:center;letter-spacing:-.005em}
h3{font:500 26px/1.2 var(--h);margin:0 0 .35em}
html[data-theme="minimal"] h2{font-weight:800;letter-spacing:-.03em;text-transform:uppercase;font-size:clamp(30px,4vw,46px)}
html[data-theme="minimal"] h3{font-weight:700;font-size:20px}
.w{max-width:1120px;margin:0 auto;padding:0 24px}
.sec{padding:130px 0;position:relative}
.sec.alt{background:var(--bg2)}
.head{text-align:center;margin-bottom:56px}
.kicker{display:flex;align-items:center;justify-content:center;gap:14px;font:600 11px/1 var(--t);letter-spacing:.38em;text-transform:uppercase;color:var(--acc);margin-bottom:18px}
.kicker::before,.kicker::after{content:"";width:34px;height:1px;background:currentColor;opacity:.6}
.kicker.left{justify-content:flex-start}
.kicker.left::before{display:none}
.left{text-align:left!important}
.orn{display:block;width:200px;height:24px;margin:14px auto 0;color:var(--acc)}
html[data-theme="minimal"] .orn{display:none}
.intro{text-align:center;max-width:660px;margin:-30px auto 52px;color:var(--muted)}
.muted{color:var(--muted)}
.small{font-size:13px}
.btn{display:inline-flex;align-items:center;gap:10px;justify-content:center;border:0;background:var(--btn);color:var(--btn-ink);font:600 12px/1 var(--t);letter-spacing:.22em;text-transform:uppercase;padding:18px 32px;border-radius:999px;cursor:pointer;text-decoration:none;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(35,29,25,.45)}
.btn.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--acc)}
.btn.line:hover{background:var(--acc);color:#fff}
.btn:disabled{opacity:.45;cursor:default;transform:none;box-shadow:none}
html[data-theme="minimal"] .btn{border-radius:0}

/* интро-печать */
#intro{position:fixed;inset:0;z-index:300;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;transition:opacity 1s var(--ease),visibility 1s}
#intro.done{opacity:0;visibility:hidden}
html.no-intro #intro{display:none}
.seal{width:150px;height:150px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:4px;color:var(--acc);position:relative;font:400 54px/1 var(--script);animation:sealIn 1.4s var(--ease) both}
.seal::before,.seal::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid currentColor}
.seal::after{inset:8px;opacity:.5}
.seal i{font:italic 300 26px var(--h);margin:0 2px}
.intro-date{font:500 11px var(--t);letter-spacing:.45em;color:var(--muted);animation:fadeUp 1.4s .3s var(--ease) both}
@keyframes sealIn{from{opacity:0;transform:scale(.85) rotate(-8deg)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* языки */
.langs{position:fixed;top:calc(14px + env(safe-area-inset-top));right:16px;z-index:75;display:flex;gap:2px;padding:4px;border-radius:99px;background:rgba(20,15,12,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18)}
.langs a{color:#fff;text-decoration:none;font:600 11px/1 var(--t);letter-spacing:.14em;padding:8px 11px;border-radius:99px;transition:background .3s}
.langs a[aria-current]{background:#fff;color:#231d19}
.langs a:hover:not([aria-current]){background:rgba(255,255,255,.16)}

/* навигация */
.top{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:center;gap:34px;padding:22px 160px;font:600 11px var(--t);letter-spacing:.3em;text-transform:uppercase;transition:background .5s,padding .5s,box-shadow .5s}
.top a{color:#fff;text-decoration:none;position:relative;opacity:.9}
.top a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:currentColor;transform:scaleX(0);transition:transform .4s var(--ease)}
.top a:hover::after{transform:scaleX(1)}
.top.solid{background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding-top:16px;padding-bottom:16px;box-shadow:0 1px 0 var(--line)}
.top.solid a{color:var(--ink)}
@media (max-width:860px){.top{display:none}}

/* обложка */
.cover{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;position:relative;overflow:hidden;padding:110px 24px 130px;background:#1d1814}
.cover-bg{position:absolute;inset:-2%;background:center/cover no-repeat;animation:kb 22s ease-out both}
@keyframes kb{from{transform:scale(1.12)}to{transform:scale(1)}}
.cover::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at center,rgba(20,14,12,.25),rgba(20,14,12,.62)),linear-gradient(180deg,rgba(20,14,12,.35),transparent 30%,transparent 65%,rgba(20,14,12,.55))}
.frame{position:absolute;inset:clamp(14px,2.4vw,30px);z-index:2;pointer-events:none;border:1px solid rgba(255,255,255,.22)}
.frame i{position:absolute;width:42px;height:42px;border:1px solid rgba(226,200,150,.9)}
.frame i:nth-child(1){top:-6px;left:-6px;border-right:0;border-bottom:0}
.frame i:nth-child(2){top:-6px;right:-6px;border-left:0;border-bottom:0}
.frame i:nth-child(3){bottom:-6px;left:-6px;border-right:0;border-top:0}
.frame i:nth-child(4){bottom:-6px;right:-6px;border-left:0;border-top:0}
.cover-in{position:relative;z-index:3;animation:fadeUp 1.6s .5s var(--ease) both}
html.no-intro .cover-in{animation-delay:.1s}
.mono{display:inline-flex;align-items:center;gap:12px;font:400 30px/1 var(--script);color:#e8d3a6;margin-bottom:26px}
.mono i{width:1px;height:34px;background:currentColor;transform:rotate(22deg);opacity:.8}
.cover .pre{font:600 11px var(--t);letter-spacing:.5em;text-transform:uppercase;margin-bottom:12px;opacity:.9}
.cover h1{font:400 clamp(72px,12vw,156px)/.95 var(--script);margin:0;text-shadow:0 4px 40px rgba(0,0,0,.25)}
html[data-theme="minimal"] .cover h1{font:800 clamp(44px,8vw,100px)/1 var(--t);letter-spacing:-.03em;text-transform:uppercase}
.cover h1 span{display:block;font:italic 300 .32em/1.4 var(--h);color:#e8d3a6}
.cover .date{display:flex;align-items:center;justify-content:center;gap:18px;font:400 clamp(20px,2.6vw,28px)/1 var(--h);letter-spacing:.3em;margin-top:24px}
.cover .date b{width:60px;height:1px;background:rgba(232,211,166,.8)}
.cover .place{margin-top:14px;font:500 12px var(--t);letter-spacing:.32em;text-transform:uppercase;opacity:.85}
.cover .guest{font:italic 400 24px var(--h);margin-bottom:14px;min-height:1em;color:#f3e6cc}
.cover .scroll{position:absolute;z-index:3;bottom:calc(40px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);color:#fff;font:600 10px var(--t);letter-spacing:.4em;text-transform:uppercase;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:12px}
.cover .scroll::after{content:"";width:1px;height:46px;background:linear-gradient(#fff,transparent);animation:drip 2.4s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* приглашение */
.invite{text-align:center}
.invite p{max-width:720px;margin:26px auto 0;font:300 clamp(24px,2.6vw,32px)/1.55 var(--h)}
html[data-theme="minimal"] .invite p{font:300 21px/1.7 var(--t)}
.invite .sign{margin-top:30px;font:400 46px var(--script);color:var(--acc2)}

/* история */
.story{display:grid;gap:110px}
.st{display:grid;grid-template-columns:1.05fr 1fr;gap:80px;align-items:center}
.st:nth-child(even) .st-img{order:2}
.st-img{position:relative}
.st-img::after{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--acc);border-radius:var(--r);z-index:0;opacity:.6}
.st:nth-child(even) .st-img::after{inset:18px 18px -18px -18px}
.st-img img{position:relative;z-index:1;border-radius:var(--r);aspect-ratio:4/5;object-fit:cover;width:100%;box-shadow:0 30px 60px -30px rgba(35,29,25,.35)}
.st .yr{font:300 88px/1 var(--h);color:var(--acc);opacity:.85;margin-bottom:6px}
.st h3{font-size:36px;font-weight:400}
@media (max-width:820px){.story{gap:72px}.st{grid-template-columns:1fr;gap:40px}.st:nth-child(even) .st-img{order:0}.st .yr{font-size:64px}}

/* цитата */
.quote{position:relative;padding:160px 24px;text-align:center;color:#fff;background:var(--qbg) center/cover fixed #1d1814;overflow:hidden}
.quote::before{content:"";position:absolute;inset:0;background:rgba(20,14,12,.62)}
.quote blockquote{position:relative;max-width:860px;margin:0 auto}
.quote blockquote::before{content:"“";display:block;font:300 120px/.6 var(--h);color:#e8d3a6;margin-bottom:24px}
.quote p{margin:0;font:italic 300 clamp(26px,3.4vw,42px)/1.4 var(--h)}
.quote cite{display:block;margin-top:28px;font:600 11px var(--t);letter-spacing:.4em;text-transform:uppercase;font-style:normal;color:#e8d3a6}
@media (max-width:820px),(hover:none){.quote{background-attachment:scroll}}

/* специальный гость */
.special{background:var(--dark);color:var(--dark-ink);overflow:hidden}
.special::before{content:"";position:absolute;width:680px;height:680px;right:-200px;top:-200px;border-radius:50%;background:radial-gradient(circle,rgba(207,174,122,.16),transparent 65%)}
.sp{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:center;position:relative}
.sp-img{position:relative;padding:18px}
.sp-img::before{content:"";position:absolute;inset:0;border:1px solid rgba(207,174,122,.55);border-radius:999px 999px 24px 24px}
.sp-img img{border-radius:999px 999px 16px 16px;aspect-ratio:3/4;object-fit:cover;width:100%;filter:grayscale(.25) contrast(1.05)}
.sp-img img.veiled{filter:grayscale(1) blur(10px) brightness(.6)}
.special h2{color:#fff}
.special .kicker{color:#cfae7a}
.sp-name{font:400 clamp(48px,6vw,76px)/1 var(--script);color:#e8d3a6;margin:6px 0 10px}
.sp-role{font:600 11px var(--t);letter-spacing:.32em;text-transform:uppercase;color:#cfae7a;margin-bottom:24px}
.sp-txt p{font:300 22px/1.6 var(--h);color:#e9dfd0;max-width:520px}
.sp-time{display:inline-block;margin-top:14px;padding:12px 22px;border:1px solid rgba(207,174,122,.55);border-radius:99px;font:600 11px var(--t);letter-spacing:.28em;text-transform:uppercase;color:#cfae7a}
@media (max-width:820px){.sp{grid-template-columns:1fr;gap:40px}.sp-img{max-width:360px;margin:0 auto}}

/* таймер */
.timer{display:flex;justify-content:center;gap:0;flex-wrap:wrap}
.timer div{min-width:150px;text-align:center;padding:10px 24px;position:relative}
.timer div+div::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:1px;background:var(--line)}
.timer b{display:block;font:300 clamp(56px,8vw,96px)/1 var(--h);font-variant-numeric:tabular-nums;font-weight:300}
.timer span{font:600 10px var(--t);letter-spacing:.32em;text-transform:uppercase;color:var(--muted)}
.cal{margin-top:46px;text-align:center}
@media (max-width:560px){.timer div{min-width:0;flex:1 1 25%;padding:6px 6px}.timer b{font-size:44px}.timer span{font-size:9px;letter-spacing:.18em}}

/* программа */
.tl{list-style:none;margin:0 auto;padding:0;max-width:860px;position:relative}
.tl::before{content:"";position:absolute;left:150px;top:10px;bottom:10px;width:1px;background:linear-gradient(var(--acc),var(--line) 20%,var(--line) 80%,var(--acc))}
.tl li{display:grid;grid-template-columns:150px 1fr;gap:0;padding-bottom:46px;position:relative}
.tl li::before{content:"";position:absolute;left:144px;top:14px;width:13px;height:13px;border-radius:50%;background:var(--bg2);border:1px solid var(--acc);box-shadow:0 0 0 6px var(--bg2)}
.tl li::after{content:"";position:absolute;left:148px;top:18px;width:5px;height:5px;border-radius:50%;background:var(--acc)}
.tl-time{padding-right:38px;text-align:right}
.tl-time time{display:block;font:300 40px/1 var(--h);color:var(--ink)}
.tl-time span{display:block;margin-top:6px;font:600 10px var(--t);letter-spacing:.3em;color:var(--acc)}
.tl-body{padding-left:42px}
.tl-body h3{font-size:30px;font-weight:400;margin-bottom:8px}
.tl-body>p{margin:0 0 10px;color:var(--muted)}
.tl-place{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.5;margin-bottom:12px}
.tl-place svg{width:18px;height:18px;flex:none;margin-top:2px;fill:none;stroke:var(--acc);stroke-width:1.5}
.tl-place b{font-weight:600}
.tl-move{border-left:1px solid var(--acc);padding:4px 0 4px 18px;margin:0 0 14px;font:italic 400 19px/1.55 var(--h);color:var(--ink)}
.tl-move span{display:block;font:600 10px/1.8 var(--t);font-style:normal;letter-spacing:.3em;text-transform:uppercase;color:var(--acc)}
.tl-map{font:600 11px var(--t);letter-spacing:.22em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--acc);padding-bottom:3px}
.tl-map:hover{color:var(--acc)}
@media (max-width:640px){
  .tl::before{left:8px}
  .tl li{grid-template-columns:1fr;padding-left:38px;padding-bottom:40px}
  .tl li::before{left:2px}.tl li::after{left:6px}
  .tl-time{text-align:left;padding:0 0 8px;display:flex;align-items:baseline;gap:12px}
  .tl-time span{margin:0}
  .tl-body{padding:0}
}

/* дети */
.kids{background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--acc2) 7%,var(--bg)))}
.lead-l{font:300 22px/1.6 var(--h);margin:0 0 30px}
.kid-items{display:grid;gap:22px}
.kid{display:grid;grid-template-columns:52px 1fr;gap:18px;align-items:start}
.kid-n{width:52px;height:52px;border-radius:50%;border:1px solid var(--acc);display:grid;place-items:center;color:var(--acc);font-size:20px}
.kid h3{font-size:24px;margin-bottom:2px}
.kid p{margin:0;color:var(--muted);font-size:16px}

/* арка-фото */
.arch{position:relative;padding:16px}
.arch::before{content:"";position:absolute;inset:0;border:1px solid var(--acc);border-radius:999px 999px 22px 22px;opacity:.7}
.arch img{border-radius:999px 999px 14px 14px;aspect-ratio:4/5;object-fit:cover;width:100%;box-shadow:0 30px 60px -30px rgba(35,29,25,.4)}
html[data-theme="minimal"] .arch::before,html[data-theme="minimal"] .arch img{border-radius:0}

/* локация */
.loc{display:grid;grid-template-columns:1fr 1.15fr;gap:30px;align-items:stretch}
.loc .card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.loc .card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.loc .card .in{padding:32px}
.loc .card h3{font-size:32px;font-weight:400}
.map{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);min-height:420px;background:var(--bg);position:relative}
.map iframe{width:100%;height:100%;min-height:420px;border:0;display:block;filter:grayscale(.35) sepia(.12)}
.map .ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;color:var(--muted);background:radial-gradient(circle at 50% 40%,var(--card),var(--bg))}
.btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.btns .btn{padding:15px 22px}
@media (max-width:860px){.loc{grid-template-columns:1fr}}

/* дресс-код */
.dc{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center}
.pal{display:flex;gap:18px;flex-wrap:wrap;margin:28px 0}
.pal figure{display:flex;flex-direction:column;align-items:center;gap:10px;width:76px}
.pal i{width:64px;height:64px;border-radius:50%;box-shadow:0 0 0 5px var(--bg),0 0 0 6px var(--line),0 12px 24px -12px rgba(0,0,0,.35)}
.pal figcaption{font:500 11px/1.3 var(--t);letter-spacing:.06em;color:var(--muted);text-align:center}
@media (max-width:820px){.dc{grid-template-columns:1fr;gap:40px}.dc .arch{max-width:380px;margin:0 auto}}

/* галерея */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:12px}
.gal button{padding:0;border:0;background:none;cursor:zoom-in;border-radius:6px;overflow:hidden;position:relative}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s}
.gal button:hover img{transform:scale(1.06)}
.gal button:nth-child(6n+1){grid-column:span 2;grid-row:span 2}
.gal button:nth-child(6n+4){grid-row:span 2}
@media (max-width:700px){.gal{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}}
.lb{position:fixed;inset:0;z-index:150;background:rgba(14,10,9,.96);display:none;align-items:center;justify-content:center}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:84vh;border-radius:4px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lb button{position:absolute;background:none;border:1px solid rgba(255,255,255,.3);color:#fff;width:54px;height:54px;border-radius:50%;font:300 26px var(--h);cursor:pointer}
.lb .c{top:20px;right:20px}.lb .p{left:20px;top:50%;transform:translateY(-50%)}.lb .n{right:20px;top:50%;transform:translateY(-50%)}
.lb .cnt{position:absolute;bottom:calc(22px + env(safe-area-inset-bottom));color:#bbb;font:600 11px var(--t);letter-spacing:.3em}

/* трансфер и места */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}
@media (max-width:820px){.split{grid-template-columns:1fr;gap:44px}.split .arch{max-width:380px;margin:0 auto}}
.cards{display:grid;gap:16px}
.cards .c{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px 28px}
.cards .c h3{font-size:24px;margin-bottom:4px}
.cards .c p{margin:0;color:var(--muted);font-size:16px}
.caps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;margin-top:70px}
.capc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:34px 24px 28px;text-align:center;position:relative}
.ring{width:132px;height:132px;transform:rotate(-90deg);display:block;margin:0 auto}
.ring circle{fill:none;stroke:var(--line);stroke-width:2}
.ring .v{stroke:var(--acc);stroke-width:3;stroke-linecap:round;transition:stroke-dasharray 1.6s var(--ease)}
.capn{position:absolute;top:34px;left:0;right:0;height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.capn b{font:300 46px/1 var(--h)}
.capn span{font:600 9px var(--t);letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.capc h3{font-size:22px;margin:18px 0 4px}
.capc p{margin:0;font-size:14px;color:var(--muted)}

/* формы */
.rsvp{max-width:780px;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:56px;position:relative;box-shadow:0 40px 80px -50px rgba(35,29,25,.35)}
.rsvp::before{content:"";position:absolute;inset:10px;border:1px solid var(--line);border-radius:calc(var(--r) - 6px);pointer-events:none}
.f{display:grid;gap:24px;position:relative}
.f .two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width:620px){.f .two{grid-template-columns:1fr}.rsvp{padding:34px 22px}}
.f label{font:600 11px var(--t);letter-spacing:.2em;text-transform:uppercase;display:block;margin-bottom:10px;color:var(--muted)}
.f input[type=text],.f select,.f textarea,.seat input{width:100%;font:400 17px var(--t);padding:14px 2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);transition:border-color .3s}
.f textarea{min-height:90px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus,.seat input:focus{outline:none;border-color:var(--acc)}
.f fieldset{border:0;padding:0;margin:0;min-width:0}
.f legend{font:600 11px var(--t);letter-spacing:.2em;text-transform:uppercase;margin-bottom:12px;color:var(--muted)}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chips label{margin:0;font:400 15px var(--t);letter-spacing:0;text-transform:none;color:var(--ink);display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:11px 18px;cursor:pointer;transition:border-color .3s,background .3s}
.chips input{accent-color:var(--acc);margin:0}
.chips label:has(input:checked){border-color:var(--acc);background:color-mix(in srgb,var(--acc) 10%,transparent)}
.chips label small{color:var(--muted);font-size:12px}
.chips label.off{opacity:.5;cursor:not-allowed}
.kids-box{display:grid;gap:22px;padding:24px;border:1px dashed var(--acc);border-radius:14px}
.ok{display:none;text-align:center;padding:10px 0}
.ok.show{display:block}
.ok h3{font:400 54px var(--script);color:var(--acc2)}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.msg:empty{display:none}
.msg{padding:14px 18px;border-radius:10px;background:color-mix(in srgb,var(--acc2) 10%,transparent);font-size:15px}

/* рассадка */
.seat{max-width:620px;margin:0 auto;text-align:center}
.seat .head{margin-bottom:20px}
.seat .intro{margin-top:0}
.seat form{display:flex;gap:14px;align-items:center}
.seat input{text-align:center;font-size:20px}
.seat .res{margin-top:30px;min-height:60px}
.seat .table-no{font:300 76px/1 var(--h);color:var(--acc)}

/* подарки */
.gifts{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}
.gift{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.gift:hover{transform:translateY(-4px);box-shadow:0 30px 60px -36px rgba(35,29,25,.45)}
.gift-img{aspect-ratio:4/3;background:var(--bg2);overflow:hidden}
.gift-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.gift:hover .gift-img img{transform:scale(1.05)}
.gift-body{padding:24px 26px 26px;display:flex;flex-direction:column;gap:12px;flex:1}
.gift-body h3{margin:0;font-size:26px}
.gift-body p{margin:0;font-size:15px}
.bar{height:4px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:auto}
.bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--acc),color-mix(in srgb,var(--acc) 60%,#fff),var(--acc));background-size:200% 100%;animation:shine 4s linear infinite;transition:width 1.4s var(--ease)}
@keyframes shine{to{background-position:-200% 0}}
.gift-sum{display:flex;justify-content:space-between;font-size:14px;color:var(--muted)}
.gift-sum b{color:var(--ink);font-weight:600}
.gift-btn{margin-top:6px}
.gift.dream{display:grid;grid-template-columns:1.15fr 1fr;margin-bottom:28px;border-color:color-mix(in srgb,var(--acc) 55%,var(--line));box-shadow:0 40px 90px -50px rgba(35,29,25,.5)}
.gift.dream .gift-img{aspect-ratio:auto;min-height:440px}
.gift.dream .gift-body{padding:56px 52px;justify-content:center;gap:16px}
.gift.dream h3{font:300 clamp(34px,3.6vw,48px)/1.1 var(--h)}
.gift.dream p{font:300 19px/1.65 var(--h);color:var(--muted)}
.gift.dream .bar{height:6px;margin-top:10px}
.gift.dream .gift-sum{font-size:15px}
.gift.dream .gift-sum b{font:400 26px var(--h)}
.ribbon{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;font:600 10px var(--t);letter-spacing:.32em;text-transform:uppercase;color:var(--acc);padding:9px 16px;border:1px solid var(--acc);border-radius:99px}
.ribbon::before{content:"✦"}
@media (max-width:820px){.gift.dream{grid-template-columns:1fr}.gift.dream .gift-img{min-height:0;aspect-ratio:4/3}.gift.dream .gift-body{padding:30px 26px}}
.modal{position:fixed;inset:0;z-index:160;background:rgba(14,10,9,.66);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center}
.modal[hidden]{display:none}
.modal-box{background:var(--bg);color:var(--ink);width:min(560px,100%);max-height:92vh;overflow:auto;border-radius:24px 24px 0 0;padding:38px 28px calc(28px + env(safe-area-inset-bottom));position:relative;animation:fadeUp .5s var(--ease)}
@media (min-width:640px){.modal{align-items:center;padding:20px}.modal-box{border-radius:24px;padding:46px}}
.modal-box h3{font:400 34px/1.15 var(--h);margin-bottom:8px}
.modal-x{position:absolute;top:14px;right:16px;border:0;background:none;font:300 30px var(--h);color:var(--muted);cursor:pointer;line-height:1}
.pay{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;align-items:center;margin:22px 0}
.pay dt{font:600 10px var(--t);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.pay dd{margin:0;min-width:0}
.copy{display:inline-flex;max-width:100%;text-align:left;word-break:break-all;gap:8px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font:500 15px var(--t);color:var(--ink);cursor:pointer;transition:border-color .3s}
.copy:hover{border-color:var(--acc)}
.copy.ref{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 10%,var(--card))}
@media (max-width:460px){.pay{grid-template-columns:1fr;gap:4px}.pay dd{margin-bottom:10px}}

/* вопросы */
.qa{max-width:820px;margin:0 auto}
.qa details{border-bottom:1px solid var(--line)}
.qa summary{cursor:pointer;padding:24px 50px 24px 0;font:400 24px/1.35 var(--h);list-style:none;position:relative}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";position:absolute;right:8px;top:50%;width:14px;height:14px;border-right:1px solid var(--acc);border-bottom:1px solid var(--acc);transform:translateY(-70%) rotate(45deg);transition:transform .4s var(--ease)}
.qa details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.qa details p{margin:0 0 24px;color:var(--muted);max-width:700px}
.coord{display:flex;gap:24px;align-items:center;justify-content:center;margin-top:56px;flex-wrap:wrap;text-align:center}
.coord b{font:400 24px var(--h)}

/* подвал */
.end{padding:130px 24px 150px;text-align:center;background:var(--dark);color:var(--dark-ink);position:relative;overflow:hidden}
.end::before{content:"";position:absolute;inset:clamp(14px,2.4vw,30px);border:1px solid rgba(207,174,122,.25);pointer-events:none}
.mono.big{font-size:56px;color:#cfae7a;margin-bottom:34px}
.mono.big i{height:60px}
.end .love{font:italic 300 24px var(--h);color:#cfae7a}
.end .names{font:400 clamp(54px,8vw,96px)/1.1 var(--script);color:#fff;margin:6px 0 18px}
html[data-theme="minimal"] .end .names{font:800 46px var(--t);text-transform:uppercase}
.end p{font:600 11px var(--t);letter-spacing:.35em;text-transform:uppercase;color:#cfae7a}
.end small{display:block;margin-top:42px;color:#8f8476;font-size:12px}

/* музыка */
.music{position:fixed;right:18px;bottom:18px;z-index:80;width:54px;height:54px;border-radius:50%;border:1px solid var(--acc);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--ink);cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 30px -10px rgba(0,0,0,.3)}
.music svg{width:20px;height:20px}
.music.on{background:var(--acc);color:#fff}
.music.on::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid var(--acc);animation:pulse 2s ease-out infinite}
@keyframes pulse{from{transform:scale(.9);opacity:1}to{transform:scale(1.35);opacity:0}}

/* нижнее меню как в приложении */
.tabbar{display:none}
@media (max-width:860px){
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  .tabbar{display:flex;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:70;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border:1px solid var(--line);border-radius:22px;padding:6px 4px;box-shadow:0 14px 40px -14px rgba(0,0,0,.35)}
  .tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--muted);text-decoration:none;font:600 10px/1.1 var(--t);letter-spacing:.04em;padding:6px 0;border-radius:16px;-webkit-tap-highlight-color:transparent;transition:color .3s,background .3s}
  .tabbar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  .tabbar a.on{color:var(--ink);background:color-mix(in srgb,var(--acc) 16%,transparent)}
  .music{bottom:calc(92px + env(safe-area-inset-bottom));width:46px;height:46px}
  .cover{padding-bottom:170px}
  .cover .scroll{bottom:calc(104px + env(safe-area-inset-bottom))}
  .sec{padding:92px 0}
  .head{margin-bottom:40px}
  .intro{margin-top:-16px}
}

/* появление */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .cover-bg,.cover-in,.seal,.intro-date,.bar i,.cover .scroll::after{animation:none}
  #intro{display:none}
  html{scroll-behavior:auto}
}
[hidden]{display:none!important}
.chips label{flex-wrap:wrap}
.chips label small{flex-basis:100%;margin:-4px 0 0 26px}
@media (max-width:860px){.langs{position:absolute}}

/* «Понравился сайт? Свяжитесь с нами» */
.contact-link{cursor:pointer}
.top .contact-link{white-space:nowrap}
.end .contact-link{display:inline-block;margin-top:22px;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.contact-pill{display:none}
@media (max-width:860px){.contact-pill{display:inline-flex;position:absolute;top:calc(14px + env(safe-area-inset-top));left:14px;z-index:75;align-items:center;padding:9px 13px;border-radius:99px;font-size:12px;font-weight:700;text-decoration:none}}
.contact-modal .cu-sub{margin:4px 0 18px}
.contact-modal .cu-agree{display:flex!important;gap:10px;align-items:flex-start;font-size:13px!important;letter-spacing:0!important;text-transform:none!important;line-height:1.45;font-weight:400!important}
.contact-modal .cu-agree input{margin-top:3px;flex:none}
.contact-modal .two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:520px){.contact-modal .two{grid-template-columns:1fr}}
.contact-modal textarea{min-height:110px;width:100%}
.contact-modal .cu-ok{text-align:center;padding:24px 0}
.contact-modal .cu-ok h3{font-size:46px;margin:0}
.contact-pill{background:rgba(20,15,12,.38);color:#fff;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.top .contact-link{color:#e8d3a6!important}.top.solid .contact-link{color:var(--acc2)!important}
