@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Nunito:wght@700;800;900&display=swap');
:root{--purple:#5d25af;--navy:#26144d;--pink:#ee138c;--aqua:#08c8c8;--yellow:#ffce3a;--paper:#fffdfb;--shadow:0 18px 42px rgba(57,31,91,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fbf9ff;color:var(--navy);font-family:'DM Sans',Arial,sans-serif}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.topbar{display:flex;justify-content:space-between;align-items:center;padding:17px max(24px,calc((100vw - 1200px)/2));background:#fff;box-shadow:0 3px 12px #39235a0b;position:relative;z-index:2}.brand{text-decoration:none;font-family:Nunito,sans-serif;font-weight:900;font-size:24px}.brand span:last-child{color:var(--purple)}.brand-spark{color:#ed1e98}.topbar-aside{font-weight:700;color:#7b699b;font-size:13px}.hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 15% 5%,#ffe5f2 0%,transparent 38%),radial-gradient(ellipse at 90% 20%,#dcfcfa 0%,transparent 40%),linear-gradient(135deg,#fffafc,#f5eeff);padding:60px 24px 100px}.hero-inner{max-width:1150px;margin:auto;display:grid;grid-template-columns:1fr 450px;align-items:center;gap:70px;position:relative;z-index:1}.splash{position:absolute;width:300px;height:300px;border-radius:51% 49% 40% 60%;filter:blur(2px);opacity:.2}.s1{background:var(--pink);top:-200px;left:-100px}.s2{background:var(--aqua);right:-130px;bottom:-200px}.eyebrow{display:inline-block;letter-spacing:.10em;font-weight:900;font-size:12px;color:var(--purple);margin-bottom:20px}.hero h1{font-family:Nunito,sans-serif;font-size:clamp(52px,6vw,82px);font-weight:900;line-height:1.03;letter-spacing:-.055em;margin-bottom:22px}.hero h1 .pink{color:var(--pink)}.paint-stroke{display:inline-block;background:var(--purple);transform:rotate(-2deg);padding:12px 25px;color:#fff;font-size:24px;font-family:Nunito,sans-serif;font-weight:900;border-radius:9px 25px 7px 19px}.intro{font-size:18px;line-height:1.7;max-width:520px;color:#51436c;margin:26px 0 26px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:14px;padding:15px 21px;font-weight:800;text-decoration:none;transition:transform .2s,filter .2s;white-space:nowrap}.btn:hover{transform:translateY(-2px);filter:brightness(1.04)}.btn-pink{background:var(--pink);color:#fff;box-shadow:0 12px 22px #e7198540}.btn-purple{background:var(--purple);color:#fff}.btn-outline{border:2px solid #d6c5ef;background:#fff;color:var(--purple)}.hero-photo{position:relative;padding:10px;border-radius:28px;background:#fff;box-shadow:0 25px 70px #6126a52a;transform:rotate(2deg)}.hero-photo img{width:100%;height:490px;object-fit:cover;object-position:top;border-radius:20px;display:block}.photo-badge{position:absolute;bottom:-22px;left:-30px;right:18px;background:#ffdf53;color:#3a2374;font-weight:900;padding:14px 16px;border-radius:12px;text-align:center;box-shadow:0 12px 25px #40297030;transform:rotate(-4deg)}.event-card{position:relative;z-index:1;max-width:1150px;margin:-56px auto 46px;background:#fff;border:1px solid #eee0f7;border-radius:26px;box-shadow:var(--shadow);padding:30px;display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:20px}.detail{display:flex;align-items:flex-start;gap:13px}.detail:not(:last-of-type){border-right:1px solid #ece7f1}.bubble{display:flex;flex:0 0 48px;justify-content:center;align-items:center;width:48px;height:48px;border-radius:15px;font-size:24px}.lavender{background:#efe3ff}.yellow{background:#fff0ae}.mint{background:#dcfaf4}.detail small{display:block;color:#897c9c;font-weight:900;font-size:10px;letter-spacing:.09em;margin:4px 0 7px}.detail strong{font-family:Nunito,sans-serif;display:block;font-size:17px;font-weight:900;line-height:1.4}.detail span:not(.bubble){font-size:13px;color:#786a8d;display:block;line-height:1.5}.detail-buttons{grid-column:1/-1;border-top:1px solid #f0e9f3;padding-top:22px;display:flex;justify-content:center;gap:12px}.info-grid{max-width:1150px;margin:0 auto 56px;padding:0 4px;display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.info-card{background:#fff;border:1px solid #f2e7fd;padding:25px 26px 30px;border-radius:22px;box-shadow:0 7px 20px #2b0c6209;min-height:240px}.info-card h2{font-family:Nunito,sans-serif;font-size:22px;font-weight:900}.info-card p{color:#615474;line-height:1.7;font-size:15px}.card-icon{font-size:35px;display:block;margin-bottom:15px}.card-teal{background:#effdfc;border-color:#c1f4f1}.card-pink{background:#fff1f8;border-color:#ffd8e9}.paint-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:18px}.paint-pills span{border-radius:20px;background:#eadbff;color:var(--purple);font-size:10px;letter-spacing:.04em;font-weight:900;padding:7px 10px}.paint-pills span:nth-child(2){background:#ffe7a5;color:#8a5a00}.paint-pills span:nth-child(3){background:#cbf7ee;color:#087c75}.secondary-copy{font-size:13px!important}.rsvp-wrap{background:linear-gradient(140deg,#eadcff 0%,#fbf0fd 50%,#dbfaf8 100%);padding:78px max(24px,calc((100vw - 1150px)/2));display:grid;grid-template-columns:.9fr 1.1fr;gap:75px;align-items:start}.rsvp-intro{padding-top:35px}.rsvp-intro h2{font:900 clamp(38px,5vw,62px)/1.1 Nunito,sans-serif;letter-spacing:-.04em}.rsvp-intro p{font-size:17px;line-height:1.8;color:#62536f}.rsvp-graphic{font-size:55px;margin-top:30px}.rsvp-form{background:#fff;box-shadow:var(--shadow);border-radius:25px;padding:34px;border:1px solid #ebdefa}.rsvp-form h3{font:900 26px Nunito,sans-serif;margin:0 0 22px}.rsvp-form label:not(.choice):not(.consent){display:block;font-weight:800;font-size:13px;margin-bottom:15px}.rsvp-form label span,.choices legend span{color:var(--pink)}.rsvp-form input:not([type=radio]):not([type=checkbox]),.rsvp-form textarea{display:block;margin-top:7px;width:100%;border:1.5px solid #e4dceb;border-radius:12px;padding:13px 14px;outline:none;font-size:15px;background:#fff;color:#24143f}.rsvp-form input:focus,.rsvp-form textarea:focus{border-color:var(--purple);box-shadow:0 0 0 3px #6b2ec51d}.choices{border:0;padding:0;margin:16px 0 20px}.choices legend{font-size:13px;font-weight:800;margin-bottom:11px}.choice{display:block;margin-bottom:8px;cursor:pointer}.choice input{position:absolute;opacity:0}.choice span{display:block;background:#f8f5fb;padding:13px 15px;border:2px solid transparent;border-radius:12px;color:#29164b!important;font-weight:700}.choice input:checked+span{border-color:var(--purple);background:#eee4ff}.choice input:focus-visible+span{outline:3px solid var(--aqua)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rsvp-form .consent{display:flex;gap:11px;font-size:12px;line-height:1.5;color:#625671;margin:12px 0 23px;align-items:flex-start}.consent input{margin-top:3px;flex:0 0 auto}.consent span{color:#625671!important}.submit-btn{width:100%}.form-message{padding:14px;border-radius:10px;background:#d9faee;color:#116c53;font-weight:800;line-height:1.5;margin-top:15px}.form-message.error{background:#ffe7ef;color:#ae174b}.smallprint{margin:18px 0 0;color:#9186a0;font-size:12px;line-height:1.6}.hidden-trap{position:absolute;left:-200vw}footer{max-width:1150px;margin:auto;padding:38px 0;display:flex;align-items:center;justify-content:space-between}footer strong{font-family:Nunito,sans-serif;font-size:22px}footer p{font-size:13px;color:#8a789b;margin:5px 0 0}footer a{font-weight:800;color:var(--purple);text-decoration:none}
/* Host UI */
.host-body{background:#f7f6fb}.host-shell{min-height:100vh;display:grid;grid-template-columns:235px minmax(0,1fr)}.sidebar{background:#fff;border-right:1px solid #eee9f6;padding:29px 18px;position:sticky;top:0;height:100vh}.sidebar .brand{font-size:21px;display:block;padding:0 8px 28px}.side-nav{display:grid;gap:7px}.side-link{border:0;background:transparent;width:100%;text-align:left;padding:13px 14px;border-radius:12px;font-weight:800;color:#655479}.side-link.active{background:#eee5ff;color:var(--purple)}.side-footer{position:absolute;bottom:26px;color:#a195b1;font-size:12px;padding-left:12px}.host-main{padding:32px clamp(18px,3vw,48px);max-width:1600px;width:100%;margin:auto}.host-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}.host-head h1{font:900 31px Nunito,sans-serif;margin:0 0 5px}.muted{color:#8c829e;font-size:14px}.host-buttons{display:flex;gap:10px;flex-wrap:wrap}.btn-sm{padding:10px 16px;font-size:13px;border-radius:11px}.dash-banner{border-radius:21px;background:linear-gradient(115deg,#7d2fca,#4d1695 62%,#e82192);color:#fff;padding:27px 32px;position:relative;overflow:hidden}.dash-banner h2{font:900 30px Nunito,sans-serif;margin:0 0 6px}.dash-banner p{margin:0;opacity:.87}.dash-banner::after{content:'🎨 ✨ 🖌️';position:absolute;right:35px;top:25px;font-size:44px;opacity:.9}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:20px 0}.metric{background:#fff;padding:23px;border:1px solid #e9e4ef;border-radius:16px}.metric span{font-size:12px;color:#746783;font-weight:800}.metric strong{display:block;font:900 36px Nunito,sans-serif;margin-top:8px}.metric:nth-child(2) strong{color:#0a9b7b}.metric:nth-child(3) strong{color:#e92d64}.metric:nth-child(4) strong{color:#bb8511}.host-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,.8fr);gap:17px}.panel{background:#fff;border:1px solid #eae4f1;border-radius:18px;padding:22px;margin-bottom:17px;min-width:0}.panel h3{font:900 20px Nunito,sans-serif;margin:0 0 7px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-head p{margin:5px 0 0}.link-row{display:flex;gap:9px}.link-row input{flex:1;min-width:0;padding:12px;border-radius:10px;border:1px solid #e1d7ed;font-size:12px;color:#614f78}.action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.invite-preview{width:100%;max-width:250px;display:block;margin:14px auto 0;border-radius:12px;border:5px solid #f7edff}.table-scroll{overflow:auto}.guest-table{width:100%;border-collapse:collapse;font-size:13px;min-width:575px}.guest-table th{color:#786c8a;background:#f9f6fc;text-align:left;font-size:11px;padding:12px}.guest-table td{padding:12px;border-bottom:1px solid #f2ecf5;vertical-align:middle}.status-chip{border-radius:20px;background:#f5eefb;padding:5px 9px;font-weight:800;white-space:nowrap}.status-chip.attending{background:#dff9ef;color:#087e60}.status-chip.declined{background:#ffe5ed;color:#bd2156}.status-chip.maybe{background:#fff4cd;color:#805808}.table-btn{border:1px solid #e3d5f2;border-radius:8px;background:#fff;color:var(--purple);font-size:11px;font-weight:800;padding:6px 9px;margin-right:4px;margin-bottom:4px}.table-btn.danger{color:#c52253}.empty-roster{text-align:center;padding:34px;color:#827294}.empty-roster b{display:block;color:#32204e;font-size:17px;margin:12px 0}.pill-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.pill-tabs button{border:1px solid #e6ddf2;background:#fff;border-radius:30px;padding:8px 13px;color:#6a5b80;font-weight:700;font-size:12px}.pill-tabs button.active{background:var(--purple);color:#fff}.host-label{display:block;color:#594b70;font-size:12px;font-weight:800;margin-bottom:12px}.host-label input,.host-label textarea,.host-label select{display:block;width:100%;margin-top:7px;padding:11px 12px;border:1px solid #e1d8eb;border-radius:9px;color:#26144d;background:#fff}.host-label input[type=checkbox]{display:inline-block;width:auto}.host-two{display:grid;grid-template-columns:1fr 1fr;gap:11px}.host-alert{color:#a03250;background:#fff0f3;padding:11px;border-radius:9px;font-size:13px;line-height:1.5}.host-success{color:#087153;background:#def8ee;padding:11px;border-radius:9px;font-size:13px}.panel[hidden],.host-section[hidden]{display:none!important}.host-section>h2{font:900 25px Nunito,sans-serif;margin:0 0 17px}.modal{border:0;border-radius:19px;box-shadow:0 40px 100px #18063b60;padding:28px;width:min(530px,calc(100vw - 26px));max-height:90vh;overflow:auto}.modal::backdrop{background:#190e2e8c}.modal h2{font:900 23px Nunito,sans-serif}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:25px;background:linear-gradient(135deg,#eee1ff,#fcecf6,#e5fbfa)}.auth-card{background:#fff;border-radius:22px;padding:36px;max-width:450px;width:100%;box-shadow:var(--shadow)}.auth-card h1{font:900 28px Nunito,sans-serif}.auth-card .brand{display:block;margin-bottom:25px}.auth-card p{color:#756887;line-height:1.5}.auth-card a{display:block;margin-top:20px;color:var(--purple);font-weight:800}.share-help{font-size:12px;color:#857695;line-height:1.6}.msg-log{border-top:1px solid #f0ebf3;padding:12px 0;font-size:12px;color:#736483}.msg-log strong{color:#29164b}.hidden{display:none!important}
@media(max-width:970px){.hero-inner{grid-template-columns:1fr 350px;gap:20px}.hero-photo img{height:445px}.event-card{margin-left:18px;margin-right:18px}.info-grid{margin-left:18px;margin-right:18px}.rsvp-wrap{gap:30px}.host-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:12px 18px;display:flex;gap:12px;align-items:center}.sidebar .brand{padding:0;font-size:19px;white-space:nowrap}.side-nav{display:flex;overflow:auto}.side-link{white-space:nowrap}.side-footer{display:none}}
@media(max-width:740px){.topbar{padding:15px 18px}.topbar-aside{display:none}.hero{padding:35px 21px 83px}.hero-inner{grid-template-columns:1fr;gap:40px}.hero h1{font-size:55px}.hero-photo{max-width:410px;margin:auto;transform:rotate(1deg)}.hero-photo img{height:480px}.event-card{display:flex;flex-direction:column;margin:-35px 18px 30px;padding:23px}.detail{border-right:0!important;padding-bottom:12px;border-bottom:1px solid #f0e8f5}.detail-buttons{flex-direction:column;border:0;padding-top:6px}.info-grid{grid-template-columns:1fr;gap:12px}.info-card{min-height:0}.rsvp-wrap{grid-template-columns:1fr;padding:53px 18px;gap:22px}.rsvp-intro{padding:0}.rsvp-form{padding:25px 20px}.form-row{grid-template-columns:1fr}footer{padding:26px 20px;gap:20px;flex-wrap:wrap}.host-main{padding:20px 15px}.host-head{align-items:flex-start;flex-direction:column}.dash-banner{padding:25px 20px}.dash-banner::after{font-size:23px;right:10px;top:12px}.metric-grid{grid-template-columns:repeat(2,1fr)}.host-grid{grid-template-columns:1fr}.host-two{grid-template-columns:1fr}.link-row{flex-direction:column}.sidebar{display:block}.side-nav{margin-top:8px}.host-head h1{font-size:25px}}

/* Sophia-only host login / approved-email signup. No signup UI is linked on guest page. */
.sophia-access{max-width:520px;padding:38px}
.auth-event-tag{display:inline-block;padding:8px 12px;border-radius:25px;background:#fff0c9;color:#693c9d;font-size:11px;font-weight:900;letter-spacing:.10em;margin-bottom:14px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:24px 0 22px;padding:6px;border-radius:13px;background:#f5eefc}
.auth-tabs button{border:0;padding:13px 6px;background:transparent;border-radius:9px;color:#695782;font-weight:800}
.auth-tabs button.active{background:#fff;color:#5d25af;box-shadow:0 3px 9px #33215121}
.auth-tabs button:focus-visible{outline:3px solid #06b8b8}
.auth-workflow[hidden],.auth-card [hidden]{display:none!important}
.auth-workflow{display:grid;gap:4px}
.auth-hint{font-size:13px;color:#655675;margin:0 0 12px!important}
.auth-full{width:100%;white-space:normal}
.auth-text-button{border:0;background:none;color:#5d25af;font-weight:800;margin:17px 0 0;padding:0}
.auth-footer{border-top:1px solid #f0e9f6;padding-top:17px;margin:24px 0 0!important;font-size:12px}
.auth-footer a{display:inline!important;margin:0!important}
#hostStatus{margin-top:15px}
