:root{color-scheme:dark;--soot: #140E09;--wax: #F3E6CF;--flame: #E9B865;--brass: #B8894A;--ember: #D9793A;--soot-deep: #0B0805;--wax-dim: rgba(243, 230, 207, .62);--brass-line: rgba(184, 137, 74, .38);--font-body: Georgia, "Times New Roman", serif;--font-hand: "Marck Script", Georgia, cursive;--step--1: clamp(.82rem, .78rem + .2vw, .95rem);--step-0: clamp(1rem, .95rem + .3vw, 1.18rem);--step-1: clamp(1.3rem, 1.15rem + .7vw, 1.7rem);--step-2: clamp(1.7rem, 1.4rem + 1.4vw, 2.4rem);--step-3: clamp(2.3rem, 1.8rem + 2.4vw, 3.6rem);--tracking-wide: .22em;--pad-x: clamp(20px, 6vw, 40px);--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--ease-soft: cubic-bezier(.22, .61, .36, 1);--dur-slow: 1.2s;--dur-mid: .6s}@font-face{font-family:Marck Script;src:url(../fonts/marck-script-cyrillic.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Marck Script;src:url(../fonts/marck-script-latin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box}html{background:var(--soot-deep);-webkit-text-size-adjust:100%}body{margin:0;background:var(--soot);color:var(--wax);font-family:var(--font-body);font-size:var(--step-0);line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body.is-locked{overflow:hidden}h1,h2,h3,p,figure{margin:0}[hidden]{display:none!important}#app{position:relative;z-index:1}img,canvas,video{display:block;max-width:100%}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}a{color:var(--flame);text-decoration:none}::selection{background:var(--brass);color:var(--soot)}.scene{position:relative;min-height:100svh;padding:calc(64px + var(--safe-t)) var(--pad-x) calc(64px + var(--safe-b));display:flex;flex-direction:column;justify-content:center;text-shadow:0 1px 16px rgba(11,8,5,.92),0 0 40px rgba(11,8,5,.75)}.scene:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(76% 52% at 50% 50%,rgba(11,8,5,.74) 0%,rgba(11,8,5,.52) 46%,rgba(11,8,5,.12) 78%,transparent 100%)}.eyebrow{font-size:var(--step--1);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--flame);text-shadow:0 0 12px rgba(233,184,101,.55),0 0 30px rgba(233,184,101,.25),0 1px 16px rgba(11,8,5,.9)}.title{font-size:var(--step-2);font-weight:400;letter-spacing:.04em;color:var(--wax)}.hand{font-family:var(--font-hand);color:var(--flame);letter-spacing:.01em}.kern-o{margin-right:-.14em}.rule{width:100%;height:1px;border:0;margin:0;background:linear-gradient(90deg,transparent,var(--brass-line) 18%,var(--brass-line) 82%,transparent)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.reveal{opacity:0;transform:translateY(18px);transition:opacity var(--dur-slow) var(--ease-soft),transform var(--dur-slow) var(--ease-soft)}.reveal.is-in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}*{animation-duration:.01ms!important;animation-iteration-count:1!important}}.stage{position:fixed;inset:0;z-index:0;pointer-events:none;background:#0d0906 url(../entrance/poster.webp) 50.3% 20% / cover no-repeat}@media (min-aspect-ratio: 1/1){.stage{background-image:url(../entrance-wide/poster.webp);background-position:center}}.stage__video,.stage__frame,.stage__fx{position:absolute;inset:0;width:100%;height:100%;display:block}.stage__video,.stage__frame{opacity:0;transition:opacity .5s var(--ease-soft)}.stage.is-ready .stage__frame,.stage.is-ready .stage__video{opacity:1}.stage__video{object-fit:cover;pointer-events:none}.stage.is-past[data-kind]{background-image:url(../entrance/end.webp);background-position:50.3% 20%}.stage.is-past[data-kind] .stage__video,.stage.is-past[data-kind] .stage__frame{visibility:hidden}@media (min-aspect-ratio: 1/1){.stage.is-past[data-kind]{background-image:url(../entrance-wide/end.webp);background-position:center}}.stage[data-kind=video] .stage__frame,.stage[data-kind=frames] .stage__video{display:none}.entrance{position:relative;height:520svh}.entrance__overlay{position:sticky;top:0;height:100svh;pointer-events:none}.entrance__door{position:absolute;inset:0;transition:opacity .8s var(--ease-soft)}.entrance__door.is-gone{opacity:0}.entrance__door:after{content:"";position:absolute;left:0;right:0;bottom:0;height:34svh;background:linear-gradient(180deg,transparent,rgba(11,8,5,.72));pointer-events:none}.entrance__handle{position:absolute;left:50%;top:60%;width:92px;height:92px;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;pointer-events:auto}.entrance__door.is-gone .entrance__handle{pointer-events:none}.entrance__handle-ring{position:relative;width:36px;height:36px;border-radius:50%;border:2px solid var(--flame);box-shadow:0 0 0 1px #0b08058c,0 0 16px #e9b865b3,inset 0 0 10px #e9b86559;animation:handle-pulse 3.4s var(--ease-soft) infinite}.entrance__handle-ring:after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--flame);box-shadow:0 0 8px #e9b865e6}.entrance__handle-ring:before{content:"";position:absolute;inset:-2px;border-radius:50%;border:1.5px solid var(--flame);animation:handle-wave 2.4s var(--ease-soft) infinite}@keyframes handle-wave{0%{transform:scale(1);opacity:.85}to{transform:scale(2.1);opacity:0}}@media (min-aspect-ratio: 1/1){.entrance__handle{left:57%;top:65%}}@keyframes handle-pulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.12);opacity:1}}.entrance__door.is-knocking .entrance__handle-ring{animation:knock .16s steps(2) 3}@keyframes knock{0%{transform:translateY(0)}to{transform:translateY(3px)}}.entrance__hint{position:absolute;left:16px;right:16px;bottom:calc(22px + var(--safe-b));display:grid;justify-items:center;gap:6px;text-align:center;text-transform:uppercase;isolation:isolate;z-index:1}.entrance__hint:before{content:"";position:absolute;inset:-18px -6px -6px;z-index:-1;background:radial-gradient(58% 55% at 50% 42%,rgba(11,8,5,.82),rgba(11,8,5,.45) 55%,transparent 100%);pointer-events:none}.entrance__hint-main{font-size:var(--step--1);letter-spacing:.16em;color:var(--flame);text-shadow:0 0 12px rgba(233,184,101,.6),0 0 30px rgba(233,184,101,.25),0 1px 16px rgba(11,8,5,.95)}.entrance__hint-sub{font-size:.72rem;letter-spacing:.2em;color:#f3e6cfc7;text-shadow:0 0 10px rgba(233,184,101,.35),0 1px 14px rgba(11,8,5,.95)}.entrance__hint-arrow{margin-top:2px;width:1px;height:26px;background:linear-gradient(180deg,var(--flame),transparent);box-shadow:0 0 6px #e9b86599;animation:hint-drop 2.6s var(--ease-soft) infinite}@keyframes hint-drop{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(6px);opacity:1}}.entrance__caption{position:absolute;inset:0 16px;display:grid;gap:10px;justify-items:center;align-content:center;text-align:center;color:var(--wax);text-shadow:0 0 26px rgba(11,8,5,.9);opacity:0}.entrance__greeting{display:grid;justify-items:center;line-height:1.15;text-shadow:0 0 28px rgba(233,184,101,.35),0 0 20px rgba(11,8,5,.9)}.entrance__dear{font-size:clamp(1.6rem,7vw,2.3rem)}.entrance__names{font-size:clamp(2.3rem,11vw,3.6rem)}.entrance__greeting--line{display:block;font-size:clamp(2.3rem,11vw,3.6rem)}.entrance__greeting--line .entrance__dear,.entrance__greeting--line .entrance__names{font-size:inherit}.entrance__welcome{font-size:var(--step-0);letter-spacing:.14em;text-transform:uppercase}.entrance.is-reduced{height:100svh}.entrance.is-reduced .entrance__caption,.entrance__caption.is-visible{opacity:1}.entrance.is-fallback{height:100svh}.door{position:absolute;inset:0;overflow:hidden;opacity:0;transition:opacity .6s var(--ease-soft);--ar: 1.77;--focus: .6;--open: 0;--angle: 0deg;--cam: 1;--cam-far: 1;--part: 0;--deep: 0;--glow: 0;--dim: 1;--spring: .14;--leaf-mask: none;--persp: 1400px}.door.is-ready{opacity:1}.door__world{position:absolute;top:50%;left:50%;width:max(100%,calc(100svh * var(--ar)));height:max(100%,calc(100svw / var(--ar)));transform-origin:calc(var(--focus) * 100%) 62%;transform:translate(calc(var(--focus) * -100%),-50%) scale(var(--cam));will-change:transform}.door__facade{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;filter:brightness(var(--dim))}.door__hole{position:absolute;overflow:hidden;background:#0b0704;transform-origin:50% 62%;transform:scale(calc(var(--cam-far) / var(--cam)))}.door__opening{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.door__curtain{position:absolute;top:0;height:100%;width:54%;object-fit:cover;transform-origin:top center;will-change:transform}.door__curtain--l{left:0;transform-origin:left center;transform:perspective(var(--persp)) translate(calc(var(--part) * -62%)) rotateY(calc(var(--part) * 34deg)) scaleY(calc(1 + var(--part) * .04))}.door__curtain--r{right:0;transform-origin:right center;transform:perspective(var(--persp)) translate(calc(var(--part) * 62%)) rotateY(calc(var(--part) * -34deg)) scaleY(calc(1 + var(--part) * .04))}.door__glow{position:absolute;opacity:var(--glow);background:radial-gradient(120% 90% at 50% 70%,rgba(233,184,101,.5),transparent 70%),radial-gradient(60% 50% at 50% 95%,rgba(217,121,58,.45),transparent 75%);mix-blend-mode:screen;pointer-events:none}.door__glow:after{content:"";position:absolute;inset:-10%;background:radial-gradient(50% 40% at 50% 80%,rgba(233,184,101,.35),transparent 70%);animation:door-flicker 5.5s ease-in-out infinite}@keyframes door-flicker{0%,to{opacity:.55}35%{opacity:.9}60%{opacity:.68}}.door__shadow{position:absolute;opacity:calc(var(--open) * .55);background:linear-gradient(90deg,rgba(0,0,0,.75),transparent 85%);transform-origin:left center;transform:translate(calc(var(--open) * 86%)) scaleX(calc(1 + var(--open) * .5));filter:blur(6px);pointer-events:none}.door__leaf{position:absolute;transform-style:preserve-3d;will-change:transform}.door__leaf[data-hinge=left]{transform-origin:left center;transform:perspective(var(--persp)) rotateY(var(--angle))}.door__leaf[data-hinge=right]{transform-origin:right center;transform:perspective(var(--persp)) rotateY(calc(var(--angle) * -1))}.door__leaf-face{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;backface-visibility:hidden}.door__leaf-edge{position:absolute;top:calc(var(--spring) * 100%);right:0;height:calc((1 - var(--spring)) * 100%);width:2.2%;transform-origin:right center;transform:rotateY(-90deg);background:linear-gradient(90deg,#2b1d10,#6b4a27 35%,#3a2714);border-radius:2px}.door__leaf[data-hinge=right] .door__leaf-edge{right:auto;left:0;transform-origin:left center;transform:rotateY(90deg)}.door__leaf-shade{position:absolute;inset:0;opacity:calc(var(--open) * .72);background:linear-gradient(100deg,#0000001a,#000c);-webkit-mask-image:var(--leaf-mask);mask-image:var(--leaf-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;pointer-events:none}@media (max-width: 600px){.door{--persp: 900px}}.stage[data-set=layers]{background-image:none}@media (prefers-reduced-motion: reduce){.door__glow:after{animation:none}}.hall{position:relative;overflow:hidden;text-align:center}.hall__text{position:relative;display:grid;gap:14px;justify-items:center}.hall__line{opacity:0;filter:blur(6px);transform:translateY(10px)}.hall__line.is-lit{text-shadow:0 0 26px rgba(233,184,101,.3)}.hall__lead{font-size:var(--step-3)}.hall__names{font-size:clamp(2rem,11vw,3.2rem);line-height:1.25}.hall__invite{max-width:32ch;font-size:var(--step-0);font-style:italic;line-height:1.55;color:var(--wax-dim)}.hall .rule{max-width:220px}.hall__when{font-size:var(--step-1);letter-spacing:.08em}.wishes__head{display:grid;gap:8px;margin-bottom:34px;text-align:center}.wishes__list{list-style:none;margin:0 auto;padding:0;width:100%;max-width:1040px;display:grid;gap:22px;justify-items:center}.wish{position:relative;width:min(92%,420px);display:grid;justify-items:center;align-content:start;gap:16px;padding:32px 18px 34px;background:linear-gradient(170deg,#1e150df0,#100b07f0);border:1px solid rgba(184,137,74,.55);box-shadow:0 20px 44px #0000008c;text-align:center}.wish:before{content:"";position:absolute;inset:6px;border:1px solid rgba(184,137,74,.22);pointer-events:none}.wish__num{font-weight:600;font-size:var(--step-1);letter-spacing:.14em;color:var(--flame);text-shadow:0 0 12px rgba(233,184,101,.55),0 0 30px rgba(233,184,101,.25)}.wish__num:after{content:"";display:block;width:34px;height:1px;margin:12px auto 0;background:var(--brass);opacity:.7}.wish{--wish-fs: clamp(1.05rem, 1rem + .3vw, 1.2rem)}.wish p{margin:0;max-width:28ch;font-size:var(--wish-fs);line-height:1.55;letter-spacing:.01em;color:var(--wax)}.wish__text{display:grid;gap:10px;justify-items:center}.wish__text p{max-width:32ch;text-wrap:balance}.wish__text .wish__not{color:var(--brass)}.wish__text .wish__accent{color:var(--flame);text-shadow:0 0 12px rgba(233,184,101,.5),0 0 28px rgba(233,184,101,.2)}@media (min-width: 420px){.wish{padding-inline:30px}}@media (min-width: 900px){.wishes__list{grid-template-columns:repeat(3,1fr);align-items:stretch}.wish{width:100%;max-width:320px}}.gate{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:var(--safe-t) 16px var(--safe-b);background:radial-gradient(90% 65% at 50% 50%,#0e0a07e6,#080604fb);text-align:center;cursor:pointer;touch-action:none;transition:opacity 1s var(--ease-soft),visibility 0s linear 1s}.gate.is-open{opacity:0;visibility:hidden;pointer-events:none}html.is-gated,html.is-gated body{overflow:hidden}.entrance__hint{transition:opacity 1s var(--ease-soft) .4s}html.is-gated .entrance__hint{opacity:0;transition:none}.gate__lights{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.gate__inner{position:relative;display:grid;justify-items:center;gap:26px}.gate__cta{margin:0;font-size:var(--step--1);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--flame);text-shadow:0 0 12px rgba(233,184,101,.55),0 1px 16px rgba(11,8,5,.9);transition:opacity .5s var(--ease-soft)}.gate__eyebrow{transition:opacity .5s var(--ease-soft)}.gate.is-opening .gate__cta,.gate.is-opening .gate__eyebrow{opacity:0}.envelope{--paper: #EFE3CC;position:relative;display:block;width:min(84vw,380px);aspect-ratio:162 / 114;perspective:900px;border-radius:3px;box-shadow:0 30px 60px #0009,0 0 90px #e9b8651f;animation:env-float 4.5s ease-in-out infinite}.envelope:focus-visible{outline:1px solid var(--flame);outline-offset:10px}.gate.is-opening .envelope{animation:none}@keyframes env-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.envelope__back,.flap__face--in{background:radial-gradient(circle,rgba(233,184,101,.38) 1px,transparent 1.6px) 0 0 / 11px 11px,linear-gradient(170deg,#5a1b25,#3f111a)}.envelope__back{position:absolute;inset:0;z-index:0;border-radius:3px}.envelope__letter{position:absolute;left:6%;right:6%;bottom:5%;height:88%;z-index:2;display:grid;align-content:start;justify-items:center;gap:6px;padding-top:9%;background:linear-gradient(180deg,#fbf5e9,#f2e8d6);box-shadow:inset 0 0 0 6px #fbf5e9,inset 0 0 0 7px #b8894a73,0 -2px 10px #3c230f2e;color:#6e1f2e;text-shadow:none}.letter__eyebrow{font-size:clamp(.55rem,2.3vw,.7rem);letter-spacing:.2em;text-transform:uppercase;color:#8a6a3e}.letter__names{font-family:var(--font-hand);font-size:clamp(1.6rem,7.4vw,2.2rem);line-height:1.1}.letter__date{font-size:clamp(.65rem,2.6vw,.8rem);letter-spacing:.26em;color:#8a6a3e}.envelope__pocket{position:absolute;inset:0;z-index:3}.fold{position:absolute;inset:0;filter:drop-shadow(0 -1px 2px rgba(70,45,20,.28))}.fold>span{position:absolute;inset:0;background:linear-gradient(160deg,rgba(255,244,222,.35),transparent 55%),var(--paper)}.fold--l>span{clip-path:polygon(0 0,53% 55%,0 100%);background-color:#e6d8bc}.fold--r>span{clip-path:polygon(100% 0,47% 55%,100% 100%);background-color:#e3d4b7}.fold--b>span{clip-path:polygon(0 100%,50% 47%,100% 100%);background-color:#f1e6d1}.envelope__flap{position:absolute;inset:0;z-index:5;transform-origin:50% 0;transform-style:preserve-3d}.flap__face{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 58%);backface-visibility:hidden;-webkit-backface-visibility:hidden}.flap__face--out{background:linear-gradient(175deg,rgba(255,244,222,.45),transparent 60%),#eaddc3}.flap__face--in{transform:rotateY(180deg)}.envelope__seal{position:absolute;left:50%;top:58%;z-index:6;width:31%;aspect-ratio:1;transform:translate(-50%,-50%);filter:drop-shadow(0 0 14px rgba(233,184,101,.18))}.seal__half{position:absolute;inset:0;width:100%;height:100%;overflow:visible;will-change:transform,opacity}.seal__half--l{clip-path:polygon(0 0,52% 0,45% 22%,56% 41%,44% 60%,55% 79%,47% 100%,0 100%)}.seal__half--r{clip-path:polygon(52% 0,100% 0,100% 100%,47% 100%,55% 79%,44% 60%,56% 41%,45% 22%)}.gate.is-opening .seal__half--l{animation:seal-l .75s cubic-bezier(.4,0,.7,1) forwards}.gate.is-opening .seal__half--r{animation:seal-r .75s cubic-bezier(.4,0,.7,1) forwards}@keyframes seal-l{0%{transform:none;opacity:1}25%{transform:translate(-3%) rotate(-3deg);opacity:1}to{transform:translate(-22%,26%) rotate(-26deg);opacity:0}}@keyframes seal-r{0%{transform:none;opacity:1}25%{transform:translate(3%) rotate(3deg);opacity:1}to{transform:translate(22%,30%) rotate(22deg);opacity:0}}.gate.is-opening .envelope__flap{animation:flap-open .95s cubic-bezier(.45,0,.25,1) .4s forwards}@keyframes flap-open{0%{transform:rotateX(0);z-index:5}50%{z-index:5}51%{z-index:1}to{transform:rotateX(180deg);z-index:1}}.gate.is-opening .envelope__letter{animation:letter-rise 1.05s cubic-bezier(.22,.61,.36,1) 1.2s forwards}@keyframes letter-rise{to{transform:translateY(-56%)}}@media (prefers-reduced-motion: reduce){.gate{transition:none}.envelope{animation:none}.gate.is-opening *{animation:none!important}}.location{text-align:center}.location__head{display:grid;gap:8px}.location__photos{margin:26px auto 6px;width:min(100%,560px);display:grid;gap:12px}.location__photo{position:relative;margin:0;padding:6px;border:1px solid rgba(184,137,74,.35);background:#140e0999;box-shadow:0 14px 34px #00000073}.location__photo img{display:block;width:100%;height:100%;aspect-ratio:4 / 3;object-fit:cover;filter:sepia(.4) saturate(1.3) brightness(.74) contrast(1.06)}.location__photo:after{content:"";position:absolute;inset:6px;pointer-events:none;background:radial-gradient(115% 85% at 50% 55%,transparent 38%,rgba(20,14,9,.5)),linear-gradient(180deg,rgba(20,14,9,.28),transparent 40%)}.location__photo--small img{aspect-ratio:3 / 2}@media (min-width: 720px){.location__photos{width:min(100%,720px);grid-template-columns:1.35fr 1fr;align-items:start}}.location__map{margin:26px auto 22px;width:min(100%,360px);color:var(--brass)}.map{width:100%;height:auto}.map__grid{opacity:.22}.map__blocks{opacity:.12}.map__route{color:var(--flame);opacity:.9}.map__pin{color:var(--flame);opacity:0;transition:opacity .6s var(--ease-soft)}.location__map.is-done .map__pin{opacity:1}.map__flame{animation:flame-flicker 2.4s ease-in-out infinite;transform-origin:0 -8px}.map__halo{animation:halo-breath 3.2s ease-in-out infinite}@keyframes flame-flicker{0%,to{transform:scaleY(1) scaleX(1);opacity:.95}50%{transform:scaleY(1.12) scaleX(.94);opacity:1}}@keyframes halo-breath{0%,to{opacity:.14;transform:scale(1)}50%{opacity:.26;transform:scale(1.14)}}.location__info{display:grid;gap:8px}.location__venue{font-size:var(--step-2);color:var(--flame);text-shadow:0 0 18px rgba(233,184,101,.45),0 0 42px rgba(233,184,101,.2)}.location__address{color:var(--wax);text-shadow:0 0 14px rgba(243,230,207,.22)}.location__time{margin-top:6px;font-size:var(--step-0);letter-spacing:.12em;text-transform:uppercase;color:var(--flame);text-shadow:0 0 16px rgba(233,184,101,.4)}.location__actions{margin-top:24px;display:grid;gap:12px;justify-content:center}@media (min-width: 560px){.location__actions{grid-auto-flow:column}}.program__head{display:grid;gap:8px;text-align:center}.program__list,.dress{width:100%;max-width:560px;margin-inline:auto}.program__list{list-style:none;margin-top:30px;margin-bottom:0;padding:0;display:grid;gap:20px}.program__item{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:10px}.program__time{font-size:var(--step-1);color:var(--flame);letter-spacing:.04em}.program__dots{height:1px;background-image:linear-gradient(90deg,var(--brass-line) 40%,transparent 0);background-size:6px 1px;background-repeat:repeat-x;transform:translateY(-4px)}.program__name{text-align:right;font-size:var(--step-1);display:grid;gap:2px}.program__name em{font-style:normal;font-size:var(--step--1);color:var(--wax-dim)}.dress{margin-top:54px;text-align:center}.dress__title{margin-top:8px}.dress__lead{margin-top:8px;color:var(--wax-dim)}.dress__swatches{margin-top:22px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.swatch[hidden]{display:none}.swatch{width:40px;height:40px;border-radius:50%;background:var(--c);border:1px solid rgba(243,230,207,.18);box-shadow:inset 0 6px 16px #00000073;transition:transform .4s var(--ease-soft),box-shadow .4s var(--ease-soft)}.swatch[aria-selected=true]{transform:scale(1.12);box-shadow:inset 0 6px 16px #00000073,0 0 0 1px var(--flame),0 0 22px #e9b86559}.dress__looks{margin-top:20px;display:grid;gap:8px;min-height:3.2em}@media (min-width: 420px){.dress__swatches{gap:14px}.swatch{width:52px;height:52px}}.dress__name{font-size:var(--step--1);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--flame);text-shadow:0 0 14px rgba(233,184,101,.35)}.dress__look{color:var(--wax);font-size:var(--step-0)}.dress__look em{font-style:normal;color:var(--brass);margin-right:.45em}.rsvp{text-align:center}.rsvp__head{display:grid;gap:8px}.rsvp__lead{color:var(--wax-dim);font-size:var(--step--1)}.rsvp__form,.rsvp__done{width:100%;max-width:560px;margin-inline:auto}.rsvp__form{margin-top:30px;border:1px solid var(--brass-line);background:linear-gradient(170deg,#1b130ce6,#120c07e6);padding:22px 18px 18px;display:grid;gap:18px;min-width:0}.rsvp__form>*{min-width:0}.rsvp__progress{height:1px;background:#b8894a33}.rsvp__progress span{display:block;height:100%;width:0;background:var(--flame);transition:width .5s var(--ease-soft)}.rsvp__steps{min-height:280px;display:grid;align-content:start}.rsvp-step{display:grid;gap:10px;animation:step-in .5s var(--ease-soft) both}@keyframes step-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.rsvp-step__count{font-size:.72rem;letter-spacing:.2em;color:var(--brass)}.rsvp-step__q{font-size:var(--step-1);font-weight:400;letter-spacing:.02em}.rsvp-step__note{font-size:var(--step--1);color:var(--wax-dim)}.rsvp-step__body{margin-top:8px}.choice{display:grid;gap:12px}.choice--big{gap:14px}.choice__card{border:1px solid var(--brass-line);padding:22px 16px;display:grid;gap:6px;background:#e9b86508;transition:border-color .4s var(--ease-soft),background .4s var(--ease-soft),transform .4s var(--ease-soft)}.choice__card--sm{padding:16px}.choice__card[aria-pressed=true]{border-color:var(--flame);background:#e9b8651a;transform:translateY(-2px)}.choice__title{font-size:var(--step-1)}.choice__sub{font-size:var(--step--1);color:var(--wax-dim)}.field{display:grid}.input{width:100%;min-height:52px;padding:12px 14px;background:#0b080599;border:1px solid var(--brass-line);border-radius:2px;color:var(--wax);font-family:var(--font-body);font-size:var(--step-0)}.input::placeholder{color:#f3e6cf52}.input:focus{outline:none;border-color:var(--flame)}.input--area{resize:vertical;min-height:92px}.field--plus{margin-top:12px}.stepper{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;border:1px solid var(--brass-line);background:#e9b86508}.stepper__btn{height:52px;font-size:var(--step-1);color:var(--flame)}.stepper__btn:active{background:#e9b8651a}.stepper__value{text-align:center;font-size:var(--step-1)}.check{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:var(--step-0);cursor:pointer}.check input{position:absolute;opacity:0;width:0;height:0}.check__box{width:22px;height:22px;border:1px solid var(--brass);display:grid;place-items:center;flex:none}.check input:checked+.check__box:after{content:"";width:10px;height:10px;background:var(--flame)}.glasses{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:10px}.glass{display:grid;justify-items:center;gap:8px;padding:12px 6px;border:1px solid transparent;transition:border-color .4s var(--ease-soft)}.glass.is-full{border-color:var(--brass-line)}.glass__shape{position:relative;width:34px;height:52px;border:1.5px solid var(--brass);border-top:0;border-radius:0 0 16px 16px;overflow:hidden;display:block}.glass__shape--sparkling{width:22px;height:58px;border-radius:0 0 8px 8px}.glass__shape--strong{height:34px;border-radius:0 0 4px 4px}.glass__shape--soft{border-radius:0 0 6px 6px}.glass__liquid{position:absolute;left:0;right:0;bottom:0;height:0;transition:height .6s var(--ease-soft);background:var(--flame)}.glass.is-full .glass__liquid{height:72%}.glass__shape--red .glass__liquid{background:#5b1a24}.glass__shape--white .glass__liquid{background:#d9c98b}.glass__shape--sparkling .glass__liquid{background:#e9c97f}.glass__shape--strong .glass__liquid{background:#8a4a1e}.glass__shape--soft .glass__liquid{background:#7a9a6b}.glass__label{font-size:var(--step--1);color:var(--wax-dim)}.glass.is-full .glass__label{color:var(--wax)}.rsvp__nav{display:grid;gap:10px}@media (min-width: 420px){.rsvp__nav{display:flex;justify-content:space-between}.rsvp__nav .btn{min-width:0}#rsvp-next{margin-left:auto}}.rsvp__error{color:var(--ember);font-size:var(--step--1)}.rsvp__trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.rsvp__done{margin-top:30px;display:grid;gap:14px;justify-items:center}.seal{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(70% 70% at 35% 30%,#8e2b2b,#5b1a24 70%,#3e1017);box-shadow:0 10px 26px #00000080,inset 0 -6px 14px #00000073;clip-path:polygon(50% 0%,66% 6%,82% 4%,92% 18%,100% 32%,96% 50%,100% 66%,90% 80%,78% 94%,60% 98%,42% 100%,26% 92%,12% 84%,4% 68%,0% 50%,6% 32%,10% 16%,26% 8%,38% 2%)}.seal{opacity:0;transform:scale(2.4) rotate(-18deg)}.seal.is-stamped{animation:seal-stamp .62s cubic-bezier(.6,0,.3,1) forwards}@keyframes seal-stamp{0%{opacity:0;transform:scale(2.4) rotate(-18deg)}55%{opacity:1;transform:scale(.92) rotate(0)}75%{transform:scale(1.04) rotate(0)}to{opacity:1;transform:scale(1) rotate(0)}}@media (prefers-reduced-motion: reduce){.seal{opacity:1;transform:none}.seal.is-stamped{animation:none}}.seal__mark{font-family:var(--font-body);font-size:2.4rem;color:#f3e6cfd1;letter-spacing:.04em}.rsvp__done-title{font-size:var(--step-1)}.rsvp__done-text{color:var(--wax-dim);font-size:var(--step--1);max-width:34ch}@media (min-width: 560px){.rsvp__form{padding:30px 28px 24px}.choice--big{grid-template-columns:1fr 1fr}}.finale{text-align:center;align-content:center;gap:14px;display:grid}.finale__title{font-size:var(--step-2);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--flame);text-shadow:0 0 18px rgba(233,184,101,.45),0 0 44px rgba(233,184,101,.2)}.countdown{margin:10px auto 6px;display:grid;grid-template-columns:repeat(4,minmax(56px,78px));gap:8px}.countdown__cell{border:1px solid rgba(233,184,101,.5);background:#e9b8650d;box-shadow:0 0 18px #e9b86524,inset 0 0 14px #e9b86514;padding:12px 4px;display:grid;gap:4px}.countdown__cell b{font-size:var(--step-2);font-weight:400;color:#ffe6b8;font-variant-numeric:tabular-nums;text-shadow:0 0 10px rgba(233,184,101,.8),0 0 26px rgba(233,184,101,.4)}.countdown__cell span{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--wax);text-shadow:0 0 8px rgba(233,184,101,.3)}.finale__names{font-size:clamp(1.8rem,9vw,2.6rem);margin-top:18px}.finale__contacts{display:grid;gap:6px;justify-items:center;margin:10px auto 0;color:var(--wax-dim);font-size:var(--step-0);line-height:1.5}.finale__contacts p{margin:0}.finale__organizer{font-size:clamp(1.9rem,8vw,2.4rem);line-height:1.2;text-shadow:0 0 18px rgba(233,184,101,.45),0 1px 14px rgba(11,8,5,.9)}.finale__links{margin-top:8px!important;display:grid;gap:10px;justify-items:center}.finale__link{display:inline-block;min-width:250px;padding:11px 20px;border:1px solid rgba(233,184,101,.6);border-radius:999px;background:#e9b86512;color:var(--flame);font-size:var(--step-0);letter-spacing:.04em;text-decoration:none;text-shadow:0 0 10px rgba(233,184,101,.5),0 1px 14px rgba(11,8,5,.9);box-shadow:0 0 18px #e9b8652e,inset 0 0 12px #e9b86514;transition:background .4s var(--ease-soft),box-shadow .4s var(--ease-soft)}.finale__link:active,.finale__link:hover{background:#e9b86529;box-shadow:0 0 26px #e9b86559,inset 0 0 12px #e9b8651f}@media (min-width: 600px){.finale__links{grid-auto-flow:column}}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:2px;font-size:var(--step-0);letter-spacing:.1em;text-transform:uppercase;transition:background .4s var(--ease-soft),color .4s var(--ease-soft),border-color .4s var(--ease-soft)}.btn--ghost{border:1px solid var(--brass);color:var(--flame)}.btn--ghost:hover{background:#b8894a24}.btn--solid{background:var(--flame);color:#1a1209;border:1px solid var(--flame)}.btn--solid:disabled{opacity:.6}.sound-toggle{position:fixed;z-index:40;right:calc(14px + env(safe-area-inset-right,0px));top:calc(14px + var(--safe-t));width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#140e098c;border:1px solid var(--brass-line);backdrop-filter:blur(6px)}.sound-toggle__icon{width:20px;height:20px;color:var(--brass);transition:color .4s var(--ease-soft),filter .4s var(--ease-soft)}.sound-toggle__slash{transition:opacity .4s var(--ease-soft)}.sound-toggle.is-on .sound-toggle__icon{color:var(--flame);filter:drop-shadow(0 0 6px rgba(233,184,101,.75));animation:sound-breath 2.4s ease-in-out infinite}.sound-toggle.is-on .sound-toggle__slash{opacity:0}.sound-toggle.is-waiting:after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid var(--flame);animation:sound-invite 2.6s var(--ease-soft) infinite;pointer-events:none}@keyframes sound-invite{0%{transform:scale(1);opacity:.8}to{transform:scale(1.7);opacity:0}}@media (prefers-reduced-motion: reduce){.sound-toggle.is-waiting:after{animation:none;opacity:.6}}@keyframes sound-breath{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}
