:root{--bg:#f4f7f1;--card:#ffffff;--text:#182219;--muted:#4c5d4f;--primary:#0f7f63;--primary-dark:#0b5f4a;--radius:16px}*{box-sizing:border-box}body{margin:0;font-family:Avenir Next,Trebuchet MS,sans-serif;color:var(--text);background:radial-gradient(circle at 10% 10%,#d8f3dc,transparent 30%),radial-gradient(circle at 90% 30%,#ffe8cc,transparent 30%),var(--bg);background-repeat:no-repeat,no-repeat,no-repeat;background-size:100% 100%,100% 100%,100% 100%;min-height:10vh}a{color:inherit}.topbar{position:-webkit-sticky;position:sticky;top:0;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #d8dfd4;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;z-index:10}.brand,.topbar nav a{text-decoration:none;margin-left:12px;font-weight:600}.container{width:min(1320px,96vw);margin:16px auto 32px}.card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:0 5px 20px rgba(7,26,13,.08);margin-bottom:14px}.list{grid-gap:10px}.list,.split{display:grid;gap:10px}.split{grid-template-columns:1fr}.grid,.split{grid-gap:10px}.grid{display:grid;gap:10px}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}button,input,select,textarea{width:100%;padding:10px 12px;border-radius:12px;border:1px solid #ced8cf;font:inherit}textarea{min-height:90px;resize:vertical}.btn{background:var(--primary);border:0;color:#fff;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;text-align:center}.btn.secondary{background:#d7e6dc;color:#12341f}.btn:hover{background:var(--primary-dark)}.hint{color:var(--muted);font-size:.9rem}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips label{background:#eef3ee;border-radius:999px;padding:6px 10px;font-size:.9rem}.chip-static{background:#e7efe9;border:1px solid #cfdcd3;border-radius:999px;padding:4px 10px;font-size:.85rem}.btn.danger{background:#af2e2e;color:#fff}.btn.danger:hover{background:#8f1f1f}.soft{background:#f3f5f2;border:1px solid #d8dfd4;border-radius:14px;padding:10px}.soft-active{border-color:#0f7f63;box-shadow:0 0 0 2px rgba(15,127,99,.12)}.badge{display:inline-block;background:#d7e6dc;color:#12341f;border-radius:999px;padding:3px 10px;font-weight:700;font-size:.82rem}.party-layout{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px;align-items:start}.party-layout>main{min-width:0}.modal-backdrop{position:fixed;inset:0;background:rgba(10,16,12,.48);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:40;padding:16px}.modal-card{width:min(760px,96vw);max-height:88vh;overflow:auto;margin:0}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal-header h2{margin:0}.modal-close-btn{border:1px solid #bfd0c3;background:#eef4ef;color:#12341f;border-radius:999px;width:36px;height:36px;display:grid;place-items:center;font-size:1.35rem;line-height:1;cursor:pointer}.modal-close-btn:hover{background:#dfeae2}.placeholder-row{display:flex;gap:8px;flex-wrap:wrap}.placeholder-btn{width:auto;border:1px solid #bfd0c3;background:#eef4ef;color:#12341f;border-radius:999px;padding:6px 10px;font-weight:700}.invite-card{color:#fff;background-size:cover;background-position:50%}.invite-card.gradient.sunset{background-image:linear-gradient(135deg,#ff7e5f,#feb47b)}.invite-card.gradient.mint{background-image:linear-gradient(135deg,#43cea2,#185a9d)}.invite-card.gradient.ocean{background-image:linear-gradient(135deg,#2b5876,#4e4376)}.invite-card.gradient.peach{background-image:linear-gradient(135deg,#ed4264,#ffedbc)}.invite-card.gradient.night{background-image:linear-gradient(135deg,#141e30,#243b55)}.responder-fixed-bg{position:fixed;inset:0;z-index:0;background-size:cover;background-position:50% 0;background-repeat:no-repeat}.responder-bg-stage{position:fixed;inset:0;z-index:0;pointer-events:none}.responder-bg-slide{opacity:0;transition:opacity .9s ease;transform:scale(1.08)}.responder-bg-slide.active{opacity:1;animation:responder-bg-zoom 5s linear forwards}.responder-bg-flash{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:0;background:#000}.responder-bg-flash.flash-a,.responder-bg-flash.flash-b{animation:responder-bg-flash .36s ease}.responder-shell{min-height:80vh;position:relative;z-index:1;padding:0 16px 28px}.responder-blur{position:absolute;left:0;right:0;top:-20vh;bottom:0;z-index:1;pointer-events:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(180deg,rgba(20,24,27,.08) 0,rgba(20,24,27,.28) 36%,rgba(20,24,27,.62));-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.55) 7%,rgba(0,0,0,.9) 14%,rgba(0,0,0,1));mask-image:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.55) 7%,rgba(0,0,0,.9) 14%,rgba(0,0,0,1))}.responder-content{position:relative;z-index:2;width:min(540px,94vw);margin:50vh auto 0;display:grid;grid-gap:14px;gap:14px}.responder-hero{text-align:center;color:#fff;border-radius:0;padding:8px 6px 2px;background:transparent;border:0;box-shadow:none;text-shadow:0 2px 14px rgba(0,0,0,.55)}.responder-hero h1{margin:0 0 10px;font-size:clamp(2rem,9vw,3.2rem);line-height:1.05}.responder-meta{margin:0;font-size:clamp(1.05rem,4vw,1.45rem);opacity:.98}.responder-message{background:transparent;color:#fff;border-radius:0;padding:0 10px;text-align:center;border:0;text-shadow:0 2px 14px rgba(0,0,0,.55)}.responder-message p{margin:0 0 8px;font-size:clamp(1.02rem,3.6vw,1.28rem)}.responder-message p:last-child{margin-bottom:0}.responder-panel{background:rgba(18,22,26,.54);color:#fff;border-radius:24px;padding:18px 14px;border:1px solid rgba(255,255,255,.2)}.responder-subtitle{margin:0;text-align:center;font-size:1.05rem;opacity:.95}.response-buttons{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.response-btn{border:0;background:rgba(20,24,30,.95);color:#dce4e8;border-radius:999px;padding:11px 8px;font-weight:700}.response-btn.active.yes{background:#11853d;color:#fff}.response-btn.active.no{background:#5a1b1b;color:#fff}.response-btn.active.maybe{background:#44515a;color:#fff}.responder-input{background:rgba(20,24,30,.92);color:#fff;border:1px solid rgba(255,255,255,.16)}.responder-input::placeholder{color:rgba(230,235,238,.62)}.responder-optional{display:grid;grid-gap:10px;gap:10px}.responder-submit{border:0;border-radius:999px;background:#11853d;color:#fff;font-weight:700;padding:12px}.responder-hint{margin:10px 0 0;text-align:center;color:rgba(232,237,241,.75);font-size:.9rem}.responder-thanks{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 12px;margin-bottom:10px;border-radius:999px;background:rgba(22,130,63,.88);color:#fff;font-weight:700;letter-spacing:.01em;box-shadow:0 10px 24px rgba(0,0,0,.25)}.responder-thanks .check{width:24px;height:24px;border-radius:999px;display:grid;place-items:center;font-weight:900;background:rgba(255,255,255,.2)}.responder-thanks.thanks-bounce-a{animation:thanks-bounce-a .98s cubic-bezier(.2,.85,.32,1.22)}.responder-thanks.thanks-bounce-b{animation:thanks-bounce-b .98s cubic-bezier(.2,.85,.32,1.22)}@keyframes thanks-bounce-a{0%{transform:translateY(0) scale(1)}18%{transform:translateY(-8px) scale(1.024)}34%{transform:translateY(2px) scale(.995)}50%{transform:translateY(-5px) scale(1.015)}66%{transform:translateY(1px) scale(.998)}80%{transform:translateY(-2px) scale(1.006)}90%{transform:translateY(0) scale(1.002)}to{transform:translateY(0) scale(1)}}@keyframes thanks-bounce-b{0%{transform:translateY(0) scale(1)}18%{transform:translateY(-8px) scale(1.024)}34%{transform:translateY(2px) scale(.995)}50%{transform:translateY(-5px) scale(1.015)}66%{transform:translateY(1px) scale(.998)}80%{transform:translateY(-2px) scale(1.006)}90%{transform:translateY(0) scale(1.002)}to{transform:translateY(0) scale(1)}}@keyframes responder-bg-zoom{0%{transform:scale(1)}to{transform:scale(1.08)}}@keyframes responder-bg-flash{0%{opacity:0}40%{opacity:.17}to{opacity:0}}@media (prefers-reduced-motion:reduce){.responder-bg-slide{transition:none}.responder-bg-flash.flash-a,.responder-bg-flash.flash-b,.responder-bg-slide.active{animation:none}}@media (min-width:760px){.split{grid-template-columns:repeat(2,1fr)}.party-layout{grid-template-columns:minmax(0,1fr) 360px 320px}.responder-shell{min-height:80vh}.responder-blur{top:10vh}.responder-content{margin-top:48vh}}@media (min-width:1024px){.responder-fixed-bg{background-size:112%;background-position:50% 18%}.responder-blur{top:5vh}}