:root{--forest:#164533;--forest-dark:#0f3c2d;--sage:#e9f2e8;--cream:#fffaf1;--pink:#bd7d90;--gold:#bc914e;--text:#2d493a;--border:#dfd1b7;--shadow:0 12px 30px #27493416}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;color:var(--text);background:#fffdf8;font:15px/1.65 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.container{max-width:1180px;width:calc(100% - 38px);margin:auto}.container.narrow{max-width:730px}.center{text-align:center}.pattern{background-color:#e9f2e9;background-image:linear-gradient(30deg,#488a6320 12%,transparent 12.5%,transparent 87%,#488a6320 87.5%),linear-gradient(150deg,#488a6320 12%,transparent 12.5%,transparent 87%,#488a6320 87.5%);background-size:58px 100px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:#af7d47}.section{padding:72px 0}.section h2,.dashboard h2{font:700 clamp(31px,3.4vw,45px)/1.2 'Playfair Display',serif;color:var(--forest-dark);margin:8px 0 15px}.section h3{font:700 25px/1.3 'Playfair Display',serif;color:var(--forest)}.lead{font-size:16px;color:#667a6c;max-width:750px;margin:10px auto 30px}.micro{font-size:12px;color:#798c7b}.site-header{position:sticky;top:0;z-index:40;background:#fffffffa;border-bottom:1px solid #e8ddcb;backdrop-filter:blur(10px)}.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1300px;padding:8px 22px;min-height:74px;margin:auto}.site-logo{display:block;flex:none;width:clamp(180px,20vw,264px);line-height:1}.site-logo img{display:block;width:100%;height:auto;max-height:77px;object-fit:contain;object-position:left center}.nav-links{display:flex;align-items:center;gap:clamp(10px,1.4vw,20px);font-size:13px;font-weight:700}.nav-links a:hover{color:#ba7693}.menu-toggle{display:none;border:0;background:transparent;color:var(--forest);font-size:25px}.inline-form{display:inline-block;margin:0}.text-button{padding:0;border:0;background:transparent;font-size:13px;font-weight:700;color:#b06e7d}.notice{max-width:1160px;width:calc(100% - 40px);margin:13px auto 0;padding:11px 17px;background:#e8f8ec;border:1px solid #b3dbc2;border-radius:11px;color:var(--forest);font-size:13px}.notice.error{background:#fff0f2;border-color:#e5bdc3;color:#924b5a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px;border-radius:30px;padding:11px 22px;border:1px solid var(--forest);color:white;background:var(--forest);font-size:13px;font-weight:750;box-shadow:0 6px 16px #1b513421;transition:.15s}.btn:hover{transform:translateY(-1px);background:#2a6245}.btn-light{color:var(--forest);background:var(--cream);border-color:#d8bf8b}.btn-light:hover{background:#f7ead7}.hero{padding:47px 0 59px;border-bottom:3px double #ddbd86}.hero-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:48px}.hero-copy h1{font:700 clamp(36px,3.6vw,54px)/1.1 'Playfair Display',serif;margin:12px 0 14px;color:var(--forest-dark)}.hero-copy h1 em{display:block;font:400 clamp(65px,5.9vw,88px)/1 'Great Vibes',cursive;color:#d2577c}.hero-copy>p{font-size:16px;line-height:1.8;margin:15px 0}.hero-copy .hero-blessing{font-size:14px;color:#587866}.ornament{font-size:20px;color:#bc8c49}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}.event-date-time{display:flex;align-items:baseline;gap:11px;white-space:nowrap;font-size:clamp(10px,1.05vw,13px);font-weight:700;color:#365c44}.hero-form-wrap{min-width:0;padding:12px;background:#fff0f0;border-radius:22px;border:1px solid #f5e1e0;box-shadow:0 12px 35px #b47d7a19;scroll-margin-top:98px}.form-card{display:flex;flex-direction:column;gap:14px;padding:24px;border:1px solid #e5d9ce;border-radius:16px;background:#fffefd;box-shadow:var(--shadow)}.form-card h3{margin:0 0 8px;font:700 25px 'Playfair Display',serif;color:var(--forest)}.form-card h4{margin:0;font:700 21px 'Playfair Display',serif;color:var(--forest)}.form-card label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:750;color:#5c5151}.form-card input:not([type=radio]):not([type=checkbox]),.form-card select,.form-card textarea{display:block;width:100%;min-width:0;min-height:41px;padding:9px 12px;border:1px solid #e4d9d7;border-radius:9px;background:white;color:#4e4a48;font-size:13px;font-weight:400}.form-card textarea{resize:vertical;min-height:75px}.form-card input::placeholder,.form-card textarea::placeholder{color:#a9a09f}.form-card small{font-size:11px;font-weight:400;color:#8d8981;line-height:1.5}.rsvp-card{padding:24px}.rsvp-fields{display:flex;flex-direction:column;gap:11px}.rsvp-heading{text-align:center}.rsvp-heading .flower,.flower{font-size:22px;color:#b79562}.rsvp-heading h2{font:400 34px/1.2 'Playfair Display',serif;margin:1px 0;color:#393a37}.rsvp-heading p{font-size:12px;color:#948988;margin:2px 0 7px}.rsvp-fields fieldset{padding:0;margin:0;border:0;min-width:0}.rsvp-fields legend{font-size:12px;font-weight:750;color:#594e4e;margin-bottom:7px}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{display:block!important;cursor:pointer}.choice input{position:absolute;opacity:0;pointer-events:none}.choice span{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #e5dada;border-radius:9px;background:#fffaf9;color:#79716e;font-size:12px;text-align:center;font-weight:500;padding:7px}.choice input:checked+span{background:#fbe7eb;border-color:#c58496;box-shadow:inset 0 0 0 1px #c58496;color:#a05a73}.choice input:focus-visible+span{outline:3px solid #b88939;outline-offset:2px}.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.rsvp-fields label>span:first-child{white-space:nowrap}.required{color:#a96277;font-weight:800}.consent{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px!important;font-size:10px!important;font-weight:400!important;color:#8e8786!important}.consent input{width:16px;height:16px;flex:0 0 16px;margin-top:1px;accent-color:var(--pink)}.rose-button{border:0;border-radius:9px;background:var(--pink);color:white;padding:12px 17px;min-height:44px;font-weight:750;font-size:13px;box-shadow:0 6px 15px #ba80913a}.rose-button:hover{background:#a5687a}.rsvp-feedback{background:#fff0f2;color:#873f53;border-radius:10px;padding:11px 13px;margin-bottom:10px;border:1px solid #e9b9c3}.rsvp-feedback p{margin:3px 0 0;font-size:12px}.rsvp-confirmation{text-align:center;display:flex;flex-direction:column;align-items:center;gap:11px}.rsvp-confirmation h2{font:700 29px 'Playfair Display',serif;margin:0;color:var(--forest)}.rsvp-confirmation p{margin:0}.success-icon{font-size:29px;display:grid;place-items:center;background:#e9f8ec;color:#3d8452;width:55px;height:55px;border-radius:50%}.confirmation-summary{width:100%;background:var(--cream);padding:11px 15px;border-radius:11px}.confirmation-summary div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:9px 0;gap:10px;font-size:12px}.confirmation-summary div:last-child{border-bottom:0}.edit-link{width:100%}.edit-banner{padding:9px;border-radius:8px;background:#f9eedc;color:#69542c;font-size:12px;text-align:center}.subtle-link{font-size:12px;color:#a46e7e;text-decoration:underline;text-underline-offset:3px}.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px;margin-top:33px}.tile{background:var(--cream);padding:25px;border:1px solid var(--border);border-radius:17px;box-shadow:var(--shadow)}.tile span{font-size:34px}.tile h3{margin:3px 0 9px}.tile p{margin:0}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:26px}.venue{padding:30px;border-radius:17px;background:var(--forest-dark);color:white;min-height:310px}.venue h3{font-size:32px;color:#f5e4b4}.venue p{font-size:16px}.location-grid iframe{width:100%;border:0;border-radius:17px;min-height:310px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:25px 0}.gallery-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:23px 0 6px}.gallery-empty{padding:40px 22px;border:1px dashed #c6a675;background:linear-gradient(130deg,#fffaf1,#f7ece9);border-radius:17px;max-width:760px;margin:26px auto;color:#6b7869}.gallery-empty h3{font-size:25px;margin:9px 0}.gallery-empty p{max-width:520px;margin:0 auto}.gallery-empty .flower{font-size:36px}.photo-tile{position:relative;min-width:0;margin:0;background:white;border:1px solid var(--border);border-radius:15px;overflow:hidden;box-shadow:var(--shadow)}.photo-tile img{display:block;width:100%;height:233px;object-fit:cover}.photo-tile figcaption{padding:11px 15px;font-size:13px;color:var(--forest);font-weight:700;text-align:left}.photo-tile small{color:#738779;font-weight:400}.live-shell{max-width:850px;margin:18px auto 0;padding:31px;border:3px double #c9a873;background:var(--forest-dark);border-radius:20px;color:white;box-shadow:var(--shadow)}.live-shell h3{color:#f8edcb}.live-update{padding:16px 21px;border-radius:13px;border:1px solid #dec28e;background:#fff8e9;color:#365541;text-align:left;margin-bottom:22px}.live-update p{margin:8px 0 0;overflow-wrap:anywhere}.video-wrap{width:100%;position:relative;padding-top:56.25%;margin-bottom:20px}.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:12px}.live-icon{font-size:53px}.gift-bar{text-align:center;padding:24px;color:#6b4f2e;background:#faefd9;border-top:1px solid #e7d6b6}.auth-grid{display:grid;grid-template-columns:.8fr 1fr;gap:36px;align-items:start}.auth-intro img{width:100%;border-radius:17px;box-shadow:var(--shadow)}.stack{display:grid;gap:21px}.narrow h2{margin-top:9px}.gallery-narrow{grid-template-columns:repeat(2,1fr)}footer{text-align:center;background:var(--forest-dark);color:#d9edde;padding:37px 20px}footer p{margin:5px 0;font-size:13px}.footer-name{font:42px 'Great Vibes',cursive;color:#f1d5ad}.whatsapp{position:fixed;bottom:22px;right:22px;z-index:45;background:#25d366;color:white;width:58px;height:58px;border:3px solid white;border-radius:50%;display:grid;place-items:center;box-shadow:0 9px 27px #356d4966}.whatsapp svg{height:33px;width:33px}.pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:22px 0}.pagination a,.pagination span{display:grid;place-items:center;min-width:40px;height:40px;border:1px solid #ddc7a6;border-radius:9px;padding:0 10px;background:white;color:#385a41;font-weight:750}.pagination a:hover{background:#eaf3e8}.pagination .active{background:var(--pink);border-color:var(--pink);color:white}.pagination .disabled,.pagination .ellipsis{opacity:.4}.dashboard{background:linear-gradient(#fffdf9,#eef5ed)}.dashboard> .container>p{color:#718777}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:26px 0 38px}.stat{display:flex;flex-direction:column;gap:3px;background:#fff9ec;padding:18px;border-radius:15px;border:1px solid var(--border);min-width:0}.stat span{font-size:19px;color:#ae8755}.stat strong{font:700 36px/1.13 'Playfair Display',serif;color:var(--forest)}.stat small{font-size:12px;color:#63786b;font-weight:700}.stat.accepted{background:#eaf7eb}.stat.declined{background:#fff0f1}.admin-section{border-top:2px solid #e3c89a;margin:33px 0 50px;padding-top:22px}.admin-section h3{margin:0 0 7px;font:700 28px 'Playfair Display',serif;color:var(--forest)}.section-head p{color:#748477;font-size:13px;margin:0 0 19px}.toolbar{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:15px;margin:18px 0}.search-form{flex:1 1 230px;max-width:400px}.search-form label{display:block;font-size:12px;font-weight:800;color:var(--forest);margin-bottom:4px}.search-row{display:flex;gap:6px}.search-row input{min-height:42px;border:1px solid #d6c7b4;border-radius:9px;padding:9px 12px;background:white;min-width:0;flex:1}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.small-button{display:inline-flex;justify-content:center;align-items:center;border:1px solid #bdd5c4;border-radius:9px;padding:8px 12px;min-height:36px;color:var(--forest);background:#eaf4ea;font-weight:750;font-size:12px}.small-button:hover{filter:brightness(.97)}.small-button.primary{background:var(--pink);color:white;border-color:var(--pink)}.small-button.export-excel{background:#faf0df;border-color:#e1c799;color:#755630}.small-button.danger{background:#fff0f0;border-color:#e8b8b8;color:#8c3b3b}.list-caption{font-size:12px;color:#768779;display:flex;justify-content:space-between;align-items:center;margin:4px 0 10px}.list-caption a{text-decoration:underline}.table-wrap{border:1px solid #e2d9c8;border-radius:12px;overflow-x:auto;background:white}table{border-collapse:collapse;min-width:950px;width:100%;font-size:12px}th{background:#eaf2e8;color:var(--forest-dark);text-align:left}th,td{padding:11px 12px;vertical-align:top;border-bottom:1px solid #eee7db}td{overflow-wrap:anywhere}.empty-cell{text-align:center;padding:30px;color:#6f8273}.status-chip{display:inline-block;border-radius:999px;padding:5px 8px;white-space:nowrap;font-size:11px;font-weight:700}.status-chip.yes{background:#e6f7eb;color:#246340}.status-chip.no{background:#ffe9ec;color:#95586b}.table-actions{white-space:nowrap}.rsvp-page-controls{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:14px}.page-jump{display:flex;align-items:center;gap:9px;font-size:12px}.page-jump label{font-weight:750}.page-jump input{width:80px;min-height:37px;padding:6px 9px;border:1px solid #d4bda4;border-radius:8px}.attendee-modal{width:min(650px,calc(100% - 25px));max-height:92vh;padding:0;border:0;border-radius:20px;box-shadow:0 25px 80px #1a302e66;background:#fff1f2;overflow-y:auto}.attendee-modal::backdrop{background:#1b2e29b3;backdrop-filter:blur(3px)}.modal-inner{padding:14px;position:relative}.modal-inner .form-card{padding:29px}.dialog-close{position:absolute;right:24px;top:21px;border:1px solid #eedada;border-radius:50%;background:white;color:#655453;font-size:23px;width:32px;height:32px;z-index:2}.modal-actions{display:flex;gap:10px;margin-top:7px}.modal-actions .rose-button{flex:1}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-grid .form-card{align-self:start}.limit-guide{background:#f6fbef;border:1px solid #cdddbe;border-radius:15px;padding:25px}.limit-guide h4{font:700 24px 'Playfair Display',serif;margin:5px 0;color:var(--forest)}.limit-guide p{font-size:13px}.guide-icon{font-size:37px}.upload-selected{padding:11px 13px;border:1px solid #c8ddc9;border-radius:10px;background:#f1f9f1;color:#496952;font-size:12px}.upload-selected.has-errors{color:#974654;border-color:#e4b3bf;background:#fff0f1}.batch-upload-form input[type=file]{padding:11px!important;border:1px dashed #baa4a7!important;min-height:55px!important}.batch-upload-form{margin-bottom:22px}.photo-admin-toolbar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:10px 0 12px;padding:12px;background:#f9f1e2;border:1px solid #e4d1b0;border-radius:12px;font-size:12px}.select-all-photos{display:flex;align-items:center;gap:8px;font-weight:800;cursor:pointer}.select-all-photos input,.photo-checkbox{accent-color:#b9798d;width:17px;height:17px;cursor:pointer}.selected-count{font-weight:750;color:#8d566b}.delete-selected-button{padding:11px 17px;background:#a83b4e;color:white;border:1px solid #a83b4e;border-radius:9px;font-weight:750;font-size:13px}.delete-selected-button:disabled{opacity:.45;cursor:not-allowed}.bulk-photo-form{margin-bottom:15px}.admin-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.admin-photo img{height:195px}.photo-select{display:flex;align-items:center;gap:6px;position:absolute;left:9px;top:9px;z-index:1;background:#fffdf9f2;border-radius:8px;padding:6px 10px;font-size:11px;font-weight:800;box-shadow:0 3px 9px #0003}.admin-photo:has(.photo-checkbox:checked){outline:3px solid var(--pink);outline-offset:1px}.photo-info{padding:12px 13px;font-size:12px}.photo-info>p{margin:5px 0;color:#7a897b}.photo-actions{display:flex;gap:6px;flex-wrap:wrap}.logo-preview{display:grid;place-items:center;border-radius:15px;border:1px solid #dec69f;background:#fff;padding:22px}.logo-preview img{display:block;width:100%;max-width:500px;height:auto;object-fit:contain}.settings-grid .stack{align-items:start}.settings-grid .stack>.form-card{width:100%}footer .container{max-width:1100px}
@media(max-width:1130px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.nav-links{gap:10px;font-size:12px}.site-logo{width:215px}.hero-grid{gap:27px}}@media(max-width:930px){.menu-toggle{display:block}.nav-links{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:12px;background:#fffdf7;padding:16px 24px;border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.nav-links.open{display:flex}}@media(max-width:770px){.hero-grid,.auth-grid,.location-grid,.settings-grid{grid-template-columns:1fr}.hero{padding-top:35px}.hero-copy{text-align:center}.hero-copy .actions{justify-content:center}.hero-copy h1 em{font-size:clamp(61px,11vw,84px)}.event-date-time{justify-content:center}.hero-form-wrap{max-width:620px;margin:auto;width:100%}.section{padding:55px 0}.details-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.rsvp-page-controls{flex-direction:column;gap:0}.page-jump{margin:0 auto}.site-logo{width:215px}.nav{min-height:65px}.auth-intro img{max-width:480px}.toolbar{align-items:start}.toolbar-actions{width:100%}}@media(max-width:490px){.container{width:calc(100% - 28px)}.hero-form-wrap{padding:7px}.form-card{padding:19px}.rsvp-card{padding:20px 17px}.fields-grid,.gallery-grid,.admin-gallery{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:14px}.stat strong{font-size:29px}.stat small{font-size:11px}.toolbar-actions>*{flex:1 1 125px}.event-date-time{gap:5px;font-size:10px}.hero-copy h1{font-size:37px}.hero-copy h1 em{font-size:69px}.photo-tile img{height:235px}.modal-inner{padding:6px}.modal-inner .form-card{padding:20px 17px}.modal-actions{flex-direction:column-reverse}.pagination a,.pagination span{min-width:37px;height:37px}.admin-gallery .admin-photo img{height:250px}.site-logo{width:min(220px,65vw)}.live-shell{padding:18px}}

/* V7 — gallery filters, user & role management and password recovery */
.photo-status-filter{display:flex;align-items:center;flex-wrap:wrap;gap:11px;background:#fffaf4;padding:13px 15px;border:1px solid #e1cda9;border-radius:13px;margin:18px 0;color:#2d5841}
.photo-status-filter label{font-size:13px;font-weight:750}
.photo-status-filter select{border:1px solid #dacbc0;border-radius:8px;background:#fff;padding:9px 12px;color:#264c3d;font:600 13px 'DM Sans',sans-serif;min-width:160px}
.photo-admin-toolbar .micro{line-height:1.4}
.user-admin-grid{align-items:start}
.user-admin-grid .form-card{width:100%}
.user-admin-grid .form-card h4{margin:0;color:#1d553d;font:600 25px 'Playfair Display',serif}
.user-role-guide{padding:25px;border:1px solid #dec9a6;border-radius:17px;background:linear-gradient(135deg,#fff9e9,#f3eae4);color:#4b5c4b;line-height:1.8}
.user-role-guide h4{font:600 25px 'Playfair Display',serif;color:#174b38;margin:0 0 12px}
.user-role-guide p{margin:8px 0;font-size:13px}
.user-actions{white-space:nowrap}
.user-actions .small-button{margin:3px 1px}
.forgot-link{display:inline-block;color:#a45c75;text-decoration:underline;text-underline-offset:3px;font-size:13px;font-weight:600;align-self:flex-start}
.password-recovery{width:min(100%,610px);margin:auto;padding:clamp(24px,4vw,44px);background:#fffaf5;border:1px solid #e1c79e;box-shadow:0 12px 42px #63483d18}
.password-recovery h2{font:600 clamp(30px,4vw,42px) 'Playfair Display',serif;color:#174b38;margin:10px 0}
.password-recovery p{font-size:14px;color:#6a756b;margin:10px 0 19px}
.password-recovery form{margin:5px 0 17px}
.password-recovery label{font-weight:700;font-size:13px;color:#355640}
.password-recovery input{margin-top:7px}
#user-dialog .form-card{margin:0}
#user-dialog .modal-inner{min-width:0}
#user-dialog h2{font-family:'Playfair Display',serif}
@media(max-width:680px){.photo-status-filter{align-items:stretch;flex-direction:column}.photo-status-filter select,.photo-status-filter button{width:100%}.user-admin-grid{grid-template-columns:1fr}.user-role-guide{padding:20px}.password-recovery{padding:23px}}

/* V8 — restrained editorial design system / responsive management workspace */
:root{--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--ui-line:#e7e8e3;--ui-ink:#233e35;--ui-muted:#6c7d73;--theme-surface:#e9f2e8}
body{background:#fffefb;color:var(--ui-ink);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}
button,a,input,select,textarea{transition:box-shadow .16s ease,border-color .16s ease,background-color .16s ease}
.site-header{background:#fffefbf2;backdrop-filter:blur(16px);box-shadow:0 1px 0 #253c310e}
.nav{padding-block:9px;min-height:76px}
.nav-links{gap:clamp(10px,1.5vw,22px)}
.nav-links a,.nav-links button{font-size:13px;letter-spacing:.01em}
.pattern{background-color:var(--theme-surface);background-image:radial-gradient(circle at 8% 15%,#fff9ee70,transparent 40%),radial-gradient(circle at 90% 80%,#edd5db36,transparent 46%)}
.container{max-width:1170px;width:calc(100% - 48px)}
.section{padding:clamp(60px,6.7vw,92px) 0}
.section h2,.section h1{letter-spacing:-.025em;line-height:1.18}
.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:800;color:var(--gold)}
.lead{font-size:16px;line-height:1.8;color:#637a6d;max-width:680px}
.hero{padding-block:clamp(46px,6vw,75px);min-height:0}
.hero-grid{align-items:center;gap:clamp(30px,5.5vw,82px)}
.hero-copy{max-width:560px}
.hero-copy h1{margin:11px 0 18px;line-height:1.04;letter-spacing:-.03em}
.hero-copy h1 em{line-height:.98}
.hero-copy p{max-width:520px;line-height:1.72;margin-block:12px}
.hero-copy .actions{margin:24px 0 12px}
.btn,.rose-button{border-radius:10px;box-shadow:none;font-size:13px;font-weight:750;min-height:45px;padding:11px 19px}
.btn:hover,.rose-button:hover{box-shadow:0 8px 24px #2c4b3a20;transform:translateY(-1px)}
.btn:focus-visible,.rose-button:focus-visible,.small-button:focus-visible{outline-offset:4px}
.form-card{border:1px solid #e6ddd3;border-radius:var(--radius-lg);background:#fffefc;box-shadow:0 12px 38px #3a483710;padding:clamp(20px,3vw,30px)}
.rsvp-card{box-shadow:0 15px 44px #42382f12;border-radius:18px}
.form-card label{line-height:1.38}
.form-card input,.form-card select,.form-card textarea{border-radius:9px;border-color:#dedfd9;background:#fff}
.form-card input:focus,.form-card textarea:focus,.form-card select:focus{border-color:var(--pink);outline:2px solid color-mix(in srgb,var(--pink) 19%,transparent)}
.details-grid{gap:18px;margin-top:35px}
.tile{padding:clamp(22px,3vw,34px);background:#fffefa;border:1px solid var(--ui-line);border-radius:var(--radius-md);box-shadow:none}
.location-grid{gap:24px}
.venue{border-radius:var(--radius-lg);padding:clamp(30px,4vw,48px)}
.gallery-grid{gap:18px;margin-top:27px}
.photo-tile{border-radius:15px;border:1px solid #e6e8df;box-shadow:0 8px 23px #273e3212;transition:transform .16s ease}
.photo-tile:hover{transform:translateY(-2px)}
.gallery-empty{border-color:#ddd6bf;background:#fffef9}
.live-shell{border-radius:var(--radius-lg)}
.gift-bar{letter-spacing:.015em}
/* Photo download call to action, shown only to signed-in visitors */
.archive-cta{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:26px auto;background:#ffffffed;padding:23px 26px;border:1px solid #e2dcc9;border-left:4px solid var(--gold);border-radius:var(--radius-md);text-align:left;max-width:900px;box-shadow:0 9px 29px #1645330d}
.archive-cta strong{display:block;font:600 20px/1.3 'Playfair Display',serif;color:var(--forest)}
.archive-cta p{font-size:13px;color:#677d6e;line-height:1.6;margin:8px 0 0}
.download-form{margin:0;flex:none}
.download-form .btn{white-space:normal;text-align:center}
.download-nudge{font-size:13px;color:#60776a;margin:10px auto}
.download-nudge a{color:var(--forest);text-decoration:underline;text-underline-offset:3px;font-weight:700}
/* Admin: sidebar/workspace */
.admin-shell{background:#f7f8f5;min-height:77vh;padding:30px 0 78px}
.admin-layout{display:grid;grid-template-columns:232px minmax(0,1fr);align-items:start;gap:26px;max-width:1380px}
.admin-sidebar{position:sticky;top:102px;background:#fff;min-width:0;border:1px solid #e6e8e3;border-radius:17px;padding:20px 12px 13px;box-shadow:0 9px 29px #253c3109}
.sidebar-label{padding:2px 12px;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.13em;color:#9b937e}
.sidebar-site{font:600 17px/1.35 'Playfair Display',serif;color:var(--forest);padding:4px 12px 17px;margin-bottom:8px;border-bottom:1px solid #eeece4}
.admin-side-links{display:flex;flex-direction:column;gap:3px}
.admin-side-links a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px;font-weight:750;color:#607568;font-size:13px;line-height:1.3;white-space:nowrap}
.admin-side-links a:hover{background:#f1f5ef;color:var(--forest)}
.admin-side-links a.active{color:var(--forest);background:color-mix(in srgb,var(--theme-surface) 65%,white);box-shadow:inset 3px 0 0 var(--gold)}
.nav-symbol{flex:none;display:grid;place-items:center;border:1px solid #dbe3d8;background:#fff;width:24px;height:24px;border-radius:7px;color:var(--forest);font-size:10px;line-height:1;font-weight:900}
.sidebar-bottom{display:flex;flex-direction:column;gap:8px;border-top:1px solid #edeee9;margin-top:12px;padding:16px 12px 5px}
.sidebar-bottom a{font-size:12px;color:var(--forest);font-weight:700}
.sidebar-bottom span{font-size:11px;color:#9a9e91}
.admin-main{min-width:0}
.admin-kicker{color:#90968a;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin:6px 0 13px}
.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:22px;margin:0 0 23px}
.admin-heading h1{font:600 clamp(28px,3vw,39px)/1.18 'Playfair Display',serif;color:var(--forest);letter-spacing:-.025em;margin:5px 0 9px}
.admin-heading p{margin:0;max-width:670px;color:#728176;font-size:13px;line-height:1.65}
.admin-main .stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;margin:18px 0 32px}
.admin-main .stat{border:1px solid #e1e9dd;background:#fff;border-radius:14px;padding:18px 15px;box-shadow:0 5px 20px #253c3108}
.admin-main .stat.accepted{background:#f1faf2}.admin-main .stat.declined{background:#fff7f8}
.admin-main .stat strong{font:700 clamp(25px,2.7vw,35px)/1.1 'Playfair Display',serif;letter-spacing:-.03em}
.admin-main .stat small{font-size:11px;line-height:1.4;margin-top:6px}
.overview-section-heading{margin-bottom:16px}
.overview-section-heading h2{font:600 23px 'Playfair Display',serif;margin:0 0 4px;color:var(--forest)}
.overview-section-heading p{font-size:13px;color:#79877a;margin:0}
.admin-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.admin-action-card{display:flex;flex-direction:column;min-width:0;background:#fff;padding:23px 21px;border:1px solid #e2e7de;border-radius:15px;box-shadow:0 4px 17px #1d403008}
.admin-action-card:hover{border-color:#c5d4bb;box-shadow:0 12px 29px #1d403014;transform:translateY(-2px)}
.admin-action-card>span{font-size:23px;color:var(--gold);line-height:1;margin-bottom:19px}
.admin-action-card h3{font:600 18px/1.3 'Playfair Display',serif;color:var(--forest);margin:0 0 8px}
.admin-action-card p{font-size:12px;color:#7b887c;line-height:1.7;flex:1;margin:0 0 20px}
.admin-action-card b{font-size:12px;color:var(--forest)}
.admin-main .admin-section{margin:0 0 23px;padding:24px 25px 28px;border:1px solid #e5e9e3;border-radius:16px;background:#fff;box-shadow:0 5px 21px #1b35270a}
.admin-main .admin-section h3{font:600 22px/1.3 'Playfair Display',serif;margin:0 0 7px}
.admin-main .section-head{margin-bottom:21px}
.admin-main .section-head p{margin:0;font-size:13px;line-height:1.6}
.admin-main .table-wrap{border-color:#eaede5;border-radius:11px;box-shadow:none}
.admin-main th{background:#f5f8f4;color:#536f5c;border-bottom:1px solid #dee8df;font-size:11px;text-transform:uppercase;letter-spacing:.035em}
.admin-main th,.admin-main td{padding:13px 12px}
.admin-main tr:hover td{background:#fcfdfb}
.admin-main .toolbar{margin:10px 0 15px}
.admin-main .small-button{min-height:39px;padding:9px 13px;border-radius:9px}
.admin-main .pagination{margin:15px 0}
.admin-main .settings-grid{gap:18px}
.admin-main .form-card{box-shadow:none}
.admin-main .form-card h4{margin-top:0}
/* design studio and download audits */
.theme-form{padding:23px;border:1px solid #ece7dc;background:#fcfcfa}
.theme-color-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.theme-color-grid label{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid #e6e5dd;border-radius:12px;padding:13px;min-width:0;font-size:12px;font-weight:700;color:#557063}
.theme-color-grid input[type=color]{width:100%;height:52px;padding:3px;background:#fff;cursor:pointer;min-height:0;border:0;border-radius:10px}
.theme-preview{display:flex;align-items:center;gap:15px;background:var(--theme-surface);border-radius:13px;padding:19px;margin:18px 0;border:1px solid #dde2d7}
.theme-sample-dot{font-size:30px;color:var(--gold)}
.theme-preview>div{flex:1;min-width:0}
.theme-preview strong{display:block;color:var(--forest);font:600 17px 'Playfair Display',serif}
.theme-preview p{font-size:12px;margin:4px 0 0;color:var(--forest)}
.theme-sample-button{background:var(--pink);color:#fff;font-size:12px;font-weight:700;border-radius:8px;padding:9px 13px}
.theme-form-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.download-panel{border-left:3px solid var(--gold)!important}
.download-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.download-choice{background:#fafcf8;border:1px solid #e5ebdf;border-radius:13px;padding:22px}
.download-choice h4{font:600 20px 'Playfair Display',serif;margin:0 0 8px;color:var(--forest)}
.download-choice p{font-size:12px;line-height:1.7;color:#697c6e;min-height:63px}
.download-choice .btn{width:100%}
.download-audit-note{background:#fff9ea;border-left:3px solid var(--gold);padding:12px 15px;color:#806d4b;font-size:12px;line-height:1.6;margin:18px 0 0;border-radius:6px}
.audit-table{min-width:760px}
/* responsive: navigation becomes a horizontal tab rail on tablet/mobile */
@media(max-width:1200px){.admin-layout{grid-template-columns:215px minmax(0,1fr);gap:19px}.admin-main .stats{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.admin-layout{display:block}.admin-shell{padding:19px 0 54px}.admin-sidebar{position:static;border-radius:14px;margin-bottom:21px;padding:12px}.sidebar-label,.sidebar-site,.sidebar-bottom{display:none}.admin-side-links{flex-direction:row;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;gap:5px}.admin-side-links a{flex:none;padding:10px 12px}.admin-main .stats{grid-template-columns:repeat(3,minmax(0,1fr))}.archive-cta{flex-wrap:wrap}}
@media(max-width:700px){.container{width:calc(100% - 30px)}.admin-main .admin-section{padding:21px 15px}.theme-color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.download-choice-grid{grid-template-columns:1fr}.download-choice p{min-height:0}.theme-preview{flex-wrap:wrap}.admin-main .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-heading{display:block}.admin-heading>a{margin-top:18px}.admin-action-grid{grid-template-columns:1fr}.archive-cta{padding:20px}.archive-cta .download-form{width:100%}.archive-cta .btn{width:100%}}
@media(max-width:490px){.section{padding:50px 0}.hero-copy p{font-size:14px}.hero-copy h1{font-size:37px}.hero-copy h1 em{font-size:69px}.admin-main .stat{padding:13px 12px}.admin-main .stat strong{font-size:28px}.admin-main .stat small{font-size:10px}.admin-main .small-button{font-size:11px}.theme-preview{padding:15px}.theme-sample-button{display:none}.admin-main .gallery-grid{gap:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Color contrast: light accent choices are darkened for buttons and small text. */
.section h1{font:600 clamp(33px,4vw,47px)/1.18 'Playfair Display',serif;color:var(--forest);margin:12px 0 20px}
.eyebrow{color:var(--gold-ink,var(--gold))}
.rose-button,.small-button.primary,.pagination .active,.delete-selected-button{background:var(--accent-ink,var(--pink));border-color:var(--accent-ink,var(--pink));color:white}
.rose-button:hover,.small-button.primary:hover{background:color-mix(in srgb,var(--accent-ink,var(--pink)) 84%,black)}
.status-chip.no{color:#794451}
/* V9 · developer workspace */
.developer-auth{padding:28px 0 55px}.developer-auth h1{font:600 clamp(34px,4.5vw,52px)/1.15 'Playfair Display',serif;color:var(--forest);margin:14px auto}.developer-auth .form-card{max-width:590px;margin:20px auto}.developer-role-banner{padding:13px 16px;border-radius:12px;background:#e5eee8;border:1px solid #c8dbc9;color:var(--forest);font-size:13px;font-weight:700;margin:10px 0 20px}.dev-nav-divider{font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:850;color:#977747;border-top:1px solid #e9e8df;margin:16px 10px 8px;padding:16px 3px 3px}.developer-event-form{padding:clamp(19px,2.8vw,32px)}.developer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 22px}.developer-fields label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:750;color:#395646;min-width:0}.developer-fields input,.developer-fields textarea{padding:11px 13px;font:inherit;border:1px solid #d4ddd4;border-radius:9px;background:#fffdfa;width:100%;min-width:0}.developer-fields input:focus-visible,.developer-fields textarea:focus-visible{outline:3px solid #ceb47e;outline-offset:2px}.editor-group-title{margin-bottom:20px}.editor-group-title h3{font:700 24px 'Playfair Display',serif;color:var(--forest);margin:0 0 6px}.editor-group-title p{margin:0;color:#6e8574;font-size:13px}.developer-save-bar{position:sticky;bottom:0;background:#fffdfaeb;backdrop-filter:blur(5px);border-top:1px solid #d8ddd5;padding:16px 0 4px;margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:15px}.developer-save-bar span{font-size:12px;color:#718578}.developer-choices{gap:14px}.permission-row{display:flex;align-items:center;justify-content:space-between;flex-direction:row!important;border:1px solid #dfe6dd;border-radius:12px;padding:16px 20px;background:#fafdf9;gap:18px}.permission-row span{display:flex;flex-direction:column;gap:5px}.permission-row strong{font-size:15px;color:#244e3c}.permission-row small{font-size:12px;font-weight:400;color:#687e70}.permission-row input{width:24px;height:24px;accent-color:var(--forest);flex:none}.developer-asset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.developer-asset-card{min-width:0;justify-content:flex-start}.developer-asset-card h4{margin:0;color:var(--forest);font:700 22px 'Playfair Display',serif}.developer-asset-card .asset-preview{width:100%;height:155px;object-fit:contain;border-radius:9px;background:#f6faf5;border:1px solid #d8e4db;padding:12px}.developer-asset-card .favicon-image{width:100%;object-fit:contain;max-width:180px;align-self:center}.developer-asset-card .placeholder-fallback{display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:43px;color:#c67f99}.developer-asset-card .placeholder-fallback small{font-size:11px;color:#728675}.developer-asset-card form{display:flex;flex-direction:column;gap:10px}.developer-asset-card .btn{width:100%}.gallery-empty .placeholder-art{display:block;max-height:200px;max-width:min(320px,95%);object-fit:contain;margin:0 auto 14px;border-radius:12px}.hero-slogan{color:var(--accent-ink,#a96075)!important;letter-spacing:.45px;font-style:italic;font-size:14px!important;font-weight:700;margin-top:6px!important}
@media(max-width:1100px){.developer-asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.developer-fields,.developer-asset-grid{grid-template-columns:1fr}.developer-save-bar{flex-direction:column;align-items:stretch}.developer-save-bar .btn{width:100%}.permission-row{padding:14px}.developer-auth{padding:14px 0 40px}}

/* Developer setup repair: clear, responsive selection of first Developer account. */
.developer-bootstrap{width:min(1000px,calc(100% - 32px));margin:auto}
.developer-bootstrap h1{font:700 clamp(30px,3.9vw,46px)/1.2 'Playfair Display',serif;color:var(--forest);margin:10px 0 16px}
.developer-bootstrap .lead{max-width:810px;margin-inline:auto}
.developer-setup-options{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;align-items:start;margin-top:24px}
.developer-setup-form{margin:0;position:relative;min-width:0}
.developer-setup-form h2,.developer-setup-done h2{font:700 24px/1.25 'Playfair Display',serif;color:var(--forest);margin:3px 0}
.developer-setup-form p,.developer-setup-done p{color:#667d72;font-size:13px;line-height:1.6;margin:0 0 6px}
.developer-setup-form .btn{width:100%;margin-top:6px}
.setup-pill{display:inline-block;align-self:flex-start;background:#f3e2e9;color:#995c76;border-radius:999px;padding:4px 11px;font-size:11px;font-weight:800}
.developer-setup-done{width:min(640px,100%);margin:24px auto}
@media(max-width:750px){.developer-setup-options{grid-template-columns:1fr;gap:16px}}
