260 lines
6.9 KiB
CSS
260 lines
6.9 KiB
CSS
/* === Schriftart Bratonien 2025 === */
|
||
@font-face {
|
||
font-family: "Bratonien2025";
|
||
src: url("../../shared/fonts/PinyonScript-Regular.ttf") format("truetype");
|
||
font-weight: 400;
|
||
font-style: normal;
|
||
font-display: swap;
|
||
}
|
||
|
||
/* === Grundlayout der Türchen === */
|
||
.door {
|
||
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;
|
||
}
|
||
|
||
/* === Hover (Glitzer/Glow) === */
|
||
.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);
|
||
}
|
||
|
||
/* === Scharniere === */
|
||
.door.hinge-left { transform-origin: left center; }
|
||
.door.hinge-right { transform-origin: right center; }
|
||
.door.double { transform-origin: center; }
|
||
|
||
/* === Tür öffnen (Scharnierseitig) === */
|
||
.door.open.hinge-left {
|
||
--door-rotation: -115deg;
|
||
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.hinge-right {
|
||
--door-rotation: 115deg;
|
||
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);
|
||
}
|
||
|
||
/* === Hover über geöffnete Tür: bleibt offen, leuchtet nur === */
|
||
.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);
|
||
}
|
||
|
||
/* === Doppeltüren (6 & 24) === */
|
||
.door.double {
|
||
justify-content: center;
|
||
align-items: center;
|
||
background:
|
||
linear-gradient(
|
||
90deg,
|
||
transparent 49.5%,
|
||
color-mix(in srgb, var(--ci-gold) 80%, transparent) 50%,
|
||
transparent 50.5%
|
||
),
|
||
linear-gradient(
|
||
180deg,
|
||
color-mix(in srgb, var(--ci-darkgreen) 35%, transparent),
|
||
color-mix(in srgb, var(--ci-blue) 35%, transparent)
|
||
);
|
||
}
|
||
|
||
.door.double:hover,
|
||
.door.double.hover-proxy {
|
||
transform: scale(1.05);
|
||
background:
|
||
linear-gradient(
|
||
90deg,
|
||
transparent 49.5%,
|
||
color-mix(in srgb, var(--ci-gold) 80%, transparent) 50%,
|
||
transparent 50.5%
|
||
),
|
||
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.double.open {
|
||
transform: rotateY(-8deg);
|
||
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.double.open:hover,
|
||
.door.double.open.hover-proxy {
|
||
transform: rotateY(-8deg) 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);
|
||
}
|
||
|
||
/* Ergänzung: echtes Öffnen der doppeltüren 6 & 24 mit Pseudo-Flügeln */
|
||
.door.double::before,
|
||
.door.double::after {
|
||
content: "";
|
||
position: absolute;
|
||
top: 0;
|
||
height: 100%;
|
||
width: 50%;
|
||
border-radius: 12px;
|
||
background:
|
||
linear-gradient(
|
||
180deg,
|
||
color-mix(in srgb, var(--ci-darkgreen) 35%, transparent),
|
||
color-mix(in srgb, var(--ci-blue) 35%, transparent)
|
||
);
|
||
box-shadow:
|
||
inset 0 0 6px rgba(255,255,255,0.18),
|
||
0 0 8px rgba(0,0,0,0.3);
|
||
transition: transform 0.8s ease;
|
||
transform-style: preserve-3d;
|
||
backface-visibility: hidden;
|
||
}
|
||
|
||
.door.double::before { left: 0; transform-origin: left center; }
|
||
.door.double::after { right: 0; transform-origin: right center; }
|
||
|
||
/* beide Flügel öffnen sich symmetrisch */
|
||
.door.double.open::before { transform: rotateY(-115deg); }
|
||
.door.double.open::after { transform: rotateY(115deg); }
|
||
|
||
/* Hover bei geöffneter Doppeltür – bleibt offen, bekommt Glow */
|
||
.door.double.open:hover::before,
|
||
.door.double.open:hover::after {
|
||
transform: scale(1.05) rotateY(var(--fluegel,0));
|
||
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.double.open::before { --fluegel:-115deg; }
|
||
.door.double.open::after { --fluegel:115deg; }
|
||
|
||
/* === Offenes Türchen – realistische Folie === */
|
||
.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;
|
||
}
|
||
|
||
/* Sichtbar, wenn Tür offen */
|
||
.door.open + .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);
|
||
}
|
||
|
||
/* Hover über offene Felder */
|
||
.door.open + .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);
|
||
}
|
||
|
||
/* wenn die geöffnete Tür selbst gehovered wird, soll das offene Feld mitziehen */
|
||
.door.open:hover + .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);
|
||
} |