@font-face{font-family:Octet Stream;src:url(/fonts/octet-stream.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--rose: #ff5f8f;--rose-dark: #e73570;--peach: #ffb48a;--peach-pale: #fff2e9;--butter: #ffe58a;--butter-dark: #e5ad22;--mint: #62e6c9;--mint-dark: #11a993;--sky: #8ed8ff;--cream: #fffaf2;--page-bg: linear-gradient(135deg, #fff7dc, #fff0f4 50%, #e8fff9);--ink: #32222b;--muted: #806f78;--white: #ffffff;--radius: 24px;--shadow-sm: 0 8px 22px rgba(231, 53, 112, .12);--shadow-lg: 0 22px 70px rgba(231, 53, 112, .2);--font-display: "Cormorant Garamond", Georgia, serif;--font-couple: "Octet Stream", var(--font-display);--font-body: "Outfit", system-ui, sans-serif;--max-w: 1200px;--primary-color: var(--rose-dark);--cta-color-rgb: 231, 53, 112}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;min-height:100%;overflow-x:hidden}body.gate-locked{overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;width:100%}.opening-gate{touch-action:none;overscroll-behavior:none}main>section{scroll-margin-top:5rem}body{margin:0;min-height:100%;font-family:var(--font-body);color:var(--ink);background:var(--page-bg);background-attachment:fixed;line-height:1.65}a{color:var(--rose-dark);text-decoration:none}a:hover{text-decoration:underline}img{display:block;max-width:100%}.container{max-width:var(--max-w);margin:0 auto;padding:0 2rem}.section{width:100%;padding:6rem 0}.section-flower{display:flex;justify-content:center;padding:0 2rem;margin:-2.5rem 0;pointer-events:none}.section-flower img{width:400px;height:auto;opacity:.9;filter:drop-shadow(0 8px 18px rgba(231,53,112,.18))}.section-flower--1,.section-flower--2,.section-flower--3{justify-content:center}.section-flower--3 img{opacity:1}.section-flower--4,.section-flower--5{justify-content:center}.section-flower--6{margin:-4rem 0}.section-title{position:relative;display:inline-block;width:100%;margin:0 0 1.5rem;font-family:var(--font-display);font-size:clamp(2.4rem,5vw,3.6rem);font-weight:700;line-height:1.1;text-align:center;color:var(--rose-dark)}.section-title:after{content:"";display:block;width:72px;height:4px;margin:.9rem auto 0;border-radius:999px;background:linear-gradient(90deg,var(--rose),var(--peach),var(--butter))}.site-header{position:sticky;top:0;z-index:100;background:#fffaf2db;border-bottom:1px solid rgba(255,95,143,.18);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav-inner{max-width:var(--max-w);margin:0 auto;padding:.85rem 2rem;display:flex;align-items:center;gap:1rem}.nav-logo{display:inline-flex;align-items:center;gap:.45rem;font-size:1.5rem;font-weight:700;color:var(--rose-dark);text-decoration:none}.couple-name{font-family:var(--font-couple);font-weight:400;font-style:normal}.couple-name:first-child{margin-right:8px}.couple-names--opening .couple-name:first-child{margin-right:16px}.couple-names--contents{display:flex;align-items:center;justify-content:center}.nav-logo:before{content:"♥";color:var(--rose);animation:pulseHeart 2.4s ease-in-out infinite}.nav-links{list-style:none;margin:0;padding:0;display:none;flex:1;justify-content:center;gap:.1rem}.nav-links a{position:relative;display:block;padding:.45rem .75rem;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);text-decoration:none}.nav-links a:after{content:"";position:absolute;left:50%;bottom:2px;width:0;height:2px;background:var(--rose);transition:width .25s,left .25s}.nav-links a:hover:after{left:18%;width:64%}.lang-btn{margin-left:auto;border:0;background:linear-gradient(135deg,var(--rose),var(--peach));color:var(--white);font:inherit;font-size:.78rem;font-weight:800;letter-spacing:.08em;padding:.45rem 1rem;border-radius:999px;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .25s}.lang-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}@media(min-width:820px){.nav-links{display:flex}}.hero-section{min-height:100dvh;position:relative;display:grid;place-items:center;overflow:hidden;padding:6rem 2rem 5rem;text-align:center;margin-bottom:1.5em;background-color:transparent}.hero-bg-parallax{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:url(/images/wedding/hero.jpg);background-size:cover;background-repeat:no-repeat;transform:translate3d(0,var(--parallax-y, 0px),0);will-change:transform}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.hero-inner{position:relative;z-index:2;max-width:900px;padding:clamp(2rem,4vw,3.5rem);border-radius:36px}.hero-eyebrow{margin:0;color:var(--rose-dark);font-size:.86rem;font-weight:800;letter-spacing:.35em;text-transform:uppercase}.hero-divider{width:80px;height:3px;margin:1rem auto .75rem;border-radius:999px;background:linear-gradient(90deg,var(--rose),var(--peach),var(--butter))}.hero-names{margin:0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.25em;font-size:clamp(4rem,13vw,8rem);line-height:.92;color:var(--rose-dark);text-shadow:0 6px 22px rgba(255,255,255,.7)}.hero-names .couple-name{font-size:1em}.hero-amp{color:var(--butter-dark);font-style:normal;font-size:.7em}.hero-date-badge{padding:.65rem 1.3rem;border-radius:999px;color:var(--ink);font-weight:800;background:#ffffffc7;border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s}.hero-date-badge:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.countdown-row{display:grid;gap:1.4rem}@media(min-width:760px){.countdown-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.countdown-block{padding:2rem;border-radius:30px;background:#ffffffc7;border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow-sm)}.countdown-label{margin:0 0 .45rem;text-align:center;color:var(--mint-dark);font-size:.76rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.countdown-block h3{margin:0 0 1.35rem;text-align:center;font-family:var(--font-display);font-size:1.8rem;color:var(--rose-dark)}.countdown-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.countdown-cell{padding:1rem .3rem;border-radius:18px;text-align:center;background:linear-gradient(180deg,var(--white),var(--peach-pale));border:1px solid rgba(255,95,143,.12);transition:transform .25s,box-shadow .25s}.countdown-cell:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}.countdown-num{display:inline-block;color:var(--rose-dark);font-size:clamp(1.8rem,4vw,2.7rem);font-weight:900;line-height:1;animation:fadeInUp .45s ease-out}.countdown-unit{display:block;margin-top:.35rem;color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.timeline{list-style:none;position:relative;margin:0;padding:0}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:4px;border-radius:999px;transform:translate(-50%);background:linear-gradient(var(--rose),var(--peach),var(--mint))}.timeline-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);align-items:center;gap:0;padding:1.35rem 0}.timeline-dot{grid-column:2;justify-self:center;z-index:2;width:46px;height:46px;border-radius:999px;display:grid;place-items:center;background:var(--white);color:var(--rose-dark);font-weight:900;border:4px solid var(--butter);box-shadow:var(--shadow-sm)}.timeline-card{grid-column:1;display:grid;grid-template-columns:160px minmax(0,1fr);gap:1.15rem;align-items:center;padding:1rem;border-radius:26px;background:#ffffffd9;box-shadow:var(--shadow-sm);border:1px solid rgba(255,255,255,.9)}.timeline-item:nth-child(2n) .timeline-card{grid-column:3}.timeline-photo img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:20px;background:var(--peach-pale)}.timeline-content time{color:var(--mint-dark);font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.timeline-content h3{margin:.25rem 0;font-family:var(--font-display);font-size:1.65rem;color:var(--rose-dark)}.timeline-content p{margin:0;color:var(--muted);font-size:.95rem}@media(max-width:820px){.timeline:before{left:24px}.timeline-item{grid-template-columns:52px minmax(0,1fr)}.timeline-dot{grid-column:1;width:40px;height:40px}.timeline-card,.timeline-item:nth-child(2n) .timeline-card{grid-column:2;grid-template-columns:1fr}}.info-grid{display:grid;gap:1.5rem}@media(min-width:780px){.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.info-card{overflow:hidden;border-radius:30px;background:var(--white);box-shadow:var(--shadow-lg);transition:transform .35s,box-shadow .35s}.info-card:hover{transform:translateY(-6px);box-shadow:0 28px 80px #e7357042}.info-card-header{position:relative;overflow:hidden;padding:1.8rem 2rem;color:var(--ink);background:linear-gradient(135deg,var(--butter),var(--peach))}.info-card-header.groom{background:linear-gradient(135deg,var(--mint),var(--sky))}.info-card-header h3{margin:0 0 .2rem;font-family:var(--font-display);font-size:2rem;color:var(--rose-dark)}.info-card-header.groom h3{color:#007f70}.info-card-date{margin:0;font-weight:800}.info-card-body{padding:1.5rem 2rem}.info-row{display:grid;grid-template-columns:110px 1fr;gap:1rem;margin:0;padding:.75rem 0;border-bottom:1px solid rgba(255,95,143,.1)}.info-row:last-child{border-bottom:0}.info-row dt{color:var(--rose-dark);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.info-row dd{margin:0}.info-card-footer{padding:1.25rem 2rem 1.6rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.info-card-actions{display:flex;flex-direction:column;gap:.5rem;flex:1;min-width:200px}.info-card-actions .btn{width:100%;font-size:.82rem;padding:.65rem 1rem}.qr-thumb{width:82px;height:82px;border-radius:16px;border:1px solid rgba(255,95,143,.18)}.gallery-grid{column-count:2;column-gap:1rem}@media(min-width:720px){.gallery-grid{column-count:3}}@media(min-width:1080px){.gallery-grid{column-count:4}}.gallery-grid .reveal,.gallery-grid .gallery-cell{break-inside:avoid;margin-bottom:1rem}.gallery-item{width:100%;border:0;padding:0;display:block;cursor:zoom-in;border-radius:24px;overflow:hidden;background:var(--white);box-shadow:var(--shadow-sm);transition:transform .28s,box-shadow .28s;text-align:left}.gallery-item:hover,.gallery-item:focus-visible{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.gallery-figure{position:relative;margin:0;overflow:hidden}.gallery-item img{display:block;width:100%;height:auto;vertical-align:middle;transition:transform .5s ease}@media(hover:hover){.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.06)}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#32222bd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:scaleIn .25s ease-out}.lightbox img{max-width:92vw;max-height:90vh;border-radius:24px;box-shadow:var(--shadow-lg)}.lightbox-close{position:absolute;top:1.2rem;right:1.2rem;width:44px;height:44px;border-radius:999px;border:0;background:var(--white);color:var(--rose-dark);font-size:1.5rem;cursor:pointer}.rsvp-section .section-title{color:var(--rose-dark)}.form-card{max-width:620px;margin:0 auto;padding:2rem;display:flex;flex-direction:column;gap:1.1rem}.field,.form-card label{display:flex;flex-direction:column;gap:.45rem;color:var(--ink);font-size:.92rem;font-weight:800}.form-card input,.form-card select,.form-card textarea{width:100%;font:inherit;color:var(--ink);background:var(--white);border:2px solid rgba(255,95,143,.16);border-radius:18px;padding:.85rem 1rem;transition:border-color .2s,box-shadow .2s,transform .2s}.form-card select{padding-right:2.75rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23e73570' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:.75rem}.form-card textarea{resize:vertical}.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 5px #ff5f8f1f}.choice-fieldset{border:0;margin:0;padding:0}.choice-fieldset legend{margin-bottom:.65rem;font-weight:900;color:var(--ink)}.choice-grid{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr))}.choice-card{position:relative;cursor:pointer;padding:1rem;border-radius:22px;border:2px solid rgba(255,95,143,.16);background:var(--white);align-items:center;text-align:center;transition:transform .2s,border-color .2s,background .2s}.choice-card input{position:absolute;opacity:0;pointer-events:none}.choice-card:has(input:checked){border-color:var(--rose);background:linear-gradient(180deg,#fff,var(--rose-pale, #fff0f4));transform:translateY(-2px)}.choice-icon{width:36px;height:36px;display:grid;place-items:center;margin:0 auto .4rem;border-radius:999px;color:var(--white);background:linear-gradient(135deg,var(--rose),var(--peach));font-weight:900}.sad-note{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border-radius:20px;background:linear-gradient(135deg,#fff7dc,#fff2e9);border:1px solid rgba(229,173,34,.25)}.sad-note strong{color:var(--rose-dark)}.sad-note span{color:var(--muted);font-size:.92rem}.form-collapse{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .45s cubic-bezier(.2,.8,.2,1),opacity .35s}.form-collapse.is-open{grid-template-rows:1fr;opacity:1}.form-collapse-inner{min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:1.1rem}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:.85rem 1.6rem;font:inherit;font-weight:900;cursor:pointer;text-decoration:none;transition:transform .2s,box-shadow .25s,filter .2s}.btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.03)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{color:var(--white);background-size:200% auto;background-image:linear-gradient(135deg,var(--rose),var(--peach),var(--rose));box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-position:right center;box-shadow:var(--shadow-lg)}.btn-outline{color:var(--mint-dark);background:var(--white);border:2px solid var(--mint)}.form-msg{margin:0;padding:.75rem;border-radius:16px;text-align:center;font-size:.9rem;animation:bounceIn .45s ease-out}.form-msg.ok{color:var(--mint-dark);background:#62e6c92e}.form-msg.err{color:var(--rose-dark);background:#ff5f8f1f}.wishes-form-wrap{position:relative;max-width:620px;margin:0 auto;padding:clamp(2.5rem,8vw,4rem)}.wishes-form-flower{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none;z-index:0}.wishes-form-wrap .wishes-form{position:relative;z-index:1;margin:0}.wishes-list{max-width:760px;margin:3rem auto 0}.wishes-list-title{margin:0 0 1.25rem;text-align:center;font-family:var(--font-display);font-size:2rem;color:var(--rose-dark)}.wishes-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.wish-line{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:.4rem;padding:.85rem 1rem 1rem;border-radius:16px;background:#fff7fb;border:1px solid rgba(255,95,143,.12)}.wish-line-top{display:flex;align-items:center;gap:.5rem;min-width:0;flex-wrap:wrap}.wish-line-time{margin-left:auto;font-size:.72rem;font-weight:500;color:var(--muted);white-space:nowrap}.wish-emoji{flex-shrink:0;font-size:1.25rem;line-height:1}.wish-line-name{min-width:0;font-size:.9rem;color:var(--rose-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wish-line-msg{position:relative;margin:.25rem 0 0;padding:1rem 2.5rem 1.25rem;border:0;font-size:.9rem;font-style:italic;color:var(--ink);line-height:1.55;white-space:pre-wrap;word-break:break-word}.wish-line-msg:before,.wish-line-msg:after{content:'"';font-family:Playfair Display,serif;font-style:italic;position:absolute;font-size:4rem;color:var(--primary-color);line-height:0;opacity:.35;pointer-events:none}.wish-line-msg:before{top:1rem;left:0}.wish-line-msg:after{bottom:-.5rem;right:10px}.muted{color:var(--muted);text-align:center}.site-footer{padding:2.5rem 2rem;text-align:center;color:var(--muted)}.site-footer span{display:inline-block;color:var(--rose);animation:pulseHeart 2s ease-in-out infinite;margin-right:8px}@keyframes fadeInUp{0%{opacity:0;transform:translate3d(0,28px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes pulseHeart{0%,to{transform:scale(1)}18%{transform:scale(1.18)}36%{transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.92)}70%{opacity:1;transform:scale(1.03)}to{transform:scale(1)}}.reveal{opacity:0;transition:opacity .7s cubic-bezier(.21,.78,.36,1),transform .7s cubic-bezier(.21,.78,.36,1);will-change:opacity,transform}.reveal-up{transform:translate3d(0,34px,0)}.reveal-left{transform:translate3d(-42px,0,0)}.reveal-right{transform:translate3d(42px,0,0)}.reveal-scale{transform:scale(.94)}.reveal-fade{transform:none}.reveal.is-visible{opacity:1;transform:translateZ(0) scale(1)}.hero-inner>*{animation:fadeInUp .85s cubic-bezier(.21,.78,.36,1) both}.hero-inner>*:nth-child(1){animation-delay:.05s}.hero-inner>*:nth-child(2){animation-delay:.16s}.hero-inner>*:nth-child(3){animation-delay:.27s}.hero-inner>*:nth-child(4){animation-delay:.38s}.hero-inner>*:nth-child(5){animation-delay:.49s}.hero-inner>*:nth-child(6){animation-delay:.6s}@media(max-width:640px){.container{padding:0 1.2rem}.section{padding:4.5rem 0}.section-flower{margin:-1.75rem 0}.section-flower--2{padding-left:1.5rem}.section-flower--4{padding-right:1.5rem}.section-flower--5{margin:-2.5rem 0}.section-flower--6{margin:-4rem 0}.hero-section{padding:5rem 1rem 4rem}.hero-inner{padding:2rem 1.2rem;border-radius:28px}.hero-names{flex-direction:column;gap:0}.hero-amp{margin:-.15em 0}.countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid{grid-template-columns:1fr}.form-card{padding:1.35rem;border-radius:24px}.info-row{grid-template-columns:1fr;gap:.2rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1!important;transform:none!important}}.opening-gate{--opening-seal-size: clamp(11rem, 42vmin, 18.75rem);--opening-seal-x: .84;position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;z-index:500;display:grid;place-items:center;background:#5d0e10}.opening-gate-curtain{position:absolute;top:0;bottom:0;width:50%;background-color:#5d0e10;transition:transform .85s cubic-bezier(.65,.05,.36,1);z-index:1}.opening-gate-curtain--left{left:0;transform-origin:left center;overflow:visible;z-index:3}.opening-gate-curtain--right{right:0;transform-origin:right center;overflow:hidden}.opening-curtain-img{position:absolute;display:block;pointer-events:none;max-width:none}.opening-gate-curtain--left .opening-curtain-img{top:50%;left:100%;height:100%;width:auto;transform:translate(calc(-100% * var(--opening-seal-x)),-50%)}@media(min-width:1200px){.opening-gate-curtain--left .opening-curtain-img{top:0;left:0;height:100%;width:calc(100% / var(--opening-seal-x));transform:none;object-fit:cover;object-position:left center}}@media(min-width:900px){.opening-gate-curtain--left .opening-curtain-img{top:0;left:0;height:100%;width:calc(100% / var(--opening-seal-x));transform:none;object-fit:cover;object-position:left center}}.opening-gate-curtain--right .opening-curtain-img{top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:left center}.opening-gate--closing{background:transparent;pointer-events:none}.opening-gate--closing .opening-gate-curtain--left{transform:translate(-100%)}.opening-gate--closing .opening-gate-curtain--right{transform:translate(100%)}.opening-gate--closing .opening-gate-content{opacity:0;transform:translate(-50%) scale(.96)}.opening-gate--closing .opening-btn,.opening-gate--closing .opening-gate-pointer{opacity:0;pointer-events:none}.opening-gate-content{position:absolute;z-index:9;left:50%;transform:translate(-50%);width:min(100%,24rem);text-align:center;padding:0 1.5rem;pointer-events:none;transition:opacity .5s,transform .5s}.opening-gate-content--top{top:clamp(1.5rem,8vh,3.5rem)}.opening-gate-content--bottom{bottom:clamp(1.25rem,6vh,2.5rem)}.opening-invite{margin:0 auto .75rem;max-width:22rem;font-family:var(--font-display);font-size:clamp(1.15rem,4.5vw,1.55rem);font-style:italic;line-height:1.45;color:var(--rose-dark)}.opening-invite-prefix{font-weight:700;color:#fff}.opening-invite-guest{font-weight:600;text-transform:capitalize}.invite-guest-welcome{color:#fff;font-weight:600;text-transform:capitalize;font-size:1.75rem}.opening-invite-suffix{font-weight:600}.opening-eyebrow{margin:0;font-size:.8rem;letter-spacing:.28em;text-transform:uppercase;font-weight:800;color:var(--rose-dark)}.opening-names{margin:.5rem 0;font-size:clamp(2.5rem,10vw,4rem);color:var(--rose-dark)}.opening-names .couple-amp{color:var(--butter-dark);font-family:var(--font-display);font-style:italic}.opening-btn{position:absolute;left:50%;top:50%;z-index:10;width:var(--opening-seal-size);height:var(--opening-seal-size);margin:0;padding:0;border:0;border-radius:50%;transform:translate(-50%,-50%);background:transparent;cursor:pointer;transition:opacity .5s;-webkit-tap-highlight-color:transparent}.opening-gate-pointer{position:absolute;left:50%;top:calc(50% + var(--opening-seal-size) / 2 + .35rem);z-index:10;width:clamp(2.75rem,9vmin,4.25rem);height:auto;transform:translate(-50%);pointer-events:none;filter:drop-shadow(0 4px 10px rgba(50,34,43,.25));animation:openingPointerBounce 1.4s ease-in-out infinite;transition:opacity .5s}@keyframes openingPointerBounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(8px)}}.opening-btn:focus-visible{outline:2px solid var(--rose);outline-offset:4px}.music-fab{position:fixed;right:1.25rem;bottom:1.25rem;z-index:90;width:52px;height:52px;border:0;border-radius:50%;color:var(--white);background:linear-gradient(135deg,var(--rose),var(--peach));box-shadow:var(--shadow-lg);cursor:pointer}.music-fab.is-playing .music-fab-ring{animation:pulse 1.5s ease-out infinite}.music-fab-ring{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;border:2px solid rgba(255,95,143,.45);pointer-events:none}.petals-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:40;overflow:hidden}.petal{position:absolute;top:-20px;border-radius:50% 0;opacity:.75;animation:petalFall linear infinite}.petal--0{background:#ffb48a}.petal--1{background:#ff5f8f}.petal--2{background:#ffe58a}@keyframes petalFall{0%{transform:translateY(-10px) rotate(0);opacity:0}10%{opacity:.85}to{transform:translateY(110vh) rotate(360deg);opacity:0}}body.custom-cursor-on,body.custom-cursor-on *{cursor:none!important}.custom-cursor{position:fixed;top:0;left:0;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--rose);border:2px solid var(--white);box-shadow:0 0 0 4px #ff5f8f40;pointer-events:none;z-index:9999;opacity:0;transition:opacity .15s}.custom-cursor.is-visible{opacity:1}.nav-links a.is-active{color:var(--rose-dark)}.nav-links a.is-active:after{left:18%;width:64%}.countdown-cell--urgent{animation:urgentPulse 2s ease-in-out infinite;border:2px solid rgba(255,95,143,.45);background:linear-gradient(180deg,#fff,#fff0f4)}.countdown-urgent{text-align:center;margin:0 0 1rem;color:var(--rose-dark);font-weight:800;font-size:.9rem}.countdown-block--done{background:linear-gradient(135deg,#fff7dc,#e8fff9)}@keyframes urgentPulse{0%,to{box-shadow:var(--shadow-sm)}50%{box-shadow:0 0 0 6px #ff5f8f33}}.confetti-canvas{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:300}.story-reel{max-width:360px;margin:0 auto 3rem;text-align:center}.story-reel-label{margin:0 0 .75rem;font-family:var(--font-display);font-size:1.5rem;color:var(--rose-dark)}.story-reel-frame{border-radius:28px;overflow:hidden;box-shadow:var(--shadow-lg);border:4px solid var(--white);background:#000}.story-reel-video{width:100%;aspect-ratio:9 / 16;max-height:70vh;object-fit:cover;display:block}.map-embed{margin-top:1rem;border-radius:18px;overflow:hidden;border:1px solid rgba(255,95,143,.15)}.map-embed iframe{width:100%;height:220px;border:0;display:block}.info-grid--spaced{margin-top:2.5rem}.gallery-wrap{max-width:1400px;margin:0 auto;padding:0 1.5rem;margin-top:2.5rem}.gallery-more{display:flex;justify-content:center;margin-top:2rem}.lightbox-figure{margin:0;text-align:center;touch-action:pan-y pinch-zoom}.lightbox-figure img{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:0;border-radius:50%;background:#ffffffeb;color:var(--rose-dark);font-size:2rem;line-height:1;cursor:pointer;z-index:2}.lightbox-nav--prev{left:1rem}.lightbox-nav--next{right:1rem}.invite-section{padding:2.5rem 0 3rem}.invite-section-guest,.invite-section-suffix{font-weight:600;text-transform:capitalize}.invite-section-subtitle{margin-top:.5rem;font-size:1.25rem;text-align:center;color:var(--rose-dark);font-weight:600}.invite-section-title{margin-bottom:0}.vn-wedding-card{max-width:26rem;margin:0 auto}.vn-wedding-card__frame{position:relative;padding:clamp(1.75rem,5vw,2.5rem) clamp(1.25rem,4vw,2rem);color:var(--ink);text-align:center;background:radial-gradient(circle at 50% 0%,rgba(255,180,138,.35),transparent 45%),radial-gradient(circle at 20% 100%,rgba(255,229,138,.28),transparent 40%),linear-gradient(180deg,var(--white) 0%,var(--peach-pale) 55%,#fff5f8 100%);border:2px solid var(--rose);outline:1px solid rgba(255,95,143,.35);outline-offset:6px;box-shadow:var(--shadow-lg)}.vn-wedding-card__corner{position:absolute;width:2.75rem;height:2.75rem;border:2px solid var(--rose);opacity:.75}.vn-wedding-card__corner--tl{top:.65rem;left:.65rem;border-right:0;border-bottom:0}.vn-wedding-card__corner--tr{top:.65rem;right:.65rem;border-left:0;border-bottom:0}.vn-wedding-card__corner--bl{bottom:.65rem;left:.65rem;border-right:0;border-top:0}.vn-wedding-card__corner--br{bottom:.65rem;right:.65rem;border-left:0;border-top:0}.vn-wedding-card__honorific{margin:0;font-family:var(--font-display);font-size:clamp(1.15rem,4vw,1.45rem);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rose-dark)}.vn-wedding-card__invitee{margin:.65rem 0 0;font-family:var(--font-display);font-size:clamp(1.35rem,4.5vw,1.75rem);font-weight:700;font-style:italic;color:var(--rose-dark);text-transform:capitalize}.vn-wedding-card__intro{margin:.5rem 0 0;font-size:.92rem;line-height:1.55;color:var(--muted)}.vn-wedding-card__double-happiness{margin:1.1rem auto 1rem;width:fit-content;padding:.35rem .85rem;font-family:var(--font-display);font-size:clamp(2.4rem,10vw,3.2rem);font-weight:700;line-height:1;color:var(--rose-dark);border:1px solid rgba(255,95,143,.45);background:#fff0f4d9}.vn-wedding-card__couple{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;margin-bottom:1rem}.vn-wedding-card__person{display:flex;flex-direction:column;gap:.25rem}.vn-wedding-card__role{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rose)}.vn-wedding-card__name{font-family:var(--font-couple);font-size:clamp(1rem,3.5vw,1.25rem);font-weight:400;line-height:1.35;color:var(--rose-dark)}.vn-wedding-card__divider{width:1px;height:3.25rem;background:linear-gradient(180deg,transparent,var(--rose),transparent)}.vn-wedding-card__dear,.vn-wedding-card__ceremony-intro{margin:0;font-size:.88rem;line-height:1.6;color:var(--ink)}.vn-wedding-card__ceremony-intro{margin-top:.35rem;margin-bottom:1.1rem;font-style:italic;color:var(--muted)}.vn-wedding-card__footer p{margin:0;font-size:.84rem;line-height:1.65;color:var(--ink)}.vn-wedding-card__thanks{margin-top:.45rem!important;font-family:var(--font-display);font-size:.98rem!important;font-style:italic;color:var(--rose-dark)!important}.vn-wedding-card__share{margin-top:1.1rem}.vn-share-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;display:grid;place-items:center;padding:1.25rem;background:#32222b73;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.vn-share-modal__panel{width:min(100%,22rem);margin:0;text-align:left}.vn-share-modal__title{margin:0 0 1rem;font-family:var(--font-display);font-size:1.45rem;color:var(--rose-dark);text-align:center}.vn-share-modal__actions{display:flex;gap:.65rem;justify-content:flex-end;margin-top:.5rem}@media(max-width:480px){.vn-wedding-card__couple{grid-template-columns:1fr;gap:.65rem}.vn-wedding-card__divider{width:4rem;height:1px;margin:0 auto;background:linear-gradient(90deg,transparent,var(--rose),transparent)}}.share-section{padding:2.5rem 0 3.5rem}.share-section .section-title{margin-bottom:1.25rem}.share-card{max-width:520px;margin:0 auto;padding:1.35rem 1.5rem;border-radius:24px;background:var(--white);box-shadow:var(--shadow-sm);border:1px solid rgba(255,95,143,.12);text-align:center}.share-card-preview{display:flex;align-items:center;gap:1rem;text-align:left;margin-bottom:.85rem}.share-card-preview strong{display:block;color:var(--rose-dark);font-weight:400}.share-card-preview .couple-names{font-size:1.05rem}.share-card-preview span{font-size:.82rem;color:var(--muted)}.share-card-text{margin:0 0 1rem;font-size:.9rem;color:var(--muted)}@media(max-width:768px){.gallery-wrap{padding:0 1.25rem}}@media(max-width:640px){.lightbox-nav{display:none}.nav-logo{font-size:1.1rem}.wish-line-msg{padding:.5rem 2rem .25rem}.wish-line-msg:before,.wish-line-msg:after{font-size:4.5rem}}.admin-page{min-height:100dvh;padding:2rem 1.25rem 4rem;background:var(--page-bg)}.admin-login{max-width:22rem;margin:4rem auto 0}.admin-login h1,.admin-header h1{margin:0 0 .5rem;font-family:var(--font-display);color:var(--rose-dark)}.admin-header{max-width:1100px;margin:0 auto 2rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.admin-header p{margin:0;color:var(--muted)}.admin-header-actions{display:flex;gap:.65rem}.admin-section{max-width:1100px;margin:0 auto 2.5rem}.admin-section h2{margin:0 0 1rem;font-family:var(--font-display);color:var(--rose-dark)}.admin-table-wrap{overflow-x:auto;border-radius:18px;background:var(--white);box-shadow:var(--shadow-sm);border:1px solid rgba(255,95,143,.12)}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid rgba(255,95,143,.1);vertical-align:top}.admin-table th{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:#fff0f499}.admin-wishes{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.admin-wish{padding:1rem 1.1rem;border-radius:18px;background:var(--white);border:1px solid rgba(255,95,143,.12);box-shadow:var(--shadow-sm)}.admin-wish-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem 1rem;margin-bottom:.5rem}.admin-wish-head span{color:var(--muted);font-size:.82rem}.admin-wish p{margin:0 0 .85rem;white-space:pre-wrap;line-height:1.55}.admin-delete{font-size:.82rem;padding:.45rem .9rem}.admin-error{max-width:1100px;margin:0 auto 1rem;color:var(--rose-dark);font-weight:600}.admin-muted{max-width:1100px;margin:0 auto 1rem;color:var(--muted)}
