:root {
  color: #fff8f3;
  background: #100a0d;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
  --muted: #bcaeb3;
  --coral: #ff654f;
  --gold: #ffc376;
  --line: rgba(255, 248, 243, 0.12);
  --radius: 28px;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: #100a0d; }
body { min-width: 320px; min-height: 100vh; margin: 0; overflow-x: hidden; background: radial-gradient(circle at 12% 15%, rgba(201, 26, 91, 0.28), transparent 30rem), radial-gradient(circle at 88% 82%, rgba(255, 126, 80, 0.2), transparent 32rem), #100a0d; }
button, a { font: inherit; }
button { cursor: pointer; }

.showcase { display: grid; width: min(100% - 40px, 1180px); min-height: 100vh; margin-inline: auto; grid-template-columns: minmax(0, 1fr) minmax(340px, 430px); align-items: center; gap: clamp(3rem, 8vw, 8rem); padding: clamp(3rem, 7vw, 6.5rem) 0; }
.story { min-width: 0; }
.brand-lockup { display: flex; align-items: center; gap: 0.9rem; color: #d7c8cd; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.brand-lockup img { width: 64px; height: 64px; border: 1px solid var(--line); border-radius: 50%; object-fit: cover; box-shadow: 0 12px 38px rgba(0,0,0,.28); }
.kicker { margin: clamp(3.5rem, 8vw, 7rem) 0 1.1rem; color: var(--coral); font-size: 0.72rem; font-weight: 900; letter-spacing: 0.2em; text-transform: uppercase; }
h1 { max-width: 9ch; margin: 0; font-size: clamp(3.5rem, 7vw, 7rem); font-weight: 650; line-height: 0.88; letter-spacing: -0.075em; }
.story__heart { display: inline-block; margin-left: .08em; color: var(--coral); font-size: .58em; line-height: 1; text-shadow: 0 10px 28px rgba(255,101,79,.22); transform: translateY(-.08em) rotate(-6deg); }
.story__copy { max-width: 56ch; margin: 2rem 0 0; color: var(--muted); font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.65; }
.principles { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 2rem; }
.principles span { padding: 0.65rem 0.85rem; border: 1px solid var(--line); border-radius: 999px; color: #e4d9dc; font-size: 0.72rem; font-weight: 750; }
.disclaimer { margin: 2.5rem 0 0; color: #806f76; font-size: 0.7rem; }

.phone-shell { position: relative; width: 100%; overflow: hidden; border: 1px solid rgba(255,255,255,.22); border-radius: 42px; background: radial-gradient(circle at 75% 8%, rgba(255,95,103,.13), transparent 17rem), #120d10; box-shadow: 0 60px 110px rgba(0,0,0,.52), 0 0 0 9px rgba(255,255,255,.035), 0 0 70px rgba(214,32,88,.18); }
.phone-shell::before { position: absolute; z-index: 0; top: 11%; right: -80px; width: 170px; height: 260px; border-radius: 50%; background: rgba(255,117,82,.13); filter: blur(48px); content: ""; }
.phone-top { display: flex; height: 34px; align-items: center; justify-content: space-between; padding: 0 24px; color: #cfc1c6; font-size: 0.62rem; font-weight: 800; }
.phone-top i { width: 80px; height: 20px; border-radius: 999px; background: #050304; }
.app { position: relative; z-index: 1; padding: 14px 18px 88px; }
.app-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 5px 2px 18px; }
.micro { display: block; color: #9b8990; font-size: 0.57rem; font-weight: 900; letter-spacing: 0.16em; text-transform: uppercase; }
.app-header h2 { margin: 0.25rem 0 0; font-size: 1.12rem; font-weight: 650; letter-spacing: -0.03em; }
.avatar { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: #fff; background: linear-gradient(145deg, #8d1748, #f25b52); font-size: 0.78rem; font-weight: 900; box-shadow: 0 8px 20px rgba(157,23,77,.3); }
.avatar:focus-visible, .identity button:focus-visible, .bottom-nav a:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }

.credit-card { position: relative; isolation: isolate; aspect-ratio: 1.586; overflow: hidden; padding: 20px; border: 1px solid rgba(255,255,255,.34); border-radius: var(--radius); background: linear-gradient(128deg, #6f0739 0%, #c31954 43%, #f45259 76%, #ff8469 112%); box-shadow: 0 34px 64px rgba(131, 6, 57, .56), 0 14px 24px rgba(255, 91, 84, .18), inset 0 1px 0 rgba(255,255,255,.52), inset 0 -1px 0 rgba(73,0,27,.28); transform: translateY(-3px); transition: border-color .22s ease, box-shadow .22s ease, filter .22s ease, transform .22s ease; }
.credit-card::before { position: absolute; z-index: -1; top: -55%; left: -15%; width: 95%; height: 85%; border-radius: 50%; background: rgba(255,255,255,.24); filter: blur(19px); content: ""; transform: rotate(-16deg); }
.credit-card::after { position: absolute; z-index: 3; inset: 0; border-radius: inherit; background: linear-gradient(122deg, rgba(255,255,255,.27), transparent 23%, transparent 63%, rgba(255,255,255,.1)); content: ""; pointer-events: none; }
.card-glow { position: absolute; z-index: -2; top: -48%; right: -12%; width: 66%; aspect-ratio: 1; border-radius: 50%; background: #ff9d7b; filter: blur(38px); opacity: .54; }
.pastry-gallery { position: absolute; z-index: -1; inset: 0; overflow: hidden; border-radius: inherit; pointer-events: none; }
.pastry { position: absolute; display: block; aspect-ratio: 1; opacity: .26; filter: drop-shadow(0 7px 11px rgba(77,0,31,.32)); }
.pastry img { display: block; width: 100%; height: 100%; object-fit: contain; }
.pastry--cookie { top: 39%; left: 32%; width: 18%; transform: rotate(-8deg); }
.pastry--cake { top: 25%; right: 1%; width: 29%; transform: rotate(2deg); }
.pastry--alfajor { bottom: -2%; left: 7%; width: 18%; transform: rotate(4deg); }
.pastry--muffin { right: 29%; bottom: -4%; width: 17%; transform: rotate(-3deg); }
.sparkle { position: absolute; width: 10px; aspect-ratio: 1; background: #fff8f3; clip-path: polygon(50% 0, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0 50%, 39% 39%); opacity: .42; filter: drop-shadow(0 0 5px rgba(255,242,220,.55)); }
.sparkle--1 { top: 17%; left: 31%; width: 8px; }
.sparkle--2 { top: 38%; left: 48%; width: 5px; opacity: .3; }
.sparkle--3 { top: 15%; right: 7%; width: 6px; }
.sparkle--4 { bottom: 20%; left: 4%; width: 5px; }
.sparkle--5 { right: 8%; bottom: 13%; width: 8px; }
.sparkle--6 { top: 47%; left: 25%; width: 4px; opacity: .28; }
.sparkle--7 { top: 29%; right: 24%; width: 4px; opacity: .32; }
.sparkle--8 { right: 43%; bottom: 7%; width: 4px; opacity: .26; }
.sparkle--9 { top: 11%; left: 45%; width: 5px; opacity: .34; }
.sparkle--10 { top: 56%; right: 4%; width: 5px; opacity: .3; }
.sparkle--11 { bottom: 27%; left: 48%; width: 7px; opacity: .36; }
.sparkle--12 { bottom: 7%; left: 24%; width: 4px; opacity: .27; }
.credit-card__head, .credit-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.mini-brand { display: flex; align-items: center; gap: 0.65rem; }
.mini-brand img { width: 46px; height: 46px; padding: 5px; border: 1px solid rgba(255,255,255,.62); border-radius: 50%; object-fit: contain; background: linear-gradient(145deg, rgba(91,6,48,.94), rgba(146,18,67,.82)); box-shadow: 0 10px 18px rgba(72,0,32,.48), 0 0 20px rgba(255,220,190,.2), inset 0 1px 0 rgba(255,255,255,.32), inset 0 -3px 7px rgba(54,0,27,.34); filter: drop-shadow(0 1px 0 rgba(255,255,255,.18)); transform: translateY(-2px); }
.mini-brand span, .tier { font-size: 0.54rem; font-weight: 900; line-height: 1.12; letter-spacing: 0.15em; }
.tier { padding: 0.48rem 0.58rem; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; background: rgba(65,4,31,.18); backdrop-filter: blur(8px); }
.credit-card__balance { margin-top: 1rem; }
.credit-card__balance > span { display: block; margin-bottom: 0.1rem; font-size: 0.65rem; font-weight: 700; opacity: .72; }
.credit-card__balance strong { font-size: clamp(3.2rem, 11vw, 4.45rem); font-weight: 690; line-height: .9; letter-spacing: -0.08em; }
.credit-card__balance b { margin-left: 0.42rem; font-size: 0.72rem; letter-spacing: 0.02em; opacity: .8; }
.credit-card__foot { position: absolute; right: 20px; bottom: 17px; left: 20px; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 0.64rem; font-weight: 800; letter-spacing: 0.12em; }

.reward, .identity, .activity { position: relative; isolation: isolate; margin-top: 18px; overflow: hidden; padding: 17px; border: 1px solid rgba(255,255,255,.15); border-radius: var(--radius); background: linear-gradient(145deg, rgba(255,255,255,.085), rgba(255,255,255,.025)); box-shadow: 0 18px 34px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.09); backdrop-filter: blur(14px); transform: translateX(7px); transition: border-color .22s ease, box-shadow .22s ease, background .22s ease, transform .22s ease; }
.reward::before, .identity::before, .activity::before { position: absolute; z-index: 2; top: 18%; bottom: 18%; left: -1px; width: 2px; border-radius: 999px; background: linear-gradient(var(--coral), var(--gold)); box-shadow: 0 0 14px rgba(255,101,79,.8); content: ""; }
.reward::after { position: absolute; z-index: -2; top: -70%; right: -18%; width: 58%; aspect-ratio: 1; border-radius: 50%; background: var(--reward-glow, rgba(255,101,79,.2)); filter: blur(24px); content: ""; pointer-events: none; }
.reward header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.reward h3, .pastry-info h3, .identity h3, .activity h3 { margin: 0.28rem 0 0; font-size: 1rem; font-weight: 650; letter-spacing: -0.025em; }
.reward header > strong { color: var(--gold); font-size: 1.2rem; }
.progress { height: 8px; margin-top: 1rem; overflow: hidden; border-radius: 999px; background: #33252b; }
.progress i { display: block; width: 80%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #d62058, #ff7958 70%, #ffc376); box-shadow: 0 0 18px rgba(255,101,79,.55); }
.reward p, .pastry-info p, .identity p, .activity p { margin: 0.65rem 0 0; color: #ab9ba1; font-size: 0.7rem; line-height: 1.45; }
.reward p b { color: #fff1e6; }

.reward--first { --reward-glow: rgba(255,101,79,.22); }
.reward--second { --reward-glow: rgba(190,78,255,.28); border-color: rgba(206,129,255,.26); background: linear-gradient(145deg, rgba(117,43,139,.24), rgba(45,24,61,.2)); transform: translateX(-4px); }
.reward--second::before { background: linear-gradient(#e18cff, #ff6da8); box-shadow: 0 0 16px rgba(218,101,255,.72); }
.reward--second header > strong { color: #e6a7ff; }
.reward--second .progress { background: #30203a; }
.reward--second .progress i { width: 16%; background: linear-gradient(90deg, #9c48d8, #dd68d8 65%, #ff8fb7); box-shadow: 0 0 18px rgba(209,91,237,.48); }
.reward--grand { --reward-glow: rgba(255,191,85,.32); padding-block: 20px; border-color: rgba(255,207,124,.34); background: linear-gradient(135deg, rgba(88,45,15,.3), rgba(49,25,54,.3) 48%, rgba(77,23,53,.22)); box-shadow: 0 24px 46px rgba(0,0,0,.38), 0 0 28px rgba(255,181,81,.08), inset 0 1px 0 rgba(255,229,175,.16); transform: translateX(5px); }
.reward--grand::before { width: 3px; background: linear-gradient(#fff0b9, #ffb553 55%, #ff6b5f); box-shadow: 0 0 20px rgba(255,190,91,.9); }
.reward--grand header > strong { color: #ffd78c; text-shadow: 0 0 16px rgba(255,190,91,.38); }
.reward--grand .micro { color: #d7b785; }
.reward--grand .progress { background: #38291f; }
.reward--grand .progress i { width: 8%; min-width: 8px; background: linear-gradient(90deg, #ff8a59, #ffd47d); box-shadow: 0 0 20px rgba(255,192,86,.6); }
.reward__sparkles { position: absolute; z-index: -1; inset: 0; pointer-events: none; }
.reward__sparkles i { position: absolute; width: 6px; aspect-ratio: 1; background: #fff4df; clip-path: polygon(50% 0, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0 50%, 39% 39%); opacity: .26; filter: drop-shadow(0 0 5px currentColor); }
.reward__sparkles i:nth-child(1) { top: 17%; right: 17%; }
.reward__sparkles i:nth-child(2) { top: 34%; right: 6%; width: 4px; opacity: .2; }
.reward__sparkles i:nth-child(3) { right: 28%; bottom: 15%; width: 4px; }
.reward__sparkles i:nth-child(4) { top: 12%; right: 42%; width: 5px; opacity: .3; }
.reward__sparkles i:nth-child(5) { right: 9%; bottom: 23%; width: 8px; opacity: .35; }
.reward__sparkles i:nth-child(6) { top: 48%; right: 37%; width: 3px; opacity: .22; }
.reward__sparkles i:nth-child(7) { top: 22%; right: 3%; width: 3px; opacity: .24; }

.pastry-info { position: relative; display: grid; grid-template-columns: 42px 1fr 24px; align-items: center; gap: 0.8rem; margin-top: 18px; overflow: hidden; padding: 16px; border: 1px solid rgba(255,255,255,.34); border-radius: var(--radius); color: #271016; background: linear-gradient(125deg, #ffd089, #ff9a75 58%, #ff6e66); box-shadow: 0 24px 42px rgba(255,79,77,.22), inset 0 1px 0 rgba(255,255,255,.48); text-decoration: none; transform: translateX(-7px) translateY(-1px); transition: border-color .22s ease, box-shadow .22s ease, filter .22s ease, transform .22s ease; }
.pastry-info::after { position: absolute; top: -35%; right: -18%; width: 70%; height: 88%; border-radius: 50%; background: rgba(255,255,255,.28); filter: blur(18px); content: ""; transform: rotate(-16deg); }
.pastry-info__icon { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(39,16,22,.22); border-radius: 50%; background: rgba(255,255,255,.2); font-size: 1.2rem; }
.pastry-info .micro { color: rgba(39,16,22,.65); }
.pastry-info h3 { color: #271016; }
.pastry-info p { color: rgba(39,16,22,.72); }
.arrow { position: relative; z-index: 1; font-size: 1.15rem; font-weight: 800; }

.identity { display: grid; grid-template-columns: 1fr 92px; align-items: center; gap: 1rem; }
.identity button { margin-top: 0.85rem; padding: 0; border: 0; border-bottom: 1px solid #ff8262; color: #ff9a76; background: transparent; font-size: 0.67rem; font-weight: 850; }
.activity__head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.activity__head > span { color: #ff9a76; font-size: .66rem; font-weight: 850; }
.activity__intro { margin-bottom: .75rem !important; }
.activity__list { margin: 0; padding: 0; list-style: none; }
.activity__list li { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: .7rem; padding: .72rem 0; border-top: 1px solid rgba(255,255,255,.1); }
.activity__list time { color: #8f7d84; font-size: .57rem; font-weight: 900; letter-spacing: .09em; }
.activity__list strong, .activity__list small { display: block; }
.activity__list strong { font-size: .72rem; }
.activity__list small { margin-top: .18rem; color: #8f7d84; font-size: .61rem; }
.activity__points { font-size: .76rem; }
.activity__points--earned { color: #ff9a76; }
.activity__points--redeemed { color: #d8b67a; }
.credit-card:focus, .reward:focus, .pastry-info:focus, .identity:focus, .activity:focus { outline: none; }
.credit-card:focus, .credit-card:active { border-color: rgba(255,241,215,.88); box-shadow: 0 42px 76px rgba(154,8,67,.66), 0 0 0 2px rgba(255,218,174,.3), 0 0 30px rgba(255,113,91,.36), inset 0 1px 0 rgba(255,255,255,.68); filter: saturate(1.08) brightness(1.06); transform: translateY(-9px) scale(1.012); }
.reward:focus, .identity:focus, .activity:focus, .reward:focus-within, .identity:focus-within, .activity:focus-within, .reward:active, .identity:active, .activity:active { border-color: rgba(255,151,113,.62); background: linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.04)); box-shadow: 0 27px 48px rgba(0,0,0,.42), 0 0 0 1px rgba(255,113,91,.18), 0 0 24px rgba(255,90,82,.16), inset 0 1px 0 rgba(255,255,255,.16); transform: translate(7px,-6px); }
.pastry-info:focus, .pastry-info:focus-within, .pastry-info:active { outline: none; border-color: rgba(255,255,255,.82); box-shadow: 0 34px 58px rgba(255,79,77,.38), 0 0 0 2px rgba(255,221,175,.24), inset 0 1px 0 rgba(255,255,255,.72); filter: brightness(1.06); transform: translate(-7px,-7px) scale(1.006); }

@media (hover: hover) {
  .credit-card:hover { border-color: rgba(255,241,215,.74); box-shadow: 0 42px 76px rgba(154,8,67,.62), 0 0 28px rgba(255,113,91,.3), inset 0 1px 0 rgba(255,255,255,.66); filter: saturate(1.06) brightness(1.04); transform: translateY(-8px) scale(1.009); }
  .reward:hover, .identity:hover, .activity:hover { border-color: rgba(255,151,113,.56); box-shadow: 0 27px 48px rgba(0,0,0,.4), 0 0 22px rgba(255,90,82,.14), inset 0 1px 0 rgba(255,255,255,.14); transform: translate(7px,-5px); }
  .pastry-info:hover { border-color: rgba(255,255,255,.72); box-shadow: 0 32px 56px rgba(255,79,77,.34), inset 0 1px 0 rgba(255,255,255,.68); filter: brightness(1.05); transform: translate(-7px,-6px) scale(1.004); }
}
.qr { display: grid; width: 92px; height: 92px; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 8px; border-radius: 17px; background: #fff8f3; box-shadow: 0 12px 28px rgba(0,0,0,.25); transform: rotate(2deg); }
.qr i { border-radius: 3px; background: #271018; }
.qr i:nth-child(2), .qr i:nth-child(4), .qr i:nth-child(8) { background: transparent; box-shadow: inset 0 0 0 3px #271018; }
.qr i:nth-child(5) { background: #f15652; }

.bottom-nav { position: absolute; right: 18px; bottom: 14px; left: 18px; display: grid; grid-template-columns: repeat(2, 1fr); padding: 8px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(38,23,30,.82); box-shadow: 0 22px 42px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.08); backdrop-filter: blur(18px); }
.bottom-nav a { display: flex; align-items: center; justify-content: center; gap: 0.45rem; padding: 0.65rem; border-radius: 999px; color: #8f7d84; text-decoration: none; font-size: 0.65rem; font-weight: 800; }
.bottom-nav a.active { color: #fff8f3; background: linear-gradient(110deg, #851443, #d93b54); box-shadow: 0 8px 20px rgba(157,23,77,.25); }
.bottom-nav i { font-size: 0.9rem; font-style: normal; }

@media (max-width: 850px) {
  .showcase { grid-template-columns: 1fr; width: min(100% - 28px, 500px); gap: 3.5rem; padding-top: 3rem; }
  .story { text-align: center; }
  .brand-lockup, .principles { justify-content: center; }
  .kicker { margin-top: 3rem; }
  h1, .story__copy { margin-inline: auto; }
  .phone-shell { width: min(100%, 430px); margin-inline: auto; }
}

@media (max-width: 390px) {
  .showcase { width: 100%; padding: 0; }
  .story { padding: 3rem 18px 0; }
  .story h1 { font-size: 3.35rem; }
  .phone-shell { border-right: 0; border-left: 0; border-radius: 38px 38px 0 0; }
  .app { padding-inline: 14px; }
  .credit-card { padding: 17px; }
  .credit-card__foot { right: 17px; bottom: 15px; left: 17px; }
  .tier { font-size: 0.48rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
