/* ================================================
   SPLASH SCREEN - 3D dice animation
   ================================================ */
.splash-overlay {
  position: fixed; inset: 0; z-index: 99999;
  background: var(--bg, #0b0b0c);
  display: flex; align-items: center; justify-content: center;
  opacity: 1; transition: opacity 0.8s ease;
}
.splash-overlay.fade-out { opacity: 0; pointer-events: none; }
.splash-overlay::before {
  content: ''; position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  opacity: 0.4; pointer-events: none;
}
.splash-content { display: flex; align-items: center; gap: 0; }
.splash-dice-wrap { width: 120px; height: 120px; perspective: 800px; }
.splash-dice {
  width: 100%; height: 100%; position: relative;
  transform-style: preserve-3d;
}
.splash-face {
  position: absolute; width: 120px; height: 120px;
  border: 3.5px solid var(--gold, #d4b24e); border-radius: 10px;
  background: var(--bg, #0b0b0c);
  display: flex; align-items: center; justify-content: center;
  backface-visibility: hidden;
}
.splash-dot {
  width: 24px; height: 24px;
  border-radius: 50%; background: var(--gold, #d4b24e); position: absolute;
}
.splash-dot.tl { top: 16px; left: 16px; }
.splash-dot.tr { top: 16px; right: 16px; }
.splash-dot.ml { top: 50%; left: 16px; transform: translateY(-50%); }
.splash-dot.mr { top: 50%; right: 16px; transform: translateY(-50%); }
.splash-dot.bl { bottom: 16px; left: 16px; }
.splash-dot.br { bottom: 16px; right: 16px; }
.splash-dot.ct { top: 50%; left: 50%; transform: translate(-50%, -50%); }

/* Face positions: 1-6, 2-5, 3-4 opposite */
.splash-f1 { transform: rotateY(0deg)   translateZ(60px); }
.splash-f6 { transform: rotateY(180deg) translateZ(60px); }
.splash-f3 { transform: rotateY(90deg)  translateZ(60px); }
.splash-f4 { transform: rotateY(-90deg) translateZ(60px); }
.splash-f2 { transform: rotateX(90deg)  translateZ(60px); }
.splash-f5 { transform: rotateX(-90deg) translateZ(60px); }

.splash-dice.glow .splash-f1 {
  box-shadow: 0 0 30px rgba(200, 162, 74, 0.3), inset 0 0 20px rgba(200, 162, 74, 0.05);
  transition: box-shadow 0.8s ease;
}

/* Brand text */
.splash-brand {
  display: flex; flex-direction: column; margin-left: 20px;
  opacity: 0; transform: translateX(-30px); pointer-events: none;
}
.splash-brand.reveal { animation: splashTextIn 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.splash-brand-svg {
  height: 100px;
  width: auto;
  display: block;
}
@keyframes splashTextIn {
  0%   { opacity: 0; transform: translateX(-30px); }
  100% { opacity: 1; transform: translateX(0); }
}



/* Responsive */
@media (max-width: 600px) {
  .splash-dice-wrap { width: 80px; height: 80px; }
  .splash-face { width: 80px; height: 80px; }
  .splash-f1 { transform: rotateY(0deg)   translateZ(40px); }
  .splash-f6 { transform: rotateY(180deg) translateZ(40px); }
  .splash-f3 { transform: rotateY(90deg)  translateZ(40px); }
  .splash-f4 { transform: rotateY(-90deg) translateZ(40px); }
  .splash-f2 { transform: rotateX(90deg)  translateZ(40px); }
  .splash-f5 { transform: rotateX(-90deg) translateZ(40px); }
  .splash-dot { width: 16px; height: 16px; }
  .splash-dot.tl, .splash-dot.tr { top: 10px; }
  .splash-dot.bl, .splash-dot.br { bottom: 10px; }
  .splash-dot.tl, .splash-dot.ml, .splash-dot.bl { left: 10px; }
  .splash-dot.tr, .splash-dot.mr, .splash-dot.br { right: 10px; }
  .splash-brand-svg { height: 65px; }
  .splash-brand { margin-left: 14px; }
}