body{overflow:hidden;background:#ddbc9b}
main{position:fixed;inset:0;width:auto;display:grid;place-items:center;isolation:isolate;background:#ddbc9b}
main::before{content:"";position:absolute;inset:-20px;z-index:-1;background:center/cover url(room-settled.png);filter:blur(18px);opacity:.75}
.stage{width:min(100vw,177.7778svh);height:min(100svh,56.25vw);aspect-ratio:16/9}
header,footer{position:absolute;left:0;right:0;z-index:2;padding:14px clamp(12px,2vw,36px);pointer-events:none}
header{top:0;justify-content:flex-end}
header h1{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
footer{bottom:0;justify-content:center;gap:8px}
footer .objects{position:absolute;left:50%;bottom:100%;width:max-content;max-width:96vw;transform:translateX(-50%);background:#fff5e9;border-radius:20px;opacity:0;pointer-events:none}
footer:focus-within .objects,.objects:focus-within{opacity:1;pointer-events:auto}
header a,footer .replay,.sound-start,#hint:not(:empty){background:#fff5e9;color:#773624;border-radius:30px;padding:8px 14px}
header a,footer button{pointer-events:auto}
.objects button{pointer-events:none}
footer:focus-within .objects button{pointer-events:auto}
.sound-start{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;min-height:44px}
.teapot.active{transform:scale(1.065);filter:drop-shadow(0 2px 3px #54280e38)}
.room-arrival { z-index: 3; }
.snowball-action { z-index: 1; object-fit: fill; pointer-events: none; }
.scene-effects { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }
.object-tip {
  position: absolute;
  z-index: 3;
  transform: translate(-50%, -100%);
  padding: 6px 11px;
  border: 1px solid #ba8361;
  border-radius: 20px;
  background: #fff5e9;
  color: #773624;
  font-size: clamp(11px, 1.4vw, 14px);
  line-height: 1.25;
  white-space: nowrap;
  pointer-events: none;
}
.gesture-theater[open] {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}
.gesture-content iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
