.inv-page,.inv-envelope,.inv-loading{-webkit-font-smoothing:antialiased;min-height:100dvh;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.inv-page *,.inv-envelope *{box-sizing:border-box}.inv-loading{background:#1d1a18}.inv-page{background-color:color-mix(in srgb, var(--inv-accent,#a31d1d) 22%, #141210);background-position:50%;background-size:cover;background-attachment:fixed;justify-content:center;align-items:flex-start;padding:24px 12px 48px;display:flex}.inv-page.plain{background:#f4efe9;align-items:center}.inv-frame{border-radius:18px;width:100%;max-width:480px;box-shadow:0 24px 60px #00000073}.inv-frame.image{background-position:50%;background-size:cover;padding:22px}.inv-card{background:var(--inv-bg,#fff);color:var(--inv-text,#222);border-radius:14px;padding:18px 22px 28px;overflow:hidden}.inv-frame.image .inv-card{border-radius:8px;box-shadow:0 6px 18px #0000004d}.inv-frame.minimal .inv-card{border:2px solid var(--inv-border)}.inv-frame.solid_thick .inv-card{border:6px solid var(--inv-border)}.inv-frame.double_line .inv-card{box-shadow:inset 0 0 0 8px var(--inv-bg), inset 0 0 0 9px var(--inv-border);border:1px solid var(--inv-border)}.inv-toolbar{justify-content:space-between;align-items:center;gap:8px;min-height:40px;display:flex}.inv-lang{border:1px solid var(--inv-border);border-radius:999px;display:inline-flex;overflow:hidden}.inv-lang button{color:var(--inv-text);cursor:pointer;background:0 0;border:0;padding:6px 14px;font:600 14px system-ui,sans-serif}.inv-lang button.on{background:var(--inv-accent);color:var(--inv-bg)}.inv-music{cursor:pointer;background:color-mix(in srgb, var(--inv-accent) 14%, transparent);width:40px;height:40px;color:var(--inv-accent);border:0;border-radius:50%;font-size:18px}.inv-music.playing{animation:2s ease-in-out infinite inv-pulse}@keyframes inv-pulse{50%{transform:scale(1.08)}}.inv-body{text-align:center;padding-top:8px}.inv-xi{font:52px/1 var(--inv-font-zh);color:var(--inv-accent);margin:8px 0 12px}.inv-intro{font:15px/1.5 var(--inv-font);letter-spacing:.14em;text-transform:uppercase;opacity:.8;margin:0 0 18px}.inv-intro.zh{font-family:var(--inv-font-zh);letter-spacing:.3em;text-transform:none;font-size:18px}.inv-names{font:700 clamp(34px, 10vw, 44px)/1.15 var(--inv-font);overflow-wrap:anywhere;margin:0}.inv-names.zh{font-family:var(--inv-font-zh);font-weight:400}.inv-name-line{display:block}.inv-names-alt{font:20px/1.4 var(--inv-font);opacity:.85;margin:8px 0 0}.inv-names-alt.zh{font-family:var(--inv-font-zh);letter-spacing:.15em}.inv-heart{width:26px;height:26px;color:var(--inv-accent);margin:22px auto 6px;display:block}.inv-gallery{margin:18px 0 8px;position:relative}.inv-gallery-track{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:10px;display:flex;overflow-x:auto}.inv-gallery-track::-webkit-scrollbar{display:none}.inv-gallery-track img{aspect-ratio:4/5;object-fit:cover;scroll-snap-align:center;-webkit-user-select:none;user-select:none;background:color-mix(in srgb, var(--inv-border) 25%, transparent);flex:0 0 100%;width:100%}.inv-gallery-arrow{color:#1a1411;cursor:pointer;opacity:.85;background:#fffc;border:0;border-radius:50%;width:36px;height:36px;font:600 22px/1 sans-serif;position:absolute;top:calc(50% - 22px)}.inv-gallery-arrow.prev{left:8px}.inv-gallery-arrow.next{right:8px}.inv-gallery-dots{justify-content:center;gap:6px;margin-top:10px;display:flex}.inv-gallery-dots span{background:var(--inv-accent);opacity:.3;border-radius:50%;width:6px;height:6px;transition:opacity .2s}.inv-gallery-dots span.on{opacity:1}@media (hover:none){.inv-gallery-arrow{display:none}}.inv-event{border-top:1px solid color-mix(in srgb, var(--inv-border) 70%, transparent);padding:18px 0}.inv-event:first-of-type{border-top:0}.inv-event-name{font:700 20px/1.3 var(--inv-font);color:var(--inv-accent);margin:0 0 6px}.inv-event-name.zh{font-family:var(--inv-font-zh);font-size:24px;font-weight:400}.inv-date{font:700 18px/1.4 var(--inv-font);margin:0}.inv-time{font:16px/1.4 var(--inv-font);margin:2px 0 8px}.inv-venue{font:17px/1.4 var(--inv-font);margin:0}.inv-address{opacity:.8;margin:2px 0 10px;font-size:14px}.inv-countdown{grid-template-columns:repeat(4,1fr);gap:4px;margin:18px 0 4px;display:grid}.inv-countdown>div{flex-direction:column;align-items:center;min-width:0;display:flex}.inv-count-num{font:700 clamp(22px, 7.5vw, 32px)/1.1 var(--inv-font);font-variant-numeric:tabular-nums}.inv-count-label{letter-spacing:.12em;text-transform:uppercase;opacity:.7;font-size:11px}.inv-actions{flex-direction:column;align-items:stretch;gap:10px;margin-top:22px;display:flex}.inv-thanks{color:var(--inv-accent);margin:0;font-weight:700}.inv-summary ul{margin:0 0 4px;padding:0;list-style:none}.inv-summary li{margin:2px 0}.inv-gift{border-top:1px solid color-mix(in srgb, var(--inv-border) 70%, transparent);margin-top:22px;padding-top:14px}.inv-gift summary{cursor:pointer;color:var(--inv-accent);font-weight:700;list-style:none}.inv-gift summary::-webkit-details-marker{display:none}.inv-actions .inv-gift.declined{margin-top:6px}.inv-gift img{background:#fff;border-radius:8px;max-width:100%;height:auto;margin:12px auto 6px;display:block}.inv-branding{color:inherit;opacity:.55;margin-top:26px;font-size:12px;display:inline-block}.inv-btn{border:2px solid var(--inv-accent);background:var(--inv-accent);min-height:52px;color:var(--inv-bg);letter-spacing:.02em;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:12px 22px;font:700 16px system-ui,sans-serif;text-decoration:none;display:inline-flex}.inv-btn.ghost{color:var(--inv-accent);background:0 0}.inv-btn.small{min-height:40px;padding:8px 16px;font-size:14px}.inv-btn.zh{font-family:var(--inv-font-zh);font-size:18px;font-weight:400}.inv-btn:disabled{opacity:.6;cursor:default}.inv-link{color:inherit;opacity:.8;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:6px;font:600 14px system-ui,sans-serif;text-decoration:underline}.inv-link.center{margin:8px auto 0;display:block}.inv-kicker{font:14px/1.4 var(--inv-font);letter-spacing:.16em;text-transform:uppercase;opacity:.8;margin:0 0 6px}.inv-heading{font:700 26px/1.25 var(--inv-font);margin:0 0 8px}.inv-muted{opacity:.78;margin:0 0 8px;font-size:14px}.inv-error{color:#8a1c14;text-align:left;background:#fdecea;border-radius:8px;padding:10px 12px;font-size:14px}.inv-envelope{text-align:center;background:var(--inv-bg);color:var(--inv-text);flex-direction:column;justify-content:center;align-items:center;padding:32px 24px;display:flex}.inv-envelope-icon{width:76px;height:76px;color:var(--inv-accent);margin-bottom:18px}.inv-env-names{font:700 clamp(32px, 9vw, 42px)/1.2 var(--inv-font);overflow-wrap:anywhere;margin:6px 0 4px}.inv-env-names-zh{font:22px/1.4 var(--inv-font-zh);letter-spacing:.2em;margin:0}.inv-env-buttons{flex-direction:column;gap:12px;width:100%;max-width:280px;margin-top:40px;display:flex}.inv-rsvp{text-align:left;padding-top:8px}.inv-rsvp .inv-heading,.inv-rsvp .inv-kicker,.inv-rsvp>.inv-muted{text-align:center}.inv-rsvp .inv-btn{width:100%;margin-top:8px}.inv-event-q{border:1px solid color-mix(in srgb, var(--inv-border) 80%, transparent);border-radius:12px;margin:16px 0;padding:12px 14px}.inv-event-q legend{font:700 17px var(--inv-font);color:var(--inv-accent);padding:0 6px}.inv-guest-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.inv-guest-name{overflow-wrap:anywhere;min-width:0;font-weight:600}.inv-yesno{border:1px solid var(--inv-border);border-radius:10px;flex:none;display:inline-flex;overflow:hidden}.inv-yesno.three{display:flex}.inv-yesno.three button{flex:1}.inv-yesno button{color:var(--inv-text);cursor:pointer;background:0 0;border:0;min-height:44px;padding:10px 12px;font:600 14px system-ui,sans-serif}.inv-yesno button+button{border-left:1px solid var(--inv-border)}.inv-yesno button.on.yes{background:var(--inv-accent);color:var(--inv-bg)}.inv-yesno button.on.no{background:color-mix(in srgb, var(--inv-text) 16%, transparent)}.inv-plus{margin:16px 0}.inv-plus-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.inv-plus-row input.inv-input{flex:160px;width:auto;min-width:0}.inv-plus-row select.inv-age{flex:none;width:auto}.inv-field{margin:14px 0;display:block}.inv-field>span{margin-bottom:6px;font-size:14px;font-weight:600;display:block}.inv-input{color:#222;background:#fff;border:1px solid #cfc6bd;border-radius:8px;width:100%;padding:11px 12px;font:16px system-ui,sans-serif}.inv-input:focus{outline:2px solid var(--inv-accent);outline-offset:1px}.inv-details{margin:12px 0}.inv-details summary{cursor:pointer;font-size:14px;font-weight:600}.inv-notfound{text-align:center;max-width:420px;padding:32px 24px}
