html, body { margin: 0; min-height: 100%; height: 100%; }
body { font-family: 'Inter', sans-serif; background: #FAF6F0; }
.stage-orb { position: absolute; border-radius: 9999px; pointer-events: none; }
.attendee-scroll {
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  scrollbar-gutter: stable;
  overscroll-behavior: contain;
}
.attendee-scroll::-webkit-scrollbar { display: none; }
.font-serif { font-family: 'Cormorant Garamond', serif; }
@keyframes pulse-ring { 0%{transform:scale(1);opacity:0.6} 100%{transform:scale(2.2);opacity:0} }
@keyframes dot-blink { 0%,100%{opacity:1} 50%{opacity:0.3} }
.pulse-ring { animation: pulse-ring 2s cubic-bezier(0,0,0.2,1) infinite; }
.pulse-ring-delay { animation: pulse-ring 2s cubic-bezier(0,0,0.2,1) 0.6s infinite; }
.animate-dot-blink { animation: dot-blink 1.5s ease-in-out infinite; }
.attendee-tab-btn { transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease; }
.attendee-tab-btn.active {
  background: #2C1A12;
  color: #FAF6F0;
  box-shadow: 0 10px 22px rgba(44, 26, 18, 0.16);
  transform: translateY(-1px);
}
.attendee-tab-btn.active .attendee-tab-icon,
.attendee-tab-btn.active .attendee-tab-label { color: #FAF6F0; }
.floating-panel-enter { animation: floating-panel-enter 0.2s ease-out; }
@keyframes floating-panel-enter {
  from { opacity: 0; transform: translateY(8px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #FAF6F0; }
::-webkit-scrollbar-thumb { background: rgba(201,168,76,0.4); border-radius: 3px; }
@keyframes fade-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in { animation: fade-in 0.25s ease; }

details > summary { list-style: none; }
details summary::-webkit-details-marker { display: none; }
.phone-stage {
  min-height: 100dvh;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  position: relative;
}
.phone-frame {
  width: min(300px, 92vw, 44vh);
  aspect-ratio: 1 / 2;
}

/* Dock-style hover pop on bottom tabs */
.attendee-tab-btn:hover { transform: translateY(-3px) scale(1.08); }
@media (prefers-reduced-motion: reduce) { .attendee-tab-btn:hover { transform: none; } }

/* Embed mode (?embed=1): hide standalone chrome when iframed into index */
body.embed .stage-back,
body.embed .stage-caption,
body.embed .stage-orb { display: none; }
body.embed .phone-stage { padding: 8px; }
