/* Split-flap flip-clock countdown. Cards stay dark in the light theme — that is the airport/clock aesthetic. */ .countdown-section { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; padding: 0.4rem 0 0.2rem; } .countdown-caption { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--text-muted); } .flipclock { --w: 46px; --h: 66px; --fs: 46px; display: flex; align-items: flex-start; gap: 0.5rem; } .fc-group { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; } .fc-digits { display: flex; gap: 3px; } .fc-label { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--text-faint); } .fc-sep { font-size: calc(var(--fs) * 0.7); font-weight: 800; color: var(--text-faint); line-height: var(--h); align-self: flex-start; } /* One flip card = two static halves + two animating flip halves. */ .fc-card { position: relative; width: var(--w); height: var(--h); perspective: 320px; filter: drop-shadow(0 3px 5px rgba(15, 23, 42, 0.28)); } .fc-face { position: absolute; left: 0; right: 0; height: calc(var(--h) / 2); overflow: hidden; background: #1e2430; } .fc-face b { position: absolute; left: 0; right: 0; height: var(--h); line-height: var(--h); text-align: center; font-size: var(--fs); font-weight: 700; color: #f1f5f9; font-variant-numeric: tabular-nums; } .fc-top { top: 0; border-radius: 7px 7px 0 0; border-bottom: 1px solid rgba(0, 0, 0, 0.45); } .fc-top b { top: 0; } .fc-bottom { bottom: 0; border-radius: 0 0 7px 7px; } .fc-bottom b { bottom: 0; } .fc-flip { display: none; backface-visibility: hidden; } .fc-flip-top { top: 0; border-radius: 7px 7px 0 0; border-bottom: 1px solid rgba(0, 0, 0, 0.45); transform-origin: bottom; } .fc-flip-top b { top: 0; } .fc-flip-bottom { bottom: 0; border-radius: 0 0 7px 7px; transform-origin: top; transform: rotateX(90deg); } .fc-flip-bottom b { bottom: 0; } .fc-flipping .fc-flip { display: block; } .fc-flipping .fc-flip-top { animation: fc-top 0.28s ease-in forwards; } .fc-flipping .fc-flip-bottom { animation: fc-bottom 0.28s ease-in 0.28s forwards; } @keyframes fc-top { to { transform: rotateX(-90deg); } } @keyframes fc-bottom { from { transform: rotateX(90deg); } to { transform: rotateX(0deg); } } @media (prefers-reduced-motion: reduce) { .fc-flipping .fc-flip-top, .fc-flipping .fc-flip-bottom { animation: none; } .fc-flip { display: none !important; } } /* Ongoing / completed badge (no clock) */ .countdown-badge { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: 999px; font-weight: 700; font-size: 1rem; } .countdown-badge.ongoing { background: linear-gradient(135deg, var(--brand), var(--accent)); color: #fff; } .countdown-badge.done { background: var(--surface-2); color: var(--text-muted); border: 1px solid var(--border); } .cd-badge-icon { font-size: 1.1rem; } /* Responsive: shrink digits on narrow screens */ @media (max-width: 640px) { .flipclock { --w: 34px; --h: 50px; --fs: 34px; gap: 0.35rem; } } @media (max-width: 380px) { .flipclock { --w: 26px; --h: 40px; --fs: 26px; } }