:root{font-family:Arial,Helvetica,sans-serif;color:#f5f3f0;background:#141416;--primary:#ff3057;--secondary:#d8bc83;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(90deg,#141416f5,#141416ec),url('assets/dragon.webp') center/cover fixed}header,main,footer{max-width:1180px;margin:auto;padding:28px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #333}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font-weight:900;letter-spacing:2px}.brand img{width:38px;border-radius:8px}.brand span{font-weight:400;color:#b5b0ab}.badge,.eyebrow{font-size:12px;letter-spacing:2px;color:var(--secondary)}h1{font-size:clamp(32px,5vw,56px);line-height:1.04;margin:14px 0 22px;letter-spacing:-1.5px}h2{font-size:23px;margin:0 0 20px}h3{font-size:18px}p{line-height:1.6;color:#c7c3c0}label{display:grid;gap:8px;font-size:14px;color:#ddd;margin:16px 0}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;background:#131315;border:1px solid #555;border-radius:8px;padding:13px;color:white;min-width:0}textarea{min-height:100px}button,.button{display:inline-block;padding:12px 18px;border:1px solid transparent;border-radius:7px;background:var(--primary);color:#fff;font-weight:700;cursor:pointer;text-decoration:none;min-height:44px}button:disabled{opacity:.5;cursor:wait}button.secondary,.button.secondary{background:#27272b;border-color:#555}button.danger{background:#422128;border-color:#bd5267}button:hover,.button:hover{filter:brightness(1.12)}a{color:#f2d398}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #f2d398;outline-offset:3px}.panel{background:#1d1d21;border:1px solid #3b3b40;border-radius:14px;padding:28px}.split{display:grid;grid-template-columns:1.05fr 1fr;gap:50px;align-items:center;min-height:65vh}.intro{padding:20px 0}.intro img{width:min(300px,85%);display:block;margin-bottom:28px}.intro p{max-width:420px}.login{max-width:460px}.toolbar,.actions,.tabs{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.toolbar{justify-content:space-between;margin-bottom:24px}.toolbar h1{font-size:36px;margin:12px 0}.tabs{margin:24px 0}.tabs button[aria-current="page"]{background:var(--primary)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat strong{display:block;font-size:32px;margin-top:10px}.stat span{color:#beb9b5;font-size:14px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:16px 12px;border-bottom:1px solid #414147}th{font-size:13px;color:#c3bbb2}td{font-size:15px}td button{padding:9px 12px}.muted{color:#b6b1ad;font-size:14px}.small{font-size:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.wide{grid-column:1/-1}.card-shell{max-width:680px;margin:25px auto}.loyalty{position:relative;overflow:hidden;background:linear-gradient(120deg,#242429e8,#141417ef),url('assets/dragon.webp') center/cover;border-top:4px solid var(--primary)}.stamps{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0}.stamp{width:55px;height:55px;display:grid;place-items:center;border:1px dashed #999;border-radius:50%;color:#999;font-size:20px}.stamp.done{background:var(--secondary);border-style:solid;color:#171717}.reward{font-size:26px;color:var(--secondary);font-weight:bold}.logo{width:120px;max-height:100px;object-fit:contain}.empty{padding:35px 0;color:#c1bab4}.stack{display:grid;gap:20px}.code{overflow-wrap:anywhere;font-family:monospace;user-select:all;font-size:16px}.rules{white-space:pre-wrap;overflow-wrap:anywhere}.close{float:right;margin-bottom:12px}dialog{width:min(620px,92vw);max-height:88vh;overflow:auto;border:1px solid #555;border-radius:14px;background:#1e1e23;color:#fff;padding:26px}dialog::backdrop{background:#000b}#dialog-body{clear:both}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(640px,90vw);padding:18px 22px;background:#f4e6cd;color:#171717;border-radius:10px;box-shadow:0 8px 40px #0008;z-index:5}footer{font-size:13px;color:#a7a19d;padding-top:40px;padding-bottom:32px}progress{width:100%;accent-color:var(--primary)}@media(max-width:720px){header,main,footer{padding:20px}.badge{display:none}.split{grid-template-columns:1fr;gap:12px;min-height:auto}.intro img{width:210px}.intro h1{font-size:40px}.grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.panel{padding:22px}.brand{font-size:14px}.toolbar{align-items:flex-start}.tabs button{flex:1;padding:12px}.stat{display:flex;align-items:center;justify-content:space-between}.stat strong{margin:0}.stamp{width:46px;height:46px}.login{max-width:none}}

/* Etapas do cartão: o prêmio fecha a sequência, sem contar como carimbo. */
.journey-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:30px 0 14px;font-size:12px;letter-spacing:1.6px;color:#bdb7b0}
.journey-caption strong{color:var(--secondary);font-size:18px;letter-spacing:0}
.stamp-journey{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:12px}
.tattoo-step{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px 8px;min-height:142px;border-radius:15px;background:#15161c;border:1px solid #42424b;text-align:center;box-shadow:0 4px 0 #090a0e;overflow-wrap:anywhere}
.step-symbol{height:36px;width:36px;border:1px solid #666670;border-radius:50%;display:grid;place-items:center;font-size:18px;color:#b1b0ba}
.tattoo-step strong{font-size:15px}.step-state{font-size:12px;color:#b8b5bf;line-height:1.4}
.tattoo-step.is-done{background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 88%,#fff),color-mix(in srgb,var(--primary) 70%,#470013));border-color:var(--primary);box-shadow:0 4px 0 color-mix(in srgb,var(--primary) 35%,#170009),0 0 24px color-mix(in srgb,var(--primary) 25%,transparent)}
.is-done .step-symbol{background:#fff;color:var(--primary);border-color:#fff;border-radius:9px;font-size:26px;font-weight:900}.is-done .step-state{color:#fff}
.tattoo-step.is-next{border:2px solid var(--primary);background:linear-gradient(150deg,color-mix(in srgb,var(--primary) 12%,#15161c),#15161c)}
.is-next .step-symbol{color:var(--primary);border-color:var(--primary)}.is-next .step-state{color:#f8e6ec;font-weight:700}
.prize-step{border-style:dashed;background:linear-gradient(140deg,#28231c,#17171c)}.prize-step .step-symbol{border:0;color:var(--secondary);width:38px;height:38px}.step-symbol svg,.prize-icon svg{width:32px;height:32px}
.goal-prize{display:flex;align-items:center;gap:18px;padding:24px 20px;border:1px solid color-mix(in srgb,var(--secondary) 45%,#282424);border-radius:14px;background:linear-gradient(120deg,color-mix(in srgb,var(--secondary) 9%,#17161b),#18171c)}
.prize-icon{display:grid;place-items:center;flex-shrink:0;width:52px;height:60px;color:var(--secondary)}.goal-prize .eyebrow{font-size:11px;letter-spacing:1.8px}.goal-prize .reward{font-size:clamp(20px,4vw,28px);line-height:1.25;margin:9px 0 12px;overflow-wrap:anywhere}.goal-message{font-size:15px;margin:0;color:#efebe5}
.prize-step.is-unlocked{border:1px solid var(--secondary);box-shadow:0 4px 0 #51432b,0 0 22px color-mix(in srgb,var(--secondary) 18%,transparent)}.is-unlocked .step-state{color:var(--secondary);font-weight:700}.goal-prize.is-unlocked{border-color:var(--secondary);animation:prize-arrive .45s ease-out}.journey-progress{margin-top:22px}.journey-progress label{font-size:13px;margin-bottom:10px}.journey-progress progress{height:8px;display:block;border:0;border-radius:10px;overflow:hidden;background:#38353e}.journey-progress progress::-webkit-progress-bar{background:#38353e}.journey-progress progress::-webkit-progress-value{background:var(--primary);border-radius:10px}.journey-progress progress::-moz-progress-bar{background:var(--primary)}
@keyframes prize-arrive{from{transform:translateY(6px);opacity:.65}to{transform:none;opacity:1}}
@media(max-width:480px){.stamp-journey{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tattoo-step{padding:16px 5px;min-height:126px;gap:8px;border-radius:11px}.tattoo-step strong{font-size:14px}.step-state{font-size:12px}.journey-caption{font-size:10px;letter-spacing:1px}.goal-prize{padding:18px 14px;gap:10px}.prize-icon{width:32px}.goal-prize .eyebrow{font-size:10px}.loyalty h1{font-size:36px}}
@media(prefers-reduced-motion:reduce){.goal-prize.is-unlocked{animation:none}}

