@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=EB+Garamond:wght@400;500&display=swap";:root{color:#383838;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--font-body:"Cormorant Garamond", Garamond, Georgia, "Times New Roman", serif;--font-number:Garamond, "EB Garamond", "Cormorant Garamond", Georgia, "Times New Roman", serif;--paper:#fbfaf7;--paper-soft:#f1eee8;--ink:#3a3a3a;--muted:#696660;--gold:#9a8d58;--gold-soft:#d7d0ad;--line:#aaa069;--danger:#9c4141;--success:#58684f;--shadow:0 24px 70px #27272714;background:#f6f5f2;font-family:Cormorant Garamond,Garamond,Georgia,Times New Roman,serif}*{box-sizing:border-box}body{min-width:320px;margin:0;overflow-x:hidden}button,input{font:inherit}button{cursor:pointer}button:disabled,[aria-disabled=true]{cursor:not-allowed;opacity:.58}h1,h2,p{overflow-wrap:anywhere;margin:0}.app-shell{background:linear-gradient(#ffffffc7,#f4f2ede6),#f6f5f2;min-height:100svh;padding:.75rem}.invitation-frame{width:min(100%,48rem);min-height:calc(100svh - 1.5rem);padding:calc(1rem + env(safe-area-inset-top)) 1rem calc(1.25rem + env(safe-area-inset-bottom));border:2px solid var(--line);background:var(--paper);box-shadow:var(--shadow);margin:0 auto}.topbar{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.topbar__status,.eyebrow,.invitation-copy,.file-picker p,.success-view p,.setup-warning p,.upload-item__meta,.upload-item__error,.rejection-list p,.back-button,.total-progress,.status-pill{font-family:var(--font-body)}.topbar__status,.eyebrow,.invitation-copy{letter-spacing:0;text-transform:uppercase}.topbar__status{max-width:12rem;color:var(--muted);font-size:.72rem;line-height:1.45}.language-toggle{border:1px solid var(--gold-soft);background:#fff;grid-template-columns:repeat(2,2.45rem);gap:.2rem;padding:.22rem;display:inline-grid}.language-toggle button{min-height:2rem;color:var(--ink);letter-spacing:0;background:0 0;border:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.72rem;font-weight:700}.language-toggle button.is-active{background:var(--gold);color:#fff}.invitation-heading{text-align:center;justify-items:center;gap:1.55rem;padding:2.5rem 0 1.75rem;display:grid}.couple-lockup{width:min(100%,21rem);height:auto;margin:0 auto;display:block}.invitation-copy{max-width:20rem;color:var(--ink);font-size:1.05rem;line-height:1.55}.wedding-date{width:100%;color:var(--ink);font-family:var(--font-number);font-variant-numeric:tabular-nums;grid-template-columns:auto 1px auto 1px auto;justify-content:center;justify-self:center;align-items:center;gap:1.25rem;font-size:2rem;line-height:1;display:inline-grid}.wedding-date span[aria-hidden=true]{background:var(--gold);width:1px;height:2.3rem}.category-view,.upload-view{gap:1rem;padding:1rem 0 0;display:grid}.section-heading{text-align:center;justify-items:center;display:grid}.eyebrow{color:var(--ink);font-size:.95rem;line-height:1.45}.category-grid{gap:.65rem;display:grid}.category-button{border:1px solid var(--gold-soft);width:100%;min-height:4.6rem;color:var(--ink);text-align:left;background:#fff;grid-template-columns:3.6rem minmax(0,1fr);align-items:center;gap:.9rem;padding:.8rem 1rem;font-size:1.16rem;line-height:1.2;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.category-button:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.back-button:focus-visible,.language-toggle button:focus-visible{outline-offset:3px;outline:3px solid #9a8d5859}.category-button:hover{border-color:var(--line);transform:translateY(-1px);box-shadow:0 12px 28px #27272714}.category-button__icon{object-fit:contain;object-position:center;justify-self:center;width:2.6rem;height:2.6rem;display:block}.category-button__icon--text{color:var(--gold);font-family:var(--font-body);font-size:2.3rem;line-height:1}.back-button{min-height:2.5rem;color:var(--gold);background:0 0;border:0;justify-self:start;padding:0;font-size:.95rem;font-weight:700}.selected-moment{border-top:1px solid var(--gold-soft);border-bottom:1px solid var(--gold-soft);text-align:center;justify-items:center;gap:.6rem;padding:.75rem 0;display:grid}.selected-moment__icon{object-fit:contain;border:1px solid var(--gold-soft);background:#fff;place-items:center;width:3rem;height:3rem;margin:0;padding:.55rem;display:grid}.selected-moment__icon--text{color:var(--gold);font-family:var(--font-body);font-size:1.75rem;line-height:1}.selected-moment h2,.upload-panel h2,.success-view h2{color:var(--ink);font-size:1.45rem;font-weight:400;line-height:1.15}.file-picker{gap:.65rem;display:grid}.file-picker p,.success-view p,.setup-warning p,.upload-item__meta,.upload-item__error,.rejection-list p{color:var(--muted);font-size:.95rem;line-height:1.45}.file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.primary-button,.secondary-button{border-radius:0;justify-content:center;align-items:center;min-height:3.25rem;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:700;text-decoration:none;display:inline-flex}.primary-button{border:1px solid var(--ink);background:var(--ink);color:#fff}.primary-button--small{min-height:2.55rem;padding:0 1rem}.secondary-button{border:1px solid var(--gold-soft);min-height:2.55rem;color:var(--ink);background:#fff;padding:0 .9rem}.file-picker__button{width:100%}.setup-warning,.rejection-list,.success-view{border:1px solid var(--gold-soft);background:#fff;gap:.65rem;padding:.85rem;display:grid}.setup-warning{background:#fff8f6;border-color:#9c414173}.setup-warning code{color:var(--danger);white-space:pre-wrap}.rejection-list{background:#fff9f7;border-color:#9c414159}.rejection-list strong,.upload-item__error{color:var(--danger)}.total-progress{color:var(--ink);justify-content:space-between;align-items:center;font-weight:700;display:flex}.upload-panel{gap:1rem;display:grid}.upload-panel__header{grid-template-columns:1fr;gap:.75rem;display:grid}.upload-panel__actions{flex-wrap:wrap;gap:.5rem;display:flex}.upload-list{gap:.65rem;display:grid}.upload-item{border:1px solid var(--gold-soft);background:#fff;gap:.65rem;padding:.85rem;display:grid}.upload-item__topline{grid-template-columns:minmax(0,1fr);align-items:start;gap:.55rem;display:grid}.upload-item__name{color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.95rem;font-weight:700}.status-pill{border:1px solid var(--gold-soft);background:var(--paper-soft);min-width:4.25rem;color:var(--ink);text-align:center;justify-self:start;padding:.3rem .5rem;font-size:.75rem;font-weight:700}.status-pill--success{color:var(--success);background:#eff3ed;border-color:#58684f59}.status-pill--error,.status-pill--canceled{color:var(--danger);background:#fff1ee;border-color:#9c414159}.progress-track{background:#e7e1d2;height:.5rem;position:relative;overflow:hidden}.progress-track span{background:var(--gold);width:0;transition:width .18s;position:absolute;inset:0 auto 0 0}.success-view{text-align:center;justify-items:center;position:relative;overflow:hidden}.success-view__icon{color:var(--gold);font-size:1.65rem}.confetti{pointer-events:none;position:absolute;inset:0}.confetti span{background:var(--gold);width:.32rem;height:.7rem;animation:1.8s ease-out forwards confetti-fall;position:absolute;top:-1rem}.confetti span:nth-child(3n){background:var(--ink)}.confetti span:nth-child(4n){background:var(--success)}.confetti span:first-child{animation-delay:50ms;left:9%}.confetti span:nth-child(2){animation-delay:.22s;left:18%}.confetti span:nth-child(3){animation-delay:.12s;left:27%}.confetti span:nth-child(4){animation-delay:.32s;left:36%}.confetti span:nth-child(5){animation-delay:.18s;left:45%}.confetti span:nth-child(6){animation-delay:.28s;left:54%}.confetti span:nth-child(7){animation-delay:80ms;left:63%}.confetti span:nth-child(8){animation-delay:.2s;left:72%}.confetti span:nth-child(9){animation-delay:.14s;left:81%}.confetti span:nth-child(10){animation-delay:.34s;left:90%}.confetti span:nth-child(n+11){transform:rotate(22deg)}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-.5rem)rotate(0)}20%{opacity:1}to{opacity:0;transform:translate(1.2rem,13rem)rotate(210deg)}}@media (width<=380px){.app-shell{padding:.45rem}.invitation-frame{min-height:calc(100svh - .9rem);padding-left:.8rem;padding-right:.8rem}.topbar{flex-direction:column}.language-toggle{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.couple-lockup{width:min(100%,18rem)}.wedding-date{gap:.9rem;font-size:1.65rem}.category-button{grid-template-columns:3.15rem minmax(0,1fr);gap:.7rem;min-height:4rem;padding-left:.85rem;padding-right:.85rem}.category-button__icon{width:2.35rem;height:2.35rem}}@media (width>=720px){.app-shell{padding:1.5rem}.invitation-frame{min-height:calc(100svh - 3rem);padding:calc(1.4rem + env(safe-area-inset-top)) 2.25rem calc(2rem + env(safe-area-inset-bottom))}.topbar__status{max-width:none;font-size:.78rem}.invitation-heading{gap:1.9rem;padding:4.8rem 0 2.5rem}.couple-lockup{width:min(100%,31rem)}.invitation-copy{max-width:25rem;font-size:1.25rem}.wedding-date{gap:1.7rem;font-size:2.45rem}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.category-button{min-height:5.4rem}.category-button__icon{width:3rem;height:3rem}.category-button__icon--text{font-size:2.7rem}.upload-panel__header,.upload-item__topline{grid-template-columns:minmax(0,1fr) auto}.status-pill{justify-self:end}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
