@charset "UTF-8";
:root {
  --u: min(1px, calc(100vw / 480));
  --c-red: #b12233;
  --c-beige: #f7e1cd;
  --c-navy: #080e22;
  --c-gold: #dfb56f;
  --c-gray: #e9e9e9;
  --c-white: #fff;
  --c-black: #1a1a1a;
  --header-h: calc(var(--u) * 70);
  --ff-mencken: "mencken-std-head-compress", serif;
  --ff-capitolium: "capitolium-news-2", serif;
  --ff-baskerville: "baskerville-display-pt", serif;
  --ff-ryumin: "a-otf-ryumin-pr6n", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --ff-ryumin-r: var(--ff-ryumin);
  --ff-ryumin-h: var(--ff-ryumin);
  --ff-ryumin-eh: var(--ff-ryumin);
  --ff-ryumin-u: var(--ff-ryumin);
  --fw-ryumin-r: 400;
  --fw-ryumin-h: 800;
  --fw-ryumin-eh: 900;
  --fw-ryumin-u: 900;
  --fw-mencken-r: 400;
  --fw-mencken-b: 700;
  --fw-capitolium-r: 400;
  --fw-capitolium-sb: 600;
}
@media (min-width: 481px) and (max-width: 768px) {
  :root { --u: calc(100vw / 480); }
}
*,
*::before,
*::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: var(--header-h);
  overscroll-behavior-y: none;
  background: #1a1a1a;
}
body, h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
img, svg { display: block; max-width: none; }
a { color: inherit; text-decoration: none; }
summary { list-style: none; }
summary::-webkit-details-marker { display: none; }
body {
  background: var(--c-beige);
  transition: background-color .3s;
  color: var(--c-white);
  font-family: var(--ff-ryumin-h);
  font-weight: var(--fw-ryumin-h);
  font-feature-settings: normal;
  -webkit-font-smoothing: antialiased;
  line-height: 1;
}
.page {
  position: relative;
  width: calc(var(--u) * 480);
  margin: 0 auto;
  overflow: clip;
  background: var(--c-beige);
}
@media (max-width: 768px) {
  body { background: var(--chrome-bg, #fff); }
}
.hang { margin-right: -0.5em; }
.header {
  --header-bg: transparent;
  --header-fg: var(--c-white);
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--header-h);
  margin-bottom: calc(var(--header-h) * -1);
  background: var(--header-bg);
  color: var(--header-fg);
  transition: background-color .3s, color .3s;
  font-family: var(--ff-capitolium);
  font-weight: var(--fw-capitolium-r);
  font-size: calc(var(--u) * 16);
  line-height: 1;
}
.header__logo {
  position: absolute;
  top: calc(var(--u) * 26);
  left: calc(var(--u) * 20);
}
.header__entry {
  position: absolute;
  top: calc(var(--u) * 19);
  right: calc(var(--u) * 20);
  padding-bottom: calc(var(--u) * 3);
  border-bottom: 1px solid currentColor;
  font-family: var(--ff-mencken);
  font-weight: var(--fw-mencken-b);
  font-size: calc(var(--u) * 24);
  line-height: 1;
  letter-spacing: .02em;
}
.header[data-theme="red"] {
  --header-bg: var(--c-red);
  --header-fg: var(--c-white);
}
.header[data-theme="beige"] {
  --header-bg: var(--c-beige);
  --header-fg: var(--c-red);
}
.header[data-theme="navy"] {
  --header-bg: var(--c-navy);
  --header-fg: var(--c-white);
}
.header[data-theme="black"] {
  --header-bg: var(--c-black);
  --header-fg: var(--c-white);
}
.hero {
  position: relative;
  height: calc(var(--u) * 918);
  background: url(../img/hero.webp) center / cover no-repeat;
}
.hero > * { position: absolute; }
.hero__glow-title {
  top: calc(var(--u) * 126.5);
  left: calc(var(--u) * -2.4);
  width: calc(var(--u) * 472.1);
  height: calc(var(--u) * 139.2);
}
.hero__glow-sub {
  top: calc(var(--u) * 202.3);
  left: calc(var(--u) * 121.4);
  width: calc(var(--u) * 224.4);
  height: calc(var(--u) * 113.8);
}
.hero__title {
  top: calc(var(--u) * 122);
  left: calc(var(--u) * 33);
}
.hero__title img {
  width: calc(var(--u) * 402);
  height: calc(var(--u) * 109);
}
.hero__title .hero__title-run {
  position: absolute;
  top: 0;
  left: 0;
}
.hero__sub {
  top: calc(var(--u) * 237.75);
  left: calc(var(--u) * 157.6);
  font-family: var(--ff-mencken);
  font-weight: var(--fw-mencken-r);
  font-size: calc(var(--u) * 40);
  line-height: 1;
  white-space: nowrap;
}
.hero__info {
  z-index: 1;
  bottom: calc(var(--u) * 111);
  left: 50%;
  translate: -50% 0;
  width: max-content;
  color: var(--c-white);
  text-align: center;
  text-shadow: 0 0 calc(var(--u) * 14) rgba(8, 14, 34, .45);
}
.hero__time {
  font-family: var(--ff-mencken);
  font-weight: var(--fw-mencken-r);
  font-size: calc(var(--u) * 40);
  line-height: 1.05;
  text-shadow:
    0 0 calc(var(--u) * 4) rgba(255, 255, 255, .55),
    0 0 calc(var(--u) * 14) rgba(255, 255, 255, .35);
}
.hero__recruit {
  margin-top: calc(var(--u) * 10);
  font-family: var(--ff-ryumin-h);
  font-weight: var(--fw-ryumin-h);
  font-size: calc(var(--u) * 15);
  line-height: 1.4;
  letter-spacing: .08em;
}
.about {
  position: relative;
  height: calc(var(--u) * 962);
  color: var(--c-beige);
}
.about > * { position: absolute; }
.about__bg,
.about__line {
  top: 0;
  left: 0;
  width: calc(var(--u) * 480);
  height: calc(var(--u) * 932);
}
.about__num {
  top: calc(var(--u) * 80.5);
  left: calc(var(--u) * 84.5);
  width: calc(var(--u) * 61.96);
  height: calc(var(--u) * 108.08);
}
.about__lead,
.about__text {
  right: calc(var(--u) * 49.8);
  font-size: calc(var(--u) * 16);
  text-align: right;
  white-space: nowrap;
}
.about__lead {
  top: calc(var(--u) * 95.39);
  line-height: 1.6;
  letter-spacing: 0.01em;
}
.about__title {
  top: calc(var(--u) * 283.5);
  left: calc(var(--u) * 45);
}
.about__title svg {
  width: calc(var(--u) * 376.1);
  height: calc(var(--u) * 221.17);
  overflow: visible;
  fill: var(--c-navy);
}
.about__text {
  top: calc(var(--u) * 592.1);
  line-height: 1.4;
}
.about__text p + p { margin-top: calc(var(--u) * 21.6); }
.about__photo {
  top: calc(var(--u) * 692.5);
  left: calc(var(--u) * 20);
  width: calc(var(--u) * 220.5);
  height: calc(var(--u) * 228);
}
.river {
  position: relative;
  padding-bottom: calc(var(--u) * 72);
  color: var(--c-red);
}
.river__title,
.river__runners,
.river__map,
.river__distance { position: absolute; }
.river__map {
  top: calc(var(--u) * 176);
  left: 0;
  width: calc(var(--u) * 480);
  height: calc(var(--u) * 238);
}
.river__title {
  z-index: 2;
  top: calc(var(--u) * 67);
  left: calc(var(--u) * 24);
}
.river__runners { z-index: 1; }
.river__title img {
  width: calc(var(--u) * 307.91);
  height: calc(var(--u) * 110.75);
}
.river__runners {
  top: calc(var(--u) * 22);
  left: calc(var(--u) * 310);
  width: calc(var(--u) * 129);
  height: calc(var(--u) * 160);
}
.river__distance {
  top: calc(var(--u) * 214);
  left: calc(var(--u) * 324);
  width: calc(var(--u) * 116.72);
  height: calc(var(--u) * 104.25);
  filter:
    drop-shadow(0 0 calc(var(--u) * 1) #fff)
    drop-shadow(0 0 calc(var(--u) * 3) #fff)
    drop-shadow(0 0 calc(var(--u) * 7) rgba(255, 255, 255, .8));
  animation: blink 2s steps(1, end) infinite;
}
@keyframes blink {
  0%   { opacity: 1; }
  70%  { opacity: 0; }
  75%  { opacity: 1; }
  82%  { opacity: 0; }
  87%  { opacity: 1; }
  100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .river__distance { animation: none; }
}
.flow {
  position: relative;
  padding: calc(var(--u) * 385.44) calc(var(--u) * 20) 0;
}
.flow__head {
  display: flex;
  align-items: flex-start;
}
.flow__title {
  font-family: var(--ff-mencken);
  font-weight: var(--fw-mencken-b);
  font-size: calc(var(--u) * 52);
  line-height: 1;
  white-space: nowrap;
}
.flow__note {
  margin: calc(var(--u) * 10.39) 0 0 calc(var(--u) * 10.2);
  font-size: calc(var(--u) * 12);
  line-height: 1.4;
  letter-spacing: -0.05em;
  white-space: nowrap;
}
.flow__list { margin-top: calc(var(--u) * 3.54); }
.flow__item {
  position: relative;
  display: flex;
  align-items: flex-start;
  height: calc(var(--u) * 52);
  padding-top: calc(var(--u) * 9.22);
}
.flow__item::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: var(--c-red);
  transform-origin: left center;
}
.flow__item:last-child { height: auto; }
.flow__item:last-child::after { content: none; }
.flow__time {
  flex: 0 0 calc(var(--u) * 59.44);
  font-family: var(--ff-mencken);
  font-weight: var(--fw-mencken-b);
  font-size: calc(var(--u) * 30);
  line-height: 1;
}
.flow__text {
  margin-top: calc(var(--u) * 8.02);
  font-family: var(--ff-ryumin-eh);
  font-weight: var(--fw-ryumin-eh);
  font-size: calc(var(--u) * 16.92);
  line-height: 1;
  letter-spacing: -0.05em;
  white-space: nowrap;
}
.flow__text--s {
  margin-top: calc(var(--u) * 8.83);
  font-size: calc(var(--u) * 16);
}
.rsc {
  padding: calc(var(--u) * 49) calc(var(--u) * 20) calc(var(--u) * 71.67);
  background: var(--c-navy);
  color: var(--c-gray);
}
.rsc__title img {
  margin-left: calc(var(--u) * 0.5);
  width: calc(var(--u) * 416.79);
  height: calc(var(--u) * 66.46);
}
.detail { margin-top: calc(var(--u) * 26.08); }
.detail:first-of-type { margin-top: calc(var(--u) * 50.56); }
.detail__title {
  position: relative;
  padding-bottom: calc(var(--u) * 12.98 + 1px);
  font-family: var(--ff-ryumin-eh);
  font-weight: var(--fw-ryumin-eh);
  font-size: calc(var(--u) * 20);
  line-height: 1;
}
.detail__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: var(--c-gray);
  transform-origin: left center;
}
.detail__list li {
  padding-left: 1em;
  text-indent: -1em;
}
.detail__list {
  margin: calc(var(--u) * 8.54) 0 0 calc(var(--u) * -3.5);
  font-size: calc(var(--u) * 14);
  line-height: 1.4;
}
.detail__link {
  border-bottom: 1px solid currentColor;
  transition: opacity .3s;
}
.detail__note {
  margin-top: calc(var(--u) * 5.56);
  font-size: calc(var(--u) * 12);
  line-height: calc(var(--u) * 19.6);
}
.entry-form {
  overflow: hidden;
  margin-top: calc(var(--u) * 48);
  background: var(--c-white);
  border-radius: calc(var(--u) * 23.2);
}
.entry-form .hs-form-frame { width: 100%; }
.gallery {
  margin-top: calc(var(--u) * 60);
  color: var(--c-red);
}
.gallery__head {
  display: flex;
  align-items: flex-start;
  padding: 0 calc(var(--u) * 20);
}
.gallery__title {
  font-family: var(--ff-mencken);
  font-weight: var(--fw-mencken-b);
  font-size: calc(var(--u) * 52);
  line-height: 1;
  white-space: nowrap;
}
.gallery__note {
  margin: calc(var(--u) * 10.39) 0 0 calc(var(--u) * 10.2);
  font-size: calc(var(--u) * 12);
  line-height: 1.4;
  letter-spacing: -0.05em;
  white-space: nowrap;
}
.gallery__list {
  display: flex;
  gap: calc(var(--u) * 12);
  margin-top: calc(var(--u) * 24);
  padding: 0 calc(var(--u) * 20);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding: 0 calc(var(--u) * 20);
  scrollbar-width: none;
}
.gallery__list::-webkit-scrollbar { display: none; }
.gallery__item {
  flex: 0 0 calc(var(--u) * 240);
  scroll-snap-align: start;
}
.gallery__card {
  position: relative;
  display: block;
  height: calc(var(--u) * 320);
  overflow: hidden;
  color: var(--c-white);
}
.gallery__card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gallery__card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(255, 255, 255, .25);
  transition: opacity .5s cubic-bezier(.22, 1, .36, 1);
}
.gallery__card:hover::before,
.gallery__card:active::before,
.gallery__card:focus-visible::before { opacity: 0; }
.gallery__card::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  height: 35%;
  background: linear-gradient(to top, rgba(0, 0, 0, .45), rgba(0, 0, 0, 0));
}
.gallery__icon,
.gallery__account { position: absolute; z-index: 2; }
.gallery__icon {
  top: calc(var(--u) * 12);
  right: calc(var(--u) * 12);
  width: calc(var(--u) * 22);
  height: calc(var(--u) * 22);
}
.gallery__icon svg { width: 100%; height: 100%; }
.gallery__account {
  left: calc(var(--u) * 14);
  right: calc(var(--u) * 14);
  bottom: calc(var(--u) * 14);
  overflow: hidden;
  font-family: var(--ff-capitolium);
  font-weight: var(--fw-capitolium-sb);
  font-size: calc(var(--u) * 13);
  line-height: 1.2;
  letter-spacing: .02em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gallery__bar {
  position: relative;
  height: 2px;
  margin: calc(var(--u) * 20) calc(var(--u) * 20) 0;
  background: rgba(177, 34, 51, .2);
  overflow: hidden;
}
.gallery__bar-thumb {
  position: absolute;
  top: 0;
  left: var(--bar-left, 0%);
  width: var(--bar-width, 30%);
  height: 100%;
  background: var(--c-red);
}
.store {
  position: relative;
  padding-bottom: calc(var(--u) * 71);
  background: var(--c-red);
  color: var(--c-white);
}
.store__title,
.store__photo { position: absolute; }
.store__title {
  top: calc(var(--u) * 75.5);
  left: calc(var(--u) * 21.5);
}
.store__title img {
  width: calc(var(--u) * 333.09);
  height: calc(var(--u) * 70.1);
}
.store__photo {
  z-index: 1;
  top: calc(var(--u) * 140);
  left: calc(var(--u) * 169);
  width: calc(var(--u) * 311);
  height: calc(var(--u) * 360);
  transform-origin: 50% 85%;
  animation: kotekote 1.2s steps(1, end) infinite;
}
@keyframes kotekote {
  0%   { transform: rotate(-2deg) translate(0, 0); }
  25%  { transform: rotate(1.5deg) translate(calc(var(--u) * 1), calc(var(--u) * -3)); }
  50%  { transform: rotate(-1deg) translate(calc(var(--u) * -1), calc(var(--u) * -1)); }
  75%  { transform: rotate(2deg) translate(0, calc(var(--u) * -3)); }
  100% { transform: rotate(-2deg) translate(0, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .store__photo { animation: none; }
}
.store__text {
  position: relative;
  z-index: 2;
  padding: calc(var(--u) * 179.6) 0 0 calc(var(--u) * 19.55);
  font-size: calc(var(--u) * 16);
  line-height: 1.6;
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.store__text p + p { margin-top: calc(var(--u) * 23.09); }
.store__map {
  position: relative;
  margin-top: calc(var(--u) * 47.41);
  width: calc(var(--u) * 480);
  height: calc(var(--u) * 238);
}
.info {
  padding: calc(var(--u) * 29.58) calc(var(--u) * 20) 0;
}
.info__head {
  color: var(--c-beige);
  line-height: 1;
}
.info__head--en {
  font-family: var(--ff-capitolium);
  font-weight: var(--fw-capitolium-r);
  font-size: calc(var(--u) * 20);
}
.info__head--jp {
  margin-top: calc(var(--u) * 28.05);
  font-size: calc(var(--u) * 18);
  letter-spacing: 0.025em;
}
.info__head--contact { margin-top: calc(var(--u) * 26.33); }
.info__body {
  margin-left: calc(var(--u) * -0.45);
  font-family: var(--ff-capitolium);
  font-weight: var(--fw-capitolium-sb);
  font-size: calc(var(--u) * 16);
}
.info__body--address,
.info__body--tel,
.info__body--web {
  margin-top: calc(var(--u) * 6.5);
  line-height: 1.6;
}
.info__body--web a {
  position: relative;
  padding-right: calc(var(--u) * 18);
  transition: opacity .3s;
}
.info__body--web a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: calc(var(--u) * 10);
  height: calc(var(--u) * 10);
  margin-top: calc(var(--u) * -6);
  background: url(../img/icon-outside-link.png) no-repeat center / contain;
}
.info__body--address a { transition: opacity .3s; }
.info__body--address a::after {
  content: "";
  display: inline-block;
  width: calc(var(--u) * 10);
  height: calc(var(--u) * 10);
  margin-left: calc(var(--u) * 8);
  background: url(../img/icon-outside-link.png) no-repeat center / contain;
}
.info__body--hours {
  margin-top: calc(var(--u) * 7.42);
  line-height: calc(var(--u) * 26.25);
}
.info__body--hours p + p { margin-top: calc(var(--u) * 8.5); }
.paren {
  line-height: 0;
  font-family: var(--ff-ryumin-u);
  font-weight: var(--fw-ryumin-u);
  margin-left: calc(var(--u) * 0.4);
}
.paren--open { margin-left: calc(var(--u) * -4); }
.store__btns {
  padding: calc(var(--u) * 38.82) calc(var(--u) * 20) 0;
}
.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: calc(var(--u) * 49);
  border: 1px solid var(--c-white);
  border-radius: calc(var(--u) * 9.2);
  color: var(--c-white);
  font-size: calc(var(--u) * 16);
  transition: background-color .3s, border-color .3s, color .3s;
}
.btn--tel { margin-top: calc(var(--u) * 9.5); }
.btn:active,
.btn:focus-visible {
  border-color: var(--c-gold);
  background: var(--c-gold);
  color: var(--c-red);
}
.btn:focus-visible { outline: 2px solid var(--c-white); outline-offset: 3px; }
.faq {
  margin-top: calc(var(--u) * 72);
}
.faq__head {
  display: flex;
  align-items: flex-start;
}
.faq__title {
  flex: 0 0 calc(var(--u) * 87);
  margin-left: calc(var(--u) * -0.45);
  font-family: var(--ff-mencken);
  font-weight: var(--fw-mencken-b);
  font-size: calc(var(--u) * 60);
  line-height: 1;
}
.faq__lead {
  margin-top: calc(var(--u) * 12.5);
  font-size: calc(var(--u) * 14);
  line-height: 1.4;
  white-space: nowrap;
}
.faq__list { margin-top: calc(var(--u) * 12.1); }
.faq__item { border-bottom: 1px solid var(--c-gold); }
.faq__q {
  position: relative;
  display: flex;
  align-items: flex-start;
  height: calc(var(--u) * 53);
  padding: calc(var(--u) * 11.56) calc(var(--u) * 30) 0 0;
  cursor: pointer;
}
.faq__item:nth-child(2) .faq__q {
  height: calc(var(--u) * 51);
  padding-top: calc(var(--u) * 9.56);
}
.faq__item:nth-child(3) .faq__q {
  height: calc(var(--u) * 52);
  padding-top: calc(var(--u) * 10.56);
}
.faq__item:nth-child(2) .faq__icon { top: calc(var(--u) * 19.9); }
.faq__item:nth-child(3) .faq__icon { top: calc(var(--u) * 20.9); }
.faq__mark {
  flex: 0 0 calc(var(--u) * 26.2);
  margin-left: calc(var(--u) * 0.58);
  color: var(--c-gold);
  font-family: var(--ff-mencken);
  font-weight: var(--fw-mencken-b);
  font-size: calc(var(--u) * 28);
  line-height: 1;
}
.faq__text {
  margin-top: calc(var(--u) * 8.18);
  font-size: calc(var(--u) * 16);
  line-height: 1;
  white-space: nowrap;
}
.faq__icon {
  position: absolute;
  top: calc(var(--u) * 21.9);
  right: calc(var(--u) * 0.5);
  width: calc(var(--u) * 14);
  height: calc(var(--u) * 14);
}
.faq__icon::before,
.faq__icon::after {
  content: "";
  position: absolute;
  background: var(--c-gold);
  transition: transform .5s cubic-bezier(.22, 1, .36, 1);
}
.faq__icon::before {
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  transform: translateY(-50%);
}
.faq__icon::after {
  top: 0;
  left: 50%;
  width: 1px;
  height: 100%;
  transform: translateX(-50%);
}
.faq__item.is-open .faq__icon::after,
html:not(.js) .faq__item[open] .faq__icon::after { transform: translateX(-50%) rotate(90deg); }
.faq__a {
  overflow: hidden;
  padding: 0 calc(var(--u) * 30) 0 calc(var(--u) * 26.76);
  font-family: var(--ff-ryumin-r);
  font-weight: var(--fw-ryumin-r);
  font-size: calc(var(--u) * 14);
  line-height: 1.6;
}
.faq__a p { padding-bottom: calc(var(--u) * 20); }
.footer {
  display: flex;
  align-items: center;
  height: calc(var(--u) * 158);
  background: var(--c-black);
  color: var(--c-white);
}
.footer__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 93%;
  margin: 0 auto;
}
.footer__logo {
  display: block;
  width: calc(var(--u) * 103);
}
.footer__logo img {
  width: 100%;
  height: auto;
}
.footer__link {
  position: relative;
  margin-top: calc(var(--u) * 30);
  padding-right: calc(var(--u) * 20);
  font-family: var(--ff-baskerville);
  font-weight: 700;
  font-size: calc(var(--u) * 11);
  line-height: 1.4;
  letter-spacing: 0.1em;
  transition: opacity .3s;
}
.footer__link::after {
  content: "";
  position: absolute;
  top: calc(var(--u) * 2);
  right: 0;
  width: calc(var(--u) * 9);
  height: calc(var(--u) * 9);
  background: url(../img/icon-outside-link.png) no-repeat center / contain;
}
.js [data-reveal] {
  opacity: 0;
  transform: translateY(calc(var(--u) * 30)) scale(.92);
}
.js [data-reveal].is-revealed {
  animation: pop .7s cubic-bezier(.34, 1.56, .64, 1) var(--reveal-delay, 0s) both;
}
@keyframes pop {
  0%   { opacity: 0; transform: translateY(calc(var(--u) * 30)) scale(.92); }
  60%  { opacity: 1; transform: translateY(calc(var(--u) * -6)) scale(1.03); }
  100% { opacity: 1; transform: none; }
}
.js .about__title[data-reveal] {
  opacity: 1;
  transform: none;
}
.js .about__title[data-reveal].is-revealed { animation: none; }
.about__word {
  transform-box: fill-box;
  transform-origin: center;
}
.js .about__title:not(.is-revealed) .about__word { opacity: 0; }
.js .about__title.is-revealed .about__word {
  animation: assemble 1.1s cubic-bezier(.22, 1.2, .36, 1) var(--d, 0s) both;
}
.about__word--what      { --fx: -420px; --fy: -320px; --fr: -720deg; --d: 0s; }
.about__word--is        { --fx:   60px; --fy: -460px; --fr:  540deg; --d: .08s; }
.about__word--the       { --fx: -520px; --fy:   40px; --fr: -360deg; --d: .16s; }
.about__word--riverside { --fx:  520px; --fy:  -80px; --fr:  360deg; --d: .24s; }
.about__word--run       { --fx: -380px; --fy:  380px; --fr:  540deg; --d: .32s; }
.about__word--club      { --fx:  360px; --fy:  420px; --fr: -540deg; --d: .40s; }
.about__word--q         { --fx:  440px; --fy: -360px; --fr:  900deg; --d: .50s; }
@keyframes assemble {
  0%   { opacity: 0; transform: translate(var(--fx), var(--fy)) rotate(var(--fr)) scale(1.4); }
  25%  { opacity: 1; }
  100% { opacity: 1; transform: none; }
}
.js .flow__list[data-reveal] {
  opacity: 1;
  transform: none;
}
.js .flow__list[data-reveal].is-revealed { animation: none; }
.js .flow__list:not(.is-revealed) .flow__item { opacity: 0; }
.js .flow__list:not(.is-revealed) .flow__item::after { transform: scaleX(0); }
.js .flow__list.is-revealed .flow__item {
  animation: rise .7s cubic-bezier(.22, 1, .36, 1) var(--d, 0s) both;
}
.js .flow__list.is-revealed .flow__item::after {
  animation: draw .8s cubic-bezier(.65, 0, .35, 1) calc(var(--d, 0s) + .15s) both;
}
.flow__item:nth-child(1) { --d: 0s; }
.flow__item:nth-child(2) { --d: .12s; }
.flow__item:nth-child(3) { --d: .24s; }
.flow__item:nth-child(4) { --d: .36s; }
@keyframes rise {
  0%   { opacity: 0; transform: translateY(calc(var(--u) * 14)); }
  100% { opacity: 1; transform: none; }
}
@keyframes draw {
  0%   { transform: scaleX(0); }
  100% { transform: scaleX(1); }
}
.js .detail[data-reveal] {
  opacity: 1;
  transform: none;
}
.js .detail[data-reveal].is-revealed { animation: none; }
.js .detail:not(.is-revealed) > * { opacity: 0; }
.js .detail:not(.is-revealed) .detail__title::after { transform: scaleX(0); }
.js .detail.is-revealed > * { animation: rise .7s cubic-bezier(.22, 1, .36, 1) both; }
.js .detail.is-revealed .detail__title::after { animation: draw .8s cubic-bezier(.65, 0, .35, 1) .15s both; }
.js .detail.is-revealed .detail__list { animation-delay: .12s; }
.js .detail.is-revealed .detail__note { animation-delay: .24s; }
.hero__title-run,
.hero__glow-title--run {
  animation: hero-pop 1.1s cubic-bezier(.34, 1.4, .64, 1) .35s both;
}
@keyframes hero-pop {
  0%   { opacity: 0; transform: translateY(calc(var(--u) * 40)) scale(.94); filter: blur(10px); }
  55%  { opacity: 1; filter: blur(0); }
  70%  { transform: translateY(calc(var(--u) * -6)) scale(1.015); }
  100% { opacity: 1; transform: none; filter: blur(0); }
}
@media (prefers-reduced-motion: reduce) {
  .hero__title-run,
  .hero__glow-title--run { animation: none; }
  .js .detail > *,
  .js .detail .detail__title::after { opacity: 1; transform: none; animation: none; }
  .js .flow__list .flow__item,
  .js .flow__list .flow__item::after { opacity: 1; transform: none; animation: none; }
  .js [data-reveal] { opacity: 1; transform: none; }
  .js [data-reveal].is-revealed { animation: none; }
  .js .about__title .about__word { opacity: 1; animation: none; }
}
.header__logo,
.about__lead,
.about__text,
.store__text,
.info__body,
.btn,
.faq__text { font-size: max(14px, calc(var(--u) * 16)); }
.flow__text { font-size: max(14px, calc(var(--u) * 16.92)); }
.header__entry { font-size: max(20px, calc(var(--u) * 24)); }
.flow__text--s { font-size: max(14px, calc(var(--u) * 16)); }
.detail__list,
.faq__a,
.faq__lead { font-size: max(12px, calc(var(--u) * 14)); }
.flow__note,
.gallery__note,
.detail__note { font-size: max(11px, calc(var(--u) * 12)); }
.gallery__account { font-size: max(11px, calc(var(--u) * 13)); }
.footer__link { font-size: max(11px, calc(var(--u) * 11)); }
.detail__note { line-height: 1.6; }
.flow__note,
.gallery__note {
  flex: 1;
  min-width: 0;
  white-space: normal;
}
.flow__item {
  height: auto;
  min-height: calc(var(--u) * 52);
  padding-bottom: calc(var(--u) * 8);
}
.flow__item:last-child { min-height: 0; padding-bottom: 0; }
.flow__text {
  white-space: normal;
  line-height: 1.3;
}
.side { display: none; }
@media (min-width: 1080px) {
  html { scroll-behavior: smooth; }
  .page { box-shadow: 0 0 40px rgba(8, 14, 34, .12); }
  .side {
    position: fixed;
    top: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc((100vw - 480px) / 2);
    padding: 48px 32px;
    color: var(--c-navy);
    font-family: var(--ff-ryumin-h);
    font-weight: var(--fw-ryumin-h);
  }
  .side--left { left: 0; }
  .side--right { right: 0; }
  .side__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 300px;
    text-align: center;
  }
  .side__catch {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--c-red);
    font-family: var(--ff-mencken);
    font-weight: var(--fw-mencken-r);
    font-size: 26px;
    line-height: 1;
  }
  .side__catch::before,
  .side__catch::after {
    content: "";
    width: 14px;
    height: 1px;
    background: currentColor;
  }
  .side__catch::before { transform: rotate(50deg); }
  .side__catch::after { transform: rotate(-50deg); }
  .side__logo {
    width: 100%;
    max-width: 280px;
    margin-top: 16px;
  }
  .side__runners {
    width: 104px;
    margin-top: 20px;
    transform-origin: 50% 100%;
    animation: tekuteku .8s steps(1, end) infinite;
  }
  @keyframes tekuteku {
    0%   { transform: translate(0, 0) rotate(-1.5deg); }
    25%  { transform: translate(1px, -3px) rotate(0deg); }
    50%  { transform: translate(2px, 0) rotate(1.5deg); }
    75%  { transform: translate(1px, -3px) rotate(0deg); }
    100% { transform: translate(0, 0) rotate(-1.5deg); }
  }
  .side__lead {
    margin-top: 16px;
    font-size: 15px;
    line-height: 1.6;
  }
  .side__btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 56px;
    border-radius: 9.2px;
    font-family: var(--ff-capitolium);
    font-weight: var(--fw-capitolium-sb);
    font-size: 17px;
    letter-spacing: .06em;
    transition: opacity .3s, transform .3s;
  }
  .side__btn--entry {
    margin-top: 20px;
    background: var(--c-red);
    color: var(--c-white);
    box-shadow: 4px 4px 0 var(--c-navy);
  }
  .side__btn--line {
    margin-top: 14px;
    border: 1px solid currentColor;
    color: var(--c-navy);
  }
  .side__btn-icon,
  .side__btn-sns {
    position: absolute;
    top: 50%;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
  }
  .side__btn-icon { right: 20px; }
  .side__btn-sns { left: 20px; width: 20px; height: 20px; }
  .side__btn svg { display: block; width: 100%; height: 100%; }
  .side__caps {
    --cap-shape: polygon(50.00% 0.00%, 51.30% 0.32%, 52.56% 1.19%, 53.75% 2.40%, 54.87% 3.63%, 55.98% 4.59%, 57.12% 5.06%, 58.35% 4.97%, 59.69% 4.39%, 61.15% 3.57%, 62.65% 2.79%, 64.12% 2.35%, 65.45% 2.45%, 66.59% 3.15%, 67.52% 4.37%, 68.27% 5.88%, 68.96% 7.41%, 69.72% 8.66%, 70.66% 9.46%, 71.85% 9.75%, 73.31% 9.62%, 74.95% 9.29%, 76.62% 9.01%, 78.15% 9.04%, 79.39% 9.55%, 80.25% 10.57%, 80.76% 12.02%, 81.01% 13.69%, 81.20% 15.35%, 81.53% 16.78%, 82.17% 17.83%, 83.22% 18.47%, 84.65% 18.80%, 86.31% 18.99%, 87.98% 19.24%, 89.43% 19.75%, 90.45% 20.61%, 90.96% 21.85%, 90.99% 23.38%, 90.71% 25.05%, 90.38% 26.69%, 90.25% 28.15%, 90.54% 29.34%, 91.34% 30.28%, 92.59% 31.04%, 94.12% 31.73%, 95.63% 32.48%, 96.85% 33.41%, 97.55% 34.55%, 97.65% 35.88%, 97.21% 37.35%, 96.43% 38.85%, 95.61% 40.31%, 95.03% 41.65%, 94.94% 42.88%, 95.41% 44.02%, 96.37% 45.13%, 97.60% 46.25%, 98.81% 47.44%, 99.68% 48.70%, 100.00% 50.00%, 99.68% 51.30%, 98.81% 52.56%, 97.60% 53.75%, 96.37% 54.87%, 95.41% 55.98%, 94.94% 57.12%, 95.03% 58.35%, 95.61% 59.69%, 96.43% 61.15%, 97.21% 62.65%, 97.65% 64.12%, 97.55% 65.45%, 96.85% 66.59%, 95.63% 67.52%, 94.12% 68.27%, 92.59% 68.96%, 91.34% 69.72%, 90.54% 70.66%, 90.25% 71.85%, 90.38% 73.31%, 90.71% 74.95%, 90.99% 76.62%, 90.96% 78.15%, 90.45% 79.39%, 89.43% 80.25%, 87.98% 80.76%, 86.31% 81.01%, 84.65% 81.20%, 83.22% 81.53%, 82.17% 82.17%, 81.53% 83.22%, 81.20% 84.65%, 81.01% 86.31%, 80.76% 87.98%, 80.25% 89.43%, 79.39% 90.45%, 78.15% 90.96%, 76.62% 90.99%, 74.95% 90.71%, 73.31% 90.38%, 71.85% 90.25%, 70.66% 90.54%, 69.72% 91.34%, 68.96% 92.59%, 68.27% 94.12%, 67.52% 95.63%, 66.59% 96.85%, 65.45% 97.55%, 64.12% 97.65%, 62.65% 97.21%, 61.15% 96.43%, 59.69% 95.61%, 58.35% 95.03%, 57.12% 94.94%, 55.98% 95.41%, 54.87% 96.37%, 53.75% 97.60%, 52.56% 98.81%, 51.30% 99.68%, 50.00% 100.00%, 48.70% 99.68%, 47.44% 98.81%, 46.25% 97.60%, 45.13% 96.37%, 44.02% 95.41%, 42.88% 94.94%, 41.65% 95.03%, 40.31% 95.61%, 38.85% 96.43%, 37.35% 97.21%, 35.88% 97.65%, 34.55% 97.55%, 33.41% 96.85%, 32.48% 95.63%, 31.73% 94.12%, 31.04% 92.59%, 30.28% 91.34%, 29.34% 90.54%, 28.15% 90.25%, 26.69% 90.38%, 25.05% 90.71%, 23.38% 90.99%, 21.85% 90.96%, 20.61% 90.45%, 19.75% 89.43%, 19.24% 87.98%, 18.99% 86.31%, 18.80% 84.65%, 18.47% 83.22%, 17.83% 82.17%, 16.78% 81.53%, 15.35% 81.20%, 13.69% 81.01%, 12.02% 80.76%, 10.57% 80.25%, 9.55% 79.39%, 9.04% 78.15%, 9.01% 76.62%, 9.29% 74.95%, 9.62% 73.31%, 9.75% 71.85%, 9.46% 70.66%, 8.66% 69.72%, 7.41% 68.96%, 5.88% 68.27%, 4.37% 67.52%, 3.15% 66.59%, 2.45% 65.45%, 2.35% 64.12%, 2.79% 62.65%, 3.57% 61.15%, 4.39% 59.69%, 4.97% 58.35%, 5.06% 57.12%, 4.59% 55.98%, 3.63% 54.87%, 2.40% 53.75%, 1.19% 52.56%, 0.32% 51.30%, 0.00% 50.00%, 0.32% 48.70%, 1.19% 47.44%, 2.40% 46.25%, 3.63% 45.13%, 4.59% 44.02%, 5.06% 42.88%, 4.97% 41.65%, 4.39% 40.31%, 3.57% 38.85%, 2.79% 37.35%, 2.35% 35.88%, 2.45% 34.55%, 3.15% 33.41%, 4.37% 32.48%, 5.88% 31.73%, 7.41% 31.04%, 8.66% 30.28%, 9.46% 29.34%, 9.75% 28.15%, 9.62% 26.69%, 9.29% 25.05%, 9.01% 23.38%, 9.04% 21.85%, 9.55% 20.61%, 10.57% 19.75%, 12.02% 19.24%, 13.69% 18.99%, 15.35% 18.80%, 16.78% 18.47%, 17.83% 17.83%, 18.47% 16.78%, 18.80% 15.35%, 18.99% 13.69%, 19.24% 12.02%, 19.75% 10.57%, 20.61% 9.55%, 21.85% 9.04%, 23.38% 9.01%, 25.05% 9.29%, 26.69% 9.62%, 28.15% 9.75%, 29.34% 9.46%, 30.28% 8.66%, 31.04% 7.41%, 31.73% 5.88%, 32.48% 4.37%, 33.41% 3.15%, 34.55% 2.45%, 35.88% 2.35%, 37.35% 2.79%, 38.85% 3.57%, 40.31% 4.39%, 41.65% 4.97%, 42.88% 5.06%, 44.02% 4.59%, 45.13% 3.63%, 46.25% 2.40%, 47.44% 1.19%, 48.70% 0.32%);
    display: flex;
    justify-content: center;
    gap: 18px;
    width: 100%;
    margin-top: 22px;
  }
  .side__cap {
    position: relative;
    display: grid;
    place-items: center;
    width: min(128px, calc((100% - 18px) / 2));
    aspect-ratio: 1;
    font-family: var(--ff-capitolium);
    font-weight: var(--fw-capitolium-sb);
    font-size: 15px;
    letter-spacing: .06em;
    isolation: isolate;
  }
  .side__cap::before,
  .side__cap::after {
    content: "";
    position: absolute;
    inset: 0;
    clip-path: var(--cap-shape);
    animation: cap-spin 10s linear infinite paused;
  }
  .side__cap::before { z-index: -2; background: var(--c-red); }
  .side__cap::after { z-index: -1; inset: 1.5px; background: var(--c-beige); }
  @keyframes cap-spin { to { transform: rotate(1turn); } }
  .side__cap { color: var(--c-red); }
  .side__cap-label { line-height: 1; }
  .side__people {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 200px;
    pointer-events: none;
    transform: rotate(10deg);
    transform-origin: 0 100%;
  }
  .side-nav {
    width: 100%;
    max-width: 260px;
    text-align: left;
  }
  .side-nav__title {
    margin-bottom: 14px;
    color: var(--c-red);
    font-family: var(--ff-capitolium);
    font-weight: var(--fw-capitolium-sb);
    font-size: 11px;
    letter-spacing: .24em;
  }
  .side-nav a {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 9px 0;
    transition: color .3s;
  }
  .side-nav__num {
    flex: 0 0 26px;
    color: var(--c-red);
    font-family: var(--ff-mencken);
    font-weight: var(--fw-mencken-b);
    font-size: 24px;
    line-height: 1;
  }
  .side-nav__label { flex: 1; }
  .side-nav__en {
    display: block;
    color: var(--c-red);
    font-family: var(--ff-capitolium);
    font-weight: var(--fw-capitolium-sb);
    font-size: 10px;
    line-height: 1;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .side-nav__ja {
    display: block;
    margin-top: 5px;
    font-family: var(--ff-ryumin-h);
    font-weight: var(--fw-ryumin-h);
    font-size: 15px;
    line-height: 1.3;
  }
  .side-nav__arrow {
    flex: 0 0 24px;
    height: 24px;
    padding: 6px;
    border: 1px solid currentColor;
    border-radius: 50%;
    transition: background-color .3s, border-color .3s, color .3s, transform .3s;
  }
  .side-nav__arrow svg { display: block; width: 100%; height: 100%; }
  .side-nav a[aria-current] { color: var(--c-red); }
  .side-nav a[aria-current] .side-nav__arrow {
    border-color: var(--c-red);
    background: var(--c-red);
    color: var(--c-white);
  }
  .side__store-label {
    margin-top: 28px;
    color: var(--c-red);
    font-family: var(--ff-capitolium);
    font-weight: var(--fw-capitolium-sb);
    font-size: 15px;
    letter-spacing: .06em;
  }
  .side__store-label + .side__btn--line {
    max-width: 260px;
    height: 48px;
    margin-top: 10px;
    font-size: 15px;
  }
}
@media (min-width: 1080px) and (max-height: 860px) {
  .side__people { display: none; }
}
@media (min-width: 1080px) and (hover: hover) {
  .side__btn:hover { opacity: .75; }
  .side__cap:hover::before,
  .side__cap:hover::after { animation-play-state: running; }
  .side__btn--entry:hover { transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--c-navy); opacity: 1; }
  .side-nav a:hover { color: var(--c-red); }
  .side-nav a:hover .side-nav__arrow {
    border-color: var(--c-red);
    background: var(--c-red);
    color: var(--c-white);
    transform: translateY(2px);
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .side__runners { animation: none; }
  .side__cap::before,
  .side__cap::after { animation: none; }
}
@media (hover: hover) {
  .btn:hover {
    border-color: var(--c-gold);
    background: var(--c-gold);
    color: var(--c-red);
  }
  .header__logo { transition: opacity .3s; }
  .header__logo:hover,
  .footer__link:hover,
  .info__body--web a:hover,
  .info__body--address a:hover,
  .detail__link:hover { opacity: .7; }
}
