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

227 lines
5.7 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.

@font-face {
font-family: "Bratonien2025";
src: url("../../shared/fonts/PinyonScript-Regular.ttf") format("truetype");
font-weight: 400;
font-style: normal;
font-display: swap;
}
/* === Adventskalender Türchen stabile Grundversion === */
.door {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
aspect-ratio: 1 / 1;
/* Farbverlauf in Bratonien-CI */
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;
font-weight: 400;
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.25s ease,
box-shadow 0.25s ease,
background 0.25s ease;
transform-style: preserve-3d;
perspective: 800px;
}
/* Hover nur mit leichtem Leuchten und Zoom */
.door:hover {
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 canvas {
pointer-events: none;
}
/* === Türöffnung nach Scharnier-Seite === */
/* Scharnierpunkte */
.door.hinge-left { transform-origin: left center; }
.door.hinge-right { transform-origin: right center; }
.door.double { transform-origin: center; }
/* === Geschlossener Zustand === */
.door {
transition:
transform 0.6s ease,
box-shadow 0.3s ease,
background 0.25s ease;
}
/* === Geöffneter Zustand: hinge-left → klappt nach links === */
.door.open.hinge-left {
transform: rotateY(-115deg);
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-left:hover {
transform: rotateY(-115deg) scale(1.05);
}
/* === Geöffneter Zustand: hinge-right → klappt nach rechts === */
.door.open.hinge-right {
transform: rotateY(115deg);
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:hover {
transform: rotateY(115deg) scale(1.05);
}
/* === Geöffneter Zustand: doppelte Tür (6 & 24) === */
.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 {
transform: rotateY(-8deg) scale(1.05);
}
/* === Basis für doppelflügelige Türen === */
.door.double {
display: flex;
justify-content: center;
align-items: center;
position: absolute;
overflow: hidden;
}
.door span {
position: relative;
z-index: 5; /* über den Flügeln */
}
/* === Doppeltüren (6 & 24) gleiche Optik, goldene Mittelnaht === */
.door.double {
/* identisch zu normalen Türen */
position: absolute;
display: flex;
justify-content: center;
align-items: center;
aspect-ratio: 1 / 1;
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)
);
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);
transition:
transform 0.6s ease,
box-shadow 0.3s ease,
background 0.25s ease;
transform-style: preserve-3d;
perspective: 800px;
}
/* Zahl bleibt oben sichtbar */
.door.double span {
position: relative;
z-index: 5;
}
/* Hover exakt wie bei den anderen Türen */
.door.double:hover {
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);
}
/* Öffnen mittige Bewegung, leicht nach außen geneigt */
.door.double.open {
transform-origin: center;
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);
}
/* === Unsichtbares Feld hinter geöffneter Tür === */
.openfield {
position: absolute;
/* Diese Werte werden über data-Attribute gesetzt, wenn du sie im Script positionierst */
display: block;
opacity: 0; /* unsichtbar */
pointer-events: none; /* deaktiviert solange die Tür geschlossen ist */
transition: opacity 0.3s ease;
border-radius: 12px; /* wie die Tür, damit es passt */
cursor: pointer;
z-index: 1; /* unter der Tür, aber vor dem Hintergrundbild */
}
/* Aktiviert, sobald die Nachbartür offen ist */
.door.open + .openfield {
opacity: 1;
pointer-events: auto; /* jetzt klickbar */
z-index: 6; /* über der geöffneten Tür */
}
.door.double.open:hover {
transform: rotateY(-8deg) scale(1.05);
}