:root{--red:#e10b1f;--dred:#7a0610;--bk:#07070a;--g:#14141a;--tx:#f2f2f4;--mu:#a8a8b2}
*{box-sizing:border-box}
body{margin:0;background:var(--bk);color:var(--tx);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;line-height:1.8;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
section{padding:72px 0;position:relative;border-top:1px solid #2a0a0e}
section:nth-of-type(even){background:linear-gradient(180deg,#0d0d12,#09090c)}
.en{font-family:"Oswald","Arial Narrow",Impact,sans-serif;letter-spacing:.3em;color:var(--red);font-size:.8rem;margin:0 0 6px;text-transform:uppercase}
h2{font-size:clamp(1.6rem,5vw,2.4rem);margin:0 0 28px;font-weight:900;border-left:6px solid var(--red);padding-left:14px;line-height:1.3}
h3{margin:0 0 8px;font-size:1.15rem;color:#fff}
.hero{padding:0;background:radial-gradient(ellipse at 50% 0,#4a0710,#07070a 70%);text-align:center}
.hero .tag{font-family:Impact,"Arial Narrow",sans-serif;letter-spacing:.35em;color:var(--red);font-size:clamp(.7rem,2.6vw,1rem);padding:28px 0 12px}
.hero .logo{width:min(560px,80%);margin:0 auto 20px;filter:drop-shadow(0 0 24px rgba(225,11,31,.5))}
.hero .kv{width:100%;max-width:1200px;margin:0 auto;box-shadow:0 0 60px rgba(225,11,31,.35)}
.hero .copy{font-size:clamp(1.15rem,4.4vw,2rem);font-weight:900;margin:28px 20px 8px;text-shadow:0 0 18px rgba(225,11,31,.7)}
.hero .date{color:var(--mu);margin:0 20px 8px}
.hero .notice{display:inline-block;border:1px solid var(--red);color:#fff;padding:6px 16px;margin:12px 0 36px;font-weight:700;font-size:.95rem;background:rgba(225,11,31,.15)}
.btns{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin:24px 0}
.btn{display:block;min-width:260px;text-align:center;padding:16px 28px;font-weight:900;color:#fff;text-decoration:none;background:linear-gradient(135deg,var(--red),var(--dred));clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);transition:.2s;box-shadow:0 0 20px rgba(225,11,31,.4)}
.btn:hover{filter:brightness(1.25);transform:translateY(-2px)}
.btn small{display:block;font-weight:400;font-size:.8rem}
.tbl{width:100%;border-collapse:collapse}
.tbl th,.tbl td{padding:14px 12px;border-bottom:1px solid #2b2b33;text-align:left;vertical-align:top}
.tbl th{width:7.5em;color:var(--red);white-space:nowrap}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.card{background:var(--g);border:1px solid #2b2b33;border-top:3px solid var(--red);padding:22px}
.card .n{font-family:Impact,sans-serif;color:var(--red);font-size:1.6rem}
.card p{margin:0;color:var(--mu);font-size:.95rem}
.note{font-size:.85rem;color:var(--mu)}
.warn{display:inline-block;background:rgba(225,11,31,.18);border:1px solid var(--red);padding:4px 12px;font-size:.85rem;margin-bottom:16px}
ul.rules{padding-left:1.2em}ul.rules li{margin-bottom:10px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:10px;margin-top:16px}
.slots span{aspect-ratio:1;border:1px dashed #555;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#666;font-size:.6rem}
footer.ft{padding:40px 20px;text-align:center;background:#000;color:var(--mu);font-size:.85rem;border-top:2px solid var(--red)}
@media(max-width:720px){section{padding:52px 0}.two{grid-template-columns:1fr}.btn{min-width:100%}.tbl th{width:5.5em}}
