*{box-sizing:border-box}body{margin:0;background:#0d0805;color:#f5e6c0;font-family:-apple-system,BlinkMacSystemFont,'Noto Sans JP',sans-serif}.screen{min-height:100svh;display:flex;flex-direction:column;padding:22px 18px;background:linear-gradient(180deg,#0d0805,#1e0e05 60%,#150b04)}.title{font-family:serif;text-align:center;letter-spacing:.18em;color:#f5e6c0;text-shadow:0 0 24px #c8a03044}.sub{text-align:center;color:#c8a060;font-size:12px;letter-spacing:.15em}.card{background:#2a160844;border:1px solid #8b654055;border-radius:8px;padding:14px;margin:12px 0}.btn{display:block;width:100%;border:0;border-radius:4px;padding:14px;margin:10px 0;background:linear-gradient(135deg,#8b2020,#c0392b,#8b2020);color:#f5e6c0;font-weight:700;letter-spacing:.15em}.btn.gold{background:linear-gradient(135deg,#6b4800,#c8a030,#6b4800);color:#1a0e05}.btn.outline{background:transparent;border:1px solid #c8a060;color:#c8a060}.btn.link{background:transparent;color:#e8c870;text-decoration:underline;padding:8px}input,textarea,select{width:100%;padding:12px;border-radius:4px;border:1px solid #c8a06066;background:#1a0e05;color:#e8d0a0;margin:6px 0 12px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.spot{border:1px solid #c8a03055;border-radius:8px;padding:12px;text-align:center;background:#1e1005}.spot.done{background:#c8a030;color:#2a1400}.toast{position:fixed;left:14px;right:14px;bottom:16px;background:#2e1c0a;border:1px solid #c8a030;border-radius:8px;padding:12px;color:#e8c870}.admin{background:#f5f7fa;color:#222;min-height:100vh;padding:20px}.admin .panel{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:18px;margin-bottom:14px}.admin table{width:100%;border-collapse:collapse;font-size:13px}.admin th,.admin td{border-bottom:1px solid #eee;text-align:left;padding:8px}.admin input,.admin select{background:#fff;color:#222;border:1px solid #ddd}.admin .btn{max-width:260px;color:#fff;background:#222}.muted{color:#8b8070;font-size:12px}.error{color:#ff9a9a}.ok{color:#83d097}.goshuin{aspect-ratio:533/800;background:linear-gradient(160deg,#3a1a00,#5a2a00);border:1px solid #c8a030;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:serif;font-size:28px;color:#c8a030;margin:12px 0}.qrbox{aspect-ratio:1/1;background:#050505;border-radius:10px;display:flex;align-items:center;justify-content:center;border:1px solid #c8a03044}.qrframe{width:160px;height:160px;border:3px solid #c8a030}.nav{position:sticky;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:#0d0805cc;border-top:1px solid #8b654033}.nav button{background:transparent;color:#c8a060;border:0;padding:12px 4px;font-size:11px}
.roulette-wrap{display:flex;flex-direction:column;gap:8px;margin:14px 0 16px}.roulette-label{font-size:11px;color:#c8a060;letter-spacing:.18em;text-align:center}.roulette-slot{min-height:58px;border:1px solid #c8a03077;background:#1e1005;border-radius:8px;display:flex;align-items:center;justify-content:center;text-align:center;padding:12px;font-family:serif;font-size:18px;font-weight:700;color:#e8c870;letter-spacing:.08em;box-shadow:0 0 20px #c8a03022 inset}.roulette-slot.rolling{animation:slotPulse .12s linear infinite;color:#fff1b8}.roulette-slot.decided{background:linear-gradient(135deg,#2e1c0a,#4a2c08);border-color:#e8c870;color:#fff4c8;box-shadow:0 0 28px #c8a03055}@keyframes slotPulse{0%{transform:translateY(-1px);opacity:.75}100%{transform:translateY(1px);opacity:1}}.error-card{border-color:#8b2020;background:#2a1008;color:#ffb0a0}.btn:disabled{opacity:.65;cursor:not-allowed}
.id-card{background:#2e1c0a;border:1px solid #c8a030;border-radius:10px;padding:18px;margin:16px 0;text-align:center;box-shadow:0 0 24px #c8a03022}.issued-id{font-family:serif;font-size:34px;letter-spacing:.16em;color:#fff1b8;margin:10px 0;text-shadow:0 0 22px #c8a03077}
