@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Manrope:wght@400;500;700&display=swap";:root{--bg:#f3eadf;--bg2:#d4eae8;--ink:#281306;--ink-soft:#6f4b31;--surface:#fffdf8;--panel-border:#dfc3a7;--accent:#a3541f;--sans:"Manrope", "Segoe UI", sans-serif;--heading:"Fraunces", Georgia, serif;font:16px/1.45 var(--sans);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}body{background:linear-gradient(135deg, var(--bg), var(--bg2), var(--bg));background-size:400% 400%;min-height:100svh;margin:0;animation:10s infinite gradientShift}h1,h2,h3{font-family:var(--heading);color:var(--ink)}h1{font-size:clamp(2rem,5vw,3.6rem);line-height:1.1}h2{font-size:clamp(1.3rem,2vw,1.8rem)}p{margin:0}.app-shell{gap:1rem;width:min(1080px,100% - 2rem);margin:1rem auto 2rem;display:grid}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.main-nav{flex-wrap:wrap;gap:.4rem;display:flex}.nav-pill{color:var(--ink);cursor:pointer;background:#fff9f0;border:1px solid #d8b89b;border-radius:999px;padding:.45rem .9rem;font-size:.88rem;font-weight:600}.nav-pill.active{background:var(--accent);color:#fff7ef;border-color:var(--accent)}.nav-pill .badge{color:#fff;background:#e74c3c;border-radius:999px;margin-left:.3rem;padding:.1rem .4rem;font-size:.72rem}.back-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:.3rem 0;font-size:.95rem;font-weight:600}.back-btn:hover{text-decoration:underline}.link-btn{cursor:pointer;color:var(--accent)!important;font:inherit!important;background:0 0!important;border:none!important;padding:0!important}.event-switcher{gap:.8rem;display:grid}.event-list{flex-wrap:wrap;gap:.5rem;display:flex}.event-pill{color:var(--ink);background:#fff9f0;border:1px solid #d8b89b;border-radius:999px;padding:.45rem .9rem}.event-pill.active{background:var(--accent);color:#fff7ef;border-color:var(--accent)}.event-meta{color:var(--ink-soft);flex-wrap:wrap;gap:.5rem 1.2rem;margin-top:.5rem;font-size:.95rem;display:flex}.inline-form{grid-template-columns:1fr auto;gap:.6rem;display:grid}.hero{background:radial-gradient(circle at 90% 10%, #f9be7373, transparent 30%), radial-gradient(circle at 20% 95%, #7acec359, transparent 32%), var(--surface);border:1px solid var(--panel-border);border-radius:24px;padding:clamp(1.4rem,3vw,2.5rem);animation:.5s rise-in;box-shadow:0 18px 60px #1e12072e}.hero-kicker{letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:.75rem}.hero h1{margin:.35rem 0}.hero-subtitle{max-width:62ch;margin:.5rem 0 0}.panel{border:1px solid var(--panel-border);background:var(--surface);border-radius:20px;padding:clamp(1rem,2vw,1.5rem);animation:.65s rise-in;box-shadow:0 10px 32px #2f160214}.panel h2{margin:0 0 .9rem}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.full-width{grid-column:1/-1}.checkbox-label{color:var(--ink-soft);cursor:pointer;flex-direction:row;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.checkbox-label input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent)}label{color:var(--ink-soft);gap:.35rem;font-size:.9rem;font-weight:600;display:grid}input,textarea,select,button{font:inherit}input,textarea,select{color:var(--ink);background:#fffaf4;border:1px solid #d4bea8;border-radius:12px;padding:.6rem .72rem}input:focus,textarea:focus,select:focus,button:focus{outline:2px solid var(--accent);outline-offset:1px}.rsvp-panel{border:2px solid var(--accent)}.rsvp-block{gap:.6rem;display:grid}.rsvp-buttons-large{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.rsvp-choice{cursor:pointer;text-align:center;color:var(--ink);background:#fff9f0;border:2px solid #d4bea8;border-radius:12px;padding:.7rem;font-weight:700;transition:all .15s}.rsvp-choice:hover{transform:translateY(-1px)}.rsvp-choice.active-accepted{color:#155724;background:#d4edda;border-color:#28a745}.rsvp-choice.active-maybe{color:#0c5460;background:#d1ecf1;border-color:#17a2b8}.rsvp-choice.active-declined{color:#721c24;background:#f8d7da;border-color:#dc3545}.stats-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:1rem;display:grid}.stats-row article{background:#fff7ee;border:1px dashed #d7baa0;border-radius:14px;padding:.7rem}.stats-row p{color:var(--ink-soft);margin:0}.stats-row strong{font-size:1.4rem;font-family:var(--heading)}.allocation-layout{grid-template-columns:1.4fr 1fr;gap:1rem;display:grid}.needs-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.needs-list li{background:#fff7ec;border:1px solid #eccfb6;border-radius:14px;justify-content:space-between;gap:1rem;padding:.8rem;display:flex}.needs-list h3,.card-form h3{margin:0;font-size:1.08rem}.needs-list p,.slot-copy small,.card-form p{color:var(--ink-soft)}.slot-copy{text-align:right;align-content:start;gap:.3rem;display:grid}.claim-btn{border-radius:10px;padding:.35rem .7rem;font-size:.85rem}.unclaim-btn{color:#721c24;background:#f8d7da;border-color:#dc3545;border-radius:10px;padding:.35rem .7rem;font-size:.85rem}.unclaim-btn:hover{filter:brightness(.95)}.forms-column{gap:.9rem;display:grid}.card-form{background:#fffcf8;border:1px solid #e7c8ad;border-radius:14px;gap:.55rem;padding:.8rem;display:grid}.auth-panel{max-width:620px;margin:3rem auto}.auth-form,.save-btn{margin-top:.8rem}.claim-names{margin-top:.3rem;font-size:.9rem}.invite-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;margin-bottom:.9rem}.invite-list{gap:.7rem;display:grid}.invite-card{background:#fff7ec;border:1px solid #e6c5a7;border-radius:12px;gap:.45rem;padding:.75rem;display:grid}.invite-card p,.invite-card small,.invitee-status p{margin:0}.owner-invite-actions{flex-wrap:wrap;gap:.45rem;display:flex}.delete-invite-btn{color:#fff;background:#c0392b;border:none}.delete-invite-btn:hover{background:#a93226}.email-delivery{font-size:.8rem}.email-delivery.success{color:#246c2f}.email-delivery.error{color:#9a2d2d}.rsvp-buttons{flex-wrap:wrap;gap:.45rem;display:flex}.status{text-transform:capitalize;border:1px solid #d1b8a0;border-radius:999px;width:fit-content;padding:.2rem .55rem;font-size:.84rem;display:inline-flex}.status-pending{background:#fff5de}.status-accepted{background:#dff4df}.status-maybe{background:#e2efff}.status-declined{background:#ffe5e5}.invitee-status{background:#fff8ef;border:1px solid #e6c6aa;border-radius:12px;padding:.8rem}.notice{background:#fff7eb;border:1px solid #d5b699;border-radius:12px;padding:.8rem}.invitation-list{gap:.7rem;display:grid}.invitation-card{cursor:pointer;background:#fff7ec;border:1px solid #e6c5a7;border-radius:14px;justify-content:space-between;align-items:center;padding:1rem;transition:transform .15s,box-shadow .15s;display:flex}.invitation-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #2f16021f}.invitation-card h3{margin:0 0 .2rem;font-size:1.1rem}.invitation-card p{color:var(--ink-soft);margin:0;font-size:.9rem}.invitation-badges{gap:.4rem;display:flex}.badge{border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.badge-past{color:#666;background:#e2e2e2}.badge-attending{color:#155724;background:#d4edda}.badge-declined{color:#721c24;background:#f8d7da}button,.upload-btn{border:1px solid var(--accent);background:var(--accent);color:#fff9f2;cursor:pointer;border-radius:12px;margin-top:0;padding:.6rem .9rem;font-weight:700;transition:transform .15s,filter .15s}button:hover,.upload-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.photo-panel p{margin-top:0}.upload-btn{align-items:center;gap:.5rem;width:fit-content;margin-top:.5rem;margin-bottom:.95rem;display:inline-flex}.upload-btn input{display:none}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.photo-grid figure{background:#fff6eb;border:1px solid #e8c7ab;border-radius:12px;margin:0;transition:transform .15s;overflow:hidden}.photo-grid figure:hover{transform:scale(1.03)}.photo-grid img{aspect-ratio:1;object-fit:cover;width:100%}.photo-grid figcaption{gap:.2rem;padding:.5rem;display:grid}.photo-grid small{color:var(--ink-soft)}.lightbox-overlay{z-index:1000;background:#000000d9;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.lightbox-content{flex-direction:column;align-items:center;gap:.8rem;max-width:90vw;max-height:90vh;display:flex;position:relative}.lightbox-content img{object-fit:contain;border-radius:12px;max-width:100%;max-height:75vh}.lightbox-close{color:#333;cursor:pointer;z-index:1001;background:#ffffffe6;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;font-size:1.5rem;display:flex;position:absolute;top:-.5rem;right:-.5rem}.lightbox-caption{color:#fff;text-align:center;margin:0;font-size:.95rem}.lightbox-nav{align-items:center;gap:1rem;display:flex}.lightbox-nav button,.lightbox-nav a{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:10px;padding:.5rem 1rem;font-size:.88rem;font-weight:600;text-decoration:none}.lightbox-nav button:disabled{opacity:.3;cursor:not-allowed}.lightbox-nav button:hover:not(:disabled),.lightbox-nav a:hover{background:#ffffff40}.empty-state{color:var(--ink-soft);border:1px dashed #dfb994;border-radius:12px;padding:1rem}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.details-grid,.allocation-layout,.invite-form{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(3,minmax(0,1fr))}.rsvp-buttons-large{grid-template-columns:1fr}}@media (width<=560px){.app-shell{width:min(100% - 1rem,1080px)}.topbar{flex-direction:column;align-items:flex-start}.inline-form{grid-template-columns:1fr}.event-list{flex-wrap:nowrap;padding-bottom:.25rem;overflow-x:auto}.stats-row{grid-template-columns:1fr}.needs-list li{flex-direction:column;align-items:flex-start}.slot-copy{text-align:left}}
