@charset "UTF-8";

/*****************************************
  *----------------------------------
  |  ThisStyleVersion: 2.0.0      |
  |  © 2021-2026 By ISAMI ABE     |
  |  LastUpdate: 2026-10-11       |
  |  License: none                |
  |  RulesStyle                   |
----------------------------------*
******************************************/

/*
  ルールズの見た目(JS が無くても効くものだけ)。
  JS があるときだけ使う部品(読み上げ・文字サイズのボタン、アニメーション)の見た目は rules.js の中にあります。

  【古いブラウザ(IE等)でも読めることを先に守ること】
  - 見た目は div と class に付けます。main・nav・section などの HTML5 の要素には付けません(IE8 以前は当てられません)。
  - 色は先に単色で書き、その下に rgba・グラデーションを重ねます(読めないブラウザは単色のまま)。
  - 並べ方は inline-block と float までにします。flex・grid は @supports の中だけで使います。
  - CSS の変数(var)は使いません(IE は読めず、色がまるごと抜けます)。
  色: 背景 #050b12(濃紺)/ 黄緑 #a6ff00 / 水色 #00e5ff / 文字 #e6f6ff
*/

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  background: #050b12;
}

body {
  margin: 0;
  padding: 0;
  background: #050b12;
  color: #e6f6ff;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, "MS PGothic", sans-serif;
  line-height: 1.8;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* 文字サイズ(JS のボタンが cookie に書き、PHP が <html> の class にします) */
html.rules-font-s body { font-size: 14px; }
html.rules-font-m body { font-size: 16px; }
html.rules-font-l body { font-size: 19px; }
html.rules-font-xl body { font-size: 23px; }

a {
  color: #00e5ff;
}
a:hover,
a:focus {
  color: #a6ff00;
}
a:focus {
  outline: 2px solid #a6ff00;
  outline-offset: 2px;
}

.rules-page {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 16px 40px;
}

/* ---- 見出しの帯 ---- */
.rules-header {
  padding: 40px 0 24px;
  border-bottom: 1px solid #1d4a5c;
}
.rules-kicker,
.rules-panel-kicker {
  margin: 0;
  color: #a6ff00;
  font-family: Consolas, "Courier New", monospace;
  font-size: 0.8em;
  letter-spacing: 0.25em;
}
.rules-header h1 {
  margin: 4px 0 8px;
  color: #00e5ff;
  font-size: 2.4em;
  line-height: 1.2;
  letter-spacing: 0.08em;
}
.rules-lead {
  margin: 0;
  color: #9fc3d4;
}

/* ---- タブ(JS が無ければ、ただのリンクの並び) ---- */
.rules-nav {
  margin: 24px 0 16px;
}
.rules-tabs {
  margin: 0;
  padding: 0;
  list-style: none;
}
.rules-tab-item {
  display: inline-block;
  *display: inline; /* IE6・7 */
  *zoom: 1;
  width: 19.5%;
  margin: 0 0 8px;
  vertical-align: top;
}
.rules-tab {
  display: block;
  margin: 0 4px;
  padding: 12px 14px;
  border: 1px solid #1d4a5c;
  background: #0a1724;
  color: #e6f6ff;
  text-decoration: none;
}
.rules-tab:hover,
.rules-tab:focus {
  border-color: #00e5ff;
  color: #e6f6ff;
}
.rules-tab.is-current {
  border-color: #a6ff00;
  background: #10251a;
}
.rules-tab-title {
  display: block;
  color: #00e5ff;
  font-weight: bold;
}
.rules-tab.is-current .rules-tab-title {
  color: #a6ff00;
}
.rules-tab-desc {
  display: block;
  margin-top: 4px;
  color: #9fc3d4;
  font-size: 0.78em;
  line-height: 1.5;
}

/* ---- 本文 ---- */
.rules-panel {
  padding: 24px;
  border: 1px solid #1d4a5c;
  background: #08131e;
}
.rules-panel.is-hidden {
  display: none;
}
.rules-panel-head {
  padding-bottom: 12px;
  margin-bottom: 16px;
  border-bottom: 1px solid #1d4a5c;
}
.rules-panel-head h2 {
  margin: 4px 0 0;
  color: #e6f6ff;
  font-size: 1.7em;
  line-height: 1.3;
}
.rules-dates {
  margin: 0 0 16px;
  padding: 8px 12px;
  border-left: 3px solid #a6ff00;
  background: #0c1d14;
  color: #c7e9b0;
  font-family: Consolas, "Courier New", monospace;
  font-size: 0.85em;
}
.rules-doc h3 {
  margin: 32px 0 8px;
  padding: 4px 0 4px 12px;
  border-left: 4px solid #00e5ff;
  color: #00e5ff;
  font-size: 1.2em;
}
.rules-doc h4 {
  margin: 20px 0 6px;
  color: #a6ff00;
  font-size: 1.05em;
}
.rules-doc p,
.rules-doc li {
  color: #d5e9f3;
}
.rules-doc ol,
.rules-doc ul {
  padding-left: 1.6em;
}
.rules-doc li {
  margin: 4px 0;
}
.rules-doc code {
  padding: 1px 6px;
  border: 1px solid #1d4a5c;
  background: #0a1724;
  color: #a6ff00;
  font-family: Consolas, "Courier New", monospace;
}
.rules-doc table {
  width: 100%;
  margin: 12px 0;
  border-collapse: collapse;
}
.rules-doc th,
.rules-doc td {
  padding: 10px 12px;
  border: 1px solid #1d4a5c;
  text-align: left;
  vertical-align: top;
}
.rules-doc th {
  width: 28%;
  background: #0c1d2a;
  color: #00e5ff;
}
.rules-doc .tokusyou span {
  display: block;
  color: #a6ff00;
  font-weight: bold;
}

/* リンク切れ(rules/* の外の行き先が台帳から決められなかったとき) */
.rules-broken {
  color: #ff9f9f;
  text-decoration: line-through;
}
.rules-broken-note {
  display: inline;
  margin-left: 4px;
  color: #ffd27a;
  font-size: 0.85em;
  text-decoration: none;
}

/* ---- 下の帯 ---- */
.rules-footer {
  margin-top: 32px;
  padding-top: 16px;
  border-top: 1px solid #1d4a5c;
  color: #6f8fa0;
  text-align: center;
}

/* ---- 狭い画面 ---- */
@media screen and (max-width: 960px) {
  .rules-tab-item {
    width: 32.5%;
  }
}
@media screen and (max-width: 760px) {
  .rules-tab-item {
    width: 49%;
  }
  .rules-header h1 {
    font-size: 1.9em;
  }
  .rules-panel {
    padding: 16px;
  }
  .rules-doc th {
    width: 36%;
  }
}
@media screen and (max-width: 420px) {
  .rules-tab-item {
    width: 100%;
  }
  .rules-tab-desc {
    display: none;
  }
}

/* ---- ここから下は、読めるブラウザだけが重ねる見た目(読めなければ上の単色のまま) ---- */
body {
  background:
    linear-gradient(rgba(0, 229, 255, 0.05) 1px, transparent 1px) 0 0 / 40px 40px,
    linear-gradient(90deg, rgba(0, 229, 255, 0.05) 1px, transparent 1px) 0 0 / 40px 40px,
    radial-gradient(ellipse at 20% -10%, rgba(166, 255, 0, 0.16), transparent 55%),
    radial-gradient(ellipse at 90% 10%, rgba(0, 229, 255, 0.18), transparent 50%),
    #050b12;
  background-attachment: fixed;
}
.rules-header {
  border-bottom-color: rgba(0, 229, 255, 0.35);
}
.rules-tab {
  border-radius: 10px;
  border-color: rgba(0, 229, 255, 0.25);
  background: rgba(10, 23, 36, 0.8);
  -webkit-transition: border-color 0.2s, box-shadow 0.2s, -webkit-transform 0.2s;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.rules-tab:hover,
.rules-tab:focus {
  box-shadow: 0 0 0 1px rgba(0, 229, 255, 0.5), 0 0 18px rgba(0, 229, 255, 0.25);
}
.rules-tab.is-current {
  background: linear-gradient(135deg, rgba(166, 255, 0, 0.16), rgba(0, 229, 255, 0.08));
  box-shadow: 0 0 0 1px rgba(166, 255, 0, 0.6), 0 0 24px rgba(166, 255, 0, 0.25);
}
.rules-panel {
  border-radius: 16px;
  border-color: rgba(0, 229, 255, 0.25);
  background: rgba(8, 19, 30, 0.88);
  box-shadow: 0 0 0 1px rgba(166, 255, 0, 0.06), 0 20px 60px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.rules-panel-head,
.rules-doc th,
.rules-doc td,
.rules-footer {
  border-color: rgba(0, 229, 255, 0.2);
}
.rules-dates {
  border-radius: 0 8px 8px 0;
  background: rgba(166, 255, 0, 0.07);
}
.rules-doc code {
  border-radius: 4px;
}
.rules-doc th {
  background: rgba(0, 229, 255, 0.07);
}
.rules-doc h3 {
  text-shadow: 0 0 12px rgba(0, 229, 255, 0.45);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .rules-header h1 {
    background: linear-gradient(90deg, #a6ff00, #00e5ff 60%, #7af7ff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
}

@supports (display: grid) {
  .rules-tabs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
  }
  .rules-tab-item {
    width: auto;
    margin: 0;
  }
  .rules-tab {
    height: 100%;
    margin: 0;
  }
  @media screen and (max-width: 960px) {
    .rules-tabs {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }
  @media screen and (max-width: 760px) {
    .rules-tabs {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  @media screen and (max-width: 420px) {
    .rules-tabs {
      grid-template-columns: minmax(0, 1fr);
    }
  }
}

@media print {
  body,
  .rules-panel,
  .rules-tab {
    background: #fff;
    color: #000;
    box-shadow: none;
  }
  .rules-nav {
    display: none;
  }
  .rules-panel.is-hidden {
    display: block;
  }
  .rules-header h1,
  .rules-panel-head h2,
  .rules-doc h3,
  .rules-doc h4,
  .rules-doc p,
  .rules-doc li,
  .rules-doc th,
  .rules-doc td,
  .rules-dates {
    background: none;
    color: #000;
    text-shadow: none;
  }
}
