@import url("https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,500;6..96,700&family=Manrope:wght@400;500;600&display=swap");:root{--ink:#2f2219;--muted:#6b5a4d;--cream:#f5eee3;--sand:#e6d5be;--card:rgba(255,251,245,0.8);--accent:#b87444;--formBorder:#d7d0ca}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;color:var(--ink);font-family:Manrope,sans-serif;line-height:1.5;background:radial-gradient(1200px 700px at 10% -20%,#ffecd1 0,transparent 60%),radial-gradient(900px 600px at 95% 15%,#efd0b6 0,transparent 55%),linear-gradient(180deg,#efe2d2,#e4cfb5)}a,button,input{min-height:44px}.button,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #7b3f1f;outline-offset:2px}.page{min-height:100vh;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.hero{width:min(960px,100%);text-align:center;padding:clamp(20px,4vw,42px);border-radius:32px;background:var(--card);border:1px solid rgba(255,255,255,.6);backdrop-filter:blur(6px);box-shadow:0 20px 50px rgba(65,45,30,.18);animation:riseIn .9s ease both}.kicker{margin:0;letter-spacing:.22em;text-transform:uppercase;font-size:.8rem;color:var(--muted)}.names{font-family:Bodoni Moda,serif;margin:10px 0 6px;font-size:clamp(2.5rem,7vw,5.4rem);line-height:1.02;letter-spacing:.03em}.subtitle{margin:0 0 24px;color:var(--muted);font-size:clamp(1rem,2vw,1.16rem);padding-inline:8px}.heroMedia{width:min(430px,100%);margin:0 auto;border-radius:220px 220px 24px 24px;overflow:hidden;border:6px solid #fffdf8;box-shadow:0 22px 45px rgba(55,36,24,.24)}.heroMedia img{display:block;width:100%;height:auto;object-fit:cover}.photoHint{margin:10px auto 0;max-width:44ch;font-size:.82rem;color:#7a6555}.invite{margin:26px auto 16px;max-width:38ch;text-transform:uppercase;letter-spacing:.16em;font-size:.82rem;color:var(--muted)}.qrBox{width:fit-content;margin:0 auto;background:#fff;padding:14px;border-radius:20px;border:1px solid #f0e2d3;box-shadow:0 10px 24px rgba(50,34,22,.14)}.qrBox canvas{width:min(190px,56vw);height:auto}.button{display:inline-block;margin:18px 0 24px;padding:13px 28px;border-radius:999px;background:linear-gradient(135deg,#cf8e5f 0,var(--accent) 100%);color:#fff;text-decoration:none;font-weight:600;letter-spacing:.03em;transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 12px 24px rgba(165,99,51,.32)}.button:hover{transform:translateY(-2px);box-shadow:0 16px 28px rgba(145,85,43,.34)}.eventGrid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.eventCard{background:#fffaf4;border-radius:18px;padding:14px 12px;border:1px solid #f1ddc8}.label{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:#8a7561}.value{margin:8px 0 2px;font-family:Bodoni Moda,serif;font-size:1.4rem}.meta{margin:0;color:#6d5c50;font-size:.88rem}.footerNote{margin:18px 0 0;font-size:.9rem;color:#775f4e}@media (max-width:560px){.page{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));place-items:start center}.hero{border-radius:24px;padding:18px 14px 20px}.eventGrid{grid-template-columns:1fr}.button{width:100%}.uploadShell{border-radius:24px;padding:18px 14px 20px}.uploadForm{margin-top:22px;gap:14px}.uploadResults ul{padding-left:16px}}@media (prefers-reduced-motion:reduce){.button,.hero,.progressBar{animation:none;transition:none}}@media (max-width:360px){.kicker{letter-spacing:.14em;font-size:.72rem}.names{font-size:clamp(2rem,12vw,2.6rem)}.qrBox{padding:10px}.qrBox canvas{width:min(170px,62vw)}.button{padding:12px 18px;font-size:.95rem}}@media (orientation:landscape) and (max-height:430px){.page{place-items:start center}.hero,.uploadShell{padding:14px}.uploadForm{margin-top:14px;gap:10px}.footerNote,.invite{margin-top:12px;margin-bottom:10px}}@keyframes riseIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.uploadForm{margin-top:50px;display:grid;gap:18px}.uploadShell{width:min(760px,100%);text-align:center;padding:clamp(20px,4vw,42px);border-radius:32px;background:var(--card);border:1px solid rgba(255,255,255,.6);backdrop-filter:blur(6px);box-shadow:0 20px 50px rgba(65,45,30,.18)}.uploadTitle{font-size:clamp(2rem,6vw,4rem)}.uploadSubtitle{margin-bottom:0}.uploadLabel{color:#6d5c50;text-transform:uppercase;letter-spacing:.08em}.uploadLabel,.uploadMeta{text-align:left;font-size:.82rem}.uploadMeta{margin:-6px 2px 0;color:#7a6555}.uploadStatus{margin:14px 0 0;color:#6d5c50;font-size:.9rem}.progressWrap{width:100%;margin-top:12px;height:10px;border-radius:999px;background:#f1e2d3;overflow:hidden}.progressBar{height:100%;background:linear-gradient(135deg,#cf8e5f 0,var(--accent) 100%);transition:width .18s ease}.uploadResults{margin-top:16px;text-align:left}.uploadResults ul{margin:10px 0 0;padding-left:18px;display:grid;gap:8px}.uploadResults a{color:#8c4f2b;text-decoration:none}.uploadResults a:hover{text-decoration:underline}.uploadForm button,.uploadForm input{font-family:Manrope,sans-serif;padding:16px;border-radius:999px;border:1px solid var(--formBorder);background:white;font-size:16px;width:100%}.uploadForm button{cursor:pointer;font-weight:500;border:none;background:linear-gradient(135deg,#cf8e5f 0,var(--accent) 100%);color:#ffffff;box-shadow:0 10px 20px rgba(145,85,43,.25)}.uploadForm button:disabled{cursor:not-allowed;opacity:1;background:#a98f7f;color:#fff;box-shadow:none}