:root{--rose:#f5e4e9;--ink:#65434d;--gold:#e8c27b;--wine:#6d2334;--script:'Great Vibes',cursive;--serif:'Cormorant Garamond',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f2dfe6;color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.6}body.closed{overflow:hidden}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #bb8c4f;outline-offset:5px}main{overflow:hidden}.entrance{position:fixed;inset:0;z-index:20;perspective:1500px;background:#180e1800;transition:visibility 0s 2.2s;overflow:hidden}.gate{position:absolute;top:0;bottom:0;width:50.05%;background-image:url('../images/gates.png');background-size:200% 100%;transition:transform 2.3s cubic-bezier(.36,.04,.21,1),filter 2s;backface-visibility:hidden}.gate-left{left:0;background-position:left center;transform-origin:left}.gate-right{right:0;background-position:right center;transform-origin:right}.entrance:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 20%,#130d1780 100%);pointer-events:none;transition:opacity 1s}.entry-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff2d3;padding:25px;z-index:2;text-shadow:0 2px 15px #000;transition:opacity .6s,transform .8s}.eyebrow{font-size:14px;letter-spacing:.19em}.entry-copy>.eyebrow{margin-top:12vh}.entry-names{font-family:var(--script);font-size:clamp(48px,7vw,88px);line-height:1.2;margin:15px 0 32px}.entry-names>span{font-size:.65em}.open-button{border:0;background:none;color:inherit;display:flex;flex-direction:column;align-items:center;gap:12px;font-size:20px;text-shadow:0 1px 8px #000}.seal{border:1px solid #e9d39e;outline:1px solid #e9d39e80;outline-offset:5px;border-radius:50%;height:85px;width:85px;background:linear-gradient(130deg,#a97841,#eac786,#805322);box-shadow:0 4px 25px #0007;display:grid;place-content:center;font-size:27px;line-height:1;position:relative;color:#4d2b20;text-shadow:none;letter-spacing:2px}.seal>span{font-size:17px;margin:3px}.tiny{font-size:14px;font-style:italic}.opening .gate-left{transform:rotateY(-105deg)}.opening .gate-right{transform:rotateY(105deg)}.opening .entry-copy{opacity:0;transform:translateY(20px);pointer-events:none}.opening:after{opacity:0}.entrance.opening{visibility:hidden;pointer-events:none}.hero{height:100svh;min-height:660px;max-height:1200px;position:relative;background:#171626 url('../images/palace.png') center 42%/cover no-repeat;color:#fff4e5;display:flex;justify-content:center;align-items:center;text-align:center}.hero-shade{position:absolute;inset:0;background:linear-gradient(0deg,#25152480,transparent 25%,#100f282b 85%)}.hero-copy{position:relative;margin-top:13vh;padding:20px;max-width:680px;filter:drop-shadow(0 2px 4px #100912)}.getting{font-size:21px;margin:0 0 5px;letter-spacing:.02em}.small-heart{color:#f3c6d5;font-size:28px;margin:0 0 14px}h1{margin:0;line-height:1.15;font-weight:400}h1>span{display:block;color:#f4c957;font-family:var(--script);font-size:clamp(62px,7vw,100px);text-shadow:0 2px 12px #1b0c1b}h1 small{display:block;font-size:clamp(14px,1.4vw,20px);font-style:italic;max-width:350px;margin:7px auto 14px;line-height:1.4}h1 em{font-family:var(--script);font-size:40px;color:#ebc06e;display:block;margin:10px 0}.scroll-cue{position:absolute;bottom:36px;text-decoration:none;letter-spacing:.23em;font-size:12px}.scroll-cue span{display:block;font-size:26px;line-height:1.1;animation:bob 2s infinite}.section{padding:90px 25px;text-align:center;position:relative}.section>div{max-width:650px;margin:auto}.section h2{font-family:var(--script);font-size:clamp(36px,4vw,53px);font-weight:400;line-height:1.3;margin:8px 0 21px}.section p{margin:10px 0}.section h3{font-weight:500;font-size:28px;margin:15px 0 5px}.welcome{padding-top:115px;background:linear-gradient(#402a3e,#b88b9f 15%,var(--rose) 55%)}.welcome>div{padding-top:55px}.welcome h3{font-family:var(--script);font-size:40px}.flourish{font-size:38px}.divider{display:flex;justify-content:center;align-items:center;gap:15px;max-width:185px;margin:27px auto;color:#b78696;font-size:16px}.divider:before,.divider:after{content:'';height:1px;background:#b7869677;flex:1}.date{font-size:28px;font-weight:600}.text-button{border:0;background:none;border-bottom:1px solid #ac7e8e;color:var(--ink);font-size:16px;padding:10px 0;margin-top:15px}.text-button span{margin-left:20px}.countdown-section{background:var(--rose);padding-top:45px;padding-bottom:60px}.countdown{display:flex;align-items:flex-start;justify-content:center;gap:20px;margin:45px 0 0}.countdown strong{font-size:50px;font-weight:400;line-height:1;font-variant-numeric:tabular-nums}.countdown span{display:block;font-size:14px;margin-top:12px}.countdown i{font-size:30px;font-style:normal;opacity:.4;line-height:1.3}.timeline-section{background:linear-gradient(var(--rose),#f3dce5)}.section-icon{font-size:30px;line-height:1.2;display:block;margin-bottom:14px}.timeline{margin:45px auto 0;max-width:360px;text-align:left;padding-left:30px;border-left:1px solid #b68c9a}.timeline article{position:relative;padding:0 0 35px}.timeline article:last-child{padding-bottom:0}.timeline article:before{content:'';position:absolute;left:-36px;top:13px;width:10px;height:10px;border-radius:50%;background:#88596a;box-shadow:0 0 0 5px #f3dce5}.timeline h3{font-size:24px;margin:0}.timeline p{font-size:17px;margin-top:3px}.venue{background:#f3dce5;padding-top:50px}.venue-image{height:320px;max-width:490px;margin:32px auto;background:url('../images/palace.png') center 67%/cover;border-radius:150px 150px 3px 3px;box-shadow:0 10px 50px #7c4c5c20}.burgundy-button{display:inline-block;border:1px solid var(--wine);border-radius:2px;background:var(--wine);color:#fff1ed;padding:12px 30px;min-height:48px;text-decoration:none;font-size:17px;transition:background .2s}.burgundy-button:hover{background:#4e1826}.burgundy-button span{margin-left:18px}.small-section{padding:65px 25px;background:#f3dce5}.muted{font-size:16px;color:#8a6571}.wishes{background:linear-gradient(#f3dce5,#f7e7ec)}form{text-align:left;max-width:440px;margin:35px auto 0}label{display:block;margin:22px 0 8px;font-size:17px}input,textarea{display:block;background:#fff9fa55;border:1px solid #b992a16b;border-radius:3px;width:100%;padding:12px 14px;color:#65434d;font-size:17px;resize:vertical}input:focus,textarea:focus{outline:1px solid #8e596c}input::placeholder,textarea::placeholder{color:#987780}form .burgundy-button{width:100%;margin-top:15px}.form-note{font-size:14px;color:#8a6571}#wish-status{font-size:16px}#saved-wish{margin:20px auto;padding:20px;border:1px solid #cbaab5;max-width:440px;white-space:pre-wrap;overflow-wrap:anywhere}footer{background:#f7e7ec;padding-top:10px!important;padding-bottom:120px!important}footer h2{margin:45px 0!important}.signature{font-family:var(--script);font-size:36px!important}.wide{max-width:380px;margin:35px auto}.footer-date{font-size:14px;letter-spacing:.22em;padding-top:40px}.back-top{font-size:14px;text-decoration:none}.music-button{position:fixed;top:20px;right:20px;z-index:25;background:#fae8ecd9;color:#6d3448;border:1px solid #fff6;border-radius:50%;height:42px;width:42px;font-size:22px;backdrop-filter:blur(12px)}.music-button[aria-pressed=true]{animation:musicPulse 3s infinite}.bottom-nav{position:fixed;bottom:16px;left:20px;right:20px;display:flex;justify-content:space-between;z-index:10;pointer-events:none}.bottom-nav a,.bottom-nav button{pointer-events:auto;background:#f8e2ead9;border:1px solid #e0bfcb;color:#6d3448;backdrop-filter:blur(12px);border-radius:30px;padding:5px 19px;text-decoration:none;font-size:14px}.bottom-nav a span{font-family:var(--script)}.closed .bottom-nav,.closed .music-button{opacity:0;pointer-events:none}.reveal{opacity:1}.js-ready .reveal{opacity:0;transform:translateY(25px);transition:opacity .9s,transform .9s}.js-ready .reveal.visible{opacity:1;transform:none}@keyframes bob{50%{transform:translateY(7px)}}@keyframes musicPulse{50%{box-shadow:0 0 0 6px #f4dfeb33}}@media(min-width:760px){.entrance{left:50%;width:min(100%,850px);transform:translateX(-50%)}body.closed{background:#1a1220}body.closed:before{content:'';position:fixed;inset:0;background:linear-gradient(90deg,#150e1bdd,#150e1b99),url('../images/gates.png') center/cover;z-index:19}.hero{background-size:auto 115%;background-color:#1a1522}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#171320 0%,transparent 24%,transparent 76%,#171320 100%)}.bottom-nav{max-width:820px;margin:auto}.music-button{right:32px}.section{padding-top:85px;padding-bottom:85px}}@media(max-width:480px){.hero{min-height:650px}.hero-copy{margin-top:8vh}h1>span{font-size:66px}h1 small{max-width:290px;font-size:15px}.countdown{gap:13px}.countdown strong{font-size:40px}.countdown i{font-size:25px}.entry-names{font-size:55px}.section{padding-left:26px;padding-right:26px}.welcome{padding-top:70px}.venue-image{height:270px}.eyebrow{font-size:12px;letter-spacing:.14em}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}.js-ready .reveal{opacity:1;transform:none}}


/* Refined ivory stationery, oxblood accents, and a gold date reveal. */
:root{--paper:#faf6ed;--deep:#4b2230;--muted:#927a65;--line:#d8c6aa}
body{background:var(--paper)}
.redesigned{background:var(--paper);color:var(--deep)}
.redesigned .section{padding:100px 6vw;background:var(--paper)}
.redesigned .section>div{max-width:1100px}
.redesigned .eyebrow{font:11px/1.8 Arial,sans-serif;letter-spacing:.22em;color:#8a7257}
.redesigned .section h2{font-family:var(--serif);font-size:clamp(38px,4.7vw,66px);line-height:1.08;font-weight:400;letter-spacing:-.035em;margin:18px 0 28px}
.redesigned h2 em{font-weight:400;color:#a57769}
.redesigned p{line-height:1.65}
.welcome-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:75px;align-items:center;text-align:left;padding-top:0!important}
.welcome-copy>p:not(.eyebrow){max-width:440px}
.redesigned .handwritten{font-family:var(--script);font-size:30px;color:#a57769;margin-top:28px}
.love-monogram{width:290px;height:330px;border:1px solid var(--line);border-radius:50% 50% 0 0;margin:auto;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:inset 0 0 0 10px var(--paper),inset 0 0 0 11px var(--line)}
.love-monogram>span{font-size:104px;font-style:italic;line-height:1}.love-monogram i{font-family:var(--script);color:#b79765;font-size:55px;margin:35px -8px 0}.love-monogram small{position:absolute;bottom:50px;font:9px Arial,sans-serif;letter-spacing:.26em}
.redesigned .date-experience{background:#4b2230;color:#f9efdf;padding-block:70px;overflow:hidden}
.date-experience:before,.date-experience:after{content:'✧';position:absolute;font-size:210px;line-height:1;color:#c7a36a20;top:30%;pointer-events:none}.date-experience:before{left:3%}.date-experience:after{right:3%}
.date-stage{min-height:610px;display:grid;align-items:center;position:relative;z-index:1}
#scratch-panel,#countdown-panel{grid-area:1/1;width:100%;transition:opacity .7s ease,transform .7s ease}
#scratch-panel.fading{opacity:0;transform:translateY(-18px)}
#countdown-panel{opacity:0;transform:translateY(20px)}#countdown-panel.visible{opacity:1;transform:none}
[hidden]{display:none!important}
.redesigned .date-experience .eyebrow{color:#d5b98c}.redesigned .date-experience h2{color:#fff3df}.redesigned .date-experience h2 em{color:#dbb985}
.redesigned .scratch-hint{font-size:18px;color:#e0cabb;margin-bottom:16px}
.scratch-heart{position:relative;width:min(360px,100%);aspect-ratio:360/320;margin:10px auto;filter:drop-shadow(0 16px 24px #210c1755)}
.heart-date{position:absolute;inset:0;clip-path:polygon(50% 96%,7% 51%,2% 31%,6% 13%,20% 3%,35% 5%,50% 19%,65% 5%,80% 3%,94% 13%,98% 31%,93% 51%);background:#fcf2de;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:20px;color:#542535}
.heart-date span{font:10px/1.8 Arial,sans-serif;letter-spacing:.18em}.heart-date strong{font-size:88px;font-weight:400;line-height:1.05}
#scratch-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;transition:opacity .65s}
#scratch-canvas.uncovered{opacity:0;pointer-events:none}
.redesigned .date-experience .text-button{color:#f4debc;border-color:#ba9569;font-size:16px;margin-top:15px}
.redesigned .countdown{max-width:700px;margin:45px auto;gap:0}.countdown>div{flex:1;border-right:1px solid #c9a66b55}.countdown>div:last-child{border:0}.redesigned .countdown strong{font-size:clamp(44px,7vw,88px);color:#f3d6a4}.redesigned .countdown span{font:10px Arial,sans-serif;text-transform:uppercase;letter-spacing:.18em;margin-top:15px}
.venue-layout,.wishes-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;text-align:left}
.venue-art{border:1px solid var(--line);padding:13px;border-radius:240px 240px 0 0}.redesigned .venue-image{height:470px;margin:0;border-radius:240px 240px 0 0;box-shadow:none}.image-caption{display:block;text-align:center;font:9px/1.8 Arial,sans-serif;letter-spacing:.18em;margin:18px 0 6px;color:#896b4f}
.venue-address{border-left:1px solid #b69a70;padding-left:24px;margin:30px 0}.redesigned .venue-address h3{font-size:32px;margin:0}.redesigned .venue-address p{margin:0}
.redesigned .burgundy-button{background:var(--deep);border:1px solid var(--deep);border-radius:0;padding:14px 24px;font-size:17px}.redesigned .burgundy-button:hover{background:#71384a}
.redesigned .wishes{background:#eee5d8;border-block:1px solid var(--line)}
.wish-panel{padding:35px;border:1px solid #c8b390;background:#faf6ed}.wish-panel form{margin:0}.wish-panel label:first-child{margin-top:0}.wish-panel input,.wish-panel textarea{background:transparent;border:0;border-bottom:1px solid #c6b195;border-radius:0;padding-left:0}.wish-panel .form-note{font-size:13px;color:#765b56}
.redesigned footer.section{padding-top:90px!important;padding-bottom:100px!important}.redesigned footer h2{font-size:clamp(42px,6vw,76px)}.redesigned .signature{font-size:42px!important;color:#986b5d;margin:30px 0 50px}.footer-bottom{border-top:1px solid var(--line);padding-top:25px;display:flex;justify-content:space-between;align-items:center;gap:20px}.footer-bottom .footer-date{padding:0;font:10px/1.8 Arial,sans-serif;letter-spacing:.15em}.back-top{font-size:15px}
.music-button,.bottom-nav a,.bottom-nav button{background:#faf2e5e8;color:#542535;border-color:#c9b18d}
.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}
@media(max-width:700px){.redesigned .section{padding:65px 24px}.welcome-layout,.venue-layout,.wishes-layout{grid-template-columns:1fr;gap:40px;text-align:center}.welcome-copy>p:not(.eyebrow){margin-inline:auto}.love-monogram{width:230px;height:270px}.love-monogram>span{font-size:84px}.love-monogram small{bottom:36px}.date-stage{min-height:600px}.redesigned .date-experience{padding:50px 20px}.date-experience:before,.date-experience:after{font-size:110px}.scratch-heart{max-width:320px}.venue-art{max-width:420px;width:100%;margin:auto}.redesigned .venue-image{height:390px}.venue-address{width:fit-content;margin:25px auto;text-align:left}.wish-panel{padding:26px;text-align:left}.footer-bottom{flex-direction:column}.redesigned .countdown{margin-block:38px}.redesigned .countdown span{font-size:9px;letter-spacing:.09em}}
@media(prefers-reduced-motion:reduce){#scratch-panel,#countdown-panel,#scratch-canvas{transition:none}}

.heart-date{clip-path:url(#heart-mask)}
