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

226 lines
5.8 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;
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.6s ease,
box-shadow 0.3s ease,
background 0.25s ease;
transform-style: preserve-3d;
perspective: 800px;
}
/* Hover leichtes Leuchten */
.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);
}
/* === Scharnierpunkte === */
.door.hinge-left { transform-origin: left center; }
.door.hinge-right { transform-origin: right center; }
.door.double { transform-origin: center; }
/* === Öffnung nach Scharnier-Seite === */
.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);
}
.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);
}
/* === 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 {
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 {
transform: rotateY(-8deg) scale(1.05);
}
/* === Offenes Türchen realistischer Plastikfolien-Look === */
.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 ist */
.door.open + .openfield {
opacity: 1;
pointer-events: auto;
z-index: 6;
/* halbtransparente Plastikfolie mit Glanz */
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);
/* Rahmen & Tiefe */
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 identisch zu den Türen, behält Clip & Glitzer */
.door.open + .openfield:hover {
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);
}
/* --- Gemeinsames Hover-Verhalten für Tür + offenes Feld (nur passendes Paar) --- */
/* Wenn die Tür gehovered wird → zugehöriges Feld reagiert */
.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);
}
/* Wenn das offene Feld gehovered wird → genau die vorherige (geöffnete) Tür reagiert */
.openfield:hover {
z-index: 7; /* Feld nach oben bringen */
}
.openfield:hover,
.openfield:hover::before {
transform: scale(1.05);
}
.openfield:hover,
.openfield:hover + .door.open {
box-shadow:
0 0 18px color-mix(in srgb, var(--ci-gold) 50%, transparent),
inset 0 0 10px rgba(255, 255, 255, 0.25);
}