.campaign { overflow: hidden; }
.campaign__grid { display: grid; gap: clamp(2rem, 5vw, 5rem); align-items: center; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 990px) {
  .campaign__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
  .campaign--media-first .campaign__visual { order: -1; }
}
.countdown { display: grid; gap: 0.75rem; }
.countdown__units { display: flex; align-items: flex-start; gap: clamp(0.4rem, 1.5vw, 1rem); }
.countdown__unit { display: grid; justify-items: center; gap: 0.3rem; min-inline-size: clamp(64px, 9vw, 104px); padding: 0.9rem 0.5rem; background: var(--c-surface); box-shadow: inset 0 0 0 1px var(--c-border); }
[data-corners='chamfer'] .countdown__unit { clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
.countdown__num { font-family: var(--font-mono); font-size: clamp(2rem, 5vw, 3.6rem); font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums; color: var(--c-text); }
html[data-fx='full'] .countdown__num.is-flip { animation: cd-flip 420ms var(--ease-out); }
@keyframes cd-flip { from { transform: translateY(-30%); opacity: 0.2; } }
.countdown__unit .label { color: var(--c-muted); }
.countdown__sep { font-family: var(--font-mono); font-size: clamp(1.6rem, 4vw, 2.8rem); color: var(--c-accent); padding-block-start: 0.6rem; }
html[data-fx='full'] .countdown__sep { animation: blink 1s steps(1) infinite; }
.countdown.is-ended .countdown__units { opacity: 0.35; }
.countdown__ended { font-family: var(--font-mono); font-size: var(--small); color: var(--c-accent); }
.campaign__terms { font-size: var(--tiny); max-inline-size: 40ch; }
.campaign__visual { position: relative; }
.campaign__media { aspect-ratio: 4 / 5; }
.campaign__media, .campaign__product { transform: translate3d(calc(var(--mx, 0) * 14px), calc(var(--my, 0) * 14px), 0); }
.campaign__product { display: block; text-decoration: none; }
.campaign__product-info { position: absolute; inset-inline: 1rem; inset-block-end: 1rem; z-index: 2; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: baseline; padding: 0.75rem 1rem; background: rgb(var(--c-bg-rgb) / 0.8); backdrop-filter: blur(8px); }
.campaign__product-title { font-weight: 600; }
.campaign__ring {
  position: absolute; inset: -6%; z-index: -1; pointer-events: none; border-radius: 50%;
  background: radial-gradient(closest-side, rgb(var(--c-accent-rgb) / calc(0.35 * var(--glow))), transparent);
}
html:not(.design-mode) .shopify-section.is-expired { display: none; }
html.design-mode .shopify-section.is-expired { display: block; opacity: 0.6; }
