dok/public/css/daily.css
2026-04-14 08:31:15 +01:00

199 lines
5.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.

/* ============================================================
public/css/daily.css
Daily Herausforderung Karten-Pfad Overlay
============================================================ */
/* ── Overlay ─────────────────────────────────────────────── */
#daily-map-overlay {
position: fixed;
inset: 0;
z-index: 10000;
background: rgba(0, 0, 0, 0.92);
display: flex;
align-items: center;
justify-content: center;
animation: dailyFadeIn 0.35s ease;
}
@keyframes dailyFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes dailyPulse { 0%, 100% { box-shadow: 0 0 14px 4px rgba(80,160,255,0.7); } 50% { box-shadow: 0 0 28px 10px rgba(80,160,255,1); } }
@keyframes dailyGlow { 0%, 100% { opacity: 1; } 50% { opacity: 0.65; } }
/* ── Map Container ───────────────────────────────────────── */
#daily-map-wrap {
position: relative;
max-width: min(95vw, 1000px);
max-height: 90vh;
border-radius: 14px;
overflow: hidden;
box-shadow: 0 0 0 2px rgba(80, 140, 255, 0.4), 0 30px 80px rgba(0, 0, 0, 0.9);
}
#daily-map-img {
display: block;
width: 100%;
height: auto;
max-height: 90vh;
object-fit: cover;
user-select: none;
pointer-events: none;
}
/* ── Close Button ────────────────────────────────────────── */
#daily-map-close {
position: absolute;
top: 12px;
right: 14px;
background: rgba(0, 0, 0, 0.7);
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 50%;
width: 34px;
height: 34px;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 16px;
cursor: pointer;
z-index: 10;
transition: background 0.2s;
}
#daily-map-close:hover { background: rgba(200, 50, 50, 0.8); }
/* ── Title Banner ────────────────────────────────────────── */
#daily-map-title {
position: absolute;
top: 14px;
left: 50%;
transform: translateX(-50%);
background: rgba(0, 0, 0, 0.72);
border: 1px solid rgba(80, 140, 255, 0.45);
border-radius: 8px;
padding: 6px 22px;
font-family: "Cinzel", serif;
font-size: 15px;
color: #a0c8ff;
letter-spacing: 3px;
white-space: nowrap;
z-index: 10;
}
/* ── Circles ─────────────────────────────────────────────── */
.daily-circle {
position: absolute;
width: 7%; /* scales with image width */
aspect-ratio: 1;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-family: "Cinzel", serif;
font-size: clamp(12px, 1.8vw, 22px);
font-weight: bold;
transform: translate(-50%, -50%);
cursor: default;
transition: transform 0.15s ease;
z-index: 5;
user-select: none;
}
/* Completed station ─ grün */
.daily-circle.done {
background: radial-gradient(circle at 40% 35%, #4ecf6a, #1a7a30);
border: 3px solid #7af09a;
color: #fff;
box-shadow: 0 0 14px rgba(78, 207, 106, 0.6);
}
.daily-circle.done::after {
content: "✓";
font-size: clamp(10px, 1.5vw, 18px);
}
/* Available station ─ blaues Pulsieren */
.daily-circle.available {
background: radial-gradient(circle at 40% 35%, #5090ff, #1a3a9a);
border: 3px solid #90c0ff;
color: #fff;
cursor: pointer;
animation: dailyPulse 2s ease-in-out infinite;
}
.daily-circle.available:hover {
transform: translate(-50%, -50%) scale(1.15);
animation: none;
box-shadow: 0 0 30px 8px rgba(80, 160, 255, 0.9);
}
/* Locked station ─ ausgegraut */
.daily-circle.locked {
background: radial-gradient(circle at 40% 35%, #2a2a3a, #141420);
border: 3px solid rgba(80, 100, 150, 0.4);
color: rgba(150, 160, 200, 0.35);
}
/* ── Progress Text ───────────────────────────────────────── */
#daily-progress-bar-wrap {
position: absolute;
bottom: 14px;
left: 50%;
transform: translateX(-50%);
width: 60%;
background: rgba(0, 0, 0, 0.72);
border: 1px solid rgba(80, 140, 255, 0.35);
border-radius: 8px;
padding: 8px 16px;
z-index: 10;
text-align: center;
font-family: "Cinzel", serif;
}
#daily-progress-text {
font-size: 12px;
color: #a0c8ff;
letter-spacing: 1px;
margin-bottom: 5px;
}
#daily-progress-track {
height: 6px;
background: rgba(80, 140, 255, 0.15);
border-radius: 3px;
overflow: hidden;
}
#daily-progress-fill {
height: 100%;
background: linear-gradient(90deg, #3060cc, #60a0ff);
border-radius: 3px;
transition: width 0.6s ease;
}
/* ── All Done ────────────────────────────────────────────── */
#daily-all-done {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.78);
border-radius: 14px;
z-index: 20;
animation: dailyFadeIn 0.4s ease;
}
#daily-all-done .done-icon { font-size: 56px; margin-bottom: 14px; }
#daily-all-done .done-title { font-family: "Cinzel", serif; font-size: 22px; color: #7af09a; letter-spacing: 4px; margin-bottom: 8px; }
#daily-all-done .done-sub { font-family: "Cinzel", serif; font-size: 12px; color: #a0c8a0; margin-bottom: 24px; }
#daily-all-done .done-btn {
background: linear-gradient(135deg, #1a4a28, #27ae60);
border: 2px solid rgba(100, 220, 100, 0.6);
border-radius: 10px;
color: #fff;
font-family: "Cinzel", serif;
font-size: 13px;
letter-spacing: 3px;
padding: 11px 32px;
cursor: pointer;
transition: 0.2s;
}
#daily-all-done .done-btn:hover { border-color: #7af09a; background: linear-gradient(135deg, #2a6a38, #37be70); }