.space-entrance,
.space-entrance[open] {
  position:fixed;inset:0;margin:0;padding:0;border:0;border-radius:0;
  width:100%;height:100%;height:100dvh;max-width:none;max-height:none;
  background:#0b1029;color:#f7e8e1;overflow:hidden;box-shadow:none;
  animation:none;opacity:1;transform:none;
  transition:opacity .62s ease,transform .8s cubic-bezier(.22,1,.36,1);
}
.space-entrance:not([open]),
[data-entrance-seen="true"] .space-entrance {display:none;}
.space-entrance::backdrop {background:transparent;backdrop-filter:none;animation:none;}
.space-entrance.is-leaving {opacity:0;transform:scale(1.018);pointer-events:none;}
body.entrance-open {overflow:hidden;}
html:has(.space-entrance[open]):not([data-entrance-seen="true"]) {overflow:hidden;}
.entrance-frame {position:absolute;inset:0;width:100%;height:100%;border:0;display:block;opacity:0;visibility:hidden;transition:opacity .8s ease;}
.space-entrance.is-ready .entrance-frame {opacity:1;visibility:visible;}
.entrance-fallback {position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:50px max(40px,env(safe-area-inset-left));background:linear-gradient(0deg,#050a20dc,transparent 72%),#0b1029 url('/entrance/assets/moonlake-scene.png') 62% center/cover no-repeat;transition:opacity .6s ease,visibility .6s ease;}
.entrance-fallback::before {content:"";position:absolute;left:65%;top:28%;width:clamp(150px,19vw,380px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;background:radial-gradient(circle at 35% 28%,#fff4dc70,transparent 48%,#27345b30 78%,#ffe1adab),url('/entrance/assets/opal-texture.png') center/cover,linear-gradient(135deg,#ffe4c5,#b8cdea 28%,#83d7e4 55%,#dcc2e7 78%,#f8d7b5);box-shadow:inset 0 0 0 2px #ffdfb7b3,0 0 9px #ffe0b14d,0 0 65px #c9d6f233;}
.space-entrance.is-ready .entrance-fallback {opacity:0;visibility:hidden;pointer-events:none;}
.entrance-fallback-brand {font-family:var(--serif);font-size:24px;letter-spacing:4px;position:absolute;left:40px;top:28px;}
.entrance-fallback p {font-size:12px;letter-spacing:2px;color:#e7cbb9;margin-bottom:13px;}
.entrance-fallback h2 {font-family:var(--serif);font-size:clamp(25px,3vw,42px);font-weight:400;letter-spacing:3px;margin-bottom:23px;}
.entrance-fallback-enter {color:#f7e5d4;font-family:var(--sans);border:1px solid #eacdb54a;background:#141b38a6;backdrop-filter:blur(16px);}
.entrance-fallback-enter {font-size:13px;padding:13px 22px;border-radius:30px;min-height:48px;letter-spacing:2px;}
.entrance-fallback-enter:hover {background:#263457c2;border-color:#f0d6c078;transform:translateY(-1px);}
.entrance-fallback-enter:focus-visible {outline:2px solid #eac6a6;outline-offset:4px;}
.entrance-replay {font-size:9px;color:var(--muted);letter-spacing:.5px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.entrance-replay:hover {color:var(--green);}
@media(max-width:700px){
  .entrance-fallback::before {left:67%;top:26%;width:min(46vw,30vh);}
  .entrance-fallback {padding:35px 24px 70px;}
  .entrance-fallback-brand {top:24px;left:24px;font-size:22px;}
  .entrance-fallback p {font-size:11px;}
  .entrance-fallback h2 {font-size:26px;letter-spacing:1px;}
  .entrance-replay {font-size:9px;min-height:28px;}
}
@media(prefers-reduced-motion:reduce){
  .space-entrance,.space-entrance[open],.entrance-frame,.entrance-fallback {transition:none;}
  .space-entrance.is-leaving {transform:none;}
}
