@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,200;9..144,300;9..144,400&family=Homemade+Apple&display=swap');

:root{--primary:#DBA091;--accent:#C98E82;--bg:#FFF9F8;--text:#4A3D39;--soft:#FBEDEA;--gold:#caa66a}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;color:var(--text);font-family:'Fraunces',Georgia,serif;font-weight:300;background:radial-gradient(circle at top left,rgba(219,160,145,.15),transparent 25rem),radial-gradient(circle at bottom right,rgba(219,160,145,.12),transparent 28rem),linear-gradient(180deg,#fffefe 0%,var(--bg) 100%);overflow-x:hidden}
.page-shell{min-height:calc(100vh - 108px);display:flex;align-items:center;justify-content:center;padding:22px 14px 8px}
.portal-card{position:relative;width:100%;max-width:1040px;background:rgba(255,255,255,.965);border:1px solid rgba(219,160,145,.36);border-radius:28px;padding:46px 118px 36px;text-align:center;box-shadow:0 26px 70px rgba(104,71,62,.10);overflow:hidden;animation:fadeIn .75s ease both}
@keyframes fadeIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes floatSoft{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes tinyClink{0%,94%,100%{transform:rotate(0)}96%{transform:rotate(-2deg)}98%{transform:rotate(2deg)}}
@keyframes slowSway{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1.5deg)}}

.hero-content,.upload-content,.features{position:relative;z-index:5}
.eyebrow,.wedding-date,.upload-panel span,.feature-title{text-transform:uppercase;letter-spacing:.18em}
.eyebrow{margin:0 0 18px;color:var(--primary);font-size:.78rem}
h1{margin:0 auto;color:var(--primary);font-family:'Homemade Apple',cursive;font-size:clamp(2.9rem,5.2vw,5rem);font-weight:400;line-height:1.22;max-width:760px}
.wedding-date{margin:20px 0 0;font-size:.9rem}
.fine-line{position:relative;width:154px;height:1px;background:var(--gold);opacity:.8;margin:28px auto 22px}
.fine-line:after{content:"♡";position:absolute;left:50%;top:50%;transform:translate(-50%,-52%);background:white;color:var(--primary);padding:0 11px;font-size:.9rem}
.church-art{display:block;max-width:480px;width:min(76%,480px);height:auto;margin:0 auto 28px;animation:fadeIn .8s ease .2s both}
h2{margin:0 0 10px;font-size:clamp(1.06rem,2vw,1.4rem);font-weight:300;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.intro{max-width:560px;margin:0 auto 22px;font-size:1.16rem;line-height:1.55}
.upload-form{max-width:560px;margin:0 auto;position:relative;z-index:6}
input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.upload-panel{display:block;padding:20px 18px;border:1.5px dashed rgba(219,160,145,.82);border-radius:24px;background:linear-gradient(180deg,#fffdfc 0%,#fff9f7 100%);cursor:pointer;transition:all .18s ease;box-shadow:0 10px 28px rgba(104,71,62,.065)}
.upload-panel:hover,.upload-panel.dragover{transform:translateY(-2px);background:#fff7f5;border-color:var(--primary);box-shadow:0 16px 34px rgba(104,71,62,.10)}
.camera-art{display:block;max-width:68px;max-height:68px;width:auto;height:auto;margin:0 auto 10px}
.upload-panel span{display:block;color:var(--accent);font-size:.88rem}
.upload-panel small{display:block;margin-top:7px;color:#866760;font-size:.86rem}
.desktop-hint{display:block;margin-top:6px;font-size:.8rem;color:#9a756d}
.preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;margin-top:16px}
.preview-item{min-height:84px;border:1px solid rgba(219,160,145,.32);border-radius:15px;overflow:hidden;background:#fff8f6;display:flex;align-items:center;justify-content:center;padding:6px;font-size:.72rem;color:#6e5550;overflow-wrap:anywhere}
.preview-item img{width:100%;height:84px;object-fit:cover;display:block;border-radius:10px}
.progress-wrap{height:8px;background:#f4ddd8;border-radius:99px;overflow:hidden;margin-top:18px}
.progress-bar{width:0%;height:100%;background:var(--primary);transition:width .2s ease}
.status-message{min-height:26px;margin:14px 0 0;color:var(--accent);font-size:.98rem;line-height:1.45}

.success-card{display:none;margin-top:18px;padding:24px 20px;border-radius:24px;background:var(--soft);border:1px solid rgba(219,160,145,.28);animation:fadeIn .5s ease both;line-height:1.6}
.success-card.show{display:block}
.success-card h3{margin:4px 0 10px;color:var(--accent);text-transform:uppercase;letter-spacing:.16em;font-weight:300}
.success-card p{margin:9px auto;max-width:520px}
.success-heart{color:var(--primary);font-size:1.7rem;line-height:1}
.qr-note{font-weight:400;color:#765d57;background:rgba(255,255,255,.48);border-radius:16px;padding:10px 14px}
.with-love{font-family:'Homemade Apple',cursive;color:var(--primary);font-size:1.15rem;line-height:1.45}

.art-frame{position:absolute;top:58px;bottom:72px;width:92px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;pointer-events:none;z-index:2}
.art-frame-left{left:34px}.art-frame-right{right:34px}
.art{display:block;max-width:100%;height:auto;opacity:.86}
.art-disco{width:78px;animation:slowSway 8s ease-in-out infinite}
.art-glass{width:70px;animation:floatSoft 9s ease-in-out infinite}
.art-music{width:72px;opacity:.76}
.art-hearts{width:80px;opacity:.72}
.art-camera{width:78px;animation:floatSoft 7s ease-in-out infinite}
.art-cheers{width:74px;animation:tinyClink 14s ease-in-out infinite}
.art-love{width:82px;animation:floatSoft 10s ease-in-out infinite}
.art-rings{width:74px}

.features{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px auto 0;max-width:660px;border-top:1px solid rgba(219,160,145,.22);padding-top:18px}
.feature{padding:4px 10px}
.feature-icon{color:var(--primary);font-size:1.15rem;margin-bottom:6px}
.feature-title{color:var(--accent);font-size:.67rem;margin-bottom:4px}
.feature p{margin:0;font-size:.78rem;line-height:1.35;color:#765d57}
.gallery-button{display:inline-block;margin:8px auto 0;padding:14px 24px;border-radius:999px;background:var(--primary);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:.82rem}
.site-footer{text-align:center;padding:0 14px 28px;color:#856762;font-size:.92rem}
.footer-note{max-width:560px;margin:0 auto;line-height:1.65}
.footer-signoff{font-family:'Homemade Apple',cursive;color:var(--primary);font-size:1.3rem;margin-top:8px}

@media(max-width:900px){
.portal-card{max-width:720px;padding:32px 34px}
.art-frame{display:none}
.church-art{max-width:350px}
}
@media(max-width:760px){
.page-shell{align-items:flex-start;padding:12px 10px 8px}
.portal-card{border-radius:24px;padding:28px 18px}
.eyebrow{margin-bottom:10px}
h1{font-size:clamp(2.55rem,11vw,4.2rem);max-width:100%;padding:0 36px;line-height:1.16}
.wedding-date{margin-top:10px;font-size:.84rem}
.fine-line{margin:22px auto}
.church-art{max-width:290px;width:82%;margin:20px auto 34px}
.intro{margin-bottom:20px}
.desktop-hint{display:none}
.features{grid-template-columns:1fr;gap:16px}
.feature{max-width:360px;margin:0 auto}
}
@media(max-width:430px){
.portal-card{padding:26px 14px}
h1{font-size:3rem;padding:0 24px}
.church-art{max-width:270px;width:88%;margin-top:28px}
.upload-panel{padding:18px 12px}
.intro{font-size:1.08rem}
.site-footer{font-size:.9rem}
.footer-signoff{font-size:1.18rem}
}
