:root{
  --bg:#050506; --bg2:#0b0c0f; --panel:#121319; --panel2:#1a1b22; --line:#26262f;
  --red:#ef4444; --redd:#dc2626; --redl:#f87171; --blue:#3b82f6; --blued:#2563eb;
  --ink:#fafafa; --mut:#9a9aa4; --mut2:#6b6b76;
  --disp:'Anton','Noto Sans JP',sans-serif; --osw:'Oswald','Noto Sans JP',sans-serif; --jp:'Noto Sans JP',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--jp);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.vlink{color:inherit;border-bottom:1px solid rgba(248,113,113,.55);padding-bottom:1px;transition:.15s}
.vlink:hover{color:var(--redl);border-color:var(--redl)}
.hero-meta .vlink{border-bottom-color:rgba(248,113,113,.7)}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.eyebrow{font-family:var(--osw);font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--red);font-size:13px}
h2.sec{font-family:var(--disp);font-size:clamp(34px,5vw,58px);line-height:.98;letter-spacing:.01em;margin:.3em 0 .1em}
.sec-jp{font-family:var(--jp);font-weight:900;font-size:clamp(20px,2.6vw,30px);margin-bottom:.6em}
.lead{color:var(--mut);font-size:clamp(15px,1.4vw,17px);max-width:760px}
section{padding:clamp(64px,9vw,120px) 0;position:relative}
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--osw);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:15px;padding:15px 28px;border-radius:2px;transition:.18s}
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--redd)}
.btn-ghost{border:1.5px solid #3a3a45;color:var(--ink)}.btn-ghost:hover{border-color:var(--red);color:var(--red)}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(5,5,6,.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-in{max-width:1120px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between}
.logo{font-family:var(--disp);font-size:24px;letter-spacing:.04em}
.logo span{color:var(--red)}
.nav-links{display:flex;gap:30px;font-family:var(--osw);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:13px}
.nav-links a{color:var(--mut);transition:.15s}.nav-links a:hover{color:var(--ink)}
.nav-cta{font-family:var(--osw);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:13px;background:var(--red);color:#fff;padding:10px 18px;border-radius:2px}
@media(max-width:860px){.nav-links{display:none}}

/* HERO */
.hero{min-height:100vh;display:flex;align-items:center;padding-top:80px;position:relative;
  background:radial-gradient(120% 90% at 70% 0%,#1a0708 0%,#0a0506 45%,#050506 80%);overflow:hidden}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.60;pointer-events:none;transition:opacity 1.5s ease}
/* 時限フォグ：7/25が近づくほど opacity が下がり、REK映像がクリアに現れる（JSで制御・下の script 参照） */
.hero-veil{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.45;transition:opacity 1.5s ease;
  background:radial-gradient(120% 100% at 68% 40%,rgba(5,5,6,.30) 0%,rgba(5,5,6,.80) 55%,#050506 92%)}
.hero-overlay{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,rgba(5,5,6,.82) 0%,rgba(5,5,6,.40) 52%,rgba(5,5,6,.08) 100%),
  linear-gradient(180deg,rgba(5,5,6,.45) 0%,transparent 22%,transparent 68%,rgba(5,5,6,.55) 100%)}
.hero-oct{position:absolute;right:-8%;top:50%;transform:translateY(-50%);width:62vw;max-width:760px;aspect-ratio:1;opacity:.5;z-index:2;
  border:2px solid rgba(239,68,68,.22);clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%)}
.hero-oct2{position:absolute;right:2%;top:50%;transform:translateY(-50%);width:40vw;max-width:480px;aspect-ratio:1;opacity:.6;z-index:2;
  border:1px solid rgba(239,68,68,.28);clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%)}
.hero-in{position:relative;z-index:3}
.hero .wrap.hero-in{max-width:100%;margin:0;padding-left:clamp(24px,4.5vw,72px);padding-right:24px}
/* 右側 REK ロゴ＋TOKYO ロックアップ（OGPと同構図・#aboutへリンク） */
.hero-brand{position:absolute;right:9%;top:50%;transform:translateY(-50%);z-index:3;text-align:center;width:min(33vw,370px);pointer-events:auto;transition:transform .2s,opacity .2s}
.hero-brand:hover{opacity:.88;transform:translateY(-50%) scale(1.02)}
.hero-brand img{width:min(28vw,320px);height:auto;display:block;margin:0 auto;filter:drop-shadow(0 8px 34px rgba(0,0,0,.55))}
.hero-brand .tk{font-family:var(--disp);font-size:clamp(28px,3.9vw,56px);letter-spacing:.26em;line-height:.9;margin-top:.04em;padding-left:.26em;color:var(--red)}
@media(max-width:980px){
  .hero .wrap.hero-in{padding-left:24px}
  .hero-brand{right:16px;top:auto;bottom:22px;transform:none;width:128px}
  .hero-brand:hover{transform:none}
  .hero-brand img{width:96px}
  .hero-brand .tk{font-size:20px;letter-spacing:.22em}
}
.kuro{font-family:var(--disp);font-size:clamp(46px,9vw,118px);line-height:.92;letter-spacing:.005em;margin:.12em 0}
.kuro .r{color:var(--red)}
.hero-sub{font-weight:900;font-size:clamp(17px,2.4vw,26px);margin:.4em 0 1em;letter-spacing:.02em}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px 26px;font-family:var(--osw);font-weight:600;letter-spacing:.08em;color:var(--ink);margin:0 0 2em;font-size:clamp(14px,1.5vw,18px)}
.hero-meta i{color:var(--red);font-style:normal}
.hero-btns{display:flex;flex-wrap:wrap;gap:14px}
/* 昼＝入場無料 ／ 夕＝チケット の2連コールアウト（縦積み） */
.hero-adm{display:flex;flex-direction:column;align-items:flex-start;gap:11px;margin:.3em 0 1.7em}
.adm{display:block;padding:11px 20px;border:1.5px solid rgba(239,68,68,.5);border-radius:8px;background:linear-gradient(120deg,rgba(239,68,68,.15),rgba(239,68,68,.03))}
.adm-lab{display:block;font-family:var(--osw);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--redl);font-size:12px;white-space:nowrap;margin-bottom:3px}
.adm-val{display:block;font-weight:900;font-size:clamp(21px,2.5vw,30px);white-space:nowrap;line-height:1.15}
.adm-val em{font-style:normal}
.adm-val .adm-free{color:#fff;background:var(--red);padding:.02em .3em;border-radius:5px;margin-left:.1em}
.adm-val .adm-tix{color:var(--red);margin-left:.1em}
.adm-val .adm-go{color:var(--red);margin-left:.3em;font-weight:900}
.adm-link{position:relative;cursor:pointer;transition:.18s}
.adm-link:hover{border-color:var(--red);background:linear-gradient(120deg,rgba(239,68,68,.26),rgba(239,68,68,.08));transform:translateX(3px)}
.adm-cover{position:absolute;inset:0;border-radius:8px}
@media(max-width:520px){.adm{padding:10px 15px;gap:10px}.adm-lab{font-size:11px}}

/* TICKER */
.ticker{background:var(--red);color:#fff;overflow:hidden;white-space:nowrap;border-top:1px solid #ff6b6b;border-bottom:1px solid #b91c1c}
.ticker-track{display:inline-block;padding:12px 0;font-family:var(--disp);font-size:18px;letter-spacing:.12em;animation:scroll 28s linear infinite}
.ticker-track span{margin:0 28px}.ticker-track span::before{content:'◆';margin-right:28px;color:#7f1010}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* CONCEPT */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:30px 26px;transition:.2s}
.card:hover{border-color:rgba(239,68,68,.5);transform:translateY(-3px)}
.card .num{font-family:var(--disp);font-size:42px;color:var(--red);line-height:1}
.card h3{font-weight:900;font-size:19px;margin:.5em 0 .35em}
.card p{color:var(--mut);font-size:14.5px}
@media(max-width:820px){.grid3{grid-template-columns:1fr}}

/* ABOUT REK */
.about-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:46px;align-items:center;margin-top:44px}
.about-brand{background:linear-gradient(160deg,#141016,#0a0608);border:1px solid rgba(239,68,68,.28);border-radius:12px;padding:42px 30px;text-align:center}
.about-logo{width:min(240px,64%);height:auto;margin:0 auto .5em;display:block}
.about-tag{font-family:var(--disp);font-size:clamp(20px,2.4vw,26px);letter-spacing:.01em;line-height:1.05}
.about-tagsub{color:var(--mut);font-size:13.5px;margin:.5em 0 1.5em}
.about-list{list-style:none;display:grid;gap:16px;margin-top:26px}
.about-list li{border-left:3px solid var(--red);padding:2px 0 2px 16px}
.about-list b{display:block;font-weight:900;font-size:16px;margin-bottom:.15em}
.about-list span{color:var(--mut);font-size:14px}
@media(max-width:820px){.about-grid{grid-template-columns:1fr;gap:28px}}

/* EVENT STRIP */
.eventband{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.event-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
.event-cell{background:var(--bg2);padding:34px 26px}
.event-cell .lab{font-family:var(--osw);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--red);font-size:12px;margin-bottom:.6em}
.event-cell .val{font-weight:700;font-size:clamp(17px,1.8vw,21px);line-height:1.4}
.event-cell .val small{display:block;color:var(--mut);font-weight:400;font-size:13px;margin-top:.3em}
@media(max-width:820px){.event-grid{grid-template-columns:1fr 1fr}}

/* WHY */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:40px}
.why-list{list-style:none;display:grid;gap:14px}
.why-list li{display:flex;gap:14px;align-items:flex-start;background:var(--panel);border-left:3px solid var(--red);padding:16px 18px;border-radius:0 6px 6px 0}
.why-list b{display:block;font-weight:900;font-size:16px}.why-list span{color:var(--mut);font-size:14px}
.target-box{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:30px}
.target-box .lab{font-family:var(--osw);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--red);font-size:13px;margin-bottom:1em}
.target-box ol{list-style:none;counter-reset:t;display:grid;gap:11px}
.target-box li{counter-increment:t;display:flex;gap:14px;align-items:center;font-weight:700;font-size:15.5px}
.target-box li::before{content:counter(t);font-family:var(--disp);color:var(--red);width:34px;height:34px;flex:none;display:grid;place-items:center;border:1px solid rgba(239,68,68,.4);border-radius:50%;font-size:17px}
@media(max-width:820px){.why-grid{grid-template-columns:1fr}}

/* SPONSOR */
.spon{background:var(--bg2)}
.feature{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;margin-top:48px}
.spon-hero{background:linear-gradient(135deg,#1a0809,#0d0607);border:1px solid rgba(239,68,68,.35);border-radius:10px;padding:40px;display:flex;flex-direction:column;justify-content:space-between}
.spon-hero .tag{display:inline-block;background:var(--red);color:#fff;font-family:var(--osw);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:12px;padding:6px 14px;border-radius:2px;margin-bottom:18px;align-self:flex-start}
.spon-hero h3{font-family:var(--disp);font-size:30px;line-height:1.05;margin-bottom:.4em}
.spon-hero p{color:var(--mut);font-size:15px;margin-bottom:1.2em}
.spon-hero .price{font-family:var(--disp);font-size:40px;color:var(--ink)}.spon-hero .price small{font-size:15px;color:var(--mut);font-family:var(--jp);font-weight:400}
.corner-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.corner{border-radius:10px;padding:30px 26px;border:1px solid}
.corner.red{background:linear-gradient(160deg,#1c0708,#0d0607);border-color:rgba(239,68,68,.45)}
.corner.blue{background:linear-gradient(160deg,#070d1c,#06080d);border-color:rgba(59,130,246,.45)}
.corner .ct{font-family:var(--osw);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:13px}
.corner.red .ct{color:var(--redl)}.corner.blue .ct{color:#7fb0f4}
.corner h4{font-weight:900;font-size:20px;margin:.3em 0 .5em}
.corner p{color:var(--mut);font-size:13.5px;min-height:48px}
.corner .price{font-family:var(--disp);font-size:30px;margin-top:.3em}
.corner .sold{display:inline-block;font-family:var(--osw);font-weight:700;font-size:11px;letter-spacing:.08em;color:#fff;background:#3a3a45;padding:2px 9px;border-radius:2px;margin-left:8px;vertical-align:middle;transform:translateY(-1px)}
.menu{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}
.mcard{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px;transition:.2s}
.mcard:hover{border-color:rgba(239,68,68,.5)}
.mcard .ic{color:var(--red);font-size:26px;margin-bottom:10px}
.mcard h4{font-weight:900;font-size:16px;margin-bottom:.3em}
.mcard p{color:var(--mut);font-size:13px;min-height:54px}
.mcard .price{font-family:var(--osw);font-weight:700;font-size:20px;color:var(--ink);margin-top:.4em}
.mcard .price small{color:var(--mut);font-weight:400;font-size:12px}
.note{color:var(--mut2);font-size:12.5px;margin-top:22px;text-align:center}
@media(max-width:820px){.feature{grid-template-columns:1fr}.corner-row{grid-template-columns:1fr}.menu{grid-template-columns:1fr}}

/* TICKETS */
.tix{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px}
.tix-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:28px 22px;text-align:center;transition:.2s}
.tix-card:hover{border-color:rgba(239,68,68,.5);transform:translateY(-3px)}
.tix-card.vip{border-color:rgba(239,68,68,.55);background:linear-gradient(160deg,#180708,#0d0607)}
.tix-card .tl{font-family:var(--osw);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--red);font-size:13px}
.tix-card .pr{font-family:var(--disp);font-size:38px;margin:.18em 0}
.tix-card .pr small{font-size:14px;color:var(--mut);font-family:var(--jp);font-weight:400}
.tix-card .seats{color:var(--mut);font-size:13px}
@media(max-width:820px){.tix{grid-template-columns:1fr 1fr}}

/* ROS */
.ros{background:var(--bg2)}
.ros-table{margin-top:40px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.ros-row{display:grid;grid-template-columns:160px 1fr;border-bottom:1px solid var(--line)}
.ros-row:last-child{border-bottom:none}
.ros-row:nth-child(even){background:var(--panel)}
.ros-time{font-family:var(--osw);font-weight:700;color:var(--red);padding:16px 24px;letter-spacing:.05em;border-right:1px solid var(--line)}
.ros-act{padding:16px 24px;font-weight:500}
.ros-act.main{font-weight:900}
@media(max-width:620px){.ros-row{grid-template-columns:110px 1fr}.ros-time{padding:14px 14px;font-size:14px}}

/* CTA */
.ctaband{background:var(--red);text-align:center}
.ctaband h2{font-family:var(--disp);font-size:clamp(32px,5vw,56px);color:#fff;line-height:1;margin-bottom:.3em}
.ctaband p{color:#ffe1e1;margin-bottom:1.6em;font-weight:500}
.ctaband .btn-w{background:#fff;color:var(--redd)}.ctaband .btn-w:hover{background:#111;color:#fff}

/* FOOTER */
footer{background:var(--bg);border-top:1px solid var(--line);padding:56px 0 40px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px}
.foot-grid h5{font-family:var(--osw);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--red);font-size:12px;margin-bottom:1em}
.foot-grid p,.foot-grid a{color:var(--mut);font-size:14px;display:block;margin-bottom:.4em}
.foot-grid a:hover{color:var(--ink)}
.foot-logo{font-family:var(--disp);font-size:30px;margin-bottom:.3em}.foot-logo span{color:var(--red)}
.foot-bot{border-top:1px solid var(--line);margin-top:40px;padding-top:24px;color:var(--mut2);font-size:12.5px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.host-badge{display:inline-block;background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:4px 12px;color:var(--mut);font-size:12px}
.rek-mark{height:42px;width:auto;display:block;margin-bottom:.5em}
.rek-mark-sm{height:20px;width:auto;vertical-align:-4px;margin-right:.45em}
.foot-logo .rek-mark{height:34px;display:inline-block;margin:0 .1em -.18em 0}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr}}

/* ===== SPONSOR PAGE additions ===== */
.subhero{padding:132px 0 clamp(56px,8vw,96px);position:relative;overflow:hidden;
  background:radial-gradient(120% 95% at 78% 0%,#1a0708 0%,#0a0506 52%,#050506 86%);border-bottom:1px solid var(--line)}
.subhero .lead{margin-top:1.1em}
.subhero-facts{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:1.5em;font-family:var(--osw);font-weight:600;letter-spacing:.06em;color:var(--ink);font-size:15px}
.subhero-facts i{color:var(--red);font-style:normal;margin-right:.4em}
.subhero .btn{margin-top:1.9em}
.backlink{color:var(--mut);font-family:var(--osw);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:13px;transition:.15s}
.backlink:hover{color:var(--ink)}

/* ===== LAUNCH COUNTDOWN ===== */
.launch{background:radial-gradient(120% 130% at 50% 0%,#280a0c 0%,#12070a 45%,#0a0506 100%);border-top:1px solid rgba(239,68,68,.45);border-bottom:1px solid rgba(239,68,68,.45);text-align:center;position:relative;overflow:hidden}
.launch .wrap{padding:clamp(52px,7vw,92px) 24px;position:relative;z-index:2}
.lc-eyebrow{font-family:var(--osw);font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--redl);font-size:13px}
.launch h2{font-family:var(--disp);font-size:clamp(38px,6.4vw,78px);line-height:.98;margin:.12em 0}
.launch h2 .r{color:var(--red)}
.lc-date{font-family:var(--osw);font-weight:700;font-size:clamp(19px,2.6vw,30px);letter-spacing:.05em;color:#fff}
.lc-date b{color:var(--red)}
.lc-narr{color:var(--mut);font-size:clamp(13.5px,1.4vw,15.5px);max-width:660px;margin:1em auto 0;line-height:1.8}
.lc-timer{display:inline-flex;gap:clamp(8px,1.8vw,18px);margin:1.6em 0 1.5em;justify-content:center;flex-wrap:wrap}
.lc-unit{background:rgba(10,5,6,.7);border:1px solid rgba(239,68,68,.4);border-radius:10px;padding:14px clamp(12px,2.2vw,26px);min-width:clamp(70px,11vw,116px)}
.lc-num{font-family:var(--disp);font-size:clamp(38px,5.4vw,62px);line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.lc-lab{font-family:var(--osw);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);font-size:11px;margin-top:8px}
.lc-live{display:none}
.launch.is-live .lc-soon{display:none}
.launch.is-live .lc-live{display:block}
.launch.is-live .pre{display:none}
.lc-live .btn{font-size:17px;padding:17px 40px}

/* ===== TOP ANNOUNCE BAR ===== */
.topbar{position:fixed;top:0;left:0;right:0;z-index:60;height:38px;display:flex;align-items:center;justify-content:center;gap:.55em;background:var(--red);color:#fff;font-family:var(--osw);font-weight:700;letter-spacing:.04em;font-size:13.5px;white-space:nowrap;overflow:hidden;padding:0 14px;transition:background .18s}
.topbar:hover{background:var(--redd)}
.tb-dot{width:8px;height:8px;border-radius:50%;background:#fff;display:inline-block;flex:none;animation:tbpulse 1.4s infinite}
@keyframes tbpulse{0%,100%{opacity:1}50%{opacity:.2}}
.tb-cd{font-family:var(--disp);letter-spacing:.05em;font-size:16px}
.tb-arrow{opacity:.85}
.tb-live{display:none}
.topbar.is-live .tb-soon{display:none}
.topbar.is-live .tb-live{display:inline-flex;align-items:center;gap:.5em}
/* トップバーがある時はナビ・ヒーローを下げる */
body.has-topbar nav{top:38px}
body.has-topbar .hero{padding-top:118px}
@media(max-width:560px){.topbar{font-size:11px;gap:.4em}.tb-cd{font-size:13px}.tb-hide-sm{display:none}}
