/* Returning Guest Register — isolated Foyer feature.
   Remove this stylesheet, its matching script/content file, and the small
   HTML block to remove the feature without affecting other Foyer hotspots. */
.returning-guest-register{
  position:absolute;
  z-index:9;
  right:2.5%;
  top:auto;
  bottom:22.5%;
  width:min(16rem,15.5vw);
  min-width:10.5rem;
  padding:.58rem .72rem .64rem;
  color:#e6cfaa;
  border:1px solid rgba(186,147,92,.68);
  border-radius:3px;
  background:linear-gradient(165deg,rgba(37,25,16,.94),rgba(12,8,7,.94));
  box-shadow:0 5px 18px rgba(0,0,0,.72),inset 0 0 18px rgba(133,87,38,.12);
  text-align:center;
  font-family:Georgia,serif;
  text-shadow:0 2px 7px #000;
  cursor:pointer;
  transform:rotate(-.7deg);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease;
}
.returning-guest-register::before{
  content:"";
  position:absolute;
  inset:4px;
  border:1px solid rgba(215,180,121,.19);
  pointer-events:none;
}
.returning-guest-register::after{
  content:"";
  position:absolute;
  z-index:3;
  left:50%;
  top:-13px;
  width:clamp(13px,1.15vw,18px);
  height:clamp(13px,1.15vw,18px);
  margin-left:calc(clamp(13px,1.15vw,18px) / -2);
  border:1px solid rgba(247,226,255,.96);
  border-radius:50%;
  background:radial-gradient(circle at 38% 34%,#fff 0 7%,#efc9ff 9% 22%,#c36df2 42%,#681b8c 72%,rgba(77,10,107,.25) 78%,transparent 80%);
  box-shadow:0 0 6px rgba(246,223,255,.98),0 0 15px rgba(205,105,255,.95),0 0 28px rgba(142,43,205,.76);
  pointer-events:none;
  transform-origin:center;
  animation:returningGuestMarkerPulse 1.8s ease-in-out infinite,returningGuestMarkerTurn 4.6s linear infinite;
}
.returning-guest-register:hover,.returning-guest-register:focus-visible{
  color:#f0ddb9;
  border-color:rgba(221,183,255,.88);
  box-shadow:0 0 15px rgba(179,99,226,.48),0 5px 18px rgba(0,0,0,.72),inset 0 0 18px rgba(133,87,38,.16);
  transform:rotate(0deg) scale(1.025);
  outline:none;
}
.register-kicker{display:block;margin-bottom:.22rem;color:#a99074;font-size:clamp(.53rem,.58vw,.66rem);letter-spacing:.14em;text-transform:uppercase}
.returning-guest-register strong{display:block;font:400 clamp(.72rem,.88vw,1rem)/1.18 "Rye",Georgia,serif;letter-spacing:.035em}
@keyframes returningGuestMarkerPulse{0%,100%{scale:.88;opacity:.80}50%{scale:1.14;opacity:1}}
@keyframes returningGuestMarkerTurn{from{rotate:0deg}to{rotate:360deg}}

.returning-guest-directory[hidden]{display:none}
.returning-guest-directory{position:fixed;z-index:14000;inset:0;display:grid;place-items:center;padding:clamp(5.5rem,10vh,8rem) 1.25rem clamp(5rem,10vh,7rem);background:rgba(2,1,2,.78);backdrop-filter:blur(4px)}
.returning-guest-card{position:relative;width:min(760px,94vw);max-height:calc(100svh - 11rem);overflow:auto;padding:clamp(1.45rem,3vw,2.5rem);color:#e8d8bd;border:1px solid rgba(215,178,116,.68);background:linear-gradient(155deg,#211710 0%,#100b09 62%,#090608 100%);box-shadow:0 22px 70px #000,inset 0 0 42px rgba(122,73,29,.12);font-family:Georgia,serif}
.returning-guest-card::before{content:"";position:absolute;inset:8px;border:1px solid rgba(216,183,125,.16);pointer-events:none}
.returning-guest-close{position:absolute;z-index:2;right:.8rem;top:.55rem;width:2.3rem;height:2.3rem;padding:0;color:#d8b579;border:0;background:transparent;font:400 2rem/1 Georgia,serif;cursor:pointer}
.returning-guest-close:hover,.returning-guest-close:focus-visible{color:#edccff;outline:1px solid rgba(221,183,255,.55)}
.directory-kicker{margin:0 2.7rem .4rem 0;color:#aa8c6b;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase}
.returning-guest-card h2{margin:0 2.7rem .55rem 0;color:#e8c98f;font:400 clamp(1.45rem,3vw,2.35rem)/1.1 "Rye",Georgia,serif}
.directory-intro{margin:.2rem 0 1.35rem;color:#c0aa8d;font-style:italic;line-height:1.55}
.returning-guest-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem}
.returning-guest-link{display:block;position:relative;padding:.92rem 1rem;color:#ead9ba;border:1px solid rgba(196,147,229,.30);background:rgba(21,12,23,.54);text-decoration:none;box-shadow:inset 0 0 20px rgba(160,77,203,.05);transition:border-color .18s,background .18s,box-shadow .18s,transform .18s}
.returning-guest-link:hover,.returning-guest-link:focus-visible{border-color:rgba(220,168,251,.82);background:rgba(31,15,37,.78);box-shadow:0 0 15px rgba(172,82,221,.28),inset 0 0 20px rgba(160,77,203,.09);transform:translateY(-1px);outline:none}
.returning-guest-link strong{display:block;color:#e8c98f;font-size:1rem;letter-spacing:.025em}
.returning-guest-link span{display:block;margin-top:.28rem;color:#ad9b84;font-size:.78rem;line-height:1.4}
@media(max-width:760px){.returning-guest-register{right:2%;bottom:23%;width:10.5rem;min-width:0;padding:.48rem .52rem}.returning-guest-links{grid-template-columns:1fr}.returning-guest-card{max-height:calc(100svh - 9rem)}}
@media(prefers-reduced-motion:reduce){.returning-guest-register::after{animation:none}.returning-guest-register,.returning-guest-link{transition:none}}

/* ============================================================
   TGS 15C — RETURNING GUEST DIRECTORY MOBILE FIT
   ============================================================ */
@media(max-width:760px){
  .returning-guest-directory{place-items:start center !important;align-items:start !important;padding:calc(var(--shell-height,86px) + 56px) 6px 8px !important;background:rgba(2,1,2,.96) !important;backdrop-filter:blur(8px) !important;overflow:hidden !important}
  .returning-guest-card{width:calc(100vw - 12px) !important;max-width:calc(100vw - 12px) !important;height:auto !important;max-height:calc(100svh - var(--shell-height,86px) - 70px) !important;margin:0 !important;padding:18px 14px 30px !important;overflow:auto !important;-webkit-overflow-scrolling:touch;background:linear-gradient(155deg,#211710 0%,#100b09 62%,#090608 100%) !important}
  .returning-guest-close{position:sticky !important;float:right !important;top:0 !important;margin:-8px -4px 4px 8px !important;background:#120c10 !important;border:1px solid rgba(221,183,255,.5) !important;border-radius:50% !important}
  .returning-guest-links{grid-template-columns:1fr !important}
  .returning-guest-card.has-more-below::after{content:"⌄";position:sticky;display:block;left:50%;bottom:4px;width:34px;margin:8px auto -20px;color:#d38bff;font:700 30px/1 Georgia,serif;text-align:center;text-shadow:0 0 9px #c467ef,0 0 18px #7c2ab5;pointer-events:none;animation:tgsGuestScrollCue 1.2s ease-in-out infinite}
}
@keyframes tgsGuestScrollCue{0%,100%{transform:translateY(-2px);opacity:.55}50%{transform:translateY(4px);opacity:1}}

@media(max-width:760px){
  .returning-guest-directory{place-items:start center !important;padding:calc(var(--shell-height,86px) + 36px) 6px 8px !important;background:rgba(2,1,2,.97) !important;overflow:hidden !important}
  .returning-guest-card{display:flex !important;flex-direction:column !important;width:calc(100vw - 12px) !important;max-width:calc(100vw - 12px) !important;height:calc(100svh - var(--shell-height,86px) - 52px) !important;max-height:calc(100svh - var(--shell-height,86px) - 52px) !important;overflow:hidden !important;padding:16px 14px 14px !important}
  .directory-kicker,.returning-guest-card h2,.directory-intro{flex:0 0 auto !important;position:relative !important;z-index:3 !important}
  .returning-guest-card h2{margin-top:0 !important;font-size:clamp(1.25rem,6vw,1.75rem) !important}
  .directory-intro{margin-bottom:10px !important}
  .returning-guest-links{flex:1 1 auto !important;min-height:0 !important;display:flex !important;flex-direction:column !important;gap:9px !important;overflow-y:auto !important;overflow-x:hidden !important;padding:2px 2px 34px !important;-webkit-overflow-scrolling:touch}
  .returning-guest-link{flex:0 0 auto !important;width:100% !important}
  .returning-guest-close{position:absolute !important;top:8px !important;right:8px !important;z-index:5 !important}
  .returning-guest-card::after{display:none !important}
  .returning-guest-links.has-more-below::after{content:"⌄";position:sticky;display:block;bottom:0;width:38px;margin:4px auto -27px;color:#d38bff;font:700 31px/1 Georgia,serif;text-align:center;text-shadow:0 0 9px #c467ef,0 0 18px #7c2ab5;pointer-events:none;animation:tgsGuestScrollCue15d 1.15s ease-in-out infinite}
}
@keyframes tgsGuestScrollCue15d{0%,100%{transform:translateY(-2px);opacity:.55}50%{transform:translateY(4px);opacity:1}}

/* Registry opener remains a small contextual marker rather than a large overlay. */
@media(max-width:860px){.returning-guest-register{right:2.5%!important;bottom:8%!important;width:min(9.5rem,36cqw)!important;padding:.35rem .45rem!important;font-size:.58rem!important}.returning-guest-register .register-kicker{font-size:.48rem!important}.returning-guest-card{width:min(680px,calc(100vw - 16px))!important;max-height:calc(100svh - var(--shell-height) - var(--portal-toolbar-h) - 20px)!important}.returning-guest-links{grid-template-columns:1fr!important}}

/* Registry opener: keep label compact and above its own marker without covering Foyer hotspots. */
.returning-guest-register{pointer-events:auto!important}
@media(max-width:860px){
  .returning-guest-register{
    right:2.2%!important;bottom:4.5%!important;width:min(8.6rem,32cqw)!important;
    padding:.3rem .4rem!important;line-height:1.08!important;
  }
  .returning-guest-register::after{top:auto!important;bottom:-12px!important}
  .returning-guest-register .register-kicker{font-size:.43rem!important}
  .returning-guest-register strong{font-size:.58rem!important}
}
