/* Approved ginkgo / crescent keepsake. Decorative image, accessible HTML
   title and invitation copy, real keyboard-operable entry and return controls. */
body:has(#invitation.active) .rotate-phone,body:has(#arrival.active) .rotate-phone{display:none!important}
body:has(#waiting.active) .rotate-phone{display:none!important}
#waiting{background:#f4f3eb;padding:24px;align-items:center;justify-content:center}.waiting-card{width:min(560px,100%);padding:40px 24px;text-align:center;background:#fffdf6;border:1px solid #e0e5d8;color:#61725b}.waiting-card h2{font-size:24px;line-height:1.6}#waiting-clock{font:clamp(24px,5vw,36px)/1.8 Georgia,serif;font-variant-numeric:tabular-nums}#waiting-date{font-size:12px}#waiting-preparation{text-align:left;font-size:13px;margin-top:24px}#waiting-preparation summary{cursor:pointer;min-height:44px;padding:10px}#waiting-companion textarea{width:100%;min-height:150px;font-size:12px}#waiting-companion a,#waiting-companion button{display:block;margin:12px 0}#waiting [hidden]{display:none!important}
#invitation.paper-scene,#arrival.paper-scene{min-height:100svh;background:#f4f3eb;padding:24px;align-items:center}
#invitation .invite-card{position:relative;display:block;width:min(440px,100%);margin:auto;padding:0;border:0;border-radius:0;background:#fffdf6;box-shadow:0 10px 44px #55674b0c;overflow:visible;text-align:center}
#invitation .invite-card:before,#invitation .invite-card:after{display:none}
.letter-landscape{width:100%;line-height:0}.letter-landscape img{display:block;width:100%;height:auto;aspect-ratio:2/3}
.letter-body{position:absolute;inset:0;pointer-events:none}
#invitation .invitation-schedule{position:absolute;top:78%;left:6%;width:88%;margin:0;white-space:pre-line;color:#6b4f3a;font:clamp(10px,2.7vw,13px)/1.8 system-ui,sans-serif}
#waiting-schedule{white-space:pre-line;font-size:13px;line-height:1.9}#waiting-personal-link{text-align:left;font-size:13px;margin-top:18px}#waiting-personal-link summary{min-height:44px;cursor:pointer;padding:10px}#waiting-personal textarea,#registration-link{width:100%;min-height:76px;font-size:12px}
#invitation .eyebrow,#invitation h1,#invitation .invitation-copy,#invitation .date-rule,#invitation .small-note{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#invitation .rings,.letter-footer{display:none}
#invitation .primary{position:absolute;pointer-events:auto;left:32%;bottom:3.1%;width:36%;height:8%;min-height:44px;display:block;margin:0;padding:0;border:0;border-radius:3px;background:transparent;box-shadow:none;color:transparent;font-size:16px;cursor:pointer}
#invitation .primary:hover{box-shadow:inset 0 -1px #96a78b}
#invitation .primary:focus-visible{outline:2px solid #728c76;outline-offset:2px}
#invitation .primary[hidden],#arrival [hidden]{display:none!important}
#invitation #return-wedding{left:16%;width:68%;background:#fffdf6;color:#506448;font-size:13px}
#invitation .letter-body:has(#return-wedding:not([hidden])) [data-go="arrival"]{display:none}
html[data-site-mode="joint-rehearsal"] #invitation .eyebrow{clip-path:none;position:absolute;top:12px;left:15%;width:70%;height:auto;white-space:normal;margin:0;padding:6px 8px;border:1px solid #d7dfd0;background:#fffdf5ed;font:11px/1.5 system-ui,sans-serif;letter-spacing:.08em;color:#61725b}
#arrival .arrival-card{width:min(660px,100%);padding:50px clamp(20px,5vw,52px) 30px;background:#fffdf7;border:1px solid #e0e5d8;border-radius:3px;box-shadow:0 10px 40px #55674b08}
#arrival h2{font-size:clamp(21px,4vw,27px);line-height:1.6;color:#506448}
#arrival .eyebrow{color:#87927f;font-size:10px;letter-spacing:.16em;margin-top:12px}
#arrival .name-field{max-width:440px;text-align:left}
#arrival .name-field input{border-radius:3px;border:1px solid #d6ddce;min-height:46px;background:#fffefa;max-width:100%;font-size:16px}
#arrival #invitation-person{font-size:14px;color:#61725b;margin:8px 0}
#arrival #invitation-duty{font-size:12px;color:#87927f}
#arrival #arrival-avatar-preview{border:1px solid #e4e8de;background:#f3f6ee;border-radius:3px}
#arrival #connection-status{font-size:13px}
#arrival-companion-guide{max-width:440px;margin:20px auto;padding:16px 18px;text-align:left;border:1px solid #e0e5d8;border-radius:4px;background:#f6f8f0;color:#61725b;font-size:13px;line-height:1.8}#arrival-companion-guide h3{font-size:15px;font-weight:500;margin:0 0 8px}#arrival-companion-guide ol{margin:0;padding-left:20px}#arrival-companion-guide p{font-size:12px;margin:10px 0;color:#7c8875}.companion-guide-choice{display:flex;gap:8px;align-items:flex-start;min-height:44px;padding-top:8px;cursor:pointer}.companion-guide-choice input{margin-top:6px;flex-shrink:0}.copy-machine-guide{min-height:44px;padding:10px 16px}
#manual-invitation{max-width:440px;margin:18px auto;text-align:left;font-size:12px;color:#87927f}#manual-invitation summary{cursor:pointer;padding:12px 0;min-height:44px}#manual-invitation .small-note{margin:6px 0;font-size:12px}#manual-invitation .name-field{margin:12px 0}
#arrival .primary{min-height:46px;border:1px solid #9eaf91;border-radius:3px;background:#f1f4e9;color:#506448;box-shadow:none;padding:12px 24px}
#arrival button:focus-visible{outline:2px solid #728c76;outline-offset:3px}
@media(max-width:640px){#invitation.paper-scene{padding:12px}#arrival.paper-scene{padding:12px;align-items:flex-start}}
@media(max-height:700px){#invitation.paper-scene{align-items:flex-start}}
