:root{color-scheme:dark;background:#03070e;font-family:system-ui,sans-serif}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
.viewport{height:100svh;height:100dvh;width:100%;display:grid;place-items:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.scene{position:fixed;inset:0;width:100%;height:100%;overflow:hidden}
.artwork{display:block;width:100%;height:100%;object-fit:cover;object-position:center bottom;user-select:none}
.motion{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.enter{position:absolute;border:0;background:transparent;border-radius:12px;padding:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.enter:disabled{cursor:wait}
.enter:focus-visible{outline:3px solid white;outline-offset:4px;box-shadow:0 0 16px #71c7ff}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}
.choice-controls{position:absolute;bottom:0;inset-inline:0;min-height:42%;display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem 1rem max(1rem,env(safe-area-inset-bottom));text-align:center;background:linear-gradient(transparent,#03070e 12%);color:white}
.choice-controls h1{font-size:clamp(1.4rem,3vw,2rem);margin-bottom:.5rem}
.choice-controls p{font-size:1rem;margin:0 0 1rem;color:#d9e9ff}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;width:100%;max-width:760px;margin:0 auto}
.choice{position:relative;min-height:54px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#05080d;border:1px solid #efba63;border-radius:10px;padding:.75rem;font:500 1rem Georgia,serif;color:#ffdf98;box-shadow:0 0 10px #dc9e4822}
.choice.wide{grid-column:1/-1}
.scene[data-state="open"] .artwork{object-position:center bottom}
@media(min-aspect-ratio:4/5){
  .scene[data-state="open"]{overflow-y:auto;overscroll-behavior:contain}
  .scene[data-state="open"] .artwork{height:auto;min-height:100%;object-fit:cover}
}
.choice-controls{inset:auto;position:absolute;min-height:0;display:block;padding:0;background:none;text-align:initial;pointer-events:none}
.choice-grid{display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0}
.choice{position:absolute;pointer-events:auto;width:46%;height:6.7%;min-height:0;padding:0;background:transparent;border:0;border-radius:8%;box-shadow:none}
.choice.top-left{left:3.8%;top:73.65%}
.choice.top-right{left:51.9%;top:73.65%}
.choice.bottom-left{left:3.8%;top:81.25%}
.choice.bottom-right{left:51.9%;top:81.25%}
.choice.wide{left:3.8%;top:88.85%;width:92.4%;height:7.2%}
.choice:focus-visible{outline:3px solid white;outline-offset:2px;box-shadow:0 0 20px #fc70da}
.choice:active{box-shadow:inset 0 0 22px #ffcb6999}
.foyer{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;background:#06111e}
.foyer-art{display:block;width:100%;height:100%;object-fit:cover;object-position:center 20%}
.foyer-panel{position:absolute;bottom:0;inset-inline:0;padding:2rem max(1.5rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.5rem,env(safe-area-inset-left));background:transparent;text-shadow:0 2px 5px #000,0 0 14px #000;text-align:center;color:#fff}
.foyer-panel h1{margin:0 0 .65rem;font-family:Georgia,serif;font-size:clamp(1.5rem,4vw,2.25rem);font-weight:500;color:#ffdb8b}
.foyer-panel h1:focus{outline:none}
.foyer-selection{font-size:1rem;margin:0 0 1.4rem;color:#d9e9ff}
.destination-label{font-size:.875rem;margin:0 0 .45rem;color:#acbed3}
.foyer-room{font-family:Georgia,serif;font-weight:500;font-size:clamp(1.25rem,3vw,1.7rem);margin:0;color:#ffdb8b}
.foyer-focus{font-size:1rem;color:#d9e9ff;margin:.55rem 0 1.4rem}
.foyer-back{font:inherit;font-size:1rem;min-height:44px;padding:.65rem 1rem;border:1px solid #e7b35e;border-radius:6px;color:#ffe3a8;background:#06111e;cursor:pointer;touch-action:manipulation}
.foyer-back:focus-visible{outline:3px solid #fff;outline-offset:3px}
.foyer-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.65rem}
.foyer-enter{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1.2rem;border:1px solid #ffe3a8;border-radius:6px;background:#e7b35e;color:#06111e;text-shadow:none;text-decoration:none;font-weight:600;touch-action:manipulation}
.foyer-enter:focus-visible{outline:3px solid #fff;outline-offset:3px}
.foyer-join{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1rem;color:#ffe3a8;font:inherit;text-underline-offset:4px}
.foyer-join:focus-visible{outline:3px solid #fff;outline-offset:3px}
.foyer-access{font-size:.875rem;line-height:1.45;max-width:38rem;margin:.75rem auto 0;color:#fff}
@media(max-height:550px){.foyer-panel{padding:1rem}.foyer-selection{margin-bottom:.65rem}.foyer-focus{margin:.3rem 0 .65rem}}
