/* Atrium stage. Character canvases stay as GPT paints them. */
#char-select.atrium-on{cursor:none}
#atrium-fx{position:fixed;inset:0;z-index:70;pointer-events:none}
#atrium-orb{
  position:fixed;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;z-index:84;pointer-events:none;opacity:0;
  background:radial-gradient(circle,#fff 0 10%,#c8f6ff 24%,rgba(126,231,255,.18) 60%,transparent 74%);
  box-shadow:0 0 24px rgba(158,231,255,.75), 0 0 70px rgba(255,196,90,.28);mix-blend-mode:screen;
}
#atrium-orb.on{opacity:1}
#atrium-orb.hot{transform:scale(1.5) rotate(12deg)}
#atrium-plate{
  position:fixed;z-index:85;pointer-events:none;opacity:0;transform:translate(-50%,-168%) scale(.94);
  min-width:168px;padding:9px 14px 10px;border-radius:18px;text-align:center;
  border:1px solid rgba(255,255,255,.22);
  background:linear-gradient(180deg,rgba(10,18,34,.82),rgba(8,12,22,.5));
  box-shadow:0 18px 46px rgba(0,0,0,.38);backdrop-filter:blur(14px);
}
#atrium-plate.on{opacity:1;transform:translate(-50%,-178%) scale(1)}
#atrium-plate b{display:block;color:#fff;font:800 14px/1 Outfit,sans-serif;letter-spacing:.16em;text-transform:uppercase}
#atrium-plate span{display:block;margin-top:4px;color:#ffe7a8;font:700 11px/1.25 Outfit,sans-serif}
#atrium-banner{
  position:fixed;left:50%;top:18%;z-index:86;pointer-events:none;opacity:0;transform:translate(-50%,8px) scale(.9);
  color:#fff8df;font:800 22px/1 Fredoka,Outfit,sans-serif;letter-spacing:.22em;text-shadow:0 8px 30px rgba(255,190,80,.45);
}
#atrium-banner.on{opacity:1;transform:translate(-50%,0) scale(1);animation:atrium-banner .7s ease}
@keyframes atrium-banner{0%{letter-spacing:.4em;filter:brightness(1.6)}100%{letter-spacing:.22em}}
.atrium-gag{
  position:fixed;z-index:83;pointer-events:none;padding:6px 10px;border-radius:14px 14px 14px 4px;
  background:#fff8e8;color:#1b1408;font:800 12px/1 Outfit,sans-serif;
  box-shadow:0 10px 24px rgba(0,0,0,.28);animation:atrium-gag 1.5s ease forwards;
}
@keyframes atrium-gag{0%{opacity:0;transform:translate(-50%,8px) scale(.8)}12%{opacity:1;transform:translate(-50%,-8px) scale(1)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-28px)}}
#char-select.atrium-on .hero-stage::before{
  width:min(920px,74vw)!important;height:min(240px,26vh)!important;top:70%!important;
  background:radial-gradient(ellipse,rgba(255,214,140,.34),rgba(126,231,255,.1) 46%,transparent 74%)!important;
  animation:atrium-floor 2.8s ease-in-out infinite;
}
@keyframes atrium-floor{50%{opacity:.5;transform:translate(-50%,-50%) scale(1.06)}}
#char-select.atrium-on #chars .char-card{
  display:flex!important;opacity:.4!important;filter:saturate(.4) brightness(.58)!important;
  width:min(150px,13vw)!important;height:min(196px,24vh)!important;z-index:3!important;pointer-events:auto!important;
  transform:translate(-50%,-50%) rotate(var(--ang,0deg)) translateY(calc(var(--rad,210px) * -1)) rotate(calc(var(--ang,0deg) * -1)) translate(var(--leanx,0px),var(--leany,0px)) scale(.9)!important;
  transition:transform .28s cubic-bezier(.16,1,.3,1), opacity .18s ease, filter .18s ease!important;
  animation:atrium-bob 3.2s ease-in-out infinite;animation-delay:var(--bob,0s);
}
@keyframes atrium-bob{50%{translate:0 -8px}}
#char-select.atrium-on #chars .char-card h3,
#char-select.atrium-on #chars .char-card .role,
#char-select.atrium-on #chars .char-card small,
#char-select.atrium-on #chars .char-card .hint{opacity:0!important}
#char-select.atrium-on #chars .char-card.selected{
  opacity:1!important;filter:none!important;z-index:8!important;
  width:min(330px,28vw)!important;height:min(370px,46vh)!important;
  transform:translate(-50%,-40%) scale(1.06)!important;
  animation:atrium-chosen 2.4s ease-in-out infinite;
}
@keyframes atrium-chosen{50%{filter:drop-shadow(0 0 18px rgba(255,220,140,.55))}}
#char-select.atrium-on #chars .char-card.selected h3{opacity:1!important}
#char-select.atrium-on #chars .char-card.is-awake:not(.selected){
  opacity:1!important;filter:saturate(1.15) brightness(1.08)!important;z-index:7!important;
  transform:translate(-50%,-50%) rotate(var(--ang,0deg)) translateY(calc(var(--rad,210px) * -1.12)) rotate(calc(var(--ang,0deg) * -1)) translate(var(--leanx,0px),var(--leany,0px)) scale(1.16)!important;
}
#char-select.atrium-on #chars .char-card.is-awake h3{opacity:1!important}
#char-select.atrium-on #chars .char-card.is-hop{animation:atrium-hop .42s cubic-bezier(.16,1,.3,1)}
@keyframes atrium-hop{40%{translate:0 -22px}70%{rotate:-4deg}100%{translate:0 0}}
#char-select.atrium-on #chars .char-card.is-wave{animation:atrium-wave .36s ease}
@keyframes atrium-wave{40%{filter:brightness(1.7) saturate(1.3)}}
@media (prefers-reduced-motion: reduce){
  #char-select.atrium-on #chars .char-card,#char-select.atrium-on .hero-stage::before,.atrium-gag{animation:none!important}
}
@media (max-width:800px){#char-select.atrium-on{cursor:auto}#atrium-orb,#atrium-fx{display:none}}


/* V81 · Atrium is the ten-character experience, but a filter-free one. */
#char-select.atrium-on #chars .char-card,
#char-select.atrium-on #chars .char-card.selected,
#char-select.atrium-on #chars .char-card.is-awake:not(.selected){
  filter:none!important;
  will-change:auto!important;
  transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s ease!important;
}
#char-select.atrium-on #chars .char-card .portrait canvas{filter:none!important}
#char-select.atrium-on #chars .char-card{animation:none!important}
#char-select.atrium-on #chars .char-card.is-hop{animation:atrium-hop .42s cubic-bezier(.16,1,.3,1)!important}
#char-select.atrium-on #chars .char-card.is-wave{animation:atrium-wave .36s ease!important}
#char-select.atrium-on .hero-stage::before{animation:none!important;filter:none!important}
#atrium-plate{backdrop-filter:none!important}
@media(prefers-reduced-motion:reduce){
 #char-select.atrium-on #chars .char-card,
 #char-select.atrium-on #chars .char-card.is-hop,
 #char-select.atrium-on #chars .char-card.is-wave{animation:none!important;transition:none!important}
}

/* V86: effects belong to the selector, never the full-screen welcome. */
body.intro-pending #atrium-fx,body.intro-playing #atrium-fx,
body.intro-pending #atrium-orb,body.intro-playing #atrium-orb,
body.intro-pending #atrium-plate,body.intro-playing #atrium-plate,
body.intro-pending #atrium-banner,body.intro-playing #atrium-banner,
body.intro-pending .atrium-gag,body.intro-playing .atrium-gag{display:none!important}
