* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { background: #0a0a0a; color: #fff; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; min-height: 100vh; overflow-x: hidden; }
body { background: radial-gradient(circle at 20% 0%, rgba(212,175,55,0.15), transparent 50%), radial-gradient(circle at 80% 100%, rgba(212,175,55,0.10), transparent 50%), #0a0a0a; padding: 16px; display: flex; justify-content: center; align-items: flex-start; }
.app { width: 100%; max-width: 420px; padding: 8px 0 24px; }
.header { text-align: center; margin-bottom: 18px; }
.brand { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; background: rgba(212,175,55,0.08); border: 1px solid rgba(212,175,55,0.3); border-radius: 999px; }
.gold-dot { width: 8px; height: 8px; border-radius: 50%; background: #d4af37; box-shadow: 0 0 12px #d4af37; }
.brand-text { font-size: 12px; font-weight: 700; letter-spacing: 2px; color: #d4af37; }
.subtitle { margin-top: 8px; font-size: 10px; letter-spacing: 4px; color: rgba(255,255,255,0.4); }
.ticket { position: relative; background: linear-gradient(160deg, #1a1a1a 0%, #111 100%); border: 1px solid rgba(212,175,55,0.25); border-radius: 22px; padding: 22px 20px; box-shadow: 0 20px 60px rgba(0,0,0,0.6), 0 0 40px rgba(212,175,55,0.08); overflow: hidden; animation: slideUp 0.5s ease-out; }
.ticket::before { content: ""; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: conic-gradient(from 0deg, transparent 0deg, rgba(212,175,55,0.06) 60deg, transparent 120deg); animation: rotate 12s linear infinite; pointer-events: none; }
@keyframes rotate { to { transform: rotate(360deg); } }
@keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.ticket > * { position: relative; z-index: 1; }
.ticket-top { display: flex; justify-content: space-between; align-items: center; }
.ticket-label { font-size: 10px; letter-spacing: 3px; color: rgba(255,255,255,0.5); }
.ticket-id { font-size: 12px; font-family: "SF Mono", Menlo, monospace; color: #d4af37; background: rgba(212,175,55,0.1); padding: 4px 10px; border-radius: 6px; border: 1px solid rgba(212,175,55,0.2); }
.perforation { display: flex; justify-content: space-between; margin: 16px -20px; padding: 0 20px; position: relative; }
.perforation::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1px dashed rgba(212,175,55,0.2); }
.perforation span { width: 12px; height: 12px; border-radius: 50%; background: #0a0a0a; border: 1px solid rgba(212,175,55,0.25); position: relative; z-index: 1; }
.bonus-block { text-align: center; padding: 8px 0 4px; }
.bonus-caption { font-size: 11px; letter-spacing: 4px; color: rgba(255,255,255,0.5); }
.bonus-value { margin-top: 6px; display: flex; align-items: baseline; justify-content: center; gap: 4px; }
.plus { font-size: 28px; font-weight: 700; color: #d4af37; }
.amount { font-size: 56px; font-weight: 800; background: linear-gradient(180deg, #f5d76e 0%, #d4af37 60%, #a4821f 100%); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: -2px; }
.bonus-suffix { font-size: 16px; font-weight: 700; color: #d4af37; letter-spacing: 2px; }
.bonus-sub { margin-top: 4px; font-size: 12px; color: rgba(255,255,255,0.45); }
.barcode-wrap { margin: 20px auto 8px; padding: 14px 10px; background: #fff; border-radius: 10px; display: flex; justify-content: center; cursor: pointer; transition: transform 0.15s ease; }
.barcode-wrap:active { transform: scale(0.97); }
#barcode { width: 100%; height: 60px; }
.qr-wrap { display: flex; justify-content: center; margin: 12px 0 18px; cursor: pointer; }
#qrcode { padding: 6px; background: #fff; border-radius: 8px; display: flex; align-items: center; justify-content: center; }
#qrcode img, #qrcode canvas { display: block !important; width: 90px !important; height: 90px !important; }
.user-row { display: flex; justify-content: space-between; padding-top: 8px; border-top: 1px solid rgba(255,255,255,0.05); }
.user-label { font-size: 9px; letter-spacing: 2px; color: rgba(255,255,255,0.4); }
.user-name, .user-value { font-size: 14px; font-weight: 600; color: #fff; margin-top: 3px; }
.cta-block { margin-top: 18px; text-align: center; }
.claim-btn { width: 100%; padding: 16px 20px; border: none; border-radius: 14px; background: linear-gradient(135deg, #f5d76e 0%, #d4af37 50%, #a4821f 100%); color: #0a0a0a; font-size: 15px; font-weight: 800; letter-spacing: 1px; display: flex; align-items: center; justify-content: space-between; cursor: pointer; box-shadow: 0 8px 24px rgba(212,175,55,0.35); transition: transform 0.15s ease, box-shadow 0.15s ease; }
.claim-btn:active { transform: scale(0.97); box-shadow: 0 4px 12px rgba(212,175,55,0.5); }
.btn-icon { font-size: 20px; }
.btn-arrow { font-size: 18px; }
.tap-hint { margin-top: 10px; font-size: 11px; color: rgba(255,255,255,0.35); letter-spacing: 1px; }
.footer { text-align: center; margin-top: 20px; font-size: 11px; color: rgba(255,255,255,0.3); letter-spacing: 1px; }
.footer .site { margin-top: 4px; color: #d4af37; }
.or-divider { display: flex; align-items: center; gap: 12px; margin: 14px 0; color: rgba(255,255,255,0.35); font-size: 10px; letter-spacing: 3px; }
.or-divider::before, .or-divider::after { content: ""; flex: 1; height: 1px; background: rgba(212,175,55,0.15); }
.register-btn { width: 100%; padding: 14px 20px; border: 1px solid rgba(212,175,55,0.4); border-radius: 14px; background: transparent; color: #d4af37; font-size: 14px; font-weight: 700; letter-spacing: 1px; display: flex; align-items: center; justify-content: space-between; cursor: pointer; transition: transform 0.15s ease, background 0.15s ease; }
.register-btn:active { transform: scale(0.97); background: rgba(212,175,55,0.1); }
