:root{--ivory:#f7f1e8;--paper:#f3ebdf;--champagne:#e6d6c1;--sand:#d6c0a2;--gold:#a88762;--gold-deep:#86684a;--ink:#6b5440;--muted:#8d7a66;--line:#a8876259;--script:"Great Vibes", "Brush Script MT", cursive;--serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--caps:"Cinzel", Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--serif);color:var(--ink);background:var(--champagne);-webkit-font-smoothing:antialiased;scroll-behavior:smooth}*,:before,:after{box-sizing:border-box}body{background-color:#0000;background-image:radial-gradient(120% 60% at 0 0,#fbf7f1 0%,#0000 55%),radial-gradient(120% 60% at 100% 100%,#fbf7f1 0%,#0000 55%),linear-gradient(160deg,#eadcc9 0%,#f4ebdf 45%,#e3d1ba 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-height:100svh;margin:0}h1,h2,h3,p{margin:0}a{color:inherit}section[id],header{scroll-margin-top:16px}.paper{max-width:560px;padding:0 20px calc(96px + env(safe-area-inset-bottom));text-align:center;background:linear-gradient(#fbf7f1eb,#f7f1e8eb);min-height:100svh;margin:0 auto;box-shadow:0 0 60px #86684a1f}.section{border-top:1px solid var(--line);flex-direction:column;align-items:center;gap:16px;padding:56px 4px;display:flex}.section-icon{color:var(--gold)}.eyebrow{font-family:var(--caps);letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep);font-size:.95rem;font-weight:400}.eyebrow.small{letter-spacing:.22em;max-width:30ch;font-size:.68rem;line-height:2.1}.tag{font-family:var(--caps);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-size:.66rem}.script{font-family:var(--script);color:var(--gold-deep);font-size:2rem;font-weight:400;line-height:1.2}.serif{font-size:1.2rem}.lead{max-width:32ch;font-size:1.25rem;line-height:1.5}.muted{color:var(--muted);font-size:1.05rem;line-height:1.5}.flourish{color:var(--sand);align-items:center;gap:10px;margin-bottom:4px;display:flex}.flourish span{background:var(--line);width:48px;height:1px}.btn{border:1px solid var(--gold);background:var(--gold);color:#fffaf3;min-height:46px;font-family:var(--caps);letter-spacing:.2em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:.7rem;text-decoration:none;transition:background .2s,color .2s,transform .2s;display:inline-flex}.btn:hover{background:var(--gold-deep)}.btn:active{transform:scale(.98)}.btn.ghost{color:var(--gold-deep);background:0 0}.btn.ghost:hover{background:#a887621a}.btn:focus-visible,.quickbar a:focus-visible,.help a:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px}.btn-row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}.card{border:1px solid var(--line);background:#fffcf799;border-radius:4px;flex-direction:column;align-items:center;gap:8px;width:100%;padding:28px 20px;display:flex}.hero{flex-direction:column;justify-content:center;align-items:center;gap:28px;min-height:100svh;padding:48px 0 40px;animation:1.2s both rise;display:flex}.monogram{font-family:var(--serif);color:var(--gold);letter-spacing:.05em;font-size:2.6rem;font-weight:300}.monogram span{font-family:var(--script);color:var(--sand);margin:0 4px;font-size:1.6rem}.names{font-family:var(--script);color:var(--gold-deep);flex-direction:column;font-size:clamp(3.4rem,16vw,4.6rem);font-weight:400;line-height:1.05;display:flex}.names .and{color:var(--gold);margin:6px 0;font-size:.45em}.date-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;width:100%;max-width:340px;display:grid}.date-side{font-family:var(--caps);letter-spacing:.2em;text-transform:uppercase;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0;font-size:.65rem}.date-main{font-family:var(--caps);flex-direction:column;display:flex}.date-main small{letter-spacing:.3em;text-transform:uppercase;font-size:.65rem}.date-main strong{font-family:var(--serif);color:var(--gold-deep);font-size:3rem;font-weight:400;line-height:1}.countdown{gap:18px;display:flex}.countdown div{flex-direction:column;min-width:44px;display:flex}.countdown strong{color:var(--gold-deep);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:400}.countdown span{font-family:var(--caps);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:.55rem}.countdown-done{font-family:var(--script);color:var(--gold-deep);font-size:2rem}.venues{flex-wrap:wrap;justify-content:center;gap:16px;width:100%;display:flex}.venues .card{flex:220px;max-width:420px}.venue h3{font-size:1.5rem;font-weight:500}.gps{letter-spacing:.06em;font-size:1.1rem}.timeline{width:100%;max-width:360px;margin:0;padding:0;list-style:none;position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:12px;bottom:12px;left:50%}.timeline li{grid-template-columns:1fr 24px 1fr;align-items:center;gap:12px;padding:14px 0;display:grid;position:relative}.timeline .time{text-align:right;font-family:var(--caps);letter-spacing:.14em;color:var(--gold);font-size:.7rem}.timeline .dot{background:var(--gold);width:9px;height:9px;box-shadow:0 0 0 5px var(--ivory);border-radius:50%;justify-self:center}.timeline .what{text-align:left;font-size:1.2rem}.verse{flex-direction:column;align-items:center;gap:8px;margin:0;display:flex}.verse blockquote{color:var(--gold-deep);max-width:28ch;margin:0;font-size:1.35rem;line-height:1.5}.gifts{color:var(--gold);margin-top:16px}.gifts p:not(.tag):not(.muted){color:var(--ink)}.uploader{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.field{border:1px solid var(--line);width:100%;max-width:320px;min-height:46px;font:inherit;color:var(--ink);text-align:center;background:#fffcf7cc;border-radius:999px;padding:0 18px;font-size:1.05rem}.field:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px}.uploads{gap:8px;width:100%;margin:0;padding:0;list-style:none;display:grid}.upload{border:1px solid var(--line);text-align:left;background:#fffcf799;border-radius:4px;grid-template-columns:1fr auto;align-items:center;gap:6px 12px;padding:10px 14px;display:grid}.upload-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-retry{cursor:pointer;background:0 0;border:0;padding:4px 0;text-decoration:underline}.upload.error .upload-name,.upload.error .upload-retry{color:#a0523d}.upload-bar{background:var(--line);border-radius:3px;grid-column:1/-1;height:3px;overflow:hidden}.upload-bar span{background:var(--gold);height:100%;transition:width .3s;display:block}.upload.done .upload-bar{display:none}.help{gap:10px;width:100%;margin:0;padding:0;list-style:none;display:grid}.help a{border:1px solid var(--line);text-align:left;background:#fffcf799;border-radius:4px;align-items:center;gap:14px;padding:16px 18px;font-size:1.1rem;text-decoration:none;transition:background .2s;display:flex}.help a:hover{background:#e6d6c180}.help svg{color:var(--gold);flex-shrink:0}.footer{border-top:1px solid var(--line);color:var(--gold);flex-direction:column;align-items:center;gap:12px;padding:48px 0 24px;display:flex}.quickbar{left:50%;bottom:calc(12px + env(safe-area-inset-bottom));border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);z-index:10;background:#fbf7f1e0;border-radius:999px;gap:4px;padding:6px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 30px #86684a2e}.quickbar a{min-width:66px;color:var(--gold-deep);border-radius:999px;flex-direction:column;align-items:center;gap:3px;padding:8px 10px;text-decoration:none;transition:background .2s;display:flex}.quickbar a:hover{background:#e6d6c199}.quickbar span{font-family:var(--caps);letter-spacing:.16em;text-transform:uppercase;font-size:.52rem}.reveal{opacity:0;transition:opacity .9s,transform .9s;transform:translateY(24px)}.reveal.is-visible{opacity:1;transform:none}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.hero{animation:none}.reveal{opacity:1;transition:none;transform:none}}@media (width>=640px){.paper{padding-inline:48px}}
