/* Demanacita v78 — landing clarity + neon/token feedback polish. */

/* The language/invite landing is only an entry point. Real HUD state starts
   inside the localized app, so never present a fake score on this screen. */
.language-gate-body .language-hud{display:none!important}

/* One large-title treatment everywhere DEMANACITA is used as the hero logo. */
.language-brand-title,
.immersive-entry-copy h1{
  cursor:default;
  transition:filter .2s ease,text-shadow .2s ease,transform .2s ease;
  animation:v78-neon-idle 10.5s linear infinite!important;
  will-change:filter,text-shadow;
}
.language-brand-title:hover,
.language-brand-title:focus-visible,
.immersive-entry-copy h1:hover,
.immersive-entry-copy h1:focus-visible{
  filter:drop-shadow(0 0 7px rgba(255,141,184,.95)) drop-shadow(0 0 18px rgba(255,77,148,.78)) drop-shadow(0 0 34px rgba(255,77,148,.38));
  text-shadow:6px 6px 0 #771d57,9px 9px 0 #310d3c,-3px -3px 0 rgba(255,220,232,.88),0 0 8px #ff8db8,0 0 22px rgba(255,77,148,.88),0 0 42px rgba(255,77,148,.55);
  transform:translateY(-1px);
  animation:v78-neon-hover 2.8s linear infinite!important;
}
@keyframes v78-neon-idle{
  0%,38%,38.8%,72%,72.8%,100%{opacity:1;filter:drop-shadow(0 0 15px rgba(255,77,148,.18))}
  38.2%{opacity:.62;filter:drop-shadow(0 0 3px rgba(255,77,148,.12))}
  38.45%{opacity:1;filter:drop-shadow(0 0 22px rgba(255,77,148,.52))}
  72.2%{opacity:.78;filter:drop-shadow(0 0 5px rgba(255,77,148,.18))}
  72.38%{opacity:1;filter:drop-shadow(0 0 24px rgba(255,77,148,.48))}
}
@keyframes v78-neon-hover{
  0%,63%,65%,100%{opacity:1}
  63.6%{opacity:.72}
  64.1%{opacity:1}
}

/* Keep the compact in-app brand alive too, but much subtler than the title. */
.brand-copy #brandName{
  transition:color .18s ease,text-shadow .18s ease,filter .18s ease;
}
.brand:hover .brand-copy #brandName,
.brand:focus-visible .brand-copy #brandName{
  color:#ffd0e1;
  text-shadow:0 0 6px rgba(255,141,184,.95),0 0 16px rgba(255,77,148,.66);
  filter:brightness(1.12);
}

/* Dice reveal: legacy cabinets stay hidden. The reveal card itself has zero
   layout height while the long visual roll is deciding, then grows in only
   when the final face/result is actually revealed. */
.arcade-dice-v77 .arcade-gate:not(.arcade-game-active):not(.arcade-extra-active):not(.arcade-tennis-active) .arcade-room{
  display:none!important;
}
.arcade-dice-panel .arcade-dice-reveal:not([hidden]){
  max-height:260px;
  overflow:hidden;
  transform-origin:50% 0;
  transition:max-height .38s cubic-bezier(.16,.84,.2,1),margin-top .3s ease,padding-top .3s ease,padding-bottom .3s ease,border-width .18s ease,opacity .22s ease,transform .38s cubic-bezier(.16,.84,.2,1),visibility .22s ease!important;
}
.arcade-dice-panel.v777-roll-active .arcade-dice-reveal:not([hidden]){
  max-height:0!important;
  margin-top:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  border-top-width:0!important;
  border-bottom-width:0!important;
  opacity:0!important;
  visibility:hidden!important;
  transform:translateY(-8px) scaleY(.92)!important;
  pointer-events:none!important;
}
.arcade-dice-panel:not(.v777-roll-active) .arcade-dice-reveal:not([hidden]){
  animation:v78-dice-result-in .38s cubic-bezier(.16,.84,.2,1) both;
}
.arcade-dice-v77 .arcade-gate.arcade-game-active,
.arcade-dice-v77 .arcade-gate.arcade-extra-active,
.arcade-dice-v77 .arcade-gate.arcade-tennis-active{
  animation:v78-game-stage-in .3s cubic-bezier(.16,.84,.2,1) both;
}
@keyframes v78-dice-result-in{
  0%{opacity:0;transform:translateY(-8px) scaleY(.96)}
  72%{opacity:1;transform:translateY(1px) scaleY(1)}
  100%{opacity:1;transform:none}
}
@keyframes v78-game-stage-in{
  0%{opacity:.2;transform:translateY(8px)}
  100%{opacity:1;transform:none}
}

/* Token win notification: compact, non-modal, but visibly feels like a reward. */
.v778-passport-toast{
  overflow:hidden;
  isolation:isolate;
  border:2px solid var(--arc-cyan,#25e6dd)!important;
  padding:13px 14px 12px!important;
  gap:6px 10px!important;
  background:
    linear-gradient(135deg,rgba(37,230,221,.055),transparent 34%),
    linear-gradient(315deg,rgba(255,77,148,.075),transparent 42%),
    linear-gradient(145deg,rgba(5,8,27,.985),rgba(17,7,32,.985))!important;
  box-shadow:4px 4px 0 rgba(5,80,88,.82),0 0 0 1px rgba(255,77,148,.16),0 0 26px rgba(37,230,221,.2),0 0 42px rgba(255,77,148,.1)!important;
}
.v778-passport-toast::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:-12%;right:-12%;top:-2px;
  height:3px;
  background:linear-gradient(90deg,transparent,var(--arc-pink,#ff4d94) 25%,#fff 50%,var(--arc-cyan,#25e6dd) 75%,transparent);
  opacity:.82;
  animation:v78-toast-scan 2.8s ease-in-out infinite;
}
.v778-passport-toast::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:repeating-linear-gradient(to bottom,transparent 0 4px,rgba(255,255,255,.018) 4px 5px);
}
.v778-passport-toast.is-visible{
  animation:v78-toast-arrive .38s cubic-bezier(.17,.88,.25,1.22) both;
}
.v778-passport-kicker{
  color:#ff8db8!important;
  letter-spacing:.09em!important;
  text-shadow:0 0 10px rgba(255,77,148,.4);
}
.v778-passport-toast>strong{
  color:#7cfff7!important;
  text-shadow:0 0 7px rgba(37,230,221,.62),0 0 18px rgba(37,230,221,.28)!important;
}
.v778-passport-toast>p{opacity:.96!important}
.v778-passport-next{
  margin-top:4px!important;
  border-color:var(--arc-pink,#ff4d94)!important;
  background:linear-gradient(180deg,#591544,#2a0a32)!important;
  color:#ffd0e1!important;
  box-shadow:2px 2px 0 #65163f,0 0 12px rgba(255,77,148,.12)!important;
  transition:transform .12s ease,filter .12s ease,box-shadow .12s ease!important;
}
.v778-passport-next:hover,.v778-passport-next:focus-visible{
  transform:translate(-1px,-1px)!important;
  filter:brightness(1.18)!important;
  box-shadow:3px 3px 0 #65163f,0 0 18px rgba(255,77,148,.34)!important;
}
.v778-passport-close{background:rgba(5,8,25,.9)!important}
@keyframes v78-toast-arrive{
  0%{opacity:0;transform:translateY(-13px) scale(.97)}
  68%{opacity:1;transform:translateY(1px) scale(1.008)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes v78-toast-scan{
  0%,100%{transform:translateX(-36%);opacity:.42}
  50%{transform:translateX(36%);opacity:.92}
}

@media(max-width:600px){
  .v778-passport-toast{padding:11px 12px 10px!important}
}
@media(prefers-reduced-motion:reduce){
  .language-brand-title,.language-brand-title:hover,.language-brand-title:focus-visible,
  .immersive-entry-copy h1,.immersive-entry-copy h1:hover,.immersive-entry-copy h1:focus-visible,
  .arcade-dice-reveal,
  .arcade-dice-v77 .arcade-gate.arcade-game-active,
  .arcade-dice-v77 .arcade-gate.arcade-extra-active,
  .arcade-dice-v77 .arcade-gate.arcade-tennis-active,
  .v778-passport-toast.is-visible,.v778-passport-toast::before{animation:none!important}
  .language-brand-title,.immersive-entry-copy h1{transition:none!important}
  .arcade-dice-panel .arcade-dice-reveal:not([hidden]){transition:none!important}
}
