.player{--ink:#252018;--cream:#fff9e9;--yellow:#ffda42;--orange:#ef593b;--green:#244d40;--muted:#796d5d;background:var(--cream);max-width:480px;min-height:100vh;color:var(--ink);margin:0 auto;padding:0}.player .hero{background:#171d43;height:223px;position:relative;overflow:hidden}.player .hero-art{object-fit:cover;object-position:center 70%;width:100%;height:100%;display:block}.player .hero-logo{filter:drop-shadow(0 2px 1px #171d43);width:130px;height:auto;position:absolute;top:9px;left:50%;transform:translate(-50%)}.player .hero-tag{white-space:nowrap;border:2px solid var(--ink);letter-spacing:2px;background:#fff5d9;border-radius:20px;padding:3px 10px;font-size:10px;font-weight:900;position:absolute;top:79px;left:50%;transform:translate(-50%)}.player .content{margin-top:-24px;padding:0 18px 28px;position:relative}.player .ticket{border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink);background:#fff;border-radius:18px;overflow:hidden}.player .ticket-top{justify-content:space-between;align-items:center;gap:10px;padding:20px 18px 13px;display:flex}.player .ticket-kicker{letter-spacing:2px;color:#8e6c3f;font-size:10px;font-weight:900}.player .ticket h1{letter-spacing:-1px;margin:4px 0 0;font-size:26px;line-height:1.25}.player .badge{border:1.5px solid var(--ink);background:var(--yellow);white-space:nowrap;border-radius:6px;padding:4px 7px;font-size:11px;font-weight:900;transform:rotate(5deg)}.player .badge.ready{background:var(--orange);color:#fff}.player .badge.done{background:var(--green);color:#fff}.player .progress-copy{color:#685a48;justify-content:space-between;align-items:baseline;padding:0 18px;font-size:12px;display:flex}.player .progress-count{color:var(--ink);font-size:13px}.player .progress-count b{font-size:30px;font-weight:900;line-height:1}.player .progress-track{background:#eee9df;border-radius:20px;height:7px;margin:9px 18px 0;overflow:hidden}.player .progress-fill{background:var(--orange);height:100%;transition:width .25s}.player .progress-fill.done{background:var(--green)}.player .stamps{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;padding:18px 18px 20px;display:grid}.player .stamp-wrap{text-align:center;min-width:0}.player .stamp{aspect-ratio:1;background:#f8f5ee;border:2px dashed #c5bbaa;border-radius:50%;place-items:center;max-width:90px;margin:auto;display:grid;position:relative}.player .stamp .number{color:#c4b8a7;font-size:29px;font-weight:900}.player .stamp img{object-fit:contain;filter:drop-shadow(0 2px #d6a625);width:76%;height:76%}.player .stamp.filled{border:2px solid var(--ink);background:var(--yellow);box-shadow:0 3px 0 var(--ink)}.player .check{background:var(--green);color:#fff;border:2px solid #fff;border-radius:50%;width:21px;height:21px;font-size:12px;font-weight:900;line-height:17px;position:absolute;bottom:-4px;right:-3px}.player .stamp-label{color:#8b7c67;overflow-wrap:anywhere;margin-top:9px;font-size:11px;font-weight:700}.player .stamp-label.on{color:var(--ink)}.player .ticket-foot{background:#fff6db;border-top:1.5px dashed #c6bba7;align-items:center;gap:9px;padding:12px 18px;font-size:12px;font-weight:700;display:flex;position:relative}.player .ticket-foot:before,.player .ticket-foot:after{content:"";border:1.5px solid var(--ink);background:var(--cream);border-radius:50%;width:16px;height:16px;position:absolute;top:-9px}.player .ticket-foot:before{left:-10px}.player .ticket-foot:after{right:-10px}.player .ticket-foot svg{flex-shrink:0;width:25px;height:25px}.player .ticket-body{text-align:center;padding:4px 18px 20px}.player .lottery{letter-spacing:4px;font-size:44px;font-weight:900;line-height:1.2}.player .status-note{text-align:center;margin:22px 0 13px;font-size:14px;font-weight:700}.player .status-note strong{color:#c5452c}.player .action{border:2px solid var(--ink);background:var(--orange);width:100%;min-height:51px;box-shadow:0 4px 0 var(--ink);color:var(--ink);border-radius:11px;justify-content:center;align-items:center;gap:10px;margin:0 0 14px;padding:8px 12px;font-size:17px;font-weight:900;display:flex}.player .action svg{width:23px;height:23px}.player .action:active{box-shadow:0 2px 0 var(--ink);transform:translateY(2px)}.player .action.ready{background:var(--yellow)}.player .action.secondary{box-shadow:none;background:#fff;min-height:44px;font-size:14px}.player .action:disabled{color:#9c9282;box-shadow:none;background:#f0ece3;border-color:#ded6c8;transform:none}.player .help{color:var(--muted);text-align:center;margin:0 0 20px;font-size:11px}.player .info-links{border-top:1px solid #e3d9c6;justify-content:center;gap:22px;padding-top:16px;font-size:12px;font-weight:700;display:flex}.player .info-links a{color:#665943;text-underline-offset:4px}.player .footer{text-align:center;color:#a19583;margin:14px 0 0;font-size:9px}.player .msg{border:2px solid var(--ink);border-radius:12px;margin:0 0 14px;font-size:14px}.player .consent-list{margin:0;padding:0 18px 4px 36px;font-size:14px;line-height:1.7}.player .consent-list li{margin-bottom:6px}.player .qr-wrap{text-align:center;padding:0 18px 16px}.player .loading{text-align:center;color:var(--muted);padding:40px 0;font-weight:700}.player .rules{padding:4px 18px 18px;font-size:14px;line-height:1.75}.player .rules h2{border-left:5px solid var(--orange);margin:18px 0 6px;padding-left:9px;font-size:15px;font-weight:900}.player .rules ol,.player .rules ul{margin:0;padding-left:22px}.player .rules p{margin:0}.player .draft{color:#8e6c3f;background:#fff6db;border:1.5px dashed #c6bba7;border-radius:10px;margin:0 18px;padding:8px 12px;font-size:12px;font-weight:700}.player .toast{left:50%;top:max(12px, env(safe-area-inset-top));z-index:50;border:2px solid var(--ink);width:min(440px,100% - 24px);box-shadow:0 5px 0 var(--ink);text-align:center;color:var(--ink);border-radius:14px;padding:14px 16px;font-size:17px;font-weight:900;line-height:1.4;animation:.3s cubic-bezier(.2,.9,.3,1.3) both toast-in;position:fixed;transform:translate(-50%)}.player .toast.ok{background:#c9f0d6}.player .toast.err{background:#ffd3ca}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-24px)}to{opacity:1;transform:translate(-50%)}}.player .stamp.stamping{z-index:2;animation:.65s cubic-bezier(.3,0,.2,1) .45s both stamp-press}.player .stamp.stamping:after{content:"";border:4px solid var(--orange);pointer-events:none;border-radius:50%;animation:.6s ease-out .85s both stamp-ring;position:absolute;inset:-4px}.player .stamp.stamping .check{animation:.3s cubic-bezier(.2,.9,.3,1.6) 1.15s both stamp-check}@keyframes stamp-press{0%{opacity:0;transform:scale(2.6)rotate(-20deg)}35%{opacity:1}60%{transform:scale(.86)rotate(4deg)}78%{transform:scale(1.08)rotate(-2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes stamp-ring{0%{opacity:.9;transform:scale(.9)}to{opacity:0;transform:scale(1.7)}}@keyframes stamp-check{0%{transform:scale(0)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.player .toast,.player .stamp.stamping,.player .stamp.stamping:after,.player .stamp.stamping .check{animation:none}.player .stamp.stamping:after{display:none}}
