
:root{
  --bg:#fbfaf7; --fg:#1d2230; --muted:#5b6275; --line:#e1ddd2; --card:#ffffff;
  --accent:#9c3d2e; --accent-fg:#ffffff; --pr-bg:#fff3d6; --pr-fg:#5a3d00; --link:#0d5a8a;
  --ok:#1f6b3a; --warn:#8a5a00;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#14161c; --fg:#e8e6df; --muted:#a2a7b5; --line:#2b2f3a; --card:#1b1e27;
    --accent:#d9705f; --accent-fg:#14161c; --pr-bg:#3a2f12; --pr-fg:#ffe2a0; --link:#7fc0ea;
    --ok:#6fcf93; --warn:#e8b45a;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);
  font:16px/1.8 "Hiragino Sans","Yu Gothic UI","Meiryo",system-ui,sans-serif;overflow-wrap:anywhere}
a{color:var(--link)}
.wrap{max-width:860px;margin:0 auto;padding:0 16px}
.pr-bar{background:var(--pr-bg);color:var(--pr-fg);font-size:14px;line-height:1.5;padding:6px 0;border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:20}
.pr-bar .wrap{display:flex;flex-wrap:wrap;gap:2px 14px}
.pr-bar strong{font-weight:700}
header.site{padding:18px 0 6px}
header.site .brand{font-size:22px;font-weight:800;text-decoration:none;color:var(--fg);letter-spacing:.04em}
header.site .brand small{font-weight:400;font-size:13px;color:var(--muted);margin-left:8px;letter-spacing:0}
nav.main{display:flex;flex-wrap:wrap;gap:4px 18px;margin:8px 0 0;font-size:15px}
nav.main a{color:var(--fg);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
nav.main a[aria-current="page"]{border-bottom-color:var(--accent);font-weight:700}
main{padding:12px 0 40px}
h1{font-size:26px;line-height:1.4;margin:20px 0 10px}
h2{font-size:20px;line-height:1.5;margin:34px 0 8px;padding-bottom:4px;border-bottom:2px solid var(--line)}
h3{font-size:17px;margin:22px 0 4px}
p,li{margin:.5em 0}
.lead{font-size:17px}
.box{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:16px 0}
.box.note{border-left:5px solid var(--accent)}
.muted{color:var(--muted);font-size:14px}
.tag{display:inline-block;font-size:13px;line-height:1.4;padding:1px 8px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.tag.confirmed{color:var(--ok);border-color:var(--ok)}
.tag.expected{color:var(--warn);border-color:var(--warn)}
.tag.unconfirmed{color:var(--muted)}
.tag.ongoing{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
table.sched{width:100%;border-collapse:collapse;margin:10px 0;font-size:15px;background:var(--card)}
table.sched th,table.sched td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
table.sched th{background:var(--bg);font-size:14px}
table.kv{width:100%;border-collapse:collapse;margin:10px 0;background:var(--card)}
table.kv th,table.kv td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
table.kv th{width:9em;background:var(--bg);font-weight:600}
@media (max-width:640px){
  table.sched thead{position:absolute;left:-9999px}
  table.sched,table.sched tbody,table.sched tr,table.sched td{display:block;width:100%}
  table.sched tr{margin:0 0 12px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
  table.sched td{border:0;border-bottom:1px solid var(--line)}
  table.sched td::before{content:attr(data-label);display:block;font-size:13px;color:var(--muted)}
  table.kv th,table.kv td{display:block;width:100%}
}
ul.plain{padding-left:1.2em}
footer.site{border-top:1px solid var(--line);padding:18px 0 40px;font-size:14px;color:var(--muted)}
footer.site nav{display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0}
.unofficial{margin:0 0 6px;color:var(--fg)}
noscript .box{margin:8px 16px}
/* 年齢確認オーバーレイ(JS が作る。本文は HTML に最初から入っている) */
.age-gate{position:fixed;inset:0;z-index:1000;background:rgba(10,12,18,.94);display:flex;align-items:center;justify-content:center;padding:16px}
.age-gate .panel{background:var(--card);color:var(--fg);max-width:440px;width:100%;border-radius:12px;padding:24px 22px;text-align:center}
.age-gate h2{border:0;margin:0 0 8px;font-size:21px}
.age-gate p{font-size:15px}
.age-gate .row{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.age-gate button{flex:1 1 140px;font:inherit;font-weight:700;padding:12px 10px;border-radius:8px;border:1px solid var(--accent);cursor:pointer;min-height:44px}
.age-gate .yes{background:var(--accent);color:var(--accent-fg)}
.age-gate .no{background:transparent;color:var(--fg);border-color:var(--line)}
.age-gate button:focus-visible{outline:3px solid var(--link);outline-offset:2px}
body.age-locked{overflow:hidden}
