@font-face{font-family:Princess;src:url('assets/serif.otf')}@font-face{font-family:PrincessItalic;src:url('assets/italic.otf')}@font-face{font-family:Body;src:url('assets/body.otf')}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;color:#762c4a;background:#f3dce6;font-family:Body,Arial,sans-serif;font-size:14px;line-height:1.6}body.locked{overflow:hidden}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Princess,Georgia,serif;font-weight:400;line-height:1.2}h2{font-size:30px}button:focus-visible,a:focus-visible{outline:3px solid #aa6c28;outline-offset:4px}.svg-defs{position:absolute;width:0;height:0}.desktop-cover{position:fixed;inset:0 470px 0 0;display:grid;place-items:center;text-align:center;overflow:hidden;background:radial-gradient(ellipse at 40% 30%,#fff8f9aa,transparent 65%),radial-gradient(at 90% 80%,#eed8ee,transparent 65%),#f5dce5}.desktop-cover:before{content:'';position:absolute;inset:28px;border:1px solid #c69b626e;border-radius:220px 220px 4px 4px;pointer-events:none}.desktop-cover:after{content:'✧';position:absolute;top:14%;right:14%;color:#c6a15d;font-size:44px}.desktop-inner{width:min(90%,600px);padding:28px 10px}.eyebrow{font-size:10px;font-weight:bold;letter-spacing:2.7px;line-height:1.8}.desktop-cover .crown{width:70px;height:48px;margin-top:20px}.script{font-family:PrincessItalic,Georgia,serif;font-style:italic;font-size:36px;line-height:1.12}.desktop-cover .script{font-size:29px;margin:8px 0}.desktop-cover h1{font-size:58px;line-height:1.1}.desktop-cover h1 span{font-size:36px}.desktop-cover h1 em{font-family:PrincessItalic;font-weight:400;color:#bc537c}.cover-art{width:230px;height:270px;margin:15px auto 4px;mask-image:radial-gradient(ellipse at center,#000 57%,transparent 73%)}.date-stamp{font-size:11px;letter-spacing:2px;font-weight:bold}.date-stamp i{padding:0 8px;color:#bc9550;font-style:normal}.desktop-note{font-family:PrincessItalic;font-size:19px;margin:15px auto}.tiny{font-size:9px;letter-spacing:1.7px}.line{display:flex;align-items:center;justify-content:center;gap:14px;color:#c89952;margin:20px auto;width:80%}.line:before,.line:after{content:'';height:1px;background:linear-gradient(90deg,transparent,#cfa571);flex:1}.line:after{transform:rotate(180deg)}.invitation{width:470px;margin-left:auto;position:relative;background:#fff5f8;box-shadow:0 0 60px #9a456c24}.crown{display:block;width:68px;height:45px;margin:0 auto 13px}.section{position:relative;text-align:center;overflow:hidden;padding:65px 42px 70px;background:radial-gradient(ellipse at 4% 12%,#f5d5e9aa,transparent 40%),radial-gradient(ellipse at 96% 89%,#f6c6d899,transparent 38%),#fff6f8;border-bottom:1px solid #edc9d4;min-height:680px}.section:before,.frame:before{content:'';position:absolute;inset:12px;border:1px solid #d7b58299;border-radius:140px 140px 32px 32px;pointer-events:none;z-index:0}.section:after{content:'✧';position:absolute;left:29px;top:44%;font-size:20px;color:#d0ad76;pointer-events:none}.section>*:not(.ornament){position:relative;z-index:1}.ornament{position:absolute;inset:0;pointer-events:none;z-index:2}.ornament svg{position:absolute;width:72px;height:200px;opacity:.8}.ornament.top svg:first-child{top:-8px;left:-16px;transform:rotate(15deg)}.ornament.top svg:last-child{top:-8px;right:-16px;transform:scaleX(-1) rotate(15deg)}.ornament.bottom svg:first-child{bottom:-10px;left:-16px;transform:rotate(175deg)}.ornament.bottom svg:last-child{bottom:-10px;right:-16px;transform:scaleX(-1) rotate(175deg)}.crop{background-image:url('assets/reference.png');background-repeat:no-repeat}.opening{position:fixed;right:0;top:0;width:470px;height:100dvh;z-index:20;padding:13px;background:radial-gradient(at 0% 0%,#e8d8f0,transparent 50%),radial-gradient(at 100% 90%,#f8c7da,transparent 50%),#fff2f7;transition:transform 1s cubic-bezier(.6,0,.2,1),opacity .8s;overflow-y:auto}.opening.opened{transform:translateY(-105%);opacity:0;pointer-events:none}.frame{position:relative;min-height:calc(100dvh - 26px);padding:30px 30px 26px;border:1px solid #caaa71;border-radius:170px 170px 35px 35px;display:flex;align-items:center;flex-direction:column;justify-content:center;text-align:center;box-shadow:inset 0 0 0 4px #fff9,0 5px 15px #b86e8c26}.frame:before{inset:7px;border-radius:165px 165px 30px 30px}.frame>*:not(.ornament){z-index:3}.large{width:85px;height:56px;margin-bottom:9px}.opening .script{font-size:43px;margin:12px 0 0}.opening-portrait{width:145px;height:176px;mask-image:radial-gradient(ellipse,#000 58%,transparent 72%);margin:4px 0}.greeting{font-size:11px}.opening h3{font-size:23px;margin-top:6px}.opening .line{margin:15px auto}.opening p:not(.eyebrow,.tiny,.greeting){font-size:13px}.primary,.outline{width:100%;border:1px solid #cda76f;min-height:46px;border-radius:13px;padding:11px 14px;display:inline-flex;gap:8px;align-items:center;justify-content:center;text-decoration:none;font-size:13px;box-shadow:0 3px 0 #c792a12a;transition:filter .2s,transform .2s}.primary{color:#fff;background:linear-gradient(170deg,#f2a7bf,#cf6c90);text-shadow:0 1px 1px #a64a7166;box-shadow:inset 0 0 0 2px #ffffff44,0 3px 5px #a95c7c22}.primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.outline{background:#fffbfc;color:#a3486b;border-color:#e8b7c8}.outline:disabled{opacity:.65;cursor:default}.opening .primary{margin-top:22px;font-size:14px}.primary span{margin-left:14px}.music-note{margin-top:13px;letter-spacing:.5px}.hero{min-height:860px;padding-top:48px}.hero .eyebrow{margin-bottom:16px;font-size:9px}.hero .script{font-size:31px}.two{font-family:Princess,Georgia,serif;font-weight:bold;font-size:69px;line-height:1.2;color:#bf4b76;transform:rotate(-7deg);text-shadow:2px 3px #fff;letter-spacing:2px}.hero-portrait{width:100%;height:320px;margin:-5px auto 0;mask-image:linear-gradient(transparent,#000 5%,#000 88%,transparent)}.name-plaque{padding:14px 20px 18px;border:1px solid #cfaa70;border-radius:50% 50% 20% 20% / 22% 22% 15% 15%;background:#fff7f9;box-shadow:0 0 0 4px #fff9,0 0 0 5px #edd1b9;margin-top:-10px}.name-plaque h1{font-size:35px;color:#98274f;line-height:1.1}.name-plaque h1 span{font-size:29px}.ribbon-label{width:90%;margin:-3px auto 22px;padding:7px 5px;background:linear-gradient(#ffdce7,#ecaac1);border:1px solid #dd99af;border-radius:50% 50% 10% 10% / 25% 25% 10% 10%;font-size:13px;transform:rotate(-3deg);box-shadow:0 4px 10px #cc81a02a}.scroll-cue{display:block;margin-top:25px;text-decoration:none;font-size:10px;letter-spacing:.4px}.scroll-cue span{display:block;font-size:25px;color:#c28b60;animation:bob 2s infinite}.intro{margin:16px auto 27px;font-size:13px;color:#75445a;line-height:1.6}.timeline{margin:30px 0 15px;position:relative}.timeline:before{content:'';position:absolute;top:25px;bottom:35px;left:9px;width:1px;background:#d3b174}.timeline article{display:flex;align-items:center;text-align:left;gap:17px;margin:22px 0;padding-left:25px;position:relative}.timeline article:before{content:'♔';position:absolute;left:0;top:35%;color:#bd904f;background:#fff5f8;font-size:21px;line-height:1}.timeline .crop{width:105px;height:100px;border-radius:17px;flex-shrink:0;border:3px solid #fff;outline:1px solid #e5becb;box-shadow:0 4px 9px #b96e8b15}.timeline h3{font-family:PrincessItalic;font-size:20px;color:#9e3459;margin:5px 0}.timeline p{font-size:12px;line-height:1.45}.age{font-size:7px;font-weight:bold;letter-spacing:1.3px;color:#a47185}.caption{font-size:10px;color:#9b7282;margin:15px 0;line-height:1.7}.event-card{background:#fffcfcbf;border:1px solid #efced9;border-radius:20px;padding:5px 22px;margin-bottom:22px;box-shadow:0 6px 20px #ce9bad12}.event-card>div{display:flex;align-items:center;text-align:left;padding:20px 0;gap:17px;border-bottom:1px solid #efd7de}.event-card>div:last-child{border-bottom:0}.event-icon{font-size:29px;color:#bd8d43;line-height:1}.event-card small{display:block;font-size:8px;letter-spacing:1.4px;color:#a07885}.event-card strong{display:block;font-weight:400;font-size:13px;margin-top:5px}.party .primary{margin-top:12px}.castle{width:220px;height:140px;margin:18px auto -35px;mask-image:radial-gradient(ellipse,#000 40%,transparent 72%)}.timer{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:36px -5px 0}.timer div{padding:17px 0 12px;border:1px solid #ecc3d1;border-radius:15px;background:#fffafb;box-shadow:0 3px 0 #f3d8e2}.timer strong{display:block;font-family:Princess;font-size:34px;color:#b53365;font-weight:400;line-height:1.3}.timer span{font-size:11px}.countdown h2{font-size:28px;margin-top:15px}.unicorn{width:260px;height:290px;margin:15px auto 0;mask-image:radial-gradient(ellipse,#000 43%,transparent 73%)}.small-script{font-size:25px;margin-top:8px}.bow{display:block;width:105px;height:65px;margin:-30px auto 0}.rsvp .crown{width:49px;height:34px;margin-top:-3px}.rsvp h2{font-size:28px}.rsvp .eyebrow{margin-top:9px}form{text-align:left}label,legend{display:block;font-size:12px;color:#742f49;margin:16px 0 7px}label span,legend span{color:#b44972}input:not([type=radio]),select,textarea{display:block;width:100%;border:1px solid #d8bcc8;border-radius:10px;padding:12px 13px;background:#fffdfde6;color:#683047;outline:none;font-size:13px}input:focus,select:focus,textarea:focus{border-color:#bf6c8c;box-shadow:0 0 0 3px #f8dae5}textarea{resize:vertical;min-height:90px}fieldset{border:0;padding:0;margin:0}legend{padding:0;margin-bottom:0}.radio{display:flex;align-items:center;gap:8px;margin:9px 0;font-size:12px}.radio input{accent-color:#ca7296;width:16px;height:16px}.optional{color:#a07c8b}form .primary{margin-top:22px}form .caption{text-align:center}.status:empty{display:none}.status{padding:14px;background:#f9e5ed;border-radius:9px;margin-top:14px;text-align:center;font-size:12px}.empty-wishes{padding:30px 10px 45px;color:#95637a}.empty-wishes>span{font-family:Georgia;font-size:55px;color:#d88eaa}.empty-wishes p{font-size:13px}.wishes{min-height:600px}.wish{display:flex;gap:12px;text-align:left;background:#fffafb;border:1px solid #efc8d6;border-radius:18px;padding:17px;margin-bottom:14px;box-shadow:inset 0 0 0 3px #fff}.avatar{background:#f6dce6;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;color:#ae5377}.wish strong{font-size:12px}.wish p{font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.wish small{font-size:9px;color:#a87e90}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.photo{display:block;border:4px solid #fff;outline:1px solid #e9c6d4;border-radius:17px;height:160px;box-shadow:0 6px 12px #b16c8d16;transition:transform .2s}.photo:nth-child(odd){transform:rotate(-2deg)}.photo:nth-child(even){transform:rotate(2deg)}.photo:hover{transform:rotate(0) scale(1.03)}.gallery{padding-bottom:45px}.thanks{padding-top:35px;padding-bottom:110px;min-height:720px}.thanks .castle{margin:0 auto 0;width:245px;height:150px}.thanks .crown{margin:0 auto 9px}.thanks .script{font-size:41px;margin-bottom:28px}.thanks p{font-size:13px}.thanks h3{font-size:20px;margin-top:12px}.closing-bow{width:170px;height:110px;margin:18px auto}.thanks .eyebrow{font-size:8px}.back-top{display:inline-block;font-size:10px;margin-top:22px;text-decoration:none}.bottom-nav{position:fixed;bottom:14px;right:22px;width:426px;border:1px solid #ebc2d1;border-radius:20px;background:#fff9fbee;backdrop-filter:blur(15px);z-index:8;display:flex;justify-content:space-around;padding:8px 9px;box-shadow:0 5px 25px #8d3f6520}.bottom-nav a{display:flex;flex-direction:column;align-items:center;text-decoration:none;font-size:9px;color:#a07387;min-width:55px}.bottom-nav a span{font-size:20px;line-height:1.4}.bottom-nav a.active{color:#a72e60}.music-toggle{position:fixed;right:20px;top:20px;z-index:10;border:1px solid #d7ae75;background:#fff8fbe8;color:#a84d74;width:39px;height:39px;border-radius:50%;box-shadow:0 2px 8px #b16c8d25}.music-toggle[aria-pressed=true]{animation:sway 4s infinite}.locked .bottom-nav,.locked .music-toggle{visibility:hidden}dialog{width:min(90vw,410px);border:1px solid #d8af83;border-radius:25px;background:#fff5f8;color:#762c4a;padding:32px;box-shadow:0 20px 60px #66204155}dialog::backdrop{background:#50253c88;backdrop-filter:blur(6px)}dialog h2{font-size:25px;text-align:center}.close{position:absolute;top:7px;right:12px;color:#a65576;border:0;background:none;font-size:28px;width:34px;height:34px}.close:hover{color:#6d173a}#photo-dialog{padding:40px 16px 20px;text-align:center;width:min(95vw,600px)}#full-photo{width:100%;height:min(65vh,410px);border-radius:13px}#photo-dialog p{font-family:PrincessItalic;margin-top:15px;font-size:22px}.photo-controls{display:flex;align-items:center;justify-content:center;gap:30px;margin-top:12px}.photo-controls button{width:42px;height:36px;background:#f8dce7;border:1px solid #dfb9c8;color:#8b3d5d;border-radius:9px}.photo-controls span{font-size:12px}@keyframes bob{50%{transform:translateY(6px)}}@keyframes sway{50%{transform:rotate(18deg)}}@media(min-width:1400px){.invitation,.opening{width:520px}.desktop-cover{right:520px}.bottom-nav{width:476px}.section{padding-left:50px;padding-right:50px}.hero-portrait{height:350px}.hero{min-height:900px}}@media(max-width:800px){.desktop-cover{display:none}.invitation,.opening{width:100%;max-width:500px;margin:auto}.opening{left:50%;right:auto;transform:translateX(-50%)}.opening.opened{transform:translate(-50%,-105%)}.bottom-nav{right:auto;left:50%;transform:translateX(-50%);width:calc(100% - 36px);max-width:464px}.music-toggle{right:max(17px,calc((100vw - 500px)/2 + 17px))}.section{padding-left:34px;padding-right:34px;min-height:650px}.hero{padding-top:50px;min-height:800px}.hero-portrait{height:300px}.opening .frame{padding-top:24px;padding-bottom:20px}.gallery .photo{height:145px}.thanks{padding-bottom:110px}.story{padding-left:28px;padding-right:28px}.timeline article{gap:13px}.timeline .crop{width:95px;height:95px}.hero .eyebrow{font-size:8px}.frame{border-radius:155px 155px 30px 30px}.opening .script{font-size:39px}}@media(max-width:360px){.section{padding-left:26px;padding-right:26px}.hero-portrait{height:270px}.timeline .crop{width:78px;height:85px}.timeline article{gap:10px}.timer strong{font-size:27px}.photo-grid{gap:10px}.gallery .photo{height:128px}.opening-portrait{width:118px;height:140px}.opening .script{font-size:34px}.frame{padding-left:24px;padding-right:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.opening{overflow-x:hidden}.frame{overflow:hidden}

[hidden]{display:none!important}.real-photo.opening-portrait{mask-image:none;width:145px;height:176px;border-radius:75px 75px 55px 55px;border:3px solid #fff;outline:1px solid #d5b780;background-color:#fff4f8}.real-photo.cover-art{mask-image:none;border-radius:120px 120px 25px 25px;border:5px solid #fff;outline:1px solid #d3b074;background-color:#fff2f7}.real-photo.hero-portrait{mask-image:none;border-radius:100px 100px 12px 12px;border:4px solid #fff;margin-bottom:12px;background-color:#fff1f7}.manage-link{display:block;font:11px Body;margin:18px auto 0;color:#a46e89;text-decoration:none}.primary:disabled{opacity:.6;cursor:wait}.cms-preview .desktop-cover{display:none}.cms-preview .invitation,.cms-preview .opening{width:100%}.cms-preview .invitation{margin:0}.cms-preview .opening{left:0;right:0;transform:none}.cms-preview .opening.opened{transform:translateY(-105%)}.cms-preview .bottom-nav{width:calc(100% - 36px)}#full-photo{background-color:#fff2f7}.cms-preview .music-toggle{right:17px}.music-toggle[hidden]{display:none!important}

[data-copy],#count-note,.event-card strong{white-space:pre-line;overflow-wrap:anywhere}.desktop-cover h1>span{white-space:pre-line}.date-stamp{line-height:1.6}#event .outline{white-space:normal}

.guest-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.wish-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px 0;font-size:11px}.wish-pager button{border:1px solid #e8b7c8;background:#fff5f9;border-radius:8px;padding:8px;color:#8d3656}.wish-pager button:disabled{opacity:.4}.wish p{white-space:pre-wrap;overflow-wrap:anywhere}.status{white-space:pre-line}
