Files
Bratonien-Adventskalender/adventskalender/2025/css/main.css

260 lines
6.9 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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