@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&family=Outfit:wght@300;400;500;600&display=swap";.slideshow{flex-direction:column;gap:14px;display:flex}.slideshow-empty{text-align:left;margin:24px 0}.slideshow-stage{box-shadow:var(--shadow);touch-action:pan-y;background:#1a1214;border-radius:18px;flex-direction:column;justify-content:flex-end;min-height:min(62vh,520px);display:flex;position:relative;overflow:hidden}.slideshow-photo{object-fit:contain;background:#0a0a0a;flex:1;width:100%;min-height:280px;max-height:min(62vh,520px)}.slideshow-video{z-index:2;width:100%;position:relative}.slideshow-note-hero{background:radial-gradient(90% 80% at 20% 0,#e8b4b847,#0000 55%),linear-gradient(165deg,#2f2f2f,#4a2430 55%,#6b1e2f);flex:1;justify-content:center;align-items:center;padding:36px 24px 88px;display:flex}.slideshow-note-hero p{font-family:var(--display);color:#fff8f5;text-align:center;max-width:28ch;margin:0;font-size:clamp(1.45rem,5.5vw,2.1rem);line-height:1.35}.slideshow-meta{z-index:1;pointer-events:none;color:#fff8f5;text-align:left;background:linear-gradient(#0000,#0a0a0ad1);padding:48px 16px 52px;position:absolute;bottom:0;left:0;right:0}.slideshow-who{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 4px;font-size:.78rem;font-weight:600}.slideshow-caption{margin:0 0 4px;font-size:1.05rem;line-height:1.35}.slideshow-prompt{opacity:.78;margin:0;font-size:.86rem;line-height:1.35}.slideshow-controls{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;display:grid}.slideshow-controls .btn:first-child{justify-self:start}.slideshow-controls .btn:last-child{justify-self:end}.slideshow-count{color:var(--charcoal);font-size:.9rem;font-weight:500}.slideshow-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.slideshow-speed{color:var(--muted);flex-direction:column;align-items:flex-start;gap:6px;font-size:.86rem;display:flex}.slideshow-speed-label{font-weight:500}.slideshow-speed-options{flex-wrap:wrap;gap:6px;display:flex}.slideshow-speed-btn{appearance:none;color:var(--charcoal);min-width:44px;min-height:40px;font:inherit;cursor:pointer;background:#ffffffb8;border:1px solid #2f2f2f29;border-radius:999px;padding:8px 12px;font-size:.86rem;font-weight:500}.slideshow-speed-btn.is-active{background:linear-gradient(135deg, var(--burgundy), #4d1421);color:#fff8f6;border-color:#0000}.slideshow-fullscreen-btn{min-height:44px}.slideshow.is-immersive{box-sizing:border-box;width:100%;height:100%;min-height:100dvh;padding:16px;padding-top:max(16px, env(safe-area-inset-top,0px));padding-bottom:max(16px, env(safe-area-inset-bottom,0px));background:#0a0a0a;justify-content:center;gap:12px}.slideshow.is-immersive.is-immersive-css{z-index:1000;border-radius:0;width:100%;max-width:none;margin:0;position:fixed;inset:0}.slideshow.is-immersive .slideshow-stage{min-height:0;box-shadow:none;border-radius:0;flex:1}.slideshow.is-immersive .slideshow-photo{height:100%;min-height:0;max-height:none}.slideshow.is-immersive .slideshow-note-hero{min-height:0}.slideshow.is-immersive .slideshow-note-hero p{max-width:34ch;font-size:clamp(1.8rem,4.5vw,3rem)}.slideshow.is-immersive .slideshow-meta{padding:64px 28px 22px}.slideshow.is-immersive .slideshow-who{font-size:.9rem}.slideshow.is-immersive .slideshow-caption{font-size:1.25rem}.slideshow.is-immersive .slideshow-prompt{font-size:1rem}.slideshow.is-immersive .slideshow-count,.slideshow.is-immersive .slideshow-speed{color:#fff8f5d1}.slideshow.is-immersive .slideshow-controls .btn,.slideshow.is-immersive .slideshow-fullscreen-btn,.slideshow.is-immersive .slideshow-speed-btn{color:#fff8f5;background:#fff8f51a;border-color:#fff8f547}.slideshow.is-immersive .slideshow-speed-btn.is-active{background:linear-gradient(135deg, var(--burgundy), #4d1421);color:#fff8f6;border-color:#0000}@media (width<=640px){.slideshow-stage{min-height:min(78dvh,720px)}.slideshow-photo{min-height:240px;max-height:min(78dvh,720px)}.slideshow-note-hero{padding:24px 18px 72px}.slideshow-note-hero p{font-size:clamp(1.25rem,6vw,1.7rem)}.slideshow-meta{padding:36px 12px 12px}.slideshow-who{font-size:.72rem}.slideshow-caption{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.95rem;display:-webkit-box;overflow:hidden}.slideshow-prompt{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;display:-webkit-box;overflow:hidden}.slideshow-controls .btn{min-width:72px;min-height:44px}.slideshow.is-immersive{padding:10px;padding-top:max(10px, env(safe-area-inset-top,0px));padding-bottom:max(10px, env(safe-area-inset-bottom,0px))}.slideshow.is-immersive .slideshow-toolbar{flex-direction:column;align-items:stretch}.slideshow.is-immersive .slideshow-meta{padding:40px 14px 14px}.slideshow.is-immersive .slideshow-caption{font-size:1.05rem}.slideshow.is-immersive .slideshow-prompt{font-size:.88rem}}.couple-page{padding-top:max(20px, env(safe-area-inset-top));padding-bottom:calc(32px + env(safe-area-inset-bottom,0px))}.couple-header{text-align:left;margin-bottom:22px}.couple-header h1{font-family:var(--display);color:var(--charcoal);margin:4px 0 0;font-size:clamp(2.2rem,8vw,2.6rem)}.couple-header p{color:var(--muted);margin:8px 0 0}.couple-panel{text-align:left;padding:20px}.couple-panel h2{font-family:var(--display);margin:0 0 8px;font-size:1.6rem}.couple-actions{flex-direction:column;gap:10px;margin-top:16px;display:flex}.filter-chips{-webkit-overflow-scrolling:touch;gap:8px;margin-bottom:12px;display:flex;overflow-x:auto}.filter-chip{appearance:none;color:var(--charcoal);cursor:pointer;white-space:nowrap;background:#ffffffb8;border:1px solid #2f2f2f29;border-radius:999px;min-height:44px;padding:10px 16px;font-size:.9rem;font-weight:500}.filter-chip.is-active{background:linear-gradient(135deg, var(--burgundy), #4d1421);color:#fff8f6;border-color:#0000}.person-filter{text-align:left;color:var(--charcoal);flex-direction:column;gap:6px;margin-bottom:16px;font-size:.86rem;font-weight:500;display:flex}.person-filter select{appearance:none;border:1px solid var(--line);background:var(--surface-strong);color:var(--ink);font:inherit;border-radius:14px;min-height:48px;padding:12px 14px}.couple-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.couple-toolbar strong{font-family:var(--display);font-size:1.3rem;font-weight:600}.share-panel{text-align:left;margin-top:28px;padding:18px}.share-url{word-break:break-all;margin:12px 0}.share-url code{color:var(--burgundy);font-size:.82rem}.share-actions{flex-direction:column;gap:10px;margin-top:12px;display:flex}.share-status{color:var(--burgundy);margin:0 0 12px;font-size:.92rem}.watch-footer{text-align:center;margin-top:28px;font-size:.9rem}.watch-footer a{color:#2f2f2f8c}.honeymoon-fund{flex-direction:column;align-items:center;width:100%;margin-bottom:4px;display:flex}.btn-honeymoon-progress{isolation:isolate;text-decoration:none;position:relative;overflow:hidden}.btn-honeymoon-fill{z-index:0;pointer-events:none;background:linear-gradient(90deg,#c4a35af2,#e8c878fa);transition:width .6s cubic-bezier(.22,1,.36,1);position:absolute;inset:0 auto 0 0}.btn-honeymoon-label{z-index:1;white-space:nowrap;justify-content:center;align-items:center;gap:.35em;display:inline-flex;position:relative}.landing{color:#f7ecea;background:radial-gradient(120% 90% at 50% -10%,#e8b4b8b8,#0000 58%),radial-gradient(80% 70% at 100% 30%,#c4a35a47,#0000 55%),radial-gradient(70% 60% at 0 80%,#6b1e2f2e,#0000 50%),linear-gradient(165deg,#1a1214 0%,#2f2f2f 38%,#4a2430 72%,#6b1e2f 100%);min-height:100svh;position:relative}.landing-decor{pointer-events:none;position:absolute;inset:0;overflow:hidden}.landing-decor:before{content:"";background:linear-gradient(#0a0a0a26,#0000 35%),linear-gradient(#0000 58%,#0a0a0a73);position:absolute;inset:0}.landing-decor:after{content:"";background:radial-gradient(#e8b4b838,#0000 70%);width:140%;height:50%;animation:7s ease-in-out infinite soft-pulse;position:absolute;bottom:-18%;left:-20%}.landing-compose{z-index:1;width:min(440px,100%);min-height:100svh;padding:max(20px, env(safe-area-inset-top)) 22px calc(24px + env(safe-area-inset-bottom));text-align:center;flex-direction:column;justify-content:center;gap:20px;margin:0 auto;display:flex;position:relative}.landing-brand{flex-direction:column;align-items:center;gap:10px;display:flex}.btn-honeymoon{color:#1a1214;background:linear-gradient(135deg,#e8b4b8f2,#c4a35ae6);justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 10px 28px #0a0a0a47}.landing-brand .eyebrow{color:var(--gold);margin:0}.landing-brand .brand-mark{color:#fff8f5;text-shadow:0 12px 40px #0a0a0a59;letter-spacing:.01em;margin:0;font-size:clamp(3rem,12vw,4.2rem)}.landing-brand .support{color:#f7eceac7;max-width:28ch;margin:0;font-size:1.02rem;font-weight:300;line-height:1.4}.landing-join{text-align:left;flex-direction:column;gap:12px;width:100%;display:flex}.landing-join .join-title{font-family:var(--display);color:#fff8f5;text-align:center;margin:0;font-size:1.4rem;font-weight:600}.landing-join .field label{color:#f7ecead1}.landing-join .field input{color:var(--charcoal);background:#fff8f5f0;border-color:#c0c0c059;padding:16px 18px;font-size:1.05rem}.landing-join .btn-primary{background:linear-gradient(135deg, var(--gold), #a8873d);color:#1a1214;padding:16px 22px;font-size:1.02rem;box-shadow:0 12px 32px #0a0a0a59}.landing-join .error-banner{color:#fff8f5;background:#f7ecea1f;border-color:#e8b4b873}.landing-note{color:#f7ecea9e;text-align:center;margin:0;font-size:.8rem;line-height:1.4}.page.moments-page{padding-top:max(20px, env(safe-area-inset-top));padding-bottom:calc(220px + env(safe-area-inset-bottom,0px))}.moments-header{text-align:left;flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.moments-top-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.moments-top-row .eyebrow{letter-spacing:.14em;margin:0;font-size:.92rem}.moments-hello-row{align-items:baseline;gap:12px;width:100%;display:flex}.moments-header h1{font-family:var(--display);color:var(--charcoal);margin:0;font-size:1.7rem;line-height:1.15}.switch-guest{color:#2f2f2f8c;cursor:pointer;white-space:nowrap;background:0 0;border:0;margin:0 0 0 auto;padding:0;font-size:.78rem;line-height:1.15;text-decoration:underline;display:inline-block}.btn-honeymoon{color:#1a1214;background:linear-gradient(135deg,#e8b4b8,#c4a35a);justify-content:center;align-items:center;margin-bottom:14px;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 10px 28px #c4a35a47}.progress-pill{color:var(--burgundy);background:#c4a35a29;border-radius:999px;flex-shrink:0;align-items:center;gap:10px;padding:6px 12px;line-height:1.1;display:flex}.progress-stat{flex-direction:column;align-items:center;min-width:2.4em;display:flex}.progress-label{letter-spacing:.12em;text-transform:uppercase;opacity:.75;font-size:.58rem;font-weight:500}.progress-value{letter-spacing:.02em;font-size:.78rem;font-weight:600}.share-panel{text-align:left;margin-bottom:22px;padding:16px}.share-panel h2{font-family:var(--display);color:var(--charcoal);margin:0 0 6px;font-size:1.45rem}.share-panel p{color:var(--muted);margin:0 0 14px;font-size:.92rem;line-height:1.4}.free-photo-list{flex-direction:column;gap:14px;display:flex}.free-photo-card{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);text-align:left;border:1px solid #fff9;padding:12px}.free-photo-card img,.free-photo-card video{aspect-ratio:4/3;object-fit:cover;background:#2f2f2f0f;border-radius:12px;width:100%}.free-photo-caption{color:var(--charcoal);margin:10px 0 0;font-size:.95rem;line-height:1.4}.free-photo-edit{flex-direction:column;gap:8px;margin-top:12px;display:flex}.free-photo-edit label{color:var(--charcoal);font-size:.86rem;font-weight:500}.free-photo-edit textarea{border:1px solid var(--line);background:var(--surface-strong);width:100%;color:var(--ink);resize:vertical;font:inherit;border-radius:14px;padding:12px 14px}.free-photo-actions{flex-direction:column;gap:8px;margin-top:12px;display:flex}.btn-danger{color:#fff8f6;background:linear-gradient(135deg,#8b2438,#5c1524)}.section-head{text-align:left;margin:4px 0 10px;scroll-margin-top:16px}#notes.section-head{text-align:center}.section-head h2{font-family:var(--display);color:var(--charcoal);margin:0;font-size:1.35rem}.section-head p{color:var(--muted);margin:4px 0 0;font-size:.88rem}.slide-up-trigger{scroll-margin-bottom:calc(120px + env(safe-area-inset-bottom,0px));margin-top:28px;margin-bottom:32px}.share-panel h3{font-family:var(--display);color:var(--charcoal);margin:0 0 6px;font-size:1.35rem}.sheet-root{z-index:40;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet-backdrop{cursor:pointer;background:#0a0a0a73;border:0;padding:0;position:absolute;inset:0}.sheet-panel{z-index:1;background:#f7ecea;border-radius:22px 22px 0 0;flex-direction:column;width:min(440px,100%);max-height:min(88svh,900px);margin:0 auto;animation:.28s cubic-bezier(.22,1,.36,1) sheet-up;display:flex;position:relative;box-shadow:0 -12px 40px #0a0a0a38}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{background:#2f2f2f33;border-radius:999px;flex-shrink:0;width:40px;height:4px;margin:10px auto 0}.sheet-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px 8px;display:flex}.sheet-header h2{font-family:var(--display);color:var(--charcoal);margin:0;font-size:1.55rem}.sheet-close{appearance:none;color:var(--burgundy);cursor:pointer;background:#6b1e2f1a;border:0;border-radius:999px;min-height:44px;padding:10px 14px;font-size:.9rem;font-weight:600}.sheet-body{-webkit-overflow-scrolling:touch;padding:8px 18px calc(24px + env(safe-area-inset-bottom,0px));overflow-y:auto}.task-list{flex-direction:column;gap:14px;display:flex}.task-card{text-align:left;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);border:1px solid #fff9;padding:16px}.task-card.done{border-color:#c4a35a73}.task-meta{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.task-kind{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-size:.72rem;font-weight:600}.task-status{color:var(--burgundy);font-size:.75rem;font-weight:600}.task-card h2{color:var(--charcoal);margin:0;font-size:1.05rem;font-weight:500;line-height:1.35}.task-actions{flex-direction:column;gap:10px;margin-top:14px;display:flex}.task-preview{border:1px solid var(--line);border-radius:14px;margin-top:12px;overflow:hidden}.task-preview img,.task-preview video{aspect-ratio:4/3;object-fit:cover;background:#2f2f2f0f;width:100%;display:block}.task-preview-text{color:var(--charcoal);background:#ffffffa6;padding:12px 14px;font-size:.95rem;line-height:1.4}.file-input{display:none}.btn.is-disabled{opacity:.55;pointer-events:none;cursor:not-allowed}.moments-dock{width:min(440px,100%);padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));z-index:20;background:linear-gradient(#f7ecea00,#f7eceaeb 28%,#f7ecea 100%);grid-template-columns:1fr 1fr;gap:10px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.dock-btn{appearance:none;min-height:48px;color:var(--charcoal);cursor:pointer;background:#ffffffeb;border:1px solid #2f2f2f29;border-radius:999px;padding:12px 10px;font-size:.92rem;font-weight:500;line-height:1.2;box-shadow:0 8px 24px #0a0a0a14}.dock-btn:disabled{opacity:.55;cursor:not-allowed}.dock-btn-accent{background:linear-gradient(135deg, var(--burgundy), #4d1421);color:#fff8f6;border:0}.qr-page{background:#fff;min-height:100svh}.qr-sheet{text-align:center;width:min(520px,100%);margin:0 auto;padding:36px 24px 48px}.qr-export-root{background:0 0;padding:8px 4px 4px}.qr-export-root.is-exporting{background:0 0!important}.qr-export-root.is-exporting .qr-frame{box-shadow:none}.qr-sheet .brand-mark{margin:0;font-size:clamp(2.8rem,10vw,3.8rem)}.qr-sheet .sub{color:var(--muted);margin:10px 0 28px}.qr-frame{box-shadow:var(--shadow);background:#fff;border:1px solid #6b1e2f33;border-radius:20px;padding:18px;display:inline-flex}.qr-urls{color:var(--charcoal);margin:22px 0 0;font-size:.95rem}.qr-urls code{color:var(--burgundy);margin-top:6px;font-size:.85rem;display:block}.qr-actions{flex-direction:column;gap:10px;margin-top:24px;display:flex}.qr-status{color:var(--muted);text-align:center;margin:4px 0 0;font-size:.9rem}@media print{.qr-actions,.no-print{display:none!important}@page{margin:.4in}html,body,.app-shell,.qr-page,.qr-sheet,.qr-export-root{box-shadow:none!important;background:0 0!important}.qr-page{min-height:0}.qr-sheet{padding:0}.qr-frame{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff!important}}:root{--blush:#e8b4b8;--charcoal:#2f2f2f;--black:#0a0a0a;--burgundy:#6b1e2f;--silver:silver;--gold:#c4a35a;--cream:#f7ecea;--ink:#1a1214;--muted:#2f2f2fb8;--surface:#ffffffb8;--surface-strong:#ffffffe6;--line:#6b1e2f2e;--shadow:0 18px 50px #0a0a0a24;--display:"Cormorant Garamond", Georgia, serif;--sans:"Outfit", "Avenir Next", sans-serif;--radius:18px;--safe-bottom:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:radial-gradient(120% 80% at 10% 0,#e8b4b88c,#0000 55%),radial-gradient(90% 70% at 100% 10%,#c4a35a47,#0000 50%),linear-gradient(#faf4f2 0%,#f3e4e2 42%,#efe0de 100%);margin:0}button,input,textarea{font:inherit}a{color:inherit}img{max-width:100%;display:block}.app-shell{flex-direction:column;min-height:100svh;display:flex}.page{width:min(440px,100%);padding:20px 18px calc(28px + var(--safe-bottom));flex:1;margin:0 auto}.brand-mark{font-family:var(--display);letter-spacing:.02em;color:var(--burgundy);font-weight:600;line-height:1}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0 0 10px;font-size:.78rem;font-weight:500;display:inline-block}.btn{appearance:none;letter-spacing:.02em;cursor:pointer;border:0;border-radius:999px;padding:14px 22px;font-weight:500;transition:transform .16s,background .16s,opacity .16s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--burgundy), #4d1421);color:#fff8f6;box-shadow:0 10px 28px #6b1e2f47}.btn-secondary{color:var(--charcoal);background:0 0;border:1px solid #2f2f2f33}.btn-danger{color:#fff8f6;background:linear-gradient(135deg,#8b2438,#5c1524);box-shadow:0 10px 28px #6b1e2f38}.btn-ghost{color:#2f2f2f8c;box-shadow:none;background:0 0;border:0;text-decoration:underline}.btn-block{justify-content:center;align-items:center;gap:8px;width:100%;display:inline-flex}.field{text-align:left;flex-direction:column;gap:8px;display:flex}.field label{color:var(--charcoal);font-size:.86rem;font-weight:500}.field input,.field textarea{border:1px solid var(--line);background:var(--surface-strong);width:100%;color:var(--ink);border-radius:14px;outline:none;padding:14px 16px;transition:border-color .16s,box-shadow .16s}.field input:focus,.field textarea:focus{border-color:#6b1e2f73;box-shadow:0 0 0 4px #e8b4b859}.field textarea{resize:vertical;min-height:120px}.muted{color:var(--muted)}.stack{flex-direction:column;gap:16px;display:flex}.stack-lg{gap:24px}.error-banner{color:var(--burgundy);text-align:left;background:#6b1e2f14;border:1px solid #6b1e2f2e;border-radius:14px;padding:12px 14px;font-size:.92rem}.surface{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #ffffff8c}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:0%}to{background-position:100%}}@keyframes soft-pulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes honeymoon-invite{0%,to{box-shadow:0 10px 28px #c4a35a47}50%{box-shadow:0 14px 38px #c4a35a80,0 0 0 6px #e8b4b838}}.rise{animation:.7s cubic-bezier(.22,1,.36,1) both rise-in}.rise-delay-1{animation-delay:.12s}.rise-delay-2{animation-delay:.24s}.rise-delay-3{animation-delay:.36s}.btn-honeymoon{animation:2.8s ease-in-out infinite honeymoon-invite}.btn-honeymoon.rise{animation:.7s cubic-bezier(.22,1,.36,1) both rise-in,2.8s ease-in-out .85s infinite honeymoon-invite}.btn-honeymoon.rise.rise-delay-2{animation:.7s cubic-bezier(.22,1,.36,1) .24s both rise-in,2.8s ease-in-out 1.1s infinite honeymoon-invite}@media (prefers-reduced-motion:reduce){.btn-honeymoon,.btn-honeymoon.rise,.btn-honeymoon.rise.rise-delay-2{animation:none}}
