/* Онлайн шақыру билеті: конструктор, бет для гостей, панель хозяина */

/* ---------- 4 дизайна ---------- */
[data-theme]{--i-accent:#d9bb63;--i-bg:linear-gradient(160deg,#205442,#123c30);--i-text:#fff;--i-text2:#d0e2d7;--i-surface:rgba(255,255,255,.07);--i-border:rgba(217,187,99,.38);--i-btn-text:#123c30;--i-glow:rgba(217,187,99,.2);--i-field:rgba(0,0,0,.2)}
[data-theme=rose]{--i-accent:#e6a5a7;--i-bg:linear-gradient(160deg,#583c49,#302c3a);--i-text2:#ecd9dd;--i-border:rgba(230,165,167,.42);--i-btn-text:#302c3a;--i-glow:rgba(230,165,167,.22)}
[data-theme=ivory]{--i-accent:#a98142;--i-bg:linear-gradient(160deg,#fbf3e0,#eadcc0);--i-text:#3a3023;--i-text2:#665b4b;--i-surface:rgba(255,255,255,.6);--i-border:rgba(169,129,66,.5);--i-btn-text:#fff;--i-glow:rgba(169,129,66,.22);--i-field:rgba(255,255,255,.75)}
[data-theme=blue]{--i-accent:#a9d8cf;--i-bg:linear-gradient(160deg,#293f53,#192b3a);--i-text2:#cfe0e6;--i-border:rgba(169,216,207,.4);--i-btn-text:#192b3a;--i-glow:rgba(169,216,207,.2)}
[data-theme=emerald]{--i-accent:#edcf82;--i-bg:linear-gradient(145deg,#1b6853,#123a35);--i-text2:#d2eee1;--i-border:rgba(237,207,130,.48);--i-btn-text:#173b32;--i-glow:rgba(100,210,160,.24)}
[data-theme=plum]{--i-accent:#f0bd81;--i-bg:linear-gradient(150deg,#743f68,#352943);--i-text2:#f0dce9;--i-border:rgba(240,189,129,.48);--i-btn-text:#382942;--i-glow:rgba(210,125,180,.24)}
[data-theme=minimal]{--i-accent:#d9d0b8;--i-bg:linear-gradient(160deg,#424b49,#222c2c);--i-text2:#d7ddda;--i-border:rgba(217,208,184,.4);--i-btn-text:#303a37;--i-glow:rgba(220,220,200,.15)}

/* ---------- конструктор ---------- */
.invite-builder{padding:130px 0 80px;min-height:100vh}
.invite-builder .section-header{margin-bottom:34px}
.builder-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.82fr);gap:28px;align-items:start}
.invite-form,.invite-preview-wrap,.result-box,.mine-box{background:var(--glass);border:1px solid var(--glass-border);border-radius:20px;padding:28px}
.invite-form h2,.invite-preview-wrap h2,.result-box h2,.mine-box h2{font:600 1.5rem var(--font-display);margin-bottom:20px;color:var(--gold)}
.invite-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.invite-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.invite-field.wide{grid-column:1/-1}
.invite-field label,.invite-field-label{font-size:.82rem;color:var(--text2)}
.invite-field input,.invite-field select,.invite-field textarea{width:100%;min-height:48px;padding:12px 14px;font-size:1rem;color:var(--text);background:rgba(0,0,0,.17);border:1px solid var(--glass-border);border-radius:9px;outline:none}
.invite-field textarea{min-height:120px;resize:vertical}
.invite-field input:focus,.invite-field select:focus,.invite-field textarea:focus{border-color:var(--gold)}
.invite-field select option{background:var(--bg2)}
.invite-field input[type=file]{padding:9px}
.field-hint{font-size:.76rem;color:var(--text3)}
.design-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.template-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;color:var(--text3);font-size:.76rem;margin:-2px 0 3px}
.template-heading p{margin:0}.template-heading span{color:var(--gold);white-space:nowrap}
.design-choice{display:flex;flex-direction:column;gap:5px;text-align:left;border:1px solid var(--glass-border);border-radius:12px;background:var(--glass2);color:var(--text2);padding:7px;cursor:pointer;font-size:.78rem;min-width:0;transition:transform .2s,border-color .2s,box-shadow .2s}
.design-choice:hover{transform:translateY(-2px)}
.design-choice strong{padding:2px 4px 0;color:var(--text);font-size:.8rem}
.design-choice>small{padding:0 4px 3px;color:var(--text3);font-size:.68rem}
.design-choice[aria-pressed=true]{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-dim);background:var(--glass)}
.template-thumb{--i-accent:#d9bb63;--i-bg:linear-gradient(160deg,#205442,#123c30);--i-text:#fff;--i-text2:#d0e2d7;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;aspect-ratio:1.45;border:1px solid var(--i-border);border-radius:8px;background:radial-gradient(ellipse at top,var(--i-glow),transparent 70%),var(--i-bg);color:var(--i-text);text-align:center;padding:12px 6px}
.template-thumb[data-theme=rose]{--i-accent:#e6a5a7;--i-bg:linear-gradient(160deg,#583c49,#302c3a);--i-text2:#ecd9dd;--i-border:rgba(230,165,167,.42);--i-glow:rgba(230,165,167,.22)}
.template-thumb[data-theme=ivory]{--i-accent:#a98142;--i-bg:linear-gradient(160deg,#fbf3e0,#eadcc0);--i-text:#3a3023;--i-text2:#665b4b;--i-border:rgba(169,129,66,.5);--i-glow:rgba(169,129,66,.22)}
.template-thumb[data-theme=blue]{--i-accent:#a9d8cf;--i-bg:linear-gradient(160deg,#293f53,#192b3a);--i-text2:#cfe0e6;--i-border:rgba(169,216,207,.4);--i-glow:rgba(169,216,207,.2)}
.template-thumb[data-theme=emerald]{--i-accent:#edcf82;--i-bg:linear-gradient(145deg,#1b6853,#123a35);--i-text2:#d2eee1;--i-border:rgba(237,207,130,.48);--i-glow:rgba(100,210,160,.24)}
.template-thumb[data-theme=plum]{--i-accent:#f0bd81;--i-bg:linear-gradient(150deg,#743f68,#352943);--i-text2:#f0dce9;--i-border:rgba(240,189,129,.48);--i-glow:rgba(210,125,180,.24)}
.template-thumb[data-theme=minimal]{--i-accent:#d9d0b8;--i-bg:linear-gradient(160deg,#424b49,#222c2c);--i-text2:#d7ddda;--i-border:rgba(217,208,184,.4);--i-glow:rgba(220,220,200,.15)}
.template-thumb i{font-style:normal;color:var(--i-accent);font-size:1rem}
.template-thumb b{font:600 1rem/1 var(--font-display);color:var(--i-text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.template-thumb small{font-size:.5rem;letter-spacing:2px;color:var(--i-accent)}
.design-choice:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.builder-note{font-size:.82rem;color:var(--text3);margin:18px 0 0;line-height:1.6}
.builder-note strong{color:var(--gold)}
.form-error{display:none;margin-top:16px;padding:12px 14px;border-radius:9px;background:rgba(190,60,60,.2);border:1px solid rgba(230,120,120,.5);color:#ffe3e0;font-size:.9rem}
.form-error.show{display:block}
.invite-form .btn-block{margin-top:20px}
.invite-form .btn[disabled]{opacity:.6;cursor:wait}
.hp-field{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.invite-preview-wrap{position:sticky;top:96px}

/* карточка (предпросмотр) */
.invite-card{position:relative;min-height:400px;padding:34px 24px;overflow:hidden;border:1px solid var(--i-border);border-radius:18px;background:radial-gradient(ellipse at top,var(--i-glow),transparent 62%),var(--i-bg);color:var(--i-text);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;isolation:isolate}
.invite-card::before,.invite-card::after{content:'✦';position:absolute;color:var(--i-accent);opacity:.5;font-size:2rem;animation:inv-float 5s ease-in-out infinite;z-index:-1}
.invite-card::before{top:20px;left:22px}
.invite-card::after{right:24px;bottom:18px;animation-delay:-2s}
@keyframes inv-float{50%{transform:translateY(-9px) rotate(14deg)}}
.invite-kicker{font-size:.68rem;letter-spacing:3px;text-transform:uppercase;color:var(--i-accent)}
.invite-card h3{font:600 clamp(2rem,5vw,2.7rem) var(--font-display);line-height:1.05;margin:18px 0 10px;overflow-wrap:anywhere}
.invite-sub{color:var(--i-text2);font-size:.88rem}
.invite-divider{width:70px;height:1px;background:var(--i-accent);margin:20px auto;display:block}
.invite-date{font:600 1.25rem var(--font-display);color:var(--i-accent);display:block}
.invite-venue{margin-top:9px;color:var(--i-text2);font-size:.84rem}
.invite-message{font:italic 1.05rem var(--font-display);max-width:340px;margin:20px auto 0;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}
.invite-photo-preview{display:none;width:92px;height:92px;object-fit:cover;border-radius:50%;border:2px solid var(--i-accent);margin:14px auto 0}
.invite-photo-stage{display:none;position:relative;width:min(88%,340px);margin:14px auto 4px;isolation:isolate;overflow:hidden;border-radius:var(--tp-shape,24px)}
.invite-photo-stage.has-photo{display:block}
.invite-photo-stage .invite-photo-preview{display:block!important;width:100%;height:auto;aspect-ratio:4/5;max-height:330px;object-fit:cover;border-radius:var(--tp-shape,24px);padding:0;margin:0;border:2px solid var(--i-accent);box-shadow:0 12px 32px rgba(0,0,0,.24)}
.photo-caption{position:absolute;inset:auto 0 0;padding:34px 13px 15px;display:flex;flex-direction:column;align-items:center;gap:5px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.65);background:linear-gradient(transparent,rgba(14,17,20,.82));pointer-events:none}
.photo-caption>span:first-child{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase}
.photo-caption strong{font:600 clamp(1.25rem,4vw,1.8rem)/1.05 var(--font-display);max-width:100%;overflow-wrap:anywhere}
.photo-caption>span:last-child{display:flex;gap:7px;align-items:center;font-size:.76rem;letter-spacing:.04em}
.photo-caption i{font-style:normal;color:var(--i-accent)}

/* результат */
.result-box,.mine-box{max-width:760px;margin:0 auto}
.mine-box{margin-top:28px}
.result-box[hidden],.mine-box[hidden],.builder-grid[hidden]{display:none}
.result-ok{display:flex;gap:12px;align-items:center;margin-bottom:22px;color:var(--text)}
.result-ok b{font:600 1.5rem var(--font-display);color:var(--gold)}
.link-block{margin-bottom:22px}
.link-block h3{font-size:.95rem;font-weight:600;margin-bottom:4px}
.link-block p{font-size:.82rem;color:var(--text3);margin-bottom:9px}
.link-row{display:flex;gap:8px}
.link-row input{flex:1;min-width:0;min-height:46px;padding:10px 12px;font-size:.88rem;color:var(--text);background:rgba(0,0,0,.17);border:1px solid var(--glass-border);border-radius:9px}
.link-block.secret{padding:16px;border:1px dashed var(--gold-border);border-radius:12px}
.btn-sm{padding:11px 18px;font-size:.85rem}
.action-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 4px}
.qr-box{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:6px}
.qr-box canvas{width:170px;height:170px;border-radius:12px;background:#fff;padding:8px}
.mine-list{list-style:none;display:grid;gap:10px}
.mine-list a{display:flex;justify-content:space-between;gap:12px;padding:13px 15px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass2)}
.mine-list a:hover{border-color:var(--gold)}
.mine-list small{color:var(--text3)}

/* ---------- страница гостя ---------- */
body.guest{background:var(--i-bg) fixed;color:var(--i-text);font-family:var(--font-body);min-height:100vh;overflow-x:hidden}
body.guest a{color:inherit}
body.guest [hidden]{display:none!important}
.guest .wrap{width:min(560px,100% - 32px);margin:0 auto}
.curtain{position:fixed;inset:0;z-index:60;pointer-events:none;animation:curtain-gone 0s 2.3s forwards}
.curtain i{position:absolute;top:0;bottom:0;width:50%;background:var(--i-bg);border:0 solid var(--i-accent)}
.curtain .curtain-l{left:0;border-right-width:1px;animation:curtain-l 1.2s cubic-bezier(.7,0,.2,1) 1s forwards}
.curtain .curtain-r{right:0;border-left-width:1px;animation:curtain-r 1.2s cubic-bezier(.7,0,.2,1) 1s forwards}
.curtain .seal{position:absolute;left:50%;top:50%;width:78px;height:78px;margin:-39px 0 0 -39px;border-radius:50%;display:grid;place-items:center;font-size:1.9rem;color:var(--i-btn-text);background:var(--i-accent);box-shadow:0 0 0 8px var(--i-glow);animation:seal 1s ease .15s both,seal-out .5s ease .9s forwards}
@keyframes curtain-l{to{transform:translateX(-101%)}}
@keyframes curtain-r{to{transform:translateX(101%)}}
@keyframes seal{from{transform:scale(.3) rotate(-90deg);opacity:0}}
@keyframes seal-out{to{transform:scale(1.6);opacity:0}}
@keyframes curtain-gone{to{visibility:hidden}}

.cover{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px 90px;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,var(--i-glow),transparent 65%)}
.cover::before{content:'';position:absolute;inset:18px;border:1px solid var(--i-border);border-radius:24px;pointer-events:none}
.cover::after{content:'';position:absolute;inset:26px;border:1px solid var(--i-border);border-radius:18px;opacity:.4;pointer-events:none}
.spark{position:absolute;color:var(--i-accent);opacity:.55;pointer-events:none;animation:inv-float var(--d,6s) ease-in-out infinite;animation-delay:var(--dl,0s)}
.rise{opacity:0;animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(1.7s + var(--n,0) * .14s)}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.cover-photo{width:132px;height:132px;border-radius:50%;object-fit:cover;border:2px solid var(--i-accent);box-shadow:0 0 0 8px var(--i-glow);margin:6px auto 20px}
.cover-photo[hidden]{display:none}
.cover .invite-kicker{font-size:.8rem;margin-bottom:6px;letter-spacing:4px}
.cover h1{font:600 clamp(2.6rem,12vw,4.6rem) var(--font-display);line-height:1.02;margin:12px 0;overflow-wrap:anywhere;background:linear-gradient(100deg,var(--i-text) 30%,var(--i-accent) 50%,var(--i-text) 70%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:rise .9s cubic-bezier(.2,.7,.2,1) 1.84s both,shine 5s linear 3s infinite}
@keyframes shine{to{background-position:-250% 0}}
.cover .invite-date{font-size:1.5rem}
.cover-time{font-size:1.05rem;color:var(--i-text2);margin-top:4px}
.cover-open{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.85rem;letter-spacing:2px;text-transform:uppercase;color:var(--i-accent)!important;opacity:0;animation:rise .9s ease 2.7s forwards}
.cover-open span{animation:bob 1.6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(7px)}}

.sec{margin:0 0 20px;padding:28px 22px;text-align:center;background:var(--i-surface);border:1px solid var(--i-border);border-radius:20px;backdrop-filter:blur(6px)}
.sec h2{font:600 1.7rem var(--font-display);color:var(--i-accent);margin-bottom:14px}
.sec .invite-message{margin:0 auto;max-width:none;font-size:1.18rem}
.sec p{color:var(--i-text2);line-height:1.7}
main.guest-main{padding:10px 0 40px}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}

.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:6px}
.countdown div{padding:14px 4px;border-radius:14px;background:var(--i-field);border:1px solid var(--i-border)}
.countdown b{display:block;font:600 2rem/1 var(--font-display);color:var(--i-accent);font-variant-numeric:tabular-nums}
.countdown span{font-size:.7rem;letter-spacing:1px;text-transform:uppercase;color:var(--i-text2)}
.countdown-done{font:600 1.5rem var(--font-display);color:var(--i-accent)}

.gbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:12px;border:1px solid var(--i-accent);background:var(--i-accent);color:var(--i-btn-text)!important;font:600 .95rem var(--font-body);cursor:pointer;transition:transform .2s,box-shadow .2s}
.gbtn:hover{transform:translateY(-2px);box-shadow:0 8px 24px var(--i-glow)}
.gbtn.ghost{background:transparent;color:var(--i-accent)!important}
.gbtn[disabled]{opacity:.6;cursor:wait}
.btn-line{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:14px}
.place-name{font:600 1.4rem var(--font-display);color:var(--i-text)}
.place-map{display:block;width:100%;height:260px;margin:18px 0 12px;border:1px solid var(--i-border);border-radius:16px;background:var(--i-field)}
.map-link{width:100%;text-decoration:none}
.host-phone{display:inline-flex;align-items:center;justify-content:center;margin-top:10px;padding:12px 20px;border:1px solid var(--i-border);border-radius:12px;background:var(--i-field);color:var(--i-text)!important;font-size:1.15rem;font-weight:600;letter-spacing:.04em;text-decoration:none;font-variant-numeric:tabular-nums}
.cover .invite-date{padding:10px 20px;border:1px solid var(--i-border);border-radius:14px;background:var(--i-surface);backdrop-filter:blur(8px)}

.rsvp-form{display:grid;gap:14px;text-align:left}
.rsvp-form label,.rsvp-form .lbl{font-size:.85rem;color:var(--i-text2)}
.rsvp-form input[type=text],.rsvp-form textarea{width:100%;min-height:50px;padding:13px 14px;font:1rem var(--font-body);color:var(--i-text);background:var(--i-field);border:1px solid var(--i-border);border-radius:12px;outline:none}
.rsvp-form textarea{min-height:90px;resize:vertical}
.rsvp-form input:focus,.rsvp-form textarea:focus{border-color:var(--i-accent);box-shadow:0 0 0 3px var(--i-glow)}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice label{position:relative;display:flex;align-items:center;justify-content:center;min-height:54px;padding:10px;text-align:center;border:1px solid var(--i-border);border-radius:12px;color:var(--i-text);font-weight:600;cursor:pointer;background:var(--i-field);transition:.2s}
.choice input{position:absolute;opacity:0;inset:0;cursor:pointer}
.choice label:has(input:checked){background:var(--i-accent);color:var(--i-btn-text);border-color:var(--i-accent)}
.choice label:has(input:focus-visible){outline:2px solid var(--i-accent);outline-offset:2px}
.stepper{display:flex;align-items:center;gap:12px}
.stepper button{width:48px;height:48px;border-radius:12px;border:1px solid var(--i-border);background:var(--i-field);color:var(--i-text);font-size:1.4rem;cursor:pointer}
.stepper output{min-width:42px;text-align:center;font:600 1.6rem var(--font-display);color:var(--i-accent)}
.rsvp-error{display:none;padding:11px 13px;border-radius:10px;background:rgba(190,60,60,.22);border:1px solid rgba(230,120,120,.55);color:var(--i-text);font-size:.9rem}
.rsvp-error.show{display:block}
.thanks{padding:6px 0}
.thanks .big{font-size:2.6rem}
.thanks h3{font:600 1.6rem var(--font-display);color:var(--i-accent);margin:6px 0 8px}
.thanks .summary{margin:14px auto 4px;padding:12px 14px;border-radius:12px;background:var(--i-field);border:1px solid var(--i-border);font-size:.92rem;color:var(--i-text2);text-align:left;white-space:pre-line;overflow-wrap:anywhere}
.guest-foot{padding:10px 20px 40px;text-align:center;font-size:.82rem;color:var(--i-text2)}
.guest-foot a{color:var(--i-accent)!important;text-decoration:underline;text-underline-offset:3px}
.guest-error{min-height:100vh;display:grid;place-items:center;text-align:center;padding:30px}
.guest-error h1{font:600 2rem var(--font-display);color:var(--i-accent);margin-bottom:10px}

/* Фото и обложки: единый выразительный вид в конструкторе и у гостя */
.invite-form,.invite-preview-wrap,.result-box,.mine-box{box-shadow:0 22px 60px rgba(0,0,0,.18)}
.invite-form{border-radius:24px}
.invite-field input[type=file]{min-height:54px;border-style:dashed;cursor:pointer}
.invite-field input[type=file]::file-selector-button{margin-right:12px;padding:8px 12px;border:0;border-radius:7px;background:var(--gold-dim);color:var(--gold);font:600 .82rem var(--font-body);cursor:pointer}
.design-picker{gap:13px}
.design-choice{border-radius:15px;padding:8px;box-shadow:0 5px 16px rgba(0,0,0,.08)}
.design-choice[aria-pressed=true]{transform:translateY(-2px);box-shadow:0 9px 24px var(--gold-dim)}
.template-thumb{aspect-ratio:.92;border-radius:10px;gap:10px;padding:18px 8px}
.template-thumb::before,.template-thumb::after{content:'';position:absolute;inset:7px;border:1px solid var(--i-border);border-radius:6px;pointer-events:none}
.template-thumb::after{inset:12px;border-color:color-mix(in srgb,var(--i-accent) 35%,transparent)}
.template-thumb i{font-size:1.4rem}
.template-thumb b{font-size:clamp(.9rem,2vw,1.15rem);white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.1}
.template-thumb small{font-size:.56rem;letter-spacing:2.5px}
.invite-card{min-height:470px;border-radius:24px;padding:36px 25px;box-shadow:0 22px 54px rgba(0,0,0,.2)}
.invite-photo-preview{width:min(58%,190px);height:190px;object-fit:cover;border-radius:48% 48% 16px 16px;border:3px solid var(--i-accent);padding:5px;background:var(--i-surface);box-shadow:0 0 0 7px var(--i-glow),0 14px 32px rgba(0,0,0,.2);margin:18px auto 4px}
.cover-photo{width:min(66vw,300px);height:min(66vw,300px);max-height:34svh;border-radius:48% 48% 18px 18px;border:3px solid var(--i-accent);padding:7px;background:var(--i-surface);box-shadow:0 0 0 9px var(--i-glow),0 24px 60px rgba(0,0,0,.28);margin:15px auto 20px}
.cover h1{max-width:min(900px,94vw);text-wrap:balance;text-shadow:0 8px 30px rgba(0,0,0,.12)}
.cover .invite-kicker{padding:9px 16px;border:1px solid var(--i-border);border-radius:99px;background:var(--i-surface);backdrop-filter:blur(10px)}
.sec{box-shadow:0 14px 38px rgba(0,0,0,.12)}
@media(max-width:480px){.invite-card{min-height:420px}.invite-photo-preview{height:155px}.template-thumb{aspect-ratio:.86}.cover-photo{max-height:29svh}}
.personal-greeting{position:relative;z-index:2;margin:8px auto;color:var(--i-accent);font:600 1.1rem var(--font-display);text-align:center}
.live-confirmations{margin:0 auto 18px;padding:10px 15px;width:fit-content;border:1px solid var(--i-border);border-radius:99px;background:var(--i-surface);color:var(--i-accent);font-size:.9rem}
.celebration{height:0;overflow:visible;text-align:center;color:var(--i-accent);font-size:1.7rem;opacity:0;pointer-events:none}
.celebration.burst{animation:invite-burst 1.1s ease-out}
@keyframes invite-burst{0%{opacity:0;transform:translateY(18px) scale(.5)}25%{opacity:1}100%{opacity:0;transform:translateY(-28px) scale(1.25)}}
@media print{body.guest{background:#fff!important;color:#222!important}.guest .cover{min-height:100vh;break-after:page}.guest .guest-main{padding:0}.guest .sec{break-inside:avoid;box-shadow:none!important;background:#fff!important;color:#222!important}.guest .rsvp-form,.guest .thanks,.guest .music-btn,.guest .cover-open,.guest .guest-foot,.guest-tools,.guest .flora,.guest .prog-photo,.guest .place-map{display:none!important}.guest .guest-main{display:block}.guest .sec-prog,.guest .sec-cd,.guest .sec-cal{display:none!important}}

/* ---------- панель хозяина ---------- */
body.panel{background:var(--bg);color:var(--text);min-height:100vh;font-family:var(--font-body)}
.panel-wrap{width:min(900px,100% - 28px);margin:0 auto;padding:28px 0 60px}
.panel-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.panel-top h1{font:700 clamp(1.7rem,6vw,2.4rem) var(--font-display);line-height:1.1}
.panel-top p{color:var(--text2);font-size:.92rem}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}
.stat{padding:18px 10px;text-align:center;border-radius:16px;background:var(--glass2);border:1px solid var(--glass-border)}
.stat b{display:block;font:700 2.4rem/1 var(--font-display);color:var(--gold)}
.stat span{display:block;margin-top:6px;font-size:.78rem;color:var(--text2)}
.stat small{display:block;font-size:.72rem;color:var(--text3)}
.stat.yes b{color:#a8e6b4}
.stat.no b{color:#ffb4a8}
.pbox{margin-bottom:22px;padding:20px;border-radius:18px;background:var(--glass);border:1px solid var(--glass-border)}
.pbox h2{font:600 1.35rem var(--font-display);color:var(--gold);margin-bottom:14px}
.pbox h2 small{font:400 .8rem var(--font-body);color:var(--text3);margin-left:6px}
.rows{list-style:none;display:grid;gap:8px}
.row{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:12px 13px;border-radius:12px;background:var(--glass2);border:1px solid var(--glass-border)}
.row .who{min-width:0}
.row .who b{display:block;overflow-wrap:anywhere}
.row .who small{display:block;color:var(--text2);margin-top:3px;overflow-wrap:anywhere;white-space:pre-line}
.row .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}
.chip{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.72rem;font-weight:600;margin-right:6px;vertical-align:middle}
.chip.yes{background:rgba(120,210,140,.22);color:#b9f0c4}
.chip.no{background:rgba(255,150,130,.2);color:#ffc7bc}
.chip.wait{background:rgba(255,255,255,.12);color:var(--text2)}
.mini{min-height:38px;padding:7px 12px;border-radius:9px;border:1px solid var(--gold-border);background:transparent;color:var(--gold);font:600 .8rem var(--font-body);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.mini:hover{background:var(--gold-dim)}
.mini.wa{background:#25a65b;border-color:#25a65b;color:#fff}
.mini.del{color:#ffb4a8;border-color:rgba(255,150,130,.35)}
.empty{color:var(--text3);font-size:.9rem;padding:6px 0}
.add-guests textarea{width:100%;min-height:96px;padding:12px;font:.95rem var(--font-body);color:var(--text);background:rgba(0,0,0,.17);border:1px solid var(--glass-border);border-radius:10px;resize:vertical}
.add-guests p{font-size:.8rem;color:var(--text3);margin:0 0 8px}
.add-guests .mini{margin-top:10px}
.panel-share{display:flex;gap:8px;flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);padding:11px 18px;border-radius:10px;background:#fffbe9;color:#243d2f;font-size:.9rem;opacity:0;pointer-events:none;transition:.3s;z-index:90}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- мобильные ---------- */
@media(max-width:800px){
  .invite-builder{padding:105px 0 55px}
  .builder-grid{grid-template-columns:1fr}
  .invite-preview-wrap{order:-1;position:static}
  .invite-card{min-height:360px}
}
@media(max-width:480px){
  .invite-form,.invite-preview-wrap,.result-box,.mine-box{padding:19px}
  .invite-fields{grid-template-columns:1fr}
  .invite-field.wide{grid-column:auto}
  .design-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
  .link-row{flex-direction:column}
  .row{flex-direction:column}
  .row .acts{justify-content:flex-start}
  .stat b{font-size:2rem}
}
@media(prefers-reduced-motion:reduce){
  .curtain{display:none}
  .rise,.reveal{opacity:1;transform:none;animation:none;transition:none}
  .cover h1{animation:none;background:none;-webkit-text-fill-color:currentColor;color:var(--i-text)}
  .cover-open{opacity:1;animation:none}
  .cover-open span,.spark,.invite-card::before,.invite-card::after{animation:none}
}
.rsvp-lead{margin:0 0 18px;line-height:1.65;opacity:.9}
.rsvp-form textarea{min-height:110px}

/* ---------- гость: музыка и украшения (все дизайны) ---------- */
.flora,.flora-foot,.cal-month,.cal-time,.sec-cal,.prog-photo{display:none}
.music-btn{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:55;width:50px;height:50px;border-radius:50%;border:1px solid var(--i-accent);background:var(--i-surface);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 22px rgba(0,0,0,.2);padding:0}
.music-btn .eq{display:flex;align-items:flex-end;gap:3px;height:18px}
.music-btn .eq i{display:block;width:3px;height:5px;border-radius:2px;background:var(--i-accent)}
.music-btn.on .eq i{animation:eq 1s ease-in-out infinite}
.music-btn.on .eq i:nth-child(2){animation-delay:-.3s}.music-btn.on .eq i:nth-child(3){animation-delay:-.6s}.music-btn.on .eq i:nth-child(4){animation-delay:-.15s}
.music-btn:not(.on)::after{content:'';position:absolute;width:26px;height:2px;background:var(--i-accent);transform:rotate(-45deg);border-radius:2px}
@keyframes eq{0%,100%{height:5px}50%{height:18px}}
.prog{display:none}

/* ---------- 10 свадебных дизайнов: цвета ---------- */
:root{--w-heart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M20 35S4 25 4 14.5C4 9 8 5.5 12.5 5.5c3 0 5.5 1.700 7.500 4.500 2-2.800 4.500-4.500 7.500-4.500C32 5.500 36 9 36 14.500 36 25 20 35 20 35z'/%3E%3C/svg%3E")}
[data-theme=ivory],.template-thumb[data-theme=ivory]{--i-sage:#4a6046;--i-accent:#a58f5a;--i-bg:#f6f5f1;--i-text:#2b342b;--i-text2:#5d675c;--i-surface:transparent;--i-border:rgba(74,96,70,.34);--i-btn-text:#fff;--i-glow:#a58f5a38;--i-field:rgba(255,255,255,.55);--w-base:#f6f5f1;--w-bg1:rgba(226,228,219,.7);--w-bg2:rgba(226,228,219,.6);--w-rgb:18,22,18;--w-line:74,96,70;--w-card:rgba(255,255,255,.55);--w-flora:none;--w-font:var(--font-display)}
[data-theme=bordo],.template-thumb[data-theme=bordo]{--i-sage:#7a1f33;--i-accent:#b08a5a;--i-bg:#fbf5f3;--i-text:#3b1d24;--i-text2:#6e4a52;--i-surface:transparent;--i-border:rgba(122,31,51,.34);--i-btn-text:#fff;--i-glow:#b08a5a38;--i-field:rgba(255,255,255,.6);--w-base:#fbf5f3;--w-bg1:rgba(240,222,222,.75);--w-bg2:rgba(240,222,222,.6);--w-rgb:46,8,20;--w-line:122,31,51;--w-card:rgba(255,255,255,.6);--w-flora:hue-rotate(250deg) saturate(2.4) brightness(.97);--w-font:'Lora',var(--font-display)}
[data-theme=blush],.template-thumb[data-theme=blush]{--i-sage:#a35b6b;--i-accent:#c9a27a;--i-bg:#fdf5f4;--i-text:#4a2f35;--i-text2:#7c5d63;--i-surface:transparent;--i-border:rgba(163,91,107,.34);--i-btn-text:#fff;--i-glow:#c9a27a38;--i-field:rgba(255,255,255,.6);--w-base:#fdf5f4;--w-bg1:rgba(250,228,228,.8);--w-bg2:rgba(250,232,226,.7);--w-rgb:70,30,40;--w-line:163,91,107;--w-card:rgba(255,255,255,.6);--w-flora:hue-rotate(262deg) saturate(1.7) brightness(1.04);--w-font:var(--font-display)}
[data-theme=lavender],.template-thumb[data-theme=lavender]{--i-sage:#65569a;--i-accent:#a899cf;--i-bg:#f8f5fc;--i-text:#2f2a47;--i-text2:#645d82;--i-surface:transparent;--i-border:rgba(101,86,154,.34);--i-btn-text:#fff;--i-glow:#a899cf38;--i-field:rgba(255,255,255,.62);--w-base:#f8f5fc;--w-bg1:rgba(232,224,246,.8);--w-bg2:rgba(236,228,248,.65);--w-rgb:36,28,66;--w-line:101,86,154;--w-card:rgba(255,255,255,.62);--w-flora:hue-rotate(168deg) saturate(1.9);--w-font:'Lora',var(--font-display)}
[data-theme=sky],.template-thumb[data-theme=sky]{--i-sage:#3d6785;--i-accent:#8fa9bd;--i-bg:#f3f7fa;--i-text:#22323f;--i-text2:#566a79;--i-surface:transparent;--i-border:rgba(61,103,133,.34);--i-btn-text:#fff;--i-glow:#8fa9bd38;--i-field:rgba(255,255,255,.62);--w-base:#f3f7fa;--w-bg1:rgba(220,232,242,.8);--w-bg2:rgba(226,236,244,.65);--w-rgb:14,32,48;--w-line:61,103,133;--w-card:rgba(255,255,255,.62);--w-flora:hue-rotate(98deg) saturate(1.9);--w-font:var(--font-display)}
[data-theme=champagne],.template-thumb[data-theme=champagne]{--i-sage:#8a6b36;--i-accent:#b9985b;--i-bg:#fbf6ea;--i-text:#3b3122;--i-text2:#6f6048;--i-surface:transparent;--i-border:rgba(138,107,54,.34);--i-btn-text:#fff;--i-glow:#b9985b38;--i-field:rgba(255,255,255,.55);--w-base:#fbf6ea;--w-bg1:rgba(240,228,198,.7);--w-bg2:rgba(244,234,210,.65);--w-rgb:44,32,12;--w-line:138,107,54;--w-card:rgba(255,255,255,.55);--w-flora:hue-rotate(-38deg) saturate(1.5) sepia(.15);--w-font:'Lora',var(--font-display)}
[data-theme=peach],.template-thumb[data-theme=peach]{--i-sage:#b0583a;--i-accent:#d39a6a;--i-bg:#fdf3ec;--i-text:#4a2e22;--i-text2:#7c5a4a;--i-surface:transparent;--i-border:rgba(176,88,58,.34);--i-btn-text:#fff;--i-glow:#d39a6a38;--i-field:rgba(255,255,255,.6);--w-base:#fdf3ec;--w-bg1:rgba(250,226,210,.8);--w-bg2:rgba(252,232,218,.7);--w-rgb:62,26,12;--w-line:176,88,58;--w-card:rgba(255,255,255,.6);--w-flora:hue-rotate(-62deg) saturate(2);--w-font:var(--font-display)}
[data-theme=mint],.template-thumb[data-theme=mint]{--i-sage:#2d7468;--i-accent:#b59c63;--i-bg:#f1f8f5;--i-text:#1f3a35;--i-text2:#52716a;--i-surface:transparent;--i-border:rgba(45,116,104,.34);--i-btn-text:#fff;--i-glow:#b59c6338;--i-field:rgba(255,255,255,.62);--w-base:#f1f8f5;--w-bg1:rgba(214,238,230,.8);--w-bg2:rgba(222,242,234,.65);--w-rgb:10,40,34;--w-line:45,116,104;--w-card:rgba(255,255,255,.62);--w-flora:hue-rotate(52deg) saturate(1.7);--w-font:'Lora',var(--font-display)}
[data-theme=night],.template-thumb[data-theme=night]{--i-sage:#e5cb8b;--i-accent:#e5cb8b;--i-bg:#0f1c32;--i-text:#f3eddd;--i-text2:#b9c2d2;--i-surface:transparent;--i-border:rgba(229,203,139,.34);--i-btn-text:#0f1c32;--i-glow:#e5cb8b38;--i-field:rgba(255,255,255,.07);--w-base:#0f1c32;--w-bg1:rgba(36,60,102,.55);--w-bg2:rgba(26,46,82,.55);--w-rgb:4,10,24;--w-line:229,203,139;--w-card:rgba(255,255,255,.07);--w-flora:none;--w-font:var(--font-display)}
[data-theme=forest],.template-thumb[data-theme=forest]{--i-sage:#ecd28f;--i-accent:#ecd28f;--i-bg:#10372d;--i-text:#f2eedb;--i-text2:#bfd4c8;--i-surface:transparent;--i-border:rgba(236,210,143,.34);--i-btn-text:#10372d;--i-glow:#ecd28f38;--i-field:rgba(255,255,255,.07);--w-base:#10372d;--w-bg1:rgba(34,92,72,.55);--w-bg2:rgba(22,70,54,.55);--w-rgb:4,20,14;--w-line:236,210,143;--w-card:rgba(255,255,255,.07);--w-flora:none;--w-font:'Lora',var(--font-display)}

/* ---------- светлый «свадебный» дизайн: Ақ маржан ---------- */
body.guest.wed{background:radial-gradient(ellipse at 15% 8%,rgba(255,255,255,.95),transparent 45%),radial-gradient(ellipse at 90% 40%,var(--w-bg1),transparent 50%),radial-gradient(ellipse at 10% 85%,var(--w-bg2),transparent 50%),var(--w-base);background-attachment:fixed}
.wed .curtain i{background:var(--w-base)}
.wed .flora{display:block;filter:var(--w-flora);position:absolute;width:min(62vw,270px);height:auto;mix-blend-mode:multiply;pointer-events:none;-webkit-mask-image:radial-gradient(closest-side,#000 62%,transparent 100%);mask-image:radial-gradient(closest-side,#000 62%,transparent 100%);z-index:0}
.wed .flora-r{right:-46px;top:-70px}
.wed .flora-l{left:-52px;top:-62px}
.wed .flora-r2{right:-56px;bottom:-84px;width:min(66vw,290px)}
.wed .flora-l2{left:-56px;bottom:-80px;opacity:.9}
.wed .flora-foot{display:block;filter:var(--w-flora);width:min(78vw,330px);height:auto;margin:6px auto -26px;mix-blend-mode:multiply;-webkit-mask-image:radial-gradient(closest-side,#000 62%,transparent 100%);mask-image:radial-gradient(closest-side,#000 62%,transparent 100%);pointer-events:none}
.wed .sec{position:relative;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:64px 12px 56px}
.wed .sec>*:not(.flora){position:relative;z-index:1}
.wed .sec h2{font:italic 500 clamp(2.3rem,10.5vw,3.1rem)/1.05 var(--w-font);color:var(--i-sage);margin-bottom:20px}
.wed .sec h2::after{content:'❖';display:block;margin:14px auto 0;width:150px;font-size:.85rem;line-height:1;color:var(--i-accent);font-style:normal;background:linear-gradient(var(--i-accent),var(--i-accent)) left 50%/58px 1px no-repeat,linear-gradient(var(--i-accent),var(--i-accent)) right 50%/58px 1px no-repeat}
.wed .sec .invite-message{font:italic 500 1.28rem/1.75 var(--w-font);color:var(--i-text)}
.wed .sec p{color:var(--i-text2)}
.wed .place-name{font:600 1.15rem var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--i-text);margin-bottom:6px}
.wed .place-map{border-color:rgba(var(--w-line),.3);border-radius:22px;box-shadow:0 12px 34px rgba(60,70,55,.14)}
.wed .gbtn{border-radius:99px;background:var(--i-accent);border-color:var(--i-accent);letter-spacing:.04em;box-shadow:0 8px 22px var(--i-glow)}
.wed .gbtn.ghost{background:transparent;color:var(--i-sage)!important;border-color:var(--i-sage);box-shadow:none}
.wed .rsvp-form input[type=text],.wed .rsvp-form textarea{border-radius:26px;border:1px solid rgba(43,52,43,.7);background:var(--w-card);padding:14px 20px}
.wed .rsvp-form label,.wed .rsvp-form .lbl{font:italic 500 1.12rem var(--font-display);color:var(--i-text)}
.wed .rsvp-lead{font-style:italic}
.wed .thanks .summary,.wed .host-phone{background:var(--w-card);border-color:rgba(var(--w-line),.28)}
.wed .host-phone{border-radius:99px}
.wed .guest-foot{color:var(--i-text2)}
.wed .music-btn{background:var(--w-card)}

/* обложка: фото на весь экран */
.wed .cover{color:#fff;background:linear-gradient(180deg,rgba(var(--w-rgb),.42) 0%,rgba(var(--w-rgb),.1) 38%,rgba(var(--w-rgb),.8) 100%),var(--cover-img,none) center top/cover no-repeat,var(--w-base);justify-content:flex-end;padding:90px 20px 110px}
.wed .cover:not(.has-photo){color:var(--i-text);background:transparent;justify-content:center}
.wed .cover::before,.wed .cover::after{display:none}
.wed .cover-photo{display:none}
.wed .spark{color:#fff;opacity:.5}
.wed .cover .invite-kicker{color:#fff;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.55);letter-spacing:.3em}
.wed .cover h1{font:italic 500 clamp(3rem,15vw,5.4rem)/1.04 var(--w-font);background:none;-webkit-text-fill-color:currentColor;color:#fff;text-shadow:0 4px 28px rgba(0,0,0,.45);animation:rise .9s cubic-bezier(.2,.7,.2,1) 1.9s both}
.wed .cover .invite-sub{color:rgba(255,255,255,.92);font:italic 500 1.25rem var(--font-display)}
.wed .cover .invite-divider{background:rgba(255,255,255,.8)}
.wed .cover .invite-date{color:#fff;background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.55);font:500 1.2rem var(--font-display);letter-spacing:.12em;text-transform:uppercase}
.wed .cover-time{color:rgba(255,255,255,.92);letter-spacing:.1em}
.wed .cover-open{color:#fff!important}
.wed .cover:not(.has-photo) .invite-kicker,.wed .cover:not(.has-photo) .cover-open{color:var(--i-sage)!important}
.wed .cover:not(.has-photo) h1{color:var(--i-sage);text-shadow:none}
.wed .cover:not(.has-photo) .invite-sub,.wed .cover:not(.has-photo) .cover-time{color:var(--i-text2)}
.wed .cover:not(.has-photo) .invite-date{color:var(--i-text)}

/* обратный отсчёт: круги */
.wed .countdown{gap:6px;margin-top:10px}
.wed .countdown div{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;padding:0;border-radius:50%;background:var(--w-card);border:1px solid rgba(var(--w-line),.45)}
.wed .countdown b{font:500 clamp(1.5rem,7.6vw,2rem)/1 var(--font-display);color:var(--i-text)}
.wed .countdown span{font:italic .72rem var(--font-display);letter-spacing:0;text-transform:none;color:var(--i-text2);margin-top:3px}
.wed .countdown-done{color:var(--i-sage)}

/* календарь */
.wed .sec-cal{display:block}
.wed .cal-month{display:block;font:italic 500 1.7rem var(--font-display);color:var(--i-text);margin:-4px 0 18px}
.wed .cal{display:grid;grid-template-columns:repeat(7,1fr);row-gap:6px;max-width:370px;margin:0 auto;font-family:var(--font-display);color:var(--i-text)}
.wed .cal b{font-weight:500;font-size:.82rem;letter-spacing:.14em;color:var(--i-text2);padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid rgba(var(--w-line),.28)}
.wed .cal{isolation:isolate}
.wed .cal span{display:grid;place-items:center;height:42px;font-size:1.28rem}
.wed .cal span.on{position:relative;font-weight:700;color:var(--i-sage)}
.wed .cal span.on::before{content:'';position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;background:var(--i-accent);opacity:.3;z-index:-1;-webkit-mask:var(--w-heart) center/contain no-repeat;mask:var(--w-heart) center/contain no-repeat}
.wed .cal span.on::after{content:'';position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border:1.5px solid var(--i-sage);border-radius:50%;opacity:0}
.wed .cal-time{display:block;margin-top:22px;font:500 1.1rem var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--i-text)}

/* программа */
.wed .prog{display:block;position:relative;margin:6px auto 0;max-width:420px}
.wed .prog::before{content:'';position:absolute;left:50%;top:6%;bottom:6%;width:1px;background:rgba(var(--w-line),.4)}
.wed .prog-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:22px;margin:0 0 26px}
.wed .prog-text{display:flex;flex-direction:column;gap:6px;text-align:center}
.wed .prog-text b{font:500 2.1rem var(--font-display);color:var(--i-text);letter-spacing:.04em}
.wed .prog-text span{font:500 .82rem var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--i-text)}
.wed .prog-photo{display:block;width:min(100%,165px);aspect-ratio:1;object-fit:cover;border-radius:50%;margin:0 auto;box-shadow:0 8px 22px rgba(60,70,55,.18)}
.sec-prog{display:none}
.wed .sec-prog{display:block}

/* ---------- свадебные дизайны: вид обложки, отсчёт, секции ---------- */
.wed[data-theme=night] .flora,.wed[data-theme=forest] .flora,.wed[data-theme=night] .flora-foot,.wed[data-theme=forest] .flora-foot{display:block!important;mix-blend-mode:screen;opacity:.88;filter:brightness(1.15) saturate(.75)}
.wed .cover>.rise,.wed .cover>h1{position:relative;z-index:1}

/* арка: фото в арочной рамке, цветы по углам */
.wed .cover.arch-photo .cover-photo{display:block;width:min(72vw,290px);height:min(98vw,400px);max-height:46svh;padding:0;border-radius:999px 999px 20px 20px;border:2px solid var(--i-accent);box-shadow:0 0 0 7px var(--w-base),0 0 0 8px rgba(var(--w-line),.35),0 22px 50px rgba(var(--w-rgb),.25);margin:10px auto 22px;object-fit:cover;background:none}
.lay-arch.wed .cover{justify-content:center;padding:70px 20px 110px}
.lay-arch.wed .cover::before,.lay-arch.wed .cover::after{content:'';display:block;position:absolute;inset:auto;width:min(60vw,250px);aspect-ratio:1;border:0;border-radius:0;opacity:1;background:center/contain no-repeat;mix-blend-mode:multiply;filter:var(--w-flora);pointer-events:none;z-index:0;-webkit-mask-image:radial-gradient(closest-side,#000 62%,transparent 100%);mask-image:radial-gradient(closest-side,#000 62%,transparent 100%)}
.lay-arch.wed .cover::before{background-image:url(/assets/invite/flowers-right.jpg);right:-52px;top:-40px}
.lay-arch.wed .cover::after{background-image:url(/assets/invite/flowers-left.jpg);left:-56px;bottom:-34px}
.lay-arch.wed[data-theme=night] .cover::before,.lay-arch.wed[data-theme=night] .cover::after,.lay-arch.wed[data-theme=forest] .cover::before,.lay-arch.wed[data-theme=forest] .cover::after{mix-blend-mode:screen;opacity:.82;filter:brightness(1.2) saturate(.8)}
.lay-arch.wed .sec h2::after{content:'❀'}

/* рамка: фото на весь экран с двойной тонкой рамкой */
.lay-frame.wed .cover{justify-content:center;padding:90px 30px 110px}
.lay-frame.wed .cover::before,.lay-frame.wed .cover::after{display:block;border-radius:0;pointer-events:none;z-index:1}
.lay-frame.wed .cover::before{inset:16px;border:1px solid rgba(255,255,255,.8)}
.lay-frame.wed .cover::after{inset:24px;border:1px solid rgba(255,255,255,.4);opacity:1}
.lay-frame.wed .cover:not(.has-photo)::before{border-color:rgba(var(--w-line),.55)}
.lay-frame.wed .cover:not(.has-photo)::after{border-color:rgba(var(--w-line),.3)}
.lay-frame.wed .sec{background:var(--w-card);border:1px solid rgba(var(--w-line),.3);border-radius:2px;margin:0 0 26px;padding:50px 18px 44px;overflow:hidden}
.lay-frame.wed .sec h2{font-style:normal;letter-spacing:.06em}
.lay-frame.wed .sec h2::after{content:'◆'}
.lay-frame.wed .cover h1{font-style:normal;letter-spacing:.02em}

/* отсчёт */
.cd-sq.wed .countdown div{aspect-ratio:auto;border-radius:16px;padding:18px 2px 14px}
.cd-line.wed .countdown div{aspect-ratio:auto;border:0;border-radius:0;background:none;border-bottom:1px solid rgba(var(--w-line),.55);padding:8px 0 12px}
.cd-line.wed .countdown b{font-size:clamp(1.9rem,9vw,2.5rem)}
.cd-sq.wed .cal span.on::before{border-radius:50%;-webkit-mask:none;mask:none;opacity:.22;width:38px;height:38px;margin:-19px 0 0 -19px}
.cd-line.wed .cal span.on::before{display:none}
.cd-line.wed .cal span.on::after{opacity:1;border-radius:50%}
.wed .music-btn{border-color:var(--i-accent)}

/* выбор дизайна: миниатюры в светлом стиле */
.design-picker{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}
.template-thumb[data-theme=ivory],.template-thumb[data-theme=bordo],.template-thumb[data-theme=blush],.template-thumb[data-theme=lavender],.template-thumb[data-theme=sky],.template-thumb[data-theme=champagne],.template-thumb[data-theme=peach],.template-thumb[data-theme=mint],.template-thumb[data-theme=night],.template-thumb[data-theme=forest]{background:radial-gradient(ellipse at top,var(--i-glow),transparent 70%),var(--w-base)}
.template-thumb[data-theme=ivory] b,.template-thumb[data-theme=bordo] b,.template-thumb[data-theme=blush] b,.template-thumb[data-theme=lavender] b,.template-thumb[data-theme=sky] b,.template-thumb[data-theme=champagne] b,.template-thumb[data-theme=peach] b,.template-thumb[data-theme=mint] b{color:var(--i-sage);font-style:italic}
.template-thumb[data-theme=night] b,.template-thumb[data-theme=forest] b{color:var(--i-sage)}

/* Карточки повторяют композицию выбранной обложки, включая фото и цветочные углы. */
.template-thumb{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at top,var(--i-glow),transparent 70%),var(--w-base)!important}
.template-thumb::before,.template-thumb::after{z-index:2}
.template-thumb i,.template-thumb b,.template-thumb small{position:relative;z-index:3;text-align:center}
.template-thumb i{font-size:1.6rem;text-shadow:0 2px 12px var(--i-glow)}
.template-thumb b{max-width:88%;font-size:clamp(.78rem,1.4vw,1rem);text-shadow:0 1px 8px var(--i-bg)}
.template-thumb small{padding:4px 8px;border:1px solid var(--i-border);border-radius:99px;background:color-mix(in srgb,var(--w-base) 78%,transparent)}
.template-thumb[data-theme=ivory]{border-radius:18px 18px 9px 9px}
.template-thumb[data-theme=bordo]{border-radius:5px;background-image:linear-gradient(135deg,rgba(255,255,255,.15),transparent 48%),radial-gradient(ellipse at top,var(--i-glow),transparent 70%)!important}
.template-thumb[data-theme=blush],.template-thumb[data-theme=lavender],.template-thumb[data-theme=mint]{border-radius:48% 48% 10px 10px}
.template-thumb[data-theme=sky],.template-thumb[data-theme=champagne],.template-thumb[data-theme=peach],.template-thumb[data-theme=forest]{border-radius:3px}
.template-thumb[data-theme=night]{background-image:radial-gradient(ellipse at 50% 20%,rgba(90,123,185,.58),transparent 55%),linear-gradient(160deg,#172746,#091326)!important}
.template-thumb[data-theme=forest]{background-image:radial-gradient(ellipse at 50% 20%,rgba(60,137,102,.65),transparent 58%),linear-gradient(160deg,#174b3c,#08271f)!important}
.template-thumb[data-design=blush]::before,.template-thumb[data-design=lavender]::before,.template-thumb[data-design=mint]::before,.template-thumb[data-design=night]::before,.template-thumb[data-design=forest]::before{content:'';inset:auto auto -15px -17px;width:62px;height:62px;border:0;border-radius:50%;background:url('/assets/invite/flowers-left.jpg') center/contain no-repeat;opacity:.78;filter:var(--w-flora);mix-blend-mode:multiply}
.template-thumb[data-design=blush]::after,.template-thumb[data-design=lavender]::after,.template-thumb[data-design=mint]::after,.template-thumb[data-design=night]::after,.template-thumb[data-design=forest]::after{content:'';inset:-14px -17px auto auto;width:62px;height:62px;border:0;border-radius:50%;background:url('/assets/invite/flowers-right.jpg') center/contain no-repeat;opacity:.78;filter:var(--w-flora);mix-blend-mode:multiply}
.template-thumb[data-design=night]::before,.template-thumb[data-design=night]::after,.template-thumb[data-design=forest]::before,.template-thumb[data-design=forest]::after{mix-blend-mode:screen;filter:brightness(1.25) saturate(.8);opacity:.9}
.invite-card{position:relative}
.invite-card[data-layout=arch]{border-radius:45% 45% 18px 18px;padding-top:70px}
.invite-card[data-layout=frame]{border-radius:4px;border:3px double var(--i-accent)}
.preview-cover-art{display:none}
.invite-card[data-layout=arch] .preview-cover-art,.invite-card[data-layout=frame] .preview-cover-art{display:block;position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.preview-flower{position:absolute;width:110px;height:110px;object-fit:contain;opacity:.56;mix-blend-mode:multiply;filter:var(--w-flora)}
.preview-flower-a{top:-20px;right:-24px}.preview-flower-b{bottom:-20px;left:-24px}
.invite-card[data-theme=night] .preview-flower,.invite-card[data-theme=forest] .preview-flower{mix-blend-mode:screen;filter:brightness(1.15) saturate(.8);opacity:.8}
.invite-card>*:not(.preview-cover-art){position:relative;z-index:1}
.invite-card[data-layout=frame]::before,.invite-card[data-layout=frame]::after{border-radius:0}

/* Десять отдельных композиций для приглашений и их внутренних блоков. */
.wed .cover:not(.has-photo){min-height:92svh}
.wed .cover.has-photo{justify-content:center;padding-top:76px;background:radial-gradient(ellipse at 50% 36%,var(--w-bg1),transparent 58%),var(--w-base)}
.wed .cover.has-photo .cover-photo{display:block}
.wed .cover.has-photo .invite-kicker{color:var(--i-sage);background:var(--w-card);border-color:rgba(var(--w-line),.35)}
.wed .cover.has-photo h1{color:var(--i-sage);text-shadow:none}
.wed .cover.has-photo .invite-sub,.wed .cover.has-photo .cover-time{color:var(--i-text2)}
.wed .cover.has-photo .invite-date{color:var(--i-text);background:var(--w-card);border-color:rgba(var(--w-line),.35)}
.wed .cover.has-photo .cover-open{color:var(--i-sage)!important}
.wed .cover.has-photo .spark{color:var(--i-sage)}
.wed .cover.has-photo .cover-photo{width:min(74vw,320px);height:min(74vw,320px);max-height:39svh;object-fit:cover;border-radius:var(--photo-shape,50%);padding:6px;border:1px solid var(--i-accent);background:var(--w-card);box-shadow:0 0 0 5px var(--w-base),0 0 0 7px rgba(var(--w-line),.25),0 20px 44px rgba(var(--w-rgb),.18)}
.wed .sec{transition:background .25s ease}
.wed .sec h2::after{content:var(--section-mark,'❖')}
.wed .sec-msg{border-bottom:1px solid rgba(var(--w-line),.2)}
.wed .sec-msg .invite-message{padding:0 10px}
.wed .sec-cd{border-top:1px solid rgba(var(--w-line),.2);border-bottom:1px solid rgba(var(--w-line),.2)}
.wed .sec-prog{border-radius:var(--panel-shape,0);background:var(--panel-bg,transparent)}
.wed #place-sec{border:1px solid rgba(var(--w-line),.22);border-radius:var(--panel-shape,18px);padding:42px 18px}
.wed #rsvp{border-top:1px solid rgba(var(--w-line),.22)}

/* Ақ маржан: спокойная карточка с круглым портретом. */
.wed[data-theme=ivory]{--photo-shape:50%;--panel-shape:24px;--panel-bg:rgba(255,255,255,.34);--section-mark:'❖'}
/* Бордо: строгая печатная рамка, квадратное фото и прямые блоки. */
.wed[data-theme=bordo]{--photo-shape:8px;--panel-shape:3px;--panel-bg:rgba(255,255,255,.42);--section-mark:'✦'}
.wed[data-theme=bordo] .cover:not(.has-photo)::before{display:block;inset:22px;border:1px solid var(--i-sage);border-radius:2px}
.wed[data-theme=bordo] .sec{border-left:2px solid rgba(var(--w-line),.48);border-right:2px solid rgba(var(--w-line),.48)}
/* Қызғылт таң: мягкая арка и большие цветочные поля. */
.wed[data-theme=blush]{--photo-shape:48% 48% 18px 18px;--panel-shape:34px;--panel-bg:rgba(255,255,255,.4);--section-mark:'❀'}
.wed[data-theme=blush] .cover:not(.has-photo){border-radius:48% 48% 0 0;min-height:96svh}
.wed[data-theme=blush] .sec{border-radius:34px 34px 8px 8px;background:rgba(255,255,255,.24);margin-bottom:18px}
/* Лаванда: смещённый портрет и лёгкие пунктирные разделители. */
.wed[data-theme=lavender]{--photo-shape:48% 48% 8px 8px;--panel-shape:18px;--panel-bg:rgba(255,255,255,.38);--section-mark:'✿'}
.wed[data-theme=lavender] .cover-photo{transform:rotate(-3deg)}
.wed[data-theme=lavender] .sec{border-bottom:1px dashed rgba(var(--w-line),.4)}
/* Көгілдір аспан: чистая геометрия и синяя линия. */
.wed[data-theme=sky]{--photo-shape:4px;--panel-shape:2px;--panel-bg:rgba(255,255,255,.48);--section-mark:'◇'}
.wed[data-theme=sky] .cover:not(.has-photo)::before{display:block;inset:28px;border:1px solid rgba(var(--w-line),.65);border-radius:0}
.wed[data-theme=sky] .sec{border-top:2px solid rgba(var(--w-line),.38);margin-bottom:20px}
/* Алтын шампан: мягкие золотые овалы и центральная композиция. */
.wed[data-theme=champagne]{--photo-shape:50%;--panel-shape:999px;--panel-bg:rgba(255,255,255,.4);--section-mark:'✧'}
.wed[data-theme=champagne] .sec{border:1px solid rgba(var(--w-line),.25);border-radius:42px;margin-bottom:20px}
.wed[data-theme=champagne] .countdown div{box-shadow:0 5px 18px rgba(var(--w-rgb),.08)}
/* Шабдалы: тёплые асимметричные карточки и овальный портрет. */
.wed[data-theme=peach]{--photo-shape:46% 46% 8px 46%;--panel-shape:26px 4px 26px 4px;--panel-bg:rgba(255,255,255,.42);--section-mark:'✺'}
.wed[data-theme=peach] .sec:nth-of-type(even){transform:translateX(5px)}
/* Жалбыз: свежие широкие поля и двойные тонкие линии. */
.wed[data-theme=mint]{--photo-shape:50% 50% 12px 12px;--panel-shape:12px;--panel-bg:rgba(255,255,255,.46);--section-mark:'❋'}
.wed[data-theme=mint] .sec{border-top:1px solid rgba(var(--w-line),.4);border-bottom:1px solid rgba(var(--w-line),.4)}
/* Түнгі көк: звёздная обложка и стеклянные панели. */
.wed[data-theme=night]{--photo-shape:50%;--panel-shape:20px;--panel-bg:rgba(255,255,255,.07);--section-mark:'✦'}
.wed[data-theme=night] .cover:not(.has-photo){background:radial-gradient(circle at 50% 24%,rgba(90,123,185,.48),transparent 32%),radial-gradient(circle at 18% 78%,rgba(90,123,185,.22),transparent 30%),var(--w-base)}
.wed[data-theme=night] .sec{background:var(--panel-bg);border:1px solid rgba(var(--w-line),.22);border-radius:20px;margin-bottom:18px;backdrop-filter:blur(8px)}
/* Жасыл орман: природная асимметрия и насыщенные зелёные панели. */
.wed[data-theme=forest]{--photo-shape:50% 50% 8px 8px;--panel-shape:28px 4px 28px 4px;--panel-bg:rgba(255,255,255,.07);--section-mark:'❖'}
.wed[data-theme=forest] .cover:not(.has-photo){background:radial-gradient(ellipse at 12% 18%,rgba(70,145,102,.55),transparent 35%),radial-gradient(ellipse at 90% 84%,rgba(70,145,102,.35),transparent 34%),var(--w-base)}
.wed[data-theme=forest] .sec{background:var(--panel-bg);border:1px solid rgba(var(--w-line),.28);border-radius:var(--panel-shape);margin-bottom:18px}

@media(max-width:520px){.wed .cover.has-photo .cover-photo{width:min(70vw,270px);height:min(70vw,270px);max-height:32svh}}

/* Фото клиента сразу на всех 10 обложках-карточках, в живом просмотре и внутри приглашения. */
.template-thumb[data-design=ivory],.invite-card[data-theme=ivory]{--tp-shape:50%}
.template-thumb[data-design=bordo],.invite-card[data-theme=bordo]{--tp-shape:8px}
.template-thumb[data-design=blush],.invite-card[data-theme=blush]{--tp-shape:48% 48% 18px 18px}
.template-thumb[data-design=lavender],.invite-card[data-theme=lavender]{--tp-shape:48% 48% 8px 8px}
.template-thumb[data-design=sky],.invite-card[data-theme=sky]{--tp-shape:4px}
.template-thumb[data-design=champagne],.invite-card[data-theme=champagne]{--tp-shape:50%}
.template-thumb[data-design=peach],.invite-card[data-theme=peach]{--tp-shape:46% 46% 8px 46%}
.template-thumb[data-design=mint],.invite-card[data-theme=mint]{--tp-shape:50% 50% 12px 12px}
.template-thumb[data-design=night],.invite-card[data-theme=night]{--tp-shape:50%}
.template-thumb[data-design=forest],.invite-card[data-theme=forest]{--tp-shape:50% 50% 8px 8px}
.template-thumb .thumb-photo{display:none}
.template-thumb.has-thumb-photo{gap:7px;padding:14px 8px 12px}
.template-thumb.has-thumb-photo i{display:none}
.template-thumb.has-thumb-photo .thumb-photo{display:block;position:relative;z-index:3;width:58%;aspect-ratio:1;object-fit:cover;border-radius:var(--tp-shape,50%);border:2px solid var(--i-accent);box-shadow:0 0 0 3px var(--w-base),0 6px 14px rgba(0,0,0,.22)}
.thumb-caption{display:none}
.template-thumb.has-thumb-photo .thumb-caption{position:absolute;z-index:4;left:8px;right:8px;bottom:8px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 4px 3px;color:#fff;text-shadow:0 1px 5px #000;background:linear-gradient(transparent,rgba(0,0,0,.58));pointer-events:none}
.thumb-caption-name{font:600 .66rem/1 var(--font-display)!important;color:inherit!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thumb-caption-date{font-size:.42rem!important;letter-spacing:.01em!important;color:inherit!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.template-thumb[data-design=lavender].has-thumb-photo .thumb-photo{transform:rotate(-3deg)}
.invite-photo-preview{width:min(58%,190px);height:auto;aspect-ratio:1;border-radius:var(--tp-shape,50%)}
.invite-card[data-theme=lavender] .invite-photo-preview{transform:rotate(-3deg)}
.msg-photo{display:block;width:min(46vw,190px);aspect-ratio:1;object-fit:cover;margin:0 auto 22px;border-radius:var(--photo-shape,50%);padding:5px;border:1px solid var(--i-accent);background:var(--w-card);box-shadow:0 0 0 5px var(--w-base),0 0 0 7px rgba(var(--w-line),.25),0 14px 32px rgba(var(--w-rgb),.16)}
.msg-photo[hidden]{display:none}
.wed[data-theme=lavender] .msg-photo{transform:rotate(-3deg)}

/* ---------- подпись на фото: шрифт, цвет, форма, положение ---------- */
[data-cap-font=classic]{--cap-ff:'Cormorant Garamond',Georgia,serif;--cap-fw:700;--cap-st:italic;--cap-sc:1;--cap-ls:0;--cap-tt:none}
[data-cap-font=elegant]{--cap-ff:'Yeseva One','Cormorant Garamond',serif;--cap-fw:400;--cap-st:normal;--cap-sc:.86;--cap-ls:.01em;--cap-tt:none}
[data-cap-font=script]{--cap-ff:'Bad Script','Marck Script',cursive;--cap-fw:400;--cap-st:normal;--cap-sc:1;--cap-ls:0;--cap-tt:none}
[data-cap-font=brush]{--cap-ff:'Pacifico','Bad Script',cursive;--cap-fw:400;--cap-st:normal;--cap-sc:.8;--cap-ls:0;--cap-tt:none}
[data-cap-font=hand]{--cap-ff:'Caveat','Bad Script',cursive;--cap-fw:700;--cap-st:normal;--cap-sc:1.25;--cap-ls:.01em;--cap-tt:none}
[data-cap-font=modern]{--cap-ff:'Montserrat','Inter',sans-serif;--cap-fw:600;--cap-st:normal;--cap-sc:.72;--cap-ls:.09em;--cap-tt:uppercase}
[data-cap-color=white]{--cap-col:#fff}
[data-cap-color=gold]{--cap-col:#f7d98b}
[data-cap-color=rose]{--cap-col:#ffc6d9}
[data-cap-color=sky]{--cap-col:#c4e0ff}
[data-cap-color=mint]{--cap-col:#c5f2dc}

.invite-card[data-theme=ivory],.invite-card[data-theme=champagne],.invite-card[data-theme=night],.wed[data-theme=ivory],.wed[data-theme=champagne],.wed[data-theme=night]{--cap-shape:999px 999px 22px 22px}
.invite-card[data-theme=bordo],.wed[data-theme=bordo]{--cap-shape:8px}
.invite-card[data-theme=blush],.wed[data-theme=blush]{--cap-shape:48% 48% 18px 18px}
.invite-card[data-theme=lavender],.wed[data-theme=lavender]{--cap-shape:48% 48% 8px 8px}
.invite-card[data-theme=sky],.wed[data-theme=sky]{--cap-shape:4px}
.invite-card[data-theme=peach],.wed[data-theme=peach]{--cap-shape:999px 28px 10px 10px}
.invite-card[data-theme=mint],.wed[data-theme=mint]{--cap-shape:50% 50% 12px 12px}
.invite-card[data-theme=forest],.wed[data-theme=forest]{--cap-shape:50% 50% 8px 8px}

.invite-photo-stage{border-radius:var(--cap-shape,24px)}
.invite-photo-stage .invite-photo-preview{border-radius:var(--cap-shape,24px);transform:none!important}
.invite-photo-preview,.thumb-photo,.cover-fig>img,.msg-photo{object-position:50% var(--photo-y,35%)}
.photo-caption{color:var(--cap-col,#fff)}
.photo-caption strong{font-family:var(--cap-ff,var(--font-display));font-weight:var(--cap-fw,600);font-style:var(--cap-st,normal);font-size:calc(clamp(1.25rem,4vw,1.8rem)*var(--cap-sc,1));line-height:1.12;letter-spacing:var(--cap-ls,0);text-transform:var(--cap-tt,none);text-wrap:balance}
.template-thumb.has-thumb-photo .thumb-caption{color:var(--cap-col,#fff)}
.thumb-caption-name{font-family:var(--cap-ff,var(--font-display))!important;font-weight:var(--cap-fw,600)!important;font-style:var(--cap-st,normal)!important;font-size:calc(.66rem*var(--cap-sc,1))!important;line-height:1.15!important;letter-spacing:var(--cap-ls,0)!important;text-transform:var(--cap-tt,none)!important}

.cap-tools[hidden]{display:none}
.cap-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.cap-font{min-width:66px;padding:8px 12px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass2);color:var(--text);cursor:pointer;font-family:var(--cap-ff);font-weight:var(--cap-fw);font-style:var(--cap-st);font-size:calc(1.4rem*var(--cap-sc,1));line-height:1.1;letter-spacing:var(--cap-ls,0);text-transform:var(--cap-tt,none)}
.cap-color{width:34px;height:34px;padding:0;border-radius:50%;border:2px solid var(--glass-border);background:var(--cap-col);cursor:pointer}
.cap-font[aria-pressed=true],.cap-color[aria-pressed=true]{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}
.cap-pos{display:grid;gap:6px;margin-top:14px;font-size:.85rem}
.cap-pos input{width:100%;accent-color:var(--gold)}
.cap-pos small{color:var(--text3)}

/* мои приглашения: быстрые действия */
.mine-list li{display:grid;gap:8px}
.mine-list .mine-actions{display:flex;flex-wrap:wrap;gap:8px}
.mine-list .mine-actions a,.mine-list .mine-actions button{display:inline-flex;padding:7px 13px;border:1px solid var(--glass-border);border-radius:99px;background:transparent;color:var(--gold);font:500 .8rem var(--font-body,inherit);cursor:pointer}
.mine-list .mine-actions a:hover,.mine-list .mine-actions button:hover{border-color:var(--gold)}
.action-row{flex-wrap:wrap}

/* обложка гостя: фото с подписью, как в конструкторе */
.cover-fig{position:relative;margin:6px auto 22px;width:min(80vw,340px);overflow:hidden;border-radius:var(--cap-shape,24px);isolation:isolate;box-shadow:0 0 0 5px var(--w-base,transparent),0 0 0 7px rgba(var(--w-line,255,255,255),.25),0 22px 48px rgba(0,0,0,.26)}
.cover-fig[hidden]{display:none}
.cover.has-photo .cover-fig>img.cover-photo{display:block;width:100%;height:auto;max-height:none;aspect-ratio:4/5;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:none;object-fit:cover;transform:none}
.cover-fig .photo-caption{padding:56px 16px 22px;gap:7px}
.cover-fig .photo-caption strong{font-size:calc(clamp(1.9rem,9vw,2.7rem)*var(--cap-sc,1))}
.cover-fig .photo-caption>span:first-child{font-size:.66rem}
.cover-fig .photo-caption>span:last-child{font-size:.9rem}
.cover.has-photo>.invite-kicker,.cover.has-photo>h1,.cover.has-photo>.invite-date,.cover.has-photo>.cover-time{position:absolute!important;width:1px;height:1px;margin:-1px!important;padding:0!important;overflow:hidden;clip:rect(0 0 0 0);border:0!important;white-space:nowrap}
.cal-add{margin-top:22px}

/* Той түрінің жеке акценттері, ұлттық өрнек және қауіпсіз қозғалыс. */
.guest[data-event-kind="Сүндет той"]{--event-mark:'✦';--event-accent:#d6a83f}
.guest[data-event-kind="Бесік той"],.guest[data-event-kind="Бесікке салу"]{--event-mark:'❋';--event-accent:#83b6c8}
.guest[data-event-kind="Қыз ұзату"]{--event-mark:'❀';--event-accent:#c98577}
.guest[data-event-kind="Тұсау кесер"]{--event-mark:'❖';--event-accent:#81a86f}
.guest[data-event-kind*="Мерейтой"]{--event-mark:'✧';--event-accent:#b59a61}
.guest[data-event-kind="Үйлену той"]{--event-mark:'❦';--event-accent:#bd9b62}
.guest .sec h2::before{content:var(--event-mark,'❖');display:block;color:var(--event-accent,var(--i-accent));font-size:1.15rem;margin-bottom:7px}
.guest .cover::after{content:'❖  ❖  ❖';position:absolute;inset:auto 0 18px;text-align:center;letter-spacing:.7em;color:var(--event-accent,var(--i-accent));opacity:.62;pointer-events:none}
.guest #g-names{animation:calligraphy-in 1.8s cubic-bezier(.2,.7,.2,1) both;transform-origin:center}
@keyframes calligraphy-in{0%{opacity:0;clip-path:inset(0 100% 0 0);filter:blur(2px)}100%{opacity:1;clip-path:inset(0);filter:none}}
.guest.night-mode{filter:none}
.guest.night-mode .cover{background:radial-gradient(ellipse at 50% 18%,rgba(101,126,181,.48),transparent 48%),linear-gradient(155deg,#101c35,#172948 62%,#25365b)!important;color:#fff}
.guest.night-mode .guest-main{background:linear-gradient(#172441,#111c34)!important;color:#f8f1df}
.guest.night-mode .sec{background:rgba(255,255,255,.075);border-color:rgba(236,207,142,.3);color:#f8f1df}
.guest.night-mode .sec p,.guest.night-mode .sec label{color:#eee5d2}
.guest.night-mode .guest-foot{background:#111c34;color:#eee5d2}
.planning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.planning-grid label{display:grid;gap:7px;font-size:.86rem;color:var(--text2)}
.planning-grid input{min-width:0;width:100%;padding:10px 12px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass2);color:var(--text);font:inherit}
.plan-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.plan-results span{display:grid;gap:5px;padding:13px;border-radius:12px;background:var(--glass2);color:var(--text3);font-size:.8rem}
.plan-results b{color:var(--gold);font-size:1.2rem}
.guest-tools{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}
.rsvp-confetti{position:fixed;inset:0;z-index:100;overflow:hidden;pointer-events:none}
.rsvp-confetti i{position:absolute;top:-40px;font-style:normal;font-size:clamp(18px,4vw,34px);animation:confetti-fall 2.2s ease-in forwards;animation-delay:var(--delay,0ms);text-shadow:0 2px 7px rgba(0,0,0,.18)}
@keyframes confetti-fall{to{transform:translate3d(22px,110vh,0) rotate(540deg);opacity:.1}}
@media(max-width:620px){.planning-grid,.plan-results{grid-template-columns:1fr}.planning-grid{gap:9px}}
@media(prefers-reduced-motion:reduce){.guest #g-names{animation:none}.guest .reveal{transition:none!important}.spark{animation:none!important}}
