/* Flip Countdown Block — bkbg-fc-* */ .bkbg-fc-app { padding: 40px 20px; text-align: center; font-family: inherit; box-sizing: border-box; } .bkbg-fc-app .bkbg-fc-title { margin: 0 0 8px; font-family: var(--bkbg-fcd-tt-font-family, inherit); font-size: var(--bkbg-fcd-tt-font-size-d, 30px); font-weight: var(--bkbg-fcd-tt-font-weight, 800); font-style: var(--bkbg-fcd-tt-font-style, normal); text-decoration: var(--bkbg-fcd-tt-text-decoration, none); text-transform: var(--bkbg-fcd-tt-text-transform, none); line-height: var(--bkbg-fcd-tt-line-height-d, 1.2); letter-spacing: var(--bkbg-fcd-tt-letter-spacing-d, normal); word-spacing: var(--bkbg-fcd-tt-word-spacing-d, normal); } .bkbg-fc-app .bkbg-fc-subtitle { margin: 0 0 32px; opacity: 0.65; font-family: var(--bkbg-fcd-ts-font-family, inherit); font-size: var(--bkbg-fcd-ts-font-size-d, 15px); font-weight: var(--bkbg-fcd-ts-font-weight, 400); font-style: var(--bkbg-fcd-ts-font-style, normal); text-decoration: var(--bkbg-fcd-ts-text-decoration, none); text-transform: var(--bkbg-fcd-ts-text-transform, none); line-height: var(--bkbg-fcd-ts-line-height-d, 1.5); letter-spacing: var(--bkbg-fcd-ts-letter-spacing-d, normal); word-spacing: var(--bkbg-fcd-ts-word-spacing-d, normal); } /* ---- Row of units ---- */ .bkbg-fc-row { display: flex; justify-content: center; align-items: flex-start; flex-wrap: wrap; gap: 16px; } /* ---- Unit (e.g. "Days") ---- */ .bkbg-fc-unit { display: flex; flex-direction: column; align-items: center; gap: 10px; } /* ---- Pair of digit cards ---- */ .bkbg-fc-pair { display: flex; gap: 4px; } /* ---- Individual flip card ---- */ .bkbg-fc-card { position: relative; width: 1ch; min-width: 52px; height: 1.2em; display: flex; flex-direction: column; align-items: center; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 1px 4px rgba(0, 0, 0, 0.25); overflow: hidden; user-select: none; } .bkbg-fc-app .bkbg-fc-card { font-family: var(--bkbg-fcd-td-font-family, inherit); font-size: var(--bkbg-fcd-td-font-size-d, 56px); } /* ---- Upper half ---- */ .bkbg-fc-upper { position: absolute; top: 0; left: 0; right: 0; height: 50%; overflow: hidden; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 2px; transform-origin: bottom center; backface-visibility: hidden; line-height: 1; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -2px; } /* ---- Lower half ---- */ .bkbg-fc-lower { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; overflow: hidden; display: flex; align-items: flex-start; justify-content: center; padding-top: 2px; transform-origin: top center; line-height: 1; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -2px; } /* ---- Hinge line (the dividing line in the middle) ---- */ .bkbg-fc-hinge { position: absolute; top: 50%; left: 0; right: 0; height: 2px; transform: translateY(-50%); z-index: 5; } /* ---- Flip animation upper (sweeps old number away) ---- */ .bkbg-fc-flap-upper { position: absolute; top: 0; left: 0; right: 0; height: 50%; overflow: hidden; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 2px; transform-origin: bottom center; backface-visibility: hidden; line-height: 1; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -2px; z-index: 10; animation: bkbg-fc-flip-upper 0.25s ease-in forwards; } @keyframes bkbg-fc-flip-upper { from { transform: rotateX(0deg); } to { transform: rotateX(-90deg); } } /* ---- Flip animation lower (sweeps new number in) ---- */ .bkbg-fc-flap-lower { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; overflow: hidden; display: flex; align-items: flex-start; justify-content: center; padding-top: 2px; transform-origin: top center; line-height: 1; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -2px; z-index: 10; transform: rotateX(90deg); animation: bkbg-fc-flip-lower 0.25s ease-out 0.25s forwards; } @keyframes bkbg-fc-flip-lower { from { transform: rotateX(90deg); } to { transform: rotateX(0deg); } } /* ---- Separator colon ---- */ .bkbg-fc-app .bkbg-fc-sep { font-size: var(--bkbg-fcd-td-font-size-d, 56px); font-weight: 900; line-height: 1; align-self: center; margin-bottom: 22px; opacity: 0.8; } /* ---- Label ---- */ .bkbg-fc-app .bkbg-fc-label { font-family: var(--bkbg-fcd-tl-font-family, inherit); font-size: var(--bkbg-fcd-tl-font-size-d, 12px); font-weight: var(--bkbg-fcd-tl-font-weight, 600); font-style: var(--bkbg-fcd-tl-font-style, normal); text-decoration: var(--bkbg-fcd-tl-text-decoration, none); text-transform: var(--bkbg-fcd-tl-text-transform, uppercase); line-height: var(--bkbg-fcd-tl-line-height-d, 1); letter-spacing: var(--bkbg-fcd-tl-letter-spacing-d, 1.5px); word-spacing: var(--bkbg-fcd-tl-word-spacing-d, normal); } /* ---- End message ---- */ .bkbg-fc-end { font-size: 24px; font-weight: 700; padding: 24px; animation: bkbg-fc-pop-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); } @keyframes bkbg-fc-pop-in { from { transform: scale(0.6); opacity: 0; } to { transform: scale(1); opacity: 1; } } /* ---- Editor wrapper ---- */ .bkbg-fc-editor-wrap { display: block; } /* ---- Typography responsive ---- */ @media (max-width: 1024px) { .bkbg-fc-app .bkbg-fc-title { font-size: var(--bkbg-fcd-tt-font-size-t, var(--bkbg-fcd-tt-font-size-d, 30px)); line-height: var(--bkbg-fcd-tt-line-height-t, var(--bkbg-fcd-tt-line-height-d, 1.2)); letter-spacing: var(--bkbg-fcd-tt-letter-spacing-t, var(--bkbg-fcd-tt-letter-spacing-d, normal)); word-spacing: var(--bkbg-fcd-tt-word-spacing-t, var(--bkbg-fcd-tt-word-spacing-d, normal)); } .bkbg-fc-app .bkbg-fc-subtitle { font-size: var(--bkbg-fcd-ts-font-size-t, var(--bkbg-fcd-ts-font-size-d, 15px)); line-height: var(--bkbg-fcd-ts-line-height-t, var(--bkbg-fcd-ts-line-height-d, 1.5)); letter-spacing: var(--bkbg-fcd-ts-letter-spacing-t, var(--bkbg-fcd-ts-letter-spacing-d, normal)); word-spacing: var(--bkbg-fcd-ts-word-spacing-t, var(--bkbg-fcd-ts-word-spacing-d, normal)); } .bkbg-fc-app .bkbg-fc-card { font-size: var(--bkbg-fcd-td-font-size-t, var(--bkbg-fcd-td-font-size-d, 56px)); } .bkbg-fc-app .bkbg-fc-sep { font-size: var(--bkbg-fcd-td-font-size-t, var(--bkbg-fcd-td-font-size-d, 56px)); } .bkbg-fc-app .bkbg-fc-label { font-size: var(--bkbg-fcd-tl-font-size-t, var(--bkbg-fcd-tl-font-size-d, 12px)); line-height: var(--bkbg-fcd-tl-line-height-t, var(--bkbg-fcd-tl-line-height-d, 1)); letter-spacing: var(--bkbg-fcd-tl-letter-spacing-t, var(--bkbg-fcd-tl-letter-spacing-d, 1.5px)); word-spacing: var(--bkbg-fcd-tl-word-spacing-t, var(--bkbg-fcd-tl-word-spacing-d, normal)); } } @media (max-width: 767px) { .bkbg-fc-app .bkbg-fc-title { font-size: var(--bkbg-fcd-tt-font-size-m, var(--bkbg-fcd-tt-font-size-t, var(--bkbg-fcd-tt-font-size-d, 30px))); line-height: var(--bkbg-fcd-tt-line-height-m, var(--bkbg-fcd-tt-line-height-t, var(--bkbg-fcd-tt-line-height-d, 1.2))); letter-spacing: var(--bkbg-fcd-tt-letter-spacing-m, var(--bkbg-fcd-tt-letter-spacing-t, var(--bkbg-fcd-tt-letter-spacing-d, normal))); word-spacing: var(--bkbg-fcd-tt-word-spacing-m, var(--bkbg-fcd-tt-word-spacing-t, var(--bkbg-fcd-tt-word-spacing-d, normal))); } .bkbg-fc-app .bkbg-fc-subtitle { font-size: var(--bkbg-fcd-ts-font-size-m, var(--bkbg-fcd-ts-font-size-t, var(--bkbg-fcd-ts-font-size-d, 15px))); line-height: var(--bkbg-fcd-ts-line-height-m, var(--bkbg-fcd-ts-line-height-t, var(--bkbg-fcd-ts-line-height-d, 1.5))); letter-spacing: var(--bkbg-fcd-ts-letter-spacing-m, var(--bkbg-fcd-ts-letter-spacing-t, var(--bkbg-fcd-ts-letter-spacing-d, normal))); word-spacing: var(--bkbg-fcd-ts-word-spacing-m, var(--bkbg-fcd-ts-word-spacing-t, var(--bkbg-fcd-ts-word-spacing-d, normal))); } .bkbg-fc-app .bkbg-fc-card { font-size: var(--bkbg-fcd-td-font-size-m, var(--bkbg-fcd-td-font-size-t, var(--bkbg-fcd-td-font-size-d, 56px))); } .bkbg-fc-app .bkbg-fc-sep { font-size: var(--bkbg-fcd-td-font-size-m, var(--bkbg-fcd-td-font-size-t, var(--bkbg-fcd-td-font-size-d, 56px))); } .bkbg-fc-app .bkbg-fc-label { font-size: var(--bkbg-fcd-tl-font-size-m, var(--bkbg-fcd-tl-font-size-t, var(--bkbg-fcd-tl-font-size-d, 12px))); line-height: var(--bkbg-fcd-tl-line-height-m, var(--bkbg-fcd-tl-line-height-t, var(--bkbg-fcd-tl-line-height-d, 1))); letter-spacing: var(--bkbg-fcd-tl-letter-spacing-m, var(--bkbg-fcd-tl-letter-spacing-t, var(--bkbg-fcd-tl-letter-spacing-d, 1.5px))); word-spacing: var(--bkbg-fcd-tl-word-spacing-m, var(--bkbg-fcd-tl-word-spacing-t, var(--bkbg-fcd-tl-word-spacing-d, normal))); } } /* ---- Responsive ---- */ @media (max-width: 500px) { .bkbg-fc-card { min-width: 38px; } .bkbg-fc-row { gap: 8px; } }