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

204 lines
5.3 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;
}
/* === Adventskalender-Türchen Grundlayout === */
.door {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
aspect-ratio: 1 / 1;
/* Farbverlauf im Bratonien-Stil */
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-Effekt (Glitzer etc.) === */
.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; }
/* === Öffnen nach 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-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-left:hover,
.door.open.hinge-right:hover {
transform: scale(1.05) rotateY(var(--open-rotate));
}
/* === 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 {
transform: rotateY(-8deg) scale(1.05);
}
/* === 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 geöffnet */
.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 / Proxy-Hover für 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);
}
/* Hover-Sync durch JS: löst echten Hover-Stil aus */
.door.hover-proxy,
.door.open: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);
}