:root{
  --bg:#0c0a0a; --bg2:#141010; --panel:#1a1414; --ink:#f4ecec; --dim:#b39c9c;
  --red:#e11d2a; --red2:#ff3b3b; --ember:#ff7a1a; --line:#2b2020;
  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --wrap:min(1040px,92vw);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg)}
body{
  background:
    radial-gradient(120% 60% at 50% -10%, rgba(225,29,42,.18), transparent 60%),
    var(--bg);
  color:var(--ink);font-family:var(--sans);line-height:1.55;
  min-height:100vh;overflow-x:hidden;-webkit-text-size-adjust:100%;
}
a{color:inherit}
h1,h2{letter-spacing:-.02em;line-height:1.02}

/* ---- header ---- */
header.site{
  width:var(--wrap);margin:0 auto;padding:22px 0;
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;font-weight:800}
.brand-mark{font-size:1.4rem}
.brand-name{font-size:1.35rem;letter-spacing:-.02em}
.brand-accent{color:var(--red2)}
.brand-jp{color:var(--dim);font-size:.9rem;letter-spacing:.1em}
nav .nav-blue{
  color:var(--dim);text-decoration:none;font:600 .85rem/1 var(--mono);
  border:1px solid var(--line);border-radius:999px;padding:9px 14px;white-space:nowrap;
  display:inline-block;min-height:38px;
}
nav .nav-blue:hover,nav .nav-blue:focus-visible{color:var(--ink);border-color:var(--dim)}

/* ---- main ---- */
main{width:var(--wrap);margin:0 auto;padding:8px 0 40px}
section{padding:36px 0;border-top:1px solid var(--line)}
section.hero{border-top:0;padding-top:24px}

.kicker{font:700 .8rem/1 var(--mono);text-transform:uppercase;letter-spacing:.22em;color:var(--red2)}
.hero h1{font-weight:900;font-size:clamp(2.6rem,8vw,5.2rem);margin:.35em 0 .3em}
.lede{font-size:clamp(1.05rem,2.4vw,1.35rem);color:var(--ink);max-width:44ch}
.lede strong{color:var(--ember)}
.status{margin-top:1.2em;color:var(--dim);font:600 .95rem/1.4 var(--mono);display:flex;align-items:center;gap:.6em}
.status .dot{width:9px;height:9px;border-radius:50%;background:var(--ember);box-shadow:0 0 0 0 rgba(255,122,26,.6);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,122,26,.5)}70%{box-shadow:0 0 0 12px rgba(255,122,26,0)}100%{box-shadow:0 0 0 0 rgba(255,122,26,0)}}
@media (prefers-reduced-motion:reduce){.status .dot{animation:none}}

.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.8em}
.cta{
  display:inline-flex;align-items:center;min-height:48px;padding:0 22px;
  background:var(--red);color:#fff;text-decoration:none;font-weight:800;
  border:2px solid var(--red);border-radius:2px;
}
.cta:hover,.cta:focus-visible{background:var(--red2);border-color:var(--red2)}
.cta-ghost{background:transparent;color:var(--ink);border-color:var(--line);font:700 .95rem/1 var(--mono)}
.cta-ghost:hover,.cta-ghost:focus-visible{border-color:var(--dim);background:transparent;color:#fff}

h2{font-size:clamp(1.4rem,3.2vw,2rem);font-weight:800;margin-bottom:.2em}
.menu-sub,.proxy-note{color:var(--dim)}
.menu-sub{margin-bottom:1.4em}

/* ---- phases ---- */
.phases{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;counter-reset:ph}
.phases li{
  counter-increment:ph;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--red);
  border-radius:3px;padding:16px 16px 16px 46px;position:relative;display:flex;justify-content:space-between;align-items:baseline;gap:10px;
}
.phases li::before{content:counter(ph,decimal-leading-zero);position:absolute;left:14px;top:15px;font:800 .8rem/1 var(--mono);color:var(--red2)}
.ph-en{font-weight:700}
.ph-jp{color:var(--dim);font-size:.85rem;letter-spacing:.08em;white-space:nowrap}

/* ---- rules ---- */
.rules{list-style:none;display:grid;gap:12px;max-width:70ch}
.rules li{padding-left:1.6em;position:relative;color:var(--ink)}
.rules li::before{content:"🌶";position:absolute;left:0;top:0}
.rules strong{color:var(--ember)}

.admins p{max-width:70ch;color:var(--ink)}
.admins a{color:var(--red2);text-decoration:underline;text-underline-offset:2px}
.proxy-note{margin-top:.7em;font:600 .9rem/1.4 var(--mono)}

/* ---- footer ---- */
footer.site-foot{width:var(--wrap);margin:0 auto;padding:28px 0 44px;border-top:1px solid var(--line);color:var(--dim);font-size:.9rem}
footer.site-foot a{color:var(--dim);text-decoration:underline;text-underline-offset:2px}
footer.site-foot a:hover{color:var(--ink)}
.foot-links{margin-top:.5em;font-family:var(--mono);font-size:.85rem}

/* ---- gate ---- */
.gate{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(6,4,4,.86);backdrop-filter:blur(3px)}
.gate[hidden]{display:none}
.gate-card{background:var(--bg2);border:1px solid var(--line);border-top:4px solid var(--red);border-radius:4px;
  max-width:460px;width:100%;padding:28px 26px;text-align:center}
.gate-mark{font-size:2.2rem}
.gate-card h2{font-size:1.4rem;margin:.3em 0 .5em}
.gate-card p{color:var(--dim);font-size:.98rem}
.gate-card strong{color:var(--ember)}
.gate-card button{margin:1.3em 0 .6em;min-height:48px;width:100%;background:var(--red);color:#fff;
  border:0;border-radius:2px;font-weight:800;font-size:1rem;cursor:pointer}
.gate-card button:hover,.gate-card button:focus-visible{background:var(--red2)}
.gate-fine{font-size:.8rem;font-family:var(--mono)}

:focus-visible{outline:2px solid var(--ember);outline-offset:3px}

@media (max-width:520px){
  .phases li{padding-left:42px}
  header.site{padding:18px 0}
}
