/* Keep the invitation a short story; guest tasks open above it on demand. */
html{scrollbar-gutter:stable}
.cinematic-invitation .dock{bottom:0;width:100%;max-width:480px;border-radius:18px 18px 0 0;padding:7px 6px calc(7px + env(safe-area-inset-bottom));gap:2px;background:var(--bg);transition:transform .45s cubic-bezier(.22,1,.36,1)}
.cinematic-invitation.theme-royal .dock{max-width:560px}
.cinematic-invitation .dock:empty{display:none}
.cinematic-invitation .dock button{flex:1;min-width:0;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:7px 2px;border:0;border-radius:12px;background:transparent;color:var(--ink);font:500 10px/1.2 var(--font-ui);letter-spacing:0;cursor:pointer;touch-action:manipulation}
.dock button svg{width:20px;height:20px;flex:none}.cinematic-invitation .dock button.active{background:var(--btn-bg,var(--accent-ink));color:var(--btn-ink,#fff)}
.dock button:focus-visible{outline:2px solid var(--accent-ink);outline-offset:-3px}.dock button:active{background:var(--surface,color-mix(in srgb,var(--bg) 90%,var(--ink)))}
.guest-action-hint{max-width:290px;margin:24px auto 0;font:400 11px/1.6 var(--font-ui);color:var(--muted)}
.invitation-sheet{position:fixed;inset:auto 0 0;box-sizing:border-box;margin:0 auto;padding:0;width:min(100%,480px);max-width:100%;height:auto;max-height:min(86dvh,850px);border:1px solid var(--line);border-bottom:0;border-radius:24px 24px 0 0;background:var(--bg);color:var(--ink);box-shadow:0 -12px 65px #0002;overflow:hidden;text-align:center;overscroll-behavior:contain}
.theme-royal .invitation-sheet{width:min(100%,560px)}
.invitation-sheet::backdrop{background:rgb(20 16 14 / .48);animation:guest-backdrop-in .24s ease-out both}
.invitation-sheet[open]{animation:guest-sheet-in .32s cubic-bezier(.22,1,.36,1) both}
.invitation-sheet.is-closing{animation:guest-sheet-out .18s ease-in both}.invitation-sheet.is-closing::backdrop{animation:guest-backdrop-out .18s ease-in both}
.sheet-scroll{overflow-y:auto;overscroll-behavior:contain;max-height:min(86dvh,850px);padding-bottom:max(24px,env(safe-area-inset-bottom));scrollbar-width:thin;scrollbar-color:var(--line) transparent;-webkit-overflow-scrolling:touch}
.sheet-grip{height:4px;width:34px;border-radius:5px;background:var(--line);margin:10px auto 0}
.sheet-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:20px 24px 19px;gap:20px;border-bottom:1px solid var(--line);background:var(--bg)}
.sheet-head h2{font:500 28px/1.15 var(--font-display);margin:4px 0 0;color:var(--ink);letter-spacing:0}
.sheet-eyebrow{font:400 9px/1.3 var(--font-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0}
.sheet-close{display:grid;place-items:center;width:44px;height:44px;min-width:44px;border:1px solid var(--line);border-radius:50%;background:var(--surface,var(--bg));color:var(--ink);padding:0;cursor:pointer}
.sheet-body>section,.theme-royal .sheet-body>section.rb-section{padding:24px;margin:0;position:relative;text-align:center}
.sheet-body>section>h2,.sheet-body>section>.eyebrow,.sheet-body>section>.rb-head{display:none}
.sheet-body p{line-height:1.6}.sheet-body .btn-row{margin-top:18px}.sheet-body .count{margin-top:0}
.sheet-body .rb-fold-body{padding:0}.sheet-body .rb-rsvp .done{font-size:17px}.sheet-body .rb-contacts{gap:20px}.sheet-body .rb-contacts article:last-child{border:0;padding-bottom:0}
.sheet-body .rb-loc-card{padding:0;border-radius:14px;overflow:hidden}.sheet-body .rb-loc-text{padding:20px 6px 0}.sheet-body .rb-loc-actions{justify-content:center;gap:10px;margin-top:20px}
.guest-map{border:0;width:100%;height:200px;display:block;border-radius:14px;margin-bottom:20px}.sheet-body .account{max-width:none}
.guest-sheet-open .cinema-visible>.cinema-decor img,.guest-sheet-open .cinema-pattern svg,.guest-sheet-open .rb-sway,.guest-sheet-open .rb-petal{animation-play-state:paused!important}
.guest-gallery{position:relative}.guest-gallery .gallery{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;scroll-behavior:smooth}
.guest-gallery .gallery::-webkit-scrollbar{display:none}.guest-gallery .gallery button,.guest-gallery .gallery button:first-child,.guest-gallery .gallery button:nth-child(even):last-child{flex:0 0 100%;grid-column:auto;scroll-snap-align:start;border-radius:16px;overflow:hidden}
.guest-gallery .gallery button img,.guest-gallery .gallery button:first-child img,.guest-gallery .gallery button:nth-child(even):last-child img{aspect-ratio:1;width:100%;height:auto;object-fit:cover}
.guest-gallery-arrow{position:absolute;top:calc(50% - 34px);z-index:2;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--ink);font:300 28px/1 var(--font-ui);box-shadow:0 2px 12px #0001;cursor:pointer}
.guest-gallery-arrow[data-gallery-step="-1"]{left:-16px}.guest-gallery-arrow[data-gallery-step="1"]{right:-16px}.guest-gallery-arrow:disabled{opacity:.3;cursor:default}
.guest-gallery-dots{display:flex;justify-content:center;gap:0;margin-top:10px}.guest-gallery-dots button{width:28px;height:28px;border:0;padding:10px;background:none;cursor:pointer}.guest-gallery-dots button:after{content:"";display:block;width:7px;height:7px;border-radius:50%;background:var(--ink);opacity:.2}.guest-gallery-dots button[aria-pressed=true]:after{opacity:.75}
.theme-royal .card>section.rb-section{padding-top:40px;padding-bottom:12px}.theme-royal .card>.rb-closing,.theme-royal .card>.cinema-scene[data-cinema-scene=closing]{min-height:360px}.theme-royal .rb-closing-copy{padding:44px 28px 110px}.theme-royal .rb-closing-art .rb-bloom{width:45%}
@media(max-width:370px){.sheet-head{padding:17px 20px}.sheet-head h2{font-size:25px}.sheet-body>section,.theme-royal .sheet-body>section.rb-section{padding:22px 20px}.cinematic-invitation .dock button{font-size:9px}.cinematic-invitation .dock{padding-inline:4px}}
@media(hover:hover){.dock button:hover{background:var(--surface,color-mix(in srgb,var(--bg) 90%,var(--ink)))}.sheet-close:hover{border-color:var(--accent-ink)}}
@keyframes guest-sheet-in{from{transform:translateY(70px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes guest-sheet-out{to{transform:translateY(55px);opacity:0}}@keyframes guest-backdrop-in{from{opacity:0}to{opacity:1}}@keyframes guest-backdrop-out{to{opacity:0}}
@media(prefers-reduced-motion:reduce){.invitation-sheet[open],.invitation-sheet.is-closing,.invitation-sheet::backdrop,.invitation-sheet.is-closing::backdrop{animation:none}.guest-gallery .gallery{scroll-behavior:auto}}
