:root{--cream:#fdf8f0;--cream-2:#f8eee1;--paper:#fffdf8;--gold:#bf9b5f;--gold-soft:rgba(191,155,95,0.35);--gold-faint:rgba(191,155,95,0.15);--brown:#4a3226;--brown-mid:#6b543f;--brown-soft:#8a6a4d;--brown-link:#8a5a3b;--thread:#a83232;--pin:#c9a24e;--pin-hi:#f3e3b5;--heart:#d47f8a;--serif:"Playfair Display",serif;--script:"Dancing Script",cursive;--sans:"Mulish",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}html{scroll-behavior:smooth}body{background:linear-gradient(180deg,var(--cream),var(--cream-2));min-height:100vh;color:var(--brown);font-family:var(--sans);-webkit-font-smoothing:antialiased}@keyframes viewIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes heartBeat{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.fade-in{animation:viewIn .5s ease both}.kicker{font-family:var(--script);color:var(--gold)}.pill-btn{font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:10px 18px;border:1px solid var(--gold-soft);border-radius:999px;cursor:pointer;transition:all .3s;background:rgba(255,251,243,.85);color:var(--brown-link);text-decoration:none;display:inline-block}.pill-btn:hover{background:rgba(191,155,95,.18)}.pill-btn.active{background:var(--gold);color:#fffdf8;border-color:var(--gold)}.divider{display:flex;align-items:center;justify-content:center;gap:14px;width:min(360px,70vw);margin:18px auto}.divider .line-l{flex:1 1;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.divider .line-r{flex:1 1;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}.divider .heart{color:var(--gold);font-size:15px}.field-label{font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brown-link);display:block;margin:18px 0 8px}.select-input,.text-input,.textarea-input{width:100%;font-family:var(--sans);font-size:15px;color:var(--brown);background:rgba(255,253,248,.9);border:1px solid var(--gold-soft);border-radius:10px;padding:11px 14px;outline:none;transition:border-color .25s,box-shadow .25s}.select-input:focus,.text-input:focus,.textarea-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-faint)}.textarea-input{resize:vertical;min-height:84px}.submit-btn{font-family:var(--sans);font-weight:600;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#fffdf8;background:linear-gradient(135deg,#cfa96b,#bf9b5f);border:none;border-radius:999px;padding:13px 30px;cursor:pointer;box-shadow:0 12px 28px -12px rgba(120,72,40,.55);transition:all .3s}.submit-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.submit-btn:disabled{opacity:.6;cursor:default;transform:none}.choice-btn{flex:1 1 160px;font-family:var(--sans);font-weight:600;font-size:14px;padding:14px 18px;border:1.5px solid var(--gold-soft);border-radius:14px;cursor:pointer;transition:all .3s;background:rgba(255,253,248,.85);color:var(--brown-mid)}.choice-btn:hover{border-color:var(--gold)}.choice-btn.selected-yes{background:linear-gradient(135deg,#cfa96b,#bf9b5f);border-color:var(--gold);color:#fffdf8;box-shadow:0 12px 28px -12px rgba(120,72,40,.55)}.choice-btn.selected-no{background:#6b543f;border-color:#6b543f;color:#fdf8f0;box-shadow:0 12px 28px -12px rgba(60,40,25,.55)}.choice-btn.chosen{background:transparent;box-shadow:none}.choice-btn.chosen.selected-yes{border-color:var(--gold);color:var(--gold)}.choice-btn.chosen.selected-no{border-color:#6b543f;color:#6b543f}.choice-btn.chosen:not(.selected-yes):not(.selected-no){opacity:.5}@keyframes sendGrow{0%,to{transform:scale(1.4);box-shadow:0 14px 32px -12px rgba(120,72,40,.55)}50%{transform:scale(1.5);box-shadow:0 20px 44px -10px rgba(191,155,95,.85)}}.submit-btn.send-grow{animation:sendGrow 1.6s ease-in-out infinite;transform:scale(1.4)}@keyframes rsvpPulse{0%,to{transform:scale(1);box-shadow:0 0 0 0 rgba(191,155,95,0)}50%{transform:scale(1.03);box-shadow:0 0 0 4px rgba(191,155,95,.2)}}.rsvp-pulse{animation:rsvpPulse 1.6s ease-in-out infinite}.admin-card{background:rgba(255,253,248,.92);border:1px solid var(--gold-soft);border-radius:16px;padding:22px 24px;box-shadow:0 18px 44px -22px rgba(120,72,40,.35)}.admin-h2{font-family:var(--serif);font-weight:600;font-size:20px;color:var(--brown);margin:0 0 14px}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{font-family:var(--sans);font-weight:600;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--brown-link);text-align:left;padding:8px 10px;border-bottom:1px solid var(--gold-soft);white-space:nowrap}.admin-table td{padding:9px 10px;border-bottom:1px solid rgba(191,155,95,.16);color:var(--brown-mid);vertical-align:middle}.mini-btn{font-family:var(--sans);font-weight:600;font-size:11px;padding:6px 12px;border:1px solid var(--gold-soft);border-radius:999px;cursor:pointer;background:rgba(255,251,243,.9);color:var(--brown-link);transition:all .25s;white-space:nowrap}.mini-btn:hover{background:rgba(191,155,95,.18)}.mini-btn.danger{color:#a83232;border-color:rgba(168,50,50,.35)}.mini-btn.danger:hover{background:rgba(168,50,50,.1)}.status-badge{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.06em;padding:3px 10px;border-radius:999px;white-space:nowrap}.status-accepted{background:rgba(108,122,69,.16);color:#55632f}.status-declined{background:rgba(168,50,50,.12);color:#a83232}.status-pending{background:rgba(191,155,95,.16);color:#8a5a3b}.stat-tile{flex:1 1 130px;background:rgba(255,253,248,.92);border:1px solid var(--gold-soft);border-radius:14px;padding:14px 18px;display:block;width:auto;text-align:left;font:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.stat-tile:hover{transform:translateY(-1px);box-shadow:0 8px 22px -14px rgba(120,72,40,.5)}.stat-tile.active{border-color:var(--brown-mid);box-shadow:0 0 0 2px var(--brown-mid) inset}.stat-tile.tone-green.active{border-color:#55632f;box-shadow:inset 0 0 0 2px #55632f}.stat-tile.tone-red.active{border-color:#a83232;box-shadow:inset 0 0 0 2px #a83232}.stat-tile.tone-amber.active{border-color:#b08a3e;box-shadow:inset 0 0 0 2px #b08a3e}.stat-tile .num{font-family:var(--serif);font-weight:700;font-size:30px;color:var(--brown);line-height:1.1}.stat-tile .lbl{font-family:var(--sans);font-weight:600;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--brown-link);margin-top:4px}.stat-tile.tone-green{background:rgba(108,122,69,.1);border-color:rgba(108,122,69,.4)}.stat-tile.tone-green .lbl,.stat-tile.tone-green .num{color:#55632f}.stat-tile.tone-red{background:rgba(168,50,50,.09);border-color:rgba(168,50,50,.35)}.stat-tile.tone-red .lbl,.stat-tile.tone-red .num{color:#a83232}.stat-tile.tone-amber{background:rgba(191,155,95,.16);border-color:rgba(191,155,95,.55)}.stat-tile.tone-amber .lbl,.stat-tile.tone-amber .num{color:#8a5a3b}.admin-table th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.admin-table th.sortable:hover{color:var(--brown)}.admin-table th .sort-caret{font-size:9px;opacity:.55;margin-left:3px}@keyframes storyPulse{0%,to{transform:translateX(-50%) scale(1);box-shadow:0 8px 22px -10px rgba(191,155,95,.6)}50%{transform:translateX(-50%) scale(1.06);box-shadow:0 10px 30px -8px rgba(191,155,95,.9)}}.story-cta.pulsing{background:linear-gradient(135deg,#cfa96b,#bf9b5f);color:#fffdf8;border-color:var(--gold);animation:storyPulse 1.5s ease-in-out infinite}.story-cta.pulsing:hover{background:linear-gradient(135deg,#d8b477,#c9a568)}@keyframes storyPulsePlain{0%,to{transform:scale(1);box-shadow:0 8px 22px -10px rgba(191,155,95,.6)}50%{transform:scale(1.06);box-shadow:0 10px 30px -8px rgba(191,155,95,.9)}}.story-cta.pulse-inline{background:linear-gradient(135deg,#cfa96b,#bf9b5f);color:#fffdf8;border-color:var(--gold);animation:storyPulsePlain 1.5s ease-in-out infinite}.story-cta.pulse-inline:hover{background:linear-gradient(135deg,#d8b477,#c9a568)}@media print{.mini-btn,.no-print,.pill-btn,.stat-tile,.submit-btn{display:none!important}.admin-card,body{background:#fff!important}.admin-card{border:none!important;box-shadow:none!important;padding:0!important;margin:0!important}.seating-print,.seating-print *{color:#000!important;background:transparent!important}.seating-print h1,.seating-print h2{border-color:#999!important}.seating-print .print-table{break-inside:avoid;page-break-inside:avoid}.seating-print .print-index{break-before:page;page-break-before:always}}