*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;background:radial-gradient(circle at 78% 10%,#4b2a86 0,#1b1035 55%,#0f0820 100%) fixed;color:#fff8ec}
.sky{position:fixed;inset:0;pointer-events:none;overflow:hidden}.moon{position:absolute;right:8%;top:5%;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#fff4c2,#ffe28a);box-shadow:0 0 70px #ffe28a80}
.star{position:absolute;width:3px;height:3px;background:#fff;border-radius:50%;opacity:.7}
.bat{position:absolute;font-size:30px;animation:fly 7s ease-in-out infinite}.b1{left:6%;top:14%}.b2{left:62%;top:30%;animation-delay:-2s}.b3{left:22%;top:72%;animation-delay:-4s}
@keyframes fly{50%{transform:translate(36px,-22px) rotate(10deg)}}
.wrap{position:relative;max-width:980px;margin:0 auto;padding:28px 16px 40px}
header.hero{text-align:center;margin-bottom:18px}.pk{font-size:64px;display:inline-block;animation:bob 2.2s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-7px)}}
h1{margin:4px 0;font-size:clamp(22px,4vw,32px);color:#ffe28a;text-shadow:0 2px 0 #1b1035}h1 small{display:block;font-size:.62em;color:#ffb366;margin-top:4px}
.lead{max-width:640px;margin:8px auto 0;line-height:1.7;font-size:16px;color:#f3eaff}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}
.card{background:#fff8ec;color:#2a1650;border-radius:22px;padding:20px 20px 18px;border:3px solid #ff8a1f;box-shadow:0 10px 30px #0007}
.card h2{margin:0 0 6px;font-size:20px;color:#2a1650}.card p.d{margin:0 0 10px;color:#4a3a6a;font-size:14px;line-height:1.6}
label{display:block;font-weight:800;margin:10px 0 4px;font-size:15px}label .opt{font-weight:400;color:#6b5b8a;font-size:13px}
input,textarea{width:100%;font:inherit;font-size:16px;padding:10px 12px;border-radius:12px;border:2px solid #b9a5e8;background:#fff;color:#1b1035}input:focus,textarea:focus{outline:3px solid #ff8a1f55;border-color:#ff8a1f}
textarea{min-height:70px;resize:vertical}
button{margin-top:12px;width:100%;font:inherit;font-size:17px;font-weight:800;padding:11px;border:0;border-radius:14px;background:#ff8a1f;color:#1b1035;cursor:pointer}button:hover{background:#ffa64d}button:disabled{opacity:.6}
button.alt{background:#2a1650;color:#fff8ec}button.alt:hover{background:#3d2370}
.msg{min-height:1.4em;margin-top:10px;font-weight:700;line-height:1.6}.msg.err{color:#b3261e}.msg.ok{color:#1f6f2b}
.ticket{margin-top:10px;padding:12px;border:2px dashed #ff8a1f;border-radius:14px;background:#fff1dc;text-align:center}.ticket b{display:block;font-size:24px;letter-spacing:2px;color:#2a1650;font-family:ui-monospace,Consolas,monospace}
.note{margin-top:18px;text-align:center;font-size:13px;color:#d9ccff;line-height:1.7}.note a{color:#ffe28a}

.revoked{max-width:760px;margin:0 auto 16px;padding:12px 16px;border-radius:14px;background:#fff1f0;color:#8f1d16;border:3px solid #ff8a3d;font-weight:800;line-height:1.6;text-align:center;box-shadow:0 6px 18px rgba(0,0,0,.25)}.revoked[hidden]{display:none}
