:root{color-scheme:light;--cream:#fffcf4;--ink:#251712}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Georgia,'Times New Roman',serif}body.closed{overflow:hidden}img{display:block;width:100%;height:auto}button{font:inherit}#cover{min-height:100svh;display:grid;place-items:center;background:#171613}#open-envelope{display:block;border:0;padding:0;background:none;width:100%;cursor:pointer}#open-envelope img{max-height:100svh;object-fit:contain}#open-envelope:focus-visible{outline:3px solid white;outline-offset:-8px}#cover.leaving{animation:depart .65s ease forwards;pointer-events:none}main{width:100%;overflow:hidden}section,footer{position:relative}.art{overflow:hidden}.intro{outline:none}.intro.entering picture{display:block;animation:arrive 1.25s cubic-bezier(.2,.7,.25,1) both}.reveal{opacity:1}.motion-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity 1.15s ease,transform 1.15s ease}.motion-ready .reveal.visible{opacity:1;transform:none}.countdown{padding-bottom:5.8vw}.countdown picture{display:block}#timer{display:flex;justify-content:center;align-items:flex-start;gap:.65vw;padding-top:.6vw;font-variant-numeric:tabular-nums}#timer span{display:flex;flex-direction:column;align-items:center;min-width:3.8vw}#timer b{font-size:2.6vw;line-height:1.2;font-weight:400}#timer i{font-size:2.5vw;font-style:normal}#timer small{font-size:max(12px,.65vw);margin-top:.45vw;letter-spacing:.02em}.story{background:#251712;color:var(--cream)}.mobile-content,.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}.footer-contact{position:absolute;bottom:10%;left:39%;width:23%;height:11%}.footer-contact:focus-visible{outline:2px solid var(--cream)}@keyframes depart{to{opacity:0;transform:scale(1.035)}}@keyframes arrive{from{opacity:0;transform:translateY(25px) scale(.98)}to{opacity:1;transform:none}}@media(min-width:1600px){main{max-width:1800px;margin:auto}}@media(max-width:650px){#cover{background:#191914}#open-envelope img{width:100%;max-height:100svh;object-fit:contain}.desktop-art{display:none}.mobile-content{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal;padding:32px 22px}.copy{font-size:16px;line-height:1.6;text-align:center;max-width:32rem;margin:auto}.copy p{margin:0 0 25px}.portrait{width:83%;max-width:350px;margin:0 auto 22px}.oval{width:66%;max-width:250px}.signature{width:90%;max-width:350px;margin:30px auto 0}.welcome{padding:35px 24px 15px}.countdown{padding-bottom:42px}.countdown picture{width:100%}#timer{gap:9px;padding-top:10px}#timer span{min-width:51px}#timer b,#timer i{font-size:29px}#timer small{font-size:12px;margin-top:7px}.story .mobile-content{padding:26px 24px 30px}.story .portrait{width:95%}.love{letter-spacing:.2em;font-size:14px;padding-top:20px}.names{font-size:35px;font-style:italic}.monogram{width:150px;margin:0 auto 25px}.contact .copy{font-size:16px}.contact a{color:inherit;text-decoration:none;display:inline-block;padding:5px 0}.section-title{width:95%;max-width:360px;margin:0 auto 25px}.venue-photo{width:70%;max-width:260px;margin:0 auto 30px}.venue .copy p{margin-bottom:28px}.schedule h2{font-size:32px;font-style:italic;font-weight:400;text-align:center;margin:15px 0 34px}.schedule ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:35px 20px;text-align:center}.schedule li{display:flex;flex-direction:column;align-items:center;gap:7px}.schedule li img{width:85px;height:80px;object-fit:contain}.schedule time,.schedule span{font-size:16px}.schedule span{font-style:italic}.faq h3{font-size:17px;font-weight:400;font-style:italic;margin:32px 0 10px}.faq .copy p{margin-bottom:23px}.palette{max-width:200px;margin:0 auto 25px}.dress h3{font-weight:400;font-size:16px;letter-spacing:.08em;margin:15px 0}.dress-examples{width:95%;max-width:370px;margin:15px auto 35px}.footer-contact{left:22%;width:57%;bottom:9%;height:13%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-ready .reveal{opacity:1;transform:none;transition:none}#cover.leaving,.intro.entering picture{animation:none}}

/* The invitation's original embedded PDF typefaces. */
body{font-family:'CentaurPDF',Georgia,serif;font-style:italic}
#timer,.love,.schedule time,.dress h3{font-family:'WeddingSeasons',Georgia,serif;font-style:normal}
.names,.schedule h2{font-family:'WeddingScript',cursive;font-style:normal;font-weight:400}
#open-envelope{display:flex;justify-content:center;align-items:center;color:inherit}
.cover-stage{display:block;position:relative;width:min(100vw,182.1333svh);aspect-ratio:1024.5/562.5;isolation:isolate}
#open-envelope .cover-stage picture>img{width:100%;height:100%;max-height:none;object-fit:contain}
.envelope-layers{position:absolute;inset:0;perspective:1100px;pointer-events:none}
#open-envelope .envelope-layers img{position:absolute;max-height:none;object-fit:fill}
#open-envelope .envelope-back,#open-envelope .envelope-pocket{left:32.86%;top:1.86%;width:34.26%;height:76.26%}
.envelope-back{z-index:1;clip-path:inset(43% 0 0 0)}
.envelope-pocket{z-index:3}
#open-envelope .envelope-flap{z-index:4;left:31.5276%;top:32.1778%;width:37.677%;height:46.9333%;transform-origin:50% 7.2%;transform:rotateX(0deg);backface-visibility:visible;transition:transform 1.5s cubic-bezier(.35,.05,.2,1),filter 1.5s ease}
.envelope-card{position:absolute;z-index:2;left:39.2%;top:40%;width:21.8%;height:30%;transition:transform 1s .65s ease;transform:translateY(0)}
#open-envelope .envelope-card img{inset:0;width:100%;height:100%}
.envelope-card>span{position:absolute;inset:15% 5% 0;display:flex;justify-content:center;align-items:center;text-align:center;font-family:'WeddingScript',cursive;font-style:normal;font-size:clamp(20px,3.4vw,65px);line-height:.85;color:#251712}
.opening .envelope-flap{transform:rotateX(-178deg)!important;filter:brightness(.93)}
.opening .envelope-card{transform:translateY(-45%)}
@media(max-width:650px){
 .cover-stage{width:min(100vw,100.4444svh);aspect-ratio:565/562.5}
 #open-envelope .envelope-back,#open-envelope .envelope-pocket{left:18.878%;width:62.1239%}
 #open-envelope .envelope-flap{left:16.4602%;width:68.3186%}
 .envelope-card{left:30.3735%;width:39.5296%}
 .envelope-card>span{font-size:clamp(22px,6vw,39px)}
 .copy{font-family:'CentaurPDF',Georgia,serif;font-style:italic;font-size:19px;line-height:1.5}
 .contact .copy{font-size:18px}
 .faq h3{font-family:'CentaurPDF',Georgia,serif;font-size:21px;font-style:italic}
 .oval{width:100%;max-width:380px}
 .venue-photo{width:100%;max-width:420px;object-fit:contain}
 .schedule h2{font-size:42px;line-height:1.35}
 .names{font-size:43px;line-height:1.35}
 .schedule span{font-family:'CentaurPDF',Georgia,serif;font-style:italic;font-size:19px}
}
@media(prefers-reduced-motion:reduce){.envelope-flap,.envelope-card{transition:none!important}}
#open-envelope .envelope-flap{position:absolute;display:block;transform-style:preserve-3d}
#open-envelope .envelope-flap img{inset:0;width:100%;height:100%;backface-visibility:hidden}
.flap-reverse{transform:rotateX(180deg)}
.envelope-card>span{display:block;padding-top:10%;inset:15% 5% 0}
.music-widget{position:fixed;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:20;font-family:Georgia,serif;font-style:normal;text-align:center;color:#251712}
#music-toggle{background:#fffcf4;color:#251712;border:1px solid #b5a494;border-radius:24px;padding:12px 18px;font-size:14px;cursor:pointer;box-shadow:0 2px 12px #0002}
#music-panel{width:264px;margin-top:8px;padding:12px;background:#fffcf4;border:1px solid #b5a494;border-radius:8px;box-shadow:0 3px 20px #0003}
#music-panel[hidden]{display:none}#music-panel p{font-size:14px;line-height:1.4;margin:0 0 8px}#music-panel iframe{display:block;width:240px;height:200px;border:0}#music-panel #music-status{margin-top:8px}#music-panel a{font-size:14px;color:inherit}#music-toggle:focus-visible{outline:2px solid #80664a;outline-offset:3px}
/* Compact music control; reveal playback assistance only when needed. */
#music-toggle{width:42px;height:42px;padding:0;border-radius:50%;font-size:19px;line-height:1;background:rgba(255,252,244,.88);box-shadow:0 2px 8px #0002}
#music-toggle[aria-pressed="true"]{border-color:#80664a}
#music-panel[hidden]{display:block;position:fixed;left:-10000px;top:0;pointer-events:none;visibility:visible}
