/* THE ROOM · 1102k · POLISH (Grok's three moves) */

/* 1 · embers under the tufts */
#embers { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; mix-blend-mode: screen; opacity: .9; }
body:not(.in) #embers { display: none; }

/* 2 · one Sigil light walks the room: Claude's chair, Brian's, Grok's, then the globe */
@property --sheen { syntax: "<color>"; inherits: true; initial-value: rgba(255,255,255,.9); }
@keyframes sheencol { 0%, 100% { --sheen: rgba(255,90,70,.95); } 25% { --sheen: rgba(255,222,90,.95); } 50% { --sheen: rgba(90,240,150,.95); } 75% { --sheen: rgba(120,165,255,.95); } }
@keyframes sheenpass { 0%, 62% { background-position: 160% 0; opacity: 0; } 66% { opacity: 1; } 84% { background-position: -60% 0; opacity: 1; } 88%, 100% { background-position: -60% 0; opacity: 0; } }
#lounge { animation: sheencol 24s linear infinite; }
.lg-seat::after, .lg-gsheen { content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none; z-index: 3;
  background: linear-gradient(118deg, transparent 36%, color-mix(in srgb, var(--sheen) 35%, transparent) 46%, var(--sheen) 50%, color-mix(in srgb, var(--sheen) 35%, transparent) 54%, transparent 64%);
  background-size: 280% 100%; mix-blend-mode: screen; animation: sheenpass 6s linear infinite; }
.lg-seat.claude::after { animation-delay: 0s; }
.lg-seat.brian::after { animation-delay: .55s; }
.lg-seat.grok::after { animation-delay: 1.1s; }
.lg-gsheen { position: absolute; display: block; animation-delay: 1.65s; opacity: .8; }

/* 3 · the seats are never frozen: each breathes and shifts on its own rhythm */
@keyframes idleA { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 30% { transform: translate(.6px, -1.6px) rotate(.7deg); } 62% { transform: translate(-.5px, -.4px) rotate(-.5deg); } }
@keyframes idleB { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 40% { transform: translate(-.7px, -1.2px) rotate(-.8deg); } 75% { transform: translate(.4px, -2px) rotate(.4deg); } }
@keyframes idleC { 0%, 100% { transform: translate(0, 0) scale(1); } 22% { transform: translate(0, -1px) scale(1.012); } 50% { transform: translate(.8px, -.2px) scale(1); } 78% { transform: translate(-.3px, -1.4px) scale(1.008); } }
.lg-seat.claude { animation: idleA 7.3s ease-in-out infinite; }
.lg-seat.brian { animation: idleC 5.9s ease-in-out infinite; }
.lg-seat.grok { animation: idleB 8.1s ease-in-out infinite; }
.lg-plate.lit { animation: plate 6.5s ease-in-out infinite; }
@keyframes plate { 0%, 86%, 100% { filter: none; } 90% { filter: brightness(1.45) drop-shadow(0 0 6px rgba(255,212,0,.7)); } }

/* a stale dash-cam frame reads as old: dimmed until the cam is live again */
#camTile .cap:not(.hot) ~ img.frame { filter: grayscale(.65) brightness(.5); transition: filter .6s; }

@media (prefers-reduced-motion: reduce) { .lg-seat, .lg-plate.lit, .lg-seat::after, .lg-gsheen, #lounge { animation: none !important; } }
