:root{--yellow:#f7d21e;--ink:#151616;--muted:#aeb5b0}*{box-sizing:border-box}body{margin:0;background:#111212;color:#f5f4ee;font:16px/1.6 system-ui,sans-serif}header{border-bottom:1px solid #333;background:#191a19;padding:20px max(20px,calc((100vw - 1000px)/2));display:flex;align-items:center;justify-content:space-between}header img{width:170px;height:auto}a{color:inherit}main{max-width:1000px;margin:40px auto;padding:0 20px}h1{font-size:clamp(34px,6vw,60px);line-height:1.05;margin:10px 0 20px}h2{line-height:1.2}small,.muted{color:var(--muted)}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.15em;color:var(--yellow)}.panel,.card{background:#202220;padding:26px;border:1px solid #3c403b;border-radius:18px;margin:20px 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid .card{margin:0}label{display:block;font-weight:700;margin-top:18px}input{display:block;width:100%;padding:15px;font:inherit;border-radius:8px;border:1px solid #777;background:#fafaf5;color:#111}button,.button{font:inherit;font-weight:800;display:inline-block;border:0;border-radius:8px;padding:14px 22px;background:var(--yellow);color:#111;cursor:pointer;margin:15px 10px 0 0;text-decoration:none}button:disabled{opacity:.5;cursor:wait}.secondary{background:#3b413d;color:white}.message{white-space:pre-line;min-height:26px}.qr{background:white;padding:18px;border-radius:14px;width:min(100%,290px);margin:20px auto}.qr svg{width:100%;height:auto;display:block}.qr-area{text-align:center}.stamps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:25px 0}.stamp{aspect-ratio:1;display:grid;place-content:center;border:1px dashed #747b73;border-radius:50%;font-size:23px;color:#929b91}.stamp.done{background:var(--yellow);border:2px solid var(--yellow);color:#111;font-weight:900}.stamp.gift{border:2px solid var(--yellow);color:var(--yellow);font-size:14px;font-weight:900}.ready{color:var(--yellow);font-weight:850;font-size:21px}.history{padding:0;list-style:none}.history li{border-top:1px solid #414740;padding:14px 0}.actions{display:flex;flex-wrap:wrap}.notice{border-left:3px solid var(--yellow);padding:12px 16px;background:#272c26}.honeypot{position:absolute;left:-9999px}[hidden]{display:none!important}@media(max-width:650px){.grid{grid-template-columns:1fr}main{margin:25px auto}.panel,.card{padding:20px}header img{width:145px}}

/* Premium cards, vehicle plates and Standard prize wheel. */
select,textarea{font:inherit;width:100%;padding:14px;border-radius:8px;border:1px solid #777;background:#fafaf5;color:#111}textarea[readonly]{background:#deddd1}.check{display:flex;align-items:flex-start;gap:12px;font-weight:400}.check input{width:22px;height:22px;flex-shrink:0;margin-top:3px}.premium-card,.premium-preview{background:radial-gradient(ellipse at 10% 0%,#f8e4a6 0%,transparent 50%),linear-gradient(135deg,#b4913e,#f4d98a 50%,#b5903b);color:#1b160b;border-color:#ffe8a2}.premium-card .eyebrow,.premium-preview .eyebrow{color:#594010}.premium-card small,.premium-preview small{color:#4e421f}.premium-price{font-size:34px}.reg-plate{display:inline-block;background:#f6cf20;border:2px solid #151515;border-radius:5px;color:#111;padding:7px 16px;font:900 26px/1.2 ui-monospace,monospace;letter-spacing:2px}.vehicle-balance{background:#fff5;border:1px solid #70571c77;border-radius:12px;padding:18px;margin:20px 0}.vehicle-balance p{margin:8px 0}.plan-benefits{display:grid;grid-template-columns:1fr 1fr;gap:25px}.plan-benefits>div{padding:15px;background:#ffffff30;border-radius:12px}.premium-preview button{background:#171710;color:#f6dc8b}.premium-preview a{color:#282008}details{margin-top:20px}summary{font-weight:700;cursor:pointer}.wheel-panel{text-align:center}.wheel-wrap{width:min(100%,360px);aspect-ratio:1;position:relative;margin:30px auto}.wheel-pointer{position:absolute;top:-15px;left:calc(50% - 16px);color:#e52d23;font-size:32px;z-index:2;text-shadow:0 2px 3px #000}.prize-wheel{width:100%;height:100%;border-radius:50%;border:8px solid #f5d72a;position:relative;background:repeating-conic-gradient(#f1d139 0deg 30deg,#252b24 30deg 60deg);transition:transform 3.6s cubic-bezier(.12,.7,.12,1);box-shadow:0 0 0 5px #b58b29,0 12px 40px #0007}.prize-wheel:after{content:'CARSPA';display:grid;place-content:center;position:absolute;inset:39%;background:#c9251d;color:white;border:3px solid #f4df83;border-radius:50%;font-size:11px;font-weight:900}.prize-wheel span{position:absolute;left:50%;top:50%;width:39%;font-size:9px;font-weight:900;line-height:1.1;transform-origin:0 0;transform:rotate(calc(var(--segment)*30deg - 75deg)) translate(32px,-50%);color:white;max-width:120px}.prize-wheel span:nth-child(odd){color:#151915}@media(max-width:650px){.plan-benefits{grid-template-columns:1fr}.premium-price{font-size:28px}}@media(prefers-reduced-motion:reduce){.prize-wheel{transition:none}}

.premium-preview .ready{color:#241b09}.premium-card .ready{color:#241b09}
.stamps{grid-template-columns:repeat(4,minmax(0,1fr))}.stamp{min-width:0}.stamp.gift{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;white-space:pre-line;line-height:1.15;font-size:clamp(10px,2.6vw,14px);padding:5px;overflow:hidden}

.prize-wheel{background:repeating-conic-gradient(#b58b29 0deg 1deg,transparent 1deg 24deg),repeating-conic-gradient(#f1d139 0deg 24deg,#252b24 24deg 48deg)}.prize-wheel span{font-size:8px;transform:rotate(calc(var(--segment)*24deg - 78deg)) translate(32px,-50%)}

#customer-card .qr{scroll-margin-top:20px;outline:none}#access .notice{font-size:14px;font-weight:400}#access .notice strong{overflow-wrap:anywhere}

/* Standard cards echo Carspa's yellow-and-red printed stamp card. */
#cards.grid{grid-template-columns:minmax(0,1fr)}
.standard-card{background:#ffe51c;color:#161616;border:2px solid #e4bd00;padding:26px;box-shadow:0 12px 32px #0003;overflow:hidden}
.standard-heading{display:flex;align-items:center;gap:22px;border-bottom:1px solid #bd920066;padding-bottom:20px}.standard-logo{width:170px;height:auto}.standard-label{font-size:11px;letter-spacing:.13em;font-weight:900;color:#b71b16}.standard-heading h2{font-size:clamp(22px,3vw,30px);margin:4px 0 0}.standard-body{display:grid;grid-template-columns:minmax(210px,280px) minmax(0,1fr);gap:32px;align-items:center}.standard-qr{text-align:center}.standard-card .qr{width:min(100%,260px);border:1px solid #bba000;padding:15px;margin:24px auto 10px}.scan-caption{font-size:13px;font-weight:800;margin:8px 0}.mini-qr-notice{font-size:14px;font-weight:850;background:#c9251d;color:#fff;padding:12px;border-radius:9px;line-height:1.4;margin:14px 0}.standard-card .stamps{gap:13px;margin:25px 0 20px}.standard-card .stamp{position:relative;isolation:isolate;border:3px solid #d82b20;background:#fff;color:#171717;font-size:clamp(22px,3vw,36px);font-weight:650;box-shadow:inset 0 0 0 3px #ffe51c;overflow:visible}.standard-card .stamp:before{content:'';position:absolute;inset:-6px -4px;border:2px solid #d82b20;border-radius:47% 53% 49% 51%;transform:rotate(-14deg);pointer-events:none}.standard-card .stamp:nth-child(even):before{transform:rotate(21deg);border-radius:53% 47% 51% 49%}.standard-card .stamp.done{background:#fff3a8}.standard-card .stamp img{width:76%;height:auto;display:block;margin:auto;transform:rotate(-10deg)}.standard-card .stamp.gift{font-size:clamp(15px,2.5vw,23px);font-weight:950;color:#ba2018;white-space:pre-line;line-height:1.06;padding:8px;overflow:hidden}.standard-card .standard-balance{font-weight:800;font-size:17px;line-height:1.5;margin-bottom:10px}.standard-card .ready{color:#a21a14;font-size:19px;line-height:1.5}.standard-totals{display:block;color:#514613!important;font-size:12px;border-top:1px solid #bd920066;margin-top:15px;padding-top:15px}.earned-card .standard-label{color:#8d1913}
@media(max-width:700px){.standard-card{padding:20px}.standard-heading{gap:15px;align-items:flex-start}.standard-logo{width:110px;margin-top:5px}.standard-label{font-size:9px;letter-spacing:.07em}.standard-heading h2{font-size:21px}.standard-body{grid-template-columns:minmax(0,1fr);gap:0}.standard-card .qr{width:min(100%,265px)}.standard-qr{max-width:320px;width:100%;margin:auto}.standard-card .stamps{gap:12px;margin:25px 0}.standard-card .stamp{font-size:28px}.standard-card .stamp.gift{font-size:18px}.standard-card .standard-balance{text-align:center;font-size:16px}}
@media(max-width:360px){.standard-card{padding:15px}.standard-heading{gap:10px}.standard-logo{width:85px}.standard-card .stamp.gift{font-size:15px}.standard-card .stamps{gap:10px}}

.spin-prize{background:#ffe51c;color:#161616;border:2px solid #ce2b22;border-radius:18px;padding:22px;text-align:center;margin:16px 0}.spin-prize .qr{width:min(100%,260px);margin:16px auto;background:#fff;border:3px solid #ce2b22;border-radius:14px;padding:16px}.spin-prize p{font-size:14px;line-height:1.5}
.preview-cards-link{background:#c9251d;color:#fff}.preview-cards-link:hover{background:#a91f19}.preview-cards-link:focus-visible{outline:3px solid #ffe51c;outline-offset:4px}
