/* Bratonien Adventskalender 2025 - main.css */

@font-face {
  font-family: "Bratonien2025";
  src: url("../../shared/fonts/PinyonScript-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Bratonien2025 Readable";
  src: url("../../shared/fonts/CormorantGaramond-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* === Gemeinsame Basis für Türen & Flügel === */

.door,
.fluegel {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--ci-darkgreen) 35%, transparent),
    color-mix(in srgb, var(--ci-blue) 35%, transparent)
  );
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 2px solid var(--ci-gold);
  border-radius: 12px;
  box-shadow:
    0 0 10px color-mix(in srgb, var(--ci-gold) 40%, transparent),
    inset 0 0 6px rgba(255, 255, 255, 0.18);
  font-family: "Bratonien2025", cursive;
  font-size: 2.3vw;
  color: var(--ci-gold);
  text-shadow:
    0 0 3px rgba(0, 0, 0, 0.6),
    0 0 8px rgba(0, 0, 0, 0.4);
  cursor: pointer;
  transition:
    transform 0.6s ease,
    box-shadow 0.3s ease,
    background 0.25s ease;
  transform-style: preserve-3d;
  perspective: 800px;
  z-index: 5;
}

/* === Türspezifisch === */

.door {
  z-index: 5;
}

.door.hinge-left  { transform-origin: left center; }
.door.hinge-right { transform-origin: right center; }
.door.double      { transform-origin: center; }

.door:hover,
.door.hover-proxy {
  transform: scale(1.05);
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--ci-gold) 20%, var(--ci-darkgreen)),
    color-mix(in srgb, var(--ci-creamwhite) 15%, var(--ci-blue))
  );
  box-shadow:
    0 0 18px color-mix(in srgb, var(--ci-gold) 50%, transparent),
    inset 0 0 10px rgba(255, 255, 255, 0.25);
}

.door.open.hinge-left  { --door-rotation:   115deg; }
.door.open.hinge-right { --door-rotation:   -115deg; }

.door.open.hinge-left,
.door.open.hinge-right {
  transform: rotateY(var(--door-rotation));
  box-shadow:
    0 0 14px color-mix(in srgb, var(--ci-gold) 45%, transparent),
    inset 0 0 10px rgba(255, 255, 255, 0.2);
}

.door.open:hover,
.door.open.hover-proxy {
  transform: rotateY(var(--door-rotation)) scale(1.05);
  box-shadow:
    0 0 18px color-mix(in srgb, var(--ci-gold) 50%, transparent),
    inset 0 0 10px rgba(255, 255, 255, 0.25);
}

/* === Flügeltüren === */

.fluegel.left  { transform-origin: left center;  border-radius: 12px 0 0 12px; }
.fluegel.right { transform-origin: right center; border-radius: 0 12px 12px 0; }

.fluegel.left:hover,
.fluegel.hover-proxy.left {
  transform-origin: right center;
  transform: scale(1.05);
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--ci-gold) 20%, var(--ci-darkgreen)),
    color-mix(in srgb, var(--ci-creamwhite) 15%, var(--ci-blue))
  );
  box-shadow:
    0 0 18px color-mix(in srgb, var(--ci-gold) 50%, transparent),
    inset 0 0 10px rgba(255,255,255,0.25);
}

.fluegel.right:hover,
.fluegel.hover-proxy.right {
  transform-origin: left center;
  transform: scale(1.05);
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--ci-gold) 20%, var(--ci-darkgreen)),
    color-mix(in srgb, var(--ci-creamwhite) 15%, var(--ci-blue))
  );
  box-shadow:
    0 0 18px color-mix(in srgb, var(--ci-gold) 50%, transparent),
    inset 0 0 10px rgba(255,255,255,0.25);
}

.fluegel.rota.left {
  transform: rotateY(115deg);
  transform-origin: left center;
  box-shadow:
    0 0 14px color-mix(in srgb, var(--ci-gold) 45%, transparent),
    inset 0 0 10px rgba(255,255,255,0.2);
}

.fluegel.rota.right {
  transform: rotateY(-115deg);
  transform-origin: right center;
  box-shadow:
    0 0 14px color-mix(in srgb, var(--ci-gold) 45%, transparent),
    inset 0 0 10px rgba(255,255,255,0.2);
}

.fluegel.rota.left:hover,
.fluegel.rota.hover-proxy.left {
  transform: rotateY(115deg) scale(1.05);
  box-shadow:
    0 0 18px color-mix(in srgb, var(--ci-gold) 50%, transparent),
    inset 0 0 10px rgba(255,255,255,0.25);
}

.fluegel.rota.right:hover,
.fluegel.rota.hover-proxy.right {
  transform: rotateY(-115deg) scale(1.05);
  box-shadow:
    0 0 18px color-mix(in srgb, var(--ci-gold) 50%, transparent),
    inset 0 0 10px rgba(255,255,255,0.25);
}

.fluegel.rota.right:hover ~ .openfield,
.fluegel.rota.left:hover ~ .openfield,
.fluegel.rota.right.hover-proxy ~ .openfield,
.fluegel.rota.left.hover-proxy ~ .openfield {
  transform: scale(1.05);
  background:
    linear-gradient(
      130deg,
      rgba(255, 255, 255, 0.45) 0%,
      rgba(255, 255, 255, 0.15) 40%,
      rgba(0, 0, 0, 0.25) 100%
    ),
    rgba(0, 0, 0, 0.12);
  box-shadow:
    0 0 18px color-mix(in srgb, var(--ci-gold) 50%, transparent),
    inset 0 0 10px rgba(255, 255, 255, 0.25);
}

/* === Openfield === */

.openfield {
  position: absolute;
  display: block;
  border-radius: 12px;
  opacity: 0;
  pointer-events: none;
  cursor: pointer;
  z-index: 1;
  transition:
    opacity 0.3s ease,
    transform 0.25s ease,
    box-shadow 0.25s ease,
    background 0.4s ease;
}

.door.open + .openfield,
.fluegel.rota.left + .fluegel.rota.right + .openfield,
.fluegel.rota.right + .fluegel.rota.left + .openfield {
  opacity: 1;
  pointer-events: auto;
  z-index: 6;
  background:
    linear-gradient(
      130deg,
      rgba(255, 255, 255, 0.35) 0%,
      rgba(255, 255, 255, 0.15) 30%,
      rgba(255, 255, 255, 0.05) 55%,
      rgba(0, 0, 0, 0.25) 100%
    ),
    rgba(0, 0, 0, 0.12);
  backdrop-filter: blur(2px) brightness(1.08);
  -webkit-backdrop-filter: blur(2px) brightness(1.08);
  border: 2px solid color-mix(in srgb, var(--ci-gold) 85%, transparent);
  box-shadow:
    inset 0 4px 8px rgba(0, 0, 0, 0.6),
    inset 0 -3px 6px rgba(0, 0, 0, 0.5),
    0 0 10px rgba(0, 0, 0, 0.35),
    0 0 14px color-mix(in srgb, var(--ci-gold) 15%, transparent);
  transform: translateZ(-1px);
}

.door.open + .openfield:hover,
.fluegel.rota.left + .fluegel.rota.right + .openfield:hover,
.fluegel.rota.right + .fluegel.rota.left + .openfield:hover,
.openfield.hover-proxy {
  transform: scale(1.05);
  background:
    linear-gradient(
      130deg,
      rgba(255, 255, 255, 0.45) 0%,
      rgba(255, 255, 255, 0.15) 40%,
      rgba(0, 0, 0, 0.25) 100%
    ),
    rgba(0, 0, 0, 0.12);
  box-shadow:
    0 0 18px color-mix(in srgb, var(--ci-gold) 50%, transparent),
    inset 0 0 10px rgba(255, 255, 255, 0.25);
}

.door.open:hover + .openfield,
.fluegel.rota.left:hover + .fluegel.rota.right + .openfield,
.fluegel.rota.right:hover + .fluegel.rota.left + .openfield {
  transform: scale(1.05);
  background:
    linear-gradient(
      130deg,
      rgba(255, 255, 255, 0.45) 0%,
      rgba(255, 255, 255, 0.15) 40%,
      rgba(0, 0, 0, 0.25) 100%
    ),
    rgba(0, 0, 0, 0.12);
  box-shadow:
    0 0 18px color-mix(in srgb, var(--ci-gold) 50%, transparent),
    inset 0 0 10px rgba(255, 255, 255, 0.25);
}