:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:#e2e8f0;background:#0f172a}*{box-sizing:border-box}body{min-width:320px;margin:0;background:#0f172a;color:#e2e8f0}header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem max(1rem,calc((100% - 980px)/2));border-bottom:1px solid #ffffff12;background:#0f172a}header a{color:#fff;text-decoration:none;font-weight:750}header nav{display:flex;gap:.9rem;flex-wrap:wrap}header nav a{font-size:.9rem;font-weight:550;color:#cbd5e1}.container{max-width:760px;margin:2rem auto 3rem;padding:0 1rem}h1{margin:.25rem 0 1.4rem;font-size:clamp(1.55rem,5vw,2.2rem);letter-spacing:-.04em}h2{margin:.2rem 0}.card{margin-bottom:1.25rem;padding:1.5rem;border:1px solid #ffffff12;border-radius:18px;background:#1e293b;box-shadow:0 12px 30px #0000002e}.registration-card{max-width:540px}.form-stack{display:grid;gap:1rem;max-width:420px}label{display:grid;gap:.35rem;font-weight:650}.consent{display:block;font-size:.9rem;font-weight:400;line-height:1.45}.consent input{width:auto;margin-right:.45rem}input,button{font:inherit;padding:.72rem .8rem;border:1px solid #64748b;border-radius:10px}input{color:#f8fafc;background:#0f172a}button{border:0;background:#ec4899;color:#fff;cursor:pointer;font-weight:750;transition:transform .15s,box-shadow .15s}button:hover{box-shadow:0 5px 13px #ec48994d;transform:translateY(-1px)}.eyebrow{margin:0 0 .35rem;color:#f472b6;font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.progress{height:.65rem;overflow:hidden;border-radius:3px;background:#334155}.progress span{display:block;height:100%;background:#ec4899}table{width:100%;border-collapse:collapse}td,th{padding:.7rem;border-bottom:1px solid #ffffff14;text-align:left}.alert{margin-bottom:1rem;padding:.9rem 1rem;border-radius:12px}.error{color:#fecdd3;background:#881337}.success{color:#bbf7d0;background:#14532d}small{display:block;margin-top:.7rem;color:#94a3b8}.text-link{color:#f9a8d4;font-weight:750;text-decoration:none}.loyalty-card-list{display:grid;justify-items:center;gap:1.25rem}.loyalty-card{position:relative;width:100%;max-width:380px;overflow:hidden;padding:24px;border:1px solid #ffffff1a;border-radius:24px;background:linear-gradient(135deg,#1e1b4b 0%,#311042 100%);box-shadow:0 20px 40px #0006;color:#fff}.loyalty-card::before{position:absolute;top:-50px;right:-50px;width:150px;height:150px;border-radius:50%;background:#ec48994d;content:"";filter:blur(50px)}.card-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:28px}.brand-name{color:#fff;font-size:1.1rem;font-weight:700;letter-spacing:.5px}.status-badge{padding:6px 12px;border:1px solid #ffffff0d;border-radius:12px;background:#ffffff1a;color:#f472b6;font-size:.72rem;font-weight:600;white-space:nowrap}.user-section{position:relative;margin-bottom:24px}.user-name{margin:0 0 4px;color:#94a3b8;font-size:.85rem;font-weight:650;letter-spacing:1px;text-transform:uppercase}.member-name{margin:0 0 4px;color:#e2e8f0;font-size:.94rem;font-weight:650}.progress-text{margin:0;color:#fff;font-size:1.4rem;font-weight:700}.progress-text span{color:#ec4899}.stamps-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px}.stamp-box{display:flex;aspect-ratio:1;align-items:center;justify-content:center;border:1.5px dashed #ffffff26;border-radius:14px;background:#ffffff08;color:#ffffff4d;font-size:.9rem;font-weight:600}.stamp-box.earned{border:0;background:linear-gradient(135deg,#ec4899,#8b5cf6);box-shadow:0 4px 12px #ec48994d;color:#fff}.stamp-box.reward{border-color:#ec489966;color:#ec4899;font-size:1.2rem}.card-footer{position:relative;padding-top:20px;border-top:1px solid #ffffff14;text-align:center}.info-note{margin:0 0 16px;color:#94a3b8;font-size:.8rem;line-height:1.4}.action-btn{width:100%;padding:14px;border-radius:14px;background:#fff;color:#1e1b4b;font-size:.95rem;font-weight:650}.action-btn:hover{background:#f1f5f9;box-shadow:none}.loyalty-card--code{max-width:380px;margin:0 auto;text-align:center}.loyalty-card--code .loyalty-card__campaign{position:relative;margin:1rem 0;color:#fff;font-size:clamp(1.4rem,6vw,2rem)}.loyalty-card__topline{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.6rem;text-align:left}.loyalty-card__brand{font-size:1.05rem;font-weight:700}.loyalty-card__tag{padding:6px 10px;border-radius:12px;background:#ffffff1a;color:#f472b6;font-size:.65rem;font-weight:700}.code-instruction{position:relative;margin:1.3rem 0 .7rem;color:#cbd5e1;font-size:.95rem}.reward-code{position:relative;display:block;margin:0 auto .9rem;padding:.72rem;border-radius:13px;background:#fff;color:#311042;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(1.65rem,9vw,2.65rem);font-weight:900;letter-spacing:.06em;box-shadow:0 6px 16px #0005}.code-expiry{position:relative;margin:.1rem 0 1.15rem;color:#cbd5e1;font-size:.86rem}.loyalty-card--code .loyalty-card__reward{position:relative;margin:0;color:#e2e8f0;font-size:.88rem}.code-note{position:relative;margin:1rem auto 0;max-width:27rem;color:#94a3b8;font-size:.78rem;line-height:1.4}.reward-code-page{display:grid;gap:1.25rem;text-align:center}.campaign-waiting-card{position:relative;margin:0 auto;max-width:380px}.campaign-waiting-card .loyalty-card{filter:blur(1.5px) saturate(.72) brightness(.72);pointer-events:none;transform:scale(.985);user-select:none}.campaign-waiting-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;border-radius:24px;background:#0f172ad9;color:#fff;text-align:center;backdrop-filter:blur(2px)}.campaign-waiting-overlay .eyebrow{color:#f9a8d4}.campaign-waiting-overlay h1{margin:.55rem 0;font-size:clamp(1.5rem,7vw,2.3rem)}.campaign-waiting-overlay>p:not(.eyebrow){max-width:18rem;margin:.1rem 0 .3rem;line-height:1.45}.campaign-waiting-overlay small{max-width:19rem;margin:0;color:#cbd5e1;line-height:1.4}.campaign-waiting-overlay--error{background:#881337e6}.loading-spinner{width:3rem;height:3rem;border:4px solid #ffffff42;border-top-color:#ec4899;border-radius:50%;animation:waiting-spin .9s linear infinite}.waiting-link{margin-top:1rem;color:#fff;font-weight:800}@keyframes waiting-spin{to{transform:rotate(360deg)}}@media(max-width:650px){header{align-items:flex-start;flex-direction:column;padding:.9rem 1rem}header nav{gap:.65rem;font-size:.86rem}.container{margin:1.25rem auto 2.5rem;padding:0 .8rem}.card{padding:1.15rem;border-radius:15px}.loyalty-card{padding:20px;border-radius:20px}.card-header{margin-bottom:22px}.campaign-waiting-overlay{border-radius:20px;padding:1rem}}@media(max-width:360px){.stamps-grid{gap:9px}.brand-name{font-size:.95rem}.status-badge{padding:5px 8px;font-size:.62rem}}
