:root{--c-primary:#942238;--c-primary-dark:#661022;--c-gold:#c59b4c;--c-gold-dark:#9e7527;--c-gold-light:#faf5eb;--c-gold-shimmer:#e8c879;--c-card-bg:#fffdf9;--c-text-main:#2b2325;--c-text-muted:#6e6467;--c-border:#c59b4c52;--c-wax-seal:#8b182b;--font-script:"Great Vibes", cursive;--font-serif:"Cormorant Infant", Georgia, serif;--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--shadow-card:0 20px 60px #0006, 0 0 0 1px #c59b4c40;--shadow-sm:0 2px 8px #2d232614;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-full:9999px}.theme-ivory{--c-primary:#856d39;--c-primary-dark:#5c4921;--c-gold:#b59247;--c-gold-dark:#8c6e2a;--c-gold-light:#f5efe3;--c-gold-shimmer:#dcc28a;--c-card-bg:#fff;--c-text-main:#242220;--c-text-muted:#696561;--c-border:#b5924747;--c-wax-seal:#a8843c}.theme-noir{--c-primary:#d4af37;--c-primary-dark:#f0cb5a;--c-gold:#e5c158;--c-gold-dark:#bfa043;--c-gold-light:#241d20;--c-gold-shimmer:#ffe285;--c-card-bg:#1a1416;--c-text-main:#f5f0eb;--c-text-muted:#beb4b7;--c-border:#e5c15859;--c-wax-seal:#a81c2f}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;font-family:var(--font-sans);color:var(--c-text-main);-webkit-font-smoothing:antialiased;background-color:#120c0e;overflow:hidden}.wedding-screen-container{background-color:#160f11;flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100dvh;display:flex;position:relative;overflow:hidden}.wedding-ambient-backdrop{filter:blur(36px)brightness(.2);z-index:0;pointer-events:none;background-position:50%;background-size:cover;position:absolute;inset:-10px;transform:scale(1.05)}.wedding-envelope-wrapper{z-index:10;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:410px;height:100dvh;max-height:840px;padding:16px;display:flex;position:relative}.envelope-outer-box{background:var(--c-card-bg);border-radius:var(--radius-md);width:100%;max-width:375px;box-shadow:0 25px 60px #00000080, 0 0 0 1px var(--c-border);border:1px solid var(--c-border);text-align:center;position:relative;overflow:hidden}.envelope-top-flap{background:linear-gradient(180deg, var(--c-gold-light) 0%, #c59b4c14 100%);border-bottom:1px dashed var(--c-border);width:100%;height:48px;position:relative}.flap-gold-line{background:linear-gradient(90deg, transparent, var(--c-gold), transparent);height:1px;position:absolute;bottom:0;left:15%;right:15%}.envelope-main-body{padding:24px 20px 22px;position:relative}.envelope-corner{border-color:var(--c-gold);pointer-events:none;border-style:solid;width:16px;height:16px;position:absolute}.envelope-corner.tl{border-width:1.5px 0 0 1.5px;top:8px;left:8px}.envelope-corner.tr{border-width:1.5px 1.5px 0 0;top:8px;right:8px}.envelope-corner.bl{border-width:0 0 1.5px 1.5px;bottom:8px;left:8px}.envelope-corner.br{border-width:0 1.5px 1.5px 0;bottom:8px;right:8px}.wax-seal-button{background:radial-gradient(circle at 35% 35%, #b92b45, var(--c-wax-seal), #520917);cursor:pointer;border:2px solid #ffd7004d;border-radius:50%;justify-content:center;align-items:center;width:66px;height:66px;margin:-14px auto 14px;transition:transform .25s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative;box-shadow:0 8px 24px #94223873,inset 0 2px 4px #ffffff59}.wax-seal-button:hover{transform:scale(1.08)}.wax-seal-inner{border:1px dashed #ffe6a099;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.seal-symbol{font-family:var(--font-serif);color:#fff6d9;text-shadow:0 1px 2px #0009;font-size:26px;font-weight:700}.seal-glow-ring{border:1px solid var(--c-gold-shimmer);pointer-events:none;border-radius:50%;animation:2.2s ease-in-out infinite seal-pulse;position:absolute;inset:-4px}@keyframes seal-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.8;transform:scale(1.12)}}.envelope-badge{letter-spacing:3px;text-transform:uppercase;color:var(--c-gold-dark);margin-bottom:4px;font-size:10px;font-weight:700}.envelope-couple-names{font-family:var(--font-serif);color:var(--c-primary-dark);margin-bottom:14px;font-size:23px;font-weight:700}.envelope-couple-names .ampersand{font-family:var(--font-script);color:var(--c-gold);margin:0 4px;font-size:26px;font-weight:400}.envelope-guest-card{background:var(--c-gold-light);border:1px solid var(--c-border);border-radius:var(--radius-sm);margin-bottom:16px;padding:10px 14px}.envelope-to-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--c-gold-dark);font-size:10.5px;font-weight:600}.envelope-guest-name{font-family:var(--font-serif);color:var(--c-primary);margin-top:2px;font-size:20px;font-weight:700}.envelope-open-action-btn{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-dark) 100%);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 20px;font-size:13.5px;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 6px 18px #94223859}.envelope-open-action-btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px #94223873}.envelope-date-preview{color:var(--c-text-muted);margin-top:14px;font-size:11.5px}.envelope-bottom-bar{justify-content:center;align-items:center;margin-top:14px;display:flex}.envelope-style-pills{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-full);background:#161012b3;border:1px solid #c59b4c4d;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.style-label{color:#fff;opacity:.8;margin-right:2px;font-size:11px}.style-pill-btn{border-radius:var(--radius-full);color:#fff;cursor:pointer;background:0 0;border:1px solid #fff3;padding:3px 9px;font-size:11px;transition:all .2s}.style-pill-btn.active{background:var(--c-gold);border-color:var(--c-gold);color:#1a1416;font-weight:700}.wedding-card-frame{z-index:10;background:var(--c-card-bg);width:100%;max-width:420px;height:100dvh;max-height:860px;box-shadow:var(--shadow-card);border-left:1px solid var(--c-border);border-right:1px solid var(--c-border);text-align:center;scrollbar-width:none;flex-direction:column;justify-content:space-between;padding:12px 18px 10px;display:flex;position:relative;overflow-y:auto}.wedding-card-frame::-webkit-scrollbar{display:none}@media (width>=600px){.wedding-card-frame{border-radius:var(--radius-lg);border:1px solid var(--c-border);height:96dvh}}.gold-corner{border-color:var(--c-gold);pointer-events:none;border-style:solid;width:20px;height:20px;position:absolute}.gold-corner.top-left{border-width:2px 0 0 2px;top:6px;left:6px}.gold-corner.top-right{border-width:2px 2px 0 0;top:6px;right:6px}.gold-corner.bottom-left{border-width:0 0 2px 2px;bottom:6px;left:6px}.gold-corner.bottom-right{border-width:0 2px 2px 0;bottom:6px;right:6px}.card-inner-gold-border{border:1px solid var(--c-border);border-radius:var(--radius-md);pointer-events:none;position:absolute;inset:10px}.card-header-bar{z-index:20;justify-content:space-between;align-items:center;padding:0 4px 2px;display:flex;position:relative}.card-mini-btn{background:var(--c-gold-light);border:1px solid var(--c-border);border-radius:var(--radius-full);color:var(--c-gold-dark);cursor:pointer;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;transition:all .2s;display:inline-flex}.card-theme-dots{border-radius:var(--radius-full);border:1px solid var(--c-border);background:#fff6;gap:6px;padding:3px 8px;display:inline-flex}.theme-dot{cursor:pointer;border:1px solid #fff;border-radius:50%;width:14px;height:14px;transition:transform .2s}.theme-dot.burgundy{background:#942238}.theme-dot.ivory{background:#dcc28a}.theme-dot.noir{background:#1a1416}.theme-dot.active{box-shadow:0 0 0 2px var(--c-gold);transform:scale(1.25)}.card-music-disc{background:var(--c-card-bg);border:1px solid var(--c-border);width:28px;height:28px;color:var(--c-gold-dark);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;display:flex}.card-music-disc.spinning{color:var(--c-primary);border-color:var(--c-primary);animation:6s linear infinite rotate-disc}@keyframes rotate-disc{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.card-top-section{flex-direction:column;align-items:center;margin-top:1px;display:flex}.song-hy-badge{font-family:var(--font-serif);color:var(--c-primary);text-shadow:0 1px 2px #a83f5833;font-size:24px;font-weight:700;line-height:1}.card-sub-tag{letter-spacing:3px;text-transform:uppercase;color:var(--c-gold-dark);margin-top:1px;font-size:9.5px;font-weight:600}.card-main-heading{font-family:var(--font-serif);letter-spacing:2px;text-transform:uppercase;color:var(--c-primary-dark);margin-top:1px;font-size:19px;font-weight:700}.card-announcement-lead{color:var(--c-text-muted);margin-top:1px;font-size:10.5px;font-style:italic}.family-columns-box{background:var(--c-gold-light);border-radius:var(--radius-sm);border:1px dashed var(--c-border);grid-template-columns:1fr auto 1fr;align-items:center;gap:4px;margin:3px 0;padding:5px 6px;display:grid}.family-col{text-align:center;flex-direction:column;display:flex}.family-title{letter-spacing:1.5px;color:var(--c-gold-dark);margin-bottom:1px;font-size:9.5px;font-weight:700}.parent-names{color:var(--c-text-muted);font-size:10.5px;line-height:1.25}.role-sub{color:var(--c-text-muted);margin-top:2px;font-size:9px}.groom-bride-name{font-family:var(--font-serif);color:var(--c-primary-dark);font-size:14.5px;font-weight:700;line-height:1.2}.family-heart-separator{color:var(--c-primary);padding:0 2px;font-size:13px}.card-arch-photo-wrap{cursor:pointer;background:#140e10;border-radius:165px 165px 14px 14px;width:96%;max-width:330px;height:220px;margin:4px auto;position:relative;overflow:hidden;box-shadow:0 10px 28px #2d232633}.card-arch-photo{object-fit:cover;object-position:center 20%;width:100%;height:100%;image-rendering:-webkit-optimize-contrast;image-rendering:auto;backface-visibility:hidden;will-change:transform, opacity;transition:transform .35s;transform:translateZ(0)}@keyframes photo-crossfade{0%{opacity:.35;transform:scale(1.03)translateZ(0)}to{opacity:1;transform:scale(1)translateZ(0)}}.card-arch-photo.fade-in{animation:.8s cubic-bezier(.22,1,.36,1) forwards photo-crossfade}.card-arch-photo-wrap:hover .card-arch-photo{transform:scale(1.04)translateZ(0)}.arch-gold-frame{border:2px solid var(--c-gold);pointer-events:none;z-index:2;border-radius:165px 165px 14px 14px;position:absolute;inset:0}.arch-nav-btn{border:1px solid var(--c-gold);width:28px;height:28px;color:var(--c-primary-dark);cursor:pointer;z-index:10;background:#ffffffe0;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 8px #00000040}.arch-nav-btn.prev{left:8px}.arch-nav-btn.next{right:8px}.arch-nav-btn:hover{background:#fff;transform:translateY(-50%)scale(1.1)}.arch-photo-badge{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;border-radius:var(--radius-full);z-index:10;pointer-events:none;background:#161012c7;border:1px solid #ffffff4d;align-items:center;gap:4px;padding:3px 10px;font-size:9.5px;display:inline-flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.guest-invitation-ribbon{background:linear-gradient(135deg, var(--c-gold-light) 0%, #fff 100%);border:1px solid var(--c-border);border-radius:var(--radius-md);margin:3px 0;padding:6px 10px}.ribbon-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--c-gold-dark);font-size:10px;font-weight:600}.ribbon-guest-name{font-family:var(--font-serif);color:var(--c-primary-dark);margin:1px 0;font-size:19px;font-weight:700;line-height:1.25}.ribbon-sub{color:var(--c-text-muted);font-size:10.5px}.wedding-datetime-strip{border-top:1px dashed var(--c-border);border-bottom:1px dashed var(--c-border);margin:2px 0;padding:4px 0}.ceremony-time-row{color:var(--c-text-main);font-size:11px}.ceremony-solar-date{font-family:var(--font-serif);color:var(--c-primary-dark);margin:1px 0;font-size:16px}.ceremony-lunar-date{color:var(--c-text-muted);font-size:10.5px;font-style:italic}.reception-timing{color:var(--c-text-muted);margin-top:2px;font-size:10.5px}.timing-dot{color:var(--c-gold);margin:0 4px}.wedding-location-strip{margin:2px 0}.location-place-name{font-family:var(--font-serif);color:var(--c-primary-dark);font-size:15px;font-weight:700}.location-hall-badge{background:var(--c-gold-light);border-radius:var(--radius-full);color:var(--c-gold-dark);margin:1px 0;padding:1px 8px;font-size:10px;font-weight:600;display:inline-block}.location-address-text{color:var(--c-text-muted);font-size:10.5px}.card-actions-grid{justify-content:center;width:100%;max-width:280px;margin:6px auto 3px;display:flex}.card-action-btn{border-radius:var(--radius-full);cursor:pointer;border:1px solid var(--c-gold);background:linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-dark) 100%);color:#fff;white-space:nowrap;flex-direction:row;justify-content:center;align-items:center;gap:8px;width:100%;padding:8px 16px;font-size:12px;font-weight:600;text-decoration:none;transition:all .25s;display:inline-flex;box-shadow:0 3px 12px #6e1c2f40}.card-action-btn:hover{background:linear-gradient(135deg, var(--c-primary-light) 0%, var(--c-primary) 100%);transform:translateY(-1.5px);box-shadow:0 5px 16px #6e1c2f59}.card-action-btn:active{transform:translateY(0)}.card-sincere-footer{color:var(--c-text-muted);margin-top:2px;font-size:10px;font-style:italic;line-height:1.25}.wedding-admin-badge{display:none}.admin-top-pill{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--c-gold);border-radius:var(--radius-full);color:#fff;cursor:pointer;background:#161012d9;align-items:center;gap:5px;padding:5px 12px;font-size:11px;font-weight:600;transition:all .2s;display:inline-flex}.admin-top-pill:hover{background:var(--c-gold);color:#1a1416}.wedding-modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0e0a0be0;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.wedding-modal-card{border-radius:var(--radius-lg);border:1px solid var(--c-border);text-align:center;color:#2b2325;background:#fff;width:100%;max-width:400px;max-height:90vh;padding:18px 16px;position:relative;overflow-y:auto;box-shadow:0 20px 50px #0006}.modal-close-button{cursor:pointer;color:#6e6467;z-index:10;background:0 0;border:none;position:absolute;top:12px;right:12px}.modal-header-title{font-family:var(--font-serif);color:#6e1c2f;font-size:19px;font-weight:700}.modal-header-sub{color:#6e6467;margin-bottom:10px;font-size:11.5px}.modal-photo-stage{aspect-ratio:3/4;border-radius:var(--radius-md);border:1px solid var(--c-border);width:100%;max-height:52vh;box-shadow:var(--shadow-sm);background:#0d0a0b;position:relative;overflow:hidden}.modal-current-photo{object-fit:contain;width:100%;height:100%;image-rendering:-webkit-optimize-contrast;image-rendering:auto;transform:translateZ(0)}.photo-nav-arrow{color:#6e1c2f;cursor:pointer;background:#ffffffe0;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 8px #0000004d}.photo-nav-arrow.prev{left:8px}.photo-nav-arrow.next{right:8px}.modal-photo-caption{color:#6e1c2f;margin:6px 0;font-size:12px;font-weight:600}.modal-thumbs-strip{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;margin-top:8px;padding:4px 2px 6px;display:flex;overflow-x:auto}.modal-thumbs-strip::-webkit-scrollbar{display:none}.thumb-box{cursor:pointer;opacity:.65;background:#140e10;border:1.5px solid #ffffff26;border-radius:8px;flex-shrink:0;width:48px;height:48px;transition:all .2s;overflow:hidden}.thumb-box:hover{opacity:.9;transform:translateY(-1px)}.thumb-box.active{opacity:1;border-color:var(--c-gold);box-shadow:0 0 0 2px var(--c-gold);transform:scale(1.04)}.thumb-box img{object-fit:cover;width:100%;height:100%;image-rendering:-webkit-optimize-contrast}.gift-bank-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;display:grid}.bank-account-card{border-radius:var(--radius-md);text-align:center;background:#faf7f2;border:1px solid #c59b4c47;padding:10px 8px}.bank-badge{border-radius:var(--radius-full);margin-bottom:4px;padding:1px 8px;font-size:9.5px;font-weight:700;display:inline-block}.bank-badge.groom{color:#1e40af;background:#dbeafe}.bank-badge.bride{color:#9d174d;background:#fce7f3}.bank-owner-name{color:#2b2325;font-size:12px;font-weight:700}.bank-name{color:#6e6467;font-size:10.5px}.bank-account-number{color:#942238;letter-spacing:.5px;margin:2px 0;font-family:monospace;font-size:13px;font-weight:700}.bank-qr-box{aspect-ratio:1;border-radius:var(--radius-sm);background:#fff;border:1px solid #00000014;width:100%;margin:6px 0;overflow:hidden}.bank-qr-img{object-fit:contain;width:100%;height:100%}.copy-stk-btn{border-radius:var(--radius-sm);color:#6e1c2f;cursor:pointer;background:#fff;border:1px solid #c59b4c59;justify-content:center;align-items:center;gap:4px;width:100%;padding:5px;font-size:10.5px;font-weight:600;display:inline-flex}.gift-modal-footer-note{color:#6e6467;margin-top:14px;font-size:11px;font-style:italic;line-height:1.35}.rsvp-inner-form{text-align:left}.form-item{margin-bottom:10px}.form-item label{color:#2b2325;margin-bottom:3px;font-size:11.5px;font-weight:600;display:block}.rsvp-guest-name-box{font-family:var(--font-serif);color:#6e1c2f;border-radius:var(--radius-sm);background:#faf5eb;border:1px solid #c59b4c47;padding:6px 10px;font-size:15px;font-weight:700}.rsvp-choices-grid{gap:8px;display:flex}.choice-button{border-radius:var(--radius-sm);cursor:pointer;background:#fff;border:1px solid #c59b4c47;flex:1;padding:8px;font-size:12px;font-weight:600}.choice-button.active{color:#fff;background:#942238;border-color:#942238}.rsvp-select-input,.rsvp-text-input{border-radius:var(--radius-sm);border:1px solid #c59b4c47;outline:none;width:100%;padding:8px 10px;font-family:inherit;font-size:12.5px}.rsvp-success-message{padding:20px 8px}.admin-container{color:#2d2627;width:100vw;min-height:100vh;font-family:var(--font-sans);background:#faf7f2;padding:30px 20px 80px;overflow-y:auto!important}.admin-header{border-bottom:1px solid #c59b4c40;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1020px;margin:0 auto 24px;padding-bottom:18px;display:flex}.admin-back-btn{border-radius:var(--radius-full);border:1px solid var(--c-gold);color:var(--c-gold-dark);cursor:pointer;background:#fff;align-items:center;gap:6px;padding:8px 18px;font-size:13.5px;font-weight:600;display:inline-flex}.admin-back-btn:hover{background:#faf5eb}.admin-title-wrap{text-align:right}@media (width<=600px){.admin-title-wrap{text-align:left;width:100%}}.admin-title{font-family:var(--font-serif);color:#6e1c2f;font-size:24px}.admin-subtitle{color:#73676a;font-size:13px}.admin-grid-layout{grid-template-columns:360px 1fr;gap:24px;max-width:1020px;margin:0 auto;display:grid}@media (width<=820px){.admin-grid-layout{grid-template-columns:1fr}}.admin-card-box{border-radius:var(--radius-md);background:#fff;border:1px solid #c59b4c47;padding:22px 20px;box-shadow:0 4px 16px #0000000a}.admin-card-header{border-bottom:1px solid #0000000f;align-items:center;gap:8px;margin-bottom:18px;padding-bottom:12px;display:flex}.admin-card-header h2{font-family:var(--font-serif);color:#6e1c2f;font-size:19px}.admin-form-group{margin-bottom:14px}.admin-label{color:#2d2627;margin-bottom:5px;font-size:12.5px;font-weight:600;display:block}.admin-prefix-chips{flex-wrap:wrap;gap:6px;display:flex}.prefix-chip{cursor:pointer;color:#2d2627;background:#faf7f2;border:1px solid #c59b4c47;border-radius:6px;padding:5px 11px;font-size:12px}.prefix-chip.active{color:#fff;background:#942238;border-color:#942238;font-weight:600}.admin-style-select-grid{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.admin-style-opt{cursor:pointer;background:#faf7f2;border:1px solid #c59b4c47;border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:8px 4px;font-size:11px;display:inline-flex}.admin-style-opt.active{background:#fff;border-color:#942238;font-weight:700;box-shadow:0 0 0 1px #942238}.admin-style-opt .dot{border-radius:50%;width:10px;height:10px}.admin-style-opt .dot.burgundy{background:#942238}.admin-style-opt .dot.ivory{background:#dcc28a}.admin-style-opt .dot.noir{background:#1a1416}.admin-input{border-radius:var(--radius-sm);background:#fff;border:1px solid #c59b4c47;outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:13.5px}.admin-preview-box{border-radius:var(--radius-sm);background:#faf5eb;border:1px solid #c59b4c47;margin-top:14px;padding:12px}.preview-label{text-transform:uppercase;color:var(--c-gold-dark);font-size:11px;font-weight:600}.preview-name{font-family:var(--font-serif);color:#6e1c2f;font-size:18px;font-weight:700}.preview-url{word-break:break-all;color:#942238;background:#fff;border:1px solid #00000014;border-radius:4px;margin-top:3px;padding:6px 8px;font-family:monospace;font-size:11.5px}.btn-primary{border-radius:var(--radius-sm);color:#fff;cursor:pointer;background:linear-gradient(135deg,#942238 0%,#6e1c2f 100%);border:none;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:13.5px;font-weight:700;transition:all .2s;display:inline-flex}.btn-primary:hover:not(:disabled){opacity:.95}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-outline{border-radius:var(--radius-sm);color:#9e7527;cursor:pointer;background:0 0;border:1px solid #c59b4c;padding:9px 16px;font-weight:600}.guest-list-items{flex-direction:column;gap:12px;display:flex}.guest-list-row{border-radius:var(--radius-sm);background:#fff;border:1px solid #c59b4c3d;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;display:flex}@media (width<=600px){.guest-list-row{flex-direction:column;align-items:flex-start}}.guest-info-col{flex:1}.guest-row-name{font-family:var(--font-serif);color:#6e1c2f;font-size:17px;font-weight:700}.guest-row-meta{align-items:center;gap:8px;margin:4px 0;display:flex}.guest-badge{border-radius:var(--radius-full);color:#9e7527;background:#faf5eb;padding:2px 8px;font-size:10.5px;font-weight:600}.guest-badge-style{border-radius:var(--radius-full);padding:2px 7px;font-size:10px;font-weight:600}.guest-badge-style.burgundy{color:#9f1239;background:#ffe4e6}.guest-badge-style.ivory{color:#92400e;background:#fef3c7}.guest-badge-style.noir{color:#1f2937;background:#e5e7eb}.guest-date{color:#8c8285;font-size:11px}.guest-url-text{color:#73676a;word-break:break-all;font-family:monospace;font-size:11px}.guest-actions-col{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.action-icon-btn{color:#2d2627;cursor:pointer;background:#fff;border:1px solid #c59b4c4d;border-radius:6px;align-items:center;gap:4px;padding:6px 10px;font-size:11.5px;text-decoration:none;transition:all .2s;display:inline-flex}.action-icon-btn:hover{background:#faf5eb}.action-icon-btn.delete{color:#dc2626;border-color:#dc262640}.action-icon-btn.delete:hover{background:#fef2f2}.admin-modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.admin-modal{border-radius:var(--radius-md);text-align:center;background:#fff;width:100%;max-width:360px;padding:24px 20px}.animate-fade-in{animation:.4s ease-out fadeIn}.animate-card-appear{animation:.5s cubic-bezier(.16,1,.3,1) cardAppear}@keyframes fadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes cardAppear{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.wedding-deck-screen{z-index:10;box-sizing:border-box;flex-direction:column;justify-content:space-between;width:100%;max-width:520px;height:100dvh;max-height:880px;margin:0 auto;padding:8px 12px 12px;display:flex;position:relative;overflow:hidden}.wedding-cards-stage{perspective:1200px;perspective-origin:50%;touch-action:pan-y;flex:1;justify-content:center;align-items:center;width:100%;min-height:0;margin:4px 0;display:flex;position:relative;overflow:visible}.deck-card{aspect-ratio:9/18.2;-webkit-user-select:none;user-select:none;background:var(--c-card-bg);will-change:transform, opacity, filter;transform-origin:bottom;border-radius:26px;flex-direction:column;width:min(350px,78vw);height:auto;max-height:700px;transition:transform .45s cubic-bezier(.2,.85,.25,1),opacity .4s,box-shadow .4s,filter .4s;display:flex;position:absolute;overflow:hidden}.deck-card.card-center{z-index:10;opacity:1;filter:none;pointer-events:auto;cursor:default;transform:translate(0)scale(1)rotate(0);box-shadow:0 25px 60px #000000a6,0 0 0 2.5px #ffffffe6}.deck-card.card-left{z-index:4;opacity:.6;filter:blur(1.5px)brightness(.85);cursor:pointer;pointer-events:auto;transform:translate(-46px)scale(.92)rotate(-3.5deg);box-shadow:-8px 15px 35px #00000073}.deck-card.card-left:hover{opacity:.85;filter:blur(.5px)brightness(.95);transform:translate(-54px)scale(.93)rotate(-4.5deg)}.deck-card.card-right{z-index:4;opacity:.6;filter:blur(1.5px)brightness(.85);cursor:pointer;pointer-events:auto;transform:translate(46px)scale(.92)rotate(3.5deg);box-shadow:8px 15px 35px #00000073}.deck-card.card-right:hover{opacity:.85;filter:blur(.5px)brightness(.95);transform:translate(54px)scale(.93)rotate(4.5deg)}.deck-card-cover{background:#140e10;border:3.5px solid #fff}.cover-card-bg{image-rendering:-webkit-optimize-contrast;cursor:zoom-in;background-position:50% 20%;background-size:cover;transition:background-image .5s;position:absolute;inset:0}.cover-card-gradient{pointer-events:none;background:linear-gradient(#0000009e 0%,#0000001f 20%,#0000 42%,#00000038 65%,#000000eb 100%);position:absolute;inset:0}.cover-top-overlay{z-index:2;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:18px;left:18px;right:18px}.cover-script-title{font-family:var(--font-script);color:#fff;text-shadow:0 2px 10px #000000b3;letter-spacing:.5px;font-size:42px;line-height:1}.cover-script-date{font-family:var(--font-sans);letter-spacing:1.5px;color:#fffffff2;text-shadow:0 1px 4px #0009;margin-top:3px;font-size:14.5px;font-weight:600}.cover-top-actions{align-items:center;gap:8px;display:flex}.cover-zoom-pill{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-full);color:#fff;cursor:pointer;background:#00000073;border:1px solid #ffffff59;align-items:center;gap:4px;padding:5px 11px;font-size:11.5px;font-weight:600;transition:all .2s;display:inline-flex}.cover-zoom-pill:hover{color:#1a1416;border-color:var(--c-gold);background:#d4af37d9}.cover-songhy-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#00000059;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex}.cover-bottom-overlay{text-align:center;z-index:2;flex-direction:column;align-items:center;padding:16px 14px 18px;display:flex;position:absolute;bottom:0;left:0;right:0}.cover-names-box{margin-bottom:2px}.cover-sub-badge{letter-spacing:3px;color:#f5d061;text-shadow:0 1px 4px #000c;margin-bottom:2px;font-size:10px;font-weight:700}.cover-couple-title{font-family:var(--font-serif);color:#fff;letter-spacing:.5px;text-shadow:0 2px 8px #000c;margin:0;font-size:23px;font-weight:700}.cover-couple-title .ampersand{font-family:var(--font-script);color:#f5d061;margin:0 4px;font-size:28px;font-weight:400}.cover-guest-ribbon{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-full);color:#ffffffe0;background:#00000073;border:1px solid #ffffff40;align-items:center;gap:4px;margin-top:4px;padding:5px 14px;font-size:11.5px;display:inline-flex}.cover-guest-ribbon strong{color:#fff;font-weight:700}.cover-polaroids-row{z-index:3;justify-content:center;align-items:flex-end;gap:16px;margin:8px 0 12px;display:flex;position:relative}.mini-polaroid{cursor:pointer;background:#fff;border-radius:4px;flex-shrink:0;width:86px;height:114px;padding:4px 4px 18px;transition:all .3s cubic-bezier(.2,.8,.25,1);position:relative;box-shadow:0 8px 24px #00000073}.mini-polaroid.polaroid-left{transform:rotate(-5deg)}.mini-polaroid.polaroid-right{transform:rotate(5deg)}.mini-polaroid:hover{z-index:5;transform:rotate(0)scale(1.08);box-shadow:0 12px 30px #0009}.mini-polaroid img{object-fit:cover;border-radius:2px;width:100%;height:100%;display:block}.polaroid-zoom-tag{text-align:center;color:#8b182b;letter-spacing:.3px;font-size:8.5px;font-weight:700;position:absolute;bottom:3px;left:0;right:0}.deck-cta-btn{border-radius:var(--radius-full);color:#8b182b;cursor:pointer;z-index:4;background:#fff;border:none;justify-content:center;align-items:center;gap:6px;padding:11px 26px;font-size:14px;font-weight:700;transition:all .25s;display:inline-flex;box-shadow:0 6px 20px #00000059}.deck-cta-btn:hover{background:#faf5eb;transform:scale(1.04);box-shadow:0 8px 25px #00000073}.deck-cta-btn.gold{background:linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-dark) 100%);color:#fff;border:1px solid var(--c-gold)}.deck-cta-btn.gold:hover{background:linear-gradient(135deg, var(--c-primary-light) 0%, var(--c-primary) 100%)}.deck-card-ceremony{background:var(--c-card-bg);border:2.5px solid var(--c-gold);text-align:center;scrollbar-width:none;flex-direction:column;justify-content:space-between;padding:14px 16px;display:flex;overflow-y:auto}.deck-card-ceremony::-webkit-scrollbar{display:none}.deck-card-gallery{text-align:center;color:#fff;scrollbar-width:none;background:#140e10;border:2px solid #c59b4c73;flex-direction:column;justify-content:space-between;padding:12px 14px 10px;display:flex;overflow-y:auto}.deck-card-gallery::-webkit-scrollbar{display:none}.gallery-card-header .modal-header-title{color:#f5d061}.gallery-card-header .modal-header-sub{color:#ffffffb3}.gallery-card-photo-stage{cursor:zoom-in;background:#000;border-radius:14px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #00000073}.gallery-card-current-photo{object-fit:contain;width:100%;height:100%;display:block}.photo-zoom-hint-badge{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;border-radius:var(--radius-full);pointer-events:none;z-index:5;background:#000000a6;border:1px solid #ffffff4d;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;display:flex;position:absolute;top:10px;right:10px}.gallery-card-actions{justify-content:center;align-items:center;gap:8px;margin-top:4px;display:flex}.deck-bottom-nav{z-index:20;justify-content:center;align-items:center;gap:8px;margin-top:4px;display:flex}.deck-nav-pill{border-radius:var(--radius-full);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fffc;cursor:pointer;background:#161012bf;border:1px solid #c59b4c4d;padding:7px 16px;font-size:12px;font-weight:600;transition:all .25s}.deck-nav-pill:hover{color:#fff;border-color:var(--c-gold);background:#161012f2}.deck-nav-pill.active{background:var(--c-gold);color:#1a1416;border-color:var(--c-gold);font-weight:700;transform:translateY(-1px);box-shadow:0 4px 15px #c59b4c66}.photo-zoom-overlay{z-index:9999;-webkit-backdrop-filter:blur(14px);background:#080506ed;justify-content:center;align-items:center;padding:16px;animation:.25s ease-out zoomFadeIn;display:flex;position:fixed;inset:0}.photo-zoom-container{flex-direction:column;justify-content:space-between;width:80vw;max-width:80vw;height:80vh;max-height:80vh;animation:.3s cubic-bezier(.16,1,.3,1) zoomScaleUp;display:flex;position:relative}.photo-zoom-header{color:#fff;z-index:10;justify-content:space-between;align-items:center;padding:4px 8px 10px;display:flex}.photo-zoom-counter{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-full);color:#f5d061;background:#ffffff1f;border:1px solid #fff3;align-items:center;gap:6px;padding:5px 14px;font-size:13px;font-weight:600;display:inline-flex}.photo-zoom-dot{color:#fff6}.photo-zoom-caption{color:#fff;white-space:nowrap;text-overflow:ellipsis;max-width:45vw;font-weight:500;overflow:hidden}.photo-zoom-close-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:all .2s;display:flex}.photo-zoom-close-btn:hover{background:#ffffff4d;transform:scale(1.1)}.photo-zoom-image-wrapper{background:#0006;border-radius:20px;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 60px #000000bf}.photo-zoom-img{object-fit:contain;-webkit-user-select:none;user-select:none;border-radius:16px;width:100%;height:100%}.zoom-nav-arrow{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;cursor:pointer;z-index:10;background:#161012bf;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.zoom-nav-arrow.prev{left:12px}.zoom-nav-arrow.next{right:12px}.zoom-nav-arrow:hover{color:#1a1416;background:#d4af37f2;transform:translateY(-50%)scale(1.12)}.photo-zoom-footer{text-align:center;color:#ffffffbf;letter-spacing:.5px;padding-top:10px;font-size:13px}@keyframes zoomFadeIn{0%{opacity:0}to{opacity:1}}@keyframes zoomScaleUp{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
