:root{color:#342f2a;background:#fffaf5;font-family:Nunito,Inter,ui-rounded,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:430;--hero-image: url(/assets/wedding-banquet-moto-D4ZQXB7i.png);--footer-image: url(/assets/wedding-banquet-moto-D4ZQXB7i.png)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#fffaf5;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}code{overflow-wrap:anywhere}h1,h2,h3,p{margin-top:0}a{color:#5f8063}.app-shell{min-height:100vh;overflow-x:hidden}.modal-backdrop{align-items:center;background:#584c4047;display:flex;inset:0;justify-content:center;padding:18px;position:fixed;z-index:20}.announcement-modal{background:#fffdf9;border:1px solid #eadfd4;border-radius:8px;box-shadow:0 24px 80px #4a3e342e;display:grid;gap:16px;max-height:min(720px,calc(100vh - 36px));max-width:620px;overflow-y:auto;padding:clamp(22px,5vw,42px);width:min(100%,620px)}.announcement-modal h2{color:#342f2a;font-size:clamp(2rem,5vw,3.6rem)}.announcement-modal p:not(.eyebrow){color:#665d54;font-size:1.05rem;line-height:1.55;margin-bottom:0;white-space:pre-line}.announcement-modal .primary-action{justify-self:start;margin-top:4px}.wedding-hero{background:linear-gradient(90deg,#fffaf529,#fffaf514 42%,#fffaf500),linear-gradient(90deg,#1916136b,#19161324 38%,#19161300 78%),var(--hero-image);background-position:center;background-size:cover;color:#fffaf5;display:grid;min-height:88vh;padding:24px clamp(18px,5vw,72px) 34px;position:relative}.wedding-hero:after{background:linear-gradient(180deg,#fffaf500,#fffaf5c2 58%,#fffaf5);bottom:-1px;content:"";height:clamp(78px,14vw,150px);left:0;pointer-events:none;position:absolute;right:0}.top-nav{align-items:center;align-self:start;display:flex;gap:18px;justify-content:space-between;position:relative;z-index:1}.top-nav strong{font-size:1.05rem;font-weight:780}.hero-content{align-self:center;max-width:760px;position:relative;z-index:1}.eyebrow{color:#9f7a4f;font-size:.82rem;font-weight:820;letter-spacing:0;margin-bottom:12px;text-transform:uppercase}.wedding-hero .eyebrow,.footer-band .eyebrow{color:#9f7a4f}.dj-header .eyebrow{color:#8a775f}h1{color:inherit;font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-size:clamp(4rem,12vw,9rem);font-weight:500;line-height:.9;margin-bottom:18px;max-width:900px}h2{font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-size:clamp(2rem,4vw,4.2rem);font-weight:500;line-height:1;margin-bottom:0}h3{font-size:1.05rem;margin-bottom:8px}.intro-lead{color:#fffaf5e6;font-size:clamp(1.05rem,1.8vw,1.32rem);line-height:1.5;margin-bottom:0;max-width:650px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.hero-facts{align-self:end;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));max-width:820px;position:relative;z-index:1}.hero-facts article{background:#fffaf5b3;border:1px solid rgba(132,118,100,.18);border-radius:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 26px #2f27201a;padding:12px 14px}.hero-facts span{color:#7a6d60;display:block;font-size:.85rem;margin-bottom:4px}.hero-facts strong{color:#342f2a;font-size:clamp(1.1rem,2vw,1.55rem)}.tabs{background:#fffdf9ad;border:1px solid rgba(132,118,100,.22);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 30px #463a2e14;display:flex;gap:4px;padding:4px}.tabs button,.primary-action,.secondary-action,.admin-row button,.field-action{border:0;border-radius:6px;min-height:42px;padding:0 16px}.tabs button{background:transparent;color:#4d453d;white-space:nowrap}.tabs button.active{background:#edf5ea;color:#31443a}.primary-action,.secondary-action{align-items:center;background:#5f8063;color:#fff;display:inline-flex;font-weight:850;justify-content:center;text-decoration:none}.secondary-action{background:#fffdf9b8;border:1px solid rgba(132,118,100,.24);color:#4d453d}.secondary-action.muted{background:#f3eee7;border:0;color:#4d453d}.primary-action:disabled,.secondary-action:disabled{cursor:not-allowed;opacity:.55}.section-band,.location-band,.forms-grid,.footer-band,.song-list,.admin-panel{padding:56px clamp(18px,5vw,72px);position:relative}.section-band:before,.location-band:before,.forms-grid:before,.footer-band:before,.song-list:before,.admin-panel:before{content:"";height:clamp(36px,7vw,82px);left:0;pointer-events:none;position:absolute;right:0;top:calc(clamp(36px,7vw,82px)*-1 + 1px)}.location-band:after{background:linear-gradient(180deg,#eef6ec,#eef6ecb8 42%,#fffaf5);bottom:calc(clamp(44px,8vw,96px)*-1 + 1px);content:"";height:clamp(44px,8vw,96px);left:0;pointer-events:none;position:absolute;right:0;z-index:1}.section-heading{align-items:end;display:flex;gap:28px;justify-content:space-between;margin-bottom:28px;position:relative;z-index:2}.section-heading .eyebrow{flex:0 0 auto;margin-bottom:4px}.section-heading.compact{align-items:start;display:block;margin-bottom:18px}.section-heading.compact h2{font-size:clamp(1.8rem,3vw,2.8rem)}.invitation-section{background:#fffaf5}.invitation-section:before{background:linear-gradient(180deg,#fffaf500,#fffaf5)}.invitation-section>p{font-size:clamp(1.2rem,2.4vw,2rem);line-height:1.45;max-width:980px;position:relative;z-index:2}.program-section{background:#fffdf9}.program-section:before{background:linear-gradient(180deg,#fffaf500,#fffdf9)}.timeline{display:grid;gap:0;margin:0 auto;max-width:940px;position:relative;z-index:2}.timeline-item{display:grid;gap:28px;grid-template-columns:110px minmax(0,1fr);padding:20px 0;position:relative}.timeline-item+.timeline-item{border-top:1px solid #eadfd4}.timeline-item time{color:#5f8063;font-family:Georgia,Times New Roman,serif;font-size:2.2rem}.timeline-item p{color:#766c62;margin:0}.location-band{align-items:center;background:#eef6ec;display:flex;gap:24px;justify-content:space-between}.location-band>*{position:relative;z-index:2}.location-band:before{background:linear-gradient(180deg,#fffdf900,#eef6ec)}.location-band p:last-child{color:#62584f;font-size:1.15rem;margin:14px 0 0}.info-grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));position:relative;z-index:2}.info-card,.song-card,.admin-row,.share-card,.stat-card,.announcement-stat-row,.rsvp-form,.request-form{background:#fff;border:1px solid #eadfd4;border-radius:8px;box-shadow:0 12px 34px #5042360e}.info-card{display:grid;gap:8px;padding:22px}.info-card p{color:#71675d;line-height:1.5;margin-bottom:0;white-space:pre-line}.info-card a{font-weight:850;margin-top:4px}.forms-grid{background:#fffaf5;display:grid;gap:24px;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);padding-top:calc(56px + clamp(20px,4vw,48px))}.forms-grid>*{position:relative;z-index:2}.forms-grid:before{background:linear-gradient(180deg,#eef6ec47,#fffaf5)}.rsvp-form,.request-form{align-self:start;display:grid;gap:18px;padding:24px}.request-form{grid-template-columns:repeat(2,minmax(0,1fr))}label{color:#5b5249;display:grid;gap:8px;font-weight:750}input,select,textarea{background:#fffdf9;border:1px solid #ded4ca;border-radius:6px;color:#342f2a;min-height:44px;padding:10px 12px;width:100%}input:focus,select:focus,textarea:focus{border-color:#9db894;box-shadow:0 0 0 3px #6f8f7229;outline:none}textarea{resize:vertical}.wide,.status,.request-form .primary-action{grid-column:1 / -1}.input-with-action{align-items:stretch;display:flex;gap:8px}.input-with-action input{min-width:0}.field-action{background:#f3eee7;color:#4d453d;flex:0 0 auto;font-weight:850}.field-action:disabled{cursor:not-allowed;opacity:.55}.status{border-radius:6px;margin:0;padding:12px}.success{background:#e7f5e8;color:#385b43}.error{background:#fff0ed;color:#8d3f35}.faq-section{background:#fffdf9}.faq-section:before{background:linear-gradient(180deg,#fffaf500,#fffdf9)}details{border-top:1px solid #eadfd4;margin:0 auto;max-width:980px;padding:18px 0;position:relative;z-index:2}details:last-child{border-bottom:1px solid #eadfd4}summary{cursor:pointer;font-size:1.12rem;font-weight:850}details p{color:#71675d;line-height:1.55;margin:14px 0 0;white-space:pre-line}.footer-band{background:linear-gradient(180deg,#fffdf9,#fffdf9f5 8%,#fffaf5a3 24%,#fffaf529 46%,#fffaf500 64%),linear-gradient(90deg,#19161375,#19161329 42%,#19161300),var(--footer-image);background-position:center;background-size:cover;color:#fffaf5;min-height:44vh}.footer-band:before{background:linear-gradient(180deg,#fffdf900,#fffaf58f 38%,#fffaf5e0);height:clamp(72px,12vw,150px);top:calc(clamp(72px,12vw,150px)*-1 + 1px)}.footer-band h2{max-width:800px;position:relative;z-index:2}.footer-band p:last-child{color:#fffaf5db;font-size:1.15rem;margin-top:18px;position:relative;z-index:2}.footer-band>.eyebrow{position:relative;z-index:2}.song-list,.admin-panel{display:grid;gap:14px}.song-list>*,.admin-panel>*{position:relative;z-index:2}.song-list:before,.admin-panel:before{background:linear-gradient(180deg,#fffaf500,#fffaf5)}.song-card,.admin-row,.admin-header{align-items:center;display:flex;gap:18px;justify-content:space-between}.song-card,.admin-row{padding:18px}.song-card h2,.admin-header h2{font-family:inherit;font-size:1.3rem;font-weight:850;margin-bottom:4px}.song-card p,.admin-row span,.admin-row p,.admin-header p{color:#71675d;margin-bottom:0}.song-card a,.admin-row a{color:#5f8063;font-weight:850;overflow-wrap:anywhere}.admin-actions{display:flex;gap:10px}.admin-row.is-approved{background:#f5fbf3;border-color:#cfe3c8}.admin-row.is-pending{background:#fffaf0;border-color:#ebd7b6}.admin-row div{display:grid;gap:6px;min-width:0}.admin-row .row-actions{align-items:stretch;display:flex;flex:0 0 auto;gap:8px;justify-content:flex-end;position:relative}.admin-row button{background:#f3eee7;color:#4d453d;flex:0 0 auto}.admin-row button:disabled{cursor:not-allowed;opacity:.55}.admin-row button.approved{background:#5f8063;color:#fff}.admin-row button.muted-row-action{background:#fffdf9;border:1px solid #ded4ca;color:#4d453d}.admin-row button.danger-row-action{background:#fff0ed;color:#8d3f35}.delete-confirm-popover{background:#fffdf9;border:1px solid #ecc8c0;border-radius:8px;box-shadow:0 14px 34px #50423621;display:grid;gap:8px;min-width:260px;padding:12px;position:absolute;right:0;top:calc(100% + 8px);z-index:3}.delete-confirm-popover span{color:#71675d;overflow-wrap:anywhere}.delete-confirm-popover div{display:flex;gap:8px}.login-form{display:grid;gap:18px;max-width:420px}.share-panel{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.share-card{align-items:center;display:flex;gap:18px;justify-content:space-between;padding:18px}.share-card h3{margin:0 0 4px}.share-card p{color:#71675d;margin-bottom:10px}.share-card code{background:#f8f2eb;border-radius:6px;color:#5b5249;display:block;font-size:.85rem;padding:8px}.qr-button{align-items:center;background:transparent;border:0;color:#5f8063;display:grid;flex:0 0 auto;font-weight:850;gap:8px;justify-items:center;padding:0}.qr-button img{background:#fffdf9;border:1px solid #ded4ca;border-radius:8px;display:block;height:132px;padding:8px;width:132px}.text-copy-action{background:#f3eee7;border:0;border-radius:6px;color:#4d453d;flex:0 0 auto;font-weight:850;min-height:42px;padding:0 12px}.empty-state{color:#71675d}.stats-grid{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{display:grid;gap:8px;padding:18px}.stat-card span{color:#71675d}.stat-card strong{color:#342f2a;font-size:clamp(2rem,5vw,3.6rem);line-height:1}.announcement-stats{display:grid;gap:12px}.announcement-stats h3{margin:8px 0 0}.announcement-stat-row{align-items:center;display:flex;gap:18px;justify-content:space-between;padding:16px 18px}.announcement-stat-row div{display:grid;gap:5px;min-width:0}.announcement-stat-row span{color:#71675d}.announcement-stat-row>strong{color:#5f8063;font-size:1.35rem}.dj-shell{background:#fffaf5;display:grid;gap:22px;min-height:100vh;padding:28px clamp(16px,4vw,56px)}.dj-header{align-items:end;border-bottom:1px solid #eadfd4;display:flex;gap:20px;justify-content:space-between;padding-bottom:20px}.dj-header h1{color:#342f2a;font-family:inherit;font-size:clamp(2rem,4vw,3.8rem);font-weight:850}.dj-header p{color:#71675d;margin:8px 0 0}.dj-board{display:grid;gap:24px}.dj-group{display:grid;gap:12px}.dj-group h2{border-bottom:1px solid #eadfd4;color:#5b5249;font-family:inherit;font-size:1.5rem;font-weight:850;margin:0;padding-bottom:8px}.dj-track{align-items:center;background:#fffdf9;border:1px solid #eadfd4;border-radius:8px;display:flex;gap:18px;justify-content:space-between;padding:18px}.dj-track div{display:grid;gap:5px;min-width:0}.dj-track strong{font-size:1.25rem}.dj-track span,.dj-track p,.dj-track small{color:#71675d}.dj-track p{margin:4px 0 0}.dj-track a{color:#5f8063;flex:0 0 auto;font-weight:850}@media(max-width:900px){.wedding-hero{min-height:92vh}.top-nav,.location-band,.admin-header,.dj-header{align-items:stretch;flex-direction:column}.tabs{overflow-x:auto;width:100%}.tabs button{flex:1 0 auto}.hero-facts,.info-grid,.forms-grid,.stats-grid,.share-panel{grid-template-columns:1fr}.section-heading{align-items:start;display:grid;gap:8px}.request-form{grid-template-columns:1fr}.song-card,.admin-row,.admin-row .row-actions,.announcement-stat-row,.share-card,.dj-track,.input-with-action{align-items:stretch;flex-direction:column}.delete-confirm-popover{min-width:0;position:static;width:100%}.field-action{width:100%}}@media(max-width:560px){h1{font-size:clamp(3.2rem,18vw,5.4rem)}.wedding-hero{padding:18px 16px 28px}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .primary-action,.hero-actions .secondary-action{width:100%}.timeline-item{gap:8px;grid-template-columns:1fr}}
