:root{color:#333;font-synthesis:none;--maroon:maroon;--gold:#c5a059;--line:#f0eeeb;--muted:#78716c;--serif:"Playfair Display",Georgia,serif;--script:"Great Vibes",cursive;background:#fdfbf7;font-family:Inter,sans-serif;font-weight:400}*{box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{display:none}body{margin:0;overflow:hidden}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;transition:background .2s,box-shadow .2s,transform .25s,color .25s}button:disabled{cursor:wait;opacity:.55}button:active:not(:disabled){transform:scale(.97)}button svg{flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}p{line-height:1.75}h1,h2,h3{font-family:var(--serif);font-weight:400}input{min-width:0}fieldset{border:0;min-width:0;margin:0;padding:0}::selection{background:var(--gold);color:#fff}.mesh-background{pointer-events:none;background:#fdfbf7;position:fixed;inset:0;overflow:hidden}.mesh-blob{will-change:transform;border-radius:50%;position:absolute}.mesh-green{filter:blur(100px);background:#a7f3d0cc;width:80%;height:80%;animation:20s linear infinite float-green;top:-10%;left:-10%}.mesh-peach{filter:blur(90px);background:#ffedd5cc;width:70%;height:70%;animation:25s linear infinite float-peach;top:15%;right:-15%}.mesh-purple{filter:blur(110px);background:#e9d5ffcc;width:90%;height:70%;animation:18s linear infinite float-purple;bottom:-15%;left:5%}.mesh-pattern{opacity:.03;background-image:url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 86c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23000' fill-opacity='0.4' fill-rule='evenodd'/%3E%3C/svg%3E");position:absolute;inset:0}.wedding-shell{isolation:isolate;-webkit-backdrop-filter:blur(16px);background:#fff9;border-inline:1px solid #fff3;flex-direction:column;width:100%;max-width:448px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.site-header{z-index:50;pointer-events:none;justify-content:flex-end;display:flex;position:absolute;top:24px;left:24px;right:24px}.header-right{pointer-events:auto;align-items:center;gap:9px;display:flex}.private-tag{color:#78716c;border:1px solid var(--line);background:#ffffffb3;border-radius:24px;align-items:center;gap:6px;padding:8px 11px;font-size:9px;display:flex}.icon-button,.logout-button{border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#a8a29e;background:#fffc;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex;box-shadow:0 1px 2px #0000000d}.icon-button:hover,.icon-button.active,.logout-button:hover{color:var(--gold);background:#fff}.logout-button span{display:none}.bell{position:relative}.notification-count{background:var(--maroon);color:#fff;border:2px solid #fff;border-radius:20px;place-items:center;min-width:19px;height:19px;padding:0 3px;font-size:8px;display:grid;position:absolute;top:-3px;right:-3px}.dashboard,.auth-layout,.configuration-layout,.boot-state{overscroll-behavior-y:contain;flex:1;min-height:0;padding:85px 24px 28px;overflow-y:auto}.intro,.auth-story{text-align:center;margin-bottom:27px}.eyebrow{letter-spacing:2.4px;color:#78716c;justify-content:center;align-items:center;gap:8px;font-size:9px;font-weight:500;line-height:1.7;display:flex}.eyebrow>span{background:var(--gold);width:20px;height:1px}.couple-names{font-family:var(--script);color:#0000;background:linear-gradient(135deg,#a89c5b,#7a7f3a,#4f5b2a);-webkit-background-clip:text;background-clip:text;margin:10px 0 0;font-size:54px;font-weight:400;line-height:1.3}.title-ornament{color:var(--gold);justify-content:center;align-items:center;gap:12px;margin:6px 0 11px;display:flex}.title-ornament>span{background:linear-gradient(90deg,#0000,#c5a05980);width:40px;height:1px}.title-ornament>span:last-child{transform:rotate(180deg)}.intro p,.auth-story p{font-family:var(--serif);color:#78716c;font-size:12px;font-style:italic}.collection-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px;display:flex}.collection-heading .eyebrow{justify-content:flex-start}.muted{color:#a8a29e;letter-spacing:1.6px;font-size:8px}h2{margin-top:5px;font-size:27px;line-height:1.3}.collection-count{vertical-align:middle;color:#8d7541;background:#ffffffa6;border:1px solid #c5a05933;border-radius:50px;justify-content:center;align-items:center;min-width:25px;height:25px;margin-left:4px;padding:0 7px;font:500 10px Inter,sans-serif;display:inline-flex}.refresh-button{border:1px solid var(--line);color:#78716c;background:#ffffffb3;border-radius:14px;align-items:center;gap:6px;min-height:42px;padding:11px;font-size:9px;display:flex}.refresh-button:hover{color:var(--maroon);background:#fff}.collection-toolbar{margin-bottom:16px}.search{color:#a8a29e;background:#ffffffc9;border:1px solid #e7e5e4;border-radius:16px;align-items:center;gap:10px;height:46px;padding:0 14px;display:flex}.search input{color:#44403c;background:0 0;border:0;outline:0;width:100%;height:100%;font-size:11px}.search input::placeholder{color:#a8a29e}.search:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px #c5a05914}.search input:focus-visible{outline:none}.search button{color:#78716c;background:0 0;place-items:center;padding:5px;display:grid}.submissions-panel{touch-action:pan-y;min-height:260px}.slide-forward{animation:.42s cubic-bezier(.22,1,.36,1) both slide-forward}.slide-backward{animation:.42s cubic-bezier(.22,1,.36,1) both slide-backward}.panel-caption{color:#78716c;justify-content:space-between;align-items:center;gap:8px;margin:0 0 16px;font-size:9px;display:flex}.panel-caption>span{align-items:center;gap:6px;display:flex}.status-dot{background:var(--gold);border-radius:50%;flex-shrink:0;width:5px;height:5px}.status-dot.approved{background:#7a7f3a}.status-dot.rejected{background:maroon}.swipe-hint{color:#a8a29e;font-size:8px}.card-grid{grid-template-columns:minmax(0,1fr);gap:22px;display:grid}.submission-card{border:1px solid var(--line);background:#fff;border-radius:24px;min-width:0;overflow:hidden;box-shadow:0 1px 3px #00000008}.submission-card.highlighted{outline:2px solid var(--gold);outline-offset:3px}.photo-button{aspect-ratio:1.15;text-align:left;background:#f5f5f4;width:100%;padding:0;display:block;position:relative;overflow:hidden}.photo-button>img{object-fit:cover;width:100%;height:100%;transition:transform .6s}.photo-button:hover>img{transform:scale(1.035)}.thumbnail-fallback{color:#a89c5b;background:linear-gradient(135deg,#eef2e7,#f9efe3,#f0ebf6);place-items:center;width:100%;height:100%;display:grid}.photo-button>.thumbnail-fallback svg{opacity:.6;width:40px;height:40px}.photo-shade{background:linear-gradient(#00000010,#0000 40%,#141514b8);position:absolute;inset:0}.photo-top{justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;inset:16px 16px auto}.badge{color:#8d7541;white-space:nowrap;background:#faf7ec;border:1px solid #eee4cc;border-radius:20px;align-items:center;gap:6px;padding:7px 10px;font-size:9px;line-height:1;display:inline-flex}.badge>span{background:currentColor;border-radius:50%;width:4px;height:4px}.badge.approved{color:#65733f;background:#f1f5eb;border-color:#e0e8d3}.badge.rejected{color:#9c4c4c;background:#faf0ef;border-color:#eedcdb}.photo-top .badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff0;border-color:#ffffff80}.expand-label{color:#fff;background:#00000020;border-radius:20px;align-items:center;gap:5px;padding:6px 8px;font-size:9px;display:flex}.photo-caption{color:#fff;flex-direction:column;gap:7px;display:flex;position:absolute;inset:auto 22px 21px}.photo-caption>span{letter-spacing:2px;color:#efe4ca;font-size:7px}.photo-caption strong{font:400 27px/1.25 var(--serif);overflow-wrap:anywhere}.card-content{padding:22px}.wish{padding-left:16px;position:relative}.quote-mark{font:36px var(--serif);color:var(--gold);position:absolute;top:-10px;left:-2px}.wish p{font:400 15px/1.8 var(--serif);color:#57534e;overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card-content time{color:#a8a29e;margin-top:15px;font-size:9px;display:block}.review-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:9px;margin-top:18px;padding-top:16px;display:flex}.review-actions button{white-space:nowrap;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:11px 12px;font-size:11px;display:flex}.reject-action{color:#78716c;background:#fff;border:1px solid #e7e5e4}.reject-action:hover{color:var(--maroon);background:#faf5f5}.approve-action{background:var(--maroon);color:#fff}.approve-action:hover,.primary:hover{background:#600000}.reset-action{color:#78716c;background:#f5f5f4;flex-basis:100%!important}.gentle-note{color:#a8a29e;justify-content:center;align-items:flex-start;gap:7px;padding:25px 5px 0;display:flex}.gentle-note svg{flex-shrink:0;margin-top:2px}.gentle-note p{font-size:9px}.bottom-nav{z-index:40;height:calc(96px + env(safe-area-inset-bottom,0px));padding:24px 20px calc(16px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#fffffff2;border-top:1px solid #f5f5f4;flex-shrink:0;align-items:flex-end;display:flex;position:relative}.bottom-nav>button{color:#d1d5db;background:0 0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-width:0;height:56px;display:flex;position:relative}.nav-icon{place-items:center;height:32px;padding:4px;transition:transform .3s,color .3s;display:grid}.nav-icon svg{stroke-width:1.5px}.nav-label{text-transform:uppercase;letter-spacing:1.5px;color:#a8a29e;opacity:.75;font-size:9px;font-weight:700}.nav-count{color:#78716c;font-size:8px;font-weight:500;position:absolute;top:0;left:calc(50% + 15px)}.bottom-nav>button[aria-selected=true] .nav-icon{color:var(--gold);transform:translateY(-4px)scale(1.1)}.bottom-nav>button[aria-selected=true] .nav-icon svg{stroke-width:2.5px}.bottom-nav>button[aria-selected=true] .nav-label{color:#292524;opacity:1}.bottom-nav>button[aria-selected=true]:before{content:"";background:var(--gold);width:6px;height:6px;box-shadow:0 0 8px var(--gold);border-radius:50%;position:absolute;top:-7px}.empty-state{text-align:center;border:1px solid var(--line);min-height:310px;color:var(--gold);background:#fffc;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;padding:32px 23px;display:flex}.empty-art{background:#faf7ef;border-radius:50%;place-items:center;width:70px;height:70px;margin-bottom:20px;display:grid;position:relative}.empty-art>svg+svg{box-sizing:content-box;color:var(--maroon);background:#fff;border-radius:50%;padding:3px;position:absolute;bottom:6px;right:1px}.empty-state h3{color:#44403c;margin:10px 0;font-size:24px;line-height:1.4}.empty-state p{color:#78716c;font-size:11px}.empty-state button{margin-top:18px}.empty-flourish{font:25px var(--script);color:#8c8a54;margin-top:22px}.primary,.secondary{border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:13px 18px;font-size:11px;display:inline-flex}.primary{color:#fff;background:var(--maroon);border:1px solid var(--maroon)}.secondary{color:#78716c;background:#fff;border:1px solid #e7e5e4}.load-more{text-align:center;margin-top:24px}.skeleton-card{border:1px solid var(--line);background:#fff;border-radius:24px;height:430px;overflow:hidden}.skeleton-card>div{background:#e7e5e4;height:280px;animation:1.5s infinite alternate pulse}.skeleton-card>span{background:#f5f5f4;border-radius:6px;width:75%;height:12px;margin:22px;display:block}.skeleton-card>span+span{width:50%}.skeleton-card:nth-child(n+2){display:none}.notifications{position:relative}.notification-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:70;background:#fffffff5;border:1px solid #e7e5e4;border-radius:22px;width:min(398px,100vw - 48px);animation:.2s arrive;position:absolute;top:52px;right:-51px;overflow:hidden;box-shadow:0 15px 45px #29252426}.notification-heading{justify-content:space-between;align-items:flex-start;gap:10px;padding:20px 18px 15px;display:flex}.notification-heading h3{font-size:24px}.notification-heading p{color:#a8a29e;margin-top:4px;font-size:10px}.notification-heading .icon-button{flex-shrink:0;width:30px;height:30px}.notification-tools{border-block:1px solid var(--line);color:#78716c;background:#fafaf9;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;font-size:9px;display:flex}.notification-tools button{color:var(--maroon);background:0 0;align-items:center;gap:5px;padding:4px 0;font-size:9px;display:flex}.notification-list{overscroll-behavior:contain;max-height:min(390px,100dvh - 260px);overflow:auto}.notification-item{text-align:left;border-bottom:1px solid var(--line);background:0 0;align-items:center;gap:12px;width:100%;padding:15px 18px;display:flex}.notification-item.unread{background:#c5a0590b}.notification-item:hover{background:#f5f5f4}.notification-item>img,.notification-item>.thumbnail-fallback{object-fit:cover;border-radius:10px;flex-shrink:0;width:44px;height:55px}.notification-item>span:not(.thumbnail-fallback){flex-direction:column;align-items:flex-start;gap:6px;min-width:0;display:flex}.notification-item strong{overflow-wrap:anywhere;font-size:11px;font-weight:500}.notification-item small{color:#a8a29e;font-size:8px}.notification-item .badge{padding:5px 7px;font-size:8px}.unread-dot{background:var(--gold);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-left:auto}.notification-footer{color:#a8a29e;background:#fafaf9;justify-content:center;align-items:center;gap:6px;padding:12px;font-size:8px;display:flex}.live-dot{background:#7a7f3a;border-radius:50%;width:4px;height:4px}.small-state{text-align:center;color:#78716c;flex-direction:column;align-items:center;gap:10px;padding:32px 22px;font-size:11px;display:flex}.small-state strong{font-size:12px;font-weight:500}.small-state p{font-size:10px}.small-state button{color:var(--maroon);background:0 0;padding:8px;text-decoration:underline}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#292524b8;justify-content:center;align-items:center;padding:16px;animation:.2s fade;display:flex;position:absolute;inset:0}.preview-modal{background:#fdfbf7;border-radius:24px;outline:none;width:100%;max-height:calc(100% - 16px);position:relative;overflow:auto;box-shadow:0 20px 60px #0003}.modal-close{z-index:2;color:#78716c;background:#fffffff0;position:absolute;top:12px;right:12px}.preview-image{background:#e7e5e4;justify-content:center;align-items:center;height:38dvh;min-height:150px;display:flex}.preview-image img{object-fit:contain;width:100%;height:100%}.preview-details{min-width:0;padding:24px}.preview-details .eyebrow{justify-content:flex-start}.preview-details h2{overflow-wrap:anywhere;margin:8px 0 12px;font-size:29px}.preview-details blockquote{font:18px/1.8 var(--serif);color:#57534e;white-space:pre-wrap;overflow-wrap:anywhere;margin:18px 0}.preview-date{color:#a8a29e;margin-top:5px;font-size:9px}.preview-hint{color:#a8a29e;text-align:center;margin-top:14px;font-size:9px}.toast-region{z-index:150;pointer-events:none;position:absolute;bottom:112px;left:16px;right:16px}.toast{pointer-events:auto;color:maroon;background:#fff8f7;border:1px solid #ead4d1;border-radius:16px;align-items:center;gap:10px;padding:14px;font-size:11px;animation:.2s arrive;display:flex;box-shadow:0 6px 30px #00000015}.toast.success{color:#65733f;background:#fbfff6;border-color:#dce5d1}.toast>svg{flex-shrink:0}.toast>span{overflow-wrap:anywhere;min-width:0}.toast button{color:inherit;background:0 0;place-items:center;margin-left:auto;padding:3px;display:grid}.boot-state{text-align:center;color:#a89c5b;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex}.boot-state h1{color:#44403c;font-size:28px}.boot-state p{font-size:12px}.auth-layout{flex-direction:column;justify-content:safe center;padding-top:88px;display:flex}.auth-story,.auth-card{flex-shrink:0}.auth-story{margin-bottom:24px}.auth-card,.configuration-card{border:1px solid var(--line);background:#fff;border-radius:24px;padding:26px 24px;box-shadow:0 1px 3px #00000008}.auth-icon{width:45px;height:45px;color:var(--gold);background:#faf7ef;border-radius:50%;place-items:center;margin:0 auto 16px;display:grid}.auth-card{text-align:center}.auth-card h2{margin:8px 0 12px;font-size:29px}.auth-card>p,.configuration-card>p{color:#78716c;font-size:11px}form{text-align:left}form label{color:#57534e;flex-direction:column;gap:8px;margin-top:18px;font-size:10px;font-weight:500;display:flex}form input{color:#44403c;background:#fafaf9;border:1px solid #e7e5e4;border-radius:12px;width:100%;height:45px;padding:11px 13px;font-size:12px}form input::placeholder{color:#a8a29e}form input:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #c5a05914}.auth-submit{width:100%;min-height:46px;margin-top:23px}.auth-security{border-top:1px solid var(--line);color:#a8a29e;justify-content:center;align-items:center;gap:7px;margin-top:20px;padding-top:19px;font-size:9px;line-height:1.7;display:flex}.auth-security svg{flex-shrink:0}.field-note{color:#a8a29e;margin-top:10px;font-size:9px}.connection-details{border:1px solid var(--line);border-radius:12px;margin-top:18px;padding:12px}.connection-details summary{cursor:pointer;color:#78716c;align-items:center;gap:7px;font-size:10px;list-style:none;display:flex}.connection-details summary::-webkit-details-marker{display:none}.connection-details summary>svg:last-child{margin-left:auto}.connection-details[open] summary>svg:last-child{transform:rotate(180deg)}.config-fields label{overflow-wrap:anywhere}.inline-error{color:#9c4c4c;overflow-wrap:anywhere;background:#fff7f6;border:1px solid #eed8d5;border-radius:12px;margin-top:16px;padding:13px;font-size:11px;line-height:1.8}.inline-error button{color:var(--maroon);background:0 0;margin-left:7px;text-decoration:underline}.configuration-layout{text-align:center}.configuration-layout>h1{margin:15px 0;font-size:36px;line-height:1.3}.configuration-layout>h1 em{color:var(--maroon)}.configuration-layout>p{color:#78716c;margin-bottom:24px;font-size:11px}.configuration-card{text-align:left}.configuration-card h2{margin-bottom:12px;font-size:26px}.missing-config{color:#8d7541;overflow-wrap:anywhere;background:#faf7ef;border:1px solid #eee4cc;border-radius:12px;flex-direction:column;gap:7px;margin-top:18px;padding:13px;display:flex}.missing-config strong{font-size:10px;font-weight:500}.missing-config span{font-size:8px;line-height:1.8}.spin{animation:1.1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float-green{50%{transform:translate(60px,40px)}}@keyframes float-peach{50%{transform:translate(-50px,70px)}}@keyframes float-purple{50%{transform:translate(40px,-60px)}}@keyframes slide-forward{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slide-backward{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes arrive{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%{opacity:.5}to{opacity:1}}@media (width<=375px){.dashboard,.auth-layout,.configuration-layout{padding-inline:20px}.site-header{left:20px;right:20px}.notification-panel{width:calc(100vw - 40px)}.couple-names{font-size:50px}.swipe-hint{font-size:7px}.refresh-button{padding:10px 8px;font-size:8px}.auth-card,.configuration-card{padding:24px 20px}}@media (height<=700px){.dashboard{padding-top:78px}.intro{margin-bottom:22px}.auth-layout{padding-top:72px}.auth-story{margin-bottom:19px}.auth-story .couple-names{font-size:46px}.auth-card{padding-block:22px}.auth-icon{width:38px;height:38px;margin-bottom:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.mesh-blob{will-change:auto}}
