.customer-loyalty-card{position:relative;display:flex;width:100%;aspect-ratio:var(--loyalty-card-aspect);flex-direction:column;gap:var(--space-4);overflow:hidden;padding:var(--space-card-padding);border:var(--border-hairline) solid var(--loyalty-surface-hairline);border-radius:var(--r-xl);color:var(--loyalty-card-on-light);--card-edge:color-mix(in srgb,var(--loyalty-card-color),var(--ink) var(--loyalty-dark-edge-mix));background:linear-gradient(color-mix(in srgb,var(--loyalty-card-color) 96%,var(--surface)),var(--loyalty-card-color));box-shadow:inset 0 0 0 calc(var(--loyalty-surface-inner-inset) * 1px) var(--loyalty-surface-inner-highlight),var(--depth-card);font:inherit;text-align:start}.customer-loyalty-card:before{position:absolute;z-index:1;inset:0;border-radius:inherit;background-image:radial-gradient(circle,var(--loyalty-surface-grain-light) calc(var(--loyalty-surface-grain-radius) * 1px),transparent calc(var(--loyalty-surface-grain-radius) * 1px)),radial-gradient(circle,var(--loyalty-surface-grain-dark) calc(var(--loyalty-surface-grain-radius) * 1px),transparent calc(var(--loyalty-surface-grain-radius) * 1px));background-position:0 0,var(--space-8) var(--space-4);background-size:var(--space-16) var(--space-20),var(--space-24) var(--space-16);content:"";opacity:calc(var(--loyalty-surface-grain-density) * 100);pointer-events:none}.customer-loyalty-card>:not(.customer-loyalty-card__background){position:relative;z-index:1}.customer-loyalty-card__background{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;opacity:var(--loyalty-background-image-opacity)}.customer-loyalty-card[data-tone=dark]{color:var(--on-primary)}.customer-loyalty-card[data-face=back]{--card-edge:var(--line);color:var(--ink);background:var(--bg)}.customer-loyalty-card[data-face=back]:before,.customer-loyalty-card[data-variant=strip]:before{display:none}.customer-loyalty-card[data-variant=strip]{min-height:var(--loyalty-strip-height);aspect-ratio:auto;justify-content:center;padding-block:var(--space-12)}.customer-loyalty-card__strip{display:grid;min-height:0;align-items:center}.customer-loyalty-card--button{cursor:pointer;transition:transform var(--d-fast) ease,filter var(--d-fast) ease}.customer-loyalty-card--button:hover{filter:brightness(1.02)}.customer-loyalty-card--button:active{transform:translateY(var(--web-hover-lift));box-shadow:none}.customer-loyalty-card--button:focus-visible{outline:var(--border-hairline) solid var(--primary);outline-offset:var(--space-4)}.customer-loyalty-card__footer,.customer-loyalty-card__header,.customer-loyalty-card__reward{display:flex;min-width:0;align-items:center}.customer-loyalty-card__header{justify-content:space-between;gap:var(--space-12)}.customer-loyalty-card__header>div{min-width:0;flex:1}.customer-loyalty-card__header strong{display:block;overflow:hidden;max-width:100%;font-family:var(--font-heading);font-size:var(--type-body-l-size);font-weight:600;line-height:var(--type-body-l-line-height);text-overflow:ellipsis;white-space:nowrap}.customer-loyalty-card__header span{overflow:hidden;font-size:var(--type-caption-size);opacity:.8;text-overflow:ellipsis;white-space:nowrap}.customer-loyalty-card__header svg{width:var(--loyalty-logo-size);height:var(--loyalty-logo-size);flex:none;padding:var(--space-8);border:var(--border-hairline) solid color-mix(in srgb,currentColor 30%,transparent);border-radius:var(--r-md);background:color-mix(in srgb,currentColor 12%,transparent)}.customer-loyalty-card[data-tone=light] .customer-loyalty-card__header svg{border-color:var(--loyalty-surface-hairline);color:var(--on-primary);background:var(--loyalty-card-on-light)}.customer-loyalty-card__logo{width:var(--loyalty-logo-image-size);height:var(--loyalty-logo-image-size);flex:none;object-fit:contain}.customer-loyalty-card__reward{align-self:flex-start;gap:var(--space-4);max-width:100%;padding:var(--space-4) var(--space-8);border:var(--border-hairline) solid color-mix(in srgb,var(--line) 88%,var(--loyalty-card-color));border-radius:var(--r-pill);color:var(--loyalty-card-on-light);background:color-mix(in srgb,var(--surface-sunken) 88%,var(--loyalty-card-color));font-size:var(--type-caption-size)}.customer-loyalty-card__reward svg{width:var(--space-16);height:var(--space-16);flex:none}.customer-loyalty-card__reward span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-stamp-grid{display:grid;flex:1;grid-template-columns:repeat(var(--stamp-grid-columns),minmax(var(--space-24),var(--space-40)));place-content:center;gap:var(--space-8)}.customer-stamp-grid[data-multi-row=true]{gap:var(--space-4)}.customer-stamp-grid[data-multi-row=true] .customer-stamp-grid__cell{width:var(--space-32);justify-self:center}.customer-stamp-grid__cell{display:grid;aspect-ratio:1;place-items:center;border:var(--border-hairline) solid color-mix(in srgb,currentColor 28%,transparent);border-radius:var(--r-pill);background:var(--surface)}.customer-stamp-grid__cell[data-filled=true]{border-color:color-mix(in srgb,var(--ink-muted) 55%,transparent);color:var(--primary);background:var(--surface)}.customer-stamp-grid__cell[data-reward=true][data-filled=true]{border-color:var(--gold);color:var(--gold-deep);background:var(--surface)}.customer-stamp-grid__cell[data-reward=true]:not([data-filled=true]){color:var(--ink-faint)}.customer-stamp-grid__cell svg{width:55%}.customer-loyalty-card[data-transition=stamp]{animation:customer-card-stamp var(--d-celebrate) ease-out}.customer-loyalty-card[data-transition=redeem]{animation:customer-card-redeem var(--d-celebrate) ease-out}.customer-stamp-grid__cell[data-animated=true]{animation:customer-stamp-arrive var(--d-slow) ease-out}.customer-stamp-grid[data-transition=redeem]{animation:customer-card-redeemed var(--d-celebrate) ease-out}.customer-loyalty-card[data-transition=stamp][data-face=front]:after{position:absolute;z-index:2;inset:-50%;background:linear-gradient(110deg,transparent 35%,color-mix(in srgb,var(--surface) 70%,transparent) 50%,transparent 65%);content:"";pointer-events:none;transform:translateX(-55%);animation:customer-reward-shimmer var(--d-celebrate) ease-out}@keyframes customer-stamp-arrive{0%{opacity:0;transform:translateY(calc(var(--space-8) * -1)) scale(.7)}70%{transform:translateY(0) scale(1.1)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes customer-card-redeemed{0%{transform:scale(.96)}65%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes customer-card-stamp{0%{transform:scale(.99)}55%{transform:scale(1.01)}to{transform:scale(1)}}@keyframes customer-card-redeem{0%{transform:scale(.98)}60%{transform:scale(1.01)}to{transform:scale(1)}}@keyframes customer-reward-shimmer{0%{transform:translateX(-55%)}to{transform:translateX(55%)}}.customer-loyalty-card__footer{gap:var(--space-8);font-size:var(--type-caption-size)}.customer-loyalty-card__progress{display:inline-flex;align-items:center;gap:var(--space-4);font-variant-numeric:tabular-nums;font-weight:600}.customer-loyalty-card__progress[data-reward-ready=true]{padding:var(--space-4) var(--space-8);border-radius:var(--r-pill);color:var(--gold-deep);background:var(--gold);white-space:nowrap}.customer-loyalty-card__progress svg{width:var(--space-16);height:var(--space-16)}.customer-loyalty-card__one-away{padding:var(--space-4) var(--space-8);border-radius:var(--r-pill);color:var(--gold-deep);background:var(--gold-soft)}.customer-loyalty-card__flip{display:inline-flex;align-items:center;gap:var(--space-4);margin-inline-start:auto;font-style:italic;opacity:.8}.customer-loyalty-card__flip svg{width:var(--space-16);height:var(--space-16);flex:none}.customer-loyalty-card__back{display:grid;min-height:0;flex:1;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-rows:minmax(0,1fr) auto;gap:var(--space-16)}.customer-loyalty-card__back-details{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:var(--space-4)}.customer-loyalty-card__back-details>strong{overflow:hidden;max-width:100%;font-family:var(--font-heading);font-size:var(--type-title-size);font-weight:var(--type-title-weight);line-height:var(--type-title-line-height);text-overflow:ellipsis;white-space:nowrap}.customer-loyalty-card__back-details>p{overflow:hidden;max-width:100%;margin:0;color:var(--ink-muted);font-size:var(--type-caption-size);line-height:var(--type-caption-line-height);text-overflow:ellipsis;white-space:nowrap}.customer-loyalty-card__back-details>span:not(.customer-loyalty-card__flip){padding:var(--space-4) var(--space-8);border-radius:var(--r-pill);color:var(--cyan-deep);background:var(--cyan-soft);font-size:var(--type-caption-size)}.customer-loyalty-card__back-details dl{display:grid;gap:var(--space-4);margin:auto 0 0}.customer-loyalty-card__back-details dt{position:absolute;width:1px;height:1px;overflow:hidden;padding:0;border:0;margin:-1px;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.customer-loyalty-card__back-details dd{margin:0;font-size:var(--type-body-size);font-variant-numeric:tabular-nums;font-weight:600;line-height:var(--type-body-line-height);letter-spacing:.08em;white-space:nowrap}.customer-loyalty-card__back>.customer-loyalty-card__flip{grid-column:1/-1;justify-self:end;margin-inline-start:0}.customer-loyalty-card__qr,.customer-loyalty-card__qr-unavailable{display:flex;min-width:0;min-height:0;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-4);padding:var(--space-8);border:var(--border-hairline) solid var(--line);border-radius:var(--r-lg);color:var(--ink-muted);background:var(--surface);text-align:center}.customer-loyalty-card__qr img{width:100%;max-height:100%;aspect-ratio:1;padding:var(--space-4);border-radius:var(--r-md);background:var(--surface)}.customer-loyalty-card__qr{padding:0;border:0;border-radius:var(--r-md)}.customer-loyalty-card__qr-unavailable>svg{width:var(--space-32);height:var(--space-32);color:var(--ink-faint)}.customer-loyalty-card__qr-unavailable strong{color:var(--ink);font-size:var(--type-caption-size)}.customer-loyalty-card__qr-unavailable span{font-size:var(--type-caption-size);line-height:var(--type-caption-line-height)}@media (prefers-reduced-motion:reduce){.customer-loyalty-card--button{transition:none}.customer-loyalty-card[data-transition],.customer-loyalty-card[data-transition]:after,.customer-stamp-grid[data-transition],.customer-stamp-grid__cell[data-animated=true]{animation:none}}