/* 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); }