:root{--red-900:#6f1820;--red-800:#7d1e25;--red-700:#922d35;--ivory:#fffaf1;--ivory-deep:#f5eddf;--champagne:#d8bd8c;--champagne-soft:#eee0c8;--blush:#d9a4a5;--blush-soft:#f2dddc;--sage:#99a58f;--sage-soft:#dfe4d9;--gold:#c4a062;--ink:#312628;--ink-muted:#75696b;--white:#fff;--line:rgba(74,44,47,.16);--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",system-ui,sans-serif;--chinese:"Noto Serif SC",serif;--shell:min(1180px,calc(100vw - 48px));--radius-sm:14px;--radius-md:24px;--radius-lg:40px;--shadow:0 24px 80px rgba(80,42,45,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ivory);color:var(--ink);font-family:var(--sans);line-height:1.6;margin:0}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:.98}h1{font-size:clamp(4.4rem,8vw,7.8rem);letter-spacing:-.05em}h2{font-size:clamp(3.2rem,6vw,5.3rem);letter-spacing:-.04em}h3{font-size:2rem;letter-spacing:-.02em}p{color:var(--ink-muted)}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.shell{margin-inline:auto;width:var(--shell)}.section{padding:120px 0}.eyebrow{color:var(--red-800);font-size:.75rem;font-weight:600;letter-spacing:.16em;margin-bottom:18px;text-transform:uppercase}.button{align-items:center;background:var(--red-800);border:1px solid var(--red-800);border-radius:999px;color:#fff;cursor:pointer;display:inline-flex;font-weight:600;justify-content:center;min-height:52px;padding:0 24px;text-decoration:none;transition:transform .25s ease,background .25s ease,color .25s ease}.button:hover{background:var(--red-900);transform:translateY(-2px)}.button-small{min-height:42px;padding-inline:18px}.language-switcher{background:rgba(255,250,241,.9);border:1px solid var(--line);border-radius:999px;box-shadow:0 5px 18px rgba(80,42,45,.06);display:inline-flex;flex:0 0 auto;gap:3px;padding:4px}.language-switcher a,.language-switcher button{background:transparent;border:0;border-radius:999px;color:var(--ink-muted);cursor:pointer;display:inline-grid;font-size:.68rem;font-weight:700;height:32px;line-height:1;min-width:40px;padding:0 9px;place-items:center;text-decoration:none;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.language-switcher a:hover,.language-switcher button:hover{color:var(--red-800)}.language-switcher a.is-active,.language-switcher button.is-active{background:var(--red-800);box-shadow:0 4px 12px rgba(125,30,37,.18);color:#fff}.language-switcher a:focus-visible,.language-switcher button:focus-visible{outline:2px solid var(--red-800);outline-offset:2px}.button-secondary{background:transparent;color:var(--red-800)}.button-ghost{background:transparent;border-color:var(--line);color:var(--ink)}.button-light{background:var(--ivory);border-color:var(--ivory);color:var(--red-800)}.text-button{align-items:center;background:none;border:0;color:var(--red-800);cursor:pointer;display:inline-flex;font-weight:600;gap:8px;padding:0;text-decoration:none}.text-button:disabled{cursor:default;opacity:.45}.site-header{backdrop-filter:blur(16px);border-bottom:1px solid rgba(111,24,32,.08);left:0;position:fixed;right:0;top:0;z-index:100}.nav-shell{display:flex;justify-content:space-between;min-height:78px}.brand,.nav-shell{align-items:center}.brand{color:var(--red-800);display:inline-flex;font-family:var(--serif);font-size:1.35rem;font-weight:700;gap:10px;text-decoration:none}.brand-mark{font-family:var(--chinese);font-size:1.45rem}.site-nav{align-items:center;display:flex;gap:28px}.site-nav>a:not(.button){color:var(--ink);font-size:.9rem;text-decoration:none}.hero{background:radial-gradient(circle at 18% 35%,rgba(217,164,165,.28),transparent 28%),radial-gradient(circle at 82% 55%,hsla(39,49%,70%,.3),transparent 26%),var(--ivory);overflow:hidden;padding:150px 0 60px;position:relative}.hero-video{display:block;max-height:70svh;object-fit:contain;width:100%}.invitation-gate.invitation-video-gate{background:#fff;gap:16px;grid-template-rows:minmax(0,1fr) auto;height:100dvh;padding:max(16px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));transition:opacity .3s ease}.invitation-video-gate:before{display:none}.invitation-video{height:100%;max-width:1000px;min-height:0;object-fit:contain;width:100%}.invitation-video-gate .invitation-enter{background:#356685;border:0;box-shadow:none;color:#fff;grid-row:2;min-width:180px;outline:none}.invitation-video-gate .invitation-enter:hover{background:#254d68}.invitation-video-gate .invitation-enter[hidden]{pointer-events:none;visibility:hidden}.invitation-video-gate .invitation-enter:not([hidden]){animation:invitation-button-invite 2.6s ease-in-out .6s infinite}.invitation-video-gate .invitation-enter.is-visible{animation:invitation-button-fade .6s ease both,invitation-button-invite 2.6s ease-in-out .6s infinite}@keyframes invitation-button-fade{0%{opacity:0}to{opacity:1}}@keyframes invitation-button-invite{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.035)}}@media (prefers-reduced-motion:reduce){.invitation-video-gate .invitation-enter.is-visible,.invitation-video-gate .invitation-enter:not([hidden]){animation:none}}.invitation-video-gate .invitation-enter:focus-visible{outline:2px solid #fff;outline-offset:-5px}.invitation-video-gate.is-opening{opacity:0;pointer-events:none}.tap-spark{animation:tap-spark-burst .65s cubic-bezier(.16,.8,.3,1) forwards;background:var(--spark-colour);border-radius:70% 10% 70% 10%;height:10px;width:7px;z-index:2000}.tap-monogram,.tap-spark{pointer-events:none;position:fixed;transform:translate(-50%,-50%)}.tap-monogram{animation:tap-monogram-bloom .8s cubic-bezier(.16,.8,.3,1) forwards;color:var(--red-800);font:700 1rem/1 var(--serif);letter-spacing:-.04em;text-shadow:0 1px 8px rgba(255,250,241,.9);white-space:nowrap;z-index:2001}@keyframes tap-spark-burst{0%{opacity:1;transform:translate(-50%,-50%) scale(.4) rotate(0deg)}75%{opacity:.9}to{opacity:0;transform:translate(calc(-50% + var(--spark-x)),calc(-50% + var(--spark-y))) scale(1) rotate(190deg)}}@keyframes tap-monogram-bloom{0%{opacity:0;transform:translate(-50%,-50%) scale(.45)}28%{opacity:1;transform:translate(-50%,-58%) scale(1.08)}72%{opacity:1;transform:translate(-50%,-72%) scale(1)}to{opacity:0;transform:translate(-50%,-95%) scale(.9)}}.countdown-wrap{border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr)}.countdown-wrap>div{border-right:1px solid var(--line);padding:22px 20px;text-align:center}.countdown-wrap>div:last-child{border-right:0}.countdown-wrap strong{color:var(--red-800);display:block;font:600 2rem/1 var(--serif);transition:color .25s ease,transform .25s ease}.countdown-wrap>div:hover strong{color:var(--gold);transform:translateY(-3px) scale(1.08)}.countdown-wrap span{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.culture-band{background:var(--red-800);color:var(--ivory);overflow:hidden;padding:clamp(64px,8vw,120px) 0;position:relative}.culture-band:after,.culture-band:before{aspect-ratio:1;border:1px solid hsla(39,49%,70%,.12);content:"";pointer-events:none;position:absolute;transform:rotate(45deg);width:360px}.culture-band:before{left:-180px;top:-260px}.culture-band:after{bottom:-260px;right:-180px}.culture-grid{align-items:stretch;display:grid;max-width:980px;position:relative}.culture-grid>div{display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,4vw,52px)}.culture-center{background:rgba(82,13,20,.28);border:1px solid hsla(39,49%,70%,.26);border-radius:calc(var(--radius-md) + 8px);min-height:0;position:relative;text-align:center}.culture-center:after{animation:invitation-shimmer 7s ease-in-out infinite;background:linear-gradient(90deg,transparent,rgba(255,250,241,.12),transparent);content:"";inset:-50% auto -50% -35%;pointer-events:none;position:absolute;transform:rotate(18deg);width:18%}@keyframes invitation-shimmer{0%,62%{left:-35%}to{left:125%}}.culture-center .eyebrow{color:var(--champagne)}.culture-center h2{color:var(--ivory);font-size:clamp(2.4rem,4.8vw,3.5rem);line-height:1.02;margin:0 auto;max-width:780px;overflow-wrap:anywhere}.culture-center h2 span{display:block;white-space:pre-line}.culture-center h2 span+span{border-top:1px solid hsla(39,49%,70%,.28);color:var(--champagne-soft);font-size:.62em;line-height:1.18;margin:clamp(24px,3vw,38px) auto 0;max-width:680px;padding-top:clamp(22px,3vw,34px)}.culture-center .cms-text-small{display:block;font:inherit;font-size:.52em;line-height:1.25;margin:.3em 0}.section-heading{margin-bottom:64px;max-width:80%}.section-heading h2{margin-bottom:22px}.section-heading>p:last-child{max-width:560px}.venue-actions{display:flex;flex-shrink:0;gap:10px}.play-section{background:linear-gradient(90deg,transparent 49.92%,rgba(125,30,37,.07) 50%,transparent 50.08%)}.quiz-card{background:var(--red-800);border-radius:var(--radius-lg);box-shadow:var(--shadow);color:var(--ivory);margin:0 auto 26px;max-width:860px;padding:48px}.quiz-top{display:flex;font-size:.75rem;justify-content:space-between;letter-spacing:.12em;margin-bottom:36px;opacity:.72;text-transform:uppercase}.quiz-card h3{font-size:clamp(2.2rem,5vw,4rem);max-width:685px}.quiz-options{display:flex;gap:12px;margin-top:32px}.quiz-options button{background:transparent;border:1px solid hsla(0,0%,100%,.35);border-radius:999px;color:#fff;cursor:pointer;flex:1;min-height:54px}.quiz-options button:hover{background:hsla(0,0%,100%,.1)}.quiz-feedback{color:var(--red-900);font-weight:600;margin:18px 0 0;min-height:24px}.activity-grid{display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}.activity-grid-centered{grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:auto;max-width:calc(66.66667% - 6px);width:100%}.activity-card{background:rgba(255,250,241,.82);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;min-height:270px;padding:30px;position:relative;transition:border-color .3s ease,box-shadow .3s ease,transform .3s cubic-bezier(.22,1,.36,1)}.activity-card .text-button:after{border-radius:var(--radius-md);content:"";inset:0;position:absolute;z-index:2}.activity-card:focus-within{outline:3px solid rgba(125,30,37,.32);outline-offset:4px}.activity-card:hover{border-color:rgba(125,30,37,.28);box-shadow:0 18px 42px rgba(91,29,34,.1);transform:translateY(-7px) rotate(-.35deg)}.activity-card:nth-child(2n):hover{transform:translateY(-7px) rotate(.35deg)}.activity-card>span{color:var(--gold);font-size:.75rem;letter-spacing:.12em}.activity-card h3{margin-bottom:14px;margin-top:52px}.activity-card p{font-size:.94rem;min-height:76px}.split-heading{align-items:end;display:flex;gap:60px;justify-content:space-between;max-width:none}.split-heading>p{max-width:420px}.rsvp-section{background:var(--blush-soft)}.rsvp-grid{align-items:start;display:grid;gap:80px;grid-template-columns:.8fr 1.2fr}.rsvp-copy{position:sticky;top:120px}.rsvp-note{border-left:2px solid var(--red-800);display:flex;gap:18px;margin-top:42px;padding:20px}.rsvp-note span{color:var(--red-800);font:600 2rem/1 var(--chinese)}.rsvp-note p{font-size:.92rem;margin:0}.rsvp-form{background:rgba(255,250,241,.78);border:1px solid rgba(125,30,37,.1);border-radius:var(--radius-lg);display:grid;gap:20px;grid-template-columns:repeat(2,1fr);padding:38px}.rsvp-form label{display:grid;gap:8px}.rsvp-form label>span{font-size:.78rem;font-weight:600;letter-spacing:.04em}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{background:var(--ivory);border:1px solid rgba(75,45,48,.18);border-radius:14px;color:var(--ink);outline:none;width:100%}.rsvp-form input,.rsvp-form select{height:52px;padding:0 15px}.rsvp-form textarea{padding:14px 15px;resize:vertical}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{border-color:var(--red-800);box-shadow:0 0 0 3px rgba(125,30,37,.08)}.form-wide{grid-column:1/-1}.form-submit{align-items:center;display:flex;gap:18px;margin-top:6px}.form-status{font-size:.9rem;margin:0}.form-status.is-error{color:#a02029}.form-status.is-success{color:#3d6a4d}.wishes-section{background:var(--red-800);color:var(--ivory);overflow:hidden;position:relative}.wishes-section:before{color:rgba(255,250,241,.045);content:"囍";font:600 clamp(16rem,35vw,34rem)/1 var(--chinese);pointer-events:none;position:absolute;right:3%;top:-90px}.wishes-heading{display:grid;gap:30px;grid-template-columns:1fr 1fr;margin-bottom:52px;position:relative;z-index:1}.wishes-heading .eyebrow{color:var(--champagne)}.wishes-heading>p{color:rgba(255,250,241,.68);margin:0 0 8px}.wishes-slider{position:relative;z-index:1}.wishes-viewport{border-radius:28px;overflow:hidden}.wishes-track{display:flex;transition:transform .7s cubic-bezier(.22,1,.36,1);will-change:transform}.wishes-slide{display:grid;gap:16px;grid-template-columns:1.15fr 1fr 1fr;grid-template-rows:repeat(2,minmax(190px,auto));min-width:100%}.wish-card{backdrop-filter:blur(8px);background:rgba(255,250,241,.075);border:1px solid rgba(255,250,241,.14);border-radius:22px;display:flex;flex-direction:column;justify-content:space-between;min-width:0;overflow:hidden;padding:24px}.wishes-slide .wish-card:first-child{grid-row:1/3;padding:34px}.wish-card-featured{background:var(--champagne-soft);color:var(--ink)}.wish-mark{color:var(--champagne);font:600 4.4rem/.9 var(--serif);height:40px}.wish-card-featured .wish-mark{color:var(--red-800)}.wish-card blockquote{display:block;font:500 clamp(1.05rem,1.55vw,1.35rem)/1.5 var(--serif);margin:8px 0 20px;overflow-wrap:anywhere;white-space:pre-line}.wishes-slide .wish-card:first-child blockquote{font-size:clamp(1.55rem,2.5vw,2.25rem);margin:24px 0 34px}.wish-card footer{align-items:center;display:flex;gap:11px}.wish-avatar{background:var(--champagne);border-radius:50%;color:var(--red-900);display:grid;flex:0 0 auto;font:700 1.1rem/1 var(--serif);height:40px;place-items:center;width:40px}.wish-card footer div{display:grid}.wish-card footer strong{font-size:.82rem}.wish-card footer small{color:rgba(255,250,241,.55);font-size:.67rem}.wish-card-featured footer small{color:var(--ink-muted)}.wishes-controls{align-items:center;display:grid;gap:22px;grid-template-columns:1fr auto auto;margin-top:26px}.wishes-progress{background:rgba(255,250,241,.16);height:2px;overflow:hidden}.wishes-progress span{background:var(--champagne);display:block;height:100%;transition:width .55s ease;width:0}.wishes-controls p{color:rgba(255,250,241,.48);font-size:.74rem;letter-spacing:.12em;margin:0}.wishes-controls p strong{color:var(--ivory);font:600 1.5rem/1 var(--serif)}.wishes-arrows{display:flex;gap:8px}.wishes-arrows button{background:transparent;border:1px solid rgba(255,250,241,.22);border-radius:50%;color:var(--ivory);cursor:pointer;display:grid;font-size:1.15rem;height:46px;place-items:center;transition:.2s ease;width:46px}.wishes-arrows button:hover{background:var(--champagne);border-color:var(--champagne);color:var(--red-900);transform:translateY(-2px)}.wishes-arrows button:focus-visible{outline:2px solid var(--champagne);outline-offset:3px}.wishes-empty{background:rgba(255,250,241,.06);border:1px solid rgba(255,250,241,.14);border-radius:28px;padding:64px 30px;position:relative;text-align:center;z-index:1}.wishes-empty>span{color:var(--champagne);font:600 3rem/1 var(--chinese)}.wishes-empty h3{margin:14px 0 8px}.wishes-empty p{color:rgba(255,250,241,.65)}.wishes-empty .button{border-color:var(--champagne);color:var(--ivory);margin-top:12px}.faq-grid{display:grid;gap:80px;grid-template-columns:.75fr 1.25fr}.faq-item{border-bottom:1px solid var(--line);transition:padding .25s ease}.faq-item:hover{padding-inline:8px}.faq-question{align-items:center;background:none;border:0;color:var(--ink);cursor:pointer;display:flex;gap:24px;justify-content:space-between;padding:26px 0;text-align:left;width:100%}.faq-question>span:first-child{font:600 1.5rem/1.25 var(--serif)}.faq-icon{color:var(--red-800);font-size:1.5rem;transition:transform .25s ease}.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}.faq-answer-content{min-height:0;overflow:hidden}.faq-answer-content>p{margin:0}.faq-item.is-open .faq-answer-content{padding-bottom:24px}.faq-image-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.faq-answer-content .faq-image-grid{margin-top:16px}.faq-image-grid img{border-radius:12px;display:block;height:auto;width:100%}.faq-image-grid a:focus-visible{outline:3px solid var(--red-800);outline-offset:3px}@media (max-width:767px){.faq-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.faq-section .faq-image-grid a{cursor:zoom-in}body.faq-gallery-open{overflow:hidden}.faq-gallery{background:var(--ivory);border:0;border-radius:20px;color:var(--ink);max-height:calc(100dvh - 24px);overflow:auto;padding:60px 16px 16px;width:min(1000px,calc(100vw - 24px))}.faq-gallery::backdrop{background:rgba(15,20,25,.85)}.faq-gallery-image{height:min(65dvh,720px);object-fit:contain;touch-action:pan-y pinch-zoom;width:100%}.faq-gallery-controls{align-items:center;display:flex;gap:24px;justify-content:center;padding-top:16px}.faq-gallery button{background:var(--ivory);border:1px solid var(--line);border-radius:50%;color:var(--red-800);cursor:pointer;font-size:1.4rem;height:44px;width:44px}.faq-gallery button:disabled{cursor:default;opacity:.35}.faq-gallery button:focus-visible{outline:3px solid var(--red-800);outline-offset:3px}.faq-gallery-close{position:absolute;right:12px;top:10px;z-index:1}.faq-answer>p{margin:0;overflow:hidden}.faq-item.is-open .faq-answer{grid-template-rows:1fr}.faq-item.is-open .faq-answer>p{padding-bottom:24px}.faq-item.is-open .faq-icon{transform:rotate(45deg)}.closing{background:var(--red-800);color:var(--ivory);padding:120px 0;text-align:center}.closing-inner{max-width:760px}.closing-mark{display:block;font:600 5rem/1 var(--chinese);margin-bottom:24px}.closing .eyebrow,.closing-mark{color:var(--champagne)}.closing h2{margin-bottom:16px}.closing p{color:hsla(0,0%,100%,.72)}.closing .button{margin-top:24px}.status{background:var(--ivory-deep);border-radius:999px;font-size:.72rem;padding:5px 9px;text-transform:capitalize}.tentative-item{align-items:start;display:grid;grid-template-columns:160px 60px 1fr;padding:24px 0}.tentative-item time{color:var(--red-800);font:600 1.25rem/1 var(--serif);padding-top:8px}.tentative-dot{background:var(--red-800);border:4px solid var(--ivory-deep);border-radius:50%;box-shadow:0 0 0 1px var(--champagne);height:15px;margin-top:9px;width:15px;z-index:1}.tentative-item p{color:var(--ink-muted);margin:0}.tentative-empty{padding:35px;text-align:center}.tentative-item h3{transition:color .25s ease,transform .25s ease}.tentative-item:hover h3{color:var(--red-800);transform:translateX(5px)}.tentative-item.is-visible .tentative-dot{animation:timeline-dot-pulse .7s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--reveal-delay,0ms)}@keyframes timeline-dot-pulse{0%{box-shadow:0 0 0 0 rgba(125,30,37,.35);transform:scale(.2)}65%{box-shadow:0 0 0 12px rgba(125,30,37,0);transform:scale(1.25)}to{box-shadow:0 0 0 1px var(--champagne);transform:scale(1)}}.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease var(--reveal-delay,0ms),transform .75s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}.reveal.is-visible{opacity:1;transform:none}.fortune-dialog{border:0;border-radius:var(--radius-lg);box-shadow:var(--shadow);max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:50px;width:min(820px,calc(100vw - 28px))}.fortune-dialog,.thank-you-dialog{background:var(--ivory);color:var(--ink)}.thank-you-dialog{border:0;border-radius:34px;box-shadow:0 32px 100px rgba(31,22,24,.3);overflow:hidden;padding:56px 48px 46px;text-align:center;width:min(570px,calc(100vw - 28px))}.thank-you-dialog:before{background:linear-gradient(90deg,var(--red-800),var(--champagne),var(--red-800));content:"";height:7px;inset:0 0 auto;position:absolute}.thank-you-dialog::backdrop{backdrop-filter:blur(7px);background:rgba(31,22,24,.72)}.thank-you-dialog[open]{animation:thank-you-in .4s cubic-bezier(.22,1,.36,1)}.thank-you-mark{color:var(--red-800);display:block;font:600 4rem/1 var(--chinese);margin-bottom:18px}.thank-you-dialog .eyebrow{margin-bottom:12px}.thank-you-dialog h2{font-size:clamp(2.7rem,7vw,4.2rem);margin-bottom:18px}.thank-you-dialog h2 span{color:var(--red-800)}.thank-you-dialog>p:not(.eyebrow){margin-inline:auto;max-width:420px}.thank-you-dialog .button{margin-top:12px}@keyframes thank-you-in{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}.fortune-dialog::backdrop{backdrop-filter:blur(6px);background:rgba(31,22,24,.72)}.fortune-dialog.is-fallback-open{display:block;inset:50% auto auto 50%;max-height:calc(100vh - 28px);overflow-y:auto;position:fixed;transform:translate(-50%,-50%);z-index:1000}body.fortune-open:after{backdrop-filter:blur(6px);background:rgba(31,22,24,.72);content:"";inset:0;position:fixed;z-index:999}.dialog-close{background:transparent;border:1px solid var(--line);border-radius:50%;cursor:pointer;height:38px;position:absolute;right:18px;top:18px;width:38px}.fortune-dialog>.dialog-close{background:rgba(255,250,241,.96);box-shadow:0 5px 16px rgba(77,17,23,.16);color:var(--red-800);display:grid;font-size:1.35rem;line-height:1;place-items:center;z-index:20}.fortune-picker{text-align:center}.fortune-picker h2{font-size:clamp(3.2rem,8vw,5.2rem);margin-bottom:14px}.fortune-picker>p:not(.eyebrow){margin-inline:auto;max-width:520px}.fortune-packets{align-items:flex-end;display:flex;gap:clamp(14px,4vw,34px);justify-content:center;margin:42px 0 26px;perspective:1000px}.fortune-packet{aspect-ratio:.7;background:linear-gradient(145deg,#a82932,#72151d);border:0;border-radius:12px 12px 22px 22px;box-shadow:0 20px 35px rgba(77,17,23,.22);color:var(--champagne-soft);cursor:pointer;overflow:hidden;padding:0;position:relative;transition:transform .35s ease,opacity .35s ease,filter .35s ease;width:min(170px,26vw)}.fortune-packet:before{background:#8c2029;clip-path:polygon(0 0,100% 0,50% 100%);content:"";height:34%;inset:0 0 auto;position:absolute}.fortune-packet:after{border:1px solid hsla(39,49%,70%,.32);border-radius:7px 7px 16px 16px;content:"";inset:9px;position:absolute}.fortune-packet:nth-child(2){transform:translateY(-15px)}.fortune-packet:hover{transform:translateY(-12px) rotate(-2deg)}.fortune-packet:nth-child(2):hover{transform:translateY(-25px) rotate(2deg)}.fortune-packet span{display:block;font:600 clamp(3.2rem,7vw,5.3rem)/1 var(--chinese);margin-top:35%;position:relative;z-index:1}.fortune-packet small{color:rgba(255,250,241,.64);display:block;font-size:.65rem;letter-spacing:.16em;margin-top:17px;position:relative;text-transform:uppercase;z-index:1}.fortune-packet.is-opening{animation:packet-open .65s ease forwards}.fortune-packet.is-dimmed{filter:grayscale(.7);opacity:.25;transform:scale(.9)}.fortune-hint{color:var(--red-800)!important;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.fortune-result{animation:fortune-reveal .55s cubic-bezier(.22,1,.36,1);text-align:center}.fortune-result-card{background:linear-gradient(145deg,#68171e,#922d35);border-radius:28px;box-shadow:0 24px 55px rgba(77,17,23,.25);color:var(--ivory);margin:0 auto 24px;max-width:500px;overflow:hidden;padding:30px 38px 28px;position:relative}.fortune-result-card:after{border:1px solid hsla(39,49%,70%,.32);border-radius:20px;content:"";inset:12px;pointer-events:none;position:absolute}.fortune-card-top{align-items:center;display:flex;justify-content:space-between}.fortune-card-top span{color:var(--champagne);font:600 2rem/1 var(--chinese)}.fortune-card-top small{color:rgba(255,250,241,.55);font-size:.62rem;letter-spacing:.12em}.fortune-result-card .eyebrow{color:var(--champagne);margin:25px 0 8px}.fortune-result-card h2{font-size:clamp(2.8rem,7vw,4.3rem);margin:8px 0 16px}.fortune-result-card blockquote{color:rgba(255,250,241,.8);font:italic 1.25rem/1.4 var(--serif);margin:0 auto 25px}.fortune-result-card dl{border-bottom:1px solid hsla(39,49%,70%,.25);border-top:1px solid hsla(39,49%,70%,.25);display:grid;grid-template-columns:1fr 1fr;margin:0;padding:20px 0}.fortune-result-card dt{color:var(--champagne);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase}.fortune-result-card dd{font-family:var(--serif);font-size:1.25rem;margin:5px 0 0}.fortune-result-card footer{color:rgba(255,250,241,.48);font-size:.62rem;letter-spacing:.08em;margin-top:22px;text-transform:uppercase}.fortune-result-card footer span{color:var(--champagne)}.fortune-actions{display:flex;gap:10px;justify-content:center}.fortune-share-status{font-size:.75rem;margin:12px 0 0;min-height:24px}@keyframes packet-open{50%{transform:translateY(-35px) rotateY(12deg) scale(1.05)}to{opacity:0;transform:translateY(20px) scale(.85)}}@keyframes fortune-reveal{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}@media (max-width:900px){:root{--shell:min(100% - 32px,720px)}.section{padding:88px 0}.site-nav{align-items:stretch;background:var(--ivory);display:flex;flex-direction:column;gap:0;height:calc(100svh - 78px);inset:78px 0 auto;padding:24px 24px 40px;position:fixed;transform:translateX(100%);transition:transform .35s ease}.site-nav.is-open{transform:none}.site-nav>a{border-bottom:1px solid var(--line);padding:18px 0}.site-nav .button{margin-top:18px}.language-switcher{margin-left:auto}.hero{padding-top:120px}.culture-grid{grid-template-columns:1fr;max-width:640px}.culture-grid>div{min-height:0}.culture-center{border:1px solid hsla(39,49%,70%,.26)}.faq-grid,.rsvp-grid,.wishes-heading{grid-template-columns:1fr}.wishes-heading{gap:18px}.wishes-slide{grid-template-columns:1fr 1fr;grid-template-rows:auto}.wishes-slide .wish-card:first-child{grid-column:1/3;grid-row:auto;min-height:280px}.tentative-list:before{left:20px}.tentative-item{grid-template-columns:40px 1fr}.tentative-item time{grid-column:2;text-align:left}.tentative-dot{grid-column:1;grid-row:1/span 2}.tentative-item>div{grid-column:2}.rsvp-copy{position:static}.activity-grid{grid-template-columns:1fr}.activity-grid-centered{max-width:none}.activity-card,.activity-card p{min-height:auto}.faq-grid,.rsvp-grid{gap:48px}}@media (max-width:600px){:root{--shell:calc(100% - 28px)}.language-switcher a,.language-switcher button{min-width:34px;padding-inline:7px}.wishes-slide{grid-template-columns:1fr}.wishes-slide .wish-card,.wishes-slide .wish-card:first-child{grid-column:auto;min-height:210px;padding:24px}.wishes-controls{grid-template-columns:1fr auto}.wishes-progress{grid-column:1/-1}.wishes-controls p{order:2}.wishes-arrows{order:3}h1{font-size:clamp(4rem,19vw,5.8rem)}h2{font-size:clamp(3rem,15vw,4.2rem)}.section{padding:74px 0}.hero{min-height:auto;padding-bottom:40px}.countdown-wrap{grid-template-columns:repeat(2,1fr)}.countdown-wrap>div:nth-child(2){border-right:0}.countdown-wrap>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.culture-grid>div{padding:42px 24px}.culture-band{padding:64px 0}.culture-center h2{font-size:clamp(2.2rem,11vw,3.4rem)}.section-heading{margin-bottom:46px}.venue-actions{flex-direction:column;width:100%}.venue-actions .button{width:100%}.quiz-card{border-radius:28px;padding:28px}.quiz-top{gap:10px}.quiz-options,.split-heading{flex-direction:column}.split-heading{align-items:flex-start;gap:12px}.rsvp-form{border-radius:28px;grid-template-columns:1fr;padding:24px}.form-wide{grid-column:auto}.form-submit{align-items:flex-start;flex-direction:column}.faq-question>span:first-child{font-size:1.35rem}.closing{padding:90px 0}.fortune-dialog{padding:28px 18px 22px}.fortune-packets{align-items:stretch;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin:30px auto 22px;width:min(100%,320px)}.fortune-packet,.fortune-packet:nth-child(2){align-items:center;aspect-ratio:1;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:30px 10px 14px;transform:none;width:100%}.fortune-packet:hover,.fortune-packet:nth-child(2):hover{transform:translateY(-4px)}.fortune-packet span{font-size:clamp(2.8rem,15vw,4rem);margin-top:0}.fortune-packet small{color:rgba(255,250,241,.82);font-size:.6rem;letter-spacing:.1em;line-height:1.35;margin-top:10px;overflow-wrap:anywhere;width:100%}.fortune-result-card{padding-inline:24px}.fortune-actions{align-items:stretch;flex-direction:column}.fortune-actions .button{width:100%}}.music-player{bottom:clamp(16px,3vw,32px);font-family:DM Sans,sans-serif;left:clamp(16px,3vw,36px);max-width:min(320px,calc(100vw - 32px));position:fixed;z-index:79}.music-toggle{align-items:center;backdrop-filter:blur(12px);background:rgba(255,250,241,.94);border:1px solid rgba(125,30,37,.14);border-radius:999px;box-shadow:0 14px 40px rgba(55,31,25,.18);color:var(--ink);cursor:pointer;display:flex;gap:11px;max-width:100%;padding:8px 13px 8px 8px}.music-disc{background:repeating-radial-gradient(circle,#8d2029 0 3px,#67151c 4px 7px);flex:0 0 40px;height:40px;place-items:center;position:relative;width:40px}.music-disc,.music-state{border-radius:50%;display:grid}.music-state{background:var(--red-800);color:#fff;flex:0 0 28px;font-size:.65rem;height:28px;place-items:center;width:28px}.music-player.has-error{display:none}.music-disc:before{background:var(--ivory);border-radius:50%;color:var(--red-800);display:grid;font:700 1rem/1 var(--serif);height:24px;place-items:center;position:relative;width:24px;z-index:2}.music-disc:after{background:none;border:2px dashed rgba(125,30,37,.35);border-radius:50%;content:"";height:auto;inset:-6px;opacity:0;position:absolute;width:auto}.music-disc i{border:1px solid hsla(39,49%,70%,.7);border-radius:50%;inset:-11px;opacity:0;position:absolute}.music-player.is-playing .music-disc{animation:music-disc-pulse 1.4s ease-in-out infinite}.music-player.is-playing .music-disc:after{animation:music-ring-spin 4s linear infinite;opacity:1}.music-player.is-playing .music-disc i{animation:music-ring-wave 1.4s ease-out infinite}.music-player.is-playing .music-state{box-shadow:0 0 0 5px rgba(125,30,37,.12);font-size:.52rem;letter-spacing:-.12em}.music-state{font-weight:800;transition:box-shadow .25s ease,transform .25s ease}@keyframes music-ring-spin{to{transform:rotate(1turn)}}@keyframes music-disc-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes music-ring-wave{0%{opacity:.7;transform:scale(.82)}to{opacity:0;transform:scale(1.28)}}.whatsapp-help{bottom:clamp(16px,3vw,32px);font-family:DM Sans,sans-serif;position:fixed;right:clamp(16px,3vw,36px);width:max-content;z-index:80}.whatsapp-help-toggle{align-items:center;background:#167a50;border:0;border-radius:999px;box-shadow:0 14px 40px rgba(22,64,45,.28);color:#fff;cursor:pointer;display:flex;font:600 .92rem/1 DM Sans,sans-serif;gap:10px;padding:10px 18px 10px 10px;transition:transform .25s ease,background .25s ease}.whatsapp-help-toggle:hover{background:#116541;transform:translateY(-2px)}.whatsapp-help-toggle svg{background:#fff;border-radius:50%;fill:#167a50;height:38px;padding:8px;width:38px}.whatsapp-help-panel{background:rgba(255,252,247,.98);border:1px solid rgba(125,30,37,.12);border-radius:24px;bottom:calc(100% + 12px);box-shadow:0 24px 70px rgba(55,31,25,.22);opacity:0;padding:18px;pointer-events:none;position:absolute;right:0;transform:translateY(12px) scale(.97);transform-origin:bottom right;transition:opacity .22s ease,transform .22s ease,visibility .22s;visibility:hidden;width:min(360px,calc(100vw - 32px))}.whatsapp-help.is-open .whatsapp-help-panel{opacity:1;pointer-events:auto;transform:none;visibility:visible}.whatsapp-help-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.whatsapp-help-head div{display:grid;gap:3px}.whatsapp-help-head small,.whatsapp-help-panel>p{color:#806f68;font-size:.75rem}.whatsapp-help-head strong{color:#591920;font:600 1.45rem/1.1 Cormorant Garamond,serif}.whatsapp-help-head button{background:#f3e8df;border:0;border-radius:50%;color:#591920;cursor:pointer;font-size:1.25rem;height:30px;width:30px}.whatsapp-help-panel>p{margin:10px 0 14px}.whatsapp-contact-list{display:grid;gap:8px}.whatsapp-contact-list a{align-items:center;background:#fff;border:1px solid rgba(125,30,37,.1);border-radius:15px;color:#3f2524;display:grid;gap:11px;grid-template-columns:42px 1fr auto;padding:10px;text-decoration:none;transition:border-color .2s ease,transform .2s ease}.whatsapp-contact-list a:hover{border-color:#167a50;transform:translateX(-2px)}.whatsapp-contact-list a>span:nth-child(2){display:grid;gap:2px}.whatsapp-contact-list a small{color:#167a50;font-size:.7rem}.whatsapp-contact-avatar{background:#7d1e25;border-radius:50%;color:#fff;display:grid;font-family:Cormorant Garamond,serif;font-size:1.25rem;font-weight:700;height:42px;place-items:center;width:42px}@media (max-width:600px){.music-player{bottom:14px;left:14px;max-width:calc(100vw - 150px)}.music-toggle{padding:8px 9px}.music-disc{flex-basis:38px;height:38px;width:38px}.music-state{display:grid}.whatsapp-help{bottom:14px;right:14px}.whatsapp-help-toggle{padding:7px 13px 7px 7px}.whatsapp-help-toggle svg{height:34px;width:34px}}@media (hover:none) and (pointer:coarse){.button:active,.faq-question:active,.fortune-packet:active,.text-button:active,.wishes-arrows button:active{transform:scale(.95)}.activity-card:active{box-shadow:0 10px 25px rgba(91,29,34,.12);transform:scale(.98) rotate(0deg)}.wedding-petals span{animation-duration:10s}}@media (max-width:600px){.section{padding:52px 0}.section-heading{margin-bottom:28px}.section-heading h2{margin-bottom:14px}.eyebrow{margin-bottom:10px}h1{font-size:clamp(3rem,calc(19vw - 1rem),4.8rem)}h2{font-size:clamp(2rem,calc(15vw - 1rem),3.2rem)}.tentative-item h3,h3{font-size:1rem}.culture-center h2{font-size:clamp(1.2rem,calc(11vw - 1rem),2.4rem)}.culture-band{padding:48px 0}.culture-grid>div{padding-block:30px}.culture-center h2 span+span{font-size:1em;margin-top:18px;padding-top:18px}.quiz-card h3{font-size:clamp(1.2rem,calc(5vw - 1rem),3rem)}.quiz-top{margin-bottom:22px}.quiz-options{margin-top:22px}.activity-card h3{margin-bottom:10px;margin-top:28px}.faq-grid,.rsvp-grid{gap:32px}.rsvp-note{margin-top:28px}.wishes-heading{margin-bottom:32px}.tentative-list{margin-top:30px}.tentative-item{padding:16px 0}.closing{padding:64px 0}.thank-you-dialog h2{font-size:clamp(1.7rem,calc(7vw - 1rem),3.2rem)}.fortune-picker h2{font-size:clamp(2.2rem,calc(8vw - 1rem),4.2rem)}.fortune-result-card h2{font-size:clamp(1.8rem,calc(7vw - 1rem),3.3rem)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}body{background-color:var(--ivory);background-image:radial-gradient(circle at 12% 8%,hsla(10,43%,84%,.24),transparent 24rem),radial-gradient(circle at 90% 38%,rgba(198,161,91,.1),transparent 22rem)}.language-zh{font-family:"Noto Sans SC",var(--sans)}.language-zh h1,.language-zh h2,.language-zh h3{font-family:"Noto Serif SC",var(--serif);letter-spacing:0}body:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cpath stroke='%23c6a15b' stroke-width='.35' d='M0 45h90M45 0v90M13 13l64 64m0-64L13 77' opacity='.35'/%3E%3C/svg%3E");content:"";inset:0;opacity:.18;pointer-events:none;position:fixed;z-index:-1}.js .invitation-gate{display:grid}html:not(.invitation-pending) .invitation-gate{display:none}.invitation-pending body{overflow:hidden}.invitation-gate[hidden]{display:none}.invitation-gate{background:radial-gradient(circle at 50% 35%,#9b3038 0,var(--red-800) 38%,#541018 100%);color:var(--ivory);display:none;inset:0;overflow:hidden;padding:24px;place-items:center;position:fixed;z-index:2000}.invitation-gate:before{background-image:linear-gradient(45deg,transparent 45%,hsla(39,49%,70%,.12) 46% 54%,transparent 55%);background-size:24px 24px;border:1px solid hsla(39,49%,70%,.4);border-radius:32px;content:"";inset:18px;mask:linear-gradient(#000 0 0) top/100% 34px no-repeat,linear-gradient(#000 0 0) bottom/100% 34px no-repeat;position:absolute}.site-header{backdrop-filter:blur(16px) saturate(1.2);background:rgba(255,250,241,.82);border-bottom:1px solid rgba(125,30,37,.1);box-shadow:0 8px 30px rgba(49,38,40,.04);transition:background .3s ease,box-shadow .3s ease}.site-header:after{background:repeating-linear-gradient(90deg,var(--champagne) 0 5px,transparent 5px 10px,var(--red-800) 10px 12px,transparent 12px 18px);bottom:-1px;content:"";height:3px;left:0;opacity:.45;position:absolute;right:0}.site-header.is-compact{background:rgba(255,250,241,.94);box-shadow:0 10px 35px rgba(49,38,40,.09)}.site-header.is-compact .nav-shell{height:66px}.nav-shell{transition:height .3s ease}.site-nav>a:not(.button){position:relative}.site-nav>a:not(.button):after{background:var(--red-800);border-radius:50%;bottom:-8px;content:"";height:2px;left:0;position:absolute;right:0;transform:scaleX(0) rotate(-1deg);transition:transform .25s ease}.site-nav>a.is-current:after,.site-nav>a:hover:after{transform:scaleX(1) rotate(-1deg)}.language-switcher{background:transparent;border:0;gap:2px;padding:0}.language-switcher a{border-radius:0;color:var(--ink-muted);min-width:auto;padding:5px 8px}.language-switcher a+a{border-left:1px solid var(--line)}.language-switcher a.is-active{background:transparent;box-shadow:none;color:var(--red-800);text-decoration:underline;text-decoration-color:var(--champagne);text-underline-offset:5px}main{overflow:hidden;position:relative}.page-thread{background:linear-gradient(#b7333c,#c6a15b 36%,#7d1e25 70%,#c6a15b);bottom:12rem;left:max(18px,calc(50% - 610px));opacity:.38;pointer-events:none;position:absolute;top:35rem;width:2px;z-index:0}.page-thread span{background:var(--red-800);border-radius:50%;box-shadow:0 0 0 5px rgba(198,161,91,.22);display:block;height:9px;margin-left:-4px;position:sticky;top:45vh;width:9px}main>section{position:relative;z-index:1}.hero{background:linear-gradient(145deg,rgba(255,250,241,.92),hsla(38,52%,92%,.72));min-height:100svh;padding:132px 0 58px}.hero:after{background:repeating-linear-gradient(45deg,var(--champagne) 0 2px,transparent 2px 11px),repeating-linear-gradient(-45deg,var(--red-800) 0 1px,transparent 1px 14px);border-radius:50% 50% 0 0;bottom:-90px;content:"";height:190px;opacity:.22;position:absolute;right:-8vw;transform:rotate(-3deg);width:55vw}.closing-thread path{animation:thread-drift 12s linear infinite;fill:none;filter:drop-shadow(0 2px 2px rgba(125,30,37,.16));stroke:#b72d36;stroke-dasharray:8 5;stroke-linecap:round;stroke-width:3}@keyframes thread-drift{to{stroke-dashoffset:-130}}.countdown-wrap{background:transparent;border:0;box-shadow:none;gap:clamp(10px,2vw,24px);margin-top:56px;max-width:900px;position:relative;z-index:2}.countdown-wrap:before{background:linear-gradient(90deg,transparent,var(--red-800) 12% 88%,transparent);content:"";height:2px;left:5%;position:absolute;top:-18px;transform:rotate(-1deg);width:90%;z-index:-1}.countdown-wrap>div{background:linear-gradient(145deg,#fffdf7,#efe1ca);border:0!important;border-radius:8px 8px 32px 8px;box-shadow:0 16px 34px rgba(73,41,34,.1);justify-content:center;min-height:138px;padding:28px 15px 18px;position:relative;transform:rotate(-1.5deg)}.countdown-wrap>div:nth-child(2n){background:linear-gradient(145deg,#f7e3df,#f5eddf);border-radius:8px 30px 8px 8px;transform:translateY(8px) rotate(1.5deg)}.countdown-wrap>div:before{background:var(--red-800);content:"";height:30px;left:50%;position:absolute;top:-24px;width:1px}.countdown-wrap>div:after{background:var(--champagne);border-radius:50%;content:"";height:7px;left:calc(50% - 3px);position:absolute;top:2px;width:7px}.countdown-wrap strong{font-size:clamp(2.2rem,5vw,4rem)}.countdown-wrap [data-count=seconds]{animation:seconds-heartbeat 1s ease-in-out infinite}@keyframes seconds-heartbeat{50%{color:#a32c35;transform:scale(1.06)}}.culture-band{background:linear-gradient(125deg,#68151d,#84212a 50%,#62131a);padding:88px 0}.culture-band:before{background-image:linear-gradient(45deg,transparent 42%,hsla(39,49%,70%,.18) 43% 47%,transparent 48%),linear-gradient(-45deg,transparent 42%,hsla(39,49%,70%,.12) 43% 47%,transparent 48%);background-size:32px 32px}.culture-grid{display:block}.culture-center{background:rgba(80,12,20,.35);border:1px solid hsla(39,49%,70%,.42);border-radius:140px 24px 140px 24px;box-shadow:inset 0 0 0 8px hsla(39,49%,70%,.04);min-height:auto;overflow:hidden;padding:clamp(48px,8vw,86px)}.culture-center:before{color:var(--champagne);content:"❋";font:500 3rem/1 var(--serif);left:8%;position:absolute;top:50%;transform:translateY(-50%)}.culture-center:after{bottom:auto;color:rgba(255,250,241,.12);content:"囍";font:600 5rem/1 var(--chinese);height:auto;left:auto;right:8%;top:50%;transform:translateY(-50%);width:auto}.tentative-section{background:linear-gradient(180deg,var(--ivory-deep),#fffaf1)}.tentative-list{max-width:980px}.tentative-list:before{background:linear-gradient(var(--red-800),var(--champagne),var(--red-800));border-radius:50%;left:50%;transform:translateX(-50%);width:3px}.tentative-item{align-items:center;grid-template-columns:1fr 74px 74px 1fr;min-height:150px;padding:20px 0;position:relative}.tentative-item time{grid-column:1;padding:0 28px 0 0;text-align:right}.tentative-dot{grid-column:2;justify-self:center;margin:0}.tentative-item>div{grid-column:4;padding-left:12px}.tentative-item:nth-child(2n) time{grid-column:4;grid-row:1;padding:0 0 0 28px;text-align:left}.tentative-item:nth-child(2n) .tentative-dot{grid-column:3}.tentative-item:nth-child(2n)>div{grid-column:1;grid-row:1;padding:0 12px 0 0;text-align:right}.tentative-item h3{font-size:clamp(1.6rem,3vw,2.25rem);margin:4px 0 7px}.tentative-item p{max-width:420px}.tentative-item:nth-child(2n) p{margin-left:auto}.venue-actions{margin-top:28px}.play-section{background:linear-gradient(180deg,#fffaf1,#f7eee4)}.quiz-card{background:linear-gradient(145deg,#f4ddd8,#fff9ef);border:1px solid rgba(125,30,37,.18);border-radius:54px 14px 54px 14px;box-shadow:0 25px 70px rgba(78,36,38,.12);color:var(--ink);max-width:900px;overflow:visible;padding:clamp(30px,5vw,58px);position:relative;transform:rotate(-.35deg)}.quiz-card:before{background:var(--red-800);border-radius:50%;box-shadow:0 8px 20px rgba(80,20,25,.2);color:var(--champagne-soft);content:"C&C";display:grid;font:600 1.15rem/1 var(--serif);height:70px;place-items:center;position:absolute;right:42px;top:-25px;transform:rotate(8deg);width:70px}.quiz-top{color:var(--red-800);opacity:1}.quiz-card h3{font-size:clamp(1.8rem,4vw,3.35rem)}.quiz-options{gap:14px}.quiz-options button{background:rgba(255,250,241,.8);border:1px solid rgba(125,30,37,.18);border-radius:22px 8px 22px 8px;color:var(--ink);min-height:66px;padding:14px 22px;text-align:left;transition:transform .2s ease,background .2s ease,border-color .2s ease}.quiz-options button:hover{background:#fff;border-color:var(--red-800);transform:translateY(-3px) rotate(-.5deg)}.quiz-options button.is-correct{background:#dfe9df;border-color:#4f6759}.quiz-options button.is-correct:after{color:#4f6759;content:" ✓";font-weight:800}.quiz-options button.is-incorrect{border-color:var(--red-800);opacity:.7;text-decoration:line-through}.quiz-garland{display:flex;gap:9px;margin-bottom:26px}.quiz-garland span{background:transparent;border:1px solid var(--champagne);border-radius:50% 0 50% 50%;height:13px;transform:rotate(45deg);transition:.3s ease;width:13px}.quiz-garland span.is-active{background:var(--red-800);transform:rotate(135deg) scale(1.14)}.quiz-card.is-celebrating:after{animation:celebrate-pop .8s ease both;color:var(--red-800);content:"✦  ♡  ✦";font-size:1.5rem;position:absolute;right:8%;top:20%}@keyframes celebrate-pop{0%{opacity:0;transform:translateY(20px) scale(.5)}to{opacity:1;transform:translateY(-20px) scale(1)}}.activity-grid{align-items:stretch;margin-top:54px}.activity-grid-centered{max-width:860px}.activity-card{background:rgba(255,253,247,.86);border:1px solid rgba(125,30,37,.14);border-radius:12px 52px 12px 52px;min-height:320px;overflow:hidden}.activity-card:nth-child(2n){border-radius:52px 12px 52px 12px;transform:translateY(22px)}.activity-card h3{margin-top:26px}.fortune-teaser{background:linear-gradient(145deg,#fffaf1,#f1dfcd);padding-right:44%}.fortune-envelope{aspect-ratio:.72;background:linear-gradient(145deg,#a72e38,#68141c);border-radius:8px 8px 26px 26px;box-shadow:0 18px 30px rgba(80,15,22,.22);min-width:120px;position:absolute;right:28px;top:42px;transform:rotate(6deg);transition:.3s ease;width:34%}.fortune-envelope:before{border:1px solid hsla(39,49%,70%,.44);border-radius:5px 5px 18px 18px;content:"";inset:10px;position:absolute}.fortune-envelope i{background:#8b2029;clip-path:polygon(0 0,100% 0,50% 100%);height:35%;left:0;position:absolute;top:0;width:100%}.fortune-envelope b{color:var(--champagne);font:600 2.6rem/1 var(--chinese);left:50%;position:absolute;top:38%;transform:translateX(-50%);z-index:2}.fortune-teaser:hover .fortune-envelope{transform:translateY(-10px) rotate(9deg)}.wish-letter-icon{background:#fffaf1;border:1px solid var(--champagne);border-radius:4px;box-shadow:5px 7px 0 var(--blush-soft);color:var(--red-800);display:grid;font-size:1.6rem;height:60px;place-items:center;transform:rotate(-5deg);width:82px}.rsvp-section{background:linear-gradient(145deg,#efd6d3,#f8eee4)}.rsvp-form{border-radius:12px 42px 12px 42px;box-shadow:0 18px 50px rgba(78,36,38,.08)}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{background:rgba(255,253,248,.9);border-color:rgba(125,30,37,.15)}.wishes-section{background:linear-gradient(135deg,#64131a,#84232b 52%,#591018)}.wishes-section:after{background:repeating-linear-gradient(45deg,transparent 0 16px,hsla(39,49%,70%,.32) 17px 18px,transparent 19px 34px),repeating-linear-gradient(-45deg,transparent 0 22px,hsla(39,49%,70%,.2) 23px 24px,transparent 25px 44px);content:"";inset:0;opacity:.16;pointer-events:none;position:absolute}.wish-keepsake{background:#fffaf1;border-radius:8px 44px 8px 8px;box-shadow:12px 14px 0 hsla(10,43%,84%,.22);color:var(--ink);overflow:hidden;position:relative;transform:rotate(.5deg);transform-origin:bottom center;transition:transform .45s ease,opacity .45s ease}.wish-keepsake:after{border:1px solid var(--champagne);bottom:-28px;content:"";height:75px;position:absolute;right:-28px;transform:rotate(45deg);width:75px}.wish-keepsake-seal{background:var(--red-800);border-radius:50%;box-shadow:0 0 0 4px rgba(198,161,91,.22);color:var(--ivory);display:grid;font:600 .8rem/1 var(--serif);height:46px;place-items:center;position:absolute;right:18px;top:16px;width:46px}.wish-keepsake.is-sending{transform:scale(.98) rotate(-1deg)}.wish-keepsake.is-sent{opacity:.35;transform:translateY(30px) scale(.82) rotate(3deg)}.wish-card{background:#fffaf1;border:0;border-radius:5px 28px 5px 5px;box-shadow:5px 8px 0 hsla(10,43%,84%,.15);color:var(--ink);transform:rotate(-.7deg)}.wish-card:nth-child(2n){background:#f5eddf;transform:rotate(.8deg)}.wish-card blockquote,.wish-card small{color:var(--ink-muted)}.wish-card .wish-mark{color:var(--red-800)}.wish-avatar{background:var(--red-800);color:var(--ivory)}.faq-section{background:#fffaf1}.faq-item{background:transparent;border:0;border-bottom:1px solid rgba(125,30,37,.16);border-radius:0}.faq-item:before{color:var(--champagne);content:"✦";left:0;margin-top:24px;position:absolute}.faq-question{padding-left:30px}.faq-item:hover{border-color:var(--champagne);box-shadow:none}.faq-help-link{background:var(--ivory-deep);border:1px dashed var(--champagne);border-radius:24px 8px 24px 8px;color:var(--red-800);cursor:pointer;margin-top:28px;padding:18px 22px;text-align:left;width:100%}.closing{background:radial-gradient(circle at 50% 40%,#8e2831,#62131a 70%);overflow:hidden;padding:130px 0}.closing:before{background:repeating-linear-gradient(45deg,transparent 0 20px,hsla(39,49%,70%,.24) 21px 22px,transparent 23px 42px);content:"";inset:0;opacity:.24;position:absolute}.closing-thread{left:50%;position:absolute;top:15%;transform:translateX(-50%);width:min(900px,110vw)}.closing-mark{background:rgba(255,250,241,.06);border:1px solid var(--champagne);border-radius:50% 45% 50% 15%;box-shadow:0 0 0 10px hsla(39,49%,70%,.06);display:grid;height:100px;margin:0 auto 22px;place-items:center;transform:rotate(-5deg);width:100px}.music-player{bottom:max(18px,env(safe-area-inset-bottom))}.music-toggle{background:rgba(255,250,241,.96);border-color:rgba(198,161,91,.5);height:62px;justify-content:center;padding:0;position:relative;width:62px}.music-disc{flex-basis:48px;height:48px;width:48px}.music-disc:before{content:"♪";height:28px;width:28px}.music-state{border:2px solid var(--ivory);bottom:-4px;flex-basis:25px;font-size:.55rem;height:25px;position:absolute;right:-4px;width:25px}.whatsapp-help{bottom:max(18px,env(safe-area-inset-bottom))}.whatsapp-help-toggle{background:var(--red-800);border:1px solid rgba(198,161,91,.5);color:var(--ivory);height:62px;justify-content:center;padding:0;width:62px}.whatsapp-help-toggle span{height:1px;overflow:hidden;position:absolute;width:1px;clip:rect(0,0,0,0)}.whatsapp-help-toggle svg{fill:var(--red-800);height:42px;width:42px}.whatsapp-help-toggle:hover,.whatsapp-help.is-open .whatsapp-help-toggle{background:#167a50}.whatsapp-help-panel{border-color:rgba(198,161,91,.38);border-radius:28px 8px 28px 8px}.fortune-dialog{background-image:radial-gradient(circle at top,#fffdf7,#f4e8d8)}.fortune-packets{align-items:center;gap:0;margin-top:55px;padding:0 10px}.fortune-packet{aspect-ratio:.72;border-radius:10px 10px 28px 28px;margin:0 -5px;width:min(155px,24vw)}.fortune-packet:first-child{--packet-angle:-9deg;--packet-offset:12px}.fortune-packet:first-child,.fortune-packet:nth-child(2){transform:rotate(var(--packet-angle)) translateY(var(--packet-offset))}.fortune-packet:nth-child(2){--packet-angle:-3deg;--packet-offset:-8px}.fortune-packet:nth-child(3){--packet-angle:4deg;--packet-offset:-5px}.fortune-packet:nth-child(3),.fortune-packet:nth-child(4){transform:rotate(var(--packet-angle)) translateY(var(--packet-offset))}.fortune-packet:nth-child(4){--packet-angle:10deg;--packet-offset:14px}.fortune-packet small{align-items:center;color:var(--ivory);display:flex;font-size:.72rem;justify-content:center;letter-spacing:.04em;line-height:1.15;min-height:40px;padding:0 8px;white-space:normal}.fortune-packet-2{background:linear-gradient(145deg,#9a2630,#61141b)}.fortune-packet-3{background:linear-gradient(145deg,#a93636,#791c24)}.fortune-packet-4{background:linear-gradient(145deg,#84212d,#511119)}@media (hover:hover) and (pointer:fine){.fortune-packet:nth-child(n):hover{transform:rotate(var(--packet-angle)) translateY(calc(var(--packet-offset) - 14px)) scale(1.04)}}.fortune-packet:nth-child(n):focus-visible{outline:3px solid var(--champagne);outline-offset:5px;transform:rotate(var(--packet-angle)) translateY(calc(var(--packet-offset) - 14px)) scale(1.04)}.js .reveal,.reveal{opacity:1;transform:none}.js.motion-ready .reveal{opacity:0;transform:translateY(22px)}.js.motion-ready .reveal.is-visible{opacity:1;transform:none;transition:opacity .6s ease,transform .7s cubic-bezier(.22,1,.36,1);transition-delay:min(var(--reveal-delay,0ms),.27s)}@media (max-width:900px){.page-thread{left:18px}.countdown-wrap{margin-top:34px}.tentative-list:before{left:30px;transform:none}.tentative-item,.tentative-item:nth-child(2n){grid-template-columns:60px 72px 1fr;min-height:130px}.tentative-item time,.tentative-item:nth-child(2n) time{align-self:start;grid-column:3;grid-row:1;padding:3px 0 0;text-align:left}.tentative-item .tentative-dot,.tentative-item:nth-child(2n) .tentative-dot{grid-column:1;grid-row:1/span 2}.tentative-item:nth-child(2n)>div,.tentative-item>div{grid-column:3;grid-row:2;padding:0;text-align:left}.tentative-item:nth-child(2n) p{margin-left:0}.activity-card:nth-child(2n){transform:none}}@media (max-width:600px){.invitation-gate{padding:14px}.invitation-gate:before{inset:8px}.nav-shell{gap:8px}.brand{flex-shrink:0}.language-switcher{margin-left:auto;order:2}.site-nav{order:4}.site-header.is-compact .nav-shell{height:60px}.language-switcher a{font-size:.6rem;padding-inline:5px}.site-nav>a:not(.button):after{bottom:8px}.hero{min-height:auto;padding:105px 0 44px}.countdown-wrap{gap:13px;grid-template-columns:repeat(2,1fr)}.countdown-wrap>div{min-height:112px;padding:24px 10px 14px}.countdown-wrap>div:nth-child(2n){transform:translateY(5px) rotate(1deg)}.culture-band{padding:50px 0}.culture-center{border-radius:70px 12px 70px 12px;padding:42px 24px}.culture-center:after,.culture-center:before{font-size:2rem;opacity:.45}.culture-center:before{left:5%}.culture-center:after{right:5%}.tentative-item,.tentative-item:nth-child(2n){gap:0;grid-template-columns:46px 1fr;padding:13px 0}.tentative-list:before{left:17px}.tentative-item .tentative-dot,.tentative-item:nth-child(2n) .tentative-dot{grid-column:1}.tentative-item time,.tentative-item:nth-child(2n) time{grid-column:2;grid-row:1;padding:10px 0 0 58px}.tentative-item:nth-child(2n)>div,.tentative-item>div{grid-column:2;grid-row:2;padding-left:0}.tentative-item h3{font-size:1.35rem}.venue-actions{flex-direction:row}.venue-actions .button{flex:1;padding-inline:12px;width:auto}.quiz-card{border-radius:34px 8px 34px 8px;padding:32px 22px}.quiz-card:before{height:54px;right:18px;width:54px}.quiz-card h3{font-size:1.45rem;line-height:1.12}.quiz-options{flex-direction:column}.quiz-options button{min-height:58px}.quiz-garland{margin-bottom:20px}.activity-grid{gap:16px;margin-top:38px}.activity-card{border-radius:8px 34px 8px 34px;min-height:auto;padding:24px}.activity-card:nth-child(2n){border-radius:34px 8px 34px 8px}.activity-card h3{font-size:1.3rem;margin-top:18px}.fortune-teaser{padding-right:42%}.fortune-envelope{min-width:96px;right:20px;top:28px}.wishes-heading{gap:24px}.wish-keepsake{padding:28px 22px}.wish-keepsake-seal{height:38px;width:38px}.wishes-slide .wish-card,.wishes-slide .wish-card:first-child{min-height:180px}.closing{padding:80px 0}.closing-mark{height:80px;width:80px}.closing-thread{top:20%;width:150vw}.music-player{bottom:max(12px,env(safe-area-inset-bottom));left:12px;max-width:none}.music-toggle,.whatsapp-help-toggle{height:56px;width:56px}.music-disc{flex-basis:43px;height:43px;width:43px}.whatsapp-help{bottom:max(12px,env(safe-area-inset-bottom));right:12px}.whatsapp-help-toggle svg{height:38px;width:38px}.whatsapp-help-panel{width:min(340px,calc(100vw - 24px))}.fortune-dialog{max-height:calc(100dvh - 20px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(22px,env(safe-area-inset-bottom));width:calc(100% - 20px)}.fortune-dialog>.dialog-close{margin:0 0 -38px auto;position:sticky;top:0}.fortune-packets{display:grid;gap:12px;grid-template-columns:repeat(2,1fr);margin:28px auto 20px;width:min(100%,320px)}.fortune-packet,.fortune-packet:nth-child(n){aspect-ratio:1;margin:0;transform:none;width:100%}.fortune-packet small{font-size:.66rem;min-height:34px}.fortune-packet span{font-size:2.7rem}}@media (prefers-reduced-motion:reduce){.closing-thread path,.countdown-wrap [data-count=seconds]{animation:none!important}.js .reveal{opacity:1;transform:none}}.tentative-section{background:var(--ivory-deep)}.tentative-list{margin:50px auto 0;max-width:900px;position:relative}.tentative-list:before{background:linear-gradient(var(--champagne),var(--red-800),var(--champagne));bottom:10px;content:"";left:190px;position:absolute;top:10px;transform:none;width:1px}.tentative-item,.tentative-item:nth-child(2n){align-items:start;display:grid;grid-template-columns:160px 60px 1fr;min-height:0;padding:24px 0}.tentative-item time,.tentative-item:nth-child(2n) time{color:var(--red-800);font:600 1.25rem/1 var(--serif);grid-column:1;grid-row:auto;padding:8px 0 0;text-align:right}.tentative-item .tentative-dot,.tentative-item:nth-child(2n) .tentative-dot{background:var(--red-800);border:4px solid var(--ivory-deep);border-radius:50%;box-shadow:0 0 0 1px var(--champagne);grid-column:2;grid-row:auto;height:15px;justify-self:center;margin-top:9px;width:15px;z-index:1}.tentative-item:nth-child(2n)>div,.tentative-item>div{grid-column:3;grid-row:auto;padding:0;text-align:left}.tentative-item small{color:var(--champagne);font-weight:700}.tentative-item h3{font-size:2rem;margin:3px 0 6px}.tentative-item p,.tentative-item:nth-child(2n) p{color:var(--ink-muted);margin:0;max-width:none}@media (max-width:900px){.tentative-list:before{left:20px}.tentative-item,.tentative-item:nth-child(2n){grid-template-columns:40px 1fr}.tentative-item time,.tentative-item:nth-child(2n) time{grid-column:2;grid-row:1;padding-top:8px;text-align:left}.tentative-item .tentative-dot,.tentative-item:nth-child(2n) .tentative-dot{grid-column:1;grid-row:1/span 2}.tentative-item:nth-child(2n)>div,.tentative-item>div{grid-column:2;grid-row:2}}@media (max-width:600px){.tentative-list{margin-top:30px}.tentative-item,.tentative-item:nth-child(2n){padding:16px 0}.tentative-item h3{font-size:1rem}}:is(.language-en,.language-ms){--red-900:#254d68;--red-800:#356685;--red-700:#4e83a3;--ivory:#fff;--ivory-deep:#edf4f8;--champagne:#c3dbea;--champagne-soft:#e2eef5;--blush:#dfa5b3;--blush-soft:#f5e5ea;--gold:#567d98;--ink:#293e4c;--ink-muted:#607480;--line:rgba(53,102,133,.2);--shadow:0 24px 80px rgba(37,77,104,.12);background:#fff}:is(.language-en,.language-ms) .site-header,:is(.language-en,.language-ms) .site-header.is-compact{background:hsla(0,0%,100%,.95)}:is(.language-en,.language-ms) .culture-band,:is(.language-en,.language-ms) .wishes-section{background:linear-gradient(130deg,#356685,#497e9c,#2c5975)}:is(.language-en,.language-ms) .culture-center{background:rgba(27,66,92,.28)}:is(.language-en,.language-ms) .closing{background:radial-gradient(circle at 50% 40%,#5185a3,#2c5975 75%)}:is(.language-en,.language-ms) .closing-thread path{filter:none;stroke:#accddd}:is(.language-en,.language-ms) .page-thread{background:linear-gradient(#8fb7ce,#dfa5b3,#356685)}:is(.language-en,.language-ms) .countdown-wrap>div{background:linear-gradient(145deg,#fff,#e2eef5);box-shadow:0 16px 34px rgba(37,77,104,.1)}:is(.language-en,.language-ms) .countdown-wrap>div:nth-child(2n){background:linear-gradient(145deg,#f8edf0,#edf4f8)}:is(.language-en,.language-ms) .countdown-wrap [data-count=seconds]{animation-name:blue-seconds-heartbeat}@keyframes blue-seconds-heartbeat{50%{color:#4e83a3;transform:scale(1.06)}}:is(.language-en,.language-ms) .play-section{background:linear-gradient(135deg,#fff,#edf4f8)}:is(.language-en,.language-ms) .quiz-card,:is(.language-en,.language-ms) .rsvp-section{background:linear-gradient(145deg,#e2eef5,#fff 70%,#f8edf0)}:is(.language-en,.language-ms) .quiz-card{box-shadow:var(--shadow)}:is(.language-en,.language-ms) .activity-card,:is(.language-en,.language-ms) .rsvp-form{background:#fff;border-color:var(--line)}:is(.language-en,.language-ms) .fortune-teaser{background:linear-gradient(145deg,#fff,#e2eef5)}:is(.language-en,.language-ms) .wish-card,:is(.language-en,.language-ms) .wish-keepsake{background:#fff}:is(.language-en,.language-ms) .wish-card:nth-child(2n){background:#edf4f8}:is(.language-en,.language-ms) .faq-section{background:#fff}:is(.language-en,.language-ms) .fortune-dialog{background:linear-gradient(#fff,#edf4f8)}:is(.language-en,.language-ms) .fortune-envelope,:is(.language-en,.language-ms) .fortune-packet,:is(.language-en,.language-ms) .fortune-result-card{background:linear-gradient(145deg,#5185a3,#2c5975)}:is(.language-en,.language-ms) .fortune-envelope i,:is(.language-en,.language-ms) .fortune-packet:before{background:#356685}:is(.language-en,.language-ms) .button-ghost:hover,:is(.language-en,.language-ms) .button-light:hover,:is(.language-en,.language-ms) .button-secondary:hover{color:#fff}.language-zh .invitation-video-gate .invitation-enter{background:var(--red-800);border-color:var(--red-800)}.language-zh .invitation-video-gate .invitation-enter:hover{background:var(--red-900)}.invitation-languages{display:flex;flex-wrap:wrap;gap:12px;grid-row:2;justify-content:center;width:100%}.invitation-languages .invitation-enter{min-width:120px}@import url("https://fonts.googleapis.com/css2?family=Ma+Shan+Zheng&family=Noto+Naskh+Arabic:wght@400;500&display=swap");.hero.illustrated-hero{background:radial-gradient(ellipse at 50% 35%,var(--ivory),transparent 70%),var(--ivory-deep);min-height:auto;padding:120px 0 54px}.hero.illustrated-hero:after{opacity:.1;pointer-events:none}.wedding-composition{align-items:center;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,2.1fr) minmax(0,1fr)}.wedding-copy{min-width:0;text-align:center}.wedding-heading{animation:wedding-fade .8s both;color:var(--red-800);font-size:.85rem;font-weight:600;letter-spacing:.18em;margin:0 0 18px}.wedding-copy h1{animation:wedding-fade .8s .15s both;color:var(--red-800);font-family:"Great Vibes",var(--serif);font-size:clamp(3rem,5.3vw,5.5rem);font-weight:400;letter-spacing:0;line-height:1.2;margin:0 0 24px;overflow-wrap:anywhere}.wedding-figure{animation:wedding-rise 1s .15s both;height:auto;max-height:510px;object-fit:contain;width:100%}.wedding-bride{animation-delay:.25s}.wedding-verse blockquote{color:var(--ink);font:italic 500 clamp(1.3rem,2.1vw,1.85rem)/1.5 var(--serif);margin:16px 0}.wedding-verse blockquote span{animation:wedding-fade .8s var(--verse-delay) both;display:block}.wedding-verse cite{animation:wedding-fade .8s .55s both;color:var(--ink-muted);font:500 .8rem/1.5 var(--sans)}.wedding-arabic{animation:wedding-fade .8s .25s both;color:var(--red-800);direction:rtl;font:500 clamp(1.25rem,2.5vw,2rem)/1.9 Noto Naskh Arabic,serif;margin:0;unicode-bidi:isolate;white-space:nowrap}.wedding-details{animation:wedding-fade .8s .7s both;margin-top:30px}.wedding-details p{color:var(--ink);font-size:.95rem;line-height:1.6;margin:4px 0}.wedding-details p:first-child{font-weight:600}.hero.illustrated-hero .wedding-copy #hero-names.hero-type-line,.illustrated-hero .hero-type-line{animation:none}.illustrated-hero .wedding-verse cite{display:inline-block}.language-zh .wedding-heading{font:400 clamp(1.8rem,3vw,2.8rem)/1.4 Ma Shan Zheng,KaiTi,STKaiti,var(--chinese);letter-spacing:.1em}.wedding-poem{display:flex;flex-direction:row-reverse;gap:clamp(14px,2.2vw,32px);justify-content:center;margin:0 auto}.wedding-poem p{animation:wedding-fade .8s var(--verse-delay) both;color:var(--ink);font:400 clamp(1.45rem,2.5vw,2.2rem)/1.5 Ma Shan Zheng,KaiTi,STKaiti,var(--chinese);letter-spacing:.15em;margin:0;text-orientation:upright;writing-mode:vertical-rl}.illustrated-hero .countdown-wrap{margin-top:50px}@keyframes wedding-fade{0%{opacity:0}to{opacity:1}}@keyframes wedding-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.hero-cover-ornament,.hero-garden,.hero-scroll-cue{display:none}@media(max-width:900px){.wedding-composition{gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,2.8fr) minmax(0,1fr)}.wedding-copy h1{font-size:3.4rem}.wedding-heading{font-size:.72rem;letter-spacing:.1em}}@media(max-width:600px){.hero.illustrated-hero{padding:calc(90px + env(safe-area-inset-top)) 0 40px}.hero.illustrated-hero:after{display:none}.illustrated-hero .wedding-composition{--cover-ink:var(--invitation-wine);--cover-gold:var(--invitation-gold);align-items:center;gap:9px 0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto auto auto minmax(210px,1fr) auto auto;isolation:isolate;min-height:calc(92svh - 90px - env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom));position:relative;text-align:center}.wedding-composition:before{background:radial-gradient(ellipse at 8% 22%,var(--invitation-glow),transparent 42%),radial-gradient(ellipse at 92% 68%,var(--invitation-glow),transparent 44%),var(--invitation-paper);content:"";inset:-110px -24px -12px;pointer-events:none;position:absolute;z-index:-2}.illustrated-hero .wedding-copy{display:contents}.hero-cover-ornament{display:block;grid-area:1/1/2/-1;height:28px;justify-self:center;opacity:.85;width:48px}.illustrated-hero .wedding-heading{animation:none;color:var(--cover-ink);font:600 .7rem/1.5 var(--sans);grid-area:2/1/3/-1;letter-spacing:.16em;margin:0}.language-zh .illustrated-hero .wedding-heading{font:400 1.8rem/1.4 Ma Shan Zheng,KaiTi,STKaiti,var(--chinese);letter-spacing:.1em}.illustrated-hero .wedding-copy h1{animation:none;color:var(--cover-ink);font:italic 600 clamp(2rem,9.4vw,2.6rem)/1.13 var(--serif);grid-area:3/1/4/-1;letter-spacing:-.035em;margin:0;max-width:none;overflow-wrap:anywhere;width:100%}.illustrated-hero :is(.wedding-verse,.wedding-poem){color:var(--invitation-ink);grid-area:4/1/5/-1;margin:0;min-width:0;padding:2px 8px 4px;width:100%}.illustrated-hero .wedding-verse blockquote{color:var(--invitation-ink);font-size:clamp(1.05rem,4.5vw,1.2rem);line-height:1.35;margin:5px 0}.illustrated-hero .wedding-verse cite{color:var(--invitation-muted);font-size:.66rem}.illustrated-hero .wedding-arabic{color:var(--cover-ink);font-size:clamp(1rem,4.6vw,1.25rem);line-height:1.8}.language-zh .illustrated-hero .wedding-copy h1{font:400 clamp(2.7rem,11vw,3.5rem)/1.2 Great Vibes,var(--serif);letter-spacing:0}.illustrated-hero .wedding-poem{display:flex;flex-direction:row-reverse;gap:clamp(14px,4vw,20px);justify-content:center;justify-self:center;max-width:290px}.illustrated-hero .wedding-poem p{color:var(--invitation-ink);font:400 clamp(1.2rem,5.5vw,1.45rem)/1.5 Ma Shan Zheng,KaiTi,STKaiti,var(--chinese);letter-spacing:.1em;text-orientation:upright;writing-mode:vertical-rl}.illustrated-hero :is(.wedding-poem p,.wedding-verse blockquote span,.wedding-verse cite,.wedding-arabic){animation:none}.illustrated-hero .wedding-figure{align-self:end;animation:none;grid-row:5;height:clamp(210px,30svh,285px);margin:0;max-height:none;object-fit:contain;object-position:center bottom;position:relative;transform-origin:center bottom;width:100%;z-index:2}.illustrated-hero .wedding-groom{grid-column:1;justify-self:end}.illustrated-hero .wedding-bride{grid-column:2;justify-self:start}.hero-garden{align-self:stretch;display:block;grid-area:5/1/6/-1;min-height:210px;pointer-events:none;position:relative}.hero-garden:before{background:radial-gradient(ellipse at 50% 70%,var(--invitation-garden),transparent 70%),linear-gradient(145deg,var(--invitation-blush),var(--invitation-paper));border:1px solid var(--invitation-line);border-radius:50% 50% 44% 44%;box-shadow:inset 0 0 0 7px var(--invitation-paper);content:"";inset:8% 5% 2%;position:absolute}.hero-garden:after{background:url(../images/wedding-botanical.svg) 0 100%/90px auto no-repeat,url(../images/wedding-botanical.svg) right 12px/75px auto no-repeat;content:"";inset:4% -14px 0;opacity:.7;position:absolute}.hero-silk{color:var(--invitation-ribbon);height:100%;inset:0 -24px;opacity:.45;position:absolute;width:calc(100% + 48px)}.hero-silk path:last-child{stroke:var(--invitation-gold)}.illustrated-hero .wedding-copy .wedding-details{animation:none;background:none;grid-area:6/1/7/-1;margin:3px 0 0;padding:8px 0 0;position:relative;z-index:3}.wedding-copy .wedding-details:before{background:var(--invitation-gold);content:"";display:block;height:1px;margin:0 auto 9px;width:48px}.illustrated-hero .wedding-copy .wedding-details p{color:var(--invitation-ink);font-size:.73rem;line-height:1.5;margin:2px 0}.illustrated-hero .wedding-copy .wedding-details p:first-child{color:var(--cover-ink);font:600 1.15rem/1.5 var(--serif);letter-spacing:.08em}.language-zh .illustrated-hero .wedding-copy .wedding-details p:first-child{font:500 .92rem/1.7 var(--chinese);letter-spacing:.06em}.hero-scroll-cue{color:var(--cover-gold);display:block;grid-area:7/1/8/-1;height:27px;justify-self:center;width:20px}.hero-scroll-cue svg{display:block;height:100%;width:100%}.illustrated-hero .wedding-petals{bottom:auto;height:92svh}.illustrated-hero .wedding-petals span:nth-child(n+5){display:none}html:not(.invitation-pending) .illustrated-hero :is(.hero-cover-ornament,.wedding-heading){animation:wedding-fade .6s both}html:not(.invitation-pending) .illustrated-hero .wedding-copy h1{animation:cover-enter .7s .08s both}html:not(.invitation-pending) .illustrated-hero :is(.wedding-verse,.wedding-poem){animation:wedding-fade .7s .16s both}html:not(.invitation-pending) .illustrated-hero .wedding-figure{animation:cover-enter .8s .18s both,cover-float 8s ease-in-out 1s infinite;animation-play-state:running,var(--cover-motion,paused)}html:not(.invitation-pending) .illustrated-hero .wedding-bride{animation-delay:.25s,2.5s}html:not(.invitation-pending) .illustrated-hero :is(.wedding-copy .wedding-details,.hero-scroll-cue){animation:wedding-fade .7s .3s both}.illustrated-hero.is-cover-active{--cover-motion:running}.illustrated-hero .hero-garden{animation:cover-sway 14s ease-in-out infinite paused}.illustrated-hero.is-cover-active .hero-garden{animation-play-state:running}.illustrated-hero .countdown-wrap{margin-top:30px}}@keyframes cover-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes cover-float{0%,to{translate:0 0}50%{translate:0 -3px}}@keyframes cover-sway{0%,to{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-3px) rotate(.5deg)}}@media(max-width:600px) and (max-height:720px){.illustrated-hero .wedding-composition{gap:6px 0;grid-template-rows:auto auto auto auto minmax(165px,1fr) auto auto}.illustrated-hero .wedding-figure{height:180px}.illustrated-hero .hero-garden{min-height:165px}.hero-cover-ornament{height:21px;width:36px}.illustrated-hero .wedding-poem p{font-size:1.1rem;letter-spacing:.06em}}@media(prefers-reduced-motion:reduce){.illustrated-hero .wedding-petals{display:none}.illustrated-hero .wedding-composition *,.illustrated-hero .wedding-petals span{animation:none}html:not(.invitation-pending) .illustrated-hero .wedding-composition *{animation:none!important;transform:none!important;translate:none!important}}.hero[tabindex="-1"]:focus{outline:none}.invitation-gate.invitation-video-gate .invitation-enter{animation:none;background:#dcecf5;background-image:radial-gradient(#3566850a .5px,transparent .7px);background-size:4px 4px;border:1px solid #8baec2;border-radius:14px 14px 18px 18px;box-shadow:0 4px 12px #35668514;color:#294f68;font:600 1.3rem/1.3 var(--serif);justify-self:center;letter-spacing:.015em;max-width:100%;min-height:56px;min-width:min(180px,100%);overflow-wrap:anywhere;padding:19px 28px 11px;position:relative;text-align:center;transform:none;transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease;white-space:normal}.invitation-gate.invitation-video-gate .invitation-enter:before{border:1px solid #fffaf3;border-radius:10px 10px 14px 14px;content:"";inset:4px;pointer-events:none;position:absolute}.invitation-gate.invitation-video-gate .invitation-enter:after{background:#a56c7a;clip-path:polygon(50% 20%,65% 0,85% 0,100% 20%,100% 45%,50% 100%,0 45%,0 20%,15% 0,35% 0);content:"";height:7px;left:calc(50% - 4px);pointer-events:none;position:absolute;top:9px;width:8px}.invitation-gate.invitation-video-gate .invitation-enter:lang(zh){font-family:"Noto Serif SC",var(--chinese);font-size:1rem;line-height:1.65}.invitation-gate.invitation-video-gate .invitation-enter.is-visible{animation:invitation-button-fade .6s ease both}.invitation-gate.invitation-video-gate .invitation-enter:hover{background:#e5f1f8 radial-gradient(#3566850a .5px,transparent .7px) 0 0 /4px 4px;transform:none}@media (hover:hover) and (prefers-reduced-motion:no-preference){.invitation-gate.invitation-video-gate .invitation-enter:hover{background-color:#e5f1f8;box-shadow:0 7px 18px #35668524;transform:translateY(-2px) scale(1.015)}}.invitation-gate.invitation-video-gate .invitation-enter:focus-visible{outline:1px dashed #294f68;outline-offset:-8px}.invitation-gate.invitation-video-gate .invitation-enter:active{background-color:#cfe3ef;box-shadow:0 2px 5px #3566851a;transform:translateY(1px)}@media (prefers-reduced-motion:reduce){.invitation-gate.invitation-video-gate .invitation-enter,.invitation-gate.invitation-video-gate .invitation-enter.is-visible,.invitation-gate.invitation-video-gate .invitation-enter:active,.invitation-gate.invitation-video-gate .invitation-enter:hover{animation:none;transform:none;transition:none}}.invitation-gate.invitation-video-gate .invitation-enter:lang(zh){background:#7d1e25 radial-gradient(#fffaf10c .5px,transparent .7px) 0 0 /4px 4px;border-color:#7d1e25;box-shadow:0 4px 12px #7d1e2514;color:#fffaf1}.invitation-gate.invitation-video-gate .invitation-enter:lang(zh):before{border-color:#d8bd8c}.invitation-gate.invitation-video-gate .invitation-enter:lang(zh):after{background:#d8bd8c}.invitation-gate.invitation-video-gate .invitation-enter:lang(zh):hover{background-color:#6f1820;box-shadow:0 7px 18px #7d1e2524}.invitation-gate.invitation-video-gate .invitation-enter:lang(zh):focus-visible{outline-color:#fffaf1}.invitation-gate.invitation-video-gate .invitation-enter:lang(zh):active{background-color:#6f1820;box-shadow:0 2px 5px #7d1e251a}main>:is(.section,.culture-band,.romantic-transition,.closing){--paper:#fffaf3;--paper-ink:#304b60;--paper-line:#d5c7b4;scroll-margin-top:100px}main>.section{padding-block:clamp(48px,6vw,84px)}main>.section .section-heading h2{font-size:clamp(2rem,3.5vw,3.5rem);line-height:1.16}main>.section .section-heading{margin-bottom:32px}#rsvp,#wish-form{scroll-margin-top:110px}.wedding-details{background:transparent}.date-keepsake{background:var(--paper);border:1px solid var(--paper-line);border-radius:100px 16px 100px 16px;box-shadow:7px 9px 0 #e9e1d7,0 18px 40px #304b6010;color:var(--paper-ink);margin-inline:auto;max-width:820px;padding:30px 44px;position:relative;text-align:center}.date-keepsake h2{font:italic 2.3rem/1.2 var(--serif);margin:8px 0 18px}.essential-details p{color:var(--paper-ink);margin:5px 0}.essential-date{font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.65rem)}.essential-time{font-size:1rem;letter-spacing:.08em}.essential-details h3{font:500 clamp(1.25rem,2.2vw,1.7rem)/1.4 var(--serif);margin:12px 0}.details-note{color:#52606b;margin:12px auto;max-width:540px}.date-keepsake .venue-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:20px}.date-keepsake .button{min-height:46px}.details-photo{border:5px solid #fff;box-shadow:0 3px 12px #304b601a;display:block;height:110px;margin:22px auto 0;object-fit:cover;transform:rotate(-2deg);width:180px}.wedding-details .rsvp-section{margin-top:50px;padding-block:36px}main>.culture-band{padding-block:44px}.culture-band .culture-center{border-radius:60px 12px;padding:30px 24px}.culture-band .culture-center h2{font-size:clamp(1.65rem,3vw,3rem)}.culture-band .culture-center:after,.culture-band .culture-center:before{content:"♡";opacity:.25}.romantic-transition{background:#faf5ef;padding:42px 0}.transition-note{align-items:center;display:flex;gap:clamp(24px,5vw,70px);justify-content:center;max-width:900px}.transition-portrait{background:#fffcf7;border:1px solid #d9cdbd;box-shadow:5px 7px 0 #eddcdb;display:flex;flex:0 0 200px;padding:8px 12px;transform:rotate(-3deg)}.transition-portrait img{height:auto;object-fit:contain;width:50%}.transition-message{color:var(--paper-ink);max-width:460px;text-align:center}.transition-message span{color:#9a6470;font-size:2rem}.transition-message p{font:italic clamp(1.5rem,2.6vw,2.3rem)/1.5 var(--serif);margin:8px 0}main>.tentative-section{background:#fffaf3}.tentative-section .tentative-list{margin-top:24px;max-width:800px}.tentative-section .tentative-item{padding-block:18px}.tentative-section .tentative-item h3{font-size:clamp(1.25rem,2.2vw,1.7rem)}.tentative-section .tentative-item small{color:#886d46}.tentative-section .tentative-dot{animation:none;background:transparent;border:0;box-shadow:none}.tentative-section .tentative-dot:after{background:#fffaf3;color:#846176;content:"♡";font:24px/1 var(--serif);position:absolute;transform:translate(-4px,-5px)}main>.play-section.play-section{background:linear-gradient(125deg,#edf4f8,#fffaf3 65%,#f7e9e9)}.play-section .quiz-card{border-radius:45px 14px 45px 14px;box-shadow:5px 7px 0 #dce6eb;margin-inline:auto;max-width:850px}.play-section .quiz-card h3{font-size:clamp(1.55rem,3vw,2.5rem);line-height:1.2}.play-section .activity-grid{gap:24px;margin-top:36px}.play-section .activity-card{background:#fffaf3;border-radius:12px 45px 12px 45px;box-shadow:3px 6px 0 #e7dde1;transition:transform .25s ease,box-shadow .25s ease}.play-section .activity-card:nth-child(2){background:#fffdf9}@media (hover:hover){.play-section .activity-card:hover{box-shadow:5px 12px 0 #e7dde1;transform:translateY(-5px) rotate(-.6deg)}}main>.wishes-section.wishes-section{background:linear-gradient(135deg,#edf3f7,#f9f3ed);color:#304b60}.wishes-section .wishes-heading{align-items:center;gap:40px}.wishes-section .guestbook-intro,.wishes-section .wishes-heading .eyebrow{color:#405b70}.wishes-section .wish-keepsake{background:#fffaf3;border:1px solid #d9cbb7;border-radius:12px 12px 40px 12px;box-shadow:5px 7px 0 #e6dce0;transform:none}.wishes-section .wish-card{background:#fffcf7;border-color:#d9cbb7;border-radius:4px 24px 4px 24px;color:#304b60}.wishes-section .wish-card blockquote,.wishes-section .wishes-controls{color:#304b60}.wishes-section .wishes-arrows button{background:#fffaf3;border-color:#8295a2;color:#304b60;min-height:44px;min-width:44px}.wishes-section .wishes-empty{border-color:#b3bec7;color:#304b60}.wishes-section .wish-card footer small,.wishes-section .wishes-empty p{color:#526574}.wishes-section .wishes-empty .button{background:#fffaf3;border-color:#8295a2;color:#304b60}.wishes-section .wishes-empty>span{color:#9a6470}.wishes-section .wish-keepsake.is-sending{transform:scale(.98) rotate(-1deg)}.wishes-section .wish-keepsake.is-sent{transform:translateY(30px) scale(.82) rotate(3deg)}main>.faq-section.faq-section{background:#fffcf7}.faq-section .faq-item{border-color:#d9cbb7}.faq-section .faq-question{min-height:60px}.faq-section .faq-help-link{background:#f4ede4;border-radius:8px 28px}main>.closing{padding-block:70px}.closing .closing-mark{border-radius:50%;font:2.5rem/1 var(--serif);height:64px;width:64px}.closing .closing-thread path{animation:none;stroke-dasharray:1400;stroke-dashoffset:1400}.closing:has(.closing-inner.is-visible) .closing-thread path{animation:invitation-thread-reveal 3s ease-out forwards}.closing:before{opacity:.09}@keyframes invitation-thread-reveal{to{stroke-dashoffset:0}}@media (max-width:767px){main>.section{padding-block:44px}main>.section .section-heading h2{font-size:2rem}.date-keepsake{border-radius:55px 12px;padding:26px 20px}.date-keepsake h2{font-size:2rem}.transition-note{flex-direction:column;gap:24px}.transition-portrait{flex-basis:auto;width:150px}.transition-message p{font-size:1.5rem}.romantic-transition{padding-block:34px}.tentative-section .tentative-item time{padding-left:0}.wishes-section .wishes-heading{gap:24px;grid-template-columns:1fr}.play-section .activity-grid{gap:20px}.play-section .activity-card{padding:28px 24px}.play-section .fortune-teaser{padding-right:24px}.play-section .fortune-teaser .fortune-envelope{display:block;height:142px;margin:12px auto 8px;min-width:0;position:relative;right:auto;top:auto;width:102px}.play-section .fortune-teaser h3{margin-top:12px}.play-section .quiz-card{padding:28px 24px}main>.closing{padding-bottom:110px}}@media (prefers-reduced-motion:reduce){.play-section .activity-card{transition:none}.closing .closing-thread path,.closing:has(.closing-inner.is-visible) .closing-thread path{animation:none;stroke-dashoffset:0}}.invitation-gate.invitation-video-gate.is-opening{animation:invitation-magic-gate 1s cubic-bezier(.4,0,.2,1) both;opacity:1;pointer-events:none}.invitation-gate.is-opening .invitation-enter,.invitation-magic{pointer-events:none}.invitation-magic{--magic-light:#fffaf1;--magic-wash:#eee0c8eb;--magic-haze:#922d3555;--magic-ring:#d8bd8c;--magic-halo:#c4a06288;--magic-spark:#eee0c8;--magic-accent:#c4a062;inset:0;overflow:hidden;position:fixed;z-index:2001}.invitation-magic:lang(en),.invitation-magic:lang(ms){--magic-light:#fff;--magic-wash:#e2eef5eb;--magic-haze:#4e83a355;--magic-ring:#c3dbea;--magic-halo:#567d9888;--magic-spark:#e2eef5;--magic-accent:#567d98}.invitation-magic:before{animation:invitation-magic-bloom 2.2s ease-in-out both;background:radial-gradient(ellipse at var(--magic-x) var(--magic-y),var(--magic-light) 0,var(--magic-wash) 24%,var(--magic-haze) 62%,transparent 85%);content:"";inset:0;position:absolute}.invitation-magic:after{animation:invitation-magic-ring 1.6s ease-out both;border:1px solid var(--magic-ring);box-shadow:0 0 24px var(--magic-halo),inset 0 0 24px var(--magic-wash);content:"";height:100px;margin:-50px;width:100px}.invitation-magic i,.invitation-magic:after{border-radius:50%;left:var(--magic-x);position:absolute;top:var(--magic-y)}.invitation-magic i{animation:invitation-magic-spark 1.8s var(--spark-delay) cubic-bezier(.16,.6,.3,1) both;background:var(--magic-spark);box-shadow:0 0 7px var(--magic-accent),0 0 16px var(--magic-ring);height:var(--spark-size);width:var(--spark-size)}.invitation-magic i:nth-child(3n){border-radius:0;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%)}@keyframes invitation-magic-gate{0%,15%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.06)}}@keyframes invitation-magic-bloom{0%{opacity:0}35%{opacity:1}55%{opacity:.85}to{opacity:0}}@keyframes invitation-magic-ring{0%{opacity:0;transform:scale(.3)}20%{opacity:.65}to{opacity:0;transform:scale(12)}}@keyframes invitation-magic-spark{0%{opacity:0;transform:translate(0) scale(.2)}20%{opacity:1}to{opacity:0;transform:translate(var(--spark-x),var(--spark-y)) scale(.4)}}@media (prefers-reduced-motion:reduce){.invitation-magic{display:none}.invitation-gate.invitation-video-gate.is-opening{animation:none}}.has-floating-petals{position:relative}.wedding-petals{inset:0;overflow:hidden;pointer-events:none;position:absolute;user-select:none;z-index:0}.wedding-petals span{--petal-left:3%;--petal-size:9px;--petal-speed:23s;--petal-delay:-8s;--petal-drift:12px;--petal-turn:240deg;--petal-opacity:.32;animation:floating-petal var(--petal-speed) linear var(--petal-delay) infinite;animation-play-state:paused;background:linear-gradient(145deg,var(--blush),var(--champagne));border-radius:80% 15% 70% 25%;height:calc(var(--petal-size)*1.4);left:var(--petal-left);opacity:0;position:absolute;top:-20px;width:var(--petal-size)}.wedding-petals span:nth-child(2n){--petal-left:95%;--petal-drift:-14px;--petal-turn:-300deg;--petal-opacity:.24}.wedding-petals span:nth-child(3n){--petal-size:12px;--petal-speed:29s;--petal-delay:-19s;--petal-opacity:.38}.wedding-petals span:nth-child(4n){--petal-left:98%;--petal-size:7px;--petal-speed:26s;--petal-delay:-4s}.wedding-petals span:nth-child(5n){--petal-left:6%;--petal-size:10px;--petal-speed:32s;--petal-delay:-25s;--petal-turn:390deg}.wedding-petals span:nth-child(6n){--petal-left:92%;--petal-size:8px;--petal-speed:21s;--petal-delay:-12s}.wedding-petals span:nth-child(n+7){display:none}@keyframes floating-petal{0%{opacity:0;transform:translateZ(0) rotate(-35deg)}15%{opacity:var(--petal-opacity)}45%{transform:translate3d(var(--petal-drift),42vh,0) rotate(85deg)}75%{opacity:var(--petal-opacity)}to{opacity:0;transform:translate3d(0,95vh,0) rotate(var(--petal-turn))}}@media (max-width:600px){.wedding-petals span:nth-child(n+5){display:none}.wedding-petals span{--petal-size:6px;--petal-left:1%;--petal-drift:5px}.wedding-petals span:nth-child(2n){--petal-left:97%;--petal-drift:-5px}}.ambient-decoration{animation:ambient-paper-drift var(--ambient-duration,8s) ease-in-out var(--ambient-delay,0s) infinite;animation-play-state:paused}.ambient-decoration.is-ambient-active{animation-play-state:running}.wedding-petals.ambient-watch span{animation-play-state:paused}.wedding-petals.ambient-watch.is-ambient-active span{animation-play-state:running}@keyframes ambient-paper-drift{0%,to{rotate:-.6deg;translate:0 0}50%{rotate:.6deg;translate:0 -4px}}.culture-band .culture-center:after,.illustrated-hero .countdown-wrap [data-count]{animation:none}.play-section .activity-card:nth-child(n){transform:none}.play-section .fortune-teaser .fortune-envelope{transform:rotate(6deg)}.fortune-envelope i{transform-origin:top center;transition:transform .45s ease}.play-section .activity-card:focus-within{box-shadow:5px 10px 0 #e7dde1;transform:translateY(-4px)}.play-section .fortune-teaser:focus-within .fortune-envelope i{transform:rotateX(24deg)}.play-section .activity-card:focus-within .ambient-decoration{animation-play-state:paused}.wish-card{transition:transform .35s ease,box-shadow .35s ease}.faq-help-link>span{display:inline-block;transition:transform .35s ease}.faq-help-link:focus-visible>span{transform:translate(3px,-3px)}.date-keepsake .button:focus-visible{transform:translateY(-3px)}.fortune-dialog .fortune-packet:nth-child(n):focus-visible{transform:rotate(var(--packet-angle,0deg)) translateY(calc(var(--packet-offset,0px) - 4px))}@media (hover:hover) and (pointer:fine){.play-section .activity-card:nth-child(n):hover{transform:translateY(-4px)}.play-section .activity-card:hover .ambient-decoration{animation-play-state:paused}.play-section .fortune-teaser:hover .fortune-envelope i{transform:rotateX(24deg)}.wishes-section .wish-card:hover{box-shadow:5px 12px 0 #e7dde150;transform:translateY(-4px) rotate(-1deg)}.faq-help-link:hover>span{transform:translate(3px,-3px)}.date-keepsake .button:hover{transform:translateY(-3px)}.fortune-dialog .fortune-packet:nth-child(n):hover{transform:rotate(var(--packet-angle,0deg)) translateY(calc(var(--packet-offset,0px) - 4px))}}@media (max-width:600px){.fortune-dialog .fortune-packet:nth-child(n){--packet-angle:0deg;--packet-offset:0px}}@media (prefers-reduced-motion:reduce){.ambient-decoration{animation:none!important;rotate:none;translate:none}.wedding-petals{display:none}.wedding-petals span{animation:none}.date-keepsake .button:is(:hover,:focus-visible),.faq-help-link:is(:hover,:focus-visible)>span,.play-section .activity-card:nth-child(n):is(:hover,:focus-within),.wishes-section .wish-card:hover{transform:none}.play-section .fortune-teaser:is(:hover,:focus-within) .fortune-envelope i{transform:none}.fortune-dialog .fortune-packet:nth-child(n):is(:hover,:focus-visible){transform:rotate(var(--packet-angle,0deg)) translateY(var(--packet-offset,0))}}.wedding-rings{display:block;height:70px;margin:0 auto 8px;width:112px}.date-keepsake:after,.date-keepsake:before{background:url(../images/wedding-botanical.svg) 50%/contain no-repeat;bottom:16px;content:"";height:170px;opacity:.68;pointer-events:none;position:absolute;width:100px}.date-keepsake:before{left:12px;transform:rotate(-12deg)}.date-keepsake:after{right:12px;transform:scaleX(-1) rotate(-12deg)}.date-keepsake .details-note,.date-keepsake .essential-details,.date-keepsake .venue-actions{position:relative;z-index:1}.date-keepsake .details-note{max-width:480px}.transition-portrait{position:relative}.transition-portrait:before{background:repeating-linear-gradient(90deg,#e4d2b770 0 3px,#ebddc890 3px 6px);content:"";height:22px;left:calc(50% - 32px);pointer-events:none;position:absolute;top:-12px;transform:rotate(7deg);width:64px}.wedding-ribbon{display:block;height:65px;margin:0 0 18px;width:112px}.wishes-heading>div{position:relative}.closing:after{background:url(../images/wedding-botanical.svg) 50%/contain no-repeat;bottom:-12px;content:"";height:290px;opacity:.24;pointer-events:none;position:absolute;right:max(18px,5vw);transform:rotate(-18deg);width:170px}.closing .closing-inner{position:relative;z-index:1}@media (max-width:767px){.wedding-rings{height:60px;width:96px}.date-keepsake:after,.date-keepsake:before{bottom:auto;height:82px;opacity:.6;top:18px;width:48px}.date-keepsake:before{left:10px}.date-keepsake:after{right:10px}.wedding-ribbon{height:56px;margin-bottom:12px;width:96px}.closing:after{height:170px;opacity:.17;right:0;width:100px}}.fortune-packet:not(.has-category-image) small{margin-top:55%}.fortune-result-card.has-lucky-colour{background:linear-gradient(145deg,var(--fortune-colour-start),var(--fortune-colour-end))}.fortune-result-card.has-lucky-colour .fortune-card-top small,.fortune-result-card.has-lucky-colour blockquote,.fortune-result-card.has-lucky-colour footer{color:#fffaf1}.fortune-dialog .fortune-packets{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr));margin:28px auto;padding:0;width:min(100%,620px)}.fortune-dialog .fortune-packet:nth-child(n){align-items:center;aspect-ratio:auto;background:#fbf5e9;border:1px solid #eadbc6;border-radius:22px;box-shadow:0 5px 18px #79552818;color:#92151b;display:flex;flex-direction:column;justify-content:flex-start;margin:0;padding:18px 0 0;transform:none;width:100%}.fortune-dialog .fortune-packet:after,.fortune-dialog .fortune-packet:before{display:none}.fortune-dialog .fortune-packet:nth-child(n):hover{transform:translateY(-4px)}.fortune-category-icon{align-items:center;display:flex;font:54px/1.1 Georgia,serif;font-weight:400;gap:16px;justify-content:center}.fortune-category-icon:after,.fortune-category-icon:before{background:#c68e40;content:"";height:1px;width:36px}.fortune-dialog .fortune-packet small{color:#92151b;flex:1;font:500 clamp(1.05rem,3vw,1.5rem)/1.15 var(--serif);letter-spacing:0;margin:8px 0 4px;min-height:54px;padding:0 10px;text-transform:none}.fortune-couple-art{overflow:hidden;position:relative;width:100%}.fortune-couple-art[hidden]{display:none}.fortune-couple-art img{display:block;height:auto;max-height:420px;object-fit:contain;width:100%}.fortune-dialog .fortune-result-card{background:linear-gradient(145deg,var(--fortune-colour-start,#68171e),var(--fortune-colour-end,#922d35));border:1px solid #eadbc6;box-shadow:0 8px 30px #79552818;color:#fffaf1}.fortune-dialog .fortune-result-card .fortune-card-top small,.fortune-dialog .fortune-result-card blockquote,.fortune-dialog .fortune-result-card footer{color:#fffaf1}.fortune-dialog .fortune-result-card .eyebrow,.fortune-dialog .fortune-result-card dt{color:#d8bd8c}.fortune-result-card [data-fortune-title]{font-size:clamp(1.6rem,5vw,2.4rem)}.fortune-result-card [data-fortune-artwork]{margin:20px -24px -10px}@media (max-width:600px){.fortune-dialog .fortune-packets{gap:12px}.fortune-dialog .fortune-packet:nth-child(n){border-radius:16px;padding-top:14px}.fortune-category-icon{font-size:38px;gap:10px}.fortune-category-icon:after,.fortune-category-icon:before{width:22px}}.fortune-dialog .fortune-packets{align-items:stretch}.fortune-result-card [data-fortune-title][hidden]{display:none}.fortune-category-icon img{display:block;height:54px;width:54px}@media (max-width:600px){.fortune-category-icon img{height:20px;width:20px}.fortune-dialog .fortune-packet small{margin:0;max-height:58px}.fortune-couple-art{margin-top:-15px}.fortune-dialog>.dialog-close{right:-10px}}.invitation-surface,.wedding-composition{--invitation-paper:#fcf6ed;--invitation-blush:#f4e7dd;--invitation-wine:#713342;--invitation-gold:#ab8c58;--invitation-ink:#593d42;--invitation-muted:#725b54;--invitation-ribbon:#9b626d;--invitation-glow:#ead5d766;--invitation-garden:#e8c9ca88;--invitation-line:#b99b654d;--invitation-light:#fff6e8;--invitation-light-muted:#f3dec0}:is(.language-en,.language-ms) :is(.wedding-composition,.invitation-surface){--invitation-paper:#f5f9fc;--invitation-blush:#e7eff5;--invitation-wine:#356685;--invitation-gold:#64849a;--invitation-ink:#304b60;--invitation-muted:#526b7c;--invitation-ribbon:#7399b0;--invitation-glow:#cadfeb66;--invitation-garden:#bdd6e788;--invitation-line:#759bb54d;--invitation-light:#f5faff;--invitation-light-muted:#dcebf5}.invitation-surface{isolation:isolate;position:relative}.invitation-surface--blush{background:radial-gradient(ellipse at 12% 40%,#fffaf4aa,transparent 64%),var(--invitation-blush);color:var(--invitation-ink)}.invitation-surface--celebration{background:var(--invitation-wine);color:var(--invitation-light)}main>.culture-band.culture-band{--celebration-seam:#713342;background:linear-gradient(180deg,var(--celebration-seam) 0 72px,var(--red-800) 280px,var(--red-900) 100%)}:is(.language-en,.language-ms)>main>.culture-band.culture-band{--celebration-seam:#356685}.invitation-divider{pointer-events:none}.has-botanical-divider{position:relative}#rsvp.has-botanical-divider,.wedding-anticipation.has-botanical-divider,main>section.has-botanical-divider{border-radius:0;margin-top:-24px;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none' viewBox='0 0 1440 32'%3E%3Cpath d='M0 16q360-31.5 720 0c360 31.5 480 21 720 0v16H0Z'/%3E%3C/svg%3E"),linear-gradient(#000,#000);mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none' viewBox='0 0 1440 32'%3E%3Cpath d='M0 16q360-31.5 720 0c360 31.5 480 21 720 0v16H0Z'/%3E%3C/svg%3E"),linear-gradient(#000,#000);-webkit-mask-position:top,bottom;mask-position:top,bottom;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 24px,100% calc(100% - 23px);mask-size:100% 24px,100% calc(100% - 23px)}main>.hero.illustrated-hero{padding-bottom:28px}main>#venue.section{margin-top:-24px}.invitation-date-scene{border-radius:0}.has-botanical-divider>.invitation-divider--section{display:none}.invitation-divider--section{background:transparent;color:var(--invitation-gold,var(--gold));height:26px;left:50%;position:absolute;top:8px;transform:translateX(-50%);width:min(240px,56%);z-index:1}.invitation-divider--section svg{display:block;height:100%;opacity:.65;width:100%}:is(.culture-band,.closing,.wedding-anticipation)>.invitation-divider--section{color:var(--invitation-light-muted,var(--champagne-soft))}.wedding-anticipation.has-botanical-divider{padding-top:32px}#venue>.invitation-divider--section{height:22px;top:0}@media (max-width:600px){.invitation-divider--section{height:22px;top:6px;width:min(176px,54%)}}.invitation-divider--fine{align-items:center;color:var(--invitation-gold);display:flex;height:1.3rem;justify-content:center;margin:18px auto;max-width:176px}.invitation-divider--fine svg{display:block;height:100%;opacity:.8;width:100%}.hero.illustrated-hero{padding-bottom:0}.hero.illustrated-hero:after{display:none}#venue.section{margin-top:0;padding-block:0}.invitation-date-scene .date-keepsake{background:none;border:0;border-radius:0;box-shadow:none;max-width:820px;padding:28px 42px 52px}.invitation-date-scene .date-keepsake:after,.invitation-date-scene .date-keepsake:before{bottom:38px;height:145px;opacity:.42;top:auto;width:85px}.invitation-date-scene .date-keepsake .wedding-rings{height:48px;margin-bottom:12px;width:76px}.invitation-date-scene .date-keepsake h2{color:var(--invitation-wine);font:500 clamp(1.25rem,2.6vw,1.8rem)/1.4 var(--serif);letter-spacing:.055em;margin:0 0 16px}.invitation-date-scene .essential-details .invitation-date-display{color:var(--invitation-wine);font:500 clamp(2.4rem,7.8vw,4.8rem)/1.15 var(--serif);font-variant-numeric:lining-nums;letter-spacing:.035em;margin:0 0 10px;overflow-wrap:anywhere}.invitation-date-scene .essential-date{color:var(--invitation-muted);font:400 clamp(.88rem,2vw,1rem)/1.6 var(--sans)}.invitation-date-scene .essential-time{color:var(--invitation-muted);font-size:.85rem;letter-spacing:.06em}.invitation-date-scene .essential-details h3{color:var(--invitation-ink);font:600 clamp(1.4rem,3.3vw,2rem)/1.25 var(--serif);margin:0 auto;max-width:540px}.invitation-date-scene .details-note{color:var(--invitation-muted)}.invitation-date-scene .venue-actions{gap:12px;margin-top:22px;position:relative;z-index:1}.invitation-date-scene .venue-actions .button{background:transparent;border-color:var(--invitation-gold);box-shadow:none;color:var(--invitation-wine);font-size:.75rem;padding:11px 20px}.invitation-date-scene .venue-actions .button:hover{background:var(--invitation-light)}.wedding-anticipation{border-radius:0;padding:0 0 38px}.anticipation-content{margin-inline:auto;max-width:900px;padding:20px 0 4px;position:relative;text-align:center}.wedding-anticipation .countdown-wrap{background:none;border:none;box-shadow:none;gap:0;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 auto;max-width:660px;width:calc(100% - 32px)}.wedding-anticipation .countdown-wrap:before{display:none}.wedding-anticipation .countdown-wrap>div:nth-child(n){background:none;border-radius:0;box-shadow:none;min-height:0;min-width:0;padding:0 8px;position:relative;transform:none}.wedding-anticipation .countdown-wrap>div:before{display:none}.wedding-anticipation .countdown-wrap>div:after{background:var(--invitation-light-muted);border-radius:0;height:42%;left:auto;opacity:.35;right:0;top:20%;width:1px}.wedding-anticipation .countdown-wrap>div:last-child:after{display:none}.wedding-anticipation .countdown-wrap [data-count]{animation:none;color:var(--invitation-light);font:500 clamp(2.5rem,7.4vw,4.2rem)/1.1 var(--serif);font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.025em;transform:none;transition:none}.wedding-anticipation .countdown-wrap span{color:var(--invitation-light-muted);display:block;font-size:clamp(.61rem,1.4vw,.76rem);letter-spacing:.055em;line-height:1.5;margin-top:9px;overflow-wrap:anywhere}.wedding-anticipation .invitation-divider--fine{color:var(--invitation-light-muted);margin:26px auto 0;max-width:115px}.invitation-date-scene .reveal,.wedding-anticipation .reveal{transform:translateY(10px);transition-duration:.6s}.invitation-date-scene .reveal.is-visible,.wedding-anticipation .reveal.is-visible{transform:none}.invitation-date-scene .date-keepsake.is-visible .essential-details{animation:invitation-statement .65s .1s both}.anticipation-content.is-visible .countdown-wrap>div{animation:invitation-statement .5s both}.anticipation-content.is-visible .countdown-wrap>div:nth-child(2){animation-delay:.06s}.anticipation-content.is-visible .countdown-wrap>div:nth-child(3){animation-delay:.12s}.anticipation-content.is-visible .countdown-wrap>div:nth-child(4){animation-delay:.18s}@keyframes invitation-statement{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}@media(max-width:600px){.invitation-date-scene .date-keepsake{padding:24px 8px 36px}.invitation-date-scene .date-keepsake:after,.invitation-date-scene .date-keepsake:before{bottom:85px;height:76px;opacity:.3;width:40px}.invitation-date-scene .date-keepsake:before{left:-8px}.invitation-date-scene .date-keepsake:after{right:-8px}.invitation-date-scene .essential-details h3{max-width:265px}.invitation-date-scene .venue-actions .button{min-height:44px;padding-inline:18px}.wedding-anticipation{padding-bottom:34px}}@media(prefers-reduced-motion:reduce){.invitation-date-scene .reveal,.wedding-anticipation .reveal{opacity:1;transform:none;transition:none}.anticipation-content.is-visible .countdown-wrap>div,.invitation-date-scene .date-keepsake.is-visible .essential-details{animation:none}}.mobile-nav{display:none}@media (max-width:900px){body{--mobile-nav-space:calc(76px + env(safe-area-inset-bottom, 0px));padding-bottom:var(--mobile-nav-space)}html{scroll-padding-bottom:calc(90px + env(safe-area-inset-bottom, 0px))}.site-header .site-nav{display:none}.mobile-nav{align-items:stretch;background:var(--ivory);border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(30,45,55,.07);display:flex;gap:4px;inset:auto 0 0;padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom, 0px)) max(8px,env(safe-area-inset-left));position:fixed;z-index:90}.mobile-nav a{align-items:center;border-radius:14px;color:var(--ink-muted);display:flex;flex:1 1 0;flex-direction:column;font:500 .68rem/1.25 var(--sans);gap:5px;justify-content:center;min-height:60px;min-width:0;overflow-wrap:anywhere;padding:5px 2px;text-align:center;text-decoration:none;-webkit-tap-highlight-color:transparent}.mobile-nav svg{fill:none;flex-shrink:0;height:23px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7;width:23px}.mobile-nav a:is(.is-current,:hover){background:var(--champagne-soft);color:var(--red-800)}.mobile-nav a:focus-visible{outline:2px solid var(--red-800);outline-offset:-2px}.music-player,.whatsapp-help{bottom:calc(var(--mobile-nav-space) + 12px)}.whatsapp-help-panel{max-height:calc(100dvh - var(--mobile-nav-space) - 100px);overflow-y:auto}.invitation-pending .mobile-nav{visibility:hidden}}@media (max-width:600px){.wishes-track{align-items:flex-start}.wishes-slide{align-items:start;grid-template-rows:auto}.wishes-slide .wish-card,.wishes-slide .wish-card:first-child{height:auto;justify-content:flex-start;min-height:0;padding:20px}.wishes-slide .wish-card blockquote,.wishes-slide .wish-card:first-child blockquote{font-size:1.1rem;line-height:1.5;margin:8px 0 18px}}