/*! kiso.css v1.2.4 | MIT License | https://github.com/tak-dcxi/kiso.css */
*,
::before,
::after {
  box-sizing: border-box;
}

:where(:root) {
  font-family: sans-serif;
  line-height: 1.5;
  text-spacing-trim: trim-start;
  text-autospace: normal;
  line-break: strict;
  overflow-wrap: anywhere;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
       text-size-adjust: 100%;
  scrollbar-gutter: stable;
  -webkit-tap-highlight-color: transparent;
}

:where(body) {
  min-block-size: 100dvb;
  margin: unset;
}

:where(:is(h1, h2, h3, h4, h5, h6):lang(en)) {
  text-wrap: pretty;
}

:where(h1) {
  margin-block: 0.67em;
  font-size: 2em;
}

:where(h2, h3, h4, h5, h6) {
  margin-block: unset;
}

:where(search) {
  display: block flow;
}

:where(p, blockquote, figure, pre, address, ul, ol, dl, menu) {
  margin-block: unset;
}

:where(blockquote, figure) {
  margin-inline: unset;
}

:where(p:lang(en)) {
  text-wrap: pretty;
}

:where(address:lang(ja)) {
  font-style: unset;
}

:where(ul, ol, menu) {
  padding-inline-start: unset;
  list-style-type: "";
}

:where(dt) {
  font-weight: bolder;
}

:where(dd) {
  margin-inline-start: unset;
}

:where(pre) {
  text-spacing-trim: space-all;
  text-autospace: no-autospace;
}

@media print {
  :where(pre) {
    text-wrap-mode: unset;
  }
}
:where(em:lang(ja)) {
  font-weight: bolder;
}

:where(:is(i, cite, em, dfn):lang(ja)) {
  font-style: unset;
}

:where(u, s, del, ins) {
  text-decoration-inset: auto;
}

:where(code, kbd, samp) {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-feature-settings: initial;
  font-variation-settings: initial;
  font-size: unset;
  font-variant-ligatures: none;
}

:where(abbr[title]) {
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-inset: auto;
  cursor: help;
}

:where(time) {
  text-autospace: no-autospace;
}

@media (forced-colors: active) {
  :where(mark) {
    background-color: Highlight;
    color: HighlightText;
  }
}
@media print {
  :where(mark) {
    border-width: 1px;
    border-style: dotted;
  }
}
:where(a) {
  color: unset;
}

:where(a:-moz-any-link) {
  text-decoration-line: unset;
  text-decoration-thickness: from-font;
  text-decoration-inset: auto;
}

:where(a:any-link) {
  text-decoration-line: unset;
  text-decoration-thickness: from-font;
  text-decoration-inset: auto;
}

:where(img, svg, picture, video, audio, canvas, model, iframe, embed, object) {
  max-inline-size: 100%;
  vertical-align: bottom;
}

:where(img, svg, picture, video, canvas, model, iframe, embed, object) {
  block-size: auto;
}

:where(iframe) {
  border: unset;
}

:where(table) {
  border-collapse: collapse;
}

:where(caption, th) {
  text-align: unset;
}

:where(caption:lang(en)) {
  text-wrap: pretty;
}

:where(button, input, select, textarea),
::file-selector-button {
  border-width: 1px;
  border-style: solid;
  border-color: unset;
  border-radius: unset;
  color: unset;
  font: unset;
  letter-spacing: unset;
  text-align: unset;
}

:where(input:is([type=radio i], [type=checkbox i])) {
  margin: unset;
}

:where(input[type=file i]) {
  border: unset;
}

:where(input[type=search i]) {
  -webkit-appearance: textfield;
}

@supports (-webkit-touch-callout: none) {
  :where(input[type=search i]) {
    background-color: Canvas;
  }
}
:where(input:is([type=tel i],
[type=url i],
[type=email i],
[type=number i]):not(:-moz-placeholder)) {
  direction: ltr;
}
:where(input:is([type=tel i],
[type=url i],
[type=email i],
[type=number i]):not(:placeholder-shown)) {
  direction: ltr;
}

:where(textarea) {
  margin-block: unset;
  resize: block;
}

:where(input:not([type=button i], [type=submit i], [type=reset i]),
textarea,
[contenteditable]) {
  text-autospace: no-autospace;
}

:where(button,
input:is([type=button i], [type=submit i], [type=reset i])),
::file-selector-button {
  background-color: unset;
}

:where(button,
input:is([type=button i], [type=submit i], [type=reset i]),
[role=tab i],
[role=button i],
[role=option i]),
::file-selector-button {
  touch-action: manipulation;
}

:where(button:enabled,
label[for],
select:enabled,
input:is([type=button i],
[type=submit i],
[type=reset i],
[type=radio i],
[type=checkbox i]):enabled,
[role=tab i],
[role=button i],
[role=option i]),
:where(:enabled)::file-selector-button {
  cursor: pointer;
}

:where(fieldset) {
  min-inline-size: 0;
  margin-inline: unset;
  padding: unset;
  border: unset;
}

:where(legend) {
  padding-inline: unset;
}

:where(progress) {
  vertical-align: unset;
}

::-moz-placeholder {
  opacity: unset;
}

::placeholder {
  opacity: unset;
}

:where(summary) {
  list-style-type: "";
  cursor: pointer;
}

:where(summary)::-webkit-details-marker {
  display: none;
}

:where(dialog, [popover]) {
  overscroll-behavior-block: contain;
  padding: unset;
  border: unset;
}

:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  display: none !important;
}

:where(dialog) {
  max-inline-size: unset;
  max-block-size: unset;
}

:where(dialog)::backdrop {
  background-color: oklch(0% 0 0deg / 0.3);
}

:where([popover]) {
  margin: unset;
}

:where(:focus-visible) {
  outline-offset: 3px;
}

[tabindex="-1"]:focus {
  outline: none !important;
}

:where(:disabled, [aria-disabled=true i]) {
  cursor: default;
}

[hidden]:not([hidden=until-found i]) {
  display: none !important;
}

:where(:root) {
  text-autospace: no-autospace;
  scrollbar-gutter: auto;
}

h1,
h2,
h3,
h4 {
  margin-block: 0;
  font-size: inherit;
  font-weight: inherit;
}

img,
picture,
video,
canvas,
svg {
  display: block;
}

input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

button {
  padding: 0;
  border: none;
  background: none;
}

p,
h1,
h2,
h3,
h4 {
  overflow-wrap: break-word;
}

:root {
  --color-brown: #5b3f39;
  --color-white: #fff;
  --color-sky: #58bdec;
  --color-sky-pc: #58bced;
  --color-sky-light: #90d8f9;
  --color-blue: #00a0e9;
  --color-pink: #e93398;
  --color-pink-shadow: #cb006f;
  --color-button: #5b3f3a;
  --color-button-shadow: #542b24;
  --color-magenta: #9f1075;
  --color-btn-shadow: rgb(91 63 57 / 0.25);
  --color-panel-veil: rgb(255 255 255 / 0.65);
  --color-veil: rgb(88 189 236 / 0.8);
  --color-column-shadow: rgb(0 0 0 / 0.1);
  --color-card-border: #5e4c4a;
  --color-card-bg: #dff5ff;
  --color-card01-border: #07913a;
  --color-card01-bg: #ecfff3;
  --color-card01-grid: rgb(7 145 58 / 0.2);
  --color-card02-border: #924898;
  --color-card02-bg: #fef3ff;
  --color-card02-grid: rgb(146 72 152 / 0.2);
  --color-card03-border: #009ad1;
  --color-card03-bg: #f1fbff;
  --color-card03-grid: rgb(0 154 209 / 0.2);
  --color-card04-border: #ea5413;
  --color-card04-bg: #fff9f7;
  --color-card04-grid: rgb(234 84 19 / 0.2);
  --color-grid-sky: rgb(255 255 255 / 0.302);
  --color-grid-exam: rgb(255 255 255 / 0.4);
  --color-grid-white: rgb(88 189 236 / 0.4);
  --color-card-grid: rgb(88 189 236 / 0.4);
  --color-bar-track: #f1f1f1;
  --color-bar-thumb: #d9d9d9;
  --color-red: #e83f5d;
  --color-yellow: #ffe208;
  --color-dummy: #bbbbbb;
  --base-font-family: "Zen Maru Gothic", sans-serif;
  --medium: 500;
  --bold: 700;
  --black: 900;
  --content-width: 23.4375rem;
  --card-gutter: 0.71875rem;
  --card-width: 22rem;
}

html {
  font-size: calc(min(100vw, 430px) / 375 * 16);
}
@media (max-width: 767px) {
  html {
    scroll-padding-block-start: 3.65625rem;
  }
}
@media (min-width: 768px) {
  html {
    font-size: clamp(1rem, 1rem + (100vw - 48rem) * 0.01875, 1.6rem);
  }
}

html:has(dialog[open]) {
  overflow: hidden;
  padding-inline-end: var(--scrollbar-width, 0px);
}

body {
  background-color: var(--color-sky);
  color: var(--color-brown);
  font-family: var(--base-font-family);
  font-weight: var(--medium);
  font-size: 0.875rem;
  -webkit-font-smoothing: antialiased;
}
@media (min-width: 768px) {
  body {
    background-color: var(--color-sky-pc);
  }
}

*,
*::before,
*::after {
  letter-spacing: -0.025em;
}

.l-page {
  overflow-x: clip;
}
@media (min-width: 768px) {
  .l-page {
    --kv-art-width: min(
      56.25vw,
      100vh,
      clamp(720px, calc((100vw - 600px) * 0.857143), 1200px)
    );
    --kv-gutter: max(
      7.8125vw,
      min(
        calc(37.5vw - 380px),
        calc((100vw - 600px) * 0.190476)
      )
    );
    display: grid;
    grid-template-columns: minmax(0, 1fr) 23.4375rem var(--kv-gutter);
    align-items: start;
  }
}

.l-textwidth {
  inline-size: min(100%, 23.4375rem);
  margin-inline: auto;
}
@media (max-width: 767px) {
  .l-textwidth {
    inline-size: 100%;
  }
}

.l-textwidth--fixed {
  max-inline-size: 23.4375rem;
}

.l-content--grid {
  background-color: var(--color-sky-light);
  background-image: repeating-linear-gradient(45deg, var(--color-grid-sky) 0 0.0625rem, transparent 0.0625rem 2.3125rem), repeating-linear-gradient(-45deg, var(--color-grid-sky) 0 0.0625rem, transparent 0.0625rem 2.3125rem);
}

.l-content {
  overflow-x: hidden;
  overflow-x: clip;
}
@media (min-width: 768px) {
  .l-content {
    position: relative;
    z-index: 6;
    inline-size: 23.4375rem;
    background-color: var(--color-sky);
    box-shadow: 0 4px 30px var(--color-column-shadow);
  }
}

.p-txt {
  position: relative;
  z-index: 6;
}

.p-kv {
  position: relative;
  z-index: 5;
}

.p-schedule {
  position: relative;
  z-index: 4;
}

.p-contest {
  position: relative;
  z-index: 3;
}

.l-footer {
  position: relative;
  z-index: 2;
}

.p-message {
  position: relative;
  z-index: 1;
}

.l-container {
  inline-size: min(100%, var(--content-width));
  margin-inline: auto;
}

.l-footer {
  min-block-size: 15.25rem;
}

.l-footer__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(15.25rem, auto);
}

.l-footer__bg {
  grid-area: 1/1;
  z-index: 0;
  align-self: stretch;
  margin-block-start: 1.84375rem;
  background-color: var(--color-sky);
  position: relative;
  padding-block-start: 2.84375rem;
  background-clip: content-box;
}
.l-footer__bg::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  block-size: 2.90625rem;
  background-color: inherit;
  clip-path: ellipse(55.9% 5.14375rem at 50% 5.14375rem);
}

.l-footer__content {
  grid-area: 1/1;
  z-index: 1;
  align-self: start;
  padding-block-start: 4.375rem;
}

.l-footer__sns {
  display: flex;
  justify-content: center;
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}

.l-footer__logo {
  display: block;
  inline-size: 10.4375rem;
  margin-block-start: 1.75rem;
  margin-inline: auto;
}

.l-footer__copyright {
  margin-block-start: 0.9375rem;
  font-weight: var(--medium);
  font-size: 0.6875rem;
  line-height: 1;
  letter-spacing: 0.025em;
  text-align: center;
}

.c-em {
  font-weight: var(--bold);
  font-size: 1.125rem;
  line-height: 1;
}

.c-em--blue {
  color: var(--color-blue);
}

.c-em--pink {
  color: var(--color-pink);
}

.c-em--mid {
  font-size: 0.9375rem;
}

.c-kern {
  margin-inline-start: var(--kern, 0);
  letter-spacing: inherit;
}

.c-button {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  inline-size: min(100% - 1.40625rem, 600px);
  min-block-size: 3.875rem;
  margin-inline: auto;
  padding-block: 0.5rem;
  padding-inline: 1.125rem;
  border-radius: 1.90625rem;
  background-color: var(--color-button);
  box-shadow: inset 0 0 0 0.1875rem var(--color-button), inset 0 0 0 0.3125rem var(--color-white), 0 0.25rem 0 var(--color-button-shadow);
  color: var(--color-white);
  font-weight: var(--bold);
  font-size: 1.125rem;
  line-height: 1;
  transition: translate 0.15s, box-shadow 0.15s;
}
@media (any-hover: hover) {
  .c-button:hover {
    translate: 0 0.25rem;
    box-shadow: inset 0 0 0 0.1875rem var(--color-button), inset 0 0 0 0.3125rem var(--color-white), 0 0 0 var(--color-button-shadow);
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-button {
    transition: none;
  }
}

.c-button__label {
  grid-area: 1/1;
  text-align: center;
}

.c-button--tight .c-button__label {
  justify-self: start;
  padding-inline-start: 0.375rem;
  letter-spacing: -0.095em;
  text-align: start;
}

.c-button__icon {
  grid-area: 1/1;
  justify-self: end;
  inline-size: 1.25rem;
}

.c-card {
  position: relative;
  inline-size: min(100%, 600px + 1.4375rem);
  margin-inline: auto;
  text-align: center;
}

.c-card__illust {
  position: absolute;
  z-index: 1;
  max-inline-size: none;
}

.c-card__dream {
  position: absolute;
  z-index: 1;
  max-inline-size: none;
  opacity: 1;
  animation: card-dream 2.4s steps(1, end) infinite;
}
@media (prefers-reduced-motion: reduce) {
  .c-card__dream {
    opacity: 1;
    animation: none;
  }
}

@keyframes card-dream {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.c-card__collage {
  position: relative;
  inline-size: min(100%, 20rem);
  block-size: 19.03125rem;
  margin-block-start: 1.15625rem;
  margin-inline: auto;
}

.c-card__photo {
  position: absolute;
  max-inline-size: none;
}

.c-card__photo--a {
  inset-block-start: 0;
  inset-inline-start: 7.4375rem;
  inline-size: 11.59375rem;
}

.c-card__photo--b {
  inset-block-start: 3.28125rem;
  inset-inline-start: 1rem;
  inline-size: 7.5625rem;
}

.c-card__photo--c {
  inset-block-start: 8.96875rem;
  inset-inline-start: 13.25rem;
  inline-size: 6.71875rem;
}

.c-card__caption {
  position: absolute;
  inset-block-start: 6.96875rem;
  inset-inline-start: 13.46875rem;
  font-size: 0.625rem;
  line-height: 1.2;
  white-space: nowrap;
  text-align: start;
}

.c-card__aside {
  position: absolute;
  inset-block-start: 11.09375rem;
  inset-inline-start: 0.03125rem;
  text-align: start;
}

.c-card__frame {
  overflow: hidden;
  inline-size: min(100% - 1.4375rem, 600px);
  margin-inline: auto;
  padding-inline: 0.8125rem;
  border: 0.1875rem solid var(--card-border, var(--color-card-border));
  border-radius: 1.125rem;
  background-color: var(--card-bg, var(--color-card-bg));
  background-image: repeating-linear-gradient(to right, var(--card-grid, var(--color-card-grid)) 0 0.0625rem, transparent 0.0625rem 1.15625rem), repeating-linear-gradient(to bottom, var(--card-grid, var(--color-card-grid)) 0 0.0625rem, transparent 0.0625rem 1.15625rem);
  background-repeat: repeat;
  background-size: 1.15625rem 1.15625rem;
  background-position: 0.3125rem 0.34375rem;
}

.c-card__date {
  display: block;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  block-size: 2.09375rem;
  margin-inline: auto;
  padding-inline: 0.78125rem;
  padding-block-start: 0.125rem;
  border: 0.1875rem solid var(--color-brown);
  border-radius: 1.0625rem;
  background-color: var(--color-white);
  font-weight: var(--bold);
  font-size: 1rem;
  line-height: 1.4375rem;
  white-space: nowrap;
}

.c-card__date-day {
  font-size: 1.25rem;
}

.c-card__date-week {
  --kern: -0.315em;
  margin-inline-start: -0.3em;
  font-size: 0.875rem;
}

.c-card__date,
.c-card__date-day,
.c-card__date-week {
  letter-spacing: var(--date-tracking, 0.05em);
}

.c-card__title {
  --kern: -0.105em;
  color: var(--color-white);
  font-weight: var(--black);
  font-size: 1.625rem;
  line-height: 1;
  letter-spacing: -0.105em;
  paint-order: stroke fill;
  -webkit-text-stroke: 0.5rem var(--color-brown);
  filter: drop-shadow(0 0.125rem 0 var(--color-brown));
}

.c-card__title-sm {
  font-size: 1.25rem;
}

.c-card__lead {
  display: grid;
  justify-items: center;
  row-gap: 0.15625rem;
  font-weight: var(--bold);
  font-size: 1rem;
  line-height: 1;
}

.c-card__lead--inline {
  display: flex;
  align-items: center;
  justify-content: start;
}

.c-card__lead-line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: top;
  block-size: 1.59375rem;
  padding-inline: 0.75rem;
  border-radius: 0.3125rem;
  background-color: var(--color-magenta);
  color: var(--color-white);
  white-space: nowrap;
  letter-spacing: var(--pill-tracking, -0.1em);
}

.c-card__lead-num {
  font-size: 1.25rem;
  letter-spacing: var(--pill-tracking, -0.1em);
}

.c-card__lead-tail {
  margin-inline-start: 0.25rem;
  color: var(--color-brown);
  font-weight: var(--medium);
  font-size: 0.875rem;
}

.c-card__body {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.c-card__subtitle {
  font-weight: var(--bold);
  font-size: 0.875rem;
  line-height: 1;
}

.c-card__list {
  display: grid;
  justify-items: center;
  row-gap: 0.15625rem;
}

.c-card__list-item {
  display: flex;
  align-items: center;
  justify-content: center;
  -moz-column-gap: 0.375rem;
       column-gap: 0.375rem;
  block-size: 1.59375rem;
  padding-inline: 0.75rem;
  border-radius: 0.3125rem;
  background-color: var(--color-magenta);
  color: var(--color-white);
  font-weight: var(--bold);
  font-size: 1rem;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: var(--pill-tracking, -0.1em);
}

.c-card__list-icon {
  inline-size: 0.59375rem;
  flex-shrink: 0;
}

.c-card__badge {
  position: relative;
  z-index: 1;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  block-size: 2.5625rem;
  margin-inline: auto;
  padding-inline: 0.75rem 0.5rem;
  background-image: url("../img/top/sch-badge@2x.webp");
  background-repeat: no-repeat;
  background-size: 100% 100%;
  color: var(--color-white);
  white-space: nowrap;
  font-weight: var(--bold);
  font-size: 1.125rem;
  line-height: 2.1875rem;
  text-align: center;
}

.c-card__badge-num {
  font-size: 1.5rem;
}

.c-card__panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  border-radius: 0.625rem;
  background-color: var(--color-panel-veil);
}

.c-card__image {
  grid-area: 1/1;
  margin-inline: auto;
}

.c-card__deco {
  grid-area: 1/1;
  justify-self: start;
  align-self: start;
}

.c-card__note {
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  margin-inline-end: auto;
  font-size: 0.6875rem;
  line-height: 1.125rem;
  letter-spacing: -0.05em;
  text-align: left;
}

.c-card__note-line {
  display: block;
  padding-inline-start: 1em;
  text-indent: -1em;
}

.c-card__note-line--nowrap {
  white-space: nowrap;
}

.c-card__note-paren {
  margin-inline: -0.15em;
}

.c-card__note-em {
  color: var(--color-pink);
}

.c-card__note-link {
  color: var(--color-blue);
  text-decoration-line: underline;
}

.c-card--01 {
  --date-tracking: 0.017em;
  --card-border: var(--color-card01-border);
  --card-bg: var(--color-card01-bg);
  --card-grid: var(--color-card01-grid);
}

.c-card--01 .c-card__illust,
.c-card--01 .c-card__dream {
  inline-size: 9.8125rem;
  inset-block-start: -6.25rem;
  inset-inline-end: 2.90625rem;
}

.c-card--01 .c-card__title {
  margin-block-start: 2.15625rem;
}

.c-card--01 .c-card__date {
  padding-inline: 0.84375rem 0.625rem;
  margin-block-start: 1rem;
}

.c-card--01 .c-card__lead {
  margin-block-start: 0.875rem;
}

.c-card--01 .c-card__body {
  margin-block-start: 0.53125rem;
}

.c-card--01 .c-card__badge {
  margin-block-start: 0.90625rem;
  letter-spacing: -0.015em;
}

.c-card--01 .c-card__panel {
  margin-block-start: -1.3125rem;
  padding-block-start: 1.875rem;
  padding-block-end: 1.28125rem;
}

.c-card--01 .c-card__frame {
  padding-block-end: 0.96875rem;
}

.c-card--01 .c-card__note {
  margin-block-start: 0.5625rem;
}

.c-card--01 .c-card__lead-line:nth-of-type(1) {
  --pill-tracking: 0.016em;
  padding-inline: 0.59375rem;
}

.c-card--01 .c-card__lead-line:nth-of-type(2) {
  --pill-tracking: -0.055em;
  padding-inline: 0.5rem;
}

.c-card--02 {
  --date-tracking: 0.014em;
  --card-border: var(--color-card02-border);
  --card-bg: var(--color-card02-bg);
  --card-grid: var(--color-card02-grid);
}

.c-card--02 .c-card__illust,
.c-card--02 .c-card__dream {
  inline-size: 10.25rem;
  inset-block-start: -6.125rem;
  inset-inline-start: 1.75rem;
}

.c-card--02 .c-card__title {
  --kern: -0.118em;
  margin-block-start: 1.65625rem;
  line-height: 2.25rem;
  letter-spacing: -0.092em;
}

.c-card--02 .c-card__date {
  padding-inline: 0.84375rem 0.6875rem;
  margin-block-start: 0.625rem;
}

.c-card--02 .c-card__body {
  margin-block-start: 0.65625rem;
}

.c-card--02 .c-card__panel {
  margin-block-start: 1.0625rem;
  padding-block-start: 1.3125rem;
  padding-block-end: 1.34375rem;
}

.c-card--02 .c-card__frame {
  padding-block-end: 1.5rem;
}

.c-card--02 .c-card__lead-line {
  --pill-tracking: -0.019em;
  padding-inline: 0.25rem;
  margin-block: 0.28125rem 0.09375rem;
  font-weight: 700;
  font-size: 1rem;
}

.c-card--02 .c-card__lead-tail {
  display: inline-block;
  vertical-align: top;
  margin-block-start: 0.46875rem;
}

.c-card--03 {
  --date-tracking: -0.019em;
  --card-border: var(--color-card03-border);
  --card-bg: var(--color-card03-bg);
  --card-grid: var(--color-card03-grid);
}

.c-card--03 .c-card__illust,
.c-card--03 .c-card__dream {
  inline-size: 13.25rem;
  inset-block-start: -7.0625rem;
  inset-inline-end: 1.5rem;
}

.c-card--03 .c-card__title {
  --kern: -0.154em;
  margin-block-start: 2.15625rem;
  letter-spacing: -0.056em;
}

.c-card--03 .c-card__date {
  padding-inline: 0.8125rem 0.875rem;
  margin-block-start: 1rem;
}

.c-card--03 .c-card__subtitle {
  margin-block-start: 0.78125rem;
}

.c-card--03 .c-card__list {
  margin-block-start: 0.46875rem;
}

.c-card--03 .c-card__body {
  margin-block-start: 0.53125rem;
}

.c-card--03 .c-card__panel {
  background-color: transparent;
  margin-block-start: 0.78125rem;
  padding-block: 0;
}

.c-card--03 .c-card__frame {
  padding-block-end: 1.5625rem;
}

.c-card--03 .c-card__list-item:nth-of-type(1) {
  --pill-tracking: -0.061em;
  padding-inline: 0.5rem;
}

.c-card--03 .c-card__list-item:nth-of-type(2) {
  --pill-tracking: -0.018em;
  padding-inline: 0.40625rem;
}

.c-card--03 .c-card__list-item:nth-of-type(3) {
  --pill-tracking: -0.103em;
  padding-inline: 0.59375rem;
}

.c-card--04 {
  --date-tracking: 0.034em;
  --card-border: var(--color-card04-border);
  --card-bg: var(--color-card04-bg);
  --card-grid: var(--color-card04-grid);
}

.c-card--04 .c-card__illust,
.c-card--04 .c-card__dream {
  inline-size: 14.9375rem;
  inset-block-start: -7.125rem;
  inset-inline-start: 1.5rem;
}

.c-card--04 .c-card__title {
  margin-block-start: 2rem;
  letter-spacing: -0.087em;
}

.c-card--04 .c-card__date {
  padding-inline: 0.96875rem 0.9375rem;
  margin-block-start: 1rem;
}

.c-card--04 .c-card__date-week {
  margin-inline-start: 0;
}

.c-card--04 .c-card__body {
  margin-block-start: 0.53125rem;
}

.c-card--04 .c-card__body--04b {
  margin-block-start: 0;
}

.c-card--04 .c-card__aside .c-card__lead--inline {
  margin-block-start: 0.28125rem;
}

.c-card--04 .c-card__body--04c {
  margin-block-start: 0.09375rem;
}

.c-card--04 .c-card__lead-line {
  --pill-tracking: -0.062em;
  padding-inline: 0.40625rem;
  font-size: 1.125rem;
}

.c-card--04 .c-card__frame {
  padding-block-end: 1.0625rem;
}

.c-title {
  color: var(--color-white);
  font-weight: var(--black);
  font-size: 1.625rem;
  line-height: 2.25rem;
  letter-spacing: -0.05em;
  text-align: center;
  paint-order: stroke fill;
  -webkit-text-stroke: 0.5rem var(--color-brown);
  filter: drop-shadow(0 0.125rem 0 var(--color-brown));
}

.c-title__sm {
  font-size: 1.25rem;
  line-height: 1;
  letter-spacing: 0;
}

.c-panel {
  border-radius: 0.90625rem;
  background-color: var(--color-white);
  box-shadow: inset 0 0 0 0.1875rem var(--color-brown);
}

.c-panel--sky {
  background-color: var(--color-card-bg);
}

.c-panel--thin {
  border-radius: 0.75rem;
  box-shadow: inset 0 0 0 0.125rem var(--color-brown), inset 0 0 0 0.25rem var(--color-white), inset 0 0 0 0.3125rem var(--color-brown);
}

.c-sns {
  display: grid;
  place-content: center;
  inline-size: 3.125rem;
  block-size: 3.0625rem;
  border-radius: 50%;
  background-color: var(--color-white);
  transition: opacity 0.2s;
  will-change: opacity;
}
@media (any-hover: hover) {
  .c-sns:hover {
    opacity: 0.75;
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-sns {
    transition: none;
  }
}

.c-sns__icon {
  inline-size: 1.75rem;
}

.c-sns__icon--x {
  inline-size: 1.40625rem;
}

.c-sns__icon--tiktok {
  inline-size: 1.34375rem;
}

.c-sitetitle {
  display: flex;
  align-items: center;
  -moz-column-gap: 0.40625rem;
       column-gap: 0.40625rem;
  color: var(--color-brown);
  text-decoration: none;
}

.c-sitetitle__bird {
  inline-size: 2.34375rem;
  flex-shrink: 0;
}

.c-sitetitle__text {
  display: grid;
  row-gap: 0.0625rem;
  font-weight: var(--black);
  line-height: 1;
}

.c-sitetitle__sub {
  font-size: 0.75rem;
  letter-spacing: 0.02em;
}

.c-sitetitle__num,
.c-sitetitle__en {
  font-size: 0.8125rem;
}

.c-sitetitle__main {
  font-size: 1rem;
  letter-spacing: -0.02em;
}

.c-sitetitle__year {
  font-size: 1.0625rem;
}

.c-header {
  display: flex;
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: 15;
  align-items: center;
  block-size: 3.1875rem;
  padding-inline-start: 0.5625rem;
  background-color: var(--color-white);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
  will-change: opacity;
}
@media (min-width: 768px) {
  .c-header {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-header {
    transition: none;
  }
}

.c-header::after {
  content: "";
  position: absolute;
  inset-block-start: calc(100% - 0.0625rem);
  inset-inline: 0;
  block-size: 0.46875rem;
  background-image: url("../img/common/hdr-wave@2x.webp");
  background-repeat: repeat-x;
  background-size: 23.4375rem 100%;
}

.c-header.is-visible {
  opacity: 1;
  visibility: visible;
}

@media (any-hover: hover) {
  .c-header .c-sitetitle:hover {
    opacity: 0.75;
  }
}

.c-pagetop {
  display: grid;
  position: fixed;
  inset-block-end: 1.25rem;
  inset-inline-end: 0.46875rem;
  z-index: 10;
  justify-items: center;
  row-gap: 0.28125rem;
  padding: 0.375rem 0.25rem;
  border: 0.125rem solid var(--color-brown);
  border-radius: 0.3125rem;
  background-color: var(--color-sky);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
  will-change: opacity;
}
@media (prefers-reduced-motion: reduce) {
  .c-pagetop {
    transition: none;
  }
}

.c-pagetop.is-visible {
  opacity: 1;
  visibility: visible;
}
@media (any-hover: hover) {
  .c-pagetop.is-visible:hover {
    opacity: 0.75;
  }
}

.c-pagetop__icon {
  inline-size: 1.6875rem;
}

.c-pagetop__label {
  color: var(--color-brown);
  font-weight: var(--black);
  font-size: 0.625rem;
  line-height: 1;
  letter-spacing: 0.025em;
  white-space: nowrap;
}

.c-menubtn {
  display: grid;
  position: fixed;
  inset-block-start: 0.28125rem;
  inset-inline-end: 0.4375rem;
  z-index: 20;
  place-content: center;
  inline-size: 2.625rem;
  block-size: 2.59375rem;
  border: 0.125rem solid var(--color-brown);
  border-radius: 50%;
  background-color: var(--color-white);
  box-shadow: 0 0.0625rem 0.125rem var(--color-btn-shadow);
  cursor: pointer;
}
@media (min-width: 768px) {
  .c-menubtn {
    inset-block-start: 11px;
    inset-inline-end: 19px;
    inline-size: 67px;
    block-size: 67px;
    border-width: 4px;
    box-shadow: 0 2px 4px var(--color-btn-shadow);
  }
}
@media (any-hover: hover) {
  .c-menubtn:hover {
    opacity: 0.75;
  }
}

.c-menubtn[aria-expanded=true] {
  opacity: 0;
  visibility: hidden;
}

.c-menubtn--close {
  position: absolute;
}

.c-menubtn__lines {
  display: block;
  position: relative;
  inline-size: 1.09375rem;
  block-size: 0.125rem;
  border-radius: 0.09375rem;
  background-color: var(--color-brown);
  transition: background-color 0.3s;
}
@media (min-width: 768px) {
  .c-menubtn__lines {
    inline-size: 28px;
    block-size: 4px;
    border-radius: 2px;
  }
}

.c-menubtn__lines::before,
.c-menubtn__lines::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  block-size: inherit;
  border-radius: inherit;
  background-color: var(--color-brown);
  transition: translate 0.3s, rotate 0.3s;
}

.c-menubtn__lines::before {
  translate: 0 calc(-100% - 0.15625rem);
}
@media (min-width: 768px) {
  .c-menubtn__lines::before {
    translate: 0 calc(-100% - 5px);
  }
}

.c-menubtn__lines::after {
  translate: 0 calc(100% + 0.15625rem);
}
@media (min-width: 768px) {
  .c-menubtn__lines::after {
    translate: 0 calc(100% + 5px);
  }
}

.c-drawer.is-open .c-menubtn__lines {
  background-color: transparent;
}

.c-drawer.is-open .c-menubtn__lines::before,
.c-drawer.is-open .c-menubtn__lines::after {
  inset-inline: -0.09375rem;
  translate: 0 0;
}
@media (min-width: 768px) {
  .c-drawer.is-open .c-menubtn__lines::before,
  .c-drawer.is-open .c-menubtn__lines::after {
    inset-inline: -1.5px;
  }
}

.c-drawer.is-open .c-menubtn__lines::before {
  rotate: 45deg;
}

.c-drawer.is-open .c-menubtn__lines::after {
  rotate: -45deg;
}

@media (prefers-reduced-motion: reduce) {
  .c-menubtn__lines,
  .c-menubtn__lines::before,
  .c-menubtn__lines::after {
    transition: none;
  }
}
.c-menubtn__label {
  position: absolute;
  clip-path: inset(50%);
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  white-space: nowrap;
}

.c-drawer {
  position: fixed;
  inset: 0;
  max-inline-size: none;
  max-block-size: none;
  inline-size: 100%;
  block-size: 100%;
  padding: 0;
  border: 0 solid transparent;
  border-inline-end-width: var(--scrollbar-width, 0px);
  background-color: transparent;
  overflow: clip;
  transition: background-color 0.3s;
}
@media (prefers-reduced-motion: reduce) {
  .c-drawer {
    transition: none;
  }
}

.c-drawer.is-open {
  background-color: var(--color-veil);
}

.c-drawer::backdrop {
  background-color: transparent;
}

.c-drawer__panel {
  display: grid;
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  block-size: auto;
  padding-block-end: 2.625rem;
  border-end-start-radius: 1.46875rem;
  border-end-end-radius: 1.46875rem;
  background-color: var(--color-white);
  translate: 0 -100%;
  transition: translate 0.3s;
}
@media (min-width: 768px) {
  .c-drawer__panel {
    align-content: center;
    inset-inline-start: auto;
    inline-size: 423px;
    block-size: 100%;
    padding-block-end: 0;
    border-end-start-radius: 87px;
    border-end-end-radius: 0;
    translate: 100% 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-drawer__panel {
    transition: none;
  }
}

.c-drawer.is-open .c-drawer__panel {
  translate: 0 0;
}

.c-drawer__head {
  display: flex;
  position: relative;
  align-items: center;
  block-size: 3.1875rem;
  padding-inline-start: 0.5625rem;
}
@media (min-width: 768px) {
  .c-drawer__head {
    display: none;
  }
}

.c-drawer__head::after {
  content: "";
  position: absolute;
  inset-block-start: calc(100% - 0.125rem);
  inset-inline: 0;
  block-size: 0.46875rem;
  background-image: url("../img/common/hdr-wave@2x.webp");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.c-drawer__nav {
  padding-block-start: 2.28125rem;
}
@media (min-width: 768px) {
  .c-drawer__nav {
    padding-block-start: 0;
  }
}

.c-drawer__item {
  display: grid;
  position: relative;
  place-content: center;
  block-size: 3.5rem;
}
@media (min-width: 768px) {
  .c-drawer__item {
    block-size: 68px;
  }
}

.c-drawer__item + .c-drawer__item::before {
  content: "";
  position: absolute;
  inset-block-start: -0.0625rem;
  inset-inline-start: 50%;
  translate: -50% 0;
  inline-size: 19.4375rem;
  block-size: 0.09375rem;
  background-image: repeating-linear-gradient(to right, var(--color-sky) 0 0.1875rem, transparent 0.1875rem 0.3125rem);
}
@media (min-width: 768px) {
  .c-drawer__item + .c-drawer__item::before {
    inset-block-start: -1px;
    inline-size: 340px;
    block-size: 2px;
    background-image: repeating-linear-gradient(to right, var(--color-sky) 0 3px, transparent 3px 5px);
  }
}

.c-drawer__link {
  color: var(--color-brown);
  font-weight: var(--bold);
  font-size: 1rem;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
}
@media (min-width: 768px) {
  .c-drawer__link {
    font-size: 20px;
    line-height: 2;
  }
}
@media (any-hover: hover) {
  .c-drawer__link:hover {
    opacity: 0.7;
  }
}

.p-kv {
  padding-block-end: 0.40625rem;
}
@media (min-width: 768px) {
  .p-kv {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: center;
    position: sticky;
    inset-block-start: 0;
    block-size: 100vh;
    padding-block-end: 0;
  }
}

.p-kv--sub {
  display: none;
}
@media (min-width: 768px) {
  .p-kv--sub {
    display: grid;
  }
}

.p-kv__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
@media (max-width: 767px) {
  .p-kv__inner {
    inline-size: 23.4375rem;
    margin-inline: auto;
  }
}
@media (min-width: 768px) {
  .p-kv__inner {
    position: relative;
    inline-size: var(--kv-art-width);
    justify-self: center;
    container-type: inline-size;
  }
}

.p-kv__illust {
  grid-area: 1/1;
  display: block;
  position: relative;
  inline-size: 27.53125rem;
  block-size: 31.3125rem;
  margin-block-start: 4.3125rem;
  margin-inline-start: -1.34375rem;
}
@media (min-width: 768px) {
  .p-kv__illust {
    inline-size: 100%;
    block-size: auto;
    aspect-ratio: 720/653;
    margin-block-start: 0;
    margin-inline-start: 0;
  }
}

.p-kv__illust-image {
  position: absolute;
  inset-block-start: -7.4375rem;
  inset-inline-start: -2.84375rem;
  inline-size: 32.59375rem;
  max-inline-size: none;
  block-size: auto;
}
@media (min-width: 768px) {
  .p-kv__illust-image {
    inset-block-start: -6.355%;
    inset-inline-start: 10.0917%;
    inline-size: 81.5705%;
  }
}

.p-kv__hearts {
  display: none;
}
@media (min-width: 768px) {
  .p-kv__hearts {
    display: block;
    position: absolute;
    z-index: -1;
    inset-block-start: 2.7083cqw;
    inset-inline-start: 1.3889cqw;
    inline-size: 100%;
    aspect-ratio: 720/794;
    background-image: url("../img/common/kv-hearts.webp");
    background-size: 100% 100%;
  }
}

.p-kv__deco {
  display: none;
}
@media (min-width: 768px) {
  .p-kv__deco {
    display: block;
    position: fixed;
    inset-block-start: 50%;
    inline-size: calc(var(--kv-art-width) * 0.205556);
    aspect-ratio: 148/198;
    background-image: url("../img/common/kv-heart-side.webp");
    background-size: 100% 100%;
  }
}

.p-kv__deco--r01 {
  inset-inline-end: calc(var(--kv-art-width) * -0.011111);
  translate: 0 calc(var(--kv-art-width) * -0.316667);
}

.p-kv__deco--r02 {
  inset-inline-end: calc(var(--kv-art-width) * -0.066667);
  translate: 0 calc(var(--kv-art-width) * 0.134722);
}

.p-kv__texts {
  grid-area: 1/1;
  padding-block-start: 1.625rem;
}
@media (min-width: 768px) {
  .p-kv__texts {
    padding-block-start: 2.9167cqw;
  }
}

.p-kv__lead {
  display: flex;
  align-items: baseline;
  justify-content: center;
  -moz-column-gap: 0.78125rem;
       column-gap: 0.78125rem;
  font-weight: var(--black);
  line-height: 1;
}
@media (min-width: 768px) {
  .p-kv__lead {
    -moz-column-gap: 2.7778cqw;
         column-gap: 2.7778cqw;
  }
}

.p-kv__edition {
  font-size: 1rem;
}
@media (min-width: 768px) {
  .p-kv__edition {
    font-size: 3.5556cqw;
  }
}

.p-kv__edition-number {
  font-size: 1.5rem;
}
@media (min-width: 768px) {
  .p-kv__edition-number {
    font-size: 5.3333cqw;
  }
}

.p-kv__brand {
  font-size: 1.25rem;
}
@media (min-width: 768px) {
  .p-kv__brand {
    font-size: 4.4444cqw;
  }
}

.p-kv__heading {
  display: flex;
  align-items: center;
  justify-content: center;
  -moz-column-gap: 0.65625rem;
       column-gap: 0.65625rem;
  margin-block-start: 0.65625rem;
  font-weight: var(--black);
  line-height: 1;
}
@media (min-width: 768px) {
  .p-kv__heading {
    -moz-column-gap: 2.0833cqw;
         column-gap: 2.0833cqw;
    margin-block-start: 1.9569cqw;
  }
}

.p-kv__title {
  color: var(--color-white);
  font-size: 1.875rem;
  white-space: nowrap;
  letter-spacing: -0.105em;
  paint-order: stroke fill;
  -webkit-text-stroke: 0.5rem var(--color-brown);
  filter: drop-shadow(0 0.125rem 0 var(--color-brown));
}
@media (min-width: 768px) {
  .p-kv__title {
    font-size: 5.5556cqw;
    -webkit-text-stroke-width: 1.5cqw;
  }
}

.p-kv__year {
  display: grid;
  place-content: center;
  align-self: start;
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  block-size: 1.84375rem;
  padding-inline: 0.21875rem;
  margin-block: 0.1875rem -0.1875rem;
  border: 0.1875rem solid var(--color-brown);
  border-radius: 0.5rem;
  background-color: var(--color-white);
  font-size: 1.25rem;
  line-height: 1;
  filter: drop-shadow(0 0.125rem 0 var(--color-brown));
  padding-block: 0.1875rem 0.375rem;
}
@media (min-width: 768px) {
  .p-kv__year {
    block-size: 6.8056cqw;
    padding-inline: 1.0306cqw;
    margin-block: -0.2778cqw -0.9722cqw;
    border-width: 0.6944cqw;
    border-radius: 2.2222cqw;
    font-size: 4.4444cqw;
    padding-block: 0.4167cqw 0.8333cqw;
  }
}

.p-txt__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.p-txt__bg {
  grid-area: 1/1;
  z-index: 0;
  align-self: stretch;
  margin-block-end: 2.15625rem;
  background-color: var(--color-white);
  background-image: repeating-linear-gradient(to right, var(--color-grid-white) 0 0.0625rem, transparent 0.0625rem 3.125rem), repeating-linear-gradient(to bottom, var(--color-grid-white) 0 0.0625rem, transparent 0.0625rem 3.125rem);
  background-repeat: repeat;
  background-size: 3.125rem 3.125rem;
  background-position: 1.5rem 1.5rem;
  -webkit-mask-image: url("../img/top/wave-mask-down@2x.png"), linear-gradient(#000, #000), url("../img/top/wave-mask-up@2x.png");
          mask-image: url("../img/top/wave-mask-down@2x.png"), linear-gradient(#000, #000), url("../img/top/wave-mask-up@2x.png");
  -webkit-mask-position: 0 0, 0 calc(0.46875rem - 0.5px), 0 100%;
          mask-position: 0 0, 0 calc(0.46875rem - 0.5px), 0 100%;
  -webkit-mask-size: 7.8125rem 0.46875rem, 100% calc(100% - 0.46875rem - 0.4375rem + 1px), 7.8125rem 0.4375rem;
          mask-size: 7.8125rem 0.46875rem, 100% calc(100% - 0.46875rem - 0.4375rem + 1px), 7.8125rem 0.4375rem;
  -webkit-mask-repeat: repeat-x, no-repeat, repeat-x;
          mask-repeat: repeat-x, no-repeat, repeat-x;
}
@media (min-width: 768px) {
  .p-txt__bg {
    -webkit-mask-image: none, linear-gradient(#000, #000), url("../img/top/wave-mask-up@2x.png");
            mask-image: none, linear-gradient(#000, #000), url("../img/top/wave-mask-up@2x.png");
    -webkit-mask-position: 0 0, 0 -0.5px, 0 100%;
            mask-position: 0 0, 0 -0.5px, 0 100%;
    -webkit-mask-size: 7.8125rem 0px, 100% calc(100% - 0px - 0.4375rem + 1px), 7.8125rem 0.4375rem;
            mask-size: 7.8125rem 0px, 100% calc(100% - 0px - 0.4375rem + 1px), 7.8125rem 0.4375rem;
    -webkit-mask-repeat: repeat-x, no-repeat, repeat-x;
            mask-repeat: repeat-x, no-repeat, repeat-x;
  }
}

.p-txt__decos {
  grid-area: 1/1;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.p-txt__deco {
  grid-area: 1/1;
  justify-self: start;
  align-self: start;
}

.p-txt__deco--leaf {
  justify-self: end;
  inline-size: 4.125rem;
  margin-block-start: 10.875rem;
  margin-inline-end: 0.5rem;
}

.p-txt__texts {
  grid-area: 1/1;
  z-index: 1;
  padding-block: 4.03125rem 6.125rem;
}

.p-txt__lead {
  font-weight: var(--bold);
  font-size: 0.9375rem;
  line-height: 1;
  text-align: center;
}

.p-txt__lead-em {
  --kern: -0.17em;
  color: var(--color-white);
  font-weight: var(--black);
  font-size: 1.25rem;
  letter-spacing: -0.04em;
  text-shadow: 0.19rem 0rem 0 var(--color-brown), 0.18rem 0.05rem 0 var(--color-brown), 0.16rem 0.09rem 0 var(--color-brown), 0.13rem 0.13rem 0 var(--color-brown), 0.09rem 0.16rem 0 var(--color-brown), 0.05rem 0.18rem 0 var(--color-brown), 0rem 0.19rem 0 var(--color-brown), -0.05rem 0.18rem 0 var(--color-brown), -0.09rem 0.16rem 0 var(--color-brown), -0.13rem 0.13rem 0 var(--color-brown), -0.16rem 0.09rem 0 var(--color-brown), -0.18rem 0.05rem 0 var(--color-brown), -0.19rem 0rem 0 var(--color-brown), -0.18rem -0.05rem 0 var(--color-brown), -0.16rem -0.09rem 0 var(--color-brown), -0.13rem -0.13rem 0 var(--color-brown), -0.09rem -0.16rem 0 var(--color-brown), -0.05rem -0.18rem 0 var(--color-brown), 0rem -0.19rem 0 var(--color-brown), 0.05rem -0.18rem 0 var(--color-brown), 0.09rem -0.16rem 0 var(--color-brown), 0.13rem -0.13rem 0 var(--color-brown), 0.16rem -0.09rem 0 var(--color-brown), 0.18rem -0.05rem 0 var(--color-brown);
  filter: drop-shadow(0 0.09375rem 0 var(--color-brown));
}

.p-txt__body {
  margin-block-start: 0.8125rem;
  font-weight: var(--bold);
  font-size: 0.875rem;
  line-height: 1.375rem;
  text-align: center;
}

.p-schedule__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.p-schedule__deco {
  position: absolute;
  z-index: 1;
  inline-size: 8.78125rem;
  max-inline-size: none;
  opacity: 0.3;
}

.p-schedule__deco--top {
  z-index: 0;
  inset-block-start: -4.53125rem;
  inset-inline-start: -0.625rem;
}

.p-schedule__deco--btm {
  inset-block-start: -9.0625rem;
  inset-inline-end: -0.625rem;
}

.p-schedule__content {
  grid-area: 1/1;
  align-self: start;
  padding-block: 5.3125rem 2.4375rem;
}

.p-schedule__item {
  position: relative;
}

.p-schedule__item + .p-schedule__item {
  margin-block-start: 7rem;
}

.p-schedule__item:nth-of-type(3) {
  margin-block-start: 8rem;
}

.p-schedule__item:nth-of-type(4) {
  margin-block-start: 7.9375rem;
}

.p-schedule__action {
  margin-block-start: 1.90625rem;
  text-align: center;
}

.p-schedule__button {
  inline-size: min(100% - 2.375rem, 600px);
  min-block-size: 3.9375rem;
  padding-inline: 1.3125rem;
}

.p-contest__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.p-contest__bg {
  grid-area: 1/1;
  z-index: 0;
  align-self: stretch;
  margin-block-start: 3.1875rem;
  margin-block-end: -0.4375rem;
  background-color: var(--color-white);
  position: relative;
  padding-block-start: 2.84375rem;
  background-clip: content-box;
}
.p-contest__bg::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  block-size: 2.90625rem;
  background-color: inherit;
  clip-path: ellipse(55.9% 5.14375rem at 50% 5.14375rem);
}
.p-contest__bg {
  -webkit-mask-image: none, linear-gradient(#000, #000), url("../img/top/wave-mask-up@2x.png");
          mask-image: none, linear-gradient(#000, #000), url("../img/top/wave-mask-up@2x.png");
  -webkit-mask-position: 0 0, 0 -0.5px, 0 100%;
          mask-position: 0 0, 0 -0.5px, 0 100%;
  -webkit-mask-size: 7.8125rem 0px, 100% calc(100% - 0px - 0.4375rem + 1px), 7.8125rem 0.4375rem;
          mask-size: 7.8125rem 0px, 100% calc(100% - 0px - 0.4375rem + 1px), 7.8125rem 0.4375rem;
  -webkit-mask-repeat: repeat-x, no-repeat, repeat-x;
          mask-repeat: repeat-x, no-repeat, repeat-x;
}

.p-contest__deco {
  grid-area: 1/1;
  z-index: 1;
  justify-self: start;
  align-self: start;
  max-inline-size: none;
}

.p-contest__deco--art {
  justify-self: center;
  inline-size: 22.34375rem;
}

.p-contest__deco--leaf-r {
  align-self: end;
  inline-size: 4.5625rem;
  margin-block-end: -3.3125rem;
  margin-inline-start: 18.375rem;
}

.p-contest__content {
  grid-area: 1/1;
  z-index: 1;
  align-self: start;
  padding-block: 8.25rem 3.6875rem;
}

.p-contest__texts {
  text-align: center;
}

.p-contest__zigzag {
  display: block;
  block-size: 0.9375rem;
  margin-block-start: 1.3125rem;
  background-image: url("../img/top/con-line3-tile@2x.webp");
  background-repeat: repeat-x;
  background-position: -0.125rem 0;
  background-size: auto 0.9375rem;
}

.p-contest__title {
  --kern: -0.105em;
  color: var(--color-white);
  font-weight: var(--black);
  font-size: 1.625rem;
  line-height: 1;
  letter-spacing: -0.105em;
  paint-order: stroke fill;
  -webkit-text-stroke: 0.5rem var(--color-brown);
  filter: drop-shadow(0 0.125rem 0 var(--color-brown));
}

.p-contest__title-sm {
  font-size: 1.25rem;
}

.p-contest__body {
  margin-block-start: 1.28125rem;
  font-weight: var(--medium);
  font-size: 0.875rem;
  line-height: 1.375rem;
}

.p-contest__body--2 {
  margin-block-start: 0.6875rem;
}

.p-contest__body .c-em {
  line-height: 1.65625rem;
}

.p-contest__comic {
  margin-block-start: 1rem;
}

.p-contest__comic-scroll {
  overflow-x: auto;
  scrollbar-width: none;
}
@media (any-pointer: fine) {
  .p-contest__comic-scroll {
    cursor: grab;
  }
}

.p-contest__comic-scroll.is-dragging {
  cursor: grabbing;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.p-contest__comic-scroll:focus-visible {
  outline: 0.1875rem solid var(--color-brown);
  outline-offset: 0.125rem;
}

.p-contest__comic-image {
  inline-size: 100%;
  min-inline-size: 37.8125rem;
  max-inline-size: none;
}

.p-contest__bar[hidden] {
  display: none;
}

.p-contest__bar {
  display: block;
  inline-size: 15.09375rem;
  block-size: 0.4375rem;
  margin-block-start: 0.40625rem;
  margin-inline-start: 4.15625rem;
  border-radius: 0.21875rem;
  background-color: var(--color-bar-track);
  touch-action: none;
}
@media (any-pointer: fine) {
  .p-contest__bar {
    cursor: pointer;
  }
}

.p-contest__bar-thumb {
  display: block;
  inline-size: 10.09375rem;
  block-size: 100%;
  border-radius: 0.21875rem;
  background-color: var(--color-bar-thumb);
  transform: translateX(0);
  will-change: transform;
}

.p-message__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.p-message__bg {
  grid-area: 1/1;
  align-self: stretch;
  background-color: var(--color-sky-light);
  background-image: repeating-linear-gradient(45deg, var(--color-grid-sky) 0 0.0625rem, transparent 0.0625rem 2.3125rem), repeating-linear-gradient(-45deg, var(--color-grid-sky) 0 0.0625rem, transparent 0.0625rem 2.3125rem);
  margin-block-end: -10.5625rem;
}

.p-message__texts {
  grid-area: 1/1;
  align-self: start;
  margin-block-start: 3.875rem;
  text-align: center;
  padding-block-end: 1.625rem;
}

.p-message__lead {
  font-weight: var(--bold);
  font-size: 0.875rem;
  line-height: 1.375rem;
}

.p-message__lead-em {
  font-size: 1.125rem;
  line-height: 1;
}

.p-message__catch {
  margin-block-start: 0.1875rem;
  color: var(--color-pink);
  font-weight: var(--bold);
  font-size: 1.125rem;
  line-height: 1.625rem;
}

.p-message__body {
  margin-block-start: 0.90625rem;
  font-weight: var(--bold);
  font-size: 0.875rem;
  line-height: 1.375rem;
}

.p-stores {
  padding-block: 3.40625rem 1.15625rem;
}

.p-stores__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.p-stores__content {
  grid-area: 1/1;
}

.p-stores__decos {
  grid-area: 1/1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.p-stores__deco {
  grid-area: 1/1;
  justify-self: start;
  align-self: start;
  inline-size: 4.59375rem;
  margin-block-start: -2.15625rem;
  margin-inline-start: 0.5rem;
}

.p-stores__title {
  letter-spacing: 0.01em;
}

.p-stores__body {
  margin-block-start: 0.78125rem;
  font-size: 0.875rem;
  line-height: 1.375rem;
  text-align: center;
}

.p-stores__map {
  position: relative;
  inline-size: min(100% - 1.40625rem, 600px);
  aspect-ratio: 352.5/321.5;
  margin-block-start: 2.21875rem;
  margin-inline: auto;
}

.p-stores__map-image {
  position: absolute;
  inset-block-start: 3.265940902%;
  inset-inline-start: 0.8510638298%;
  inline-size: 98.1560283688%;
  max-inline-size: none;
}

.p-stores__bubble {
  display: grid;
  position: absolute;
  inset-block-start: 7.6205287714%;
  inset-inline-start: 6.8085106383%;
  justify-items: start;
  row-gap: 0.1875rem;
}

.p-stores__bubble-line {
  display: grid;
  place-items: center;
  block-size: 1.5625rem;
  padding-inline: 0.4375rem;
  border-radius: 0.3125rem;
  background-color: var(--color-magenta);
  color: var(--color-white);
  font-weight: var(--bold);
  font-size: 1rem;
  white-space: nowrap;
  letter-spacing: -0.08em;
  line-height: 1;
}

.p-stores__bubble-line--2 {
  padding-inline: 0.125rem;
}

.p-stores__area {
  display: grid;
  place-items: center;
  position: absolute;
  border-radius: 0.4375rem;
  background-color: var(--color-white);
  border: 0.1875rem solid var(--color-brown);
  color: var(--color-brown);
  box-shadow: 0 0.125rem 0 0 var(--color-brown);
  font-weight: var(--bold);
  font-size: 0.875rem;
  line-height: 1.5;
  white-space: nowrap;
  transition: opacity 0.2s;
  will-change: opacity;
  padding-inline: 0.375rem;
  z-index: 0;
}
@media (any-hover: hover) {
  .p-stores__area:hover {
    opacity: 0.8;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-stores__area {
    transition: none;
  }
}

.p-stores__area--01 {
  inset-block-start: 35.3032659409%;
  inset-inline-start: 61.5602836879%;
}

.p-stores__area--02 {
  inset-block-start: 61.4307931571%;
  inset-inline-start: 71.3475177305%;
}

.p-stores__area--03 {
  inset-block-start: 62.6749611198%;
  inset-inline-start: 53.475177305%;
}

.p-stores__area--04 {
  inset-block-start: 73.8724727838%;
  inset-inline-start: 43.6879432624%;
}

.p-stores__area--05 {
  inset-block-start: 64.0746500778%;
  inset-inline-start: 20.7092198582%;
}

.p-stores__area--06 {
  inset-block-start: 77.1384136858%;
  inset-inline-start: 6.2411347518%;
}

.p-storelist {
  padding-block-end: 1.78125rem;
}

.p-storelist__panel {
  inline-size: min(100% - 1.40625rem, 600px);
  margin-inline: auto;
  padding: 1.28125rem 1rem 1.28125rem 1.03125rem;
}

.p-storelist__status {
  inline-size: min(100% - 1.40625rem, 600px);
  margin-inline: auto;
  padding: 1.5rem 1rem;
  font-weight: var(--bold);
  font-size: 0.875rem;
  line-height: 1.5;
  text-align: center;
}

.p-storelist__panel + .p-storelist__panel {
  margin-block-start: 1.78125rem;
}

.p-storelist__heading {
  display: grid;
  place-items: center;
  block-size: 2.5625rem;
  border-radius: 1.3125rem;
  background-color: var(--color-red);
  box-shadow: inset 0 0 0 0.1875rem var(--color-brown);
  color: var(--color-white);
  font-weight: var(--bold);
  font-size: 1.25rem;
  line-height: 1;
}

.p-storelist__prefnav {
  margin-block-start: 0.75rem;
}

.p-storelist__prefnav-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.875rem;
}

.p-storelist__prefnav-link {
  font-weight: var(--bold);
  font-size: 0.8125rem;
  line-height: 1.5;
  text-decoration-line: underline;
  text-decoration-thickness: from-font;
  text-underline-offset: 0.1875rem;
  transition: opacity 0.2s;
}
@media (any-hover: hover) {
  .p-storelist__prefnav-link:hover {
    opacity: 0.8;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-storelist__prefnav-link {
    transition: none;
  }
}

.p-storelist__prefecture {
  margin-block-start: 1.03125rem;
  scroll-margin-block-start: 0.75rem;
}

.p-storelist__prefecture + .p-storelist__prefecture {
  margin-block-start: 0.5rem;
  padding-block-start: 0.84375rem;
  background-image: url("../img/shoplist/stores-line@2x.webp");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 19.9375rem 0.125rem;
}

.p-storelist__prefecture-heading {
  inline-size: -moz-fit-content;
  inline-size: fit-content;
  padding: 0.3125rem 0.8125rem 0.34375rem;
  border-radius: 0.8125rem;
  background-color: var(--color-yellow);
  box-shadow: inset 0 0 0 0.125rem var(--color-brown);
  font-weight: var(--bold);
  font-size: 0.9375rem;
  line-height: 1;
}

.p-storelist__items {
  margin-block-start: 0.65625rem;
}

.p-storelist__item + .p-storelist__item {
  margin-block-start: 0.3125rem;
  padding-block-start: 0.4375rem;
  background-image: url("../img/shoplist/stores-line@2x.webp");
  background-repeat: no-repeat;
  background-position: center 0.03125rem;
  background-size: 100% 0.125rem;
}

.p-storelist__name {
  font-weight: var(--bold);
  font-size: 0.875rem;
  line-height: 1.375rem;
  letter-spacing: -0.055em;
}

.p-storelist__address {
  margin-block-start: 0.09375rem;
  padding-inline-start: calc(0.875rem * 0.945 + (0.875rem - 1em) / 2);
  font-size: 0.75rem;
  line-height: 1.25rem;
  letter-spacing: -0.055em;
}

.p-storelist__more {
  display: grid;
  justify-content: center;
  margin-block-start: 0.46875rem;
  padding-block-start: 0.4375rem;
  background-image: url("../img/shoplist/stores-line@2x.webp");
  background-repeat: no-repeat;
  background-position: center 0.03125rem;
  background-size: 19.9375rem 0.125rem;
}

.p-storelist__more-dots {
  font-size: 0.75rem;
  line-height: 1.67;
  letter-spacing: -0.4em;
  writing-mode: vertical-rl;
}