/* TOPの仕上げ：英字の飾りをやめて日本語の見出しに、紙の地と印刷の動きで「刷り物」らしく見せる。
   動きは .ts50-js（JSが動いたとき）にだけ掛け、JSが無くても内容は全部見える。 */
:root {
  --ts50-paper: #f4f1ea;
  --ts50-paper-deep: #ebe6db;
  --ts50-ink: #001040;
  --ts50-spot: #15a8e2;
  --ts50-mincho: "Shippori Mincho B1", "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
}

/* なめらかスクロール（Lenis）が働くときの決まり */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

/* 見出しの書体：活字の明朝 */
.ts50-home .ts50-title,
.ts50-home .ts50-opening__title,
.ts50-home .ts50-history-journal__title,
.ts50-home .ts50-register__title,
.ts50-home .ts50-album__title,
.ts50-home .ts50-access__copy h3 { font-family: var(--ts50-mincho); font-weight: 700; }

/* 見出しの上の小さな札：通し番号＋日本語 */
.ts50-label {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  color: var(--ts50-ink);
}
.ts50-label > span {
  font-family: var(--ts50-mincho);
  font-size: 15px;
  letter-spacing: .02em;
  color: var(--ts50-spot);
}
.ts50-label::after { content: ""; flex: 0 0 40px; height: 1px; background: currentColor; opacity: .35; }
.ts50-label--light { color: #dfe6f0; }
.ts50-label--light > span { color: #8edfff; }

/* 式典までの日数 */
.ts50-eventnote .ts50-eventnote__countdown {
  margin: 10px 0 0;
  font-family: -apple-system, BlinkMacSystemFont, "Yu Gothic", Meiryo, sans-serif;
  font-size: 13px;
  letter-spacing: .04em;
  color: #49576a;
}
.ts50-eventnote .ts50-eventnote__countdown b {
  margin: 0 4px;
  font-family: var(--ts50-mincho);
  font-size: 26px;
  font-weight: 700;
  color: var(--ts50-ink);
  font-variant-numeric: tabular-nums;
}

/* ---------- 刷り重ねの「50」 ---------- */
.ts50-register {
  position: relative;
  overflow: hidden;
  background: var(--ts50-paper);
  color: var(--ts50-ink);
  padding: 40px 40px 110px;
}
.ts50-register__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 5vw, 80px);
  max-width: 1240px;
  margin: 0 auto;
}
.ts50-register__mark {
  position: relative;
  aspect-ratio: 5 / 4;
  display: grid;
  place-items: center;
}
.ts50-register__plate {
  grid-area: 1 / 1;
  font-family: var(--ts50-mincho);
  font-weight: 800;
  font-size: clamp(180px, 25vw, 380px);
  line-height: 1;
  letter-spacing: -.04em;
  mix-blend-mode: multiply;
  will-change: transform;
}
.ts50-register__plate--c { color: #00a0e9; }
.ts50-register__plate--m { color: #e4007f; }
.ts50-register__plate--y { color: #ffe100; }
.ts50-register__plate--k { color: var(--ts50-ink); opacity: 0; }
/* トンボ（日本式）：四隅は仕上がり線と塗り足し線の二重線、各辺の中央は十字 */
.ts50-register__marks { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.ts50-register__marks path { fill: none; stroke: var(--ts50-ink); stroke-width: 1; vector-effect: non-scaling-stroke; opacity: .6; }
.ts50-register__tombo { transform-box: fill-box; transform-origin: center; }
.ts50-register__years {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 22px;
  font-family: var(--ts50-mincho);
  font-size: 18px;
  letter-spacing: .08em;
}
.ts50-register__years span + span::before { content: ""; display: inline-block; width: 64px; height: 1px; margin: 0 16px 5px 0; background: currentColor; vertical-align: middle; }
.ts50-register__title {
  margin: 0 0 28px;
  padding: 0;
  border: 0;
  background: none;
  font-size: clamp(30px, 3.4vw, 48px);
  line-height: 1.55;
  letter-spacing: .01em;
  color: var(--ts50-ink);
  text-align: left;
}
.ts50-register__title > span { display: block; }
.ts50-register__text {
  max-width: 30em;
  margin: 0;
  font-size: 15px;
  line-height: 2.1;
  letter-spacing: .03em;
  color: #404853;
}
/* JSが無いときは最初から見当が合った状態 */
html:not(.ts50-js) .ts50-register__plate--k { opacity: 1; }

/* ---------- 写真でたどる ---------- */
.ts50-album {
  position: relative;
  background: var(--ts50-paper-deep);
  color: var(--ts50-ink);
  padding: 100px 0 90px;
  overflow: hidden;
}
.ts50-album__head { max-width: 1240px; margin: 0 auto 48px; padding: 0 40px; }
.ts50-album__title {
  margin: 0 0 20px;
  padding: 0;
  border: 0;
  background: none;
  font-size: clamp(30px, 3.4vw, 48px);
  line-height: 1.55;
  text-align: left;
  color: var(--ts50-ink);
}
.ts50-album__title > span { display: inline-block; }
.ts50-album__lead { max-width: 36em; margin: 0; font-size: 15px; line-height: 2; color: #404853; }
.ts50-album__viewport { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.ts50-album__viewport::-webkit-scrollbar { display: none; }
.ts50-album__track {
  display: flex;
  align-items: center;
  gap: 28px;
  width: max-content;
  margin: 0;
  padding: 10px max(40px, calc((100vw - 1240px) / 2)) 20px;
  list-style: none;
}
.ts50-album__track > li { flex: 0 0 auto; margin: 0; scroll-snap-align: center; }
.ts50-album__chapter {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  width: 240px;
  height: min(52vh, 420px);
  padding: 0 0 8px 24px;
  border-left: 1px solid rgba(0, 16, 64, .35);
}
.ts50-album__years { font-family: var(--ts50-mincho); font-size: 15px; letter-spacing: .08em; color: var(--ts50-spot); }
.ts50-album__chapter strong { margin: 8px 0 6px; font-family: var(--ts50-mincho); font-size: 40px; font-weight: 700; line-height: 1.3; }
.ts50-album__chapter em { font-style: normal; font-size: 14px; letter-spacing: .04em; color: #404853; }
.ts50-album__item figure { margin: 0; }
.ts50-album__frame {
  position: relative;
  overflow: hidden;
  height: min(52vh, 420px);
  aspect-ratio: 4 / 3;
  background: #d9d4c8;
}
.ts50-album__item:nth-child(3n) .ts50-album__frame { height: min(40vh, 320px); align-self: flex-start; }
.ts50-album__item:nth-child(4n+1) .ts50-album__frame { aspect-ratio: 3 / 2; }
.ts50-album__frame img { display: block; width: 100%; height: 100%; object-fit: cover; transition: filter .9s ease, transform 1.2s cubic-bezier(.2, .7, .2, 1); }
/* 縦長の人物写真は、頭が切れないように上寄せ */
.ts50-album__frame img[src*="archive-2017-05-5"],
.ts50-album__frame img[src*="-edited"] { object-position: 50% 15%; }
/* 紺1色刷りから、画面の真ん中に来るとカラーに */
.ts50-album__frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--ts50-ink);
  mix-blend-mode: color;
  opacity: 0;
  transition: opacity .9s ease;
  pointer-events: none;
}
.ts50-js .ts50-album__item:not(.is-active) .ts50-album__frame img { filter: grayscale(1) contrast(1.08); transform: scale(1.04); }
.ts50-js .ts50-album__item:not(.is-active) .ts50-album__frame::after { opacity: .55; }
.ts50-album__item figcaption { margin-top: 12px; font-size: 13px; line-height: 1.7; letter-spacing: .03em; color: #404853; }
.ts50-album__end { width: 300px; padding-left: 24px; border-left: 1px solid rgba(0, 16, 64, .35); }
.ts50-album__end p { margin: 0 0 24px; font-family: var(--ts50-mincho); font-size: 30px; font-weight: 700; line-height: 1.6; }
.ts50-album__end a { display: inline-flex; gap: 20px; padding: 8px 0; border-bottom: 1px solid currentColor; color: var(--ts50-ink); font-size: 15px; font-weight: 600; text-decoration: none; }
/* 横に流れることが分かるように：合図・期の名前つきの進み具合の線・写真の番号（JSが .has-guide を付けたときだけ見せる） */
.ts50-album__guide { display: none; }
.ts50-album.has-guide .ts50-album__guide {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 14px 40px;
  box-sizing: border-box;
  width: 100%;
  max-width: 1240px;
  margin: 22px auto 0;
  padding: 0 40px;
}
.ts50-album__hint {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0;
  font-size: 13px;
  letter-spacing: .08em;
  color: #404853;
  transition: opacity .6s ease, transform .6s ease;
}
.ts50-album__hint i { position: relative; flex: 0 0 64px; height: 9px; }
.ts50-album__hint i::before { content: ""; position: absolute; left: 0; right: 0; top: 4px; height: 1px; background: rgba(0, 16, 64, .25); }
.ts50-album__hint i::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 8px;
  height: 8px;
  border-top: 1px solid var(--ts50-ink);
  border-right: 1px solid var(--ts50-ink);
  transform: rotate(45deg);
  animation: ts50HintRun 1.8s cubic-bezier(.6, 0, .25, 1) infinite;
}
@keyframes ts50HintRun { 0% { left: 0; opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { left: 54px; opacity: 0; } }
.ts50-album.is-moving .ts50-album__hint { opacity: 0; transform: translateY(6px); pointer-events: none; }
.ts50-album__rail { position: relative; height: 54px; }
.ts50-album__rail::before { content: ""; position: absolute; left: 0; right: 0; top: 8px; height: 1px; background: rgba(0, 16, 64, .22); }
.ts50-album__fill { position: absolute; left: 0; right: 0; top: 7px; height: 3px; background: var(--ts50-spot); transform: scaleX(0); transform-origin: left center; }
.ts50-album__stops { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; }
.ts50-album__stops li { position: absolute; top: 0; margin: 0; transform: translateX(-50%); }
.ts50-album__stops li:first-child { transform: none; }
.ts50-album__stops li:last-child { transform: translateX(-100%); }
.ts50-album__stops button {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 26px 4px 0;
  border: 0;
  background: none;
  font-family: var(--ts50-mincho);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  color: #7b8191;
  cursor: pointer;
  transition: color .3s ease;
}
.ts50-album__stops li:first-child button { align-items: flex-start; padding-left: 0; }
.ts50-album__stops li:last-child button { align-items: flex-end; padding-right: 0; }
.ts50-album__stops button b { font-size: 11px; font-weight: 600; letter-spacing: .08em; }
/* 期ごとの目盛り：通った期は紺、いまの期は青く大きく */
.ts50-album__stops button::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 50%;
  width: 9px;
  height: 9px;
  margin-left: -4.5px;
  border: 1px solid rgba(0, 16, 64, .45);
  border-radius: 50%;
  background: var(--ts50-paper-deep);
  transition: transform .3s ease, background .3s ease, border-color .3s ease;
}
.ts50-album__stops li:first-child button::before { left: 0; margin-left: 0; }
.ts50-album__stops li:last-child button::before { left: auto; right: 0; margin-left: 0; }
.ts50-album__stops button.is-passed::before { background: var(--ts50-ink); border-color: var(--ts50-ink); }
.ts50-album__stops button.is-current { color: var(--ts50-ink); }
.ts50-album__stops button.is-current::before { background: var(--ts50-spot); border-color: var(--ts50-spot); transform: scale(1.45); }
.ts50-album__stops button:hover, .ts50-album__stops button:focus-visible { color: #007eaf; }
.ts50-album__count { margin: 0 0 4px; font-family: var(--ts50-mincho); white-space: nowrap; color: #7b8191; }
.ts50-album__count b { margin-right: 6px; font-size: 32px; font-weight: 700; line-height: 1; color: var(--ts50-ink); font-variant-numeric: tabular-nums; }
.ts50-album__count span { font-size: 14px; letter-spacing: .06em; }
/* スマホ：はじめて見えたときに一度だけ、写真の列を少し横に動かす */
.ts50-album__track.is-nudge { animation: ts50Nudge 1.4s cubic-bezier(.45, 0, .2, 1); }
@keyframes ts50Nudge { 0% { transform: none; } 45% { transform: translateX(-64px); } 100% { transform: none; } }

/* PCでは画面を止めて横に流す（JSが .is-pinned を付ける） */
.ts50-album.is-pinned { height: 100vh; padding: 64px 0 0; display: flex; flex-direction: column; justify-content: center; }
.ts50-album.is-pinned .ts50-album__head { margin-bottom: 24px; }
/* 画面を止めるときは、見出し・写真・案内が一画面に収まる高さに */
.ts50-album.is-pinned .ts50-album__frame,
.ts50-album.is-pinned .ts50-album__chapter { height: min(41vh, 400px); }
.ts50-album.is-pinned .ts50-album__item:nth-child(3n) .ts50-album__frame { height: min(32vh, 300px); }
.ts50-album.is-pinned .ts50-album__title { margin-bottom: 12px; font-size: clamp(28px, 3vw, 44px); }
.ts50-album.is-pinned .ts50-album__viewport { overflow: visible; scroll-snap-type: none; }
.ts50-album.is-pinned .ts50-album__track { will-change: transform; padding-right: 160px; }

/* ---------- 流れる帯 ---------- */
.ts50-marquee { overflow: hidden; background: var(--ts50-ink); color: #f4f1ea; padding: 18px 0; }
.ts50-marquee__track { display: flex; width: max-content; animation: ts50Marquee 38s linear infinite; }
.ts50-marquee__track span {
  display: inline-flex;
  align-items: center;
  font-family: var(--ts50-mincho);
  font-size: clamp(18px, 2vw, 26px);
  font-weight: 700;
  letter-spacing: .06em;
  white-space: nowrap;
}
.ts50-marquee__track span::after { content: ""; width: 9px; height: 9px; margin: 0 34px; border-radius: 50%; background: var(--ts50-spot); }
@keyframes ts50Marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- 協賛企業コラム：全部をゆっくり横に流す（マウスを乗せる・キーで選ぶと止まる） ---------- */
/* 幅の大きい帯にマスクをかけて transform で流すと、iPhone（2026-11-04）とPC幅（2026-11-06）で帯ごと描かれず欄が空に見えた。
   横スクロールを少しずつ送り（js/toseikyo-motion.js）、端のぼかしは紙の色の幕を上に重ねて出す */
.ts50-home .ts50-supporter__edge { position: relative; margin-top: 8px; }
.ts50-home .ts50-supporter__edge::before,
.ts50-home .ts50-supporter__edge::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
  width: 6%;
  pointer-events: none;
}
.ts50-home .ts50-supporter__edge::before { left: 0; background: linear-gradient(90deg, #f4f1ea, rgba(244, 241, 234, 0)); }
.ts50-home .ts50-supporter__edge::after { right: 0; background: linear-gradient(270deg, #f4f1ea, rgba(244, 241, 234, 0)); }
.ts50-home .ts50-supporter__flow {
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  padding: 6px 0 14px;
  scrollbar-width: none;
}
.ts50-home .ts50-supporter__flow::-webkit-scrollbar { display: none; }
.ts50-home .ts50-supporter__track {
  display: flex;
  width: max-content;
}
.ts50-home .ts50-supporter__grid {
  display: flex;
  gap: 28px;
  margin: 0;
  padding: 0 28px 0 0;
  list-style: none;
}
.ts50-home .ts50-supporter__card { flex: 0 0 380px; margin: 0; }
.ts50-home .ts50-supporter__image { aspect-ratio: 16 / 10; overflow: hidden; }
.ts50-home .ts50-supporter__image img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 767px) {
  .ts50-home .ts50-supporter__card { flex-basis: 78vw; }
  .ts50-home .ts50-supporter__grid { gap: 16px; padding-right: 16px; }
}
/* スマホとタブレットは流さず、指で横に送る */
@media (max-width: 767px), (hover: none) {
  .ts50-home .ts50-supporter__edge::before,
  .ts50-home .ts50-supporter__edge::after { display: none; }
  .ts50-home .ts50-supporter__flow { scroll-snap-type: x mandatory; }
  .ts50-home .ts50-supporter__grid[aria-hidden] { display: none; }
  .ts50-home .ts50-supporter__card { scroll-snap-align: start; }
}
/* 動きを減らす設定では流さず、指やスクロールで横に送る */
@media (prefers-reduced-motion: reduce) {
  .ts50-home .ts50-supporter__edge::before,
  .ts50-home .ts50-supporter__edge::after { display: none; }
  .ts50-home .ts50-supporter__grid[aria-hidden] { display: none; }
}

/* ---------- 紙の地と、協賛企業コラム ---------- */
.ts50-home .ts50-supporter { background: var(--ts50-paper); }
.ts50-home .ts50-supporter .ts50-title--decorated::after,
.ts50-home .ts50-sponsors .ts50-title--decorated::after { display: none; }
.ts50-home .ts50-supporter__card { border-color: #ddd6c8; }
.ts50-home .ts50-supporter__body h3 { font-family: var(--ts50-mincho); font-weight: 700; }
.ts50-js .ts50-supporter__image { clip-path: inset(100% 0 0 0); transition: clip-path 1.1s cubic-bezier(.7, 0, .2, 1); }
.ts50-js .ts50-supporter__card.is-in .ts50-supporter__image { clip-path: inset(0 0 0 0); }
.ts50-js .ts50-supporter__card:nth-child(2) .ts50-supporter__image { transition-delay: .12s; }
.ts50-js .ts50-supporter__card:nth-child(3) .ts50-supporter__image { transition-delay: .24s; }
.ts50-home .ts50-access dt { font-size: 12px; letter-spacing: .2em; }
/* 会場の写真：横幅いっぱいに見せ、下の案内と地図を少し重ねる。見えたときに、ゆっくり引きで落ち着く */
.ts50-home .ts50-access__photo {
  position: relative;
  overflow: hidden;
  height: clamp(280px, 40vw, 540px);
  margin: 0 0 -110px;
  background: #1a2238;
}
.ts50-home .ts50-access__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 55% 45%; }
.ts50-js .ts50-home .ts50-access__photo img { transform: scale(1.12); transition: transform 2.4s cubic-bezier(.2, .7, .2, 1); }
.ts50-js .ts50-home .ts50-access__photo.is-in img { transform: scale(1); }
.ts50-home .ts50-access__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 16, 64, 0) 45%, rgba(0, 16, 64, .45) 100%); pointer-events: none; }
.ts50-home .ts50-access__photo figcaption {
  position: absolute;
  top: 18px;
  right: 22px;
  z-index: 1;
  font-family: var(--ts50-mincho);
  font-size: 13px;
  letter-spacing: .08em;
  color: rgba(255, 255, 255, .9);
  text-shadow: 0 1px 6px rgba(0, 0, 0, .45);
}
.ts50-home .ts50-access { position: relative; z-index: 1; margin: 0 48px; box-shadow: 0 24px 50px -30px rgba(0, 16, 64, .45); }
.ts50-home .ts50-access__copy h3 { font-size: clamp(22px, 2.1vw, 28px) !important; line-height: 1.5; word-break: keep-all; overflow-wrap: anywhere; }
@media (max-width: 860px) {
  .ts50-home .ts50-access__photo { height: 58vw; margin-bottom: -40px; }
  .ts50-home .ts50-access { margin: 0 12px; }
  .ts50-home .ts50-access__photo figcaption { top: 10px; right: 12px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .ts50-js .ts50-home .ts50-access__photo img { transform: none; transition: none; }
}

/* 見出しは意味のまとまりで改行（「ストリー／トで。」と切れないように）。1字ずつ部品にすると句点の行頭禁止も効かないので、まとまりの中では折り返さない */
.ts50-home .ts50-title > span { display: inline-block; white-space: nowrap; }
@media (max-width: 767px) {
  .ts50-home .ts50-title { font-size: clamp(24px, 7.7vw, 30px); }
}
.ts50-home .ts50-textlink { position: relative; white-space: nowrap; }
/* 文字の小さなリンクは、見た目を変えずに押せる範囲だけ広げる */
.ts50-home .ts50-textlink::after { content: ""; position: absolute; inset: -13px -4px; }
.l-footer__sns-icons .c-sns-icons__link { position: relative; }
.l-footer__sns-icons .c-sns-icons__link::after { content: ""; position: absolute; inset: -12px -8px; }

/* 文末の1〜2字だけが次の行に落ちないように */
.ts50-home .ts50-lead,
.ts50-home .ts50-album__lead,
.ts50-home .ts50-opening__text p,
.ts50-home .ts50-register__text,
.ts50-home .ts50-history-journal__text p,
.ts50-home .ts50-topmsg__quote p,
.home .p-fp-news .p-archive--news-item__title { text-wrap: balance; word-break: auto-phrase; }
.ts50-home .ts50-access__copy dd span { display: inline-block; }
@media (max-width: 360px) {
  .ts50-home .ts50-access__copy dd { font-size: 13px; }
}

/* ごあいさつ：一文の長さが違っても、名前の高さをそろえる */
@media (min-width: 861px) {
  .ts50-home .ts50-topmsg__item { display: flex; flex-direction: column; }
  .ts50-home .ts50-topmsg__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; }
  .ts50-home .ts50-topmsg__quote { flex: 1; }
}

/* 協賛企業コラム：テーマと社名を分け、日付はカードの下にそろえる */
.ts50-home .ts50-supporter__link { display: flex; flex-direction: column; height: 100%; }
.ts50-home .ts50-supporter__body { display: flex; flex: 1; flex-direction: column; }
.ts50-home .ts50-supporter__body h3 { margin-bottom: 10px; }
.ts50-home .ts50-supporter__company { margin: 0 0 18px; font-size: 13px; line-height: 1.7; color: #5a6270; }
.ts50-home .ts50-supporter__body time { margin-top: auto; }

/* スマホ：上へ戻るボタンが本文にかぶらないよう、読み進めるあいだは隠す */
.p-return-top-button-wrapper.is-away .p-return-top-button { opacity: 0; pointer-events: none; }

/* ---------- お知らせ（TCDの部品）を、罫線の記事一覧に ---------- */
.home .p-fp-news { background: var(--ts50-paper); padding: 96px 40px 100px; margin: 0; }
.home .p-fp-news .p-fp-news__inner { max-width: 1240px; margin: 0 auto; padding: 0; }
.home .p-fp-news .p-fp-section__header { display: block; text-align: left; margin: 0 0 36px; }
.home .p-fp-news .p-fp-section__headline { display: none; }
.home .p-fp-news .p-fp-section__desc {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0;
  font-family: var(--ts50-mincho);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 700;
  line-height: 1.4;
  color: var(--ts50-ink);
  text-align: left;
}
.home .p-fp-news .p-fp-section__desc::before { content: "06"; font-size: 15px; font-weight: 600; color: var(--ts50-spot); }
.home .p-fp-news .p-fp-news__tab-labels { display: none; }
.home .p-fp-news .p-fp-news__tab-area { background: none; padding: 0; border-top: 2px solid var(--ts50-ink); }
.home .p-fp-news .p-fp-news__tab-area__item:not(.is-show) { display: none; }
.home .p-fp-news .splide__track { overflow: visible; }
.home .p-fp-news .splide__list { display: block !important; transform: none !important; }
/* 記事が増えるとスライダーが前後に複製を足すので、一覧では出さない（新しい順のまま並べる） */
.home .p-fp-news .splide__slide--clone { display: none !important; }
.home .p-fp-news .p-archive--news-item { width: 100% !important; margin: 0 !important; background: none; box-shadow: none; border-bottom: 1px solid #cfc8b9; }
.home .p-fp-news .p-archive--news-item__link { display: grid !important; grid-template-columns: 140px 1fr; align-items: baseline; gap: 0 28px; padding: 24px 4px; background: none; }
.home .p-fp-news .p-archive--news-item__category,
.home .p-fp-news .p-archive--news-item__image { display: none; }
.home .p-fp-news .p-archive--news-item__content,
.home .p-fp-news .p-archive--news-item__content-inner { display: contents; padding: 0; background: none; }
.home .p-fp-news .p-archive--news-item__date { order: -1; margin: 0; font-family: var(--ts50-mincho); font-size: 15px; letter-spacing: .06em; color: #5a6270; }
.home .p-fp-news .p-archive--news-item__date::before { display: none; }
.home .p-fp-news .p-archive--news-item__title { margin: 0; font-size: 17px; font-weight: 600; line-height: 1.7; color: var(--ts50-ink); -webkit-line-clamp: unset; }
.home .p-fp-news .p-archive--news-item__link:hover .p-archive--news-item__title { color: #007eaf; }
.home .p-fp-news .splide__arrows,
.home .p-fp-news .splide__pagination { display: none; }
.home .p-fp-news .c-button,
.home .p-fp-news a.p-fp-section__button,
.home .p-fp-news .p-fp-news__button a { background: none !important; color: var(--ts50-ink) !important; border: 0; border-bottom: 1px solid currentColor; border-radius: 0; width: auto; min-width: 0; height: auto; padding: 8px 0; font-weight: 600; }
.home .p-fp-news .p-fp-section__button { display: flex; justify-content: flex-end; margin-top: 28px; }
.home .p-fp-news .p-fp-section__button-link::after { content: "→"; margin-left: 18px; }
@media (max-width: 860px) {
  .home .p-fp-news { padding: 64px 24px 72px; }
  .home .p-fp-news .p-archive--news-item__link { grid-template-columns: 1fr; gap: 4px; padding: 18px 2px; }
}

/* ---------- 見出しが1文字ずつ、インキがのるように出る ---------- */
.ts50-js .ts50-split .ts50-ch {
  display: inline-block;
  opacity: 0;
  filter: blur(8px);
  transform: translateY(.35em);
  transition: opacity .8s ease, filter .8s ease, transform .9s cubic-bezier(.2, .7, .2, 1);
  transition-delay: calc(var(--i) * 32ms);
}
.ts50-js .ts50-split.is-in .ts50-ch { opacity: 1; filter: blur(0); transform: none; }

/* スマホ */
@media (max-width: 860px) {
  .ts50-register { padding: 24px 24px 72px; }
  .ts50-register__inner { grid-template-columns: 1fr; gap: 12px; }
  .ts50-register__plate { font-size: clamp(170px, 52vw, 300px); }
  .ts50-register__title { font-size: clamp(26px, 6.6vw, 34px); }
  .ts50-album { padding: 68px 0 64px; }
  .ts50-album__head { padding: 0 24px; margin-bottom: 32px; }
  .ts50-album__title { font-size: clamp(26px, 6.6vw, 34px); }
  .ts50-album__track { gap: 16px; padding: 4px 24px 16px; }
  .ts50-album__chapter { width: max(164px, 42vw); height: auto; min-height: 220px; padding-left: 18px; }
  .ts50-album__chapter strong { font-size: 32px; }
  .ts50-album__frame,
  .ts50-album__item:nth-child(3n) .ts50-album__frame { height: auto; width: 78vw; aspect-ratio: 4 / 3; }
  .ts50-album__item:nth-child(4n+1) .ts50-album__frame { aspect-ratio: 4 / 3; }
  .ts50-album__end { width: 70vw; }
  .ts50-album__end p { font-size: 26px; }
  .ts50-album.has-guide .ts50-album__guide { margin-top: 14px; padding: 0 24px; gap: 6px 16px; }
  /* スマホは「案内＋番号」の行と、横幅いっぱいの目盛りの線の2段に */
  .ts50-album__hint { grid-column: 1; grid-row: 1; font-size: 12px; }
  .ts50-album__hint i { flex-basis: 44px; }
  .ts50-album__count { grid-column: 2; grid-row: 1; margin: 0; }
  .ts50-album__rail { grid-column: 1 / -1; grid-row: 2; }
  .ts50-album__stops button { font-size: 11px; letter-spacing: 0; padding: 24px 0 0; }
  .ts50-album__stops button b { display: none; }
  .ts50-album__count b { font-size: 24px; }
  .ts50-album__count span { font-size: 12px; }
  .ts50-marquee { padding: 14px 0; }
  .ts50-marquee__track span::after { margin: 0 22px; }
}

/* 動きを減らす設定 */
@media (prefers-reduced-motion: reduce) {
  .ts50-marquee__track { animation: none; }
  .ts50-js .ts50-split .ts50-ch { opacity: 1; filter: none; transform: none; transition: none; }
  .ts50-js .ts50-supporter__image { clip-path: none; transition: none; }
  .ts50-js .ts50-album__item:not(.is-active) .ts50-album__frame img { filter: none; transform: none; }
  .ts50-js .ts50-album__item:not(.is-active) .ts50-album__frame::after { opacity: 0; }
  .ts50-register__plate { transform: none !important; }
  .ts50-register__plate--k { opacity: 1 !important; }
  .ts50-album__hint i::after { animation: none; left: 50px; }
  .ts50-album__track.is-nudge { animation: none; }
}
