@font-face{font-family:Cormorant;src:url('assets/Cormorant.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:GreatVibes;src:url('assets/GreatVibes.ttf') format('truetype');font-display:swap;font-weight:400}
:root{--ink:#3e4657;--soft-ink:#72757d;--blue:#3c4a61;--paper:#f8f5f2;--serif:Cormorant,Georgia,serif;--script:GreatVibes,'Snell Roundhand',cursive;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e9e4e0;color:var(--ink);font-family:var(--serif);font-weight:400}body.intro-locked{overflow:hidden}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block}[hidden]{display:none!important}.site-shell{max-width:560px;margin:auto;background:var(--paper);min-height:100vh;overflow:hidden;position:relative;box-shadow:0 0 50px #524b4022}.script{font-family:var(--script);font-weight:400;line-height:1.1}.section-pad{padding:76px 28px;text-align:center}.eyebrow,.tiny-caps{font:10px/1.8 var(--sans);letter-spacing:.23em;color:#85818a}.eyebrow{margin:0 0 22px}.serif-heading{font:400 clamp(43px,9vw,58px)/1 var(--serif);margin:0}.section-intro{font:13px/1.8 var(--sans);color:#929099;margin:20px 0 28px}.outline-button{display:inline-block;color:inherit;background:transparent;padding:15px 27px;border:1px solid #a6a4ab;outline:1px solid #d2cbd0;outline-offset:-5px;text-decoration:none;font:9px/1.3 var(--sans);letter-spacing:.2em;transition:background .2s}.outline-button:hover{background:#ffffff66}.text-button{border:0;background:transparent;color:inherit;font:10px/1.6 var(--sans);letter-spacing:.14em;padding:14px;cursor:pointer}.text-button span{margin-left:5px}.reveal-on-scroll{transition:opacity .8s ease,transform .8s ease}.js .reveal-on-scroll:not(.visible){opacity:0;transform:translateY(18px)}

.opening{position:fixed;z-index:50;top:0;bottom:0;left:50%;width:min(100%,560px);transform:translateX(-50%);overflow:hidden;background:#e9ddd0}.opening-panel{position:absolute;inset:0;background-image:url('assets/opening.webp');background-position:center;background-repeat:no-repeat;background-size:cover;transition:transform 2.1s cubic-bezier(.65,0,.2,1),opacity 1.6s ease}.opening-top{clip-path:inset(0 0 50% 0)}.opening-bottom{clip-path:inset(50% 0 0 0)}.opening-seal{position:absolute;z-index:2;top:37%;left:50%;transform:translate(-50%,-50%);width:clamp(95px,28vw,155px);aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:#79553f;text-shadow:0 1px 1px #fff9;display:grid;place-items:center;transition:opacity .55s,transform .8s}.monogram{font:400 clamp(21px,6vw,35px)/1 var(--serif);letter-spacing:-.12em;transform:scaleX(.75);padding-right:.12em}.opening-hint{position:absolute;bottom:max(7%,calc(env(safe-area-inset-bottom) + 24px));left:0;width:100%;margin:0;text-align:center;font:9px/1.9 var(--sans);letter-spacing:.18em;color:#745c4e;text-shadow:0 1px 3px #fff;transition:opacity .45s}.opening-hint span{letter-spacing:.08em;font-size:10px}.skip-intro{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));right:16px;border:0;background:#fff9;color:#806e62;padding:7px 10px;border-radius:20px;font:8px/1 var(--sans);letter-spacing:.13em;transition:opacity .4s}.opening.is-opening .opening-top{transform:translateY(-100%)}.opening.is-opening .opening-bottom{transform:translateY(100%)}.opening.is-opening .opening-seal{opacity:0;transform:translate(-50%,-50%) scale(.7)}.opening.is-opening .opening-hint,.opening.is-opening .skip-intro{opacity:0}.opening.done{display:none}

.invite-hero{position:relative;min-height:780px;min-height:100svh;background:#f6ebe1 url('assets/invitation.webp') center/100% 100% no-repeat;text-align:center;display:flex;align-items:center;justify-content:center;overflow:hidden}.iridescent-glow{position:absolute;inset:0;background:linear-gradient(125deg,transparent 17%,#fff7 24%,#dce8f733 30%,transparent 42%,#eed5e633 62%,transparent 74%);mix-blend-mode:screen;animation:shine 7s ease-in-out infinite;pointer-events:none}.invite-text{position:relative;z-index:1;width:65%;max-width:320px;padding:42px 0;color:#666575;opacity:0;transform:translateY(10px);transition:opacity 1.5s ease,transform 1.5s ease}.ready .invite-text{opacity:1;transform:none}.family{font:clamp(17px,4.5vw,22px)/1.05 var(--serif);margin:0 0 24px}.couple{font-weight:400;margin:0;color:#596070}.couple span{display:block;font:clamp(62px,15vw,82px)/.96 var(--script)}.couple em{display:block;font:italic 23px/1 var(--serif);margin:8px 0 14px}.invitation-chinese{font:12px/1.8 var(--sans);letter-spacing:.1em;margin:22px 0}.invite-text .tiny-caps{font-size:8px}.venue-name{font:22px/1 var(--serif);margin:12px 0 1px}.place{margin:5px}.ribbon{position:absolute;z-index:3;top:49%;left:50%;width:125%;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 5px 9px #ad958b55)}.ribbon img{width:100%}.untie .ribbon{animation:unribbon 2.4s cubic-bezier(.4,0,.2,1) forwards}.scroll-cue{position:absolute;z-index:2;bottom:7%;left:0;right:0;color:#837d83;text-decoration:none;font:8px/1.5 var(--sans);letter-spacing:.22em;opacity:0;transition:opacity 1s}.scroll-cue span{display:block;font-size:18px}.ready .scroll-cue{opacity:1}@keyframes unribbon{0%{transform:translate(-50%,-50%) scale(1);opacity:1}40%{transform:translate(-50%,-50%) scaleX(1.15) scaleY(.82);opacity:1}100%{transform:translate(-50%,-50%) scaleX(1.8) scaleY(.2);opacity:0}}@keyframes shine{0%,100%{opacity:.25;transform:translateX(-10%)}50%{opacity:.8;transform:translateX(10%)}}

.scratch-section{background:#f8f4ef}.scratch-section .eyebrow{margin-bottom:16px}.scratch-frame{padding:12px;max-width:320px;margin:0 auto;background:linear-gradient(135deg,#ddd3cb,#fffaf2,#c8bdba,#fffbf5);box-shadow:0 6px 24px #7a6c5e22}.scratch-card{position:relative;height:182px;overflow:hidden;background:#f6f0e9}.scratch-under{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#66616b}.scratch-under .small-script{font-size:28px}.scratch-under strong{font:400 26px/1.6 var(--serif);letter-spacing:.12em}.scratch-under>span:last-child{font:9px/1.5 var(--sans);letter-spacing:.14em}.scratch-card canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.scratch-message{min-height:18px;font:italic 15px var(--serif);color:#a29ca0;margin:4px 0 0}.scratch-section .text-button{margin-top:20px;color:#827b80}

.countdown-section{background:#9aa7ae;color:#f7f4ef;padding-top:56px;padding-bottom:50px}.count-title{font:400 39px/1 var(--serif);margin:0 0 25px}.count-plaque{position:relative;max-width:370px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);background:#f5f1e8;color:#4b5261;border:4px double #b4b3af;border-radius:11px;box-shadow:0 1px 6px #43525c70,inset 0 0 6px #b7aba466;padding:15px 8px}.count-plaque:before,.count-plaque:after{content:'✧';position:absolute;color:#ede9e2;font-size:18px;top:-13px;left:50%;transform:translateX(-50%);text-shadow:0 1px 2px #52616b}.count-plaque:after{top:auto;bottom:-13px}.count-plaque strong{font:400 clamp(22px,6vw,30px)/1 var(--serif);display:block;letter-spacing:.1em}.count-plaque span{font:7px/2 var(--sans);letter-spacing:.14em}.see-you{font-size:35px;margin:22px 0 0;color:#f4f1eb}

.story-section{padding:32px 28px;background:#e9d7cd url('assets/pearl-texture.webp') center/100% 100%}.story-inner{border:1px solid #ffffff9c;padding:78px 30px;color:#666675;text-shadow:0 1px 5px #fff8}.story-inner .eyebrow{color:#88828a}.story-title{font-size:54px;margin:0}.story-divider{font-size:24px;color:#e4d4bd;margin:18px 0}.story-inner p:not(.eyebrow):not(.signature){font:12px/2.1 var(--sans);letter-spacing:.05em}.signature{font-size:33px;margin:28px 0 0}

.location-section{background:#f9f8f7;padding:80px 28px 74px}.venue-script{font-size:37px;margin:22px 0 0}.location-hk{margin:10px 0 24px}.location-copy{font:12px/2 var(--sans);color:#878991;max-width:340px;margin:0 auto 24px}.marina-illustration{margin:20px -28px 13px}.marina-illustration img{width:100%;mix-blend-mode:multiply}.address{font:13px/2 var(--sans);color:#888890;letter-spacing:.03em;margin:20px 0 27px}

.day-section{background:#f3e9de url('assets/curtains.webp') center/100% 100% no-repeat;padding:100px 20px 125px;min-height:1050px}.day-content{width:62%;max-width:300px;margin:auto;text-align:center}.day-content .eyebrow{white-space:nowrap;font-size:8px;letter-spacing:.13em}.day-title{font-size:70px;line-height:.74;margin:40px 0 37px}.day-intro{font:11px/1.8 var(--sans);color:#8e8990;margin:0 0 38px}.timeline{text-align:left;position:relative;list-style:none;padding:0 0 0 32px;margin:0 auto;max-width:250px}.timeline:before{content:'';position:absolute;left:5px;top:14px;bottom:38px;width:1px;background:#9b9da0}.timeline-item{position:relative;min-height:125px;opacity:0;transform:translateY(17px);transition:opacity .8s ease,transform .8s ease}.timeline-item.visible{opacity:1;transform:none}.pearl-dot{position:absolute;top:5px;left:-31px;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 30%,white,#c6bdba 45%,#93939a);box-shadow:0 0 0 2px #f8f3ec}.timeline time{font:25px/1 var(--serif);white-space:nowrap}.timeline time small{font-size:13px}.timeline h3{font:10px/1.5 var(--sans);letter-spacing:.17em;margin:8px 0}.timeline p{font:11px/1.6 var(--sans);color:#959096;margin:0;white-space:normal}

.getting-section{background:#e5d6cd url('assets/pearl-texture.webp') center/cover;padding:65px 25px}.getting-card{background:#f9f6f2eF;padding:55px 28px;box-shadow:0 4px 20px #9a827722}.transport-title{font-size:48px;margin:12px 0}.transport-list{text-align:left;margin:25px auto 30px;max-width:310px;color:#888992;font:11px/1.9 var(--sans)}.transport-list b{font-size:10px;letter-spacing:.07em;color:#686e79}.transport-list p{margin:0 0 18px}.map{width:100%;height:230px;margin:28px 0 0;border:1px solid #f8f3ef;filter:saturate(.65)}
.gift-section{background:#a5afb4;padding:70px 35px}.gift-card{background:#f8f0ed;border:4px double #b8b6bc;outline:1px solid #d7d3d2;outline-offset:-10px;padding:45px 25px;color:#555a69}.gift-title{font-size:53px;line-height:.85;margin:0 0 24px}.gift-line{font:25px/1.15 var(--serif);margin:20px 0}.gift-card p:not(.gift-title):not(.gift-line){font:11px/2 var(--sans);color:#8f8c94}.gift-flourish{display:block;font-size:23px;color:#c5b1a2;margin-top:22px}

.rsvp-section{background:#3b4a62;color:#f2f2ef;padding:75px 26px 80px}.rsvp-heading{font:400 53px/1 var(--serif);letter-spacing:.1em;margin:0 0 22px}.rsvp-intro{font:13px/1.8 var(--sans);color:#dadde2;max-width:345px;margin:0 auto 14px}.rsvp-intro.chinese{font-size:12px}.rsvp-envelope{display:block;width:min(100%,300px);padding:0;border:0;background:transparent;color:#f1efec;margin:45px auto 0;transition:transform .6s}.rsvp-envelope img{width:100%;box-shadow:0 8px 24px #17253844}.rsvp-envelope span{display:block;font:9px/1 var(--sans);letter-spacing:.22em;margin:18px}.rsvp-envelope.is-open{transform:translateY(-6px)}.rsvp-form{text-align:left;margin:40px auto 0;max-width:370px}.rsvp-form>label,.rsvp-form legend{display:block;margin:26px 0;color:#d5d9df;font:9px/1.6 var(--sans);letter-spacing:.14em}.rsvp-form input:not([type=radio]),.rsvp-form select,.rsvp-form textarea{display:block;width:100%;margin-top:10px;padding:12px;border:1px solid #8d9bab80;background:#ffffff08;color:#fff;font:13px/1.4 var(--sans);border-radius:2px}.rsvp-form option{color:#333}.rsvp-form input::placeholder,.rsvp-form textarea::placeholder{color:#c7c9d077}.rsvp-form fieldset{border:0;padding:0;margin:28px 0}.rsvp-form legend{margin:0 0 17px}.radio-row{display:block;font:14px/2 var(--serif);color:#f5f3f0;letter-spacing:.03em}.radio-row input{accent-color:#f0e7de;margin-right:9px}.preview-note,.rsvp-status{font:11px/1.8 var(--sans);letter-spacing:0;color:#e1d5ca}.rsvp-submit{display:block;color:white;margin:34px auto 0;border-color:#a4afbe;outline-color:#9ba8ba;letter-spacing:.12em}.rsvp-status{text-align:center;min-height:20px}
.footer{background:#f9f8f6;color:#747681;padding:85px 25px 90px}.footer-seal{width:88px;height:88px;margin:0 auto 32px;border:6px ridge #d6c4ac;border-radius:48% 53% 50% 46%;display:grid;place-items:center;background:radial-gradient(circle,#f7eadd,#d7c4a7);font:21px var(--serif);letter-spacing:-.1em;color:#ab8c69;box-shadow:0 2px 8px #b8a799}.footer>p:not(.with-love):not(.footer-names):not(.tiny-caps){font:20px/1.4 var(--serif)}.with-love{font:9px var(--sans);letter-spacing:.2em;color:#a2a0a2;margin-top:38px}.footer-names{font-size:53px;margin:20px 0}.photo-link{display:block;margin:28px auto 12px;color:#8f8788;font:11px var(--sans);text-decoration:none}.music-toggle{position:fixed;z-index:20;right:max(calc((100vw - 560px)/2 + 14px),14px);bottom:max(18px,env(safe-area-inset-bottom));border:1px solid #ffffffa8;border-radius:25px;background:#f7f2e9db;color:#77717b;box-shadow:0 2px 9px #746e6533;padding:9px 10px;font:14px/1 var(--serif)}.music-toggle span{font:7px var(--sans);letter-spacing:.08em}
@media(max-width:360px){.section-pad{padding-left:22px;padding-right:22px}.invite-text{width:69%}.family{margin-bottom:18px}.couple span{font-size:58px}.day-content{width:65%}.day-title{font-size:61px}.timeline{padding-left:27px}.pearl-dot{left:-26px}.day-section{min-height:950px}.timeline-item{min-height:115px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.js .reveal-on-scroll:not(.visible),.timeline-item{opacity:1;transform:none}}
.opening-seal .monogram{display:block;width:78%;height:85%;padding:0;transform:none;background:url('assets/ahcl-seal.png') center/205% auto no-repeat;border-radius:50%;mask-image:radial-gradient(ellipse,#000 35%,#000b 53%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse,#000 35%,#000b 53%,transparent 70%);mix-blend-mode:multiply}
.footer-seal{border:0;background:url('assets/ahcl-seal.png') center/135% auto no-repeat;box-shadow:none}

/* The opening uses the reference's two continuous motion sequences.  The
   fitted stage keeps the tracked seal aligned with the video on every screen. */
.opening{background:#eee5dc}
.opening-stage{position:absolute;z-index:1;left:50%;top:50%;width:max(min(100vw,560px),calc(100svh * 0.5625));height:max(100svh,calc(min(100vw,560px) * 1.777778));transform:translate(-50%,-50%);overflow:hidden}
.opening-motion{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;background:transparent}
.ribbon-motion{opacity:0;transition:opacity .22s linear}
.ribbon-motion.is-visible{opacity:1}
.opening-seal{z-index:2;left:50%;top:50.67%;width:20%;height:16.7%;max-width:none;aspect-ratio:auto;border-radius:48%;transform:translate(-50%,-50%);background:radial-gradient(ellipse at 38% 32%,#e8d7c2 0%,#cfbba8 54%,#a99989 100%);box-shadow:inset 0 0 0 2px #d3c0ad,inset 0 0 7px #765e4c80;transition:none}
.opening-seal .monogram{width:94%;height:97%;background-size:210% auto;mask-image:radial-gradient(ellipse,#000 39%,#000c 56%,transparent 73%);-webkit-mask-image:radial-gradient(ellipse,#000 39%,#000c 56%,transparent 73%);mix-blend-mode:multiply}
.opening.is-opening .opening-seal{transition:none;opacity:1;transform:translate(-50%,-50%) scale(1)}
.opening-hint,.skip-intro{z-index:3}.opening.is-opening .opening-hint,.opening.is-opening .skip-intro{opacity:0;pointer-events:none}
.invite-hero{background-image:url('assets/hero-frame.png');background-size:cover}
.invite-text{z-index:2}
@media(prefers-reduced-motion:reduce){.ribbon-motion{transition:none}}
.opening-seal{width:35.7%;height:23.0%;padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible}
.opening-seal .wax-impression{display:block;width:100%;height:100%;max-width:none;object-fit:fill;filter:drop-shadow(0 2px 2px #5d4c3d35)}
.footer-seal{background-image:url('assets/ahcl-wax-poster-v3.webp');background-size:280% auto;background-position:center 50.7%;mask-image:radial-gradient(ellipse 50% 50% at center,#000 70%,#000e 82%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 50% 50% at center,#000 70%,#000e 82%,transparent 100%)}
.opening-seal .wax-impression{opacity:1}
.opening-seal .wax-impression{background:url('assets/ahcl-wax-poster-v3.webp') center 50.7%/280% auto no-repeat;mask-image:radial-gradient(ellipse 50% 50% at center,#000 70%,#000e 82%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 50% 50% at center,#000 70%,#000e 82%,transparent 100%)}

/* Refined mother-of-pearl date card, transport card, and RSVP stationery. */
.scratch-section{background:linear-gradient(155deg,#f8f2ef,#f5ecec 55%,#fcf8f3)}
.scratch-frame{width:min(100%,370px);max-width:370px;padding:0;background:transparent;box-shadow:0 9px 28px #9f8f8450,0 1px 3px #ad998744}
.scratch-card{height:auto;aspect-ratio:1.5;background:#f7f1ea url('assets/date-card-pearl-v2.webp') center/100% 100% no-repeat}
.scratch-under{inset:19% 13%;color:#666170;text-shadow:0 1px 0 #fff9}
.scratch-under .scratch-kicker{font:8px/1.5 var(--sans);letter-spacing:.18em;color:#a09591;margin-bottom:5px}
.scratch-under .small-script{font-size:clamp(27px,7vw,38px);white-space:nowrap;line-height:1.15}
.scratch-under strong{font:400 clamp(21px,5.3vw,28px)/1.4 var(--serif);letter-spacing:.12em;white-space:nowrap}
.scratch-under>span:last-child{font-size:8px;letter-spacing:.16em}
.scratch-card canvas{inset:20% 14%;width:72%;height:60%;border-radius:3px;box-shadow:0 2px 12px #a69b9540}
.scratch-message{font-size:16px}
.day-title{margin-top:0}
.getting-section{background:#f3eeea;padding:34px 18px 48px}
.getting-card{position:relative;min-height:800px;padding:98px 18% 100px;background:#f8f5f1 url('assets/mother-pearl-transport-v2.webp') center/100% 100% no-repeat;box-shadow:0 9px 35px #a3989020;display:flex;align-items:center;justify-content:center}
.getting-copy{position:relative;width:100%;max-width:320px;margin:auto;color:#687587}
.getting-card .eyebrow{font-size:9px;letter-spacing:.16em;margin:0 0 13px;color:#8a909a}
.transport-title{font:400 clamp(35px,8vw,48px)/.94 var(--serif);letter-spacing:.01em;color:#586a80;margin:0 0 25px}
.getting-venue{font:400 clamp(17px,4.7vw,22px)/1.15 var(--serif);margin:0 0 8px;color:#65788b}
.getting-address{font:13px/1.8 var(--sans);color:#73808e;margin:0 0 21px}
.transport-list{margin:0 auto 27px;max-width:none;text-align:center;color:#8a969f}
.transport-list>div{margin:0 0 16px}
.transport-list h3{font:500 10px/1.5 var(--sans);letter-spacing:.13em;color:#758492;margin:0 0 3px}
.transport-list p{font:13px/1.7 var(--sans);margin:0;color:#72808e}
.getting-card .outline-button{padding:14px 18px;font-size:8px;color:#67778a;border-color:#a9b1b6;outline-color:#d3d6d6;letter-spacing:.13em}
.map{display:block;height:240px;margin:22px 0 0;border:5px solid #fbf8f4;box-shadow:0 3px 16px #90898028}
.rsvp-envelope{width:min(100%,340px);margin-top:38px}
.rsvp-envelope img{box-shadow:none;filter:drop-shadow(0 12px 18px #18253866)}
.rsvp-envelope span{letter-spacing:.17em;margin:14px;font-size:10px;color:#f0e9df}
@media(max-width:360px){.getting-card{min-height:760px;padding:85px 17%}.transport-title{font-size:35px}.getting-card .eyebrow{font-size:8px}.getting-address,.transport-list p{font-size:12px}.scratch-under .scratch-kicker{font-size:7px}.scratch-under .small-script{font-size:25px}}

/* Floating mother-of-pearl ornaments and a true-to-source AHCL impression. */
.scratch-frame{background:transparent;box-shadow:none}
.scratch-card{background:transparent url('assets/date-frame-transparent-v3.webp') center/100% 100% no-repeat}
.getting-section{background:#f8f4f0}
.getting-card{background:transparent url('assets/transport-frame-transparent-v3.webp') center/100% 100% no-repeat;box-shadow:none}
.footer-seal{position:relative;background:transparent url('assets/ahcl-wax-natural-v7.webp') center/100% 100% no-repeat;mask-image:none;-webkit-mask-image:none}
.opening-seal .wax-impression{filter:drop-shadow(0 2px 3px #5b4b3d38)}
.wax-monogram{display:block;position:absolute;top:50.2%;left:48.8%;width:34%;height:34%;transform:translate(-50%,-50%);background:url('assets/ahcl-original-mark.webp') center/contain no-repeat;filter:grayscale(.58) sepia(.2) brightness(.93);mix-blend-mode:multiply}
.footer-seal{width:140px;height:140px;border:0;border-radius:0;box-shadow:none;margin:0 auto 26px}
.footer-seal .wax-monogram{mix-blend-mode:normal;filter:none;opacity:.82}
.day-section{padding:clamp(155px,30vw,190px) 0 125px;min-height:1100px}
.day-content{width:54%;max-width:260px;min-width:0}
.day-title{font-size:clamp(48px,13vw,64px);line-height:.88;margin:0 0 34px}
.day-intro{max-width:100%;font-size:11px;line-height:1.8;overflow-wrap:anywhere}
.timeline{max-width:100%;padding-left:28px}
.timeline-item{min-width:0}
@media(max-width:360px){.day-section{padding-top:150px;min-height:1060px}.day-content{width:55%}.day-title{font-size:48px}.timeline{padding-left:25px}.pearl-dot{left:-24px}.day-intro{font-size:10px}}
@media(max-width:360px){.getting-copy{max-width:155px}.getting-venue{font-size:15px;line-height:1.25}.transport-list h3{font-size:9px;letter-spacing:.06em}.transport-list p{font-size:11.5px}}

/* The monogram is already integrated into each opening frame. */
.opening-seal{background:transparent!important;box-shadow:none!important}
.opening.is-opening .opening-seal{visibility:hidden;pointer-events:none}

/* The approved seal is used directly; its lettering is part of the image. */
.footer-seal{background:url('assets/approved-seal.webp') center/contain no-repeat;mask-image:radial-gradient(ellipse 49% 49% at center,#000 83%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 49% 49% at center,#000 83%,transparent 100%)}

/* Keep the scratch surface softly within the ornamental frame. */
.scratch-card canvas {
  inset: 24% 18%;
  width: 64%;
  height: 52%;
  border-radius: 0;
  box-shadow: none;
  -webkit-mask-image: radial-gradient(ellipse 70% 69% at center, #000 66%, transparent 100%);
  mask-image: radial-gradient(ellipse 70% 69% at center, #000 66%, transparent 100%);
}

.footer-rings{display:block;width:min(75%,310px);height:auto;margin:24px auto 2px}

/* The illustration fades gently into the surrounding invitation. */
.marina-illustration img{display:block;-webkit-mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 10%,#000 89%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,#000 9%,#000 91%,transparent),linear-gradient(to bottom,transparent,#000 10%,#000 89%,transparent);mask-composite:intersect}
