:root{color:#383838;background:#f6f5f2;font-family:Cormorant Garamond,"Bodoni 72",Didot,Georgia,Times New Roman,serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--paper: #fbfaf7;--paper-soft: #f1eee8;--ink: #3a3a3a;--muted: #696660;--gold: #9a8d58;--gold-soft: #d7d0ad;--line: #aaa069;--danger: #9c4141;--success: #58684f;--shadow: 0 24px 70px rgba(39, 39, 39, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;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}h1,h2,p{margin:0}.app-shell{min-height:100svh;padding:.75rem;background:linear-gradient(180deg,#ffffffc7,#f4f2ede6),#f6f5f2}.invitation-frame{width:min(100%,48rem);min-height:calc(100svh - 1.5rem);margin:0 auto;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)}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.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:Cormorant Garamond,"Bodoni 72",Didot,Georgia,Times New Roman,serif}.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{display:inline-grid;grid-template-columns:repeat(2,2.45rem);gap:.2rem;padding:.22rem;border:1px solid var(--gold-soft);background:#fff}.language-toggle button{min-height:2rem;border:0;background:transparent;color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:0}.language-toggle button.is-active{background:var(--gold);color:#fff}.invitation-heading{display:grid;justify-items:center;gap:1.55rem;padding:2.5rem 0 1.75rem;text-align:center}.couple-lockup{display:grid;justify-items:center;width:100%;color:var(--ink);text-align:center}.couple-lockup__name{font-family:Snell Roundhand,Zapfino,Segoe Script,Brush Script MT,cursive;font-weight:400;line-height:.88;letter-spacing:0}.couple-lockup__name--first{justify-self:center;font-size:4.35rem}.couple-lockup__and{justify-self:center;margin:-.12rem 0 .05rem;color:var(--gold);font-family:Snell Roundhand,Segoe Script,Brush Script MT,cursive;font-size:1.95rem;line-height:1;letter-spacing:0}.couple-lockup__name--second{justify-self:center;font-size:4.05rem}.invitation-copy{max-width:20rem;color:var(--ink);font-size:1.05rem;line-height:1.55}.wedding-date{display:inline-grid;grid-template-columns:auto 1px auto 1px auto;align-items:center;justify-content:center;justify-self:center;gap:1.25rem;width:100%;color:var(--ink);font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}.wedding-date span[aria-hidden=true]{width:1px;height:2.3rem;background:var(--gold)}.category-view,.upload-view{display:grid;gap:1rem;padding:1rem 0 0}.section-heading{display:grid;justify-items:center;text-align:center}.eyebrow{color:var(--ink);font-size:.95rem;line-height:1.45}.category-grid{display:grid;gap:.65rem}.category-button{display:grid;grid-template-columns:1fr;align-items:center;justify-items:center;gap:.45rem;width:100%;min-height:4.25rem;padding:.7rem .85rem;border:1px solid var(--gold-soft);background:#fff;color:var(--ink);text-align:center;font-size:1.08rem;line-height:1.2;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.category-button:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.back-button:focus-visible,.language-toggle button:focus-visible{outline:3px solid rgba(154,141,88,.35);outline-offset:3px}.category-button:hover{border-color:var(--line);box-shadow:0 12px 28px #27272714;transform:translateY(-1px)}.category-button__icon{display:block;width:1.55rem;height:1.55rem;object-fit:contain}.category-button__icon--text{color:var(--gold);font-family:Snell Roundhand,Segoe Script,Brush Script MT,cursive;font-size:1.7rem;line-height:1}.back-button{justify-self:start;min-height:2.5rem;padding:0;border:0;background:transparent;color:var(--gold);font-size:.95rem;font-weight:700}.selected-moment{display:grid;justify-items:center;gap:.6rem;padding:.75rem 0;border-top:1px solid var(--gold-soft);border-bottom:1px solid var(--gold-soft);text-align:center}.selected-moment__icon{display:grid;place-items:center;width:3rem;height:3rem;margin:0;object-fit:contain;border:1px solid var(--gold-soft);background:#fff;padding:.55rem}.selected-moment__icon--text{color:var(--gold);font-family:Snell Roundhand,Segoe Script,Brush Script MT,cursive;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{display:grid;gap:.65rem}.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{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:3.25rem;border-radius:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:700;text-decoration:none}.primary-button{border:1px solid var(--ink);background:var(--ink);color:#fff}.primary-button--small{min-height:2.55rem;padding:0 1rem}.secondary-button{min-height:2.55rem;padding:0 .9rem;border:1px solid var(--gold-soft);background:#fff;color:var(--ink)}.file-picker__button{width:100%}.setup-warning,.rejection-list,.success-view{display:grid;gap:.65rem;padding:.85rem;border:1px solid var(--gold-soft);background:#fff}.setup-warning{border-color:#9c414173;background:#fff8f6}.setup-warning code{color:var(--danger);white-space:pre-wrap}.rejection-list{border-color:#9c414159;background:#fff9f7}.rejection-list strong,.upload-item__error{color:var(--danger)}.total-progress{display:flex;align-items:center;justify-content:space-between;color:var(--ink);font-weight:700}.upload-panel{display:grid;gap:1rem}.upload-panel__header{display:grid;grid-template-columns:1fr;gap:.75rem}.upload-panel__actions{display:flex;flex-wrap:wrap;gap:.5rem}.upload-list{display:grid;gap:.65rem}.upload-item{display:grid;gap:.65rem;padding:.85rem;border:1px solid var(--gold-soft);background:#fff}.upload-item__topline{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:.55rem}.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{justify-self:start;min-width:4.25rem;padding:.3rem .5rem;border:1px solid var(--gold-soft);background:var(--paper-soft);color:var(--ink);text-align:center;font-size:.75rem;font-weight:700}.status-pill--success{border-color:#58684f59;background:#eff3ed;color:var(--success)}.status-pill--error,.status-pill--canceled{border-color:#9c414159;background:#fff1ee;color:var(--danger)}.progress-track{position:relative;height:.5rem;overflow:hidden;background:#e7e1d2}.progress-track span{position:absolute;inset:0 auto 0 0;width:0;background:var(--gold);transition:width .18s ease}.success-view{position:relative;justify-items:center;overflow:hidden;text-align:center}.success-view__icon{color:var(--gold);font-size:1.65rem}.confetti{position:absolute;inset:0;pointer-events:none}.confetti span{position:absolute;top:-1rem;width:.32rem;height:.7rem;background:var(--gold);animation:confetti-fall 1.8s ease-out forwards}.confetti span:nth-child(3n){background:var(--ink)}.confetti span:nth-child(4n){background:var(--success)}.confetti span:nth-child(1){left:9%;animation-delay:.05s}.confetti span:nth-child(2){left:18%;animation-delay:.22s}.confetti span:nth-child(3){left:27%;animation-delay:.12s}.confetti span:nth-child(4){left:36%;animation-delay:.32s}.confetti span:nth-child(5){left:45%;animation-delay:.18s}.confetti span:nth-child(6){left:54%;animation-delay:.28s}.confetti span:nth-child(7){left:63%;animation-delay:.08s}.confetti span:nth-child(8){left:72%;animation-delay:.2s}.confetti span:nth-child(9){left:81%;animation-delay:.14s}.confetti span:nth-child(10){left:90%;animation-delay:.34s}.confetti span:nth-child(n+11){transform:rotate(22deg)}@keyframes confetti-fall{0%{opacity:0;transform:translate3d(0,-.5rem,0) rotate(0)}20%{opacity:1}to{opacity:0;transform:translate3d(1.2rem,13rem,0) rotate(210deg)}}@media(max-width:380px){.app-shell{padding:.45rem}.invitation-frame{min-height:calc(100svh - .9rem);padding-right:.8rem;padding-left:.8rem}.topbar{flex-direction:column}.language-toggle{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.couple-lockup__name--first{font-size:3.4rem}.couple-lockup__and{margin:-.08rem 0 .05rem;font-size:1.65rem}.couple-lockup__name--second{font-size:3.1rem}.wedding-date{gap:.9rem;font-size:1.65rem}.category-button{min-height:4rem}}@media(min-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__name--first{font-size:6rem}.couple-lockup__and{margin:-.18rem 0 .08rem;font-size:2.45rem}.couple-lockup__name--second{font-size:5.5rem}.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{justify-items:center;min-height:7.75rem;text-align:center}.category-button__icon{width:1.85rem;height:1.85rem}.category-button__icon--text{font-size:2rem}.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}}
