:root { --paper:#fffdfb; --background:#fbf7f5; --ink:#332c2c; --gold:#9b7438; --pink:#d89aa6; --muted:#817575; --line:rgba(155,116,56,.25); --script:"Segoe Script","Monotype Corsiva",cursive; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; }
body {
  color:var(--ink);
  font-family:Georgia,"Times New Roman",serif;
  background:
    url('/static/invitation-florals.svg?v=7') center/100% 100% fixed no-repeat,
    radial-gradient(circle at 50% 12%,#fff 0,var(--background) 55%,#f1e4e6 100%);
}
.hidden { display:none !important; }
.guest-shell { width:min(100%,680px); margin:auto; padding:max(18px,env(safe-area-inset-top)) 16px max(30px,env(safe-area-inset-bottom)); }
.guest-header { display:flex; align-items:center; justify-content:center; gap:14px; padding:8px 0 22px; }
.guest-monogram { width:48px; height:48px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; background:rgba(255,255,255,.7); font-size:13px; }.guest-monogram span{color:var(--gold)}
.guest-event { margin:0; color:var(--gold); font:23px var(--script); }
.guest-card { padding:34px 24px; border:1px solid var(--line); border-radius:26px; background:rgba(255,253,251,.94); box-shadow:0 24px 60px rgba(98,61,68,.13); text-align:center; }
.eyebrow { margin:0 0 12px; color:var(--gold); font:700 10px/1.4 system-ui,sans-serif; letter-spacing:.22em; }
h1,h2 { margin:0; color:var(--ink); font-weight:400; } h1 { font-size:clamp(35px,11vw,58px); line-height:1.02; letter-spacing:-.035em; } h1 em { color:var(--gold); font-family:var(--script); font-weight:400; }
h2 { font-size:clamp(26px,8vw,38px); line-height:1.15; }
.intro { margin:20px auto 26px; max-width:430px; color:var(--muted); font-size:16px; line-height:1.55; }
#photo-input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.primary-button { width:100%; min-height:56px; display:flex; align-items:center; justify-content:center; padding:14px 18px; border:0; border-radius:999px; color:white; background:var(--ink); font:700 12px system-ui,sans-serif; letter-spacing:.12em; text-transform:uppercase; box-shadow:0 10px 24px rgba(51,44,44,.18); cursor:pointer; }
.primary-button:disabled { opacity:.55; cursor:wait; }
.text-button { margin-top:14px; padding:10px; border:0; color:var(--gold); background:transparent; font:600 13px system-ui,sans-serif; cursor:pointer; }.future-button{opacity:.45;cursor:default}
.limits { margin:15px 0 0; color:var(--muted); font:12px/1.5 system-ui,sans-serif; }
.browser-hint { margin:10px 0 0; color:var(--muted); font:12px/1.5 system-ui,sans-serif; }.browser-hint strong { color:var(--ink,#332c2c); user-select:all; }
.browser-hint.highlight { padding:12px; border-radius:12px; color:#725723; background:#fbf3df; font-size:14px; }
.message ul { margin:6px 0 0; padding-left:18px; }
.preview-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:22px 0; }
.preview-grid img,.preview-grid video { width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; background:#eee; }
.progress-track { height:12px; margin:28px 0 12px; overflow:hidden; border-radius:999px; background:#eadfe0; }.progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--pink),var(--gold));transition:width .15s ease}
#progress-text { color:var(--muted); font:14px system-ui,sans-serif; }
.success-mark { width:68px;height:68px;display:grid;place-items:center;margin:0 auto 20px;border-radius:50%;color:white;background:#78927c;font:36px system-ui,sans-serif; }
.message { margin:14px 0; padding:12px; border-radius:12px; font:13px/1.45 system-ui,sans-serif; text-align:left; }.error{color:#8b3434;background:#f9e9e9}.warning{color:#725723;background:#fbf3df}
.uploads-card{margin-top:18px}.uploads-card .intro{margin-bottom:0}.uploads-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}.upload-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:white;text-align:left}.upload-card>a{position:relative;display:block;background:#eee}.upload-card img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.video-badge{position:absolute;left:8px;bottom:8px;padding:4px 7px;border-radius:999px;color:white;background:rgba(40,35,35,.78);font:700 9px system-ui,sans-serif;letter-spacing:.08em}.upload-meta{display:grid;gap:4px;padding:10px}.upload-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 11px system-ui,sans-serif}.upload-meta span{color:var(--muted);font:10px system-ui,sans-serif}.delete-upload{justify-self:start;margin-top:5px;padding:6px 0;border:0;color:#a34545;background:transparent;font:600 11px system-ui,sans-serif;cursor:pointer}.delete-upload:disabled{opacity:.45}
.test-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:24px}.test-gallery figure{margin:0}.test-gallery img{width:100%;aspect-ratio:1;object-fit:cover}.test-gallery figcaption{font:11px system-ui,sans-serif}
@media (min-width:600px) { .guest-card{padding:48px}.preview-grid{grid-template-columns:repeat(4,1fr)}.uploads-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
