@font-face{font-family:WeddingSerif;src:url(fonts/cormorant-garamond-cyrillic-400-normal.woff2) format('woff2');font-weight:400;font-display:swap;unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:WeddingSerif;src:url(fonts/cormorant-garamond-latin-400-normal.woff2) format('woff2');font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F}@font-face{font-family:WeddingSerif;src:url(fonts/cormorant-garamond-cyrillic-500-italic.woff2) format('woff2');font-weight:500;font-style:italic;font-display:swap;unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:WeddingSerif;src:url(fonts/cormorant-garamond-latin-500-italic.woff2) format('woff2');font-weight:500;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F}@font-face{font-family:WeddingSans;src:url(fonts/manrope-cyrillic-400-normal.woff2) format('woff2');font-weight:400;font-display:swap;unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:WeddingSans;src:url(fonts/manrope-latin-400-normal.woff2) format('woff2');font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F}@font-face{font-family:WeddingSans;src:url(fonts/manrope-cyrillic-600-normal.woff2) format('woff2');font-weight:600;font-display:swap;unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:WeddingSans;src:url(fonts/manrope-latin-600-normal.woff2) format('woff2');font-weight:600;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F}
/* Invitation and guest form */
:root{--accent:#405c4e;--ink:#2d4037;--muted:#657166;--gold:#9b7950;--line:#dcded1;--paper:#fffdf8;--tint:#edf2e8}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f3f0e6;color:var(--ink);font:16px/1.65 WeddingSans,system-ui,sans-serif;background-image:radial-gradient(ellipse at 5% 20%,#e4eadc99,transparent 48%),radial-gradient(ellipse at 100% 75%,#efe0d066,transparent 48%)}button,input,select,textarea{font:inherit}button,a,input,textarea,summary{touch-action:manipulation}a{color:var(--accent)}
.page-border{position:fixed;inset:16px;pointer-events:none;z-index:-1}.wedding-head{max-width:1280px;margin:30px auto 36px;display:flex;align-items:center;justify-content:center;gap:32px;color:#65705f;font-size:11px;letter-spacing:.15em;text-transform:uppercase}.rings{width:64px;height:44px;stroke:var(--gold);stroke-width:1.2;flex-shrink:0}
.wq{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);max-width:1344px;padding:0 40px;gap:56px;margin:0 auto;align-items:start}.invite{position:relative;isolation:isolate;overflow:clip;text-align:center;padding:26px 12px;min-width:0}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.18em;font-size:11px;line-height:1.7;color:var(--gold);font-weight:600}.invite-title{padding:0 0 2px}.invite h1{font:400 clamp(52px,4.8vw,70px)/1.04 WeddingSerif,Georgia,serif;letter-spacing:-.025em;margin:20px 0 0;overflow-wrap:anywhere;text-wrap:balance}.name-line{display:block;max-width:100%}.name-join{display:flex;align-items:center;justify-content:center;gap:14px;margin:5px 0 6px;color:var(--gold);font:500 italic 30px/1 WeddingSerif,Georgia,serif;letter-spacing:0}.name-join:before,.name-join:after{content:"";width:42px;height:1px;background:linear-gradient(90deg,transparent,#baa17b)}.name-join:after{transform:scaleX(-1)}.invite-photo{position:relative;isolation:isolate;width:calc(100% - 40px);max-width:342px;margin:38px auto 48px}.photo-back{position:absolute;inset:0 3px;background:#e4eadc;border:1px solid #b5c1a6;border-radius:5px;transform:rotate(4deg);z-index:-1;box-shadow:0 12px 35px #584b2d10}.photo-back:after{content:'';position:absolute;inset:9px;border:1px solid #fff9;border-radius:2px}.photo-frame{position:relative;background:#fffdf7;border:1px solid #ddd4bf;border-radius:5px;padding:12px 12px 0;box-shadow:0 18px 35px #57472e21;transform:rotate(-2deg)}.photo-window{position:relative;border:1px solid #baa174;padding:4px;background:#faf4e7}.photo-frame .photo-window img{width:100%;height:390px;object-fit:cover;object-position:center 36%;display:block;border-radius:0}.photo-caption{position:relative;display:block;min-height:92px;margin:0;padding:17px 5px 18px;color:#5e6654;text-align:center;font:500 italic 28px/1.1 WeddingSerif,Georgia,serif}.photo-caption span{display:block;font:400 10px/1.5 WeddingSans,system-ui;letter-spacing:.08em;color:#7a7b65;margin-top:9px}.photo-bouquet{position:absolute;left:-55px;bottom:96px;width:205px;height:auto;z-index:2;pointer-events:none;filter:drop-shadow(0 3px 3px #5a503414)}.photo-seal{position:absolute;right:-17px;bottom:100px;z-index:3;display:grid;place-items:center;width:58px;height:58px;border-radius:48% 52% 49% 51% / 51% 46% 54% 49%;background:radial-gradient(circle at 33% 28%,#f7e8c6,#dbc59a 70%,#c9ad7d);border:1px solid #c3a36d;box-shadow:inset 0 0 0 4px #ead5ac, inset 0 0 0 5px #c7ad7d,0 4px 9px #62512c22;transform:rotate(13deg)}.photo-seal svg{width:36px;height:29px;stroke:#95733b;stroke-width:1.6}.invite:after{content:'';position:absolute;z-index:-1;left:5%;right:5%;top:240px;height:340px;border-radius:50%;background:radial-gradient(ellipse,#d9e3ce66,transparent 69%);pointer-events:none}.event{display:flex;flex-direction:column;gap:9px;margin:0 auto 20px}.event strong{font:400 32px/1.3 WeddingSerif,Georgia,serif}.event span{font-size:16px;color:var(--muted)}.invite-text{font-size:16px;line-height:1.85;color:var(--muted);max-width:390px;margin:20px auto}.deadline{display:block;font-size:14px;color:#716951;max-width:360px;margin:22px auto}.invite-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 24px}.start-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;color:var(--accent);font-size:14px;font-weight:600;padding:10px 0;text-underline-offset:6px;text-decoration-thickness:1px}.invite-links .start-link:first-child{text-decoration:none;border:1px solid #a4b49c;border-radius:30px;padding:11px 20px;background:#fffdf880}
.panel{position:relative;background:var(--paper);border:1px solid #dfddce;box-shadow:0 20px 70px #544b3020;border-radius:26px;padding:34px 38px 24px;min-width:0;scroll-margin-top:24px}.panel:before{content:'';position:absolute;inset:7px;border:1px solid #eee8da;border-radius:20px;pointer-events:none}.card-flower{position:absolute;top:20px;right:28px;color:#849878;font:43px WeddingSerif;line-height:1}.quiz-head{padding-right:20px}.quiz-head h2{font:400 50px/1.02 WeddingSerif,Georgia,serif;letter-spacing:-.015em;margin:14px 0 16px}.quiz-head em{font-weight:500;color:var(--accent)}.quiz-head p{font-size:16px;line-height:1.7;color:var(--muted);margin:0;max-width:490px}.step-nav{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:25px 0 16px}.step-nav>span{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-width:0;color:#6b785e}.step-nav>span:after{content:'';position:absolute;left:calc(50% + 25px);right:calc(-50% + 12px);height:1px;background:#dde3d5}.step-nav>span:last-child:after{display:none}.step-nav b{display:grid;place-items:center;font-size:14px;font-weight:600;border:1px solid #cbd6c3;border-radius:50%;width:36px;height:36px;background:#fffdf8}.step-nav i{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.step-nav .active b{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 0 5px #e9eee3}.step-nav .done b{background:#e2ead8;color:var(--accent);border-color:#b3c5a5}.progress{height:4px;background:#e8ebdf;margin:5px 0 0;overflow:hidden;border-radius:5px}.progress span{display:block;height:100%;background:var(--accent);transition:width .2s}.counter{font-size:14px;font-weight:600;color:#617355;margin:12px 0 0}.quiz-step{outline:none}.quiz-step h3{font:400 34px/1.15 WeddingSerif,Georgia,serif;margin:25px 0 22px}.step-flower{font-size:25px;color:var(--gold);margin-right:6px}.question-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 20px}.question{grid-column:1/-1;min-width:0}.question[data-question=nickname],.question[data-question=phone]{grid-column:auto}.label,.pick legend{display:block;font-size:17px;font-weight:600;line-height:1.5;margin:0 0 9px;color:var(--ink)}.required{color:#966344}.hint{font-size:14px;color:var(--muted);line-height:1.6;margin:9px 0 0}.pick>.hint{margin:0 0 12px}.question input:not([type=radio]):not([type=checkbox]),.question textarea,.question select{width:100%;min-height:56px;background:#fff;border:1px solid #cbd3c5;border-radius:12px;padding:14px 16px;color:var(--ink);font-size:17px;line-height:1.5;transition:border-color .15s,box-shadow .15s}.question textarea{resize:vertical;min-height:135px}.question input::placeholder,.question textarea::placeholder{color:#7b8377;opacity:1}.question input:hover,.question textarea:hover{border-color:#91a486}.question input:focus-visible,.question textarea:focus-visible,.question select:focus-visible{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px #c9d8be70}button:focus-visible,a:focus-visible,summary:focus-visible,.choice:has(input:focus-visible){outline:3px solid #90a27d;outline-offset:4px}.pick{margin:0;padding:0;border:0;min-width:0;width:100%}.choices{display:grid;gap:10px}.choices.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.choice{position:relative;display:flex;align-items:center;gap:12px;min-height:58px;border:1px solid #cdd6c5;border-radius:12px;padding:14px 16px;cursor:pointer;font-size:16px;line-height:1.5;background:#fff;transition:background .15s,border-color .15s}.choice:hover{background:#f5f8ef;border-color:#8da17d}.choice input{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0;margin:0}.choice span{min-width:0;overflow-wrap:anywhere}.choice i{font-size:13px;font-style:normal;color:var(--accent);margin-left:auto;opacity:0}.choice:has(input:checked){background:#e9f0e2;border-color:#67825a;box-shadow:inset 0 0 0 1px #67825a}.choice:has(input:checked) i{opacity:1}.question[data-question=attendance] .choices{grid-template-columns:repeat(3,minmax(0,1fr))}.question[data-question=attendance] .choice{flex-direction:column;justify-content:flex-start;text-align:center;gap:12px;min-height:120px;padding:17px 9px;font-size:15px}.question[data-question=attendance] .choice:has(input:checked){background:var(--accent);color:white;border-color:var(--accent)}.question[data-question=attendance] .choice input{accent-color:#edf3df}.question[data-question=attendance] .choice i{display:none}.number{display:flex;max-width:260px;border:1px solid #cbd3c5;border-radius:12px;background:white;overflow:hidden}.number input[type=number]{appearance:textfield;-moz-appearance:textfield;border:0;text-align:center;border-radius:0;font-size:24px;min-width:0;padding:10px}.number input::-webkit-inner-spin-button{appearance:none}.number button{background:#eef3e8;border:0;color:var(--accent);font-size:26px;width:58px;flex-shrink:0;cursor:pointer;min-height:58px}.number button:hover{background:#e0e9d7}.consent{display:flex;gap:13px;font-size:14px;line-height:1.7;color:var(--muted);align-items:flex-start}.consent input{width:22px;height:22px;accent-color:var(--accent);flex-shrink:0;margin:2px 0 0}.privacy{font-size:13px;line-height:1.7;color:#64715e;margin-top:25px}.privacy summary{cursor:pointer;padding:5px 0}.actions{display:flex;gap:12px;margin-top:22px}.actions button,.button{min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:18px;background:var(--accent);border:1px solid var(--accent);border-radius:12px;padding:15px 23px;color:#fff;font:600 16px/1.5 WeddingSans,system-ui;cursor:pointer;text-decoration:none;box-shadow:0 5px 14px #30472b16;transition:filter .15s}.actions button:hover,.button:hover{filter:brightness(1.09)}.actions button{flex:1}.actions .secondary{background:#f5f5ed;color:var(--accent);border-color:#d8decc;box-shadow:none;flex:0;white-space:nowrap}.actions button:disabled{opacity:.6;cursor:wait}.footnote{text-align:center;color:#757960;font-size:13px;line-height:1.7;margin:16px 0 21px}.panel-footer{display:flex;align-items:center;justify-content:center;gap:12px;padding-top:18px;border-top:1px solid var(--line);font:500 italic 23px/1.4 WeddingSerif,Georgia;color:#7d745b;text-align:center}.panel-footer>span:first-child{font-size:28px;color:var(--gold)}.wedding-footer{text-align:center;font:500 italic 29px/1.3 WeddingSerif,Georgia;color:#84785e;margin:42px 25px}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.thanks{text-align:center;padding:40px 0}.thanks h2{font:400 50px/1.1 WeddingSerif,Georgia;margin:17px 0}.thanks em{font-weight:500;color:var(--accent)}.thanks p{font-size:16px;line-height:1.8;color:var(--muted)}.thanks .button{margin-top:22px}.seal{font:65px WeddingSerif;color:var(--gold);margin-bottom:18px}
/* Venue */
.venue{max-width:1264px;margin:50px auto 0;border:1px solid #d4dccb;border-radius:24px;overflow:hidden;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);background:#e8eddf;scroll-margin-top:24px}.venue-info{padding:34px 40px;align-self:center}.venue h2{font:400 43px/1.08 WeddingSerif,Georgia;margin:14px 0 18px}.venue h3{font-size:18px;line-height:1.5;margin:0 0 8px}.venue p{font-size:16px;line-height:1.7;color:#56654f;margin:0 0 16px}.venue .venue-note{font-size:14px;margin:16px 0 0}.venue-icon{color:var(--accent);width:37px;height:37px;stroke-width:1.2}.venue-map{min-width:0;min-height:385px;background:#e0e8d7;position:relative}.venue-map iframe{display:block;width:100%;height:100%;min-height:385px;border:0;position:absolute;inset:0}.venue .button{font-size:15px;min-height:52px;margin-top:2px}.venue-links{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.venue-links>a:not(.button){font-size:14px;text-underline-offset:4px}.venue-address{overflow-wrap:anywhere}
.actions [hidden],.step-nav [hidden],.question[hidden],.quiz-step[hidden],[hidden]{display:none}
@media(min-width:1151px){.question[data-question=nickname]>.label,.question[data-question=phone]>.label{min-height:26px}}
@media(max-width:1150px){.wq{padding:0 30px;gap:32px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.panel{padding:30px 28px 24px}.invite h1{font-size:56px}.invite{padding:24px 0}.invite-photo{max-width:295px}.photo-frame .photo-window img{height:335px}.invite-text{font-size:16px}.quiz-head h2{font-size:44px}.question[data-question=nickname],.question[data-question=phone]{grid-column:1/-1}.question[data-question=attendance] .choices{grid-template-columns:1fr}.question[data-question=attendance] .choice{flex-direction:row;text-align:left;align-items:center;min-height:58px;padding:14px 16px;font-size:16px}.venue{margin:42px 30px 0}.venue-info{padding:30px}.photo-bouquet{left:-42px;width:175px}}
@media(max-width:900px){.wq{display:block;max-width:740px;padding:0 32px}.invite{padding:5px 20px 36px}.invite h1{font-size:64px}.invite-photo{max-width:330px}.photo-frame .photo-window img{height:370px}.photo-bouquet{left:-55px;width:205px}.invite-text{max-width:520px}.wedding-head{margin:24px 20px 26px;font-size:10px;gap:22px}.panel{padding:34px 36px 25px}.quiz-head h2{font-size:50px}.question[data-question=nickname],.question[data-question=phone]{grid-column:auto}.question[data-question=attendance] .choices{grid-template-columns:repeat(3,minmax(0,1fr))}.question[data-question=attendance] .choice{flex-direction:column;text-align:center;min-height:116px;gap:12px;padding:17px 10px;font-size:15px}.venue{max-width:676px;margin:40px auto 0;grid-template-columns:1fr}.venue-info{padding:32px 36px}.venue-map,.venue-map iframe{min-height:340px}.page-border{inset:10px}}
@media(max-width:740px){.venue{margin-left:32px;margin-right:32px}}
@media(max-width:600px){.wq{padding:0 18px}.wedding-head{gap:14px;font-size:9px;letter-spacing:.08em;margin:20px 18px}.rings{width:52px;height:38px}.wedding-head>span{max-width:120px;text-align:center}.invite{padding:10px 10px 32px}.invite h1{font-size:54px}.name-join{font-size:27px;margin:4px 0 5px}.invite-photo{max-width:286px}.photo-frame .photo-window img{height:315px}.photo-caption{font-size:26px}.event strong{font-size:30px}.invite-text{font-size:16px}.eyebrow{font-size:10px}.photo-bouquet{left:-25px;bottom:96px;width:168px}.photo-seal{width:51px;height:51px;right:-13px;bottom:97px}.photo-seal svg{width:31px}.photo-caption{min-height:88px;padding-bottom:15px}.photo-caption span{font-size:9px}.panel{padding:30px 24px 24px;border-radius:21px}.panel:before{inset:6px;border-radius:16px}.card-flower{right:23px;top:17px;font-size:36px}.quiz-head{padding-right:0}.quiz-head h2{font-size:44px}.quiz-head p{font-size:16px}.step-nav{gap:6px;padding:24px 0 16px}.step-nav b{width:32px;height:32px;font-size:13px}.step-nav>span:after{left:calc(50% + 21px);right:calc(-50% + 5px)}.counter{font-size:14px}.quiz-step h3{font-size:32px;margin:23px 0 20px}.question-grid{gap:23px;grid-template-columns:1fr}.question[data-question=nickname],.question[data-question=phone]{grid-column:1/-1}.label,.pick legend{font-size:16px}.question input:not([type=radio]):not([type=checkbox]),.question textarea,.question select{font-size:16px;min-height:55px}.question[data-question=attendance] .choices{grid-template-columns:1fr}.question[data-question=attendance] .choice{flex-direction:row;align-items:center;text-align:left;min-height:58px;font-size:16px;padding:14px 16px}.choices.two{grid-template-columns:1fr}.hint{font-size:14px}.privacy,.footnote{font-size:13px}.actions{gap:10px}.actions button{padding:14px 17px;gap:10px;font-size:15px}.panel-footer{font-size:23px}.venue{margin:30px 18px 0;border-radius:20px}.venue-info{padding:28px}.venue h2{font-size:38px}.venue-map,.venue-map iframe{min-height:320px}.wedding-footer{font-size:26px;margin:34px 30px}}
@media(max-width:360px){.wq{padding:0 12px}.panel{padding:28px 20px 20px}.invite h1{font-size:48px}.invite-photo{max-width:245px}.photo-frame .photo-window img{height:280px}.photo-bouquet{left:-16px;width:143px;bottom:96px}.photo-caption{font-size:24px}.photo-seal{right:-9px}.wedding-head>span{font-size:8px;max-width:88px}.quiz-head h2{font-size:39px}.step-nav b{width:29px;height:29px}.step-nav>span:after{left:calc(50% + 18px)}.actions button{padding:14px 12px;font-size:14px}.venue{margin-left:12px;margin-right:12px}.venue-info{padding:25px}.venue h2{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none}}

.personal-greeting{font-family:"Cormorant Garamond",Georgia,serif;font-size:27px;line-height:1.35;color:var(--accent);margin:24px 0 12px}.personal-greeting:empty{display:none}.member-select{grid-column:1/-1}

.drinks-details{margin-top:18px;display:grid;gap:14px}.drinks-details>.hint{margin:0}.drink-detail label{display:block;font-size:15px;font-weight:600;margin-bottom:8px}.drink-detail input{width:100%;box-sizing:border-box}.drink-detail[hidden]{display:none}

.validation-summary{border:1px solid #b34538;border-radius:10px;background:#fff1ed;color:#922b23;padding:12px 15px;font-size:16px;font-weight:600;line-height:1.5;margin:20px 0}
.question.question-error{border:2px solid #b34538;border-radius:14px;background:#fff8f5;padding:14px;scroll-margin-top:70px}
.question-error>.label,.question-error legend{color:#922b23}
.question-error-message{color:#922b23;font-size:15px;font-weight:600;line-height:1.55;margin:12px 0 0}
.choice.choice-error{border-color:#b34538;background:#fff2ed;box-shadow:0 0 0 1px #b34538}
.question input[aria-invalid="true"]:not([type=radio]):not([type=checkbox]),.question textarea[aria-invalid="true"],.question select[aria-invalid="true"]{border-color:#b34538;box-shadow:0 0 0 1px #b34538}
