/* Invitation handoff and readable final information; approved album stays untouched. */
.finale-stage{position:absolute;inset:120px 28px calc(var(--panel-h) + 35px);z-index:2;min-height:0}
.finale-characters{width:100%;height:100%;object-fit:contain;object-position:center bottom;transform:translateY(calc(var(--release,0)*4px)) scale(calc(1 + var(--approach,0)*.035));transform-origin:center bottom}
.finale-frame{position:absolute;inset:0;opacity:calc(1 - var(--release,0));transform:translateY(calc(var(--release,0)*26px)) scale(calc(1 + var(--release,0)*.08));pointer-events:none}
.finale-frame i{position:absolute;width:20px;height:20px;border:1px solid #fff4d4}.finale-frame i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.finale-frame i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}.finale-frame i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.finale-frame i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.finale .dialogue h2{font-size:18px!important;line-height:1.5}.finale .dialogue p{font-size:15px;line-height:1.5}.finale .dialogue .finale-status{font-size:13px;color:#7b704e}
.finale-skip{width:100%;min-height:44px;padding:8px;border:0;background:transparent;color:#48674c;font-size:14px;text-decoration:underline;text-underline-offset:4px}
.invite-card .invite-line{font-size:15px}.invite-card .address{font-size:15px;line-height:1.8}.invite-card .date-block span{font-size:15px}.invite-card .invite-foot{font-size:14px}.invite-card .primary,.invite-card .secondary{font-size:15px}.copy-fallback{user-select:text;-webkit-user-select:text;overflow-wrap:anywhere;font-size:15px;line-height:1.7}.invite-card h2:focus{outline:none}
button:focus-visible,a:focus-visible{outline:3px solid #d9a843;outline-offset:3px}
@media(max-height:720px){.finale-stage{top:98px;bottom:calc(var(--panel-h) + 25px)}.finale .dialogue h2{font-size:17px!important}.finale .dialogue p{font-size:14px}.invite-card .names{margin-bottom:14px}.invite-card .invite-line{margin-bottom:16px}.invite-card .address{font-size:14px}.invite-card .venue{font-size:22px}}
@media(orientation:landscape) and (max-height:560px){.finale-stage{top:65px;left:28px;right:44%;bottom:20px}.finale .dialogue{left:auto;right:16px;bottom:20px;width:39%}.finale .scene-label{top:58px}.invite-screen{display:block}.invite-card{max-width:600px;margin:auto}.memories{max-width:600px;margin:0 auto}}
@media(prefers-reduced-motion:reduce){.finale-characters,.finale-frame{transform:none}.finale-frame{opacity:0}.finale .scene-visual{animation:none}.capturing .shutter-flash{animation:none}}

.invite-screen{padding-top:max(74px,calc(var(--topbar-h,66px) + 8px))}
@media(max-height:720px){.invite-screen{padding-top:max(62px,calc(var(--topbar-h,54px) + 8px))}}

/* The mount follows the real photo ratio; no dark letterboxing or face cropping. */
.result-stage .photo-print{height:auto;max-height:none;max-width:100%;flex:none}
.result-stage .photo-print button{flex:none;aspect-ratio:var(--photo-ratio,1);background:#fff9e8}
.result-stage .photo-print img{height:auto;width:100%;object-fit:contain}
.result-stage .photo-print figcaption{flex-wrap:wrap;flex:none}

#entry-gate{box-sizing:border-box;height:fit-content;width:min(430px,calc(100vw - 36px));max-height:calc(100dvh - 32px);margin:auto;padding:28px 22px 22px;border:3px solid #c5a065;background:#fff8e7;color:#294335;box-shadow:0 9px 0 #15382dda;overflow:auto;text-align:center;outline-offset:-10px;outline:1px solid #decb9e}
#entry-gate::backdrop{background:#102d26b8;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
#entry-gate .gate-eyebrow{margin:4px 0 16px;color:#6a8462;font-size:12px;letter-spacing:.12em;font-weight:650}
#entry-gate h1{font-family:var(--display);font-size:29px;font-weight:600;line-height:1.45;margin:0 0 14px;text-wrap:balance}
#entry-gate .gate-names{font-family:var(--display);font-size:19px;margin:0 0 23px}
#entry-gate .gate-names span{color:#b18e54;margin:0 12px}
#entry-gate .primary{display:flex;flex-direction:column;gap:3px;min-height:68px;font-size:18px}
#entry-gate .primary small{font-size:12px;color:#5f7251;font-weight:500}
#entry-gate .gate-silent{min-height:48px;background:none;border:0;color:#45684f;font-size:15px;text-decoration:underline;text-underline-offset:4px;margin-top:10px;padding:10px 20px}
#entry-gate .gate-status{font-size:12px;line-height:1.7;color:#6c8162;margin:12px 0 0}
#entry-gate .gate-retry{margin-top:12px;min-height:44px}
#entry-gate.leaving{animation:gate-leave .24s ease-in forwards}
#entry-gate.leaving::backdrop{animation:gate-reveal .24s ease-in forwards}
@keyframes gate-leave{to{opacity:0;transform:translateY(8px)}}
@keyframes gate-reveal{to{opacity:0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}}
@media(max-height:560px){#entry-gate{padding:18px 22px}#entry-gate .gate-eyebrow{margin-bottom:8px}#entry-gate h1{font-size:25px;margin-bottom:8px}#entry-gate .gate-names{margin-bottom:12px}#entry-gate .gate-status{margin-top:6px}}
@media(prefers-reduced-motion:reduce){#entry-gate.leaving,#entry-gate.leaving::backdrop{animation:none}}
