:root{--ink:#432b48;--muted:#624b63;--gold:#e8c79b;--rose:#b97b93;--serif:'Cormorant Garamond',Georgia,serif;--sans:Manrope,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);background:#ba95ac;background-image:radial-gradient(ellipse at 90% 18%,#ddb0ba99,transparent 55%),radial-gradient(ellipse at 0% 65%,#907ba888,transparent 60%),linear-gradient(135deg,#c4a3b6,#b99ab4 50%,#d5aab6)}body:after{content:'';position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.12;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.5' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}body.locked{height:100dvh;overflow:hidden}.symbols{position:absolute;width:0;height:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #4d285c;outline-offset:6px}button{color:inherit}a{color:inherit}.section{padding:112px 6%;text-align:center;position:relative;overflow:hidden}.eyebrow{display:block;font:500 10px/1.8 var(--sans);letter-spacing:3px}h1,h2,h3,p{margin-top:0}h1,h2{font:400 clamp(42px,5.5vw,76px)/1.04 var(--serif);letter-spacing:-1.8px;margin:20px 0 24px}p{font-size:13px;line-height:1.9;color:var(--muted)}.hero{height:100svh;min-height:520px;background:radial-gradient(ellipse at 75% 50%,#8e557e,#403348 85%);color:#f7e8d7;display:flex;flex-direction:column;align-items:center;position:relative;padding:23px 4%;overflow:hidden}.hero-top{display:flex;justify-content:space-between;width:100%;font-size:9px;letter-spacing:2.8px}.film-frame{position:relative;flex:1;min-height:0;margin:20px 0 14px;max-width:100%;aspect-ratio:9/16;box-shadow:0 0 100px #c88b8030;border:1px solid #e9cda44a;border-radius:140px 140px 10px 10px;overflow:hidden;background:#594256}video{width:100%;height:100%;object-fit:contain;display:block}.play{position:absolute;inset:0;width:100%;border:0;background:linear-gradient(transparent 30%,#2516269c);color:#fff1df;display:flex;justify-content:flex-end;align-items:center;flex-direction:column;padding:0 12px 45px;gap:18px;font-size:9px;letter-spacing:2px}.play-disc{font-size:29px;width:64px;height:64px;display:grid;place-items:center;border:1px solid #f5dbc6;border-radius:50%;backdrop-filter:blur(8px);background:#c9a1a430}.hero-bottom{min-height:22px;text-align:center;font-size:10px;letter-spacing:1px}.hero-bottom a{display:block;text-decoration:none;font-size:12px;padding:7px}.text-button{border:0;border-bottom:1px solid #65416366;background:none;padding:8px 0;font-size:11px;letter-spacing:.5px}.hero .text-button{color:#f7e8d7;margin-left:15px}.ornament{display:block;width:85px;height:65px;margin:0 auto 28px;fill:none;stroke:var(--ink);stroke-width:1;stroke-linecap:round;stroke-linejoin:round}.moments{padding-left:0;padding-right:0}.section-heading{padding:0 20px}.gallery-window{overflow:hidden;margin-top:48px}.gallery-track{display:flex;gap:24px;width:max-content;align-items:center;transform:translateX(-180px);will-change:transform}.moment{width:340px;height:390px;border:1px solid #f3d9d16b;border-radius:160px 160px 12px 12px;background:radial-gradient(ellipse at 30% 20%,#dfb6c6,#a988a7);display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;overflow:hidden;box-shadow:0 12px 32px #50345213}.moment:nth-child(even){height:340px;border-radius:12px;background:linear-gradient(140deg,#ab8ca9,#dbb2bd)}.moment:before,.moment:after{content:'';position:absolute;width:230px;height:290px;border:1px solid #f4ddcb66;border-radius:50%;transform:rotate(30deg)}.moment:after{transform:rotate(-30deg);width:180px;height:240px}.moment svg{width:65px;height:55px;fill:none;stroke:#634866;stroke-width:1}.moment span{font:italic 30px var(--serif);margin-top:18px}.moment small{font:9px var(--sans);letter-spacing:2px;margin-top:12px}.gallery-controls{display:flex;align-items:center;gap:24px;justify-content:center;margin-top:32px;font-size:10px;letter-spacing:2px}.gallery-controls button{background:transparent;border:1px solid #684b6555;border-radius:50%;height:36px;width:36px}.secret{background:linear-gradient(140deg,#ead0d422,#f1c4c22e)}.scratch-wrap{position:relative;width:min(420px,100%);height:265px;margin:40px auto 16px;border-radius:140px 140px 22px 22px;overflow:hidden;box-shadow:0 14px 50px #67415b22;border:1px solid #efd8bd}.scratch-reveal{position:absolute;inset:0;background:linear-gradient(140deg,#e8ccd0,#cba4bf);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding-top:25px}.scratch-reveal strong{font:500 34px var(--serif)}.scratch-reveal em{font-weight:400}.scratch-reveal>span:not(.eyebrow){font-size:12px}.scratch-reveal small{font-size:10px}#scratch{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;transition:opacity .7s}.reveal-button span{margin-left:20px}.countdown-section{padding-top:100px;padding-bottom:100px}.countdown{display:flex;align-items:center;justify-content:center;max-width:780px;margin:45px auto 25px;padding:38px 20px;border-top:1px solid #edd3c88c;border-bottom:1px solid #edd3c88c}.countdown div{flex:1}.countdown strong{display:block;font:400 clamp(42px,6vw,80px)/1.1 var(--serif);font-variant-numeric:tabular-nums}.countdown span{font-size:9px;letter-spacing:2px;display:block;margin-top:12px}.countdown i{font:26px var(--serif);color:#795974}.couple{background:radial-gradient(ellipse at 50% 50%,#e4b9c6aa,transparent 70%);padding-top:85px;padding-bottom:100px}.couple-names{display:flex;justify-content:center;align-items:center;gap:34px;margin:44px 0}.calligraphy{font:400 clamp(70px,9vw,126px)/1.25 'Great Vibes',cursive}.amp{font:italic 46px var(--serif);color:#79556c}.fine-line{width:70px;height:1px;background:#76566d66;margin:0 auto 30px}.couple p{font:400 23px/1.6 var(--serif)}.couple>.eyebrow:last-child{margin-top:35px}.celebration{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8%;max-width:1200px;margin:auto;padding-top:70px}.celebration-copy{text-align:left}.celebration .ornament{margin-left:0}.celebration h2{font-size:clamp(55px,7vw,90px)}.event-type{font:500 30px var(--serif);margin:30px 0 0}.event-details{border-top:1px solid #73516d44;margin:30px 0;padding-top:25px;display:flex;gap:25px}.event-details span{font-size:9px;letter-spacing:2px}.event-details p{font-size:12px;margin-top:10px}.pill{display:inline-flex;gap:32px;padding:16px 24px;border:1px solid #73516d77;border-radius:35px;text-decoration:none;font-size:11px}.event-art{margin:0;aspect-ratio:9/16;border-radius:160px 160px 20px 20px;overflow:hidden;box-shadow:0 24px 60px #432b4830;border:1px solid #eed3ae99}.event-art img{width:100%;height:100%;object-fit:cover;display:block}.family{margin:30px auto 0;max-width:1100px;border-top:1px solid #edd3c870;border-bottom:1px solid #edd3c870}.blessing{margin:35px 0 50px}.blessing h3{font:500 32px var(--serif);margin:12px 0 5px}.blessing p{margin-bottom:9px}.family-columns{display:flex;align-items:center;justify-content:center;gap:60px}.family-columns h3{font-size:65px;margin-bottom:10px}.family-columns p{font:400 25px/1.5 var(--serif);margin:20px 0}.small-amp{font-style:italic;font-size:18px}.family-ring{width:75px;height:60px;fill:none;stroke:#74516d;stroke-width:1}.presence{margin-top:55px}.presence svg{width:30px;height:30px;fill:none;stroke:#674763}.presence p{margin-top:15px;font-size:12px}footer{padding-bottom:65px!important}footer h2{font-size:clamp(40px,5vw,64px);margin-top:35px}footer p{margin-top:25px}.footer-line{width:1px;height:45px;background:#7e5a7377;margin:30px auto}[hidden]{display:none!important}@media(min-width:1000px){.hero:before,.hero:after{content:'A TOAST TO';position:absolute;left:10%;top:48%;font:400 26px var(--serif);letter-spacing:4px;color:#e8cdbd}.hero:after{content:'FOREVER';left:auto;right:12%}}@media(max-width:600px){.section{padding:75px 24px}h1,h2{letter-spacing:-1px}.hero{padding:18px 16px;min-height:450px}.hero-top{font-size:7px;letter-spacing:1.5px}.film-frame{margin-top:16px;border-radius:100px 100px 10px 10px}.hero-bottom{font-size:9px}.moments{padding-left:0;padding-right:0}.moment{width:250px;height:310px}.moment:nth-child(even){height:275px}.gallery-track{gap:16px}.eyebrow{font-size:8px;letter-spacing:2px}.countdown{padding:26px 0}.countdown span{font-size:7px;letter-spacing:1px}.countdown i{font-size:18px}.couple-names{flex-direction:column;gap:0;margin:28px 0}.couple-names .calligraphy{font-size:83px}.amp{font-size:30px;margin:-10px 0}.celebration{display:flex;flex-direction:column;gap:40px}.celebration-copy{text-align:center}.celebration .ornament{margin-left:auto}.celebration h2{font-size:63px}.event-details{justify-content:center}.event-art{width:min(100%,380px);border-radius:100px 100px 18px 18px}.family-columns{flex-direction:column;gap:15px}.family-ring{height:40px}.family-columns h3{font-size:64px}.family{margin-top:0}.scratch-wrap{height:240px}.scratch-reveal strong{font-size:30px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* A continuous rose and lilac canvas, with no section seams. */
body{background-color:#be9ab2;background-image:radial-gradient(ellipse at 85% 12%,#e6b9c7aa,transparent 40%),radial-gradient(ellipse at 0% 42%,#9c87b3aa,transparent 45%),radial-gradient(ellipse at 90% 72%,#e7b7c588,transparent 45%),linear-gradient(165deg,#ac85a6,#c8a7bd 45%,#bd98b4 75%,#d7adbd)}
.hero{height:100svh;min-height:0;padding:0;display:block;background:transparent;isolation:isolate}
.hero-top,.hero:before,.hero:after{display:none}
.film-frame{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;border:0;border-radius:0;aspect-ratio:auto;box-shadow:none;background:transparent}
.film-frame video{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-glow{display:none}
.hero.finished .hero-glow{opacity:1}
.film-frame,.hero.finished .film-frame{mask-image:linear-gradient(#000 78%,transparent 100%)}
.hero-bottom{position:absolute;z-index:3;bottom:26px;left:20px;right:20px;color:#fff0e8;text-shadow:0 1px 12px #41233c}
.hero.finished .hero-bottom{color:var(--ink);text-shadow:none}
.hero-bottom #film-status{display:none}.hero-bottom #explore{padding:12px}.play{justify-content:center;padding:0;background:#28152726}.play-disc{background:#6c425f55}
.secret,.couple{background:transparent}.family{border:0}.section{overflow:hidden}.moments{padding-top:90px}
.gallery-track{transition:transform .7s cubic-bezier(.22,.61,.36,1);align-items:center}
.moment,.moment:nth-child(even){width:340px;height:340px;border-radius:16px;flex:none;aspect-ratio:1;background:radial-gradient(ellipse at 25% 15%,#dec0d0aa,#ac8eb37a)}
.moment:before{width:78%;height:78%}.moment:after{width:65%;height:65%}.gallery-controls button:disabled{opacity:.3;cursor:default}
.date-flourish{width:min(340px,90%);height:95px;margin:0 auto 38px;display:block;fill:none;stroke:#775374;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.scratch-wrap{width:min(400px,86vw);height:auto;aspect-ratio:1;border-radius:50%;margin:50px auto 24px;border:1px solid #f4dce9aa;box-shadow:0 12px 28px #51334918,0 2px 7px #5133490d}
.scratch-reveal{padding:18px;background:radial-gradient(circle at 30% 22%,#ecd3e3,#c8abd3)}
.scratch-reveal strong{display:flex;flex-direction:column;font-size:36px;line-height:1.15}.scratch-reveal em{font-size:29px}.scratch-reveal small{font-size:9px}
.celebration{display:flex;flex-direction:column;gap:30px;max-width:1000px;padding-top:75px}.celebration h2{font-size:clamp(42px,5.5vw,76px);margin:0 0 16px}.event-art{width:min(440px,100%);aspect-ratio:9/16;border-radius:16px;border:0;box-shadow:0 16px 40px #432b4820}.event-art img{object-fit:contain}
@media(max-width:600px){.hero{padding:0;min-height:0}.film-frame{margin:0;border-radius:0}.moment,.moment:nth-child(even){width:min(76vw,340px);height:auto;aspect-ratio:1;border-radius:14px}.scratch-wrap{width:min(360px,86vw);height:auto}.celebration{gap:24px}.event-art{width:min(380px,100%);border-radius:14px}.scratch-reveal strong{font-size:32px}.scratch-reveal em{font-size:27px}}
/* Cocktail ornaments and a calmer editorial type scale. */
:root{--serif:'DM Serif Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--muted:#59415b}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.play{background:transparent;padding:0}.play:focus-visible{outline:2px solid #ecd4b6;outline-offset:-8px}
.heading-ornament{display:block;width:min(390px,90%);height:auto;aspect-ratio:410/130;margin:0 auto 20px;filter:drop-shadow(0 5px 8px #603f5512)}
.section{padding-top:72px;padding-bottom:72px}.moments{padding-top:65px}.section-heading{padding:0 20px}
h1,h2{font-family:var(--serif);font-weight:400;font-size:clamp(36px,4.5vw,60px);line-height:1.16;letter-spacing:-.7px;margin:14px 0 18px}
.eyebrow{font-size:9px;letter-spacing:2.4px;line-height:1.8}p{font-size:14px;line-height:1.8}.section-heading p{margin-bottom:0}
.gallery-window{margin-top:32px;touch-action:pan-y}.gallery-track{gap:22px}.moment,.moment:nth-child(even){width:clamp(280px,32vw,420px);height:auto;aspect-ratio:1;border-radius:15px;border:1px solid #f5dfe34d;background:#a589a4;box-shadow:0 12px 28px #432b481a}
.moment:before,.moment:after{display:none}.moment img{width:100%;height:100%;object-fit:cover;display:block;user-select:none}.gallery-controls{margin-top:25px;gap:25px}.gallery-controls button{width:40px;height:40px}
.scratch-wrap{margin-top:34px;margin-bottom:19px}.scratch-reveal strong{font-family:var(--serif);font-size:34px;font-weight:400;gap:5px}.scratch-reveal em{font-size:27px}.reveal-button{font-size:12px}.secret h2{line-height:1.2}
.countdown{margin-top:32px;padding:28px 15px}.countdown strong{font-size:clamp(40px,6vw,70px)}.countdown span{letter-spacing:1.7px}.countdown-section{padding-top:60px;padding-bottom:64px}
.calligraphy{font-family:'Pinyon Script',cursive;font-weight:400;font-size:clamp(76px,9vw,125px)}.couple-names{margin:25px 0 30px}.couple p{font-size:21px;line-height:1.7}.couple>.eyebrow:last-child{margin-top:24px}.fine-line{margin-bottom:22px}
.celebration{gap:0;padding-top:65px}.celebration h2{font-size:clamp(36px,4.5vw,60px);margin:0 0 30px}.celebration .heading-ornament{margin-bottom:16px}.event-art{width:min(420px,100%)}
.family{margin-top:0}.blessing{margin:26px 0 34px}.blessing h3{font-size:28px}.family-columns{gap:55px}.family-columns p{font-size:23px;line-height:1.6}.family-columns h3{font-size:69px}.presence{margin-top:32px}.presence p{font-size:13px}.family-ring{width:65px}
footer p{margin-top:22px}footer h2{font-size:clamp(37px,4.5vw,58px);margin-top:25px}.footer-line{height:32px;margin:22px auto}.celebration-effects{position:fixed;inset:0;width:100%;height:100%;z-index:30;pointer-events:none}
@media(max-width:600px){.section{padding-top:55px;padding-bottom:55px}.heading-ornament{width:min(330px,95%);margin-bottom:16px}.eyebrow{font-size:8px;letter-spacing:1.8px}h1,h2{font-size:36px;line-height:1.18}.moment,.moment:nth-child(even){width:76vw;height:auto;aspect-ratio:1}.gallery-track{gap:16px}.gallery-window{margin-top:28px}.gallery-controls{margin-top:22px}.scratch-wrap{width:min(350px,84vw);margin-top:30px}.couple-names{gap:0;margin:24px 0}.couple-names .calligraphy{font-size:85px}.couple p{font-size:20px}.family-columns{gap:12px}.family-columns p{font-size:22px;margin:14px 0}.family-columns h3{font-size:66px}.family-ring{height:33px}.countdown{padding:25px 0}.countdown span{font-size:7px}.celebration h2{margin-bottom:25px}.blessing p{font-size:13px}.blessing h3{font-size:27px}.secret h2{font-size:35px}.presence{margin-top:28px}footer p{font-size:13px}}
/* Image-generated, transparent artwork and reference-inspired invitation typography. */
:root{--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}
.heading-ornament{width:min(440px,92%);height:auto;aspect-ratio:auto;object-fit:contain;margin:0 auto 26px;filter:none}
h1,h2{font-family:var(--serif);font-weight:500;font-size:clamp(44px,5.5vw,72px);line-height:1.08;letter-spacing:-1px;margin:16px 0 23px}
.celebration h2{font-size:clamp(44px,5.5vw,72px);font-weight:500}.eyebrow{font-family:var(--sans);font-weight:500;letter-spacing:2.4px}
p{font-family:var(--sans);font-weight:400}.calligraphy{font-family:'Pinyon Script',cursive;font-weight:400;line-height:1.28;font-size:clamp(90px,11vw,150px)}
.couple-names{gap:36px;margin:30px 0 34px}.amp{font-family:var(--serif);font-weight:400;font-size:39px;color:#9b744f}
.couple p{font-family:var(--sans);font-size:15px;line-height:1.9}.family-columns p{font-family:var(--serif);font-size:28px;line-height:1.45}.blessing h3{font-family:var(--serif);font-weight:500;font-size:34px}
.family-columns h3{font-size:80px}.countdown strong{font-family:var(--serif);font-weight:400}.scratch-reveal strong{font-family:var(--serif);font-weight:500;font-size:39px}.scratch-reveal em{font-size:31px}.scratch-wrap{user-select:none;-webkit-user-select:none}
footer h2{font-family:var(--serif);font-weight:500;font-size:clamp(44px,5.5vw,68px)}
@media(max-width:600px){.heading-ornament{width:min(350px,96%);margin-bottom:24px}h1,h2,.celebration h2{font-size:44px;font-weight:500;line-height:1.1;letter-spacing:-.8px}.secret h2{font-size:42px;line-height:1.16}.couple-names{gap:0;margin:28px 0}.couple-names .calligraphy{font-size:102px}.couple p{font-size:14px}.family-columns h3{font-size:78px}.family-columns p{font-size:27px}.blessing h3{font-size:32px}.scratch-reveal strong{font-size:36px}.scratch-reveal em{font-size:29px}footer h2{font-size:45px}}
/* Legibility, jewellery-like controls, and a framed live countdown. */
body,p,.couple p,.family-columns p,.amp,.countdown strong,.scratch-reveal em{font-weight:500}
h1,h2,h3,.celebration h2,.blessing h3,footer h2,.scratch-reveal strong{font-weight:600}
.eyebrow,.countdown span,.text-button,.gallery-controls,.scratch-reveal small,.hero-bottom{font-weight:600}
.calligraphy{font-weight:500;-webkit-text-stroke:.14px currentColor}
.section{max-width:100%;padding-inline:clamp(20px,5vw,80px)}.moments{padding-inline:0}.family{max-width:1100px}.celebration{max-width:1000px}
.gallery-controls{width:max-content;max-width:calc(100% - 32px);gap:24px;margin:28px auto 0;padding:8px 10px;border:1px solid #f2d9c4aa;border-radius:99px;background:linear-gradient(120deg,#efcedc6b,#cfb1cf77);box-shadow:0 6px 20px #57394c12,inset 0 1px 0 #fff2e866;backdrop-filter:blur(8px)}
.gallery-controls button{width:48px;height:44px;border:1px solid #e6c7a7;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#efd3df,#c39cb8);box-shadow:inset 0 1px 1px #fff2e9bb,0 3px 8px #57354f1a;transition:transform .2s,box-shadow .2s,background .2s}
.gallery-controls button svg{width:25px;height:20px;fill:none;stroke:#65405e;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.gallery-controls button:hover{transform:translateY(-2px);box-shadow:0 5px 12px #57354f2b}.gallery-controls button:active{transform:translateY(1px)}#gallery-count{font-size:11px;min-width:57px;letter-spacing:2px}
.countdown-frame{position:relative;width:min(100%,1000px);aspect-ratio:3;margin:30px auto 20px}.countdown-frame>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.countdown-frame .countdown{position:absolute;inset:29% 11% 23%;display:flex;align-items:center;justify-content:center;width:auto;max-width:none;margin:0;padding:0;border:0;gap:0}
.countdown-frame .countdown div{flex:1;min-width:0;border-left:1px solid #96734599}.countdown-frame .countdown div:first-child{border-left:0}.countdown-frame .countdown i{display:none}
.countdown-frame .countdown strong{font-family:var(--sans);font-weight:500;font-size:clamp(24px,5vw,64px);line-height:1.1;letter-spacing:-2px}.countdown-frame .countdown span{font-size:clamp(7px,1vw,11px);font-weight:600;letter-spacing:1.5px;margin-top:12px}
.scratch-wrap{width:min(390px,86vw);aspect-ratio:1;height:auto;border:5px solid #dac3b3;background:linear-gradient(125deg,#f8e5c9,#b78d67 28%,#f4dcbc 51%,#af8162 80%,#f7d8af);box-shadow:0 12px 32px #50334f26,inset 0 0 0 1px #fff5dd;margin:32px auto 22px;overflow:hidden;isolation:isolate;transition:box-shadow .7s}
.scratch-wrap:after{content:'';position:absolute;inset:5px;border:1px solid #fff0d0b3;border-radius:50%;pointer-events:none;z-index:3}
.scratch-reveal{inset:10px;border-radius:50%;background:radial-gradient(ellipse at 32% 20%,#f1dce6,#d6b4d0 65%,#b58eaf);border:1px solid #f6e3d4;box-shadow:inset 0 0 24px #855b7e16;padding:24px 16px;gap:9px}
.scratch-reveal:before{content:'';position:absolute;inset:12px;border:1px solid #ad819c55;border-radius:50%;pointer-events:none}
.scratch-reveal strong{display:flex;flex-direction:column;gap:0;line-height:1;margin:0;color:#55324f}.scratch-reveal strong .date-day{font:600 clamp(60px,7vw,82px)/.92 var(--serif);letter-spacing:-2px}.scratch-reveal strong em{font:600 31px/1.1 var(--serif);margin:6px 0}.scratch-reveal strong .date-year{font:600 15px/1.4 var(--sans);letter-spacing:4px;margin:3px 0 7px}.scratch-reveal .eyebrow{font-size:8px;letter-spacing:2px}.scratch-reveal>span:not(.eyebrow){font-size:11px;font-weight:600}.scratch-reveal small{font-size:9px;max-width:90%;line-height:1.5}
#scratch{inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);border-radius:50%;transition:opacity 1.1s ease;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Ccircle cx='17' cy='17' r='13' fill='%23e6c5a1' stroke='%23876851' stroke-width='2'/%3E%3Ccircle cx='17' cy='17' r='9' fill='none' stroke='%23fff0d0'/%3E%3C/svg%3E") 17 17,crosshair}
.scratch-wrap.is-revealed{box-shadow:0 12px 36px #51314824,0 0 35px #f5d1e455}.reveal-button{border-bottom-color:#74526b55;padding:12px 8px;font-size:11px;line-height:1.5}
.film-backdrop{display:none!important}
@media(min-aspect-ratio:4/3){.film-frame .film-backdrop{display:block!important;position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;filter:blur(25px) brightness(.72);transform:scale(1.05)}.film-frame #film{position:relative;object-fit:contain}}
@media(min-width:601px) and (max-width:1024px){.section{padding-top:64px;padding-bottom:64px}.moment,.moment:nth-child(even){width:45vw}.couple-names{gap:25px}.couple-names .calligraphy{font-size:clamp(88px,12vw,120px)}.family-columns{gap:25px}.family-columns p{font-size:25px}.family-ring{width:50px;flex-shrink:0}.countdown-frame .countdown strong{font-size:clamp(35px,5.5vw,55px)}}
@media(max-width:600px){h1,h2,.celebration h2,footer h2{font-weight:600}.section{padding-inline:20px}.moments{padding-inline:0}.gallery-controls{gap:18px;margin-top:24px}.gallery-controls button{width:46px;height:44px}.countdown-section{padding-inline:10px}.countdown-frame{margin:24px auto 16px;width:100%}.countdown-frame .countdown{inset:29% 10% 22%}.countdown-frame .countdown strong{font-size:clamp(23px,6.4vw,36px);letter-spacing:-1px}.countdown-frame .countdown span{font-size:clamp(6px,1.8vw,9px);letter-spacing:.6px;margin-top:6px}#countdown-caption{font-size:11px}.scratch-wrap{width:min(350px,86vw)}.scratch-reveal{gap:7px;padding:20px 12px}.scratch-reveal strong .date-day{font-size:66px}.scratch-reveal strong em{font-size:28px}.scratch-reveal strong .date-year{font-size:13px;margin-bottom:5px}.scratch-reveal>span:not(.eyebrow){font-size:10px}.scratch-reveal small{font-size:8px}.scratch-reveal .eyebrow{font-size:7px}.family-columns{gap:12px}}
@media(max-width:360px){h1,h2,.celebration h2,.secret h2{font-size:38px}.couple-names .calligraphy{font-size:86px}.scratch-reveal{gap:5px}.scratch-reveal strong .date-day{font-size:55px}.scratch-reveal strong em{font-size:25px}.family-columns p{font-size:24px}.heading-ornament{width:100%}}
/* Date-only reveal, silent celebration film, and a softly blended studio footer. */
.scratch-reveal strong{gap:12px;justify-content:center;align-items:center}.scratch-reveal strong .date-day{font:500 clamp(68px,8vw,90px)/1 var(--sans);letter-spacing:-3px}.scratch-reveal strong em{font:500 clamp(20px,2.5vw,29px)/1.3 var(--sans);font-style:normal;letter-spacing:4px;margin:0}.scratch-reveal strong .date-year{font:500 clamp(29px,4vw,40px)/1.3 var(--sans);letter-spacing:2px;margin:0}
.event-art{position:relative;background:#3d2445}.event-art video{display:block;width:100%;height:100%;object-fit:cover}.celebration-retry{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 22px;background:#ead4e8e6;color:#472b4d;border:1px solid #f3dfc5;border-radius:30px;font-size:12px;white-space:nowrap}
.brand-footer{position:relative;text-align:center;margin-top:-35px;padding:240px 24px 60px!important;background:linear-gradient(180deg,#29173500 0%,#29173535 12%,#291735a6 25%,#291735ed 38%,#291735 48%,#291735 100%);color:#ddc9ee;overflow:hidden;isolation:isolate}
.brand-content{max-width:680px;margin:0 auto}.brand-logo{display:block;width:min(350px,86%);height:auto;margin:0 auto 0;mix-blend-mode:lighten}.brand-footer .brand-credit{font:500 clamp(23px,2.4vw,30px)/1.5 var(--serif);color:#ddc9ee;margin:0 auto 23px}.brand-socials{display:flex;align-items:center;justify-content:center;gap:22px}.brand-socials a{display:grid;place-items:center;width:48px;height:48px;color:#ddc9ee;border:1px solid #ddc9ee33;border-radius:50%;transition:background .2s,transform .2s}.brand-socials a:hover{background:#ddc9ee16;transform:translateY(-2px)}.brand-socials a:focus-visible{outline-color:#ddc9ee}.brand-socials svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.brand-socials svg .solid{fill:currentColor;stroke:none}.brand-footer .brand-copyright{font:500 16px/1.7 var(--serif);color:#d5bce7;margin:35px 0 0}
.music-toggle{position:fixed;z-index:40;bottom:max(18px,env(safe-area-inset-bottom));left:18px;display:grid;place-items:center;width:44px;height:44px;border:1px solid #ddc9ee99;border-radius:50%;background:#392145d9;color:#edddf6;box-shadow:0 3px 12px #21102e25;backdrop-filter:blur(8px)}.music-toggle svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.music-toggle:not(.is-playing):after{content:'';position:absolute;width:26px;height:1px;background:currentColor;transform:rotate(-45deg)}.music-toggle:focus-visible{outline-color:#edddf6}
@media(max-width:600px){.scratch-reveal strong{gap:12px}.scratch-reveal strong .date-day{font-size:72px}.scratch-reveal strong em{font-size:23px;letter-spacing:3px}.scratch-reveal strong .date-year{font-size:34px}.brand-footer{padding-top:210px!important;padding-bottom:55px!important}.brand-logo{width:min(320px,95%)}.brand-footer .brand-credit{font-size:24px}.brand-footer .brand-copyright{font-size:14px}.music-toggle{width:40px;height:40px;left:12px;bottom:12px}}
@media(max-width:360px){.scratch-reveal strong .date-day{font-size:60px}.scratch-reveal strong em{font-size:19px}.scratch-reveal strong .date-year{font-size:29px}.brand-footer .brand-credit{font-size:22px}}

/* Reserve logo space and complete the gradient before the artwork. */
.brand-footer{background:linear-gradient(to bottom,transparent 0,#533751 105px,#291735 210px,#291735 100%);padding-top:250px!important}.brand-logo{height:auto;aspect-ratio:1448/1086;mask-image:radial-gradient(ellipse at center,#000 48%,transparent 72%)}
@media(max-width:600px){.brand-footer{padding-top:230px!important}}

/* Venue details beneath the celebration, with matching champagne-edged controls. */
.venue-section{padding-top:12px;padding-bottom:55px}.venue-card{position:relative;max-width:690px;margin:0 auto;padding:46px 24px 40px;border:1px solid #dfc5a8;border-radius:25px;background:linear-gradient(125deg,#ebd0de70,#c4a6cb66);box-shadow:0 12px 32px #50334f12;text-align:center}.venue-card:before{content:'';position:absolute;inset:11px;border:1px solid #f4ddc288;border-radius:17px;pointer-events:none}.venue-card h2{font-size:clamp(42px,5vw,60px);margin:0 0 22px}.venue-card h3{font-family:var(--serif);font-size:clamp(30px,4vw,42px);line-height:1.2;font-weight:600;margin:0 0 10px}.venue-card p{font-family:var(--serif);font-size:24px;font-weight:500;margin:0 0 29px}.venue-link{position:relative;display:inline-flex;align-items:center;gap:27px;padding:7px 8px 7px 25px;border:1px solid #f2d9c4;border-radius:99px;color:#65405e;text-decoration:none;background:linear-gradient(120deg,#efcedc8c,#cfb1cf99);box-shadow:0 6px 20px #57394c12,inset 0 1px 0 #fff2e866;font:600 11px var(--sans);letter-spacing:1.8px;transition:transform .2s,box-shadow .2s}.venue-arrow{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid #e6c7a7;background:linear-gradient(135deg,#efd3df,#c39cb8);box-shadow:inset 0 1px 1px #fff2e9bb,0 3px 8px #57354f1a}.venue-arrow svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.venue-link:hover{transform:translateY(-2px);box-shadow:0 8px 22px #57394c26}.venue-link:focus-visible{outline:2px solid #65405e;outline-offset:5px}@media(max-width:600px){.venue-section{padding-top:5px;padding-bottom:40px;padding-inline:20px}.venue-card{padding:38px 18px 32px}.venue-card h2{font-size:43px}.venue-card h3{font-size:32px}}

/* Refined family lettering with a distinct, readable capital I. */
.family-columns .calligraphy{font-family:'Allura',cursive;font-size:clamp(78px,8vw,105px);font-weight:400;line-height:1.2;-webkit-text-stroke:.12px currentColor}.family-columns p,.blessing h3{font-family:'Bodoni Moda',Georgia,serif;font-weight:500;font-style:italic;letter-spacing:.1px}.family-columns p{font-size:clamp(24px,2.6vw,30px);line-height:1.65}.blessing h3{font-size:clamp(29px,3.2vw,36px)}.scratch-reveal .date-day sup{display:inline-block;font-size:.3em;line-height:1;vertical-align:super;margin-left:3px;letter-spacing:0;font-weight:500}@media(max-width:600px){.family-columns .calligraphy{font-size:86px}.family-columns p{font-size:25px}}

.family-columns .calligraphy{font-family:'Tangerine',cursive;font-weight:700;font-size:clamp(92px,10vw,126px);line-height:1.15;letter-spacing:0;-webkit-text-stroke:0}@media(max-width:600px){.family-columns .calligraphy{font-size:104px}}

.family-columns .calligraphy .clear-initial{font-family:'Allura',cursive;font-size:.88em;font-weight:400;display:inline-block;margin-right:-.035em;-webkit-text-stroke:.15px currentColor}

/* Sweeping invitation calligraphy inspired by the supplied lettering. */
.family-columns .calligraphy{font-family:'Great Vibes',cursive;font-size:clamp(76px,8.5vw,112px);font-weight:400;line-height:1.4;letter-spacing:0;-webkit-text-stroke:.12px currentColor}@media(max-width:600px){.family-columns .calligraphy{font-size:86px}}

.reference-initial{display:inline-block;width:.65em;height:.88em;vertical-align:-.015em;margin-right:-.08em;overflow:visible}

/* Upright editorial serif for the couple, without script lettering. */
.family-columns h3.couple-serif{font-family:'Bodoni Moda',Georgia,serif;font-style:normal;font-weight:500;font-size:clamp(48px,6.5vw,76px);line-height:1.22;letter-spacing:-1.3px;margin:20px 0 24px;-webkit-text-stroke:0}@media(max-width:600px){.family-columns h3.couple-serif{font-size:clamp(46px,13vw,60px);letter-spacing:-.8px}}
