:root {
  --c-bg: #ffffff;
  --c-sub: #f4f4f4;
  --c-block: #e6e6e6;
  --c-outside: #000000;
  --c-text: #1a1a1a;
  --c-text-sub: #666666;
  --c-invert: #1a1a1a;
  --c-invert-text: #ffffff;
  --c-accent: #ff0045;       /* ロゴと同じ赤 */
  --c-accent-text: #ffffff;
  --en: "Oswald", sans-serif;
  --ja: "Noto Sans JP", sans-serif;
  /* ロゴ英字と同じ Good Times（Adobe Fonts） */
  --logo: "good-times", "Good Times", "GoodTimesRg-Bold", sans-serif;
  --w: 430px;       /* 表示幅（スマホ幅で固定） */
  --header-h: 60px;
  --shadow-x: 10px; /* くっきりした影のずらし幅 */
  --slant: 40px;    /* セクション境目の斜めの高さ */
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); }
body {
  background: var(--c-outside);
  color: var(--c-text);
  font-family: var(--ja);
  font-size: 15px;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}
/* PC背景：黒の上に画像を40%で重ねる（スマホ幅の枠の外側に見える） */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background: url("../img/pc-bg.jpg") center / cover no-repeat;
  opacity: .4;
  pointer-events: none;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

/* PCでもスマホ幅で中央表示 */
.page {
  max-width: var(--w);
  margin-inline: auto;
  background: var(--c-bg);
  min-height: 100svh;            /* 中身が短いページでも下まで白く */
  overflow: hidden;
}

.inner { padding-inline: 20px; }
section { padding: 80px 0; }
.bg-sub { background: var(--c-sub); }

/* Section title */
.sec-head { text-align: center; margin-bottom: 40px; }
.sec-head__en {
  font-family: var(--en);
  font-weight: 700;
  font-size: 56px;
  line-height: 1;
  letter-spacing: .02em;
}
.sec-head__ja {
  margin-top: 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .2em;
}
.sec-head__lead {
  margin-top: 24px;
  font-size: 14px;
  color: var(--c-text-sub);
}

/* Header */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  max-width: var(--w);
  margin-inline: auto;
  height: var(--header-h);
  padding: 0 8px 0 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--c-bg);
  /* ほんのり赤みのある薄い影 */
  box-shadow: 0 4px 16px rgba(255, 0, 69, .12);
}
.header__logo img { height: 28px; width: auto; }
.header__actions { display: flex; align-items: center; gap: 6px; }
.header__entry {
  display: grid;
  place-items: center;
  height: 44px;
  padding: 0 20px;
  background: var(--c-invert);
  color: var(--c-invert-text);
  border-radius: 999px;
  font-family: var(--en);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: .12em;
}
.menu-btn {
  display: grid;
  place-items: center;
  width: 44px; height: 44px;
  background: var(--c-invert);
  border: 0;
  cursor: pointer;
}
.menu-btn span,
.menu-btn span::before,
.menu-btn span::after {
  display: block;
  width: 20px; height: 2px;
  background: var(--c-invert-text);
  position: relative;
  transition: transform .3s, background .3s;
}
.menu-btn span::before,
.menu-btn span::after { content: ""; position: absolute; left: 0; }
.menu-btn span::before { top: -7px; }
.menu-btn span::after { top: 7px; }
.is-open .menu-btn span { background: transparent; }
.is-open .menu-btn span::before { transform: translateY(7px) rotate(45deg); }
.is-open .menu-btn span::after { transform: translateY(-7px) rotate(-45deg); }
.gnav {
  position: fixed;
  top: var(--header-h);
  bottom: 0;
  left: 0;
  right: 0;
  max-width: var(--w);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 32px;
  background: var(--c-sub);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s;
}
.gnav a {
  font-family: var(--en);
  font-weight: 500;
  font-size: 28px;
  letter-spacing: .1em;
}
.is-open .gnav { opacity: 1; visibility: visible; }
.gnav .gnav__ext {
  margin-top: 8px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ja);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .08em;
}
.gnav__ext svg { width: 11px; fill: currentColor; }

/* KV */
/* cqi = スマホ幅の枠の横幅に対する% */
.kv-wrap { container-type: inline-size; }
.kv {
  --kv-r: 1.776;                 /* KV画像の 高さ÷幅（js/main.js が実際の画像から入れ直す） */
  position: relative;
  overflow: hidden;
  background: var(--c-invert);
  color: var(--c-invert-text);
  text-align: center;
}
.kv__bg {
  /* 画像は切り取らずに全体を表示（ヘッダーの下から始める） */
  position: absolute;
  top: var(--header-h);
  left: 0;
  width: 100%;
  height: auto;
}
/* 画像の下端を背景色になじませる */
.kv::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: calc(var(--header-h) + var(--kv-r) * 100cqi - 70cqi);
  height: 70cqi;
  background: linear-gradient(to bottom, rgba(26,26,26,0), var(--c-invert));
  pointer-events: none;
}
/* テキストはボールの下端（画像の約73%）より下から開始 */
.kv__content {
  position: relative;
  z-index: 1;
  /* 文字は画像の高さの80%より下から。ただしモニターが最初の画面に収まらない場合は、収まる高さまで上げる */
  padding: calc(var(--header-h) + 16px + max(0px, min(
    var(--kv-r) * 80cqi - 16px,
    100svh - var(--header-h) - 16px - var(--kv-title-h, 70px) - var(--kv-card-h, 280px) - var(--slant) - 24px
  ))) 20px 56px;                 /* ヘッダーとタイトルの間は最低16pxあける */
}
.kv__title {
  font-family: var(--logo);
  font-weight: 700;
  line-height: 1.15;
  text-transform: uppercase;
}
.kv__title span { display: block; white-space: nowrap; }
.kv__title span:first-child { font-size: 6.9cqi; }
.kv__title span:last-child { font-size: 8.9cqi; }
.kv__info {
  margin-top: 40px;
  display: inline-flex;
  flex-direction: column;
  gap: 14px;
}
.kv__date {
  font-family: var(--en);
  font-weight: 700;
  font-size: 44px;
  line-height: 1;
  letter-spacing: .04em;
}
.kv__date small { font-size: .45em; margin-left: .3em; }
.kv__venue {
  display: inline-block;
  align-self: center;
  padding: 8px 28px;
  background: var(--c-invert-text);
  color: var(--c-invert);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .1em;
}

.kv-cta {
  margin: 32px auto 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 18px 16px;
  background: var(--c-bg);
  color: var(--c-text);
  border-radius: 999px;
}
.kv-cta__en {
  font-family: var(--en);
  font-weight: 700;
  font-size: 36px;
  line-height: 1;
  letter-spacing: .12em;
}
.kv-cta__ja {
  margin-top: 6px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
}

/* NEWS */
.news-sec { padding: 64px 0; }
.news { list-style: none; }
.news__item {
  padding: 18px 4px;
  border-bottom: 1px solid var(--c-text);
}
.news__date {
  display: block;
  font-family: var(--en);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: .08em;
  color: var(--c-text-sub);
}
.news__title {
  margin-top: 4px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
}

/* ABOUT */
.about__catch {
  text-align: center;
  /* 1行（13文字）に収まる最大サイズ。画面幅に合わせて変わり、最大29px */
  font-size: min(calc((100vw - 40px) / 13.3), 29px);
  white-space: nowrap;
  font-weight: 900;
  line-height: 1.5;
  margin-bottom: 36px;
}
.about__body {
  text-align: center;
  font-weight: 500;
  line-height: 2.2;
}
.about__body p + p { margin-top: 2em; }
.about__last {
  margin-top: 36px;
  text-align: center;
  font-size: 17px;
  font-weight: 700;
}

/* AMBASSADOR */
.amb__img-wrap {
  margin-right: var(--shadow-x);
  filter: drop-shadow(var(--shadow-x) var(--shadow-x) 0 var(--c-text));
}
/* お知らせと同じ、左上・右下を斜めにカットした枠 */
.amb__img {
  --cut: 28px;
  --bd: 2px;
  --cut-in: calc(var(--cut) - var(--bd) * 0.414);
  aspect-ratio: 4 / 5;
  padding: var(--bd);
  background: var(--c-text);
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
}
.amb__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 12%;
  clip-path: polygon(var(--cut-in) 0, 100% 0, 100% calc(100% - var(--cut-in)), calc(100% - var(--cut-in)) 100%, 0 100%, 0 var(--cut-in));
}
.amb__body { margin-top: 28px; }
/* 画面の左端から引かれる、右端が斜めのマーカー */
.amb__role {
  position: relative;
  display: inline-block;
  margin-left: -20px;           /* .inner の左余白ぶん、端まで伸ばす */
  padding: 6px 32px 6px 20px;
  margin-right: 24px;           /* 後ろの2本線のぶん */
  color: var(--c-invert-text);
  font-family: var(--en);
  font-weight: 500;
  font-size: 13px;
  line-height: 1.4;
  letter-spacing: .2em;
  isolation: isolate;
}
.amb__role::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--c-invert);
  clip-path: polygon(0 0, 100% 0, calc(100% - 16px) 100%, 0 100%);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
/* マーカーの斜めの端に続く2本の線（同じ角度に傾ける） */
.amb__role-lines {
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(100% - 16px + 5px);
  display: flex;
  gap: 4px;
  transform-origin: left bottom;
  transform: skewX(-28deg);
}
.amb__role-lines i {
  display: block;
  width: 5px;
  background: var(--c-invert);
  transform-origin: center bottom;
  transform: scaleY(0);
  transition: transform .18s ease-out;
}
.amb__role-lines i + i { width: 3px; }
/* マーカー → 1本目 → 2本目 の順に引く */
.amb__role.is-drawn::before { transform: scaleX(1); }
.amb__role.is-drawn .amb__role-lines i { transform: scaleY(1); }
.amb__role.is-drawn .amb__role-lines i:nth-child(1) { transition-delay: .5s; }
.amb__role.is-drawn .amb__role-lines i:nth-child(2) { transition-delay: .66s; }
@media (prefers-reduced-motion: reduce) {
  .amb__role::before,
  .amb__role-lines i { transform: none; transition: none; }
}
.amb__name {
  margin-top: 6px;
  font-size: 40px;
  font-weight: 900;
  line-height: 1.2;
}
.amb__sub {
  margin-top: 4px;
  font-family: var(--en);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: .1em;
  color: var(--c-text-sub);
}
.amb__text { margin-top: 24px; }
.amb__name-row { margin-top: 12px; display: flex; align-items: center; gap: 14px; }
.amb__name-row .amb__name { margin-top: 0; }
.amb__yt { display: block; width: 44px; line-height: 0; transition: opacity .2s; }
.amb__yt:hover { opacity: .7; }
.amb__yt svg { width: 100%; height: auto; fill: var(--c-text); }

/* POINT */
.points {
  display: grid;
  gap: 24px;
  padding: 0 var(--shadow-x) var(--shadow-x) 0;
}
/* 影は外側のラッパーに付ける（clip-pathの要素自体には影が付かないため） */
.point-wrap { filter: drop-shadow(var(--shadow-x) var(--shadow-x) 0 var(--c-text)); }
/* お知らせで使っていた、左上・右下を斜めにカットした枠 */
.point {
  --cut: 20px;
  --bd: 2px;
  position: relative;
  isolation: isolate;
  padding: 40px 24px;
  text-align: center;
  background: var(--c-text);
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
}
.point::before {
  --cut-in: calc(var(--cut) - var(--bd) * 0.414);
  content: "";
  position: absolute;
  inset: var(--bd);
  z-index: -1;
  background: var(--c-bg);
  clip-path: polygon(var(--cut-in) 0, 100% 0, 100% calc(100% - var(--cut-in)), calc(100% - var(--cut-in)) 100%, 0 100%, 0 var(--cut-in));
}
.point__num {
  font-family: var(--en);
  font-weight: 700;
  font-size: 18px;
  color: var(--c-text-sub);
  letter-spacing: .1em;
}
.point__icon {
  width: 104px; height: 104px;
  margin: 20px auto 24px;
  border-radius: 50%;
  background: var(--c-block);
  display: grid;
  place-items: center;
}
.point__icon svg { width: 60%; height: 60%; fill: var(--c-text); }
.point__title {
  font-size: 28px;
  font-weight: 900;
  line-height: 1.3;
}
.point__text { margin-top: 12px; font-size: 14px; color: var(--c-text-sub); }

/* 賞金 */
.prize__total {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.prize__total-label {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .15em;
  color: var(--c-text-sub);
}
.prize__total-num {
  font-family: var(--en);
  font-weight: 700;
  font-size: 56px;
  line-height: 1.1;
  letter-spacing: .02em;
}
.prize {
  list-style: none;
  margin-top: 20px;
  display: grid;
  gap: 6px;
}
.prize__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  background: var(--c-sub);
  font-family: var(--en);
  font-weight: 700;
  line-height: 1;
}
.prize__rank { font-size: 22px; }
.prize__rank small { font-family: var(--ja); font-weight: 900; font-size: .6em; margin-left: 2px; }
.prize__num { font-size: 26px; letter-spacing: .02em; }
.prize__row--1 {
  padding: 16px;
  background: var(--c-invert);
  color: var(--c-invert-text);
}
.prize__row--1 .prize__rank { font-size: 30px; }
.prize__row--1 .prize__num { font-size: 38px; }
.prize__row--mvp .prize__rank { font-size: 18px; letter-spacing: .08em; }
.prize__row--mvp .prize__num { font-size: 22px; }

/* カードの左右・下の端まで広げる（枠線2pxは残す） */
.prize-pre {
  --cut-in: calc(20px - 2px * 0.414);
  margin: 24px -22px -38px;
  padding: 20px 22px 28px;
  background: var(--c-block);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--cut-in)), calc(100% - var(--cut-in)) 100%, 0 100%);
}
.prize-pre__head { font-size: 17px; font-weight: 900; }
.prize-pre__list {
  margin-top: 12px;
  display: grid;
  gap: 6px;
}
.prize-pre__list > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: var(--c-bg);
  white-space: nowrap;
}
.prize-pre__list dt {
  font-family: var(--en);
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
}
.prize-pre__list dt small { font-family: var(--ja); font-weight: 900; font-size: .6em; margin-left: 2px; }
.prize-pre__list dd {
  font-family: var(--en);
  font-weight: 700;
  font-size: 34px;
  line-height: 1;
  letter-spacing: .02em;
}
.prize-pre__list dd small { font-family: var(--ja); font-size: 13px; font-weight: 700; margin-left: 4px; }

/* SPECIAL */
.special-sec { padding-bottom: 0; }
/* POINT・写真と同じトンマナ：斜めカットの黒枠＋くっきりした赤い影 */
.special-wrap {
  margin-right: var(--shadow-x);
  filter: drop-shadow(var(--shadow-x) var(--shadow-x) 0 var(--c-accent));
}
.special {
  --cut: 24px;
  --bd: 2px;
  --cut-in: calc(var(--cut) - var(--bd) * 0.414);
  display: flow-root;           /* 画像の上マージンが外に抜けないように */
  position: relative;
  isolation: isolate;
  background: var(--c-text);
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
}
.special::before {
  content: "";
  position: absolute;
  inset: var(--bd);
  z-index: -1;
  background: var(--c-bg);
  clip-path: polygon(var(--cut-in) 0, 100% 0, 100% calc(100% - var(--cut-in)), calc(100% - var(--cut-in)) 100%, 0 100%, 0 var(--cut-in));
}
.special__img {
  margin: var(--bd) var(--bd) 0;
  aspect-ratio: 1 / 1;
  background: var(--c-block);
  clip-path: polygon(var(--cut-in) 0, 100% 0, 100% 100%, 0 100%, 0 var(--cut-in));
}
.special__body { padding: 32px 24px 40px; }
/* GUEST AMBASSADORと同じマーカー（カードの左端から引く・黒地＋黒の2本線） */
.special__label {
  position: relative;
  isolation: isolate;
  display: inline-block;
  margin-left: -22px;           /* 本文の左余白ぶん、枠の内側の端まで伸ばす */
  margin-right: 24px;
  padding: 5px 32px 5px 22px;
  color: var(--c-accent-text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .1em;
}
.special__label::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--c-invert);
  clip-path: polygon(0 0, 100% 0, calc(100% - 16px) 100%, 0 100%);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.special__label .amb__role-lines i { background: var(--c-invert); }
.special__label.is-drawn::before { transform: scaleX(1); }
.special__label.is-drawn .amb__role-lines i { transform: scaleY(1); }
.special__label.is-drawn .amb__role-lines i:nth-child(1) { transition-delay: .5s; }
.special__label.is-drawn .amb__role-lines i:nth-child(2) { transition-delay: .66s; }
@media (prefers-reduced-motion: reduce) {
  .special__label::before { transform: none; transition: none; }
}
.special__title {
  margin-top: 20px;
  font-size: 28px;
  font-weight: 900;
  line-height: 1.4;
}
.special__text { margin-top: 16px; }

.extra {
  margin-top: 56px;
  padding: 48px 0;
  background: var(--c-block);
  text-align: center;
}
.extra__en {
  font-family: var(--en);
  font-weight: 700;
  font-size: 60px;
  line-height: 1;
}
.extra__title { margin-top: 16px; font-size: 18px; font-weight: 900; }
.extra__text { margin-top: 6px; font-size: 13px; color: var(--c-text-sub); }

/* Side bands（PC表示時のみ） */
:root { --band-w: 36px; }
.band { display: none; }
@media (min-width: 560px) {
  .band {
    display: block;
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: 90;
    width: var(--band-w);
    overflow: hidden;
    background: var(--c-bg);
  }
  .band--l { left: calc(50% - var(--w) / 2 - var(--band-w)); }
  .band--r { left: calc(50% + var(--w) / 2); background: var(--c-invert); color: var(--c-invert-text); }
  .band__track {
    display: flex;
    flex-direction: column;
    width: 100%;
    animation: band-up 24s linear infinite;
    will-change: transform;
    backface-visibility: hidden;
  }
  .band--r .band__track { animation-name: band-down; }
  .band__text {
    writing-mode: vertical-rl;
    align-self: center;
    padding-inline: 24px;
    font-family: var(--en);
    font-weight: 700;
    font-size: 17px;
    letter-spacing: .12em;
    white-space: nowrap;
  }
  .band__text i {
    font-style: normal;
    display: inline-block;
    margin-inline: 14px;
    font-size: .6em;
    transform: rotate(45deg);
  }
  .band__stripe {
    height: 200px;
    margin: 12px 9px;
    background: repeating-linear-gradient(-45deg, currentColor 0 7px, transparent 7px 14px);
  }
  .band--r .band__text { font-size: 12px; letter-spacing: .2em; }
  /* 1ブロックの高さを整数pxに固定（ループの継ぎ目で位置がずれないように） */
  .band--l .band__text { height: 432px; flex-shrink: 0; }
  .band--r .band__text { height: 304px; flex-shrink: 0; }
  .band__stripe { flex-shrink: 0; }
  @keyframes band-up   { from { transform: translateY(0); }    to { transform: translateY(-50%); } }
  @keyframes band-down { from { transform: translateY(-50%); } to { transform: translateY(0); } }
}
@media (prefers-reduced-motion: reduce) {
  .band__track { animation: none; }
}

/* PC左右エリア（ロゴ / CTA） */
.side { display: none; }
@media (min-width: 1000px) {
  .side {
    position: fixed;
    top: 0;
    bottom: 0;
    width: calc(50% - var(--w) / 2 - var(--band-w));
    display: grid;
    place-items: center;
    padding: 40px;
  }
  .side--l { left: 0; }
  .side--r { right: 0; }
  .side__logo { width: min(320px, 100%); mix-blend-mode: multiply; }
  .side-cta {
    width: min(320px, 100%);
    text-align: center;
  }
  .side-cta__lead {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .05em;
  }
  .side-cta__btn {
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 24px 16px;
    background: var(--c-invert);
    color: var(--c-invert-text);
    border-radius: 999px;
    transition: opacity .2s;
  }
  .side-cta__btn:hover { opacity: .8; }
  .side-cta__en {
    font-family: var(--en);
    font-weight: 700;
    font-size: 44px;
    line-height: 1;
    letter-spacing: .12em;
  }
  .side-cta__ja {
    margin-top: 8px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .1em;
    white-space: nowrap;
    opacity: .8;
  }
}
/* ENTRY */
.entry-sec {
  position: relative;
  background: var(--c-invert);
  color: var(--c-invert-text);
}
/* モノクロのテクスチャを5%で重ねる */
.entry-sec::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/texture.jpg") center / cover no-repeat;
  opacity: .05;
  pointer-events: none;
}
.entry-sec > .inner { position: relative; z-index: 1; }
.entry-sec .sec-head__lead { color: inherit; opacity: .75; }
.entry-info { display: grid; gap: 6px; }
.entry-info__row {
  display: grid;
  grid-template-columns: 96px 1fr;
  align-items: center;
  gap: 16px;
  padding: 14px 16px;
  background: rgba(255, 255, 255, .08);
}
.entry-info__row dt {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  opacity: .7;
}
.entry-info__row dd { font-size: 16px; font-weight: 700; line-height: 1.6; }
.entry-info__row dd.is-tbd { font-weight: 500; opacity: .6; }
.entry-btn {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 22px 16px;
  background: var(--c-invert-text);
  color: var(--c-invert);
  border-radius: 999px;
}
.entry-btn__en {
  font-family: var(--en);
  font-weight: 700;
  font-size: 40px;
  line-height: 1;
  letter-spacing: .12em;
}
.entry-btn__ja {
  margin-top: 6px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
}

/* ===== カラー（ベース白・黒 ＋ アクセントにロゴの赤） ===== */
/* セクション見出し：英語・日本語とも赤 */
.sec-head__en,
.sec-head__ja { color: var(--c-accent); }
/* 赤背景のセクションでは見出しを白 */
.bg-accent { background: var(--c-accent); color: var(--c-accent-text); }
.bg-accent .sec-head__en,
.bg-accent .sec-head__ja,
.extra .extra__en,
.extra .extra__title { color: var(--c-accent-text); }
/* ENTRY（黒背景）の見出しは白 */
.entry-sec .sec-head__en,
.entry-sec .sec-head__ja { color: var(--c-invert-text); }

/* エントリーボタンはすべて赤 */
.header__entry,
.side-cta__btn,
.kv-cta,
.entry-btn { background: var(--c-accent); color: var(--c-accent-text); }

/* KV */
.kv__date small { color: var(--c-accent); }

/* NEWS：日付を赤 */
.news__date { color: var(--c-accent); }

/* AMBASSADOR：写真の影・2本線・YouTubeを赤 */
.amb__img-wrap { filter: drop-shadow(var(--shadow-x) var(--shadow-x) 0 var(--c-accent)); }
.amb__role-lines i { background: var(--c-invert); }
.amb__yt svg { fill: var(--c-accent); }

/* POINT：カードの影・アイコンを赤 */
.point-wrap { filter: drop-shadow(var(--shadow-x) var(--shadow-x) 0 var(--c-accent)); }
.point__num { color: var(--c-accent); }
.point__icon { background: var(--c-accent); }
.point__icon svg { fill: var(--c-accent-text); }
/* カードの塗りはグレー、中の賞金の帯は白にして区別 */
.point::before { background: var(--c-sub); }
.prize__row:not(.prize__row--1) { background: var(--c-bg); }
/* 予選大会のボックスは黒地に白文字 */
.prize-pre { background: var(--c-invert); color: var(--c-invert-text); }
.prize-pre__list > div { color: var(--c-text); }
/* セクションの説明テキストは本文と同じ色（黒背景では白） */
.sec-head__lead { color: inherit; }
.entry-sec .sec-head__lead { opacity: 1; }
.prize__total-num { color: var(--c-accent); }
.prize__row--1 .prize__num { color: var(--c-accent); }

/* SPECIAL：ラベルを赤 */

/* EXHIBITION：赤の帯 */
.extra { background: var(--c-accent); color: var(--c-accent-text); }
.extra__text { color: inherit; opacity: .85; }

/* ENTRY：項目名を赤 */
.entry-info__row dt { color: var(--c-accent); opacity: 1; }

/* PC左右：黒背景（＋画像40%）、右の帯は赤 */
.side__logo { mix-blend-mode: normal; }
.side-cta__lead { color: var(--c-invert-text); }
.band--r { background: var(--c-accent); color: var(--c-accent-text); }
.band--l { background: var(--c-invert); color: var(--c-invert-text); }
.band--l .band__text i { color: var(--c-accent); }

/* 白背景のセクション：マウスに反応するドット（canvasで描画） */
.bg-dots { position: relative; background-color: var(--c-bg); }
.bg-dots > .dots-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  /* 上下の端はドットをグラデーションで消して、隣のセクションになじませる */
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 120px, #000 calc(100% - 120px), transparent 100%);
          mask-image: linear-gradient(to bottom, transparent 0, #000 120px, #000 calc(100% - 120px), transparent 100%);
}
.bg-dots > .inner { position: relative; z-index: 1; }

/* ===== EXHIBITION：グリッチ風アニメーション ===== */
.extra { position: relative; overflow: hidden; }
/* 走査線（うっすら横線が流れる） */
.extra::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(to bottom, rgba(0,0,0,.08) 0 1px, transparent 1px 4px);
  animation: scan 6s linear infinite;
  pointer-events: none;
}
@keyframes scan { to { background-position: 0 120px; } }
.extra__inner { position: relative; z-index: 1; }

/* JSでランダムに値を入れて、色ずれ（RGBスプリット）と横ずれの帯を作る */
.glitch {
  --a-clip: inset(0 0 100% 0);
  --b-clip: inset(0 0 100% 0);
  --a-x: 0px;
  --b-x: 0px;
  --skew: 0deg;
  --split: 0px;
  position: relative;
  display: inline-block;
  transform: skewX(var(--skew));
  text-shadow: calc(var(--split) * -1) 0 rgba(0, 255, 255, .75), var(--split) 0 rgba(0, 0, 0, .55);
}
.glitch::before,
.glitch::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  white-space: pre;
  pointer-events: none;
}
.glitch::before {
  color: #00f0ff;
  mix-blend-mode: screen;
  transform: translateX(var(--a-x));
  clip-path: var(--a-clip);
}
.glitch::after {
  color: var(--c-invert);
  transform: translateX(var(--b-x));
  clip-path: var(--b-clip);
}
.glitch.is-flicker { opacity: .75; }
@media (prefers-reduced-motion: reduce) {
  .extra::after { animation: none; }
  .glitch::before, .glitch::after { display: none; }
}

/* ===== セクションの境目：右上がりの斜め ===== */
/* 各セクションの上辺を「左が低く右が高い」形に切り、前のセクションに重ねる */
main > section,
.extra {
  clip-path: polygon(0 var(--slant), 100% 0, 100% 100%, 0 100%);
}
main > section {
  margin-top: calc(var(--slant) * -1);
  padding-top: calc(80px + var(--slant));
}
.news-sec { padding-top: calc(64px + var(--slant)); background: var(--c-bg); }
.extra { padding-top: calc(48px + var(--slant)); }

/* 赤の斜めアンダーライン：左から引かれて、右へ抜けて消える */
.swipe-line {
  position: relative;
  display: inline-block;
  isolation: isolate;
}
.swipe-line::after {
  content: "";
  position: absolute;
  left: -4px;
  right: -4px;
  bottom: .02em;
  height: .32em;
  z-index: -1;
  background: var(--c-accent);
  transform: skewX(-24deg);
  clip-path: inset(0 100% 0 0);
  opacity: 0;                   /* 引く前・消えた後に細い線が残らないように */
}
.swipe-line.is-drawn::after { animation: swipe-line 2.2s cubic-bezier(.6, 0, .3, 1) forwards; }
@keyframes swipe-line {
  0%   { clip-path: inset(0 100% 0 0); opacity: 1; }   /* 何もない */
  30%  { clip-path: inset(0 0 0 0); }                  /* 左から引かれる */
  65%  { clip-path: inset(0 0 0 0); }                  /* 少し止まる */
  99%  { clip-path: inset(0 0 0 100%); opacity: 1; }   /* 右へ抜けて消える */
  100% { clip-path: inset(0 0 0 100%); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .swipe-line.is-drawn::after { animation: none; }
}

/* ===== お知らせ：一覧の詳細ボタン ===== */
.news__link {
  display: flex;
  align-items: center;
  gap: 16px;
}
.news__meta { flex: 1; min-width: 0; }
.news__title { display: block; }
.news__btn {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--c-invert);
  color: var(--c-invert-text);
  transition: background .2s, transform .2s;
}
.news__btn svg { width: 14px; fill: currentColor; }
.news__link:hover .news__btn { background: var(--c-accent); transform: translateX(3px); }
.news__empty { padding: 18px 4px; color: var(--c-text-sub); }

/* ===== お知らせ詳細ページ ===== */
.news-page {
  margin-top: 0;
  clip-path: none;
  padding-top: calc(var(--header-h) + 40px);
  background: var(--c-bg);
}
.news-detail { min-height: 50vh; }
.news-detail__cover img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.news-detail__title {
  margin-top: 28px;
  font-size: 24px;
  font-weight: 900;
  line-height: 1.5;
}
.news-detail__date {
  display: block;
  margin-top: 10px;
  font-family: var(--en);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: .08em;
  color: var(--c-accent);
}
.news-detail__body {
  margin-top: 28px;
  padding-top: 28px;
  border-top: 1px solid var(--c-text);
  font-weight: 500;
  line-height: 2;
}
/* リッチエディタの中身 */
.news-detail__body > * + * { margin-top: 1.2em; }
.news-detail__body h2 { font-size: 20px; font-weight: 900; line-height: 1.5; margin-top: 2em; }
.news-detail__body h3 { font-size: 17px; font-weight: 900; line-height: 1.5; margin-top: 1.8em; }
.news-detail__body a { color: var(--c-accent); text-decoration: underline; }
.news-detail__body ul, .news-detail__body ol { padding-left: 1.4em; }
.news-detail__body img { height: auto; }
.news-detail__body blockquote { padding: 12px 16px; background: var(--c-sub); }
.news-detail__empty { padding: 40px 0; text-align: center; color: var(--c-text-sub); }

/* お知らせ：VIEW ALL ボタン（POINT・写真と同じ、斜めカット＋赤い影） */
.view-all-wrap {
  width: 220px;
  margin: 32px auto 0;
  filter: drop-shadow(6px 6px 0 var(--c-accent));
}
.view-all {
  --cut: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 24px;
  background: var(--c-invert);
  color: var(--c-invert-text);
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
  font-family: var(--en);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: .12em;
  transition: background .2s;
}
.view-all svg { width: 12px; fill: currentColor; transition: transform .2s; }
.view-all:hover { background: var(--c-accent); }
.view-all-wrap:hover { filter: drop-shadow(6px 6px 0 var(--c-invert)); }  /* ホバーで赤くなるので影は黒に */
.view-all:hover svg { transform: translateX(3px); }

/* ===== エントリーボタン：斜めカットの四角＋くっきりした影（POINT・VIEW ALLと同じあしらい） ===== */
.btn-shadow {
  --s: 6px;                      /* 影のずらし幅 */
  --sc: var(--c-invert);         /* 影の色（ボタンが赤なので黒） */
  display: block;
  filter: drop-shadow(var(--s) var(--s) 0 var(--sc));
}
.btn-shadow--header { --s: 3px; display: inline-block; }
.btn-shadow--kv,
.btn-shadow--entry { margin-right: var(--s); }
.btn-shadow--kv,
.btn-shadow--side,
.btn-shadow--entry { --sc: var(--c-invert-text); }   /* 暗い背景の上なので白い影 */
.header__entry,
.side-cta__btn,
.kv-cta,
.entry-btn {
  --cut: 12px;
  border-radius: 0 !important;
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
}
.header__entry { --cut: 7px; }
.btn-shadow--kv .kv-cta,
.btn-shadow--entry .entry-btn { margin-top: 0; }
.btn-shadow--kv { margin-top: 32px; }
.btn-shadow--entry { margin-top: 32px; }
.btn-shadow--side { margin-top: 16px; }
.btn-shadow--side .side-cta__btn { margin-top: 0; }

/* ===== KV：開催情報フレーム（KVとお知らせの斜めの境目が、フレームの真ん中を通る） ===== */
/* --kv-card-h は js/main.js がフレームの高さを測って入れる */
.kv-wrap { position: relative; z-index: 2; }          /* フレームをお知らせより手前に */
.kv {
  /* KVの下辺をお知らせの斜めと同じ角度で切る（KVを手前にしても斜めが見えるように） */
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--slant)), 0 100%);
}
.kv__content { padding-bottom: calc(var(--kv-card-h, 280px) / 2 + var(--slant) + 8px); }
.kv-card-anchor { position: relative; height: 0; }
.kv-card-wrap {
  position: absolute;
  left: 20px;
  right: 20px;
  top: calc(var(--slant) / -2);                      /* 中央での境目の高さ */
  transform: translateY(-50%);
  /* ぼかしたやわらかい影（ロゴの赤みを帯びた影） */
  filter: drop-shadow(0 14px 30px rgba(255, 0, 69, .45)) drop-shadow(0 4px 10px rgba(120, 0, 30, .3));
}
.kv-card {
  --cut: 24px;
  --bd: 2px;
  position: relative;
  isolation: isolate;
  padding: 28px 22px 30px;
  background: var(--c-text);
  text-align: center;
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
}
.kv-card::before {
  --cut-in: calc(var(--cut) - var(--bd) * 0.414);
  content: "";
  position: absolute;
  inset: var(--bd);
  z-index: -1;
  background: var(--c-bg);
  clip-path: polygon(var(--cut-in) 0, 100% 0, 100% calc(100% - var(--cut-in)), calc(100% - var(--cut-in)) 100%, 0 100%, 0 var(--cut-in));
}
.kv-card .kv__info { margin-top: 0; color: var(--c-text); }
.kv-card .kv__venue { background: var(--c-invert); color: var(--c-invert-text); }
.kv-card .btn-shadow--kv { --sc: var(--c-invert); margin-top: 22px; }   /* 白いフレームの上なので黒い影 */
.news-sec { padding-top: calc(64px + var(--slant) + var(--kv-card-h, 280px) / 2); }

/* ===== 開催情報フレーム：モニター風 ===== */
.kv-card {
  padding: 10px;
  background: linear-gradient(#2b2b2b, #161616);       /* ベゼル（モニターの縁） */
  border-radius: 16px;
  clip-path: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
.kv-card::before { content: none; }
/* 画面 */
.kv-screen {
  position: relative;
  overflow: hidden;
  padding: 26px 18px 28px;
  border-radius: 8px;
  background: radial-gradient(120% 90% at 50% 40%, #2a1418 0%, #0b0b0b 70%);
  box-shadow: inset 0 0 0 1px #000, inset 0 0 40px rgba(0,0,0,.9);
}
/* 走査線と、画面のガラスの反射 */
.kv-screen::before,
.kv-screen::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
}
.kv-screen::before {
  background: repeating-linear-gradient(to bottom, rgba(255,255,255,.05) 0 1px, transparent 1px 3px);
  animation: kv-flicker 4s steps(1) infinite;
}
.kv-screen::after {
  background: linear-gradient(135deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 38%);
}
@keyframes kv-flicker {
  0%, 100% { opacity: 1; }
  47% { opacity: .6; }
  48% { opacity: 1; }
  82% { opacity: .75; }
  83% { opacity: 1; }
}
/* 画面の中の文字：発光させる */
.kv-card .kv__info { color: var(--c-invert-text); }
.kv-card .kv__date { text-shadow: 0 0 8px rgba(255,255,255,.45), 0 0 22px rgba(255,0,69,.45); }
.kv-card .kv__date small { color: var(--c-invert-text); text-shadow: inherit; }
.kv-card .kv__venue {
  /* 塗り・枠なしのテキストだけ */
  padding: 0;
  background: none;
  box-shadow: none;
  color: var(--c-invert-text);
  font-size: 24px;
  text-shadow: 0 0 8px rgba(255,255,255,.35);
}
.kv-card .btn-shadow--kv { --sc: var(--c-invert-text); position: relative; z-index: 1; }
@media (prefers-reduced-motion: reduce) {
  .kv-screen::before { animation: none; }
}



/* 開催情報フレーム：画面にLEDの粒（ドットマトリクス）を敷く */
.kv-screen::before {
  background: radial-gradient(circle, rgba(255,255,255,.09) .7px, transparent 1.1px) 0 0 / 3px 3px;
  animation: none;
}

/* モニターの角丸を小さめに */
.kv-card { border-radius: 8px; }
.kv-screen { border-radius: 4px; }

/* モニター内のENTRYボタン：斜めカットをやめ、画面の角丸（4px）に合わせた四角 */
.kv-card .kv-cta {
  clip-path: none;
  border-radius: 4px !important;
}

/* モニター内のENTRYボタン：くっきりした影をやめ、白いネオン風の光に */
.kv-card .btn-shadow--kv { filter: none; margin-right: 0; }
.kv-card .kv-cta {
  box-shadow:
    0 0 0 1px rgba(255,255,255,.9),
    0 0 8px rgba(255,255,255,.75),
    0 0 22px rgba(255,255,255,.45),
    inset 0 0 12px rgba(255,255,255,.25);
}

/* モニターを少しコンパクトに（最初の画面に収めやすくするため） */
.kv-screen { padding: 20px 18px 22px; }
.kv-card .btn-shadow--kv { margin-top: 16px; }
.kv-card .kv__info { gap: 10px; }

/* タイトルが画像の明るい部分に重なっても読めるよう、薄い影 */
.kv__title { text-shadow: 0 2px 12px rgba(0,0,0,.55), 0 0 2px rgba(0,0,0,.4); }

/* 文字の視認性のためのグラデーション：タイトルの後ろだけを暗くする（写真の他の部分はそのまま）
   タイトルは画面の高さによって位置が変わるので、タイトル自体に付けて一緒に動かす */
.kv__bg { z-index: 0; }
.kv__title { position: relative; isolation: isolate; }
.kv__title::before {
  content: "";
  position: absolute;
  left: -20px;                    /* .kv__content の左右余白ぶん、画面の端まで */
  right: -20px;
  top: -110px;
  bottom: -600px;                 /* KVの下端まで伸ばす（はみ出た分はKVで切れるが、そこはもう同じ黒） */
  z-index: -1;
  /* 上から下へ、だんだん暗くなる一方向のグラデーション。最後はKVの背景色と同じ黒になるので切れ目が出ない */
  background: linear-gradient(to bottom,
    rgba(26,26,26,0) 0,
    rgba(26,26,26,.55) 110px,
    rgba(26,26,26,.75) 190px,
    rgba(26,26,26,1) 360px);
  pointer-events: none;
}
.kv::after { z-index: 1; }
.kv__content { z-index: 2; }

/* メニューの文字：ホバーで赤に */
.gnav a { transition: color .2s; }
.gnav a:hover,
.gnav a:focus-visible { color: var(--c-accent); }

/* ===== PC：右側はメニュー、ヘッダーのメニューボタンはなし ===== */
.side-nav { display: none; }
@media (min-width: 1000px) {
  .menu-btn { display: none; }
  .header__actions { gap: 0; }
  .side-nav {
    display: block;
    width: min(240px, 100%);
    color: var(--c-invert-text);
  }
  .side-nav__list { list-style: none; }
  .side-nav__list a {
    display: block;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .25);
    font-family: var(--en);
    font-weight: 700;
    font-size: 22px;
    letter-spacing: .1em;
    position: relative;
    transition: color .2s;
  }
  /* ホバーで、斜めに傾いた赤いアンダーラインが左から右へ引かれる（下の白い線の上に重なる） */
  .side-nav__list a::after {
    content: "";
    position: absolute;
    left: -6px;
    right: -6px;
    bottom: -3px;
    height: 5px;
    background: var(--c-accent);
    transform: skewX(-24deg) scaleX(0);
    transform-origin: left center;
    transition: transform .35s cubic-bezier(.2, .7, .2, 1);
  }
  .side-nav__list a:hover::after,
  .side-nav__list a:focus-visible::after { transform: skewX(-24deg) scaleX(1); }
  .side-nav__list a small {
    font-family: var(--ja);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: .1em;
    opacity: .7;
  }
  .side-nav__list a:hover,
  .side-nav__list a:focus-visible { color: var(--c-accent); }
  .side-nav__ext {
    margin-top: 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--en);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .15em;
    transition: color .2s;
  }
  .side-nav__ext svg { width: 11px; fill: currentColor; }
  .side-nav__ext:hover { color: var(--c-accent); }
}

/* ===== ENTRYボタンのホバー（ヘッダー・一番下のENTRY）：色反転（赤地に白文字 → 白地に赤文字） ===== */
.header__entry,
.entry-btn {
  cursor: pointer;
  transition: background-color .2s, color .2s;
}
.entry-btn:hover,
.entry-btn:focus-visible {
  background: var(--c-bg);
  color: var(--c-accent);
}
.btn-shadow--header,
.btn-shadow--entry { transition: filter .2s; }
/* 一番下のENTRY：背景が黒なので、白くなったボタンと同化しないよう影を赤に */
.btn-shadow--entry:hover,
.btn-shadow--entry:focus-within { --sc: var(--c-accent); }
/* ヘッダーのENTRY：赤と黒が入れ替わる（ボタンが赤→黒、影が黒→赤。文字は白のまま） */
.header__entry:hover,
.header__entry:focus-visible { background: var(--c-invert); color: var(--c-invert-text); }
.btn-shadow--header:hover,
.btn-shadow--header:focus-within { --sc: var(--c-accent); }

/* ===== モニター内のENTRYボタン：ホバーでネオンが点灯（白地・赤文字に反転し、光が強まる） ===== */
.kv-card .kv-cta {
  cursor: pointer;
  transition: background-color .2s, color .2s, box-shadow .25s;
}
.kv-card .kv-cta:hover,
.kv-card .kv-cta:focus-visible {
  background: var(--c-bg);
  color: var(--c-accent);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.95),
    0 0 12px rgba(255,255,255,.9),
    0 0 28px rgba(255,0,69,.65),
    0 0 46px rgba(255,255,255,.4),
    inset 0 0 14px rgba(255,0,69,.18);
}


/* ===== 表示アニメーション ===== */
@keyframes reveal-up {
  from { opacity: 0; translate: 0 28px; }
  to   { opacity: 1; translate: 0 0; }
}
/* スクロールで画面に入ったときに現れる（js/main.js が data-reveal / .is-in を付ける） */
html.js-reveal [data-reveal]:not(.is-in) { opacity: 0; }
[data-reveal].is-in { animation: reveal-up .8s cubic-bezier(.2, .7, .2, 1) var(--d, 0s) both; }

/* ページを開いたときに順番に現れる（JSなしでも動く） */
@media (prefers-reduced-motion: no-preference) {
  .kv__title { animation: reveal-up .9s cubic-bezier(.2, .7, .2, 1) .1s both; }
  .kv-card-wrap { animation: reveal-up .9s cubic-bezier(.2, .7, .2, 1) .4s both; }
  .side__logo { animation: reveal-up .9s cubic-bezier(.2, .7, .2, 1) .2s both; }
  .side-nav__list li { animation: reveal-up .7s cubic-bezier(.2, .7, .2, 1) both; }
  .side-nav__list li:nth-child(1) { animation-delay: .3s; }
  .side-nav__list li:nth-child(2) { animation-delay: .38s; }
  .side-nav__list li:nth-child(3) { animation-delay: .46s; }
  .side-nav__list li:nth-child(4) { animation-delay: .54s; }
  .side-nav__list li:nth-child(5) { animation-delay: .62s; }
  .side-nav__list li:nth-child(6) { animation-delay: .7s; }
  /* お知らせ詳細：カバー画像 → タイトル → 日付 → 本文 の順 */
  .news-detail > * { animation: reveal-up .8s cubic-bezier(.2, .7, .2, 1) both; }
  .news-detail > :nth-child(2) { animation-delay: .1s; }
  .news-detail > :nth-child(3) { animation-delay: .2s; }
  .news-detail > :nth-child(4) { animation-delay: .3s; }
  .news-detail > :nth-child(5) { animation-delay: .4s; }
}

/* ===== PC：ヘッダーはロゴだけ。ENTRYはヘッダーと同じデザインのボタンとして、右側メニューに置く ===== */
@media (min-width: 1000px) {
  .header__actions { display: none; }
  .side-nav__cta { --s: 5px; --sc: var(--c-invert-text); margin: 22px 5px 0 0; }
  .side-nav__entry {
    --cut: 9px;
    display: grid;
    place-items: center;
    height: 48px;
    background: var(--c-accent);
    color: var(--c-accent-text);
    cursor: pointer;
    font-family: var(--en);
    font-weight: 700;
    font-size: 18px;
    letter-spacing: .12em;
    clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
    transition: background-color .2s, color .2s;
  }
  /* ヘッダーのENTRYと同じ色反転（背景が暗いので、白地・赤文字＋赤い影） */
  .side-nav__entry:hover,
  .side-nav__entry:focus-visible { background: var(--c-bg); color: var(--c-accent); }
  .side-nav__cta { transition: filter .2s; }
  .side-nav__cta:hover,
  .side-nav__cta:focus-within { --sc: var(--c-accent); }
}
@media (min-width: 1000px) and (prefers-reduced-motion: no-preference) {
  .side-nav__cta { animation: reveal-up .7s cubic-bezier(.2, .7, .2, 1) .62s both; }
}
