*{box-sizing:border-box;margin:0;padding:0}body{color:#fff;background:#0f1724;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,sans-serif}.hidden{display:none!important}.screen{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}#loading{color:#fff9;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex}.spinner{border:3px solid #ffffff26;border-top-color:#fff;border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.card{text-align:center;background:#1a2536;border:1px solid #ffffff0f;border-radius:20px;width:100%;max-width:400px;padding:36px 28px;box-shadow:0 8px 32px #0000004d}.card h1{color:#fff;letter-spacing:.5px;margin-bottom:8px;font-size:22px;font-weight:700;line-height:1.4}.card h2{color:#fff;margin-bottom:12px;font-size:18px;font-weight:600}.desc{color:#ffffff80;margin-bottom:28px;font-size:13px}.btn-primary{color:#0f1724;cursor:pointer;letter-spacing:.3px;background:#fff;border:none;border-radius:14px;width:100%;margin-top:16px;padding:16px;font-size:15px;font-weight:700;transition:all .2s}.btn-primary:disabled{opacity:.3;cursor:not-allowed}.btn-primary:active:not(:disabled){opacity:.9;transform:scale(.98)}.btn-secondary{color:#fff9;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:14px;width:100%;margin-top:8px;padding:14px;font-size:14px;transition:all .2s}.btn-secondary:active{background:#ffffff0d}.btn-checkin{color:#0f1724;cursor:pointer;letter-spacing:.3px;background:#fff;border:none;border-radius:16px;width:100%;max-width:400px;padding:20px;font-size:17px;font-weight:700;transition:transform .1s;box-shadow:0 4px 20px #ffffff26}.btn-checkin:active{transform:scale(.97)}.consent-box{text-align:left;background:#ffffff0d;border:1px solid #ffffff14;border-radius:12px;margin-bottom:8px;padding:16px}.consent-box label{cursor:pointer;color:#ffffffb3;align-items:center;gap:10px;font-size:13px;display:flex}.consent-box input[type=checkbox]{accent-color:#fff;width:20px;height:20px}.consent-box a{color:#fffc;text-underline-offset:2px;text-decoration:underline}.form-group{text-align:left;margin-bottom:24px}.form-group>label{color:#fff6;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;font-size:12px;font-weight:600;display:block}.radio-group{gap:8px;display:flex}.radio-btn{cursor:pointer;text-align:center;color:#ffffffb3;background:#ffffff0a;border:1.5px solid #ffffff1f;border-radius:12px;flex:1;padding:14px 8px;font-size:14px;transition:all .2s}.radio-btn.selected{color:#0f1724;background:#fff;border-color:#fff;font-weight:600}.card-header{align-items:center;gap:12px;width:100%;max-width:400px;padding:16px 20px;display:flex}.user-icon{object-fit:cover;background:#ffffff1a;border:2px solid #ffffff26;border-radius:50%;width:40px;height:40px}#user-name{color:#fff;font-size:16px;font-weight:600}.stamp-card{text-align:center;background:linear-gradient(160deg,#1a2536 0%,#1e2d42 50%,#1a2536 100%);border:1px solid #c0a87826;border-radius:20px;width:100%;max-width:400px;margin-bottom:16px;padding:28px;position:relative;overflow:hidden;box-shadow:0 8px 32px #0006,inset 0 1px #ffffff0d}.stamp-card:before{content:"";background:linear-gradient(90deg,#0000,#c0a8784d,#0000);height:1px;position:absolute;top:0;left:0;right:0}.stamp-card h2{color:#c0a878b3;text-transform:uppercase;letter-spacing:3px;margin-bottom:4px;font-size:11px;font-weight:600}.stamp-grid{grid-template-columns:repeat(5,1fr);gap:12px;margin:24px 0;display:grid}.stamp{aspect-ratio:1;color:#c0a87840;background:#c0a8780a;border:1.5px solid #c0a87833;border-radius:50%;justify-content:center;align-items:center;width:100%;font-size:14px;font-weight:500;transition:all .3s;display:flex}.stamp.filled{color:#0f1724;background:linear-gradient(135deg,#c0a878,#d4bc8e);border-color:#c0a878;font-size:14px;box-shadow:0 2px 8px #c0a8784d}.stamp.reward{color:#c0a87899;background:#c0a87814;border:1.5px dashed #c0a87866;font-size:16px}.point-text{color:#fff;letter-spacing:-.5px;font-size:32px;font-weight:800}.point-text span{color:#c0a878cc;font-size:16px;font-weight:400}.next-reward{color:#c0a87880;letter-spacing:.3px;margin-top:6px;font-size:12px}#checkin-section{width:100%;max-width:400px;margin-bottom:16px}.store-name{text-align:center;color:#fff6;margin-top:8px;font-size:13px}.history-section{background:#1a2536;border:1px solid #ffffff0f;border-radius:20px;width:100%;max-width:400px;padding:24px;box-shadow:0 8px 32px #0000004d}.history-section h3{color:#fff6;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:16px;font-size:12px;font-weight:600}.history-list{max-height:300px;overflow-y:auto}.history-item{border-bottom:1px solid #ffffff0f;justify-content:space-between;padding:12px 0;font-size:14px;display:flex}.history-item:last-child{border-bottom:none}.history-date{color:#ffffff80}.history-store{color:#fff;font-weight:500}.empty{color:#ffffff4d;text-align:center;padding:20px 0;font-size:14px}.checkin-done-card{padding:48px 28px}.stamp-animation{color:#0f1724;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 20px;font-size:40px;animation:.4s ease-out pop;display:flex}@keyframes pop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}#checkin-result{color:#fff9;margin-bottom:8px;font-size:16px}#error-screen .card{border:1px solid #ff646433}
