.webgl-stage{z-index:1;pointer-events:none;top:0;bottom:0;left:0;right:0;position:fixed!important}.preloader{z-index:90;background:radial-gradient(circle at 50% 45%, #fdfaf4 0%, var(--ivory) 55%, var(--ivory-deep) 100%);transition:opacity .7s var(--ease-soft), visibility .7s;flex-direction:column;justify-content:center;align-items:center;gap:1.6rem;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.preloader.is-done{opacity:0;visibility:hidden;pointer-events:none}.preloader__mark{color:var(--gold-deep);align-items:baseline;gap:.45rem;font-size:clamp(2.6rem,9vw,4rem);display:flex}.preloader__letter{animation:mark-in 1.1s var(--ease-out) both}.preloader__letter:last-of-type{animation-delay:.22s}.preloader__amp{color:var(--gold);animation:mark-in 1.1s var(--ease-out) .12s both;font-size:.55em}@keyframes mark-in{0%{opacity:0;letter-spacing:.3em;transform:translateY(14px)scale(.9)}to{opacity:1;letter-spacing:0;transform:none}}.preloader__bar{background:var(--gold-pale);width:min(190px,45vw);height:1px;overflow:hidden}.preloader__bar span{background:linear-gradient(90deg, transparent, var(--gold), transparent);width:40%;height:100%;animation:bar-sweep 1.5s var(--ease-soft) infinite;display:block}@keyframes bar-sweep{0%{transform:translate(-120%)}to{transform:translate(320%)}}.preloader__hint{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-size:.7rem}.cover{z-index:40;padding:clamp(1.8rem, 6vh, 3.4rem) var(--gutter);text-align:center;transition:opacity .6s var(--ease-soft);background:radial-gradient(at 50% 45%,#0000 40%,#d6c4a538 100%);flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.cover.is-opening .cover__top,.cover.is-opening .cover__bottom{opacity:0;pointer-events:none;transition:opacity .55s var(--ease-soft), transform .7s var(--ease-out);transform:translateY(-12px)}.cover.is-opening{pointer-events:none;background:0 0}.cover__top,.cover__bottom{z-index:2;transition:opacity .5s var(--ease-soft), transform .5s var(--ease-out);position:relative}.cover__spotlight{pointer-events:none;animation:spotlight-breathe 7s var(--ease-soft) infinite;background:radial-gradient(58% 42% at 50% 42%,#fff6e2bf 0%,#fff4de47 45%,#0000 72%);position:absolute;top:0;bottom:0;left:0;right:0}@keyframes spotlight-breathe{0%,to{opacity:.72;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.cover__frame{pointer-events:none;z-index:3;position:absolute;top:clamp(11px,2.2vw,20px);bottom:clamp(11px,2.2vw,20px);left:clamp(11px,2.2vw,20px);right:clamp(11px,2.2vw,20px)}.cover__frame-line{background:linear-gradient(var(--line-dir,90deg), transparent, var(--gold-light) 22%, var(--gold-light) 78%, transparent);opacity:.85;position:absolute}.cover__frame-line--top,.cover__frame-line--bottom{height:1px;animation:frame-draw-x 1.5s var(--ease-out) .35s forwards;left:0;right:0;transform:scaleX(0)}.cover__frame-line--left,.cover__frame-line--right{--line-dir:180deg;width:1px;animation:frame-draw-y 1.5s var(--ease-out) .55s forwards;top:0;bottom:0;transform:scaleY(0)}.cover__frame-line--top{top:0}.cover__frame-line--bottom{bottom:0}.cover__frame-line--left{left:0}.cover__frame-line--right{right:0}@keyframes frame-draw-x{to{transform:scaleX(1)}}@keyframes frame-draw-y{to{transform:scaleY(1)}}.cover__frame-corner{border:1px solid var(--gold);opacity:0;width:16px;height:16px;animation:corner-in .8s var(--ease-out) 1.5s forwards;position:absolute}.cover__frame-corner--tl{border-bottom:0;border-right:0;top:-1px;left:-1px}.cover__frame-corner--tr{border-bottom:0;border-left:0;top:-1px;right:-1px}.cover__frame-corner--bl{border-top:0;border-right:0;bottom:-1px;left:-1px}.cover__frame-corner--br{border-top:0;border-left:0;bottom:-1px;right:-1px}@keyframes corner-in{0%{opacity:0;transform:scale(2.2)}to{opacity:.9;transform:none}}.cover.is-opening .cover__frame,.cover.is-opening .cover__spotlight{opacity:0;transition:opacity .6s var(--ease-soft)}.cover__hitbox{z-index:1;cursor:pointer;background:0 0;position:absolute;top:0;bottom:0;left:0;right:0}.cover__eyebrow{letter-spacing:.42em;text-transform:uppercase;color:var(--gold-deep);animation:fade-down 1s var(--ease-out) .2s both;margin:0 0 .5rem;font-size:.66rem}.cover__guest{color:var(--ink-soft);animation:fade-down 1s var(--ease-out) .35s both;margin:0;font-size:clamp(1.05rem,3.4vw,1.4rem);font-weight:300}.cover__guest strong{color:var(--ink);border-bottom:1px solid var(--gold-light);padding-bottom:2px;font-weight:500}@keyframes fade-down{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}.cover__names{color:var(--ink);margin:0 0 .5rem;font-size:clamp(1.7rem,6.4vw,2.9rem);font-weight:400;line-height:1.25}.cover__amp{color:var(--gold);animation:fade-up 1s var(--ease-out) .55s both;margin:0 .4rem;font-size:1.3em;font-style:italic;display:inline-block}.cover__date{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-mute);animation:fade-up 1s var(--ease-out) 1.1s both;margin:0 0 1.7rem;font-size:.72rem}.cover__open{background:linear-gradient(140deg, var(--gold-light), var(--gold) 55%, var(--gold-deep));color:#fff;width:clamp(112px,30vw,132px);height:clamp(112px,30vw,132px);animation:fade-up 1s var(--ease-out) 1.25s both;transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:relative;box-shadow:0 14px 40px #a2814b57}.cover__open:hover{transform:scale(1.06);box-shadow:0 20px 50px #a2814b6b}.cover__open:active{transform:scale(.97)}.cover__open-label{z-index:2;font-family:var(--font-display);letter-spacing:.14em;font-size:1.12rem;position:relative}.cover__open-ring{border:1px solid var(--gold);animation:ring-out 2.8s var(--ease-soft) infinite;border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0}.cover__open-ring--delay{animation-delay:1.4s}.cover__open-dashes{border:1px dashed var(--gold-light);opacity:.75;border-radius:50%;animation:26s linear infinite dashes-spin;position:absolute;top:-13px;bottom:-13px;left:-13px;right:-13px}@keyframes dashes-spin{to{transform:rotate(360deg)}}@keyframes ring-out{0%{opacity:.7;transform:scale(1)}70%{opacity:0;transform:scale(1.75)}to{opacity:0;transform:scale(1.75)}}.cover__hint{letter-spacing:.22em;text-transform:uppercase;color:var(--sage-deep);animation:hint-breathe 3.2s var(--ease-soft) 1.4s infinite both;margin:0;font-size:.78rem}.cover__hint:after{content:"";background:linear-gradient(to bottom, var(--sage), transparent);width:1px;height:26px;margin:.7rem auto 0;display:block}@keyframes hint-breathe{0%,to{opacity:.45}50%{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.split{display:inline}.split__piece{white-space:pre;animation:piece-in .85s var(--ease-out) both;animation-delay:var(--piece-delay,0s);display:inline-block}.split__piece--word{white-space:normal}@keyframes piece-in{0%{opacity:0;filter:blur(4px);transform:translateY(.4em)rotateX(-55deg)}to{opacity:1;filter:none;transform:none}}.opening-flash{z-index:60;opacity:0;pointer-events:none;background:radial-gradient(circle at 50% 50%, #fffdf8 0%, #fdf8ee 45%, var(--ivory) 100%);position:fixed;top:0;bottom:0;left:0;right:0}.opening-flash.is-clearing{opacity:0;transition:opacity 1.1s var(--ease-soft)}.page{z-index:2;opacity:0;visibility:hidden;transition:opacity .9s var(--ease-soft);position:relative}.page.is-open{opacity:1;visibility:visible}.page:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(ellipse 80% 50% at 50% 0%, #fffcf5e6, transparent 70%), radial-gradient(ellipse 60% 40% at 100% 100%, #ecdcc280, transparent 70%), var(--ivory);position:fixed;top:0;bottom:0;left:0;right:0}@media (prefers-reduced-motion:reduce){.cover__open-ring,.cover__open-dashes,.cover__hint,.cover__spotlight,.preloader__bar span{animation:none}.cover__frame-line,.cover__frame-corner{opacity:.85;animation:none;transform:none}.split__piece{animation-delay:0s!important}}.reveal{opacity:0;transition:opacity .95s var(--ease-out) var(--reveal-delay,0s), transform .95s var(--ease-out) var(--reveal-delay,0s), filter .95s var(--ease-out) var(--reveal-delay,0s)}.reveal--up{transform:translateY(42px)}.reveal--down{transform:translateY(-42px)}.reveal--zoom{transform:scale(.9)}.reveal--fade{transform:none}.reveal--blur{filter:blur(12px);transform:translateY(24px)}.reveal--left{transform:perspective(1200px)translate3d(-52px,0,-60px)rotateY(9deg)}.reveal--right{transform:perspective(1200px)translate3d(52px,0,-60px)rotateY(-9deg)}.reveal--unfold{transform-origin:top;transform:perspective(1400px)rotateX(-16deg)translateY(40px)}.reveal--tilt{transform-origin:bottom;transform:perspective(1100px)rotateX(22deg)translateY(34px)}.reveal.is-in{opacity:1;filter:none;transform:none}@media (max-width:767px){.reveal--left,.reveal--right{transform:translateY(38px)}}.anim-title{perspective:800px}.anim-title__inner{display:inline-block}.anim-title__char{white-space:pre;opacity:0;transform-origin:50% 100%;transition:opacity .62s var(--ease-out) var(--char-delay,0s), transform .86s var(--ease-out) var(--char-delay,0s);display:inline-block;transform:translateY(.45em)rotateX(-78deg)scale(.86)}.anim-title.is-in .anim-title__char{opacity:1;transform:none}.reveal .photo{clip-path:inset(0 0 102%);transition:clip-path 1.15s var(--ease-out) calc(var(--reveal-delay,0s) + .13s)}.reveal.is-in .photo{clip-path:inset(0)}.ornament{z-index:0;color:var(--gold-light);opacity:.34;pointer-events:none;aspect-ratio:200/260;transform:rotate(var(--ornament-rotate,0deg)) scaleX(var(--ornament-flip,1));position:absolute}.ornament__inner,.ornament svg{width:100%;height:100%;display:block}.section>.container,.section>.container-narrow{z-index:1;position:relative}@media (max-width:767px){.ornament{display:none}}.section-eyebrow{display:inline-block;position:relative;overflow:hidden}.reveal.is-in .section-eyebrow:after{content:"";animation:eyebrow-sheen 1.5s var(--ease-out) .35s both;pointer-events:none;background:linear-gradient(100deg,#0000 20%,#fffdf6d9 50%,#0000 80%);position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(-120%)}@keyframes eyebrow-sheen{to{transform:translate(120%)}}.reveal.divider .divider__mark{transition:transform .9s var(--ease-out) calc(var(--reveal-delay,0s) + .42s);transform:scale(0)rotate(-40deg)}.reveal.divider.is-in .divider__mark{transform:none}.photo{background:var(--ivory-deep);border-radius:inherit;width:100%;height:100%;position:relative;overflow:hidden}.photo__img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity 1s var(--ease-soft), transform 1.4s var(--ease-out);transform:scale(1.06)}.photo.is-loaded .photo__img{opacity:1;transform:none}.photo__placeholder{object-fit:inherit;filter:blur(6px);width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;transform:scale(1.04)}.photo--contain,.photo--contain .photo__img,.photo--contain .photo__placeholder{object-fit:contain}.photo--contain{background:0 0}.photo__fallback{place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.photo__pattern{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.photo__fallback[data-seed="1"] .photo__pattern{transform:scaleX(-1)}.photo__fallback[data-seed="2"] .photo__pattern{transform:scale(-1)}.photo__monogram{color:var(--gold-deep);opacity:.72;letter-spacing:.04em;align-items:baseline;gap:.25em;font-size:clamp(1.5rem,4vw,2.1rem);display:flex;position:relative}.photo__monogram em{color:var(--gold);font-size:.62em;font-style:italic}.hero{isolation:isolate;flex-direction:column;min-height:100svh;padding:0;display:flex;position:relative;overflow:hidden}.hero__media{z-index:0;position:absolute;top:0;bottom:0;left:0;right:0}.hero__media-inner,.hero__media .photo{width:100%;height:100%}.hero__media .photo__img{object-position:center 32%}.hero__media-inner{height:calc(100% + 120px);position:relative;top:-60px}.hero__scrim{background:linear-gradient(#22281ebd 0%,#22281e9e 30%,#22281e85 50%,#22281e57 64%,#22281e1a 78%,#22281e4d 100%);position:absolute;top:0;bottom:0;left:0;right:0}.hero__frame{pointer-events:none;border:1px solid #e8d8b459;position:absolute;top:clamp(11px,2.2vw,20px);bottom:clamp(11px,2.2vw,20px);left:clamp(11px,2.2vw,20px);right:clamp(11px,2.2vw,20px)}.hero__frame-corner{border:1px solid #f0e2c2cc;width:18px;height:18px;position:absolute}.hero__frame-corner--tl{border-bottom:0;border-right:0;top:-1px;left:-1px}.hero__frame-corner--tr{border-bottom:0;border-left:0;top:-1px;right:-1px}.hero__frame-corner--bl{border-top:0;border-right:0;bottom:-1px;left:-1px}.hero__frame-corner--br{border-top:0;border-left:0;bottom:-1px;right:-1px}.hero__content{z-index:1;padding:clamp(4rem, 11vh, 6.5rem) var(--gutter) 0;color:#fdf9f0;text-shadow:0 1px 18px #1e241a73;flex-direction:column;align-items:center;margin-bottom:auto;display:flex;position:relative}.hero__text{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:34rem;display:flex}.hero__content .section-eyebrow{color:#e8dcb8}.hero__monogram{color:#f0e2c2;align-items:baseline;gap:.3rem;margin-bottom:.6rem;font-size:clamp(2.1rem,7.2vw,3.2rem);line-height:1;display:flex}.hero__monogram-amp{color:#d9c79c;font-size:.5em;font-style:italic}.hero__names{letter-spacing:.012em;color:#fffaf0;perspective:900px;margin:.3rem 0 0;font-size:clamp(1.8rem,6.6vw,3.1rem);font-weight:400;line-height:1.26}.hero__name{display:block}.hero__amp{color:#e2cd9f;animation:amp-glow 4.5s var(--ease-soft) infinite;margin:-.04em 0 0;font-size:1.25em;display:block}@keyframes amp-glow{0%,to{opacity:.78;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.hero__content .divider{color:#e2cd9f;margin:1.1rem auto}.hero__content .divider:before,.hero__content .divider:after{background:linear-gradient(to var(--dir,right), transparent, #e2cd9fd9)}.hero__date{flex-direction:column;align-items:center;gap:.3rem;display:flex}.hero__date-weekday{letter-spacing:.34em;text-transform:uppercase;color:#e2cd9f;font-size:.68rem}.hero__date-main{letter-spacing:.09em;color:#fffaf0;font-size:clamp(1.9rem,6vw,2.5rem)}.hero__date-lunar{font-family:var(--font-display);color:#fdf9f0d1;font-size:.94rem;font-style:italic}.hero__hashtag{letter-spacing:.16em;color:#f2e6cc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-shadow:none;background:#fffdf61f;border:1px solid #e8d8b48c;border-radius:99px;margin-top:1.3rem;padding:.5rem 1.4rem;font-size:.76rem;display:inline-block}.hero__scroll{z-index:1;bottom:calc(env(safe-area-inset-bottom,0px) + 5.2rem);flex-direction:column;align-items:center;gap:.55rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hero__scroll-line{background:linear-gradient(#0000,#f0e2c2e6);width:1px;height:40px;position:relative;overflow:hidden}.hero__scroll-line:after{content:"";animation:scroll-drop 2.2s var(--ease-soft) infinite;background:#f0e2c2;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes scroll-drop{0%{transform:translateY(-100%)}60%,to{transform:translateY(100%)}}.hero__scroll-text{letter-spacing:.3em;text-transform:uppercase;color:#f0e2c2bf;font-size:.58rem}@media (min-width:1024px){.hero{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-items:stretch;display:grid}.hero__media{grid-area:1/2;height:100svh;position:relative}.hero__scrim{background:linear-gradient(to right, var(--ivory) 0%, color-mix(in srgb, var(--ivory) 55%, transparent) 14%, color-mix(in srgb, var(--ivory) 18%, transparent) 26%, transparent 38%)}.hero__frame{border-color:#f0e2c273;top:20px;bottom:20px;left:20px;right:20px}.hero__content{color:var(--ink);text-shadow:none;grid-area:1/1;justify-content:center;align-items:center;margin-bottom:0;padding:3rem clamp(2rem,4vw,3.5rem)}.hero__text{text-align:left;align-items:flex-start;max-width:27rem}.hero__content .section-eyebrow{color:var(--sage-deep)}.hero__monogram{color:var(--gold-deep)}.hero__monogram-amp{color:var(--sage)}.hero__names{color:var(--ink)}.hero__amp{color:var(--gold)}.hero__date-weekday{color:var(--sage-deep)}.hero__date-main{color:var(--ink)}.hero__date-lunar{color:var(--ink-mute)}.hero__content .divider{color:var(--gold);width:210px;margin-inline-start:0;margin-inline-end:0}.hero__content .divider:before,.hero__content .divider:after{background:linear-gradient(to var(--dir,right), transparent, var(--gold-light))}.hero__date{align-items:flex-start}.hero__hashtag{border-color:var(--gold-pale);color:var(--gold-deep);background:#fff9}.hero__scroll{align-items:center;width:43%;bottom:2.2rem;left:0;transform:none}.hero__scroll-line{background:linear-gradient(to bottom, transparent, var(--gold))}.hero__scroll-line:after{background:var(--gold-deep)}.hero__scroll-text{color:var(--ink-faint)}}.photo-band{width:100%;aspect-ratio:var(--band-aspect,1.5);isolation:isolate;min-height:240px;max-height:96vh;position:relative;overflow:hidden}.photo-band__frame{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.photo-band__media,.photo-band__media .photo{width:100%;height:calc(100% + 150px)}.photo-band__media{position:relative;top:-75px}.photo-band__media .photo__img{object-position:center 34%;animation:band-drift 26s var(--ease-soft) infinite alternate}@keyframes band-drift{0%{transform:scale(1.02)}to{transform:scale(1.12)}}.photo-band--reverse .photo-band__media .photo__img{animation-direction:alternate-reverse}.photo-band__warmth{mix-blend-mode:soft-light;background:linear-gradient(#f7f2e938,#8b9c8224);position:absolute;top:0;bottom:0;left:0;right:0}.photo-band__vignette{background:linear-gradient(#22281e47 0%,#0000 26% 46%,#22281e9e 100%),radial-gradient(at 50% 40%,#0000 48%,#22281e4d 100%);position:absolute;top:0;bottom:0;left:0;right:0}.photo-band__quote{left:clamp(1.5rem,8vw,5rem);right:clamp(1.5rem,8vw,5rem);text-align:center;position:absolute;bottom:clamp(3.4rem,9vh,5.5rem)}.photo-band__quote p{color:#fffaf0;text-shadow:0 2px 22px #1c221899;margin:0;font-size:clamp(1.15rem,3.4vw,1.8rem);font-style:italic;line-height:1.65}.photo-band__tear{z-index:2;pointer-events:none;width:calc(100% + 2px);height:clamp(26px,4vw,48px);display:block;position:absolute;left:-1px;right:-1px}.photo-band__tear-fibre{fill:#e6dfd0}.photo-band__tear-face{fill:var(--ivory)}.photo-band__tear--top{top:-1px;transform:scaleY(-1)}.photo-band__tear--bottom{bottom:-1px}.photo-band--reverse .photo-band__tear--top{transform:scaleY(-1)scaleX(-1)}.photo-band--reverse .photo-band__tear--bottom{transform:scaleX(-1)}@media (prefers-reduced-motion:reduce){.photo-band__media .photo__img{animation:none}}.photo-strip{padding-block-start:clamp(2.4rem,6vh,4.5rem);padding-block-end:clamp(2.4rem,6vh,4.5rem);overflow:visible}.photo-strip__note{text-align:center;margin-bottom:clamp(1.3rem,3.5vh,2.4rem)}.photo-strip__note p{max-width:42ch;color:var(--ink-soft);margin:0 auto;font-size:clamp(1.05rem,3vw,1.35rem);font-style:italic}.photo-strip__row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(.7rem,3vw,1.4rem);display:grid}.photo-strip__item{min-width:0;margin-top:var(--pose-lift,0px)}.photo-strip__drift{height:100%}.photo-strip__card{border:1px solid var(--gold-pale);transform-style:preserve-3d;transition:box-shadow .4s var(--ease-out);rotate:var(--pose-rotate,0deg);background:linear-gradient(160deg,#fffefc,#f7f4ee);border-radius:3px;padding:.5rem .5rem .1rem;box-shadow:0 8px 22px #46503e24}.photo-strip__card:hover{box-shadow:0 18px 42px #46503e38}.photo-strip__frame{background:var(--ivory-deep);overflow:hidden}.photo-strip__caption{text-align:center;color:var(--sage-deep);padding:.35rem .2rem .4rem;font-size:1.18rem;line-height:1.3;display:block}@media (min-width:768px){.photo-strip__row{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:clamp(1rem,3vw,2.2rem);padding-block-start:1rem;padding-block-end:1.6rem}.photo-strip__card{padding:.8rem .8rem .25rem}.photo-strip__caption{padding-block-start:.45rem;padding-block-end:.5rem;font-size:1.3rem}}@media (prefers-reduced-motion:reduce){.photo-strip__card{rotate:0deg}.photo-strip__item{margin-top:0}}.families__grid{align-items:center;gap:1.6rem;margin-top:clamp(2.4rem,6vh,3.6rem);display:grid}.family__card{text-align:center;height:100%;transition:transform .55s var(--ease-out), box-shadow .55s var(--ease-out);padding:2.2rem 1.6rem}.family__card:hover{box-shadow:var(--shadow-lg)}.family__label{letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 1.2rem;font-size:.68rem}.family__parents{font-family:var(--font-display);color:var(--ink);font-size:1.16rem;line-height:1.9}.family__parents p{margin:0}.family__rule{background:var(--gold-light);width:46px;height:1px;margin:1.3rem auto;display:block}.family__child-role{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 .25rem;font-size:.66rem}.family__child{color:var(--ink);margin:0;font-size:clamp(1.35rem,4.4vw,1.7rem)}.family__address{color:var(--ink-faint);margin:.9rem 0 0;font-size:.84rem}.families__knot{place-items:center;min-height:66px;display:grid;position:relative}.families__knot-ring{border:1px solid var(--gold-light);width:58px;height:58px;animation:knot-breathe 5s var(--ease-soft) infinite;border-radius:50%;position:absolute}@keyframes knot-breathe{0%,to{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.14)}}.families__knot-mark{color:var(--gold);font-size:2.7rem;line-height:1;position:relative}.invitation__letter{padding:clamp(2.4rem,8vw,4rem) clamp(1.4rem,6vw,3.4rem);position:relative;overflow:hidden}.invitation__fold{top:0;bottom:0;pointer-events:none;background:linear-gradient(90deg,#0000,#a082550d 45%,#a0825517 50%,#ffffff80 52%,#0000);width:40px;position:absolute;left:50%;transform:translate(-50%)}.invitation__body{text-align:center;position:relative}.invitation__guest{color:var(--gold-deep);margin:.5rem 0 0;font-size:clamp(2.7rem,10.5vw,4.2rem);line-height:1.3}.invitation__lead{color:var(--ink);margin:0 0 1rem;font-size:clamp(1.08rem,3.4vw,1.35rem);font-style:italic}.invitation__text{max-width:44ch;color:var(--ink-soft);margin:0 auto;font-size:.98rem;line-height:1.95}.invitation__signature{color:var(--gold-deep);margin:1.7rem 0 0;font-size:clamp(2.3rem,8vw,3.1rem)}.invitation__quote{text-align:center;color:var(--ink-soft);margin-top:clamp(3rem,8vh,4.5rem);position:relative}.invitation__quote-mark{color:var(--gold-pale);font-size:4rem;line-height:.5;display:block}.invitation__quote p{max-width:40ch;margin:.8rem auto .7rem;font-size:clamp(1.05rem,3.2vw,1.25rem);font-style:italic;line-height:1.85}.invitation__quote cite{letter-spacing:.16em;color:var(--ink-faint);font-size:.78rem;font-style:normal}.wedding-day:before{content:"";pointer-events:none;background:radial-gradient(62% 52% at 24% 56%,#e6eae08c,#0000 70%),radial-gradient(58% 48% at 80% 60%,#efe6d499,#0000 72%);position:absolute;top:0;bottom:0;left:0;right:0}.wedding-day>.container{z-index:1;position:relative}.wedding-day__grid{align-items:center;gap:clamp(2rem,6vw,3.4rem);margin-top:clamp(2.4rem,6vh,3.6rem);display:grid}.calendar{text-align:center;max-width:380px;margin-inline-start:auto;margin-inline-end:auto;padding:2.4rem 1.4rem 1.8rem;position:relative}.calendar__ring{background:linear-gradient(180deg, var(--gold-light), var(--gold-deep));border-radius:99px;width:12px;height:26px;position:absolute;top:-9px;box-shadow:inset 0 -2px 3px #ffffff80}.calendar__ring--left{left:26%}.calendar__ring--right{right:26%}.calendar__month{letter-spacing:.1em;color:var(--gold-deep);margin:0 0 1.2rem;font-size:1.2rem}.calendar__weekdays,.calendar__days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar__weekdays{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.5rem;font-size:.64rem}.calendar__day{aspect-ratio:1;color:var(--ink-soft);border-radius:50%;place-items:center;font-size:.84rem;display:grid;position:relative}.calendar__day.is-empty{color:#0000}.calendar__day.is-wedding{color:#fff;background:linear-gradient(140deg, var(--gold-light), var(--gold-deep));animation:day-pop .8s var(--ease-out) both;font-weight:500;box-shadow:0 4px 14px #a2814b66}.calendar__day.is-also{color:var(--rose);box-shadow:inset 0 0 0 1px var(--rose);font-weight:500}@keyframes day-pop{0%{opacity:0;transform:scale(.4)}70%{transform:scale(1.16)}to{opacity:1;transform:scale(1)}}.calendar__heart{background:var(--rose);width:9px;height:9px;animation:heart-beat 2.4s var(--ease-soft) infinite;position:absolute;top:-6px;right:-4px;transform:rotate(-45deg)}.calendar__heart:before,.calendar__heart:after{content:"";background:inherit;border-radius:50%;width:9px;height:9px;position:absolute}.calendar__heart:before{top:-4.5px;left:0}.calendar__heart:after{top:0;right:-4.5px}@keyframes heart-beat{0%,to{transform:rotate(-45deg)scale(1)}15%{transform:rotate(-45deg)scale(1.25)}30%{transform:rotate(-45deg)scale(1)}}.calendar__lunar{font-family:var(--font-display);color:var(--gold-deep);margin:1.3rem 0 0;font-size:.92rem;font-style:italic}.calendar__legend{border-top:1px solid var(--gold-pale);letter-spacing:.06em;color:var(--ink-mute);flex-wrap:wrap;justify-content:center;gap:.35rem 1rem;margin:.85rem 0 0;padding-top:.8rem;font-size:.68rem;display:flex}.calendar__legend-item{align-items:center;gap:.38rem;display:inline-flex}.calendar__chip{border-radius:50%;width:9px;height:9px}.calendar__chip--main{background:linear-gradient(140deg, var(--gold-light), var(--gold-deep))}.calendar__chip--also{box-shadow:inset 0 0 0 1px var(--rose)}.wedding-day__panel{text-align:center}.wedding-day__plaque{border:1px solid var(--gold-pale);border-radius:50% 50% var(--radius-lg) var(--radius-lg) / 96px 96px var(--radius-lg) var(--radius-lg);background:linear-gradient(#fffffff0,#faf8f480);max-width:370px;margin:0 auto 1.9rem;padding:2.5rem 1.5rem 1.7rem;position:relative;box-shadow:0 16px 38px #927e5c1f}.wedding-day__plaque:after{content:"";border-radius:inherit;pointer-events:none;border:1px solid #c2a06a42;position:absolute;top:9px;bottom:9px;left:9px;right:9px}.wedding-day__sprig{width:112px;color:var(--sage);margin:0 auto .6rem;display:block}.wedding-day__weekday{letter-spacing:.32em;text-transform:uppercase;color:var(--gold-deep);margin:0;font-size:.7rem}.wedding-day__date{letter-spacing:.05em;color:var(--ink);margin:.3rem 0 0;font-size:clamp(2.4rem,8.4vw,3.5rem);line-height:1.1}.wedding-day__rule{background:linear-gradient(90deg, transparent, var(--gold-light), transparent);width:58px;height:1px;margin:.85rem auto .7rem;display:block}.wedding-day__time{font-family:var(--font-display);color:var(--ink-mute);margin:0;font-style:italic}.wedding-day__countdown-label{letter-spacing:.3em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 1rem;font-size:.68rem}.countdown{perspective:900px;grid-template-columns:repeat(4,1fr);gap:.6rem;max-width:420px;margin-inline-start:auto;margin-inline-end:auto;display:grid}.countdown__unit{flex-direction:column;align-items:center;gap:.5rem;display:flex}.reveal.countdown .countdown__unit{opacity:0;transform-origin:50% 100%;transition:opacity .6s var(--ease-out), transform .85s var(--ease-out);transform:translateY(26px)rotateX(-64deg)}.reveal.countdown.is-in .countdown__unit{opacity:1;transform:none}.reveal.countdown.is-in .countdown__unit:first-child{transition-delay:60ms}.reveal.countdown.is-in .countdown__unit:nth-child(2){transition-delay:.17s}.reveal.countdown.is-in .countdown__unit:nth-child(3){transition-delay:.28s}.reveal.countdown.is-in .countdown__unit:nth-child(4){transition-delay:.39s}.countdown__box{aspect-ratio:.88;border:1px solid var(--gold-pale);border-radius:50% 50% var(--radius) var(--radius) / 38% 38% var(--radius) var(--radius);background:linear-gradient(172deg, #fff 0%, var(--paper) 52%, var(--ivory-deep) 100%);place-items:center;width:100%;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 18px #927e5c21,inset 0 1px #ffffffe6}.countdown__value{color:var(--ink);animation:flip-in .55s var(--ease-out);font-size:clamp(1.45rem,5.8vw,2rem);line-height:1}.countdown__seam{left:12%;right:12%;background:linear-gradient(90deg,#0000,#b498666b,#0000);height:1px;position:absolute;top:72%;box-shadow:0 1px #ffffffd9}@keyframes flip-in{0%{opacity:0;transform:translateY(-70%)rotateX(75deg)}to{opacity:1;transform:none}}.countdown__label{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);font-size:.6rem}.wedding-day__warning{border:1px dashed var(--rose);border-radius:var(--radius);background:var(--rose-pale);color:#8c4f47;max-width:44ch;margin:1.6rem auto 0;padding:.85rem 1.1rem;font-size:.82rem}.wedding-day__warning code{background:#fff9;border-radius:3px;padding:.1em .35em;font-size:.94em}.events:before{content:"";pointer-events:none;background:radial-gradient(74% 46% at 50% 62%,#e6eae073,#0000 72%);position:absolute;top:0;bottom:0;left:0;right:0}.events>.container{z-index:1;position:relative}.events__grid{gap:1.5rem;margin-top:clamp(2.4rem,6vh,3.6rem);display:grid}.event__card{--accent:var(--gold);--accent-deep:var(--gold-deep);--accent-pale:var(--gold-pale);--accent-wash:#ecdcc24d;height:100%;transform-style:preserve-3d;border-radius:50% 50% var(--radius-lg) var(--radius-lg) / 112px 112px var(--radius-lg) var(--radius-lg);text-align:center;transition:transform .55s var(--ease-out), box-shadow .55s var(--ease-out);flex-direction:column;padding:3.3rem 1.5rem 1.9rem;display:flex;position:relative;overflow:hidden}.event__card--rose{--accent:var(--rose);--accent-deep:#a8705f;--accent-pale:var(--rose-pale);--accent-wash:#f0e0da4d}.event__card:hover{box-shadow:var(--shadow-lg)}.event__arch{border:1px solid var(--accent-pale);border-radius:inherit;pointer-events:none;position:absolute;top:10px;bottom:10px;left:10px;right:10px}.event__card:before{content:"";left:0;right:0;pointer-events:none;background:radial-gradient(ellipse 66% 100% at 50% 0%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 72%);height:44%;position:absolute;top:0}.event__sprig{width:116px;color:var(--accent);margin:0 auto .55rem;display:block}.event__ordinal{letter-spacing:.32em;text-transform:uppercase;color:var(--accent-deep);margin:0;font-size:.62rem}.event__name{color:var(--ink);margin:.4rem 0 .3rem;font-size:clamp(1.5rem,5vw,1.9rem)}.event__host{font-family:var(--font-script);color:var(--accent-deep);margin:0 0 1.05rem;font-size:1.5rem;line-height:1}.event__date{border-block:1px solid var(--accent-pale);flex-direction:column;gap:.15rem;padding:.85rem 0;display:flex}.event__weekday{letter-spacing:.26em;text-transform:uppercase;color:var(--accent-deep);font-size:.66rem}.event__day{letter-spacing:.05em;color:var(--ink);font-size:1.62rem}.event__lunar{font-family:var(--font-display);color:var(--ink-mute);font-size:.86rem;font-style:italic}.event__times{border:1px solid var(--accent-pale);border-radius:var(--radius);background:var(--accent-wash);flex-direction:column;gap:.55rem;margin-top:1.1rem;padding:1rem 1.05rem;display:flex}.event__time-row{text-align:left;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;display:grid;position:relative}.event__time-row:not(:last-child):before{content:"";background:linear-gradient(var(--accent-pale), transparent);width:1px;position:absolute;top:17px;bottom:-9px;left:2.5px}.event__time-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);border-radius:50%}.event__time-label{color:var(--ink-mute);font-size:.84rem}.event__time-value{color:var(--ink);letter-spacing:.04em;font-size:1.05rem}.event__place{padding-top:1.1rem}.event__place-mark{width:15px;color:var(--accent);margin:0 auto .45rem;display:block}.event__place-mark svg{width:100%;display:block}.event__venue{color:var(--ink);margin:0 0 .3rem;font-size:1.16rem}.event__address{color:var(--ink-mute);margin:0;font-size:.87rem;line-height:1.7}.event__note{border-radius:var(--radius);border:1px dashed var(--accent-pale);color:var(--ink-soft);margin:.9rem 0 0;padding:.75rem .9rem;font-size:.82rem;line-height:1.7}.event__actions{flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:auto;padding-top:1.3rem;display:flex;position:relative}.event__btn{padding:.66rem 1.2rem;font-size:.68rem}.event__card .btn:not(.btn--ghost){--btn-bg:var(--accent);box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 28%, transparent)}.event__card .btn--ghost{--btn-fg:var(--accent-deep);border-color:var(--accent-pale)}.event__card .btn--ghost:hover{background:var(--accent-wash)}.timeline{margin-top:clamp(2.6rem,7vh,4rem);padding-left:34px;position:relative}.timeline__track{background:var(--gold-pale);width:1px;position:absolute;top:6px;bottom:6px;left:7px}.timeline__track-fill{background:linear-gradient(to bottom, var(--gold), var(--gold-deep));transform-origin:top;transform:scaleY(var(--fill,0));transition:transform .12s linear;position:absolute;top:0;bottom:0;left:0;right:0}.milestone{gap:1rem;margin-bottom:clamp(2.6rem,7vh,4rem);display:grid;position:relative}.milestone:last-child{margin-bottom:0}.milestone__node{place-items:center;width:15px;height:15px;display:grid;position:absolute;top:6px;left:-34px}.milestone__dot{background:var(--gold);width:11px;height:11px;box-shadow:0 0 0 4px var(--ivory), 0 0 0 5px var(--gold-pale);border-radius:50%}.milestone__pulse{border:1px solid var(--gold);opacity:0;border-radius:50%;position:absolute;top:-4px;bottom:-4px;left:-4px;right:-4px}.milestone__node.is-in .milestone__pulse{animation:node-pulse 2.6s var(--ease-soft) infinite}@keyframes node-pulse{0%{opacity:.8;transform:scale(.8)}70%,to{opacity:0;transform:scale(2.4)}}.milestone__card{transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);padding:1.5rem 1.4rem}.milestone__card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.milestone__year{background:var(--gold-pale);letter-spacing:.1em;color:var(--gold-deep);border-radius:99px;margin-bottom:.4rem;padding:.16rem .75rem;font-size:.9rem;display:inline-block}.milestone__title{color:var(--ink);margin:.3rem 0 .5rem;font-size:clamp(1.25rem,4.4vw,1.6rem)}.milestone__text{color:var(--ink-soft);margin:0;font-size:.93rem;line-height:1.85}.milestone__photo{border-radius:var(--radius-lg);border:1px solid var(--gold-pale);max-width:400px;box-shadow:var(--shadow-md);transition:transform .6s var(--ease-out);margin-inline-start:auto;margin-inline-end:auto;overflow:hidden}.milestone__photo:hover{transform:scale(1.02)rotate(-.6deg)}.gallery__hint{letter-spacing:.2em;text-transform:uppercase;color:var(--sage-deep);text-align:center;margin:0 0 .9rem;font-size:.68rem}.gallery__grid{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:.7rem;display:flex;overflow-x:auto}.gallery__grid::-webkit-scrollbar{display:none}.gallery__cell{scroll-snap-align:center;min-width:0;aspect-ratio:var(--tile-aspect,.667);flex:0 0 76%}.gallery__drift{width:100%;height:100%}.gallery__tile{border-radius:var(--radius-lg);border:1px solid var(--gold-pale);width:100%;height:100%;box-shadow:var(--shadow-sm);transition:transform .55s var(--ease-out), box-shadow .55s var(--ease-out);padding:0;display:block;position:relative;overflow:hidden}.gallery__tile:hover{box-shadow:var(--shadow-lg)}.gallery__tile .photo__img{transition:transform 1.1s var(--ease-out), opacity 1s var(--ease-soft)}.gallery__tile:hover .photo__img{transform:scale(1.08)}.gallery__veil{opacity:0;transition:opacity .5s var(--ease-soft);background:linear-gradient(#0000 45%,#262c2299);position:absolute;top:0;bottom:0;left:0;right:0}.gallery__tile:hover .gallery__veil{opacity:1}.gallery__caption{color:#fff;text-align:left;opacity:0;transition:opacity .5s var(--ease-soft), transform .5s var(--ease-out);font-size:.88rem;position:absolute;bottom:.8rem;left:.9rem;right:.9rem;transform:translateY(10px)}.gallery__tile:hover .gallery__caption{opacity:1;transform:none}.gallery__zoom{width:30px;height:30px;color:var(--sage-deep);opacity:0;transition:opacity .4s var(--ease-soft), transform .4s var(--ease-out);background:#fffdf6e6;border-radius:50%;place-items:center;font-size:.8rem;display:grid;position:absolute;top:.7rem;right:.7rem;transform:scale(.7)}.gallery__tile:hover .gallery__zoom{opacity:1;transform:none}@media (min-width:768px){.gallery__hint{display:none}.gallery__grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:clamp(120px,15.5vw,200px);grid-auto-flow:dense;scroll-snap-type:none;gap:.85rem;margin-inline-start:0;margin-inline-end:0;padding-inline-start:0;padding-inline-end:0;display:grid;overflow:visible}.gallery__cell{aspect-ratio:auto}.gallery__cell--small{grid-area:span 2/span 1}.gallery__cell--feature{grid-area:span 4/span 2}.gallery__cell--wide{grid-area:span 2/span 2}}@media (min-width:1024px){.gallery__grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(140px,13.6vw,205px)}}.gallery__more{justify-content:center;margin-top:1.6rem;display:flex}.lightbox{z-index:200;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:lightbox-in .35s var(--ease-out);overscroll-behavior:contain;background:#1a1e16f0;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox__backdrop{z-index:0;cursor:zoom-out;background:0 0;position:absolute;top:0;bottom:0;left:0;right:0}.lightbox__stage{z-index:1;padding:clamp(.5rem,2vw,1.5rem);touch-action:none;cursor:zoom-in;justify-content:center;align-items:center;padding-bottom:clamp(4.2rem,11vh,6rem);display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.lightbox__stage.is-zoomed{cursor:grab}.lightbox__stage.is-zoomed:active{cursor:grabbing}.lightbox__pan{will-change:transform;justify-content:center;align-items:center;width:100%;height:100%;min-height:0;display:flex}.lightbox__pan .photo{background:0 0;justify-content:center;align-items:center;width:100%;height:100%;min-height:0;display:flex}.lightbox__pan .photo__img,.lightbox__pan .photo__placeholder{object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;width:auto;max-width:100%;height:auto;max-height:100%}.lightbox__close{top:max(env(safe-area-inset-top,0px), clamp(.7rem, 2.5vw, 1.4rem));z-index:3;color:#fff;width:42px;height:42px;transition:background .3s, transform .35s var(--ease-out);background:#ffffff24;border-radius:50%;place-items:center;display:grid;position:absolute;right:clamp(.7rem,2.5vw,1.4rem)}.lightbox__close svg{width:14px;height:14px}.lightbox__close:hover{background:#ffffff42;transform:rotate(90deg)}.lightbox__nav{z-index:3;color:#fff;width:clamp(40px,9vw,54px);height:clamp(40px,9vw,54px);transition:background .3s, transform .35s var(--ease-out);background:#ffffff1f;border-radius:50%;place-items:center;font-size:1.7rem;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.lightbox__nav:hover{background:#ffffff3d}.lightbox__nav--prev{left:clamp(.4rem,2vw,1.4rem)}.lightbox__nav--next{right:clamp(.4rem,2vw,1.4rem)}.lightbox__nav--prev:hover{transform:translateY(-50%)translate(-3px)}.lightbox__nav--next:hover{transform:translateY(-50%)translate(3px)}.lightbox__bar{z-index:3;padding:1rem 1rem calc(env(safe-area-inset-bottom,0px) + 1rem);text-align:center;pointer-events:none;transition:opacity .4s var(--ease-soft);background:linear-gradient(#0000,#1a1e16bf);position:absolute;bottom:0;left:0;right:0}.lightbox__bar.is-dim{opacity:.25}.lightbox__caption{color:var(--gold-pale);margin:0;font-size:clamp(.98rem,2.6vw,1.15rem);font-style:italic}.lightbox__counter{letter-spacing:.22em;color:#ffffff80;margin:.3rem 0 0;font-size:.72rem}.lightbox__hint{letter-spacing:.1em;color:#ffffff6b;opacity:0;transition:opacity .6s var(--ease-soft);margin:.45rem 0 0;font-size:.68rem}.lightbox__hint.is-visible{opacity:1}.lightbox__reset{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 1.1rem);z-index:4;color:#fff;letter-spacing:.14em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff29;border:1px solid #ffffff47;border-radius:99px;padding:.5rem 1.2rem;font-size:.72rem;transition:background .3s;position:absolute;transform:translate(-50%)}.lightbox__reset:hover{background:#ffffff47}.rsvp__deadline{letter-spacing:.1em;color:var(--rose);margin:.8rem 0 0;font-size:.8rem}.rsvp__form{margin-top:clamp(2rem,5vh,3rem);padding:clamp(1.8rem,6vw,2.8rem)}.rsvp__choice{border:0;margin-inline-start:0;margin-inline-end:0;padding:0}.rsvp__options{gap:.6rem;display:grid}.rsvp__option{border:1px solid var(--gold-pale);border-radius:var(--radius);color:var(--ink-soft);text-align:left;transition:all .35s var(--ease-out);background:#fff9;align-items:center;gap:.7rem;padding:.9rem 1.1rem;font-size:.92rem;display:flex}.rsvp__option:hover{border-color:var(--gold-light);background:#fff}.rsvp__option.is-active{border-color:var(--gold);background:linear-gradient(120deg, var(--gold-pale), #fffc);color:var(--ink);box-shadow:0 6px 18px #a2814b29}.rsvp__option-icon{background:var(--gold-pale);width:28px;height:28px;color:var(--gold-deep);transition:transform .4s var(--ease-out);border-radius:50%;place-items:center;font-size:.85rem;display:grid}.rsvp__option.is-active .rsvp__option-icon{background:var(--gold);color:#fff;transform:scale(1.1)}.rsvp__details{opacity:0;transition:grid-template-rows .55s var(--ease-out), opacity .45s var(--ease-soft);grid-template-rows:0fr;display:grid}.rsvp__details.is-open{opacity:1;grid-template-rows:1fr}.rsvp__details-inner{min-height:0;overflow:hidden}.rsvp__events{flex-wrap:wrap;gap:.5rem;display:flex}.rsvp__chip{border:1px solid var(--gold-pale);color:var(--ink-mute);transition:all .35s var(--ease-out);background:#fff9;border-radius:99px;padding:.5rem 1rem;font-size:.82rem}.rsvp__chip.is-active{border-color:var(--gold);background:var(--gold);color:#fff;box-shadow:0 5px 14px #a2814b42}.rsvp__submit{width:100%;margin-top:.6rem}.rsvp__thanks{text-align:center;padding:clamp(2.4rem,8vw,3.6rem)}.rsvp__thanks-seal{background:linear-gradient(140deg, var(--gold-light), var(--gold-deep));color:#fff;width:62px;height:62px;animation:seal-in .8s var(--ease-out) both;border-radius:50%;place-items:center;margin:0 auto 1.2rem;font-size:1.4rem;display:grid;box-shadow:0 10px 26px #a2814b4d}@keyframes seal-in{0%{opacity:0;transform:scale(0)rotate(-40deg)}70%{transform:scale(1.12)rotate(6deg)}to{opacity:1;transform:none}}.rsvp__thanks .btn{margin-top:1.6rem}.guestbook__layout{gap:clamp(1.8rem,5vw,2.8rem);margin-top:clamp(2.4rem,6vh,3.6rem);display:grid}.guestbook__form{padding:clamp(1.6rem,5vw,2.2rem)}.guestbook__form .btn{width:100%}.guestbook__sent{text-align:center;color:var(--gold-deep);opacity:0;transition:opacity .5s var(--ease-soft), transform .5s var(--ease-out);margin:.9rem 0 0;font-size:.86rem;transform:translateY(6px)}.guestbook__sent.is-visible{opacity:1;transform:none}.guestbook__loading{color:var(--ink-faint);text-align:center;margin:0 0 .6rem;font-size:.82rem;font-style:italic}.guestbook__wall{scrollbar-width:thin;align-content:start;gap:.9rem;max-height:560px;padding:.3rem .5rem .3rem .3rem;display:grid;overflow-y:auto}.wish__card{background:var(--wish-bg,#fdf8ee);box-shadow:var(--shadow-sm);transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out);border:1px solid #a0825524;border-radius:3px;padding:1.15rem 1.2rem 1rem;position:relative}.wish:nth-child(3n) .wish__card{transform:rotate(-.7deg)}.wish:nth-child(3n+1) .wish__card{transform:rotate(.5deg)}.wish__card:hover{box-shadow:var(--shadow-md);transform:rotate(0)translateY(-4px)}.wish--cream .wish__card{--wish-bg:#fdf8ee}.wish--blush .wish__card{--wish-bg:#fbf0ec}.wish--sage .wish__card{--wish-bg:#f2f4ec}.wish--gold .wish__card{--wish-bg:#f9f0dd}.wish__message{color:var(--ink-soft);white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 .8rem;font-size:.93rem;line-height:1.8}.wish__foot{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.wish__name{color:var(--gold-deep);font-size:1.02rem}.wish__time{color:var(--ink-faint);font-size:.7rem}.wish__pin{background:radial-gradient(circle at 35% 32%, var(--gold-light), var(--gold-deep));border-radius:50%;width:10px;height:10px;position:absolute;top:-5px;left:50%;transform:translate(-50%);box-shadow:0 2px 5px #5a462d47}.giftbox-wrap{flex-direction:column;align-items:center;margin-top:clamp(2rem,5vh,3rem);display:flex}.giftbox{perspective:700px;width:200px;height:190px;padding:0;display:block;position:relative}.giftbox__glow{opacity:.5;width:260px;height:130px;transition:opacity .6s var(--ease-soft), transform .6s var(--ease-out);background:radial-gradient(#d8be8a80,#0000 70%);border-radius:50%;position:absolute;top:58%;left:50%;transform:translate(-50%,-50%)}.giftbox__base{background:linear-gradient(160deg, var(--sage-light), var(--sage) 55%, var(--sage-deep));border-radius:5px;width:148px;height:106px;position:absolute;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 14px 30px #46553e47,inset 0 -10px 22px #303c2c38}.giftbox__inside{z-index:2;opacity:0;height:16px;transition:opacity .4s var(--ease-soft) .18s;background:linear-gradient(#3c4a38,#55663f 70%);border-radius:3px 3px 8px 8px;position:absolute;top:5px;bottom:auto;left:6px;right:6px}.giftbox__base-band{z-index:1;background:linear-gradient(90deg, var(--gold-deep), var(--gold-light) 45%, var(--gold) 100%);width:26px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);box-shadow:inset -3px 0 6px #5a46284d}.giftbox__lid{transform-origin:20% 100%;background:linear-gradient(165deg, #c3cfba, var(--sage) 60%, var(--sage-deep));width:172px;height:40px;transition:transform .85s var(--ease-out), opacity .5s var(--ease-soft) .3s;border-radius:5px;position:absolute;bottom:118px;left:50%;transform:translate(-50%);box-shadow:0 8px 18px #46553e42,inset 0 -6px 12px #303c2c33}.giftbox__lid-band{background:linear-gradient(90deg, var(--gold-deep), var(--gold-light) 45%, var(--gold) 100%);width:26px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.giftbox__bow{width:84px;height:34px;position:absolute;top:-26px;left:50%;transform:translate(-50%)}.giftbox__loop{border:7px solid var(--gold);background:0 0;border-radius:60% 60% 40% 40%;width:38px;height:30px;position:absolute;top:2px}.giftbox__loop--left{border-color:var(--gold-light) var(--gold) var(--gold-deep) var(--gold-light);left:0;transform:rotate(-26deg)}.giftbox__loop--right{border-color:var(--gold-light) var(--gold-light) var(--gold-deep) var(--gold);right:0;transform:rotate(26deg)}.giftbox__knot{background:radial-gradient(circle at 35% 32%, var(--gold-light), var(--gold-deep));border-radius:50%;width:18px;height:18px;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 2px 5px #5a462859}.giftbox__spark{background:var(--gold-light);opacity:0;pointer-events:none;border-radius:50%;width:7px;height:7px;position:absolute;top:42%;left:50%}.giftbox__hint{white-space:nowrap;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-deep);font-size:.72rem;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.giftbox:hover .giftbox__lid{transform:translate(-50%)translateY(-6px)}.giftbox:hover .giftbox__glow{opacity:.75}.giftbox-wrap.is-opened .giftbox__lid{opacity:0;transform:translate(-50%)translateY(-74px)rotate(-24deg)scale(.94)}.giftbox-wrap.is-opened .giftbox__inside{opacity:1}.giftbox-wrap.is-opened .giftbox__glow{opacity:.95;transform:translate(-50%,-50%)scale(1.15)}.giftbox-wrap.is-opened .giftbox__spark{animation:gift-spark 1.1s var(--ease-out) forwards}.giftbox__spark[data-i="0"]{--sx:-78px;--sy:-70px;animation-delay:40ms}.giftbox__spark[data-i="1"]{--sx:-42px;--sy:-104px;animation-delay:.1s}.giftbox__spark[data-i="2"]{--sx:6px;--sy:-118px;animation-delay:20ms}.giftbox__spark[data-i="3"]{--sx:52px;--sy:-98px;animation-delay:.14s}.giftbox__spark[data-i="4"]{--sx:86px;--sy:-62px;animation-delay:80ms}.giftbox__spark[data-i="5"]{--sx:-12px;--sy:-140px;animation-delay:.18s}@keyframes gift-spark{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}25%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--sx)), calc(-50% + var(--sy))) scale(.5)}}.gift-panel{opacity:0;width:100%;transition:grid-template-rows .7s var(--ease-out), opacity .5s var(--ease-soft), margin-top .7s var(--ease-out);grid-template-rows:0fr;margin-top:0;display:grid}.giftbox-wrap.is-opened .gift-panel{opacity:1;grid-template-rows:1fr;margin-top:2rem}.gift-panel__inner{min-height:0;overflow:hidden}.gift-tabs{background:var(--sage-pale);border:1px solid var(--sage-light);border-radius:99px;grid-template-columns:repeat(2,1fr);gap:0;max-width:340px;margin:0 auto 1.6rem;padding:4px;display:grid;position:relative}.gift-tabs__tab{z-index:1;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-deep);transition:color .35s var(--ease-soft);border-radius:99px;padding:.62rem .5rem;font-size:.74rem;position:relative}.gift-tabs__tab.is-active{color:#fff}.gift-tabs__marker{z-index:0;background:linear-gradient(135deg, var(--sage), var(--sage-deep));width:calc(50% - 4px);transition:transform .45s var(--ease-out);border-radius:99px;position:absolute;top:4px;bottom:4px;left:4px;box-shadow:0 4px 12px #46553e47}.gift-panel__body{text-align:center;animation:gift-tab-in .45s var(--ease-out) both}@keyframes gift-tab-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.gift-qr{border-radius:var(--radius);border:1px solid var(--sage-pale);width:min(250px,74%);box-shadow:var(--shadow-md);background:#fff;margin:0 auto 1.5rem;padding:10px;position:relative}.gift-qr img{border-radius:2px;width:100%}.gift-qr__scan{animation:qr-scan 3.4s var(--ease-soft) infinite;pointer-events:none;background:linear-gradient(#0000 40%,#8b9c824d 50%,#0000 60%);border-radius:2px;position:absolute;top:10px;bottom:10px;left:10px;right:10px}@keyframes qr-scan{0%,to{opacity:0;transform:translateY(-46%)}50%{opacity:1;transform:translateY(46%)}}.gift-qr__missing{aspect-ratio:1;color:var(--ink-faint);text-align:center;place-items:center;gap:.5rem;font-size:.8rem;display:grid}.gift-qr__missing span{color:var(--sage-light);font-size:2rem}.gift-info{text-align:left;gap:.7rem;max-width:380px;margin:0 auto 1.4rem;display:grid}.gift-info div{grid-template-columns:8.5rem 1fr;align-items:baseline;gap:.5rem;display:grid}.gift-info dt{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-size:.68rem}.gift-info dd{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:.92rem}.gift-info__number{letter-spacing:.06em;color:var(--sage-deep);font-size:1.14rem}.gift-panel__copy{min-width:min(280px,100%)}@media (prefers-reduced-motion:reduce){.giftbox__spark,.gift-qr__scan,.gift-panel__body{animation:none!important}}.thanks__photo-frame{border-radius:var(--radius-lg);border:1px solid var(--gold-pale);box-shadow:var(--shadow-lg);overflow:hidden}.thanks__body{margin-top:clamp(2.2rem,6vh,3.4rem)}.thanks__text{max-width:48ch;color:var(--ink-soft);margin:0 auto;font-size:1rem;line-height:2}.thanks__signoff{font-family:var(--font-display);color:var(--ink-mute);margin:2rem 0 .2rem;font-style:italic}.thanks__names{color:var(--gold-deep);margin:0;font-size:clamp(2.6rem,9vw,3.8rem)}.thanks__contacts{border:1px dashed var(--gold-pale);border-radius:var(--radius-lg);text-align:center;margin-top:clamp(2.6rem,7vh,3.8rem);padding:1.6rem}.thanks__contacts-title{letter-spacing:.26em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 1rem;font-size:.68rem}.thanks__contacts ul{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.thanks__contacts li{color:var(--ink-soft);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.5rem .9rem;font-size:.9rem;display:flex}.thanks__contacts a{color:var(--gold-deep);border-bottom:1px solid var(--gold-pale);text-decoration:none;transition:border-color .3s}.thanks__contacts a:hover{border-color:var(--gold)}.footer{padding-top:2rem;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 6rem);border-top:1px solid var(--gold-pale);flex-direction:column;align-items:center;gap:.5rem;margin-top:clamp(3.4rem,9vh,5rem);display:flex}.footer__mark{color:var(--gold-deep);letter-spacing:.08em;font-size:1.5rem}.footer__hashtag{letter-spacing:.2em;color:var(--ink-faint);font-size:.72rem}.scroll-progress{z-index:50;pointer-events:none;background:#c2a06a24;height:2px;position:fixed;top:0;left:0;right:0}.scroll-progress span{transform-origin:0;background:linear-gradient(90deg, var(--gold-light), var(--gold-deep));height:100%;display:block}.side-nav{display:none}.music-toggle{top:calc(env(safe-area-inset-top,0px) + 1rem);z-index:50;border:1px solid var(--gold-pale);width:46px;height:46px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);background:#fffdf6db;border-radius:50%;place-items:center;display:grid;position:fixed;right:1rem}.music-toggle:hover{box-shadow:var(--shadow-md);transform:scale(1.07)}.music-toggle__disc{background:repeating-radial-gradient(circle at 50% 50%, var(--gold-deep) 0 1px, var(--gold-light) 1px 3px);opacity:.35;border-radius:50%;transition:opacity .4s;position:absolute;top:8px;bottom:8px;left:8px;right:8px}.music-toggle.is-playing .music-toggle__disc{opacity:.6;animation:4s linear infinite disc-spin}@keyframes disc-spin{to{transform:rotate(360deg)}}.music-toggle__hole{background:var(--paper);border-radius:50%;position:absolute;top:42%;bottom:42%;left:42%;right:42%}.music-toggle__bars{align-items:flex-end;gap:2px;height:15px;display:flex;position:relative}.music-toggle__bars i{background:var(--gold-deep);border-radius:2px;width:2.5px;height:4px;transition:height .3s;display:block}.music-toggle.is-playing .music-toggle__bars i{animation:bars-dance .9s var(--ease-soft) infinite alternate}.music-toggle.is-playing .music-toggle__bars i:nth-child(2){animation-delay:.18s}.music-toggle.is-playing .music-toggle__bars i:nth-child(3){animation-delay:.36s}.music-toggle.is-playing .music-toggle__bars i:nth-child(4){animation-delay:.54s}@keyframes bars-dance{0%{height:3px}to{height:14px}}.autoscroll-toggle{top:calc(env(safe-area-inset-top,0px) + 1rem);z-index:50;border:1px solid var(--sage-light);width:46px;height:46px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);background:#fffdf7db;border-radius:50%;place-items:center;display:grid;position:fixed;right:4.2rem}.autoscroll-toggle:hover{box-shadow:var(--shadow-md);transform:scale(1.07)}.autoscroll-toggle__icon{color:var(--sage-deep);justify-content:center;align-items:center;gap:3px;display:flex}.autoscroll-toggle__icon b{border-top:7px solid #0000;border-bottom:7px solid #0000;border-left:11px solid;width:0;height:0;margin-left:3px;display:block}.autoscroll-toggle__icon i{background:currentColor;border-radius:1px;width:3.5px;height:13px;display:block}.autoscroll-toggle__ring{border:1px solid var(--sage);opacity:0;border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0}.autoscroll-toggle.is-running{border-color:var(--sage);background:var(--sage-pale)}.autoscroll-toggle.is-running .autoscroll-toggle__ring{animation:ring-out 2.6s var(--ease-soft) infinite}.quick-bar{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + .7rem);z-index:50;border:1px solid var(--gold-pale);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);scrollbar-width:none;background:#fffdf6e6;border-radius:99px;gap:.1rem;max-width:calc(100vw - 1.6rem);padding:.35rem;display:flex;position:fixed;overflow-x:auto;transform:translate(-50%)}.quick-bar::-webkit-scrollbar{display:none}.quick-bar__item{color:var(--ink-mute);border-radius:99px;flex-direction:column;flex:none;align-items:center;gap:1px;padding:.38rem .5rem;transition:background .35s,color .35s;display:flex}.quick-bar__item.is-active{background:var(--gold-pale);color:var(--gold-deep)}.quick-bar__mark{font-family:var(--font-display);font-size:.86rem;line-height:1}.quick-bar__text{letter-spacing:.02em;white-space:nowrap;font-size:.52rem}.rsvp-fab{right:1rem;bottom:calc(env(safe-area-inset-bottom,0px) + 4.6rem);z-index:50;background:linear-gradient(135deg, var(--gold-light), var(--gold-deep));color:#fff;letter-spacing:.12em;text-transform:uppercase;transition:transform .45s var(--ease-out), box-shadow .4s var(--ease-out), opacity .35s var(--ease-soft);border-radius:99px;align-items:center;padding:.75rem 1.25rem;font-size:.72rem;display:flex;position:fixed;box-shadow:0 10px 28px #a2814b59}.rsvp-fab:hover{transform:translateY(-3px);box-shadow:0 16px 36px #a2814b6b}.rsvp-fab.is-hidden{opacity:0;pointer-events:none;transform:translateY(140%)}.rsvp-fab__pulse{border:1px solid var(--gold);animation:ring-out 3.2s var(--ease-soft) infinite;border-radius:99px;position:absolute;top:0;bottom:0;left:0;right:0}@media (min-width:768px){.families__grid{grid-template-columns:1fr auto 1fr;gap:1.4rem}.events__grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.gifts__grid{grid-template-columns:repeat(2,1fr)}.gallery__grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:.85rem}.wedding-day__grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.guestbook__layout{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}.rsvp__options{grid-template-columns:1fr 1fr}.countdown{gap:.9rem}.timeline{padding-left:0}.timeline__track{left:50%;transform:translate(-50%)}.milestone{grid-template-columns:1fr 60px 1fr;align-items:center;gap:0}.milestone__node{grid-area:1/2;justify-self:center;position:static}.milestone--left .milestone__content{grid-area:1/1;padding-right:1.6rem}.milestone--left .milestone__media,.milestone--right .milestone__content{grid-area:1/3;padding-left:1.6rem}.milestone--right .milestone__media{grid-area:1/1;padding-right:1.6rem}.milestone--left .milestone__card{text-align:right}}@media (min-width:1024px){.hero{padding-bottom:clamp(4rem,10vh,6rem)}.gallery__grid{grid-auto-rows:190px}.side-nav{z-index:50;display:block;position:fixed;top:50%;right:1.4rem;transform:translateY(-50%)}.side-nav ul{flex-direction:column;align-items:flex-end;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.side-nav__dot{justify-content:flex-end;align-items:center;gap:.6rem;padding:.15rem 0;display:flex}.side-nav__mark{background:var(--gold-pale);width:8px;height:8px;transition:background .4s, transform .4s var(--ease-out);border-radius:50%;flex:none}.side-nav__dot:hover .side-nav__mark{background:var(--gold-light);transform:scale(1.4)}.side-nav__dot.is-active .side-nav__mark{background:var(--gold-deep);transform:scale(1.5)}.side-nav__label{border:1px solid var(--gold-pale);letter-spacing:.1em;white-space:nowrap;color:var(--ink-soft);opacity:0;pointer-events:none;transition:opacity .35s var(--ease-soft), transform .35s var(--ease-out), color .35s, background .35s;background:#fffdf6f0;border-radius:99px;padding:.24rem .7rem;font-size:.68rem;transform:translate(6px)}.side-nav__dot:hover .side-nav__label{opacity:1;transform:none}}@media (min-width:1400px){.side-nav{right:1.1rem}.side-nav ul{gap:.3rem}.side-nav__label{opacity:1;color:var(--ink-faint);background:0 0;border-color:#0000;padding-inline-start:.3rem;padding-inline-end:.3rem;font-size:.66rem;transform:none}.side-nav__dot:hover .side-nav__label{color:var(--gold-deep)}.side-nav__dot.is-active .side-nav__label{color:var(--ink);letter-spacing:.14em}.side-nav:before{content:"";background:linear-gradient(to bottom, transparent, var(--gold-pale) 12%, var(--gold-pale) 88%, transparent);width:1px;position:absolute;top:.6rem;bottom:.6rem;right:3px}}@media (min-width:1024px){.quick-bar{display:none}.rsvp-fab{bottom:2rem;left:2rem;right:auto}.footer{padding-bottom:2.5rem}.music-toggle{top:1.6rem;right:4.5rem}.autoscroll-toggle{top:1.6rem;right:7.7rem}}@media (prefers-reduced-motion:reduce){.reveal{filter:none!important;transition:opacity .7s ease var(--reveal-delay,0s)!important;transform:none!important}.anim-title__char,.reveal.countdown .countdown__unit{transition:opacity .5s ease var(--char-delay,0s)!important;transform:none!important}.reveal .photo,.reveal.is-in .photo{clip-path:none!important}.reveal.divider:before,.reveal.divider:after{transform:scaleX(1)!important}.reveal.divider .divider__mark{transform:none!important}.timeline__track-fill{transform:scaleY(1)}.ornament{display:none}}@property --draw{syntax:"<percentage>";inherits:false;initial-value:0%}.ink-write{--draw:0%;width:-moz-fit-content;width:fit-content;-webkit-mask-image:linear-gradient(90deg, #000 var(--draw), transparent calc(var(--draw) + 7%));-webkit-mask-image:linear-gradient(90deg, #000 var(--draw), transparent calc(var(--draw) + 7%));mask-image:linear-gradient(90deg, #000 var(--draw), transparent calc(var(--draw) + 7%));transition:--draw 1.9s cubic-bezier(.52, .06, .32, 1) calc(var(--reveal-delay,0s) + .24s);margin-inline-start:auto;margin-inline-end:auto}.ink-write.is-in{--draw:107%}.event__arch,.wedding-day__plaque:after{--draw:0%;-webkit-mask-image:radial-gradient(circle at 50% 0%, #000 var(--draw), transparent calc(var(--draw) + 9%));-webkit-mask-image:radial-gradient(circle at 50% 0%, #000 var(--draw), transparent calc(var(--draw) + 9%));mask-image:radial-gradient(circle at 50% 0%, #000 var(--draw), transparent calc(var(--draw) + 9%));transition:--draw 1.5s var(--ease-out) calc(var(--reveal-delay,0s) + .26s)}.reveal.event.is-in .event__arch,.wedding-day__plaque.is-in:after{--draw:108%}.reveal.divider__mark,.reveal.divider .divider__mark{opacity:0;transition:opacity .5s var(--ease-out) var(--reveal-delay,0s), transform .75s var(--ease-out) var(--reveal-delay,0s);transform:scale(.45)rotate(-35deg)}.reveal.divider.is-in .divider__mark{opacity:.85;transform:none}.reveal.divider:before,.reveal.divider:after{transition:transform 1.15s var(--ease-out) calc(var(--reveal-delay,0s) + .16s);transform:scaleX(0)}.reveal.divider:before{transform-origin:100%}.reveal.divider:after{transform-origin:0}.reveal.divider.is-in:before,.reveal.divider.is-in:after{transform:scaleX(1)}@media (prefers-reduced-motion:reduce){.ink-write,.event__arch,.wedding-day__plaque:after{--draw:108%;transition:none}.reveal.divider:before,.reveal.divider:after,.reveal.divider .divider__mark{opacity:.85;transition:none;transform:none}}.wish-stream{left:var(--gutter);bottom:calc(env(safe-area-inset-bottom,0px) + 4.9rem);z-index:55;pointer-events:none;width:min(300px,62vw);animation:stream-in .7s var(--ease-out) both;flex-direction:column;gap:.55rem;display:flex;position:fixed}@keyframes stream-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.wish-stream__viewport{height:var(--stream-height,190px);overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 18% 82%,#0000);mask-image:linear-gradient(#0000,#000 18% 82%,#0000)}.wish-stream__track{will-change:transform;animation:wish-marquee var(--stream-duration,40s) linear infinite;flex-direction:column;display:flex}@keyframes wish-marquee{0%{transform:translate(0,0)}to{transform:translateY(-50%)}}.wish-stream:hover .wish-stream__track{animation-play-state:paused}.wish-stream__track.is-still{animation:none}.wish-stream__list{flex-direction:column;gap:.4rem;margin:0 0 .4rem;padding:0;list-style:none;display:flex}.wish-bubble{-webkit-backdrop-filter:blur(14px)saturate(1.15);color:var(--ink);text-shadow:0 1px 6px #ffffff8c;overflow-wrap:anywhere;background:#fffdf757;border:1px solid #fffdf766;border-radius:3px 13px 13px;padding:.5rem .8rem;font-size:.8rem;line-height:1.5;box-shadow:0 2px 12px #323a2c1a}.wish-bubble__name{color:var(--sage-deep);margin-right:.35rem;font-weight:600}.wish-bubble__name:after{content:":";color:var(--ink-faint)}.wish-stream__open{min-width:0;color:var(--sage-deep);white-space:nowrap;text-overflow:ellipsis;transition:background .3s var(--ease-soft);align-items:center;gap:.5rem;padding:.58rem 1.05rem;font-size:.78rem;display:inline-flex;overflow:hidden}.wish-stream__open:hover{background:#8b9c821f}.wish-stream__pen{font-size:.9rem;line-height:1}.wish-compose{pointer-events:auto;border:1px solid var(--sage-light);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(12px);animation:compose-in .4s var(--ease-out) both;background:#fffdf7f5;border-radius:14px;flex-direction:column;gap:.45rem;padding:.75rem;display:flex}@keyframes compose-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:none}}.wish-compose__name,.wish-compose__text{border:1px solid var(--sage-pale);width:100%;min-width:0;color:var(--ink);background:#fff;border-radius:8px;outline:none;padding:.5rem .7rem;font-size:.82rem;transition:border-color .25s,box-shadow .25s}.wish-compose__name:focus,.wish-compose__text:focus{border-color:var(--sage);box-shadow:0 0 0 3px #8b9c822e}.wish-compose__row{gap:.4rem;display:flex}.wish-compose__send{background:var(--sage-deep);color:#fff;width:38px;transition:background .25s, transform .25s var(--ease-out);border-radius:8px;flex:none;font-size:.85rem}.wish-compose__send:hover{background:var(--sage);transform:translate(2px)}.wish-compose__cancel{color:var(--ink-faint);text-underline-offset:3px;align-self:flex-start;font-size:.7rem;text-decoration:underline}.wish-stream__bar{pointer-events:auto;-webkit-backdrop-filter:blur(14px)saturate(1.15);max-width:100%;transition:box-shadow .35s var(--ease-out), transform .35s var(--ease-out);background:#fffdf7b8;border:1px solid #b3c0aab3;border-radius:99px;align-self:flex-start;align-items:stretch;display:inline-flex;overflow:hidden;box-shadow:0 4px 18px #323a2c1f}.wish-stream__bar:hover{transform:translateY(-2px);box-shadow:0 10px 26px #323a2c2e}.wish-stream__close{width:38px;color:var(--ink-faint);transition:background .3s var(--ease-soft), color .3s;flex:none;place-items:center;display:grid;position:relative}.wish-stream__close:before{content:"";background:#b3c0aabf;width:1px;position:absolute;top:22%;bottom:22%;left:0}.wish-stream__close:hover{color:var(--sage-deep);background:#8b9c821f}.wish-stream__close svg{width:11px;height:11px;transition:transform .4s var(--ease-out)}.wish-stream__close:hover svg{transform:rotate(90deg)}@media (max-width:767px){body.wish-stream-open .rsvp-fab__text{display:none}body.wish-stream-open .rsvp-fab{border-radius:50%;justify-content:center;width:50px;height:50px;padding:0}body.wish-stream-open .rsvp-fab:after{content:"❦";font-size:1.05rem;line-height:1}}@media (min-width:1024px){.wish-stream{left:auto;right:var(--gutter);align-items:flex-end;width:320px;bottom:2rem}.wish-stream__bar,.wish-stream__open{align-self:flex-end}.wish-stream__viewport{--stream-height:320px}}@media (prefers-reduced-motion:reduce){.wish-stream,.wish-bubble,.wish-compose{animation:none}}
