@font-face{font-family:Blush Royal Affair;src:url(/templates/blush-seaside-royal-affair.otf)format("opentype");font-display:swap}@font-face{font-family:Blush Rustic Wedding;src:url(/templates/blush-seaside-rustic-wedding.otf)format("opentype");font-display:swap}:root{--rose:#a95d68;--rose-dark:#82545b;--ink:#654b4d;--muted:#806d6c;--paper:#fff8f7;--border:#a95d6840;color:var(--ink);-webkit-font-smoothing:antialiased;background:#fff1f0;font-family:Baskerville,Iowan Old Style,Georgia,serif}*{box-sizing:border-box}html{min-height:100%}body{min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}:focus-visible{outline-offset:4px;outline:3px solid #a95d6899}.celebration-shell{background:#f9eeec;min-height:100svh;padding:18px}.celebration-paper{background:#fff6f3 url(/templates/blush-seaside-welcome-landscape.png) 50%/cover no-repeat;flex-direction:column;width:min(100%,1080px);min-height:calc(100svh - 36px);margin:0 auto;padding:30px clamp(24px,5vw,66px) 25px;display:flex;box-shadow:0 24px 70px #71484a1a}.celebration-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.header-side{color:var(--rose-dark);letter-spacing:.21em;text-transform:uppercase;font:600 10px/1.9 system-ui,sans-serif}.header-side-right{text-align:right;justify-self:end}.celebration-logo{width:103px;line-height:0;display:block}.celebration-logo img{width:100%;height:auto;display:block}.celebration-body{width:min(100%,690px);margin:auto;padding:22px 0 30px}.page-intro{text-align:center;animation:.5s both rise-in}.eyebrow{color:var(--rose);letter-spacing:.32em;text-transform:uppercase;margin:0 0 15px;font:700 10px/1.5 system-ui,sans-serif}.page-intro h1{color:#755052;max-width:670px;margin:0 auto;font:400 clamp(48px,7vw,76px)/1.08 Blush Royal Affair,Baskerville,Georgia,serif}.page-intro>p:last-child{max-width:510px;color:var(--muted);margin:14px auto 0;font-size:clamp(17px,2.3vw,21px);line-height:1.5}.choice-intro>p:last-child{max-width:440px}.choice-list{gap:16px;margin:34px 0 0;display:grid}.choice-card{background:#fffaf9ed;border:1px solid #a95d684a;border-radius:18px;grid-template-columns:62px minmax(0,1fr) 26px;align-items:center;gap:20px;min-height:150px;padding:24px 29px;text-decoration:none;transition:transform .22s,border-color .22s,box-shadow .22s;animation:.5s both rise-in;display:grid;box-shadow:0 14px 36px #74484c17}.choice-card:nth-child(2){animation-delay:80ms}.choice-card:hover,.choice-card:focus-visible{border-color:#a95d688f;transform:translateY(-3px);box-shadow:0 20px 42px #74484c26}.choice-icon,.upload-card-icon{width:62px;height:62px;color:var(--rose-dark);background:#f3e3e0;border-radius:50%;place-items:center;display:grid}.choice-text{gap:4px;display:grid}.choice-text strong{color:#765054;font:400 clamp(30px,4.3vw,38px)/1.12 Blush Royal Affair,Baskerville,Georgia,serif}.choice-text>span:not(.choice-media){color:var(--muted);font-size:17px;line-height:1.4}.choice-media{color:var(--rose);gap:11px;margin-top:9px;display:flex}.choice-arrow{color:var(--rose);transition:transform .22s}.choice-card:hover .choice-arrow,.choice-card:focus-visible .choice-arrow{transform:translate(4px)}.celebration-footer{text-align:center;margin-top:auto}.footer-rule{background:var(--border);width:125px;height:1px;margin:0 auto 17px;display:block}.celebration-footer p{color:#a87878;margin:0;font:400 30px/1.2 Blush Rustic Wedding,Snell Roundhand,cursive}.return-link{width:fit-content;color:var(--rose-dark);letter-spacing:.08em;text-underline-offset:5px;margin:21px auto 0;font:600 12px/1.5 system-ui,sans-serif;display:block}.upload-card,.message-card{border:1px solid var(--border);background:#fff9f8f0;border-radius:18px;width:min(100%,620px);margin:32px auto 0;padding:28px;animation:.55s 80ms both rise-in;box-shadow:0 17px 42px #74484c1a}.upload-card-heading{align-items:center;gap:18px;margin-bottom:22px;display:flex}.upload-card-icon{flex:0 0 62px}.upload-card-heading h2{color:#765054;margin:0;font:400 36px/1.1 Blush Royal Affair,Baskerville,Georgia,serif}.upload-card-heading p{color:var(--muted);margin:5px 0 0;font-size:16px}.upload-control{position:relative}.upload-control input{opacity:0;clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.upload-dropzone{min-height:174px;color:var(--rose-dark);cursor:pointer;text-align:center;background:#ffffff8c;border:1.5px dashed #a95d6880;border-radius:15px;justify-items:center;gap:5px;padding:27px 18px;transition:background .2s,border-color .2s,transform .2s;display:grid}.upload-dropzone:hover,.upload-dropzone.is-dragging,.upload-control input:focus-visible+.upload-dropzone{border-color:var(--rose);background:#fff;transform:translateY(-2px)}.upload-control input:focus-visible+.upload-dropzone{outline-offset:3px;outline:3px solid #a95d6880}.upload-dropzone.is-disabled{opacity:.55;cursor:not-allowed}.upload-dropzone.is-disabled:hover{transform:none}.upload-dropzone strong{color:#765054;font-size:18px;font-weight:400}.upload-dropzone span{color:var(--muted);font-size:14px}.selected-files{margin-top:20px}.selected-files>p{color:var(--rose-dark);letter-spacing:.12em;text-transform:uppercase;margin:0 0 9px;font:700 11px/1.5 system-ui,sans-serif}.selected-files ul{gap:8px;max-height:230px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.selected-files li{border:1px solid var(--border);background:#ffffffa6;border-radius:9px;align-items:center;gap:10px;min-width:0;padding:9px 11px;display:flex}.selected-files li>svg{color:var(--rose);flex:none}.selected-files li>span{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font:13px/1.4 system-ui,sans-serif;overflow:hidden}.selected-files li button{width:27px;height:27px;color:var(--rose-dark);background:0 0;border:0;border-radius:50%;flex:0 0 27px;place-items:center;margin-left:auto;display:grid}.selected-files li button:hover{background:#f3e3e0}.upload-progress{color:var(--rose-dark);flex-wrap:wrap;justify-content:space-between;gap:8px;margin:20px 0 0;font:13px/1.4 system-ui,sans-serif;display:flex}.progress-track{background:#f1d9d8;border-radius:100px;width:100%;height:7px;overflow:hidden}.progress-track div{border-radius:inherit;background:var(--rose);height:100%;transition:width .15s}.upload-message,.form-feedback{color:var(--rose-dark);text-align:center;margin:18px 0 0;font:600 13px/1.6 system-ui,sans-serif}.upload-note{color:var(--muted);text-align:center;margin:15px 0 0;font:12px/1.6 system-ui,sans-serif}.privacy-note{border-top:1px solid var(--border);color:var(--muted);text-align:center;margin:20px 0 0;padding-top:16px;font-size:13px;font-style:italic;line-height:1.5}.primary-action{color:#fffdfc;background:linear-gradient(135deg,#bd7378,#a85e69);border:1px solid #ffffffc7;border-radius:14px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:61px;padding:13px 24px;font:400 31px/1.1 Blush Royal Affair,Baskerville,Georgia,serif;transition:box-shadow .2s,transform .2s;display:flex;box-shadow:0 13px 28px #914e582e}.primary-action:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 18px 34px #914e5845}.primary-action:disabled{opacity:.6}.upload-submit{margin-top:25px}.upload-more{margin-top:20px;text-decoration:none}.message-form{width:min(100%,620px);margin:0 auto}.message-card{width:100%}.message-card label{color:var(--rose-dark);letter-spacing:.2em;text-transform:uppercase;margin:0 0 10px;font:700 11px/1.5 system-ui,sans-serif;display:block}.message-card label span{font-weight:500}.message-textarea-wrap{margin-bottom:25px;position:relative}.message-card textarea,.message-card input{width:100%;color:var(--ink);background:#fffc;border:1px solid #a95d6852;border-radius:13px;font-size:18px;line-height:1.5;display:block}.message-card textarea{resize:vertical;min-height:176px;padding:17px 18px 32px}.message-card input{min-height:58px;padding:12px 18px}.message-card textarea::placeholder,.message-card input::placeholder{color:#9c8b89}.message-card textarea:focus,.message-card input:focus{border-color:var(--rose);outline:2px solid #a95d6833}.character-count{color:var(--muted);font:12px/1.2 system-ui,sans-serif;position:absolute;bottom:13px;right:15px}.message-submit{margin-top:16px}.message-success{text-align:center;justify-items:center;gap:10px;display:grid}.message-success>svg{color:var(--rose)}.message-success h2{color:var(--rose-dark);margin:4px 0 0;font:400 39px/1.1 Blush Royal Affair,Baskerville,Georgia,serif}.message-success p{color:var(--muted);margin:0;font-size:18px;line-height:1.5}.secondary-action{border:1px solid var(--border);min-height:43px;color:var(--rose-dark);background:#fff;border-radius:999px;margin-top:14px;padding:8px 18px;font:600 12px/1.5 system-ui,sans-serif}.secondary-action:hover{border-color:var(--rose)}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.celebration-shell{padding:0}.celebration-paper{min-height:100svh;padding:max(24px, env(safe-area-inset-top)) 23px max(25px, env(safe-area-inset-bottom));box-shadow:none;background-image:url(/templates/blush-seaside-welcome-portrait.png);background-position:top}.celebration-logo{width:86px}.header-side{letter-spacing:.13em;font-size:8px}.celebration-body{padding:23px 0 31px}.page-intro h1{font-size:clamp(46px,11vw,60px)}.page-intro>p:last-child{max-width:350px;font-size:17px}.choice-list{margin-top:30px}.choice-card{grid-template-columns:48px minmax(0,1fr) 20px;gap:13px;min-height:146px;padding:18px}.choice-icon,.upload-card-icon{width:48px;height:48px}.choice-icon svg{width:26px;height:26px}.choice-text strong{font-size:31px}.choice-text>span:not(.choice-media){font-size:15px}.choice-arrow{width:20px}.celebration-footer p{font-size:28px}.upload-card,.message-card{margin-top:28px;padding:19px}.upload-card-heading{gap:12px}.upload-card-heading h2{font-size:31px}.upload-card-heading p{font-size:14px}.upload-dropzone{min-height:156px}.upload-dropzone strong{font-size:17px}.primary-action{min-height:57px;font-size:29px}.message-card textarea{min-height:180px}}@media (prefers-reduced-motion:reduce){.page-intro,.choice-card,.upload-card,.message-card{animation:none}.choice-card,.choice-arrow,.upload-dropzone,.primary-action,.progress-track div{transition:none}}
