:root{--chocolate:#3b2418;--cocoa:#4a2c20;--brown:#6b4636;--taupe:#a88976;--cream:#f7f1e8;--beige:#e8dccb;--gold:#b89b72;--white:#fff;--sans:Montserrat,Arial,sans-serif;--serif:'Playfair Display',Georgia,serif}*{box-sizing:border-box}body{margin:0;color:var(--chocolate);font:15px/1.7 var(--sans);background:var(--cream)}a{color:inherit;text-decoration:none}h1,h2{font-family:var(--serif);line-height:1.2;margin:0 0 14px}h1{font-size:clamp(2.35rem,6vw,4.7rem)}h2{font-size:1.65rem}.public-nav{height:78px;display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:auto;padding:0 5%;border-bottom:1px solid rgba(107,70,54,.13)}.brand{font:600 1.3rem var(--serif);letter-spacing:.03em}.brand span{font-style:italic;color:var(--gold)}.nav-rsvp{font-size:.7rem;font-weight:700;letter-spacing:.16em}.hero{min-height:calc(100vh - 78px);max-width:1000px;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:70px 25px 90px;background:radial-gradient(ellipse at top,#fffaf2 0%,transparent 58%);position:relative}.hero:before,.hero:after{content:'❧';position:absolute;font:5rem var(--serif);color:var(--beige);opacity:.7}.hero:before{top:10%;left:8%;transform:rotate(-30deg)}.hero:after{right:7%;bottom:9%;transform:rotate(140deg)}.hero-floral{font-size:1.6rem;color:var(--gold);margin-bottom:18px}.eyebrow{text-transform:uppercase;font-size:.68rem;letter-spacing:.2em;font-weight:700;color:var(--brown);margin:0 0 13px}.hero h1 em{font-weight:400;color:var(--gold)}.divider{display:flex;gap:12px;align-items:center;color:var(--gold);margin:20px 0}.divider span{height:1px;width:55px;background:var(--gold)}.hero-copy{font:italic 1.2rem var(--serif);max-width:420px;margin:0 0 28px}.event-details{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;align-items:center;font-size:.72rem;letter-spacing:.09em;margin-bottom:35px}.event-details i{background:var(--gold);width:4px;height:4px;border-radius:50%}.button{border:1px solid transparent;border-radius:3px;display:inline-flex;justify-content:center;align-items:center;min-height:49px;padding:12px 24px;cursor:pointer;font:700 .7rem var(--sans);letter-spacing:.13em;transition:.25s}.button:hover{transform:translateY(-2px);box-shadow:0 7px 15px #3b241822}.button-primary{background:var(--chocolate);color:#fff}.button-secondary{color:var(--chocolate);background:transparent;border-color:var(--taupe)}.button-outline{background:transparent;color:var(--chocolate);border-color:var(--brown)}.hero-note{font-size:.78rem;color:var(--brown);margin-top:17px}.home-note{text-align:center;background:var(--beige);padding:70px 20px}.home-note h2{font-size:2rem}.home-note p{max-width:480px;margin:auto}.leaf{color:var(--gold);font-size:2rem}.public-footer{text-align:center;padding:24px;color:var(--brown);font-size:.72rem;letter-spacing:.06em}.rsvp-page{max-width:660px;margin:auto;padding:70px 20px 95px;text-align:center;min-height:calc(100vh - 150px)}.rsvp-page>.intro{margin:0 auto 28px;max-width:430px}.search-form{background:#fff;padding:7px;max-width:580px;margin:35px auto 0;box-shadow:0 8px 30px #3b241812;display:flex;border:1px solid var(--beige)}input,select{background:#fff;border:1px solid #d4c2ae;border-radius:2px;padding:13px 14px;font:inherit;color:var(--chocolate);width:100%;outline:none}input:focus,select:focus{border-color:var(--brown);box-shadow:0 0 0 3px #a8897630}.search-form input{border:0}.search-form .button{white-space:nowrap}.search-results{margin-top:29px;text-align:left}.result-count{text-align:center;margin-bottom:14px}.guest-choice{background:#fff;border:1px solid var(--beige);padding:17px 20px;display:flex;justify-content:space-between;align-items:center;margin:9px 0;transition:.2s}.guest-choice:hover{border-color:var(--gold);transform:translateX(3px)}.guest-choice small{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--brown)}.guest-choice b{font-size:1rem}.help-text{font-size:.82rem;text-align:center;color:var(--brown)}.invitation-card,.confirmation-card{background:#fff;padding:clamp(28px,6vw,55px);box-shadow:0 12px 36px #3b241810;border:1px solid var(--beige);position:relative}.invitation-card:before{content:'';position:absolute;inset:10px;border:1px solid #eadfce;pointer-events:none}.invitation-card>*{position:relative}.allocation{margin:32px 0 26px;padding:17px;background:var(--cream)}.allocation span{display:block;text-transform:uppercase;font-size:.65rem;letter-spacing:.16em}.allocation strong{font:3rem var(--serif);color:var(--gold);line-height:1.1}.allocation p{margin:4px 0 0;font-size:.82rem}.attendance-form{display:grid;gap:11px;margin-top:23px}.attendance-form .button{width:100%}.already{padding:16px;margin:25px 0;background:var(--cream)}.invitation-card label,.login-card label,.admin-form label{display:block;text-align:left;font-size:.75rem;font-weight:700;letter-spacing:.05em;margin:18px 0}.invitation-card label input{margin-top:7px}.seat-note{background:var(--cream);padding:17px;margin:25px 0}.seats{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.check{display:flex!important;align-items:center;gap:9px;font-size:.76rem!important}.check input{width:auto}.confirmation-card{padding:65px 30px}.confirmation-card>p{max-width:420px;margin:0 auto 25px}.checkmark{display:flex;align-items:center;justify-content:center;width:58px;height:58px;border:1px solid var(--gold);border-radius:50%;font-size:2rem;color:var(--gold);margin:0 auto 22px}.confirmation-details{border-top:1px solid var(--beige);border-bottom:1px solid var(--beige);padding:20px;margin:30px 0;display:grid;gap:4px}.confirmation-details strong{font-family:var(--serif);font-size:1.3rem}.confirmation-details span{font-size:.76rem;color:var(--brown)}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}.admin-body{background:#f8f5f0;display:flex;min-height:100vh}.admin-sidebar{width:235px;background:var(--chocolate);color:#f7f1e8;padding:35px 26px;position:fixed;inset:0 auto 0 0}.admin-sidebar>p{color:#c9ad91;text-transform:uppercase;font-size:.62rem;letter-spacing:.17em;margin:50px 0 12px}.admin-sidebar nav{display:grid;gap:5px}.admin-sidebar nav a{padding:11px 12px;border-radius:3px;font-size:.8rem}.admin-sidebar nav a:hover{background:#ffffff15}.admin-main{margin-left:235px;width:calc(100% - 235px);padding:36px clamp(20px,4vw,60px)}.admin-top{margin-bottom:31px}.admin-top small{font-size:.66rem;color:var(--brown);text-transform:uppercase;letter-spacing:.16em}.admin-top h1{font-size:2.1rem}.menu-button{display:none}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}.stat-card,.panel,.form-panel{background:#fff;border:1px solid #eee4d8}.stat-card{padding:21px}.stat-card span{display:block;text-transform:uppercase;font-size:.62rem;letter-spacing:.11em;color:var(--brown)}.stat-card strong{font:2.15rem var(--serif);display:block;margin-top:6px}.panel{padding:22px}.panel-head,.action-row{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.panel h2{font-size:1.25rem}.panel-head a{font-size:.72rem;font-weight:700;color:var(--brown)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;min-width:570px}th{font-size:.64rem;text-transform:uppercase;letter-spacing:.11em;color:var(--brown);padding:11px;border-bottom:1px solid var(--beige)}td{padding:14px 11px;border-bottom:1px solid #f1e9e1;font-size:.82rem}td a{font-weight:700;color:var(--brown)}td small{color:#876c5c}.badge{font-size:.63rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:5px 8px;border-radius:20px}.badge.pending{background:#eee6da;color:#6b4636}.badge.attending{background:#e5eee4;color:#436044}.badge.declined{background:#f2e5df;color:#91594b}.action-row{flex-wrap:wrap}.admin-search{display:flex;gap:7px}.admin-search input,.admin-search select{padding:9px 10px;font-size:.78rem}.admin-search button{padding:0 13px;border:0;background:var(--brown);color:#fff}.form-panel{max-width:700px;padding:30px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-form label small{display:block;color:var(--brown);font-weight:400;margin-top:3px}.form-actions{display:flex;gap:18px;align-items:center;justify-content:flex-end;margin-top:28px}.form-actions>a{font-size:.78rem}.notice{background:var(--cream);padding:13px;font-size:.8rem}.inline{display:inline}.text-button,.delete-button{border:0;background:none;color:var(--brown);cursor:pointer;text-decoration:underline;margin-left:8px}.delete-button{color:#9b4038;margin:22px 0 0}.toast{background:#e6efe3;border-left:3px solid #557952;padding:12px 15px;margin:0 0 22px;font-size:.82rem}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--cream)}.login-card{background:#fff;width:min(420px,100%);padding:43px;box-shadow:0 10px 40px #3b241818}.login-card .brand{display:block;text-align:center;margin-bottom:40px}.login-card h1{font-size:2rem}.login-card .button{width:100%;margin-top:10px}.error{background:#f8e5e0;color:#883e35;padding:9px;font-size:.8rem}
@media(max-width:760px){.public-nav{height:65px}.hero{min-height:calc(100vh - 65px);padding:55px 20px}.hero:before{left:1%;top:6%}.hero:after{right:0}.event-details{font-size:.64rem}.search-form{display:grid;padding:12px;gap:9px}.search-form input{border:1px solid var(--beige)}.rsvp-page{padding-top:50px}.admin-sidebar{display:none}.admin-main{margin:0;width:100%;padding:25px 17px}.menu-button{display:block;float:right;background:none;border:0;font-size:1.3rem}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{padding:15px}.stat-card strong{font-size:1.8rem}.panel{padding:14px}.two-col{grid-template-columns:1fr}.admin-search{width:100%}.admin-search input{min-width:0}.action-row .button{width:100%}.form-panel{padding:22px}.report-tools .button{width:auto}.confirmation-card{padding:45px 21px}}

/* Public RSVP experience */
.public-body{background:#f8f2e9;color:#3f281d;min-height:100vh}
.public-body main{overflow:hidden}
.public-body .public-nav{height:86px;position:relative;z-index:5;border-bottom:1px solid rgba(83,51,36,.09);background:rgba(248,242,233,.76);backdrop-filter:blur(12px)}
.public-body .brand{color:#4b2d20}
.public-body .public-footer{position:relative;z-index:2;padding:30px 20px;color:#806656}
.public-body .rsvp-page{max-width:920px;min-height:calc(100vh - 150px);padding:72px 24px 100px;position:relative}
.soft-orb{position:absolute;border-radius:999px;pointer-events:none;filter:blur(1px);opacity:.72}
.soft-orb-one{width:320px;height:320px;top:18px;left:-260px;background:rgba(229,211,190,.6)}
.soft-orb-two{width:230px;height:230px;right:-180px;top:365px;background:rgba(255,251,245,.95);box-shadow:0 0 80px rgba(117,83,62,.08)}
.search-intro{position:relative;z-index:1;animation:soft-rise .65s ease both}
.invitation-mark{width:72px;height:72px;border:1px solid rgba(142,109,82,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 26px;background:rgba(255,255,255,.35);font:500 .72rem var(--serif);letter-spacing:.1em;color:#745340}
.invitation-mark i{font:400 1.15rem 'Pinyon Script',cursive;color:#b28d6d;margin:0 5px}
.search-experience .eyebrow,.invitation-experience .eyebrow{color:#8b6b56;letter-spacing:.22em;margin-bottom:14px}
.search-experience h1{font-size:clamp(3rem,7vw,5.35rem);font-weight:400;letter-spacing:-.035em;margin-bottom:20px}
.search-experience h1 em,.guest-bubble h1 em{font-weight:400;color:#865f49}
.search-experience .intro{font:italic 1.08rem/1.7 var(--serif);color:#745b4d;margin:0 auto 38px;max-width:470px}
.search-bubble{width:min(780px,100%);min-height:112px;margin:0 auto;padding:14px 16px 14px 25px;display:flex;align-items:center;gap:18px;position:relative;z-index:2;background:rgba(255,253,249,.94);border:1px solid rgba(137,100,76,.16);border-radius:999px;box-shadow:0 22px 55px rgba(65,38,25,.11),0 3px 8px rgba(65,38,25,.04);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;animation:soft-rise .7s .08s ease both}
.search-bubble:hover{transform:translateY(-2px);box-shadow:0 27px 65px rgba(65,38,25,.14),0 3px 8px rgba(65,38,25,.04)}
.search-bubble:focus-within{transform:translateY(-3px) scale(1.008);border-color:rgba(112,73,53,.42);box-shadow:0 28px 70px rgba(65,38,25,.15),0 0 0 5px rgba(161,125,99,.08)}
.search-icon{flex:0 0 48px;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#f3e8db;color:#684735}
.search-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round}
.search-field{min-width:0;flex:1;display:grid;text-align:left;cursor:text}
.search-field>span{font:600 .68rem var(--sans);text-transform:uppercase;letter-spacing:.16em;color:#876c5a;margin:0 0 2px 2px}
.search-field input{height:auto;padding:2px;border:0;border-radius:0;background:transparent;font:500 clamp(1.25rem,3vw,1.65rem) var(--serif);color:#3f281d;box-shadow:none}
.search-field input:focus{border:0;box-shadow:none}
.search-field input::placeholder{color:#b09b8c;opacity:1;font-weight:400}
.search-field input::-webkit-search-cancel-button{opacity:.45}
.search-submit{min-height:76px;padding:0 26px;border:0;border-radius:999px;background:#4a2d20;color:#fff;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;font:600 .68rem var(--sans);letter-spacing:.12em;text-transform:uppercase;box-shadow:0 8px 20px rgba(59,36,24,.2);transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.search-submit svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s ease}
.search-submit:hover{background:#5b3828;transform:scale(1.025);box-shadow:0 11px 24px rgba(59,36,24,.25)}
.search-submit:hover svg{transform:translateX(3px)}
.search-submit:focus-visible{outline:3px solid #cbb49e;outline-offset:3px}
.search-hint{position:relative;z-index:1;margin:17px auto 0;color:#9b8271;font-size:.72rem;letter-spacing:.035em;animation:soft-rise .7s .16s ease both}
.search-results{width:min(700px,100%);margin:52px auto 0;text-align:center;position:relative;z-index:2;animation:reveal-results .58s cubic-bezier(.2,.75,.25,1) both}
.result-heading{margin-bottom:20px}
.tiny-heart{width:34px;height:34px;margin:0 auto 10px;display:grid;place-items:center;border-radius:50%;background:#efe1d2;color:#815641;font-size:.76rem}
.result-heading p{font:500 1.35rem var(--serif);margin:0 0 3px}
.result-heading small{color:#8a7060;font-size:.73rem;letter-spacing:.04em}
.guest-list{display:grid;gap:11px}
.guest-choice{min-height:88px;margin:0;padding:12px 17px 12px 13px;text-align:left;display:grid;grid-template-columns:58px 1fr 40px;align-items:center;gap:15px;border:1px solid rgba(136,99,76,.14);border-radius:999px;background:rgba(255,253,249,.9);box-shadow:0 8px 24px rgba(71,43,29,.06);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease}
.guest-choice:hover{transform:translateY(-2px);border-color:rgba(133,91,67,.35);background:#fff;box-shadow:0 14px 32px rgba(71,43,29,.1)}
.guest-monogram{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#eee0d2;color:#684331;font:500 1.25rem var(--serif)}
.guest-choice-name{font:500 1.08rem var(--serif);display:grid}
.guest-choice-name small{font:500 .61rem var(--sans);text-transform:uppercase;letter-spacing:.13em;color:#9a7d69;margin-top:3px}
.guest-choice-arrow{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#f2e9df;color:#5e3c2c;transition:transform .25s ease,background .25s ease,color .25s ease}
.guest-choice:hover .guest-choice-arrow{transform:translateX(2px);background:#4a2d20;color:#fff}
.no-invitation{padding:35px 30px;border:1px solid rgba(136,99,76,.13);border-radius:34px;background:rgba(255,253,249,.85);box-shadow:0 14px 38px rgba(71,43,29,.07)}
.no-invitation>span{font-size:1.7rem;color:#a98167}
.no-invitation h2{font-size:1.6rem;font-weight:500;margin:7px 0 6px}
.no-invitation p{max-width:440px;margin:0 auto;color:#795e4d;font-size:.84rem}

.public-body .invitation-experience{max-width:790px;padding-top:55px}
.public-body .guest-bubble{padding:clamp(35px,7vw,68px);border:1px solid rgba(132,95,71,.14);border-radius:54px;background:rgba(255,253,249,.94);box-shadow:0 30px 80px rgba(66,39,25,.1);overflow:hidden;animation:reveal-card .68s cubic-bezier(.2,.75,.25,1) both}
.public-body .guest-bubble:before{inset:13px;border:1px solid rgba(178,145,119,.18);border-radius:42px}
.guest-bubble-top{position:relative}
.guest-bubble-top .tiny-heart{margin-bottom:17px}
.guest-bubble h1{font-size:clamp(2.55rem,6vw,4.4rem);font-weight:400;letter-spacing:-.03em;margin-bottom:16px}
.guest-bubble .intro{max-width:470px;margin:0 auto;color:#765c4c;font:italic 1rem/1.7 var(--serif)}
.allocation-bubble{width:min(410px,100%);margin:34px auto 39px;padding:22px 28px;border:1px solid rgba(147,105,78,.12);border-radius:999px;background:#f5ecdf;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.allocation-bubble>span{display:block;text-transform:uppercase;font:600 .62rem var(--sans);letter-spacing:.18em;color:#8a6b57;margin-bottom:2px}
.allocation-bubble strong{display:block;font:500 1.75rem var(--serif);color:#593829}
.allocation-bubble p{margin:2px 0 0;font-size:.72rem;color:#816655}
.response-heading{padding-top:33px;border-top:1px solid rgba(132,95,71,.13)}
.response-heading h2{font-weight:500;font-size:clamp(1.75rem,4vw,2.35rem);margin-bottom:8px}
.saved-note{font-size:.78rem;color:#846958;margin:0 auto 14px}
.public-body .attendance-form{gap:13px;margin-top:23px}
.public-body .response-options{display:grid;grid-template-columns:1fr;gap:12px;border:0;padding:0;margin:0}
.public-body .invitation-card .response-option{min-height:82px;margin:0;padding:13px 17px 13px 14px;display:grid;grid-template-columns:48px 1fr 32px;align-items:center;gap:13px;text-align:left;border:1px solid rgba(135,98,75,.2);border-radius:999px;background:#fffdf9;cursor:pointer;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease}
.public-body .invitation-card .response-option:hover{transform:translateY(-2px);border-color:rgba(113,74,53,.4);box-shadow:0 10px 25px rgba(67,40,27,.08)}
.public-body .invitation-card .response-option:has(input:checked){border-color:#5d3b2a;background:#f6ecdf;box-shadow:0 9px 25px rgba(67,40,27,.1)}
.public-body .invitation-card .response-option input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.response-option .option-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#f1e5d7;color:#815a44;font:1.35rem var(--serif)}
.response-option>span:nth-of-type(2){display:grid}
.response-option strong{font:600 .8rem var(--sans);letter-spacing:.05em;text-transform:uppercase}
.response-option small{font:400 .72rem var(--sans);color:#917562;letter-spacing:.02em;margin-top:1px}
.response-option .option-check{width:29px;height:29px;border:1px solid #cfbaaa;border-radius:50%;display:grid;place-items:center;color:transparent;font-size:.73rem;transition:.2s}
.response-option:has(input:checked) .option-check{background:#503123;border-color:#503123;color:#fff}
.response-option:focus-within{outline:3px solid rgba(171,137,112,.25);outline-offset:3px}
.public-body .companion-area{margin:5px 0 2px;padding:22px;text-align:left;border-radius:28px;background:#f7f0e7;border:1px solid rgba(143,104,80,.12)}
.public-body .companion-area[hidden]{display:none}
.companion-heading{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.companion-heading>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#eadbcb;color:#74503c}
.companion-heading div{display:grid}.companion-heading strong{font:500 1.05rem var(--serif)}.companion-heading small{color:#836858;font-size:.71rem}
.companion-list{display:grid;gap:7px}
.public-body .invitation-card .invitee-check{min-height:48px;margin:0;padding:9px 13px!important;border-radius:999px;background:rgba(255,255,255,.68);font:500 .8rem var(--sans);letter-spacing:0}
.public-body .invitee-check input{appearance:none;width:25px;height:25px;flex:0 0 25px;margin:0!important;padding:0;border:1px solid #bea690;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.public-body .invitee-check input:checked{background:#573728;border-color:#573728;box-shadow:inset 0 0 0 6px #573728}
.public-body .invitee-check input:checked:after{content:'✓';color:#fff;font-size:.68rem;line-height:1}
.public-body .companion-area .seats{text-align:center;margin:16px 0 0;color:#715443;font:600 .62rem var(--sans);letter-spacing:.14em}
.empty-invitees{text-align:center;color:#806554;font-size:.78rem}
.public-body .response-submit{min-height:62px;margin-top:5px;padding:14px 22px;border-radius:999px;justify-content:space-between;font-size:.68rem;box-shadow:0 10px 24px rgba(59,36,24,.19)}
.response-submit b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);font-size:1rem;transition:transform .25s ease}
.response-submit:hover b{transform:translateX(3px)}
.search-again{display:inline-block;position:relative;margin-top:25px;color:#856b5b;font-size:.72rem;border-bottom:1px solid transparent;transition:.2s}
.search-again:hover{color:#4a2d20;border-color:#a98c78}

@keyframes soft-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes reveal-results{from{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes reveal-card{from{opacity:0;transform:translateY(20px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}

@media(max-width:760px){
    .public-body .public-nav{height:70px;padding:0 24px}
    .public-body .rsvp-page{padding:49px 17px 74px}
    .search-experience h1{font-size:clamp(2.75rem,13vw,4rem)}
    .invitation-mark{width:63px;height:63px;margin-bottom:22px}
    .search-experience .intro{font-size:1rem;margin-bottom:28px}
    .search-bubble{min-height:88px;padding:10px 10px 10px 15px;gap:11px}
    .search-icon{width:42px;height:42px;flex-basis:42px}
    .search-field>span{font-size:.57rem;letter-spacing:.12em}
    .search-field input{font-size:1.08rem;padding:1px}
    .search-submit{width:62px;min-height:62px;padding:0;flex:0 0 62px}
    .search-submit span{display:none}
    .search-results{margin-top:42px}
    .guest-choice{grid-template-columns:50px 1fr 35px;min-height:76px;gap:11px;padding:10px 12px 10px 10px}
    .guest-monogram{width:50px;height:50px}
    .guest-choice-name{font-size:.97rem}
    .guest-choice-arrow{width:34px;height:34px}
    .public-body .invitation-experience{padding-top:30px}
    .public-body .guest-bubble{padding:39px 21px 34px;border-radius:38px}
    .public-body .guest-bubble:before{inset:9px;border-radius:30px}
    .guest-bubble h1{font-size:clamp(2.35rem,11vw,3.3rem)}
    .allocation-bubble{border-radius:30px;padding:19px 16px;margin:28px auto 32px}
    .public-body .invitation-card .response-option{grid-template-columns:43px 1fr 28px;min-height:76px;padding:11px 13px 11px 11px;gap:10px}
    .response-option .option-icon{width:43px;height:43px}
    .response-option strong{font-size:.7rem;letter-spacing:.035em}
    .public-body .companion-area{padding:17px;border-radius:24px}
}

@media(max-width:390px){
    .public-body .rsvp-page{padding-left:12px;padding-right:12px}
    .search-bubble{gap:8px;padding-left:11px}
    .search-icon{width:38px;height:38px;flex-basis:38px}
    .search-submit{width:56px;min-height:56px;flex-basis:56px}
    .search-field input{font-size:1rem}
    .search-field>span{letter-spacing:.08em}
    .public-body .guest-bubble{padding-left:17px;padding-right:17px}
}

@media(prefers-reduced-motion:reduce){
    .search-intro,.search-bubble,.search-hint,.search-results,.public-body .guest-bubble{animation:none}
    .search-bubble,.search-submit,.guest-choice,.response-option,.response-submit b{transition:none}
}

/* Keep the public invitation firmly in the original chocolate-and-cream palette. */
.public-body{background:#f7f1e7;color:#3b2418}
.public-body .public-nav{background:rgba(247,241,231,.92);border-bottom-color:rgba(59,36,24,.12)}
.public-body .brand,.search-experience h1,.guest-bubble h1,.response-heading h2{color:#3b2418}
.search-experience h1 em,.guest-bubble h1 em{color:#5b3828}
.search-experience .eyebrow,.invitation-experience .eyebrow,.search-field>span{color:#6b4636}
.search-experience .intro,.guest-bubble .intro{color:#6b4636}
.invitation-mark{background:#fbf7f0;border-color:rgba(91,56,40,.24);color:#5b3828}
.invitation-mark i{color:#7a513b}
.soft-orb-one{background:rgba(220,202,179,.42)}
.soft-orb-two{background:rgba(238,226,210,.52);box-shadow:none}
.search-bubble,.guest-choice,.no-invitation,.public-body .guest-bubble{background:#fffdf8;border-color:rgba(91,56,40,.17)}
.search-icon,.guest-monogram,.guest-choice-arrow,.response-option .option-icon{background:#efe3d3;color:#5b3828}
.search-submit,.public-body .button-primary{background:#3b2418}
.search-submit:hover,.public-body .button-primary:hover{background:#513224}
.allocation-bubble,.public-body .invitation-card .response-option:has(input:checked),.public-body .companion-area{background:#f2e7d8}
.allocation-bubble strong{color:#3b2418}
.public-body .invitation-card .response-option{background:#fffdf8;border-color:rgba(91,56,40,.2)}
.response-option:has(input:checked) .option-check,.public-body .invitee-check input:checked{background:#3b2418;border-color:#3b2418;box-shadow:inset 0 0 0 6px #3b2418}
.tiny-heart,.companion-heading>span{background:#eadac7;color:#5b3828}

/* Simplified medium-chocolate presentation requested for the public RSVP. */
html:has(body.public-body){background:#765441}
.public-body{background:#765441;color:#fff8ef}
.public-body main{background:#765441}
.public-body .public-nav{background:#694a39;border-bottom-color:rgba(255,248,239,.15)}
.public-body .brand{color:#fff8ef}
.public-body .brand span{color:#dbc0a2}
.public-body .public-footer{color:#eadbca;background:#765441}
.public-body .soft-orb{display:none}
.search-experience .search-intro h1,.search-experience .search-intro h1 em{color:#fff8ef}
.search-experience .eyebrow{color:#ead8c5}
.search-experience{padding-top:58px}
.search-experience .search-intro{margin-bottom:31px}
.search-experience .invitation-mark{width:56px;height:56px;margin-bottom:20px;background:rgba(255,248,239,.08);border-color:rgba(255,248,239,.34);color:#fff8ef}
.search-experience .invitation-mark i{color:#e1c5a5}
.search-experience h1{font-size:clamp(2.8rem,6vw,4.8rem);margin-bottom:0}
.search-bubble{width:min(690px,100%);min-height:94px;padding:11px 13px 11px 19px;gap:14px;background:#fffaf3;border-color:rgba(59,36,24,.18);box-shadow:0 22px 54px rgba(43,24,16,.24)}
.search-icon{width:44px;height:44px;flex-basis:44px;background:#ead9c5;color:#4d3023}
.search-field{align-items:center}
.search-field input{font-size:clamp(1.18rem,2.5vw,1.48rem);color:#3b2418}
.search-field input::placeholder{color:#9d8575}
.search-submit{min-height:68px;padding-left:23px;padding-right:23px;background:#3b2418}
.search-submit:hover{background:#4e3022}
.search-results{margin-top:38px}
.search-experience .result-heading p,.search-experience .result-heading small{color:#fff8ef}
.search-experience .guest-choice{color:#3b2418}
.search-experience .no-invitation{color:#3b2418;background:#fffaf3}

@media(max-width:760px){
    .search-experience{padding-top:40px}
    .search-experience .search-intro{margin-bottom:25px}
    .search-experience .invitation-mark{width:50px;height:50px;margin-bottom:17px}
    .search-bubble{min-height:78px;padding:9px 9px 9px 13px}
    .search-icon{width:38px;height:38px;flex-basis:38px}
    .search-submit{width:58px;min-height:58px;flex-basis:58px}
}

/* Refined sizing, readable invitation details, and linked party display. */
.search-experience .invitation-mark{display:none}
.search-experience{padding-top:50px}
.search-experience .search-intro{margin-bottom:25px}
.search-experience h1{font-size:clamp(2.65rem,5.5vw,4.35rem)}
.search-bubble{width:min(610px,100%);min-height:80px;padding:9px 11px 9px 16px;gap:12px}
.search-icon{width:40px;height:40px;flex-basis:40px}
.search-icon svg{width:19px;height:19px}
.search-field input{font-size:clamp(1.05rem,2.2vw,1.3rem)}
.search-submit{min-height:60px;padding-left:20px;padding-right:20px}
.search-submit svg{width:18px;height:18px}

.guest-choice{min-height:98px;border-radius:32px}
.guest-choice-name{color:#3b2418;line-height:1.35}
.guest-choice-name small{color:#765441;margin-top:2px}
.party-preview{display:block;margin-top:5px;color:#806554;font:500 .69rem/1.4 var(--sans)}

.public-body .guest-bubble{color:#3b2418}
.guest-bubble .eyebrow,.guest-bubble .response-heading .eyebrow{color:#765441}
.guest-bubble .invitation-owner{display:inline-block;margin:0 auto 8px;padding:6px 12px;border-radius:999px;background:#f1e4d4;color:#5b3828;font:600 .7rem var(--sans)}
.guest-bubble .intro{color:#6b4636}
.allocation-bubble>span{color:#765441}
.allocation-bubble p{color:#6b5142;font-size:.76rem;line-height:1.5}
.response-heading h2,.response-option strong,.companion-heading strong,.invitee-check span{color:#3b2418}
.response-option small,.companion-heading small{color:#765d4d}
.party-roster{margin:-16px 0 34px}
.party-roster .eyebrow{margin-bottom:12px}
.party-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.party-chips>span{min-width:145px;padding:10px 15px;border:1px solid #e4d4c3;border-radius:18px;background:#fffaf3;display:grid;color:#3b2418}
.party-chips b{font:500 .86rem var(--serif)}
.party-chips small{color:#8a6d5a;font:600 .56rem var(--sans);letter-spacing:.1em;text-transform:uppercase;margin-top:2px}
.public-body .companion-area .seats{color:#5b3828}
.search-again{color:#765441}

@media(max-width:760px){
    .search-experience{padding-top:34px}
    .search-experience .search-intro{margin-bottom:21px}
    .search-bubble{min-height:70px;padding:7px 8px 7px 12px}
    .search-icon{width:36px;height:36px;flex-basis:36px}
    .search-submit{width:54px;min-height:54px;flex-basis:54px;padding:0}
    .guest-choice{min-height:92px;border-radius:28px}
    .party-preview{font-size:.63rem}
    .party-roster{margin-top:-12px}
    .party-chips{display:grid;grid-template-columns:1fr 1fr}
    .party-chips>span{min-width:0}
}

@media(max-width:390px){
    .party-chips{grid-template-columns:1fr}
}

/* Clean header and circle-free invitation controls. */
.public-body .public-nav{width:100%;max-width:none;height:88px;margin:0;padding:0 clamp(28px,6vw,92px);position:sticky;top:0;z-index:20;background:#694a39;border-top:0;border-bottom:1px solid rgba(255,248,239,.14);box-shadow:0 5px 18px rgba(46,26,18,.1)}
.public-body .public-nav .brand{display:inline-flex;align-items:center;min-height:88px}
.guest-bubble-top .tiny-heart,.result-heading .tiny-heart{display:none}

.search-bubble{padding-left:20px}
.search-icon{width:25px;height:40px;flex-basis:25px;border-radius:0;background:transparent}
.search-icon svg{width:20px;height:20px}
.guest-choice{grid-template-columns:30px 1fr 24px;padding-left:18px;padding-right:20px}
.guest-monogram{width:30px;height:auto;border-radius:0;background:transparent;color:#5b3828;font-size:1.05rem}
.guest-choice-arrow{width:auto;height:auto;border-radius:0;background:transparent;color:#5b3828}
.guest-choice:hover .guest-choice-arrow{background:transparent;color:#3b2418}

.public-body .invitation-card .response-option{grid-template-columns:1fr auto;min-height:72px;padding:16px 23px;border-radius:22px}
.response-option>span{display:grid}
.public-body .invitation-card .response-option:has(input:checked)::after{content:'Selected';padding:5px 10px;border-radius:8px;background:#3b2418;color:#fff;font:600 .56rem var(--sans);letter-spacing:.08em;text-transform:uppercase}
.companion-heading{display:block;margin-bottom:14px}
.companion-heading>span{display:none}
.party-connection{max-width:510px;margin:0 auto 10px;color:#5b3828;font:.78rem/1.55 var(--sans)}
.party-connection strong{font-weight:600}
.party-chips>span.is-searched{border-color:#9f765d;background:#f2e5d6}

@media(max-width:760px){
    .public-body .public-nav{height:76px;padding:0 22px}
    .public-body .public-nav .brand{min-height:76px}
    .search-icon{width:23px;flex-basis:23px}
    .guest-choice{grid-template-columns:24px 1fr 18px;padding-left:15px;padding-right:16px}
    .guest-monogram{width:24px}
    .public-body .invitation-card .response-option{grid-template-columns:1fr auto;min-height:68px;padding:14px 17px}
}

/* Warm, readable RSVP confirmation. */
.public-body .celebration-card{max-width:720px;margin:0 auto;padding:clamp(42px,7vw,70px);border:1px solid rgba(91,56,40,.16);border-radius:48px;background:#fffaf3;color:#3b2418;box-shadow:0 28px 70px rgba(43,24,16,.18);overflow:hidden}
.celebration-card .confirmation-flourish{margin:0 auto 16px;color:#9b704f;font:400 2.2rem/1 var(--serif)}
.celebration-card .eyebrow{color:#765441;margin-bottom:15px}
.celebration-card h1{color:#3b2418;font-size:clamp(2.7rem,6vw,4.6rem);font-weight:400;letter-spacing:-.035em;margin-bottom:19px}
.celebration-card h1 em{color:#684332;font-weight:400}
.celebration-card>p{max-width:480px;margin:0 auto 27px;color:#684f40;font-size:.9rem}
.celebration-card .confirmation-details{margin:30px 0 25px;padding:23px;border:0;border-radius:28px;background:#f1e5d6;color:#3b2418;display:grid;gap:5px}
.celebration-card .confirmation-details strong{color:#3b2418;font-size:1.45rem}
.celebration-card .confirmation-details span{color:#6b5142;font-size:.75rem}
.confirmation-closing{display:grid;gap:2px;margin:26px 0 32px;color:#684332}
.confirmation-closing span{font:600 .6rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#92735e}
.confirmation-closing strong{font:400 1.65rem 'Pinyon Script',cursive}
.confirmation-actions{padding-top:28px;border-top:1px solid #e6d8c8;display:grid;justify-items:center;gap:11px}
.confirmation-actions .button{min-width:210px;border-radius:999px}
.confirmation-actions .help-text{margin:0;max-width:380px;color:#765d4d}
.confirmation-actions .button-outline{min-height:43px;background:transparent}

@media(max-width:760px){
    .public-body .celebration-card{padding:42px 23px 36px;border-radius:36px}
    .celebration-card h1{font-size:clamp(2.35rem,11vw,3.35rem)}
    .celebration-card .confirmation-details{padding:20px 15px;border-radius:24px}
    .confirmation-actions .button{width:100%}
}

/* Admin experience aligned with the public chocolate invitation design. */
.admin-body{background:#765441;color:#3b2418;font-family:var(--sans)}
.admin-sidebar{width:250px;padding:38px 28px;background:#3f271c;color:#fff8ef;border-right:1px solid rgba(255,248,239,.1)}
.admin-sidebar .brand{color:#fff8ef;font-size:2.15rem}
.admin-sidebar .brand span{color:#d9b996}
.admin-sidebar>p{color:#d9c0a8;margin-top:48px}
.admin-sidebar nav{gap:9px}
.admin-sidebar nav a{padding:12px 16px;border-radius:999px;font:500 .78rem var(--sans);letter-spacing:.02em}
.admin-main{margin-left:250px;width:calc(100% - 250px);min-height:100vh;padding:42px clamp(22px,4vw,62px) 60px;background:#765441}
.admin-top{display:flex;align-items:center;min-height:92px;margin-bottom:27px;padding:0 4px;color:#fff8ef}
.admin-top small{color:#ead8c5;font:600 .66rem var(--sans);letter-spacing:.2em}
.admin-top h1{color:#fff8ef;font-size:clamp(2.3rem,4vw,3.5rem);font-weight:400;letter-spacing:-.025em}
.admin-body .toast{border:0;border-radius:16px;background:#eef2e8;color:#41533d;box-shadow:0 8px 22px rgba(43,24,16,.14)}
.stat-grid{gap:14px;margin-bottom:20px}
.stat-card,.admin-body .panel,.admin-body .form-panel{border:1px solid rgba(91,56,40,.14);border-radius:26px;background:#fffaf3;box-shadow:0 14px 34px rgba(43,24,16,.12)}
.stat-card{padding:23px 25px}
.stat-card span{color:#80604e;font:600 .6rem var(--sans);letter-spacing:.14em}
.stat-card strong{color:#3b2418;font-weight:500}
.admin-body .panel{padding:25px}
.panel h2{color:#3b2418;font-weight:500}
.panel-head a,td a{color:#654331}
.admin-body table{color:#3b2418}
.admin-body th{color:#80604e;font:600 .61rem var(--sans);border-bottom-color:#dfcfbd}
.admin-body td{border-bottom-color:#eee3d7;font-size:.8rem}
.admin-body .action-row{margin-bottom:18px}
.admin-search{padding:6px;border-radius:999px;background:#fffaf3;box-shadow:0 10px 28px rgba(43,24,16,.12)}
.admin-search input,.admin-search select{min-height:42px;padding:8px 13px;border:0;border-radius:999px;background:transparent;box-shadow:none}
.admin-search button{min-width:84px;border-radius:999px;background:#3b2418;font:600 .65rem var(--sans);letter-spacing:.08em;text-transform:uppercase}
.admin-main .button{border-radius:999px}
.admin-main .button-primary{background:#3b2418}
.admin-main .button-outline{border-color:#fff0e0;color:#fff8ef}
.admin-main>.form-panel{max-width:980px;padding:30px}
.admin-main>.form-panel>p:first-child{margin:0 0 20px}
.admin-main>.form-panel>p:first-child a{color:#684332;font-size:.76rem}
.admin-body .form-panel .form-panel{max-width:none;margin:18px 0 0;padding:28px;background:#f4e8da;box-shadow:none}
.admin-form label{color:#4a2d20;font:600 .72rem var(--sans);letter-spacing:.04em}
.admin-form label small{color:#765d4d;font-size:.68rem;line-height:1.5}
.admin-form input,.admin-form select,.admin-form textarea{margin-top:7px;padding:13px 15px;border:1px solid #d9c5b1;border-radius:14px;background:#fffdf8;color:#3b2418;font:500 .84rem var(--sans);outline:none;transition:.2s}
.admin-form textarea{width:100%;resize:vertical}
.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{border-color:#765441;box-shadow:0 0 0 4px rgba(118,84,65,.1)}
.admin-body .notice{border-radius:16px;background:#f1e5d6;color:#5b3828}
.form-actions{padding-top:20px;border-top:1px solid #dcc9b5}
.delete-button{color:#8b443c}
.login-body{background:#765441}
.login-card{border-radius:32px;background:#fffaf3;color:#3b2418;box-shadow:0 24px 60px rgba(43,24,16,.2)}
.login-card input{border-radius:14px;background:#fffdf8}
.login-card .button{border-radius:999px;background:#3b2418}

@media(max-width:760px){
    .admin-main{margin:0;width:100%;padding:25px 16px 45px}
    .admin-top{min-height:76px;margin-bottom:18px}
    .admin-sidebar{width:255px}
    .stat-grid{grid-template-columns:repeat(2,1fr)}
    .admin-body .panel,.admin-main>.form-panel{padding:18px;border-radius:22px}
    .admin-body .form-panel .form-panel{padding:19px;border-radius:20px}
    .admin-search{width:100%}
}

/* Final responsive pass for public RSVP and admin experiences. */
.celebration-card .confirmation-title{font-size:clamp(2.25rem,4vw,3.2rem);white-space:nowrap}

@media(max-width:760px){
    .public-body .public-nav{height:68px;padding:0 18px}
    .public-body .public-nav .brand{min-height:68px;font-size:1.75rem}
    .public-body .rsvp-page{min-height:calc(100vh - 118px);padding:34px 14px 58px}
    .search-experience{padding-top:36px}
    .search-experience .eyebrow{font-size:.58rem;letter-spacing:.17em}
    .search-experience h1{font-size:clamp(2.35rem,11vw,3.25rem);line-height:1.08;max-width:520px;margin-left:auto;margin-right:auto}
    .search-bubble{width:100%;min-height:66px;padding:6px 7px 6px 14px;gap:8px}
    .search-icon{width:21px;height:34px;flex-basis:21px}
    .search-icon svg{width:18px;height:18px}
    .search-field input{font-size:1.02rem;min-width:0}
    .search-submit{width:52px;min-height:52px;flex-basis:52px}
    .search-results{margin-top:32px}
    .guest-list{gap:9px}
    .guest-choice{min-height:86px;padding:10px 13px;grid-template-columns:20px 1fr 16px;gap:9px}
    .guest-choice-name{font-size:.92rem}
    .party-preview{line-height:1.35}
    .public-body .invitation-experience{padding-top:22px}
    .public-body .guest-bubble{padding:34px 17px 30px;border-radius:30px}
    .public-body .guest-bubble:before{inset:7px;border-radius:24px}
    .guest-bubble h1{font-size:clamp(2.15rem,10vw,3rem);overflow-wrap:anywhere}
    .guest-bubble .intro{font-size:.9rem}
    .allocation-bubble{padding:18px 14px;margin:25px auto 28px}
    .allocation-bubble strong{font-size:1.55rem}
    .party-roster{margin-bottom:28px}
    .party-chips{gap:7px}
    .party-chips>span{padding:9px 11px}
    .response-heading{padding-top:26px}
    .response-heading h2{font-size:1.7rem}
    .public-body .invitation-card .response-option{padding:13px 14px;gap:8px}
    .public-body .invitation-card .response-option:has(input:checked)::after{padding:4px 7px;font-size:.5rem}
    .public-body .companion-area{padding:16px 13px}
    .companion-heading small{line-height:1.45}
    .public-body .invitation-card .invitee-check{padding:8px 10px!important}
    .public-body .response-submit{min-height:56px}
    .public-body .celebration-card{padding:38px 19px 32px}
    .celebration-card .confirmation-title{font-size:clamp(2.05rem,9vw,3rem);white-space:normal;line-height:1.12}
    .confirmation-closing strong{font-size:1.45rem}
    .public-footer{padding:22px 14px}

    .admin-body{display:block;min-height:100vh}
    .admin-body.sidebar-open{overflow:hidden}
    .admin-main{min-height:100vh;padding:20px 14px 40px}
    .admin-top{min-height:70px;padding:0;margin-bottom:14px;align-items:center}
    .admin-top h1{font-size:2.15rem}
    .admin-top .menu-button{width:42px;height:42px;margin-right:10px;border:1px solid rgba(255,248,239,.28);border-radius:12px;color:#fff8ef;background:rgba(255,255,255,.06)}
    .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
    .stat-card{padding:16px 14px;border-radius:19px}
    .stat-card strong{font-size:1.7rem}
    .admin-body .action-row{display:grid;grid-template-columns:1fr;align-items:stretch;gap:10px}
    .admin-search{display:grid;grid-template-columns:1fr auto;gap:3px;padding:5px}
    .report-tools .admin-search{grid-template-columns:1fr}
    .admin-search input,.admin-search select{width:100%;min-width:0}
    .admin-search button{min-height:42px;padding:0 16px}
    .admin-main .action-row>.button{width:100%}
    .table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
    .admin-body table{min-width:650px}
    .admin-body .panel{padding:16px 12px}
    .panel-head{align-items:flex-start}
    .admin-main>.form-panel{padding:16px 13px}
    .admin-body .form-panel .form-panel{margin-top:13px;padding:17px 13px}
    .admin-form label{margin:14px 0}
    .admin-form input,.admin-form textarea,.admin-form select{font-size:16px}
    .form-actions{display:grid;grid-template-columns:1fr;gap:12px;text-align:center}
    .form-actions .button{width:100%}
}

@media(max-width:420px){
    .search-experience h1{font-size:2.25rem}
    .search-field input{font-size:.95rem}
    .party-chips{grid-template-columns:1fr}
    .public-body .invitation-card .response-option{grid-template-columns:1fr}
    .public-body .invitation-card .response-option:has(input:checked)::after{justify-self:start;margin-top:4px}
    .stat-grid{grid-template-columns:1fr}
    .admin-top h1{font-size:1.9rem}
}

.invitee-editor{margin-top:18px;text-align:left}
.invitee-editor-title{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.05em}
.invitee-editor>small{display:block;color:var(--brown);margin:3px 0 12px}
.invitee-rows{display:grid;gap:10px}
.invitee-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(170px,1fr);gap:12px;padding:14px;border:1px solid #e3d3c2;border-radius:12px;background:#fffaf3}
.invitee-row label{margin:0}
.invitee-row[hidden]{display:none}
@media(max-width:620px){.invitee-row{grid-template-columns:1fr}}
