:root{--bg:#f7f1e8;--bg-deep:#efe3d3;--ink:#2a1c14;--muted:#7b6656;--accent:#7a4e2d;--accent-2:#c89b6e;--line:#dfcbb5;--card:#fffbf5;--success:#5c7a5a;--danger:#a4483d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(circle at 18% -10%, #c89b6e3d, transparent 55%), radial-gradient(circle at 110% 20%, #7a4e2d1f, transparent 45%), var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.page{width:min(100% - 32px,580px);min-height:100dvh;padding:max(28px, env(safe-area-inset-top)) 0 max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:20px;margin:0 auto;display:flex}.hero{text-align:center;padding-top:4px;animation:.7s cubic-bezier(.22,1,.36,1) both rise;position:relative}.hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#c89b6e38,#0000 68%);border-radius:50%;height:210px;position:absolute;top:-18px;bottom:auto;left:8%;right:8%}.cup{width:62px;height:62px;color:var(--accent);margin:0 auto 6px;animation:7s ease-in-out infinite float}.cup svg{width:100%;height:100%}.cup-body,.cup-handle,.cup-saucer{stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.cup-body{fill:#c89b6e29}.steam{stroke:var(--accent-2);stroke-width:2px;stroke-linecap:round;opacity:.7;animation:3.4s ease-in-out infinite steam}.steam-2{animation-delay:.4s}.steam-3{animation-delay:.8s}.kicker{letter-spacing:.32em;color:var(--muted);margin:0;font-size:10px;font-weight:700}.monogram{color:var(--accent);margin:10px 0 2px;font-family:Georgia,Times New Roman,serif;font-size:clamp(64px,20vw,92px);font-style:italic;font-weight:400;line-height:.95}.subtitle{max-width:32ch;color:var(--muted);margin:12px auto 0;font-size:16px;line-height:1.55}.date{margin:20px 0 0;font-family:Georgia,Times New Roman,serif;font-size:21px}.countdown{border:1px solid var(--line);color:var(--accent);letter-spacing:.04em;background:#fffbf5b3;border-radius:999px;margin:10px 0 0;padding:7px 14px;font-size:12px;font-weight:700;display:inline-flex}.invite{border:1px solid var(--line);background:linear-gradient(180deg, var(--card), #fffbf5b3);text-align:center;border-radius:18px;padding:18px;font-size:14px;animation:.65s cubic-bezier(.22,1,.36,1) .12s both rise;box-shadow:0 12px 30px #4a2d1a0f}.invite p{margin:8px 0 0}.badge{letter-spacing:.16em;color:var(--success);font-size:9px;font-weight:700;display:inline-block}.invite code{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.muted{color:var(--muted)}.section-title{letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin:10px 0 -4px;font-size:10px;font-weight:700;animation:.7s .16s both fade}.cards{gap:12px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:6px;padding:20px;transition:transform .22s,box-shadow .22s,border-color .22s;animation:.65s cubic-bezier(.22,1,.36,1) both rise;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 26px #4a2d1a0e}.card:first-child{animation-delay:.18s}.card:nth-child(2){animation-delay:.26s}.card:nth-child(3){animation-delay:.34s}.card:after{content:"";pointer-events:none;background:radial-gradient(circle,#c89b6e33,#0000 70%);border-radius:50%;width:140px;height:140px;position:absolute;top:-80px;right:-70px}.card:hover{border-color:var(--accent-2);transform:translateY(-3px);box-shadow:0 16px 36px #4a2d1a17}.card-index{color:var(--accent-2);opacity:.7;font-family:Georgia,Times New Roman,serif;font-size:20px;font-style:italic;position:absolute;top:18px;right:20px}.card-kicker{letter-spacing:.18em;color:var(--accent);font-size:9px;font-weight:700}.card h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:21px;font-weight:500;line-height:1.2}.card p{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.soon{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:#c89b6e29;border-radius:999px;align-self:flex-start;margin-top:6px;padding:5px 10px;font-size:10px;font-weight:700}.footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:16px;font-size:12px;animation:.7s .42s both fade;display:flex}.status{align-items:center;gap:6px;display:inline-flex}.dot{background:var(--muted);border-radius:50%;width:7px;height:7px}.status-online .dot{background:var(--success)}.status-offline .dot{background:var(--danger)}.admin-link{color:var(--accent);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .18s}.admin-link:hover{border-bottom-color:var(--accent)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes steam{0%{opacity:0;transform:translateY(4px)}35%{opacity:.75}to{opacity:0;transform:translateY(-6px)}}@media (min-width:720px){.page{padding-top:44px}.cards{grid-template-columns:1fr 1fr}.card:first-child{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.invite-ok{background:linear-gradient(#fffbf5fa,#efe4d58c);border-color:#5c7a5a59}.invite-error{background:linear-gradient(#fffbf5fa,#a4483d0f);border-color:#a4483d59}.link-button{color:var(--accent);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-top:10px;font-size:12px;text-decoration:underline}.card-action{cursor:pointer}.card-action:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.rsvp-panel{background:var(--card);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:16px;padding:20px;animation:.5s cubic-bezier(.22,1,.36,1) both rise;display:flex;box-shadow:0 12px 30px #4a2d1a0f}.back-link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:12px}.rsvp-heading{flex-direction:column;gap:4px;display:flex}.rsvp-heading h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:28px;font-weight:500}.guest-list{flex-direction:column;gap:10px;display:flex}.guest-row{border:1px solid var(--line);background:#f7f1e880;border-radius:14px;flex-direction:column;gap:10px;padding:14px;display:flex}.guest-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.guest-head span{font-size:12px}.choice{border:1px solid var(--line);border-radius:999px;display:inline-flex;overflow:hidden}.choice-btn{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:7px 14px;font-size:12px;font-weight:700}.choice-btn.selected{color:#3f603f;background:#5c7a5a2e}.choice-btn.selected.no{color:var(--danger);background:#a4483d24}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.field input{border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;border-radius:10px;width:100%;padding:10px 12px;font-size:14px}.tag-list{flex-wrap:wrap;gap:6px;display:flex}.tag{border:1px solid var(--line);background:var(--card);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:6px 10px;font-size:11px}.tag.selected{border-color:var(--accent);color:var(--accent);background:#c89b6e33;font-weight:700}.primary-button,.secondary-button{font:inherit;cursor:pointer;border:0;border-radius:999px;padding:14px 18px;font-size:14px;font-weight:700}.primary-button{background:var(--accent);color:#fff8ef}.primary-button:disabled{opacity:.45;cursor:not-allowed}.secondary-button{background:var(--bg-deep);color:var(--ink)}.error-text{color:var(--danger);font-size:13px}.success-text{color:var(--success);font-size:13px;font-weight:700}.field textarea{border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;resize:vertical;border-radius:10px;width:100%;min-height:58px;padding:10px 12px;font-size:14px}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2a1c1473;justify-content:center;align-items:center;padding:24px;animation:.22s both fade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.success-modal{border:1px solid var(--line);background:var(--card);text-align:center;border-radius:22px;flex-direction:column;gap:10px;width:min(100%,340px);padding:26px 22px;animation:.32s cubic-bezier(.22,1,.36,1) both rise;display:flex;box-shadow:0 24px 60px #2a1c1438}.success-icon{width:48px;height:48px;color:var(--success);background:#5c7a5a29;border-radius:50%;place-items:center;margin:0 auto 4px;font-size:24px;font-weight:700;display:grid}.success-modal h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:23px;font-weight:500}.success-modal p{margin:0}.success-modal .primary-button{margin-top:8px}.attendance-block{border:1px solid var(--line);background:#f7f1e8cc;border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.attendance-question{color:var(--muted);letter-spacing:.04em;font-size:12px;font-weight:700}.attendance-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.attendance-btn{border:2px solid var(--line);background:var(--card);min-height:62px;color:var(--ink);text-align:left;font:inherit;cursor:pointer;border-radius:14px;align-items:center;gap:8px;padding:10px 12px;transition:background .18s,border-color .18s,transform .12s;display:flex}.attendance-btn:active{transform:scale(.98)}.attendance-btn strong{font-size:15px;display:block}.attendance-btn small{color:var(--muted);margin-top:1px;font-size:10px;display:block}.attendance-icon{border:2px solid var(--line);width:26px;height:26px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:13px;display:grid}.attendance-btn.yes.selected{border-color:var(--success);background:#5c7a5a1f}.attendance-btn.yes.selected .attendance-icon{background:var(--success);border-color:var(--success);color:#fff}.attendance-btn.no.selected{border-color:var(--danger);background:#a4483d1a}.attendance-btn.no.selected .attendance-icon{background:var(--danger);border-color:var(--danger);color:#fff}.request-box{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:16px;display:flex}.request-actions{flex-direction:column;gap:8px;display:flex}.gifts-panel{background:var(--card);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:16px;padding:20px;animation:.5s cubic-bezier(.22,1,.36,1) both rise;display:flex;box-shadow:0 12px 30px #4a2d1a0f}.gift-fund{background:linear-gradient(135deg,#c89b6e29,#fffbf5b3);border:1px solid #c89b6e8c;border-radius:16px;flex-direction:column;gap:8px;padding:16px;display:flex}.gift-fund p{margin:0;font-size:14px;line-height:1.5}.gift-iban{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;display:flex}.gift-iban code{min-width:170px;color:var(--accent);word-break:normal;overflow-wrap:anywhere;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.secondary-button.compact{padding:7px 12px;font-size:11px}.link-button-block{text-align:center;text-decoration:none;display:inline-block}.gift-filters{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{border:1px solid var(--line);background:var(--card);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:700}.filter-chip.selected{background:var(--accent);border-color:var(--accent);color:#fff8ef}.gift-list{flex-direction:column;gap:10px;display:flex}.gift-card{border:1px solid var(--line);background:#f7f1e870;border-radius:16px;flex-direction:column;gap:10px;padding:14px;display:flex}.gift-card.chosen{background:#efe4d58c}.gift-image{object-fit:cover;border-radius:12px;width:100%;max-height:180px}.gift-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.gift-card-head h3{margin:4px 0 0;font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:500;line-height:1.2}.gift-state{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;background:#c89b6e2e;border-radius:999px;padding:3px 8px;font-size:9px;font-weight:700;display:inline-block}.gift-state.mine{color:var(--success);background:#5c7a5a2e}.gift-price{white-space:nowrap;font-size:15px}.gift-card p{margin:0;font-size:13px;line-height:1.5}.gift-link{color:var(--accent);align-self:flex-start;font-size:12px;font-weight:700;text-decoration:none}.gift-link:hover{text-decoration:underline}.gift-item-iban code{color:var(--accent);word-break:break-all}.gift-expiry{font-size:11px!important}.gift-warning{border-top:1px solid var(--line);color:var(--muted);white-space:pre-line;margin:0;padding-top:12px;font-size:11px;line-height:1.55}.gift-help{align-self:flex-start;margin-top:4px}.gift-shipping{border:1px solid var(--line);background:#fffbf5d1;border-radius:16px;align-items:flex-start;gap:12px;padding:14px;display:flex}.gift-shipping-icon{background:#c89b6e2e;border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:18px;display:grid}.gift-shipping p{margin:4px 0 0;font-size:13px;line-height:1.45}.gift-search{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex}.gift-search input{color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:11px 0;font-size:14px}.gift-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.gift-category{background:var(--bg-deep);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 8px;font-size:9px;font-weight:700;display:inline-block}.warning-text{color:var(--danger)!important}.instructions-modal{border:1px solid var(--line);background:var(--card);border-radius:22px;flex-direction:column;gap:12px;width:min(100%,430px);max-height:min(86vh,720px);padding:24px 22px;animation:.32s cubic-bezier(.22,1,.36,1) both rise;display:flex;overflow-y:auto;box-shadow:0 24px 60px #2a1c1438}.instructions-modal h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:26px;font-weight:500}.instructions-modal p{margin:0;font-size:13px;line-height:1.5}.instruction-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.instruction-list li{border-top:1px solid var(--line);align-items:flex-start;gap:12px;padding-top:10px;display:flex}.instruction-icon{background:#c89b6e2e;border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:18px;display:grid}.instruction-list strong{font-size:13px}.instruction-list p{color:var(--muted);margin-top:2px;font-size:12px}.instructions-modal .primary-button{margin-top:6px}.places-panel{background:var(--card);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:16px;padding:20px;animation:.5s cubic-bezier(.22,1,.36,1) both rise;display:flex;box-shadow:0 12px 30px #4a2d1a0f}.places-list{flex-direction:column;gap:12px;display:flex}.place-card{border:1px solid var(--line);background:#f7f1e880;border-radius:16px;flex-direction:column;gap:8px;padding:15px;display:flex}.place-head{align-items:flex-start;gap:10px;display:flex}.place-head h3{margin:3px 0 0;font-family:Georgia,Times New Roman,serif;font-size:21px;font-weight:500;line-height:1.2}.place-icon{background:#c89b6e2e;border-radius:50%;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:20px;display:grid}.place-card p{margin:0;font-size:13px;line-height:1.5}.place-note{color:var(--muted);border-left:2px solid var(--accent-2);padding-left:9px;font-size:12px!important}.place-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.dress-card{background:linear-gradient(135deg,#c89b6e29,#fffbf5bf);border:1px solid #c89b6e8c;border-radius:16px;flex-direction:column;gap:10px;padding:18px;display:flex}.dress-icon{background:#fffbf5b3;border-radius:50%;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.dress-card p{margin:0;font-size:14px;line-height:1.55}.dress-palette{flex-wrap:wrap;gap:8px;padding:4px 0;display:flex}.dress-swatch{border:2px solid #fffbf5d9;border-radius:50%;width:38px;height:38px;box-shadow:0 3px 10px #4a2d1a1f}.lang-switch{z-index:3;border:1px solid var(--line);color:var(--accent);font:inherit;letter-spacing:.08em;cursor:pointer;background:#fffbf5d1;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:800;position:absolute;top:0;right:0}
