:root{--ivory:#fffaf5;--blush:#ffdce8;--peach:#ffd9c4;--lav:#ded5ff;--rose:#b96f91;--violet:#6f5c91;--gold:#c9a75f;--gold2:#f2d993;--ink:#4b4053;--muted:#7d7182;--shadow:0 28px 75px rgba(89,67,104,.15)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Georgia,'Times New Roman',serif;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}#app{overflow:hidden}
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:70px 24px 96px;position:relative;isolation:isolate;background:linear-gradient(180deg,#fff7f4,#ffeff6 52%,#fff7ee)}.theme-photo-wash{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(255,246,244,.78),rgba(255,237,245,.9) 52%,rgba(255,248,239,.97)),url('/resources/main-hero-collage.png') center/cover;opacity:.52;filter:blur(1px);transform:scale(1.02)}.hero:before{content:'';position:absolute;left:50%;bottom:-70px;width:min(1200px,130vw);height:190px;transform:translateX(-50%);border-radius:50% 50% 0 0;background:linear-gradient(180deg,#f7eadc,#ecd9cc);opacity:.68;z-index:-1}.cross{font-size:30px;color:var(--gold);margin-bottom:14px;animation:starPulse 2.8s ease-in-out infinite}.cross.small{font-size:18px;margin:0 0 10px}.eyebrow,.section-kicker,.admin-kicker{font-family:Arial,sans-serif;text-transform:uppercase;letter-spacing:.25em;font-size:11px;font-weight:800;color:#9f6f8c;margin:0 0 18px}.hero h1{font-size:clamp(52px,9vw,94px);line-height:.92;font-weight:400;margin:0;letter-spacing:-.05em;background:linear-gradient(120deg,#775b76,#bd7892 48%,#b58a51);-webkit-background-clip:text;background-clip:text;color:transparent}.hero h1 span{font-size:.68em;font-style:italic}.hero h1 .hero-written-name{font-size:1em;font-style:normal;display:inline-block;min-width:11ch}.hero-written-name.is-writing{border-right:2px solid #b58a51;padding-right:.04em}.subtitle{text-transform:uppercase;letter-spacing:.35em;font-family:Arial,sans-serif;font-size:13px;margin:23px 0;color:#b58a51;font-weight:700}.divider{display:flex;align-items:center;gap:10px;color:var(--gold);width:min(360px,75vw);margin:4px auto 24px}.divider span{height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold2),transparent)}.intro{max-width:570px;font-size:18px;line-height:1.75;color:#6d6070;margin:0 auto 30px}
.hero-photo-frame{position:relative;width:min(420px,82vw);aspect-ratio:415/739;margin:0 auto 32px;display:grid;place-items:center;isolation:isolate;animation:heroFloat 5.7s ease-in-out infinite}.hero-photo-frame:before{content:'';position:absolute;inset:-9px;border:2px solid rgba(255,255,255,.9);border-radius:42px;background:linear-gradient(160deg,rgba(255,255,255,.96),rgba(255,230,237,.83) 45%,rgba(222,213,255,.7));box-shadow:0 30px 70px rgba(105,79,120,.2);z-index:-2}.hero-halo{position:absolute;width:270px;height:270px;border:2px solid rgba(242,217,147,.58);border-radius:50%;top:64px;z-index:-1;box-shadow:0 0 34px rgba(255,218,145,.42);animation:haloPulse 3.4s ease-in-out infinite}.hero-photo-frame img{width:100%;height:100%;object-fit:contain;object-position:center;border-radius:34px;filter:drop-shadow(0 10px 12px rgba(77,61,89,.14))}.date-card{display:flex;align-items:center;gap:24px;padding:20px 31px;margin:0 auto 28px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.9);outline:1px solid rgba(201,167,95,.2);border-radius:100px;box-shadow:0 22px 60px rgba(91,74,109,.14)}.date-card div{display:grid;gap:4px;min-width:120px}.date-card small{font-family:Arial,sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}.date-card strong{font-size:20px;color:var(--violet)}.date-rule{width:1px;height:38px;background:linear-gradient(var(--gold2),var(--gold),var(--gold2))}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:700px}.primary-btn,.secondary-pill,.text-btn,.map-btn,.admin-action{border-radius:999px;text-decoration:none;border:0}.primary-btn,.admin-action{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(120deg,#a76f91,#c8879d 52%,#d4ad72);color:#fff;padding:14px 24px;font:800 11px Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase;box-shadow:0 14px 30px rgba(126,88,142,.22)}.secondary-pill{border:1px solid rgba(181,138,81,.28);padding:12px 18px;background:rgba(255,255,255,.8);color:#835f78;font:800 10px Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}.primary-btn:hover,.secondary-pill:hover,.admin-action:hover{transform:translateY(-2px)}
.section{padding:100px 24px;text-align:center;position:relative}.section:before{content:'✧  ·  ✦  ·  ✧';position:absolute;left:50%;top:24px;transform:translateX(-50%);color:rgba(201,167,95,.65);letter-spacing:.7em;font-size:12px;white-space:nowrap}.section h2{font-size:clamp(36px,5vw,58px);font-weight:400;margin:0 0 16px;color:#5b4c66}.section-note{max-width:650px;margin:0 auto 42px;color:var(--muted);font-size:17px;line-height:1.75}.ceremony{background:linear-gradient(180deg,#fff9f4,#fff4f8 62%,#fff8ef)}.program-flow{background:linear-gradient(180deg,#fbf7ff,#fff8ee 50%,#f7fbff)}.godparents{background:linear-gradient(180deg,#fdf8f2,#fff3f7 52%,#fff8ef)}.rsvp{background:linear-gradient(180deg,#fff8ef,#fff2f7 52%,#fff9f3)}
.event-grid{max-width:940px;margin:40px auto 22px;display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.event-card,.godparent-grid article,.rsvp-shell,.program-step{border:1px solid rgba(255,255,255,.94);outline:1px solid rgba(206,178,222,.22);background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(255,247,241,.84));box-shadow:0 18px 42px rgba(111,83,103,.1)}.event-card{padding:42px 30px;border-radius:32px}.event-card .icon{font-size:34px;margin-bottom:16px}.label{font-family:Arial,sans-serif;text-transform:uppercase;letter-spacing:.18em;color:var(--rose);font-size:10px;font-weight:800}.event-card h3{font-size:25px;font-weight:400;margin:10px 0;color:#5c5064}.event-card p{color:var(--muted);font-size:15px}.map-btn,.text-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(201,167,95,.24);background:rgba(255,255,255,.8);color:var(--violet);padding:10px 14px;font:800 10px Arial,sans-serif;letter-spacing:.05em;text-transform:uppercase}.map-btn{margin-top:12px}.text-btn{font-size:11px}
.program-timeline{width:min(920px,100%);margin:42px auto 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;text-align:left}.program-step{display:grid;grid-template-columns:42px 48px 1fr;gap:13px;align-items:center;padding:20px;border-radius:24px}.program-number{font:800 10px Arial,sans-serif;letter-spacing:.1em;color:var(--gold);text-align:center}.program-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#fff0f6);box-shadow:0 8px 20px rgba(111,92,145,.1);font-size:20px}.program-step h3{margin:0 0 5px;font-size:20px;font-weight:400;color:#5c5064}.program-step p{margin:0;color:var(--muted);font:14px/1.5 Arial,sans-serif}.program-step-final{grid-column:1/-1;width:min(540px,100%);justify-self:center}
.godparent-grid{max-width:940px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:26px;text-align:left}.godparent-grid article{border-radius:34px;padding:36px}.title-mark{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#f2dcff);color:var(--violet);font-style:italic;margin-bottom:14px}.godparent-grid h3{font-size:31px;font-weight:400;margin:0 0 18px;color:var(--violet)}.godparent-grid ul{list-style:none;margin:0;padding:0}.godparent-grid li{padding:10px 0;border-bottom:1px dashed rgba(185,111,145,.18);font-size:17px}.godparent-grid li:last-child{border-bottom:0}
.rsvp-shell{max-width:740px;margin:0 auto;border-radius:38px;padding:50px}.rsvp-shell form{display:grid;grid-template-columns:1fr 1fr;gap:18px;text-align:left}.rsvp-shell label,.admin-panel label{display:grid;gap:7px;font-family:Arial,sans-serif;font-size:12px;font-weight:800;color:var(--violet)}.rsvp-shell label.full{grid-column:1/-1}.rsvp-shell label span,.admin-panel label span{font-weight:400;color:var(--muted)}input,select,textarea{width:100%;border:1px solid rgba(160,137,177,.25);border-radius:14px;background:rgba(255,255,255,.9);padding:13px 14px;font:15px Arial,sans-serif;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#b99ed1;box-shadow:0 0 0 4px rgba(222,213,255,.35)}textarea{resize:vertical}.form-btn{grid-column:1/-1}.rsvp-error{grid-column:1/-1;color:#9b4666;font:700 12px Arial,sans-serif;background:#fff0f5;border:1px solid #f2c9d8;padding:10px 12px;border-radius:12px}.rsvp-result{padding-top:18px}.rsvp-result .check{width:58px;height:58px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#fff8da,#ffdce8);color:var(--violet);font-size:25px}.rsvp-result h3{font-size:30px;margin:0 0 10px}.rsvp-result p{color:var(--muted);line-height:1.65}
footer{text-align:center;padding:64px 24px 82px;background:linear-gradient(150deg,#6f5c91,#8c708c 55%,#9a806c);color:#fff9f4}footer p{max-width:540px;margin:0 auto 16px;opacity:.9;line-height:1.65}footer strong,footer span{display:block}footer strong{font-size:22px;font-weight:400;margin-bottom:6px}footer span{font-family:Arial,sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.72}.organizer-link{margin-top:18px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;padding:10px 15px;border-radius:999px;font:700 11px Arial,sans-serif}
.music-player{position:fixed;right:18px;bottom:18px;z-index:1300;width:min(285px,calc(100vw - 28px));padding:10px;border:1px solid rgba(215,179,109,.3);border-radius:20px;background:rgba(255,250,247,.97);box-shadow:0 14px 36px rgba(92,65,83,.18);font-family:Arial,sans-serif}.music-toggle{width:100%;border:0;border-radius:999px;padding:12px 16px;background:linear-gradient(120deg,#a76f91,#c8879d 52%,#d4ad72);color:#fff;font:800 11px Arial,sans-serif;text-transform:uppercase}.music-details{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;padding:10px 6px 2px}.music-now{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#9d8391}.music-details strong{font:600 14px Georgia,serif;color:#624d60}.music-details label{grid-column:2;grid-row:1/span 2;font:700 9px Arial,sans-serif;color:#907784;text-transform:uppercase}.music-details input{width:90px;padding:0;box-shadow:none}
.browser-prompt{position:fixed;left:50%;top:12px;transform:translateX(-50%);z-index:2100;width:min(720px,calc(100vw - 24px));display:flex;align-items:center;gap:18px;justify-content:space-between;padding:13px 14px 13px 18px;border:1px solid rgba(215,179,109,.35);border-radius:20px;background:rgba(255,250,247,.98);box-shadow:0 16px 44px rgba(77,54,72,.2);font-family:Arial,sans-serif}.browser-prompt[hidden]{display:none}.browser-prompt-copy{display:grid;gap:4px;text-align:left}.browser-prompt-copy strong{font-size:13px;color:#66506a}.browser-prompt-copy span{font-size:11px;color:#8b7887}.browser-prompt-actions{display:flex;gap:7px}.browser-prompt-actions button{border:0;border-radius:999px;padding:10px 13px;background:#b87896;color:#fff;font:800 9px Arial,sans-serif;text-transform:uppercase}.browser-prompt-actions .secondary{background:#fff;color:#806578;border:1px solid #ead7e0}
.admin-open{overflow:hidden}.admin-panel{position:fixed;inset:0;z-index:1500;background:linear-gradient(145deg,#f7f2ff,#fff8ee);overflow:auto;padding:24px}.admin-panel[hidden]{display:none}.admin-shell{width:min(1180px,100%);margin:0 auto;background:#fff;border:1px solid #eadff0;border-radius:30px;box-shadow:0 28px 80px rgba(76,57,90,.18);overflow:hidden}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 28px;border-bottom:1px solid #eee5f1;background:linear-gradient(120deg,#fff9fd,#fffaf0)}.admin-topbar h2{margin:4px 0 0;font-size:30px;font-weight:400;color:#5b4c66}.admin-kicker{margin:0;color:var(--rose);font-size:10px}.organizer-info{margin:7px 0 0;color:#8c7d91;font:600 11px Arial,sans-serif}.admin-close{width:42px;height:42px;border-radius:50%;border:1px solid #e5dce8;background:#fff;color:#6f5c91;font-size:24px}.admin-content{padding:28px}.admin-status{margin:0 0 18px;color:#786b7e;font:600 12px Arial,sans-serif}.admin-auth-state{text-align:center;padding:60px 24px}.admin-auth-state h3{font-size:30px;font-weight:400;margin:0 0 10px}.admin-auth-state p{max-width:560px;margin:0 auto 20px;color:#7d7182}.organizer-card{max-width:430px;margin:18px auto;padding:15px 18px;border:1px solid rgba(201,167,95,.24);border-radius:17px;background:linear-gradient(135deg,#fffaf5,#fff4fa);display:grid;gap:5px}.organizer-card span{font:800 9px Arial,sans-serif;text-transform:uppercase;color:#a47a92}.organizer-card strong{font-size:20px;color:#6c5875}.organizer-card small{font:500 11px Arial,sans-serif;color:#968795}.admin-login-form{max-width:430px;margin:24px auto 0;display:grid;grid-template-columns:1fr;gap:14px;text-align:left}.admin-action.secondary{background:#fff;color:#6f5c91;border:1px solid #dfd3e6;box-shadow:none}.admin-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:20px}.admin-toolbar input,.admin-toolbar select{width:auto;min-width:190px}.admin-toolbar .spacer{flex:1}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.admin-stat{padding:18px;border-radius:18px;background:linear-gradient(145deg,#fff9fd,#f8f5ff);border:1px solid #ebe3ef}.admin-stat small{display:block;color:#88798e;font:700 10px Arial,sans-serif;text-transform:uppercase}.admin-stat strong{display:block;margin-top:8px;font-size:30px;color:#5b4c66}.admin-table-wrap{overflow:auto;border:1px solid #ebe3ef;border-radius:18px}.admin-table{width:100%;border-collapse:collapse;min-width:860px}.admin-table th{padding:13px 14px;background:#faf7fc;text-align:left;color:#76697c;font:800 10px Arial,sans-serif;text-transform:uppercase}.admin-table td{padding:14px;border-top:1px solid #eee8f0;vertical-align:top;font:14px Arial,sans-serif}.admin-table td small{display:block;margin-top:5px;color:#94879a;font-size:11px}.admin-pill{display:inline-flex;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:800}.admin-pill.yes{background:#e6f6ea;color:#397349}.admin-pill.no{background:#fff0f2;color:#9b5261}.admin-row-actions{display:flex;gap:6px}.admin-row-actions button{border:1px solid #dfd5e4;background:#fff;border-radius:9px;padding:7px 9px;color:#66576e;font:700 11px Arial,sans-serif}.admin-row-actions .danger{color:#a14d64;border-color:#eccbd4}.admin-empty{text-align:center;padding:30px;color:#8c7f91;font:600 13px Arial,sans-serif}.admin-more{text-align:center;margin-top:18px}
.settings-editor-card{margin:0 0 24px;padding:22px;border:1px solid #eadff0;border-radius:22px;background:linear-gradient(145deg,#fffafd,#fffaf2);box-shadow:0 14px 36px rgba(96,73,108,.08);text-align:left}.settings-editor-head{display:flex;justify-content:space-between;gap:18px;margin-bottom:18px}.settings-editor-head h3{margin:4px 0 0;color:#5d4d67;font-size:25px;font-weight:400}.settings-status{margin:0;max-width:360px;color:#89798e;font:600 11px/1.5 Arial,sans-serif;text-align:right}.settings-editor-form{display:block}.settings-name-grid,.settings-event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-name-grid textarea{min-height:240px;line-height:1.5}.settings-event-grid{margin-top:16px}.settings-event-grid fieldset{margin:0;padding:18px;border:1px solid #eadfe9;border-radius:18px;background:rgba(255,255,255,.68)}.settings-event-grid legend{padding:0 8px;color:#745f7d;font:800 11px Arial,sans-serif;text-transform:uppercase}.settings-date-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.settings-save-row{display:flex;justify-content:flex-end;margin-top:18px}.edit-dialog{border:0;border-radius:24px;padding:0;width:min(560px,calc(100vw - 28px));box-shadow:0 30px 90px rgba(60,42,72,.28)}.edit-dialog::backdrop{background:rgba(44,33,51,.55)}.edit-shell{padding:26px}.edit-shell h3{margin:0 0 18px;font-size:28px;font-weight:400}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.edit-grid .full{grid-column:1/-1}.edit-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.magic-sky{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:-1}.magic-fairy,.magic-butterfly,.magic-spark{position:absolute;animation:magicFloat var(--dur,10s) ease-in-out infinite}.magic-fairy{font-size:28px}.magic-butterfly{font-size:24px}.magic-spark{font-size:18px;color:#f3ce72}@keyframes magicFloat{0%,100%{transform:translate3d(0,0,0) rotate(-5deg)}50%{transform:translate3d(14px,-24px,0) rotate(6deg)}}@keyframes heroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes haloPulse{0%,100%{transform:scale(.95);opacity:.6}50%{transform:scale(1.06);opacity:1}}@keyframes starPulse{0%,100%{transform:scale(.9);opacity:.7}50%{transform:scale(1.15);opacity:1}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:760px){.hero{min-height:auto;padding:60px 18px 96px}.hero-photo-frame{width:min(330px,86vw)}.hero-halo{width:205px;height:205px;top:50px}.date-card{gap:13px;padding:16px 18px}.date-card div{min-width:95px}.section{padding:82px 18px}.event-grid,.godparent-grid,.program-timeline,.settings-name-grid,.settings-event-grid,.settings-date-row{grid-template-columns:1fr}.program-step-final{grid-column:auto}.rsvp-shell{padding:34px 20px}.rsvp-shell form{grid-template-columns:1fr}.rsvp-shell label.full,.form-btn{grid-column:auto}.godparent-grid article{padding:30px 24px}.admin-panel{padding:0}.admin-shell{border-radius:0;min-height:100svh}.admin-topbar,.admin-content{padding:18px}.admin-stats{grid-template-columns:repeat(2,1fr)}.admin-toolbar{align-items:stretch}.admin-toolbar input,.admin-toolbar select,.admin-toolbar button{width:100%;min-width:0}.admin-toolbar .spacer{display:none}.settings-editor-head{display:grid}.settings-status{text-align:left}.settings-save-row .admin-action{width:100%}.edit-grid{grid-template-columns:1fr}.edit-grid .full{grid-column:auto}.browser-prompt{top:8px;flex-direction:column;align-items:stretch}.browser-prompt-actions{width:100%}.browser-prompt-actions button{flex:1}.music-player{right:10px;bottom:10px;width:225px}.map-btn{width:100%}}
@media(max-width:430px){.hero h1{font-size:48px}.intro{font-size:16px}.date-card{width:100%;justify-content:center}.date-card div{min-width:0;flex:1}.section h2{font-size:37px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}}
