*{box-sizing:border-box}body{margin:0;font-family:"DM Sans",sans-serif;background:#ede8df;color:#25302d}.guest-upload{min-height:100svh;display:grid;place-items:center;padding:34px 16px;background:radial-gradient(circle at 20% 10%,#fff9ef,transparent 32%),linear-gradient(145deg,#eee6db,#dce4da)}.upload-shell{width:min(560px,100%);background:rgba(255,255,255,.83);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.7);border-radius:32px;padding:36px;box-shadow:0 28px 70px rgba(46,40,33,.12);text-align:center}.upload-symbol{font-size:28px;color:#b18f63}.upload-kicker{font-size:12px;letter-spacing:.22em;color:#927651;font-weight:700;margin-top:12px}.upload-shell h1{font-family:"Playfair Display",serif;font-size:48px;line-height:1;margin:13px 0}.upload-shell h1 span{font-style:italic;color:#93785c}.lead{color:#6d7672;font-size:14px;max-width:430px;margin:0 auto 28px}.upload-shell form{text-align:left}.upload-shell form>label{display:block;font-size:13px;font-weight:700;margin:16px 0}.upload-shell input[type=text],.upload-shell input:not([type=file]){width:100%;margin-top:7px;border:1px solid #ded8cf;border-radius:14px;padding:13px;background:#fff}.guest-drop{border:1.5px dashed #cfc5b8;border-radius:20px;padding:26px!important;text-align:center;background:#faf8f4;cursor:pointer}.guest-drop input{display:none}.upload-plus{font-size:28px}.guest-drop strong,.guest-drop span{display:block}.guest-drop span{font-weight:400;color:#878d89;margin-top:5px}.upload-shell form button{width:100%;border:0;border-radius:999px;background:#31433c;color:#fff;padding:14px;font-weight:700}.upload-shell form>small{display:block;text-align:center;color:#8b918e;margin-top:10px}.back-link{display:inline-block;margin-top:22px;font-size:12px;color:#69736f}.upload-success{background:#f2f7f0;border-radius:22px;padding:26px}.upload-success b{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#dcebd8;color:#416044;font-size:24px;margin:auto}.upload-success h2{font-family:"Playfair Display",serif;margin:12px 0}.upload-success p{color:#65706b}.upload-success a{font-size:12px;text-decoration:underline}.upload-error{background:#fff0ef;color:#8f4846;padding:12px;border-radius:12px;font-size:12px}@media(max-width:560px){.upload-shell{padding:28px 20px}.upload-shell h1{font-size:40px}}
/* V27 guest upload preview */
.guest-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:9px 0}.guest-preview:empty{display:none}.guest-preview img,.guest-preview span{aspect-ratio:1;border-radius:10px;object-fit:cover;width:100%}.guest-preview span{display:grid;place-items:center;background:#eee8e0;font-size:14px;font-weight:800;color:#6e6256}.upload-shell button:disabled{opacity:.65;cursor:wait}

/* V39.3 — photo upload mobile */
html,body{max-width:100%;overflow-x:hidden}
img{max-width:100%}
input,button{max-width:100%;box-sizing:border-box}
@media(max-width:560px){
 .guest-upload{padding:12px!important}
 .upload-shell{width:100%!important;max-width:100%!important;padding:20px 15px!important;border-radius:20px!important}
 .upload-shell h1{font-size:34px!important;overflow-wrap:anywhere}
 .guest-preview{grid-template-columns:repeat(3,1fr)!important}
 .guest-drop{padding:22px 12px!important}
 #uploadButton{width:100%}
}
@media(max-width:380px){.guest-preview{grid-template-columns:repeat(2,1fr)!important}}
