/* Story & Character redesign — 2026 */
.fe-story,
.fe-character {
  --fe-ink: #4e5268;
  --fe-deep: #303c58;
  --fe-pink: #ef91b1;
  --fe-blue: #83b9dd;
  box-sizing: border-box;
  font-family: var(--font-serif, "Noto Serif SC", "Songti SC", serif);
}

.fe-story *,
.fe-character * { box-sizing: border-box; }

.fe-story {
  position: relative;
  min-height: 0;
  overflow: clip;
  padding: clamp(120px, 14vw, 190px) 0;
  background: linear-gradient(180deg, #fffefc 0%, #f7f6f8 48%, #fffefc 100%);
  color: #fff;
}

.fe-story__viewport {
  position: sticky;
  z-index: 0;
  top: max(84px, calc((100svh - clamp(480px, 68svh, 720px)) / 2));
  width: min(1180px, calc(100% - 64px));
  height: clamp(480px, 68svh, 720px);
  min-height: 0;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.92);
  border-radius: 36px;
  background: #d8d0cb;
  box-shadow: 0 30px 80px rgba(61, 68, 91, .16), 0 0 0 1px rgba(93, 105, 135, .08);
}

.fe-story__scene {
  position: absolute;
  inset: -8%;
  width: 116%;
  height: 116%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  filter: saturate(.86) contrast(.96);
  transform: translate3d(0, var(--story-shift, -45px), 0) scale(1.035);
  will-change: transform, opacity;
}

.fe-story__scene:first-child { opacity: 1; }

.fe-story__wash {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(29, 38, 59, .65) 0%, rgba(40, 47, 65, .18) 46%, rgba(46, 41, 52, .18) 100%),
    linear-gradient(180deg, rgba(22, 29, 44, .2), transparent 27%, transparent 70%, rgba(28, 31, 45, .48));
  pointer-events: none;
}

.fe-story__rail {
  position: absolute;
  z-index: 3;
  right: clamp(18px, 2.5vw, 34px);
  top: 50%;
  display: grid;
  width: 2px;
  height: min(34vh, 280px);
  border-radius: 99px;
  background: rgba(255,255,255,.28);
  transform: translateY(-50%);
}

.fe-story__rail > i {
  align-self: start;
  width: 100%;
  height: calc(var(--story-progress, 0) * 100%);
  border-radius: inherit;
  background: rgba(255,255,255,.95);
  box-shadow: 0 0 14px rgba(255,255,255,.72);
}

.fe-story__rail::before,
.fe-story__rail::after {
  position: absolute;
  left: 50%;
  color: rgba(255,255,255,.76);
  font: 600 10px/1 var(--font-sans, sans-serif);
  letter-spacing: .22em;
  transform: translateX(-50%);
}

.fe-story__rail::before { content: "BEGIN"; top: -28px; }
.fe-story__rail::after { content: "ECHO"; bottom: -28px; }

.fe-story__chapters {
  position: relative;
  z-index: 2;
  margin-top: clamp(-720px, -68svh, -480px);
}

.fe-story__beat {
  display: flex;
  width: min(1060px, calc(100% - 80px));
  min-height: clamp(560px, 78svh, 820px);
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  padding: 52px clamp(20px, 4vw, 58px);
}

.fe-story__beat--right { justify-content: center; }
.fe-story__beat--ending { justify-content: center; text-align: center; }

.fe-story__copy {
  position: relative;
  width: min(680px, 100%);
  padding: clamp(28px, 4vw, 52px);
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 8px 58px 8px 8px;
  background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(251,248,249,.86));
  box-shadow: 0 24px 58px rgba(28, 35, 54, .18), inset 0 0 0 1px rgba(255,255,255,.46);
  color: var(--fe-ink);
  opacity: .2;
  transform: translate3d(0, 52px, 0);
  backdrop-filter: blur(18px) saturate(1.08);
  will-change: opacity, transform;
}

.fe-story__beat--right .fe-story__copy { border-radius: 58px 8px 8px; }
.fe-story__beat--ending .fe-story__copy { border-radius: 58px 8px 58px 8px; }

.fe-story__copy::before {
  position: absolute;
  top: 0;
  left: clamp(28px, 4vw, 52px);
  width: 72px;
  height: 3px;
  background: linear-gradient(90deg, #ef92b0, #9abfe0);
  content: "";
}

.fe-story__index {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  color: #9a8195;
  font: 700 12px/1 var(--font-sans, sans-serif);
  letter-spacing: .24em;
}

.fe-story__index::after {
  width: 46px;
  height: 1px;
  background: currentColor;
  content: "";
  opacity: .45;
}

.fe-story h2,
.fe-story h3 { margin: 0; color: var(--fe-deep); font-weight: 500; }

.fe-story h2 {
  font-size: clamp(36px, 4.2vw, 56px);
  line-height: 1.2;
  letter-spacing: .04em;
}

.fe-story h3 {
  font-size: clamp(28px, 3.3vw, 44px);
  line-height: 1.38;
  letter-spacing: .05em;
}

.fe-story__en {
  display: block;
  margin-top: 12px;
  color: #a498aa;
  font: 500 11px/1.4 var(--font-sans, sans-serif);
  letter-spacing: .32em;
}

.fe-story__copy p {
  margin: 22px 0 0;
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 2;
  letter-spacing: .045em;
}

.fe-story__copy strong {
  display: inline-block;
  margin-top: 18px;
  color: #df7297;
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 500;
  letter-spacing: .08em;
}

.fe-story__promise {
  margin-top: 24px !important;
  color: #7d7590;
  font-size: clamp(18px, 2vw, 24px) !important;
  letter-spacing: .12em !important;
}

/* Character */
.fe-character {
  position: relative;
  overflow: hidden;
  padding: clamp(92px, 10vw, 150px) 24px clamp(84px, 9vw, 136px);
  background:
    radial-gradient(circle at 9% 16%, rgba(255,255,255,.95), transparent 28%),
    radial-gradient(circle at 86% 72%, color-mix(in srgb, var(--character-accent, #ef91b1) 14%, transparent), transparent 34%),
    linear-gradient(135deg, #fbf9fb 0%, #f0f4f9 55%, #f8f2f5 100%);
  color: var(--fe-ink);
  transition: --character-accent .35s ease;
}

.fe-character::before {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(109,120,151,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(109,120,151,.055) 1px, transparent 1px);
  background-size: 72px 72px;
  content: "";
  mask-image: linear-gradient(90deg, #000, transparent 43%, transparent 57%, #000);
  pointer-events: none;
}

.fe-character__inner { position: relative; width: min(1200px, 100%); margin: 0 auto; }

.fe-character__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: clamp(38px, 5vw, 66px);
}

.fe-character__kicker {
  margin: 0 0 12px;
  color: #b28299;
  font: 700 12px/1 var(--font-sans, sans-serif);
  letter-spacing: .3em;
  text-transform: uppercase;
}

.fe-character__heading h2 {
  margin: 0;
  color: var(--fe-deep);
  font-size: clamp(36px, 4.5vw, 62px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: .06em;
}

.fe-character__heading h2 span {
  display: block;
  margin-top: 14px;
  color: #8b8499;
  font: 600 clamp(15px, 1.25vw, 19px)/1 var(--font-serif, serif);
  letter-spacing: .32em;
}

.fe-character__tabs {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: 10px;
  width: min(790px, 64vw);
  padding: 7px;
  border: 1px solid rgba(105,114,143,.14);
  border-radius: 28px;
  background: rgba(255,255,255,.64);
  box-shadow: 0 12px 32px rgba(68,77,107,.08);
  transform: translateX(-20px);
  backdrop-filter: blur(12px);
}

.fe-character__tab {
  min-width: 0;
  flex: 1 1 0;
  padding: 11px 10px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #75758a;
  cursor: pointer;
  font: 600 17px/1.2 "JiangChengJieXing", var(--font-serif, serif);
  letter-spacing: .06em;
  transition: background .28s ease, box-shadow .28s ease, color .28s ease, transform .28s ease;
}

.fe-character__tab small {
  display: block;
  margin-top: 5px;
  font-size: 9px;
  letter-spacing: .2em;
  opacity: .65;
}

.fe-character__tab:hover { transform: translateY(-1px); }
.fe-character__tab[aria-selected="true"] {
  background: #fff;
  box-shadow: 0 7px 20px color-mix(in srgb, var(--character-accent, #ef91b1) 25%, transparent);
  color: color-mix(in srgb, var(--character-accent, #ef91b1) 82%, #293650);
}

.fe-character__stage {
  position: relative;
  display: grid;
  min-height: 720px;
  grid-template-columns: minmax(380px, 1.04fr) minmax(360px, .96fr);
  align-items: start;
  gap: clamp(32px, 6vw, 90px);
}

.fe-character__art {
  position: relative;
  height: 700px;
  min-height: 0;
  align-self: start;
}

.fe-character__art::before {
  display: none;
}

.fe-character__snowflake {
  position: absolute;
  z-index: 0;
  top: 50%;
  left: 48%;
  color: color-mix(in srgb, var(--character-accent, #ef91b1) 15%, transparent);
  font: 300 clamp(260px, 34vw, 470px)/1 Georgia, serif;
  transform: translate(-50%, -50%) rotate(-9deg);
  transition: color .55s ease, transform .72s cubic-bezier(.22, 1, .36, 1);
  user-select: none;
}

.fe-character__art img {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  opacity: 0;
  filter: drop-shadow(0 28px 24px rgba(55,62,82,.14));
  transform: translate3d(20px, 0, 0) scale(.99);
  transition: opacity .56s cubic-bezier(.22, 1, .36, 1), transform .72s cubic-bezier(.22, 1, .36, 1);
}

.fe-character__art img.is-active { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
.fe-character__art img.is-entering { opacity: 0; transform: translate3d(20px, 0, 0) scale(.99); }
.fe-character__art img.is-leaving { opacity: 0; transform: translate3d(-20px, 0, 0) scale(1.008); }
.fe-character__art img.is-expression-transition { transform: translate3d(0, 0, 0) scale(1); }
.fe-character__art.has-no-art .fe-character__snowflake {
  color: color-mix(in srgb, var(--character-accent, #ef91b1) 25%, transparent);
  transform: translate(-50%, -50%) rotate(0) scale(.88);
}

.fe-character__profile {
  position: relative;
  z-index: 3;
  padding: clamp(30px, 4vw, 52px);
  border: 1px solid rgba(255,255,255,.92);
  border-radius: 8px 56px 8px 8px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 30px 70px rgba(70,78,105,.12), inset 0 0 0 1px rgba(104,116,150,.07);
  backdrop-filter: blur(18px);
}

.fe-character__role {
  margin: 0 0 13px;
  color: color-mix(in srgb, var(--character-accent, #ef91b1) 84%, #526078);
  font: 700 13px/1.5 var(--font-sans, sans-serif);
  letter-spacing: .16em;
}

.fe-character__name {
  display: flex;
  margin: 0;
  align-items: baseline;
  gap: 16px;
  color: var(--fe-deep);
  font-size: clamp(44px, 5vw, 68px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: .08em;
}

.fe-character__name span {
  color: #aaa6b4;
  font: 600 12px/1 var(--font-sans, sans-serif);
  letter-spacing: .25em;
}

.fe-character__facts {
  display: grid;
  margin: 28px 0 24px;
  padding: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-left: 3px solid var(--character-accent, #ef91b1);
  background: color-mix(in srgb, var(--character-accent, #ef91b1) 7%, white);
}

.fe-character__facts[hidden] { display: none; }

/* 没有身高或生日资料时，仍为姓名与正文保留稳定的视觉间距。 */
.fe-character__facts[hidden] + .fe-character__bio {
  margin-top: clamp(28px, 3vw, 42px);
}

.fe-character__facts > div {
  padding: 17px 22px;
}

.fe-character__facts > div + div {
  border-left: 1px solid color-mix(in srgb, var(--character-accent, #ef91b1) 22%, white);
}

.fe-character__facts dt {
  margin-bottom: 7px;
  color: #9995a5;
  font: 700 11px/1 var(--font-sans, sans-serif);
  letter-spacing: .18em;
}

.fe-character__facts dd {
  margin: 0;
  color: #5c5c72;
  font-size: clamp(17px, 1.6vw, 21px);
  font-weight: 600;
  line-height: 1.4;
}

.fe-character__bio p {
  margin: 0 0 13px;
  font-size: clamp(16px, 1.35vw, 18px);
  line-height: 1.95;
  letter-spacing: .035em;
}

.fe-character__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 24px 0 30px;
  padding: 0;
  list-style: none;
}

.fe-character__tags li {
  padding: 8px 13px;
  border: 1px solid color-mix(in srgb, var(--character-accent, #ef91b1) 28%, white);
  border-radius: 99px;
  background: rgba(255,255,255,.66);
  color: #777386;
  font: 600 13px/1 var(--font-sans, sans-serif);
  letter-spacing: .08em;
}

.fe-character__looks-label {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 13px;
  color: #9895a4;
  font: 700 11px/1 var(--font-sans, sans-serif);
  letter-spacing: .22em;
}

.fe-character__looks-label::after { flex: 1; height: 1px; background: rgba(100,108,134,.14); content: ""; }

.fe-character__look-controls[hidden] { display: none; }

.fe-character__looks { display: flex; flex-wrap: wrap; gap: 10px; }

.fe-character__look {
  min-width: 74px;
  padding: 10px 13px;
  border: 1px solid rgba(105,113,139,.16);
  border-radius: 8px;
  background: rgba(255,255,255,.54);
  color: #77788a;
  cursor: pointer;
  font: 600 14px/1.2 var(--font-sans, sans-serif);
  transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease;
}

.fe-character__look:hover { transform: translateY(-2px); }
.fe-character__look[aria-pressed="true"] {
  border-color: color-mix(in srgb, var(--character-accent, #ef91b1) 58%, white);
  background: color-mix(in srgb, var(--character-accent, #ef91b1) 10%, white);
  color: color-mix(in srgb, var(--character-accent, #ef91b1) 78%, #3e4d67);
}

@media (max-width: 900px) {
  .fe-story__viewport { width: calc(100% - 32px); border-radius: 28px; }
  .fe-story__beat { width: min(760px, calc(100% - 32px)); }
  .fe-story__rail { right: 14px; }
  .fe-character__heading { align-items: flex-start; flex-direction: column; }
  .fe-character__tabs { width: calc(100% + 8px); justify-content: flex-start; transform: translateX(-8px); }
  .fe-character__stage { min-height: auto; grid-template-columns: 1fr; gap: 0; }
  .fe-character__art { height: 660px; min-height: 0; }
  .fe-character__profile { margin-top: -48px; }
}

@media (max-width: 620px) {
  .fe-story { min-height: 0; padding: 90px 0 110px; }
  .fe-story__viewport {
    top: max(78px, calc((100svh - clamp(420px, 62svh, 560px)) / 2));
    width: calc(100% - 24px);
    height: clamp(420px, 62svh, 560px);
    min-height: 0;
    border-radius: 22px;
  }
  .fe-story__scene { object-position: 61% center; }
  .fe-story__wash { background: linear-gradient(180deg, rgba(31,38,55,.24), rgba(33,38,52,.12) 45%, rgba(30,33,46,.48)); }
  .fe-story__chapters { margin-top: clamp(-560px, -62svh, -420px); }
  .fe-story__beat { width: calc(100% - 24px); min-height: clamp(500px, 72svh, 640px); padding: 42px 10px; }
  .fe-story__copy { padding: 30px 25px; border-radius: 6px 36px 6px 6px; }
  .fe-story__beat--right .fe-story__copy { border-radius: 36px 6px 6px; }
  .fe-story__copy::before { left: 25px; }
  .fe-story__rail { display: none; }
  .fe-story h2 { font-size: clamp(34px, 11vw, 48px); }
  .fe-story h3 { font-size: clamp(27px, 8vw, 37px); }
  .fe-story__copy p { line-height: 1.85; }

  .fe-character { padding: 82px 15px 78px; }
  .fe-character__heading { margin-bottom: 24px; }
  .fe-character__tabs { width: 100%; }
  .fe-character__tab { min-width: 0; flex: 1; padding-inline: 12px; font-size: 16px; }
  .fe-character__art { height: 550px; min-height: 0; }
  .fe-character__art::before { right: 2%; width: 96%; }
  .fe-character__snowflake { font-size: clamp(230px, 70vw, 390px); }
  .fe-character__profile { margin-top: -28px; padding: 30px 24px; border-radius: 6px 36px 6px 6px; }
  .fe-character__name { font-size: 47px; }
  .fe-character__look { min-width: calc(33.333% - 7px); }
}

@media (prefers-reduced-motion: reduce) {
  .fe-story__scene,
  .fe-story__copy,
  .fe-character__art img,
  .fe-character__tab,
  .fe-character__look { transition: none !important; }
}

/* Story layout v3: one centered narrative panel in a naturally scrolling scene. */
.fe-story {
  min-height: 0;
  padding: 0;
  background: linear-gradient(180deg, #fffefc 0%, #f8f7f9 50%, #fffefc 100%);
}

.fe-story__viewport {
  position: relative;
  top: auto;
  display: grid;
  width: 100%;
  height: clamp(660px, 68svh, 740px);
  min-height: 0;
  margin: 0 auto;
  place-items: center;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: #d8d0cb;
  box-shadow: 0 26px 72px rgba(61, 68, 91, .14);
}

.fe-story__background {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.fe-story__scene {
  inset: auto 0;
  top: -260px;
  width: 100%;
  height: calc(100% + 520px);
  object-position: center;
  transform: translate3d(0, var(--story-shift, 0px), 0);
  backface-visibility: hidden;
  contain: paint;
  will-change: transform, opacity;
}

.fe-story__wash {
  background:
    linear-gradient(90deg, rgba(24, 31, 49, .55), rgba(40, 43, 57, .38) 45%, rgba(34, 32, 44, .48)),
    linear-gradient(180deg, rgba(20, 27, 42, .28), transparent 32%, transparent 68%, rgba(25, 28, 41, .42));
}

.fe-story__panel {
  position: relative;
  z-index: 2;
  width: min(680px, calc(100% - 180px));
  padding: 20px clamp(34px, 4vw, 48px);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #fff;
  text-align: center;
  text-shadow: 0 2px 14px rgba(16, 22, 37, .62);
  backdrop-filter: none;
}

.fe-story__panel::before {
  position: absolute;
  top: 0;
  left: clamp(34px, 4vw, 52px);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, #ef92b0, #9abfe0);
  content: none;
}

.fe-story__panel .fe-story__index { justify-content: center; margin-bottom: 12px; color: rgba(255,255,255,.78); }
.fe-story__panel .fe-story__index::after { background: rgba(255,255,255,.7); }
.fe-story__panel h2 { color: #fff; font-size: clamp(30px, 2.9vw, 40px); line-height: 1.2; }
.fe-story__panel .fe-story__en { margin-top: 7px; color: rgba(255,255,255,.67); }

.fe-story__body {
  display: grid;
  gap: 8px;
  margin-top: 18px;
}

.fe-story__body > p,
.fe-story__sensei p {
  margin: 0;
  font-size: clamp(14px, 1.08vw, 16px);
  line-height: 1.9;
  letter-spacing: .035em;
  color: rgba(255,255,255,.93);
}

.fe-story__sensei {
  margin: 2px 0;
  padding: 6px 0 8px;
  border: 0;
  background: transparent;
}

.fe-story__sensei > span {
  color: rgba(255,255,255,.76);
  font-size: 14px;
  letter-spacing: .05em;
}

.fe-story__sensei strong {
  display: inline-block;
  margin: 0 0 0 10px;
  color: #df7297;
  font-size: clamp(23px, 2.2vw, 30px);
  font-weight: 500;
  letter-spacing: .06em;
  line-height: 1.4;
  -webkit-text-stroke: 2.7px rgba(255,255,255,.98);
  paint-order: stroke fill;
  text-shadow: 0 2px 12px rgba(21, 24, 39, .45);
}

.fe-story__sensei p { margin-top: 8px; }

.fe-story__panel .fe-story__promise {
  margin: 16px 0 0 !important;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.26);
  color: rgba(255,255,255,.92);
  font-size: clamp(16px, 1.45vw, 19px) !important;
  text-align: center;
}

@media (max-width: 720px) {
  .fe-story { padding: 0; }
  .fe-story__viewport {
    width: 100%;
    height: auto;
    min-height: 760px;
    padding: 44px 0;
    border-radius: 0;
  }
  .fe-story__scene { object-position: 60% center; }
  .fe-story__panel {
    width: calc(100% - 44px);
    padding: 18px 23px;
    border-radius: 0;
  }
  .fe-story__panel::before { left: 23px; width: 64px; }
  .fe-story__panel h2 { font-size: clamp(28px, 8vw, 36px); }
  .fe-story__body { gap: 8px; margin-top: 17px; }
  .fe-story__sensei strong { display: block; margin: 6px 0 0; }
}

/* News, story typography, character chibi and gallery refinements. */
#news {
  padding: clamp(64px, 7vw, 96px) 24px clamp(68px, 7vw, 100px) !important;
}

#news > [class*="_contentWidth_"] { width: min(1200px, 100%); }
#news [class*="_newsLayout_"] { display: block; margin-top: 30px; }

.fe-news__carousel { position: relative; }
.fe-news__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(260px, calc((100% - 36px) / 2.65));
  gap: 18px;
  overflow-x: auto;
  padding: 4px 2px 12px;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.fe-news__track::-webkit-scrollbar { display: none; }

.fe-news__card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(216, 173, 192, .28);
  border-radius: 14px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 8px 20px rgba(78, 75, 99, .075), 0 2px 5px rgba(78, 75, 99, .035);
  scroll-snap-align: start;
}

.fe-news__cover {
  position: relative;
  aspect-ratio: 16 / 8.7;
  overflow: hidden;
  background: #f1edf1;
}

.fe-news__cover > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .55s cubic-bezier(.22, 1, .36, 1);
}

.fe-news__card:hover .fe-news__cover > img { transform: scale(1.025); }

.fe-news__cover--fallback {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 20% 20%, rgba(239,145,177,.18), transparent 38%),
    radial-gradient(circle at 84% 78%, rgba(131,185,221,.18), transparent 40%),
    rgba(255,255,255,.7);
  backdrop-filter: blur(16px);
}

.fe-news__cover--fallback::after {
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(255,255,255,.86);
  border-radius: 10px;
  content: "";
}

.fe-news__cover--fallback > img {
  position: relative;
  z-index: 1;
  width: min(68%, 230px);
  height: auto;
  object-fit: contain;
}

.fe-news__copy { padding: 14px 16px 18px; }
.fe-news__copy time {
  color: #df87a6;
  font: 700 12px/1.3 var(--font-sans, sans-serif);
  letter-spacing: .08em;
}

.fe-news__copy h3 {
  margin: 8px 0 0;
  color: #54566b;
  font-size: clamp(14px, 1.15vw, 17px);
  line-height: 1.6;
}

.fe-news__controls {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 8px;
}

.fe-news__controls button {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid rgba(131, 134, 157, .2);
  border-radius: 50%;
  background: rgba(255,255,255,.86);
  color: #77778b;
  cursor: pointer;
  font: 400 25px/1 serif;
  transition: border-color .2s ease, color .2s ease, transform .2s ease;
}

.fe-news__controls button:hover {
  border-color: rgba(223,135,166,.5);
  color: #d77f9f;
  transform: translateY(-1px);
}

#update-detail {
  width: min(1200px, calc(100% - 48px)) !important;
  margin: 38px auto 0 !important;
  padding: clamp(28px, 3.4vw, 46px) !important;
  border-radius: 28px !important;
}

#update-detail > header { margin-bottom: 22px !important; padding-bottom: 20px !important; }
#update-detail > header h3 {
  margin: 0 !important;
  font-size: clamp(28px, 3vw, 42px) !important;
  line-height: 1.25 !important;
}

#update-detail > header p { margin: 10px 0 0 !important; }
#update-detail [class*="_updateIntro_"] {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 26px !important;
  margin: 0 0 24px !important;
}

#update-detail [class*="_updateIntro_"] p { margin: 0 !important; line-height: 1.85 !important; }
#update-detail [class*="_updateGrid_"] {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

#update-detail [class*="_updateModule_"] {
  min-height: 0 !important;
  padding: 20px !important;
  border-radius: 18px !important;
}

#update-detail [class*="_updateModule_"] header { margin-bottom: 13px !important; }
#update-detail [class*="_updateModule_"] h4 { margin: 0 0 6px !important; font-size: 18px !important; }
#update-detail [class*="_updateModule_"] p,
#update-detail [class*="_updateModule_"] li { font-size: 13px !important; line-height: 1.7 !important; }
#update-detail [class*="_updateModule_"] ul { margin: 12px 0 0 !important; padding-left: 18px !important; }

.fe-story__body { margin-top: 30px; }
.fe-story__dream { margin-bottom: 7px !important; }
.fe-story__echo { margin-top: 8px !important; }

.fe-story__sensei strong {
  background: linear-gradient(90deg, #ef86ab 8%, #d99bc6 48%, #79b9e5 94%);
  background-clip: text;
  color: transparent;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 3.5px rgba(255,255,255,.99);
  paint-order: stroke fill;
}

.fe-story__period {
  display: inline-block;
  color: #fff;
  font-size: clamp(23px, 2.2vw, 30px);
  font-style: normal;
  font-weight: 500;
  line-height: 1.4;
  -webkit-text-fill-color: #fff;
  -webkit-text-stroke: 0 transparent;
  text-shadow: 0 2px 12px rgba(21, 24, 39, .45);
}

.fe-story__panel .fe-story__promise {
  margin-top: 32px !important;
  padding-top: 24px;
}

.fe-character__q {
  position: absolute;
  z-index: 5;
  right: 1%;
  bottom: -8px;
  width: clamp(86px, 9vw, 118px);
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  perspective: 700px;
  transform-origin: center bottom;
}

.fe-character__q[hidden] { display: none; }
.fe-character__q img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 12px 14px rgba(70, 75, 99, .16));
  transition: filter .25s ease, transform .25s ease;
}

.fe-character__q:hover img {
  filter: drop-shadow(0 16px 16px rgba(70, 75, 99, .2));
  transform: translateY(-3px);
}

.fe-character__q.is-flipping img {
  animation: fe-character-q-flip .92s cubic-bezier(.36, .02, .26, 1);
}

@keyframes fe-character-q-flip {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(180deg) translateY(-5px); }
  100% { transform: rotateY(360deg); }
}

#gallery {
  padding: clamp(72px, 8vw, 112px) 24px !important;
  background:
    repeating-linear-gradient(135deg, rgba(255,255,255,.34) 0 10px, transparent 10px 22px),
    linear-gradient(135deg, #fdeff3 0%, #fff5f5 52%, #f9e8ee 100%) !important;
}

#gallery [class*="_galleryHeading_"] {
  width: min(1080px, 100%);
  margin: 0 auto 34px !important;
  text-align: center;
}

#gallery [class*="_galleryHeading_"] header { justify-content: center; }
#gallery [class*="_galleryHeading_"] p { margin: 10px auto 0 !important; }
#gallery [class*="_galleryRoom_"] {
  width: min(1080px, 100%) !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#gallery [class*="_gallerySnow_"],
#gallery [class*="_galleryRail_"] { display: none !important; }

#gallery [class*="_galleryFrames_"] {
  position: static !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
  width: 100% !important;
  transform: none !important;
}

#gallery button[data-gallery-index] {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  aspect-ratio: 16 / 9;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  border: 0 !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: 0 8px 20px rgba(117, 79, 96, .1) !important;
  transform: none !important;
  transition: box-shadow .3s ease, transform .3s ease !important;
}

#gallery button[data-gallery-index]:hover {
  box-shadow: 0 14px 28px rgba(117, 79, 96, .16) !important;
  transform: translateY(-3px) !important;
}

#gallery [class*="_frameImage_"] {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
}

#gallery [class*="_frameImage_"] img { transition: transform .45s cubic-bezier(.22, 1, .36, 1); }
#gallery button[data-gallery-index]:hover [class*="_frameImage_"] img { transform: scale(1.035); }
#gallery [class*="_frameLabel_"] { display: none !important; }

@media (max-width: 760px) {
  .fe-news__track { grid-auto-columns: min(82vw, 330px); }
  #update-detail { width: calc(100% - 28px) !important; padding: 24px 19px !important; }
  #update-detail [class*="_updateIntro_"],
  #update-detail [class*="_updateGrid_"] { grid-template-columns: 1fr !important; }
  .fe-story__body { margin-top: 27px; }
  .fe-story__sensei strong { display: inline-block; margin: 6px 0 0; }
  .fe-story__panel .fe-story__promise { margin-top: 28px !important; padding-top: 21px; }
  .fe-character__q { right: 4px; bottom: -12px; width: 88px; }
  #gallery [class*="_galleryFrames_"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .fe-news__cover > img,
  .fe-character__q img,
  #gallery [class*="_frameImage_"] img { transition: none !important; animation: none !important; }
}

/* Layout corrections from the latest visual review. */
#news {
  min-height: 0 !important;
  padding-top: clamp(18px, 2.4vw, 34px) !important;
}

#news > [class*="_contentWidth_"] > [class*="_sectionTitle_"] {
  display: block !important;
  text-align: center !important;
}

#news > [class*="_contentWidth_"] > [class*="_sectionTitle_"] h2 {
  width: 100%;
  margin-inline: auto !important;
  text-align: center !important;
}

#news > [class*="_contentWidth_"] > [class*="_sectionTitle_"] > span {
  display: block !important;
  width: 100%;
  margin-top: 14px !important;
  text-align: center !important;
}

.fe-news__cover--fallback > img { transform: translateY(68px); }
.fe-news__card:hover .fe-news__cover--fallback > img { transform: translateY(68px) scale(1.025); }

.fe-news__controls {
  position: absolute;
  inset: 0;
  height: 0;
  margin: 0;
  pointer-events: none;
}

.fe-news__controls button {
  display: block;
  position: absolute;
  top: clamp(88px, 7.5vw, 116px);
  z-index: 4;
  box-sizing: border-box;
  padding: 0;
  pointer-events: auto;
  transform: translateY(-50%);
}

.fe-news__controls button:first-child { left: -84px; }
.fe-news__controls button:last-child { right: -84px; }
.fe-news__controls button:hover { transform: translateY(calc(-50% - 1px)); }

.fe-news__controls button { font-size: 0 !important; }

.fe-news__controls button::before {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  content: "";
  transform-origin: center;
}

.fe-news__controls button:first-child::before { transform: translate(-50%, -50%) rotate(-135deg); }
.fe-news__controls button:last-child::before { transform: translate(-50%, -50%) rotate(45deg); }

.fe-update__subtitle {
  display: inline;
  margin-left: 12px;
  color: #8d8a98;
  font: 500 clamp(13px, 1.05vw, 15px)/1.7 var(--font-sans, sans-serif);
  letter-spacing: .04em;
  vertical-align: middle;
}

#update-detail > header { margin-bottom: 24px !important; }

.fe-story__sensei strong {
  background: none;
  color: #ef86ab;
  -webkit-background-clip: border-box;
  -webkit-text-fill-color: #ef86ab;
}

.fe-character__q {
  right: auto;
  bottom: 42px;
  left: 46%;
  transform: translateX(-50%);
}

#gallery .fe-gallery__grid {
  position: relative !important;
  inset: auto !important;
  display: grid !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  grid-auto-flow: row !important;
  grid-auto-columns: auto !important;
  grid-auto-rows: auto !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: stretch !important;
  justify-items: stretch !important;
  overflow: visible !important;
  transform: none !important;
}

#gallery .fe-gallery__item {
  position: relative !important;
  inset: auto !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 16 / 9 !important;
  grid-column: auto !important;
  grid-row: auto !important;
  align-self: stretch !important;
  justify-self: stretch !important;
  margin: 0 !important;
  transform: none !important;
}

#gallery .fe-gallery__item::before,
#gallery .fe-gallery__item::after { content: none !important; }

#gallery .fe-gallery__image {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  transform: none !important;
}

#gallery .fe-gallery__image img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

#gallery .fe-gallery__label { display: none !important; }

@media (max-width: 1240px) {
  .fe-news__controls button:first-child { left: 8px; }
  .fe-news__controls button:last-child { right: 8px; }
}

@media (max-width: 760px) {
  #news { padding-top: 30px !important; }
  .fe-news__controls button { top: 88px; }
  .fe-character__q {
    right: auto;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
  }
  #gallery .fe-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
}

/* Interactive news details, section snowfall and light gallery viewer. */
#news {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 14% 20%, rgba(255,255,255,.95), transparent 28%),
    linear-gradient(145deg, #faf7fa 0%, #eef4fa 55%, #f9f2f6 100%) !important;
}

#news,
#system,
#history,
#information {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate;
}

#news > *:not(.fe-section-snow),
#system > *:not(.fe-section-snow),
#history > *:not(.fe-section-snow),
#information > *:not(.fe-section-snow) {
  position: relative;
  z-index: 1;
}

.fe-section-snow {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.fe-section-snow i {
  position: absolute;
  top: var(--snow-y);
  left: var(--snow-x);
  width: var(--snow-size);
  height: var(--snow-size);
  color: rgba(112, 155, 199, var(--snow-opacity));
  font: 400 var(--snow-size)/1 serif;
  opacity: var(--snow-opacity);
  animation: fe-section-snow var(--snow-duration) linear var(--snow-delay) infinite;
  will-change: transform;
}

.fe-section-snow__dot {
  border-radius: 50%;
  background: rgba(139, 177, 214, .78);
  box-shadow: 0 0 5px rgba(255,255,255,.96), 0 0 10px rgba(117,157,199,.34);
}

.fe-section-snow__flake {
  text-shadow: 0 1px 5px rgba(255,255,255,.98), 0 0 9px rgba(107,149,193,.28);
}

@keyframes fe-section-snow {
  0% { transform: translate3d(0, -112vh, 0) rotate(0deg); }
  50% { transform: translate3d(var(--snow-drift), 0, 0) rotate(var(--snow-turn)); }
  100% { transform: translate3d(var(--snow-drift-back), 112vh, 0) rotate(var(--snow-turn-back)); }
}

.fe-news__card {
  appearance: none;
  padding: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
  text-align: left;
  text-decoration: none;
  transition: border-color .25s ease, box-shadow .3s ease, transform .3s ease;
}

.fe-news__card:hover,
.fe-news__card:focus-visible {
  border-color: rgba(223,135,166,.48);
  box-shadow: 0 17px 34px rgba(78,75,99,.14);
  outline: none;
  transform: translateY(-3px);
}

.fe-news__cover,
.fe-news__copy { display: block; }
.fe-news__copy strong {
  display: block;
  margin-top: 8px;
  color: #54566b;
  font-size: clamp(14px, 1.15vw, 17px);
  font-weight: 700;
  line-height: 1.6;
}

.fe-news__controls {
  top: var(--fe-news-control-y, 112px);
  bottom: auto;
  left: 0;
  right: 0;
}

.fe-news__controls button {
  top: 0;
  width: 62px;
  height: 62px;
  font-size: 36px;
}

.fe-news__detail {
  width: min(980px, 100%);
  margin: 26px auto 0;
  padding: clamp(28px, 4vw, 50px);
  border: 1px solid rgba(255,255,255,.92);
  border-radius: 26px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 24px 64px rgba(69,76,102,.12);
  backdrop-filter: blur(18px);
}

.fe-news__detail time {
  display: block;
  margin-top: 28px;
  color: #dd83a4;
  font: 700 13px/1.4 var(--font-sans, sans-serif);
  letter-spacing: .1em;
}

.fe-news__detail h3 {
  margin: 10px 0 24px;
  color: #444b64;
  font-size: clamp(27px, 3.2vw, 42px);
  line-height: 1.35;
}

.fe-news__detail p { margin: 0 0 14px; color: #616579; font-size: 16px; line-height: 1.95; }
.fe-news__back {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 9px 16px;
  border: 1px solid rgba(126,132,157,.2);
  border-radius: 99px;
  background: rgba(255,255,255,.82);
  color: #77798d;
  cursor: pointer;
  font: 600 14px/1 var(--font-sans, sans-serif);
  transition: border-color .2s ease, color .2s ease, transform .2s ease;
}

.fe-news__back:hover { border-color: rgba(221,131,164,.5); color: #d27e9c; transform: translateX(-2px); }
#update-detail > .fe-news__back { margin: 0 0 24px; }
#news [hidden] { display: none !important; }

#update-detail > header h3 {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  align-items: baseline;
  gap: 18px;
  white-space: nowrap;
}

.fe-update__subtitle {
  flex: 0 0 auto;
  margin-left: 0;
  white-space: nowrap;
}

.fe-character__q { width: clamp(148px, 13vw, 188px); }
.fe-character__q img {
  backface-visibility: hidden;
  transform: translateZ(0);
  transform-style: preserve-3d;
  will-change: transform;
}
.fe-character__q:hover img { transform: translateZ(0); }

.fe-lightbox {
  position: fixed;
  z-index: 100000;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 70px 8vw 150px;
  background: rgba(255,252,252,.91);
  backdrop-filter: blur(13px) saturate(.75);
}

.fe-lightbox[hidden] { display: none !important; }
.fe-lightbox-open { overflow: hidden; }

.fe-lightbox__stage {
  position: relative;
  z-index: 2;
  display: grid;
  width: min(74vw, 1180px);
  max-width: calc(100vw - 210px);
  height: min(70vh, 760px);
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.95);
  border-radius: 15px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 28px 80px rgba(104,86,96,.18);
}

.fe-lightbox__stage img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.fe-lightbox__close,
.fe-lightbox__arrow {
  position: fixed;
  z-index: 4;
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  color: #968c90;
  cursor: pointer;
  font-family: serif;
  transition: color .2s ease, transform .2s ease;
}

.fe-lightbox__close {
  top: 20px;
  right: 28px;
  width: 58px;
  height: 58px;
  font-size: 55px;
  font-weight: 200;
  line-height: 1;
}

.fe-lightbox__arrow {
  top: 50%;
  width: 72px;
  height: 92px;
  font-size: 72px;
  font-weight: 200;
  transform: translateY(-50%);
}

.fe-lightbox__arrow--prev { left: 18px; }
.fe-lightbox__arrow--next { right: 18px; }
.fe-lightbox__close:hover { color: #d27f9d; transform: rotate(5deg); }
.fe-lightbox__arrow:hover { color: #d27f9d; transform: translateY(-50%) scale(1.08); }

.fe-lightbox__thumbs {
  position: fixed;
  z-index: 1;
  right: 8vw;
  bottom: 24px;
  left: 8vw;
  display: flex;
  justify-content: center;
  gap: 10px;
  overflow-x: auto;
  padding: 8px;
  scrollbar-width: none;
}

.fe-lightbox__thumbs::-webkit-scrollbar { display: none; }
.fe-lightbox__thumbs button {
  flex: 0 0 108px;
  aspect-ratio: 16 / 9;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  opacity: .23;
  transition: border-color .2s ease, opacity .2s ease, transform .2s ease;
}

.fe-lightbox__thumbs button[aria-current="true"] { border-color: #e49ab5; opacity: .82; transform: translateY(-3px); }
.fe-lightbox__thumbs img { display: block; width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 900px) {
  #update-detail > header h3 { gap: 9px; font-size: clamp(22px, 5vw, 34px) !important; }
  .fe-update__subtitle { font-size: 12px; }
  .fe-lightbox { padding: 70px 16px 125px; }
  .fe-lightbox__stage { width: calc(100vw - 34px); max-width: none; height: min(66vh, 620px); }
  .fe-lightbox__arrow { top: auto; bottom: 48px; width: 58px; height: 58px; font-size: 52px; }
  .fe-lightbox__arrow--prev { left: 12px; }
  .fe-lightbox__arrow--next { right: 12px; }
  .fe-lightbox__thumbs { right: 72px; bottom: 30px; left: 72px; justify-content: flex-start; }
  .fe-lightbox__thumbs button { flex-basis: 82px; }
}

@media (max-width: 620px) {
  #update-detail > header h3 { display: block !important; white-space: normal; }
  .fe-update__subtitle { display: inline; white-space: normal; }
  .fe-character__q { width: 116px; }
  .fe-news__controls button { width: 54px; height: 54px; font-size: 31px; }
}

@media (prefers-reduced-motion: reduce) {
  .fe-section-snow i { animation: none !important; transform: none !important; }
}

/* Bring the lower page chapters closer together without crowding their content. */
.fe-character {
  padding-top: clamp(66px, 7vw, 98px);
  padding-bottom: clamp(58px, 6vw, 86px);
}

#system,
#gallery,
#history,
#information {
  padding-top: clamp(54px, 5.5vw, 80px) !important;
  padding-bottom: clamp(54px, 5.5vw, 80px) !important;
}

#system,
#gallery {
  background:
    radial-gradient(circle at 10% 12%, rgba(255,255,255,.96), transparent 30%),
    radial-gradient(circle at 88% 78%, rgba(242,182,204,.2), transparent 34%),
    linear-gradient(145deg, #edf6fc 0%, #faf9fb 52%, #fff2f6 100%) !important;
}

.fe-product-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 22px 17px 2px;
}

.fe-product-links a {
  display: flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid color-mix(in srgb, var(--product-accent) 50%, white);
  border-radius: 14px;
  background: rgba(255,255,255,.78);
  color: #625d70;
  font: 700 14px/1 var(--font-sans, sans-serif);
  letter-spacing: .04em;
  text-decoration: none;
  transition: color .22s ease, border-color .22s ease, background-color .22s ease, transform .22s ease;
}

.fe-product-links a:hover,
.fe-product-links a:focus-visible {
  border-color: var(--product-accent);
  background: #fff;
  color: var(--product-accent);
  transform: translateY(-2px);
}

footer[class*="_footer_"] > div > h2,
footer[class*="_footer_"] > p {
  font-family: var(--font-sans, sans-serif);
  font-weight: 700;
  letter-spacing: .09em;
}

header nav[aria-label="主导航"] a.fe-nav-active,
header nav[aria-label="移动端导航"] a.fe-nav-active {
  color: #c9678a !important;
}

header nav[aria-label="主导航"] a.fe-nav-active::after {
  right: 15% !important;
  left: 15% !important;
}

header nav[aria-label="主导航"] a {
  width: 48px;
  flex: 0 0 48px;
  box-sizing: border-box;
  line-height: 20px;
  text-align: center;
}

header nav[aria-label="主导航"] a[href="#history"],
header nav[aria-label="移动端导航"] a[href="#history"] {
  order: 7;
}

header nav[aria-label="主导航"] a[href="#information"],
header nav[aria-label="移动端导航"] a[href="#information"] {
  order: 8;
}

#top {
  --fe-header-logo-width: 164px;
  position: relative;
}

#top [class*="_heroVisual_"] {
  background: #06163c url("../public/assets/fuyuki/backgrounds/2026bg.webp?v=20260901-1") center bottom / cover no-repeat;
}

#top [class*="_heroVisual_"]::before {
  background: linear-gradient(180deg, rgba(5, 17, 50, .08), rgba(4, 16, 45, .2));
  backdrop-filter: none;
}

#top [class*="_heroArt_"] { display: none !important; }

header[class*="_floatingHeader_"] {
  --fe-header-logo-width: 164px;
  grid-template-columns: var(--fe-header-logo-width) minmax(0, 1fr) auto auto;
  column-gap: clamp(6px, 1vw, 16px);
}

header[class*="_floatingHeader_"]::before {
  display: block;
  width: var(--fe-header-logo-width);
  height: 52px;
  min-width: var(--fe-header-logo-width);
  background: url("../public/assets/fuyuki/brand/logo.png?v=20260831-2") left center / contain no-repeat;
  content: "";
  pointer-events: none;
}

header nav[aria-label="主导航"] {
  width: 100%;
  min-width: 0;
}

#top::after { content: none; }

.fe-character__q {
  height: clamp(208px, 18.3vw, 265px);
}

.fe-character__q img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

@media (max-width: 1120px) {
  #top [class*="_heroVisual_"] { background-position: center bottom; }
}

@media (max-width: 760px) {
  #top [class*="_heroVisual_"] { background-position: center bottom; }
}

@media (min-width: 1800px) {
  #top [class*="_heroVisual_"] { background-position: center bottom; }
}

@media (max-width: 620px) {
  .fe-character { padding-top: 58px; padding-bottom: 52px; }
  .fe-character__q { height: 164px; }
  #system,
  #gallery,
  #history,
  #information { padding-top: 46px !important; padding-bottom: 46px !important; }
  .fe-product-links { margin-inline: 8px; }
}

#gallery [class*="_galleryHeading_"] {
  text-align: left !important;
}

#gallery [class*="_galleryHeading_"] header {
  justify-content: flex-start !important;
  text-align: left !important;
}

#gallery [class*="_galleryHeading_"] h2 {
  width: 100%;
  margin-inline: 0 !important;
  text-align: left !important;
}

/* About: information-first edition and staff cards. */
#information .fe-about__title {
  margin-bottom: clamp(34px, 4vw, 52px);
}

#information .fe-about__title p {
  text-transform: uppercase;
  letter-spacing: .2em;
}

.fe-about__group + .fe-about__group {
  margin-top: clamp(46px, 6vw, 76px);
}

.fe-about__group-heading {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: 0 0 22px;
  color: #5c566c;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 600;
  letter-spacing: .06em;
}

.fe-about__group-heading span {
  color: #ac9fad;
  font: 700 12px/1 var(--font-sans, sans-serif);
  letter-spacing: .16em;
}

.fe-about__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.4vw, 30px);
}

.fe-about__card {
  --fe-card-pad: clamp(25px, 3vw, 38px);
  --product-accent: #f2a1ba;
  position: relative;
  min-width: 0;
  padding: var(--fe-card-pad);
  overflow: hidden;
  border: 1px solid #eadde5;
  border-radius: 28px;
  background: rgba(255, 250, 252, .94);
  box-shadow: 0 18px 45px rgba(88, 79, 111, .08);
}

.fe-about__card--blue {
  --product-accent: #8bc2e8;
  border-color: #dcebf4;
  background: rgba(246, 251, 255, .96);
}

.fe-about__card::before {
  content: "";
  position: absolute;
  top: 0;
  left: clamp(25px, 3vw, 38px);
  right: clamp(25px, 3vw, 38px);
  height: 3px;
  border-radius: 0 0 3px 3px;
  background: #f2a1ba;
}

.fe-about__card--blue::before {
  background: #8bc2e8;
}

.fe-about__cover {
  position: relative;
  margin: calc(var(--fe-card-pad) * -1) calc(var(--fe-card-pad) * -1) 28px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #eee8ed;
}

.fe-about__card--blue .fe-about__cover {
  background: #e4eef5;
}

.fe-about__cover img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fe-about__edition {
  display: block;
  margin-bottom: 10px;
  color: #cf7694;
  font: 700 13px/1.4 var(--font-sans, sans-serif);
  letter-spacing: .08em;
}

.fe-about__card--blue .fe-about__edition {
  color: #6199c4;
}

.fe-about__card > h4 {
  margin: 0 0 24px;
  color: #514b61;
  font-size: clamp(20px, 1.8vw, 27px);
  font-weight: 600;
  line-height: 1.5;
}

.fe-about__facts,
.fe-about__staff {
  margin: 0;
}

.fe-about__facts > div {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 14px;
  padding: 12px 0;
  border-top: 1px dashed #e4d9e1;
}

.fe-about__card--blue .fe-about__facts > div {
  border-color: #dce8f0;
}

.fe-about__facts dt,
.fe-about__facts dd,
.fe-about__staff dt,
.fe-about__staff dd {
  margin: 0;
  font-size: 16px;
  line-height: 1.75;
}

.fe-about__facts dt,
.fe-about__staff dt {
  color: #9c8f9f;
  font-weight: 500;
}

.fe-about__facts dd,
.fe-about__staff dd {
  color: #665f6d;
}

.fe-about__card > .fe-product-links {
  margin: 24px 0 0;
}

.fe-about__staff-group + .fe-about__staff-group {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px dashed #e4d9e1;
}

.fe-about__card--blue .fe-about__staff-group + .fe-about__staff-group {
  border-color: #dce8f0;
}

.fe-about__staff-group > div {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 0 5px;
}

.fe-about__staff dt::after {
  content: "：";
}

.fe-about__staff dd {
  overflow-wrap: anywhere;
}

#information .fe-about [class*="_finalMessage_"] {
  margin-top: clamp(50px, 6vw, 76px);
}

@media (max-width: 820px) {
  .fe-about__grid {
    grid-template-columns: 1fr;
  }

  .fe-about__card {
    border-radius: 24px;
  }
}

@media (max-width: 520px) {
  .fe-about__card {
    --fe-card-pad: 20px;
    padding-block: 24px;
  }

  .fe-about__card::before {
    left: 20px;
    right: 20px;
  }

  .fe-about__facts > div {
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 10px;
  }

  .fe-about__staff-group > div {
    display: block;
  }

  .fe-about__staff dt,
  .fe-about__staff dd {
    display: inline;
  }
}

/* History: long-form origin story and five-part development timeline. */
#history .fe-history__title {
  margin-bottom: clamp(34px, 4vw, 52px);
}

.fe-history__layout {
  display: block;
}

.fe-history__origin {
  position: relative;
  max-width: 880px;
  margin: 0 auto clamp(40px, 4.5vw, 58px);
  padding: clamp(28px, 3vw, 38px);
  border: 1px solid rgba(229, 215, 225, .92);
  border-radius: 26px;
  background: rgba(255, 252, 253, .86);
  box-shadow: 0 18px 50px rgba(88, 79, 111, .08);
  backdrop-filter: blur(10px);
}

.fe-history__origin > small {
  display: block;
  margin-bottom: 18px;
  color: #c47793;
  font: 700 12px/1.4 var(--font-sans, sans-serif);
  letter-spacing: .16em;
}

.fe-history__origin .fe-history__perspective {
  margin: 0 0 20px;
  padding: 11px 14px;
  border-left: 2px solid #e7a7bc;
  border-radius: 0 10px 10px 0;
  background: rgba(247, 232, 238, .62);
  color: #817482;
  font: 600 13px/1.75 var(--font-sans, sans-serif);
  letter-spacing: .025em;
}

.fe-history__origin h3 {
  margin: 0 0 30px;
  color: #514b61;
  font-size: clamp(28px, 3vw, 43px);
  font-weight: 600;
  line-height: 1.42;
  letter-spacing: .035em;
}

.fe-history__origin p {
  margin: 0 0 18px;
  color: #69616f;
  font-size: 16px;
  line-height: 2;
}

.fe-history__origin strong {
  display: block;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px dashed #ded1da;
  color: #665367;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.9;
}

.fe-history__timeline {
  position: relative;
  display: grid;
  gap: 0;
}

.fe-history__entry + .fe-history__entry {
  margin-top: clamp(-160px, -12vw, -110px);
}

.fe-history__timeline::before {
  content: "";
  position: absolute;
  top: 34px;
  bottom: 34px;
  left: 50%;
  width: 1px;
  background: linear-gradient(#efafc3, #9ccae7);
  transform: translateX(-50%);
}

.fe-history__entry {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr);
  column-gap: 18px;
  align-items: start;
}

.fe-history__marker {
  position: relative;
  z-index: 1;
  display: grid;
  width: 38px;
  height: 38px;
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  place-items: center;
  margin-top: 24px;
  border: 1px solid #e7c6d3;
  border-radius: 50%;
  background: #fff;
  color: #bd718c;
  font: 700 12px/1 var(--font-sans, sans-serif);
  box-shadow: 0 7px 20px rgba(116, 83, 105, .1);
}

.fe-history__entry:nth-child(even) .fe-history__marker {
  border-color: #c7dfef;
  color: #6a9ec5;
}

.fe-history__entry-card {
  grid-column: 1;
  grid-row: 1;
  padding: clamp(25px, 2.6vw, 34px);
  border: 1px solid rgba(230, 220, 226, .9);
  border-radius: 26px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 14px 38px rgba(88, 79, 111, .06);
}

.fe-history__entry:nth-child(even) .fe-history__entry-card {
  grid-column: 3;
}

.fe-history__entry-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 13px;
  margin-bottom: 12px;
  color: #baafba;
  font: 700 12px/1.5 var(--font-sans, sans-serif);
  letter-spacing: .12em;
}

.fe-history__entry-meta b {
  color: #bd718c;
  font-weight: 700;
}

.fe-history__entry:nth-child(even) .fe-history__entry-meta b {
  color: #6a9ec5;
}

.fe-history__entry h3 {
  margin: 0 0 20px;
  color: #554f62;
  font-size: clamp(21px, 2vw, 29px);
  font-weight: 600;
  line-height: 1.5;
}

.fe-history__entry p {
  margin: 0 0 12px;
  color: #6d6571;
  font-size: 16px;
  line-height: 1.85;
}

.fe-history__entry p:last-child {
  margin-bottom: 0;
}

.fe-history__entry strong {
  color: #6b5365;
  font-weight: 700;
}

.fe-history__closing {
  margin: clamp(56px, 7vw, 88px) 0 0;
  padding: clamp(34px, 4vw, 48px);
  border-radius: 28px;
  background: linear-gradient(115deg, rgba(247, 165, 191, .94), rgba(144, 200, 233, .94));
  color: #fff;
  text-align: center;
  box-shadow: 0 20px 50px rgba(159, 125, 166, .16);
}

.fe-history__closing span,
.fe-history__closing strong {
  display: block;
}

.fe-history__closing span {
  margin-bottom: 12px;
  font-size: clamp(21px, 2.3vw, 30px);
  font-weight: 600;
}

.fe-history__closing strong {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: .04em;
}

@media (max-width: 820px) {
  .fe-history__origin {
    margin-bottom: 44px;
  }

  .fe-history__timeline::before {
    left: 18px;
    transform: none;
  }

  .fe-history__timeline {
    gap: 16px;
  }

  .fe-history__entry + .fe-history__entry {
    margin-top: 0;
  }

  .fe-history__entry {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
  }

  .fe-history__marker {
    grid-column: 1;
  }

  .fe-history__entry-card,
  .fe-history__entry:nth-child(even) .fe-history__entry-card {
    grid-column: 2;
  }
}

@media (max-width: 560px) {
  .fe-history__entry {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
  }

  .fe-history__timeline::before {
    left: 16px;
    transform: none;
  }

  .fe-history__marker {
    width: 34px;
    height: 34px;
    margin-top: 23px;
    font-size: 10px;
  }

  .fe-history__entry-card {
    padding: 24px 20px;
    border-radius: 22px;
  }

  .fe-history__origin {
    padding: 28px 22px;
    border-radius: 24px;
  }
}

/* Five-year echoes: long-form production notes and memoir reading experience. */
#history {
  padding-top: clamp(50px, 4.8vw, 72px) !important;
  padding-bottom: clamp(84px, 8vw, 116px) !important;
  background:
    linear-gradient(
      180deg,
      #fff8fb 0,
      #eeeaf2 34px,
      #d5d7e3 72px,
      #aab3ca 112px,
      #7c8dac 152px,
      #536b92 194px,
      #324f7c 236px,
      #1b3869 278px,
      #0f2857 320px,
      #091b42 366px,
      #080f2b 430px,
      #080f2b calc(100% - 116px),
      #172f5d calc(100% - 92px),
      #3e5a84 calc(100% - 68px),
      #7f8fab calc(100% - 44px),
      #c6cad8 calc(100% - 22px),
      #fff8fb 100%
    ) !important;
  color: #e9eef8;
}

#history::before {
  position: absolute;
  z-index: 0;
  top: 6%;
  right: auto;
  bottom: 8%;
  left: 50%;
  width: min(86vw, 1100px);
  height: auto;
  border-radius: 50%;
  background:
    radial-gradient(circle at 12% 22%, rgba(94, 139, 202, .09), transparent 25%),
    radial-gradient(circle at 90% 58%, rgba(215, 127, 170, .055), transparent 26%);
  content: "";
  transform: translateX(-50%);
  pointer-events: none;
}

#history::after {
  position: absolute;
  z-index: 0;
  inset: 0;
  background: linear-gradient(90deg, rgba(2, 7, 24, .18), transparent 22% 78%, rgba(2, 7, 24, .18));
  content: "";
  pointer-events: none;
}

#history .fe-history {
  width: min(1080px, calc(100% - 44px));
}

#history .fe-history__title {
  display: block;
  margin: 0 auto clamp(42px, 4.5vw, 58px);
  text-align: center;
}

#history .fe-history__title h2 {
  color: #1b294b;
  font-size: clamp(36px, 4.2vw, 52px);
  line-height: 1.12;
  text-shadow: 0 1px rgba(255, 255, 255, .48);
}

#history .fe-history__title > span {
  display: block;
  margin-top: 10px;
  color: rgba(38, 57, 91, .62);
  font: 600 10px/1 var(--font-sans, sans-serif);
  letter-spacing: .32em;
}

.fe-history__reading-layout {
  display: grid;
  grid-template-columns: 140px minmax(0, 740px);
  justify-content: center;
  align-items: start;
  gap: clamp(36px, 5vw, 64px);
}

.fe-history__toc {
  position: sticky;
  top: 108px;
  align-self: start;
  padding-top: 8px;
  font-family: var(--font-sans, sans-serif);
}

.fe-history__toc > p {
  margin: 0 0 18px;
  color: rgba(194, 208, 230, .42);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .24em;
}

.fe-history__toc ol {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fe-history__toc a {
  display: grid;
  grid-template-columns: 25px 1fr;
  gap: 8px;
  align-items: baseline;
  color: rgba(197, 209, 228, .47);
  font-size: 11px;
  line-height: 1.45;
  text-decoration: none;
  transition: color .24s ease, transform .24s ease;
}

.fe-history__toc a span {
  color: rgba(232, 167, 197, .48);
  font-size: 10px;
  letter-spacing: .08em;
}

.fe-history__toc a b {
  font-weight: 500;
  letter-spacing: .04em;
}

.fe-history__toc a:hover,
.fe-history__toc a:focus-visible,
.fe-history__toc a.is-active {
  color: #f4f7ff;
  transform: translateX(4px);
}

.fe-history__toc a.is-active span { color: #f0a8c6; }

.fe-history__manuscript {
  min-width: 0;
}

.fe-history__foreword,
.fe-history__chapter {
  position: relative;
  max-width: 740px;
}

.fe-history__foreword {
  padding-bottom: clamp(60px, 6vw, 78px);
  border-bottom: 1px solid rgba(185, 205, 232, .17);
}

.fe-history__foreword > small {
  display: block;
  margin-bottom: 12px;
  color: #efa9c5;
  font: 700 11px/1.4 var(--font-sans, sans-serif);
  letter-spacing: .18em;
}

.fe-history__perspective {
  margin: 0 0 18px !important;
  color: rgba(196, 210, 231, .58) !important;
  font: 500 12px/1.75 var(--font-sans, sans-serif) !important;
  letter-spacing: .025em;
}

.fe-history__foreword h3 {
  max-width: 680px;
  margin: 0 0 24px;
  color: #fff;
  font-size: clamp(27px, 3.2vw, 38px);
  font-weight: 600;
  line-height: 1.34;
  letter-spacing: .035em;
}

.fe-history__foreword > p:not(.fe-history__perspective),
.fe-history__subsection p {
  margin: 0 0 1em;
  color: rgba(226, 233, 244, .82);
  font-size: clamp(15px, 1.25vw, 17px);
  line-height: 1.88;
  letter-spacing: .015em;
}

.fe-history__foreword > p:not(.fe-history__perspective):last-of-type,
.fe-history__subsection p:last-child {
  margin-bottom: 0;
}

.fe-history__foreword blockquote,
.fe-history__chapter blockquote {
  margin: clamp(30px, 3.5vw, 42px) 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: #fff;
  font-size: clamp(19px, 2vw, 24px);
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: .025em;
}

.fe-history__chapter {
  padding: clamp(68px, 7vw, 88px) 0 clamp(72px, 7.5vw, 94px);
  border-bottom: 1px solid rgba(185, 205, 232, .15);
  scroll-margin-top: 96px;
}

.fe-history__chapter:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.fe-history__chapter::before {
  position: absolute;
  z-index: 0;
  top: clamp(44px, 4.8vw, 62px);
  right: clamp(-46px, -3vw, -18px);
  color: rgba(195, 215, 242, .055);
  content: attr(data-year);
  font: 700 clamp(72px, 9vw, 118px)/1 var(--font-sans, sans-serif);
  letter-spacing: -.08em;
  pointer-events: none;
  white-space: nowrap;
}

.fe-history__chapter > * {
  position: relative;
  z-index: 1;
}

.fe-history__chapter-header {
  max-width: 720px;
  margin-bottom: clamp(38px, 4.5vw, 52px);
}

.fe-history__chapter-index {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 15px;
  font-family: var(--font-sans, sans-serif);
  line-height: 1;
}

.fe-history__chapter-index span {
  color: #f0aac6;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .12em;
}

.fe-history__chapter-index i {
  color: rgba(207, 220, 239, .28);
  font-size: 12px;
  font-style: normal;
}

.fe-history__chapter-index b {
  color: rgba(188, 210, 238, .66);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .24em;
}

.fe-history__chapter h3 {
  max-width: 700px;
  margin: 0 0 17px;
  color: #fff;
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 600;
  line-height: 1.42;
  letter-spacing: .025em;
}

.fe-history__years {
  margin: 0;
  color: rgba(179, 204, 235, .54);
  font: 600 13px/1.5 var(--font-sans, sans-serif);
  letter-spacing: .18em;
}

.fe-history__chapter-body {
  max-width: 740px;
}

.fe-history__subsection + .fe-history__subsection {
  margin-top: clamp(34px, 4vw, 46px);
}

.fe-history__subsection h4 {
  position: relative;
  margin: 0 0 15px;
  padding-top: 16px;
  color: #f3dbe6;
  font-size: clamp(18px, 1.6vw, 21px);
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: .04em;
}

.fe-history__subsection h4::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 1px;
  background: linear-gradient(90deg, #e89eba, rgba(128, 185, 228, .24));
  content: "";
}

.fe-history__chapter blockquote {
  max-width: 690px;
  padding-top: clamp(26px, 3vw, 34px);
  border-top: 1px solid rgba(187, 207, 233, .14);
  color: #dceafa;
}

@media (max-width: 900px) {
  #history .fe-history { width: min(100% - 36px, 800px); }
  .fe-history__reading-layout { grid-template-columns: minmax(0, 760px); gap: 0; }
  .fe-history__toc { display: none; }
  .fe-history__chapter::before { right: 0; }
}

@media (max-width: 560px) {
  #history {
    padding-top: 48px !important;
    padding-bottom: 78px !important;
    background:
      linear-gradient(
        180deg,
        #fff8fb 0,
        #e5e3ec 34px,
        #bcc3d4 72px,
        #8392ae 112px,
        #526991 154px,
        #2b4777 196px,
        #132e60 238px,
        #0a1c43 280px,
        #080f2b 330px,
        #080f2b calc(100% - 92px),
        #193362 calc(100% - 70px),
        #4c668d calc(100% - 48px),
        #9da8bd calc(100% - 25px),
        #fff8fb 100%
      ) !important;
  }

  #history .fe-history { width: min(100% - 28px, 520px); }
  #history .fe-history__title { margin-bottom: 40px; }
  #history .fe-history__title h2 { font-size: clamp(34px, 10vw, 42px); }
  .fe-history__foreword { padding-bottom: 56px; }
  .fe-history__foreword h3 { margin-bottom: 21px; font-size: 27px; }
  .fe-history__foreword > p:not(.fe-history__perspective),
  .fe-history__subsection p { font-size: 15px; line-height: 1.86; }
  .fe-history__foreword blockquote,
  .fe-history__chapter blockquote { font-size: 19px; line-height: 1.68; }
  .fe-history__chapter { padding-block: 58px 64px; scroll-margin-top: 72px; }
  .fe-history__chapter::before { top: 42px; font-size: 66px; }
  .fe-history__chapter-header { margin-bottom: 34px; }
  .fe-history__chapter h3 { font-size: 26px; line-height: 1.42; }
  .fe-history__subsection + .fe-history__subsection { margin-top: 34px; }
}

@media (prefers-reduced-motion: reduce) {
  .fe-history__toc a { transition: none; }
}

/* Alternating memoir timeline: no cards, one continuous meteor trail. */
#history {
  background:
    linear-gradient(
      180deg,
      #fff8fb 0,
      #ebe9f0 34px,
      #cfd3de 72px,
      #a8b2c3 112px,
      #8090aa 152px,
      #5e718f 194px,
      #425a7c 234px,
      #30496d 274px,
      #24395c 314px,
      #1c2c4b 354px,
      #182440 410px,
      #182440 calc(100% - 112px),
      #2f4566 calc(100% - 88px),
      #61728e calc(100% - 62px),
      #aab2c2 calc(100% - 36px),
      #e4e2e9 calc(100% - 16px),
      #fff8fb 100%
    ) !important;
}

#history::before {
  top: 8%;
  bottom: 7%;
  width: min(94vw, 1320px);
  background:
    radial-gradient(circle at 10% 20%, rgba(121, 160, 209, .1), transparent 25%),
    radial-gradient(circle at 90% 64%, rgba(220, 151, 184, .065), transparent 24%);
}

#history::after {
  background: linear-gradient(90deg, rgba(16, 27, 53, .08), transparent 18% 82%, rgba(16, 27, 53, .08));
}

#history .fe-history { width: min(1180px, calc(100% - 44px)); }

.fe-history__reading-layout { display: block; }
.fe-history__toc { display: none; }

.fe-history__manuscript {
  width: 100%;
  max-width: 1120px;
  margin-inline: auto;
}

.fe-history__foreword {
  width: min(740px, 100%);
  margin-inline: auto;
  border-bottom-color: rgba(207, 220, 238, .16);
}

.fe-history__chapter {
  position: relative;
  display: grid;
  width: 100%;
  max-width: none;
  grid-template-columns: minmax(0, 1fr) 72px minmax(0, 1fr);
  grid-template-rows: auto auto;
  padding: clamp(66px, 7vw, 90px) 0 clamp(74px, 8vw, 102px);
  border: 0;
}

.fe-history__chapter::after {
  position: absolute;
  z-index: 0;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(238, 165, 197, .26), #f3f8ff 22%, #8bc7ef 54%, rgba(119, 177, 224, .2) 100%);
  background-size: 100% 220px;
  box-shadow: 0 0 8px rgba(212, 232, 251, .56), 0 0 22px rgba(114, 182, 232, .24);
  content: "";
  transform: translateX(-50%);
  animation: fe-history-meteor-flow 4.8s linear infinite;
}

@keyframes fe-history-meteor-flow {
  from { background-position: 0 -220px; }
  to { background-position: 0 0; }
}

.fe-history__chapter::before {
  top: clamp(42px, 5vw, 62px);
  right: calc(50% + 54px);
  left: auto;
  color: rgba(205, 221, 241, .045);
  font-size: clamp(70px, 8vw, 106px);
}

.fe-history__chapter:nth-child(odd)::before {
  right: auto;
  left: calc(50% + 54px);
}

.fe-history__meteor-marker {
  position: relative;
  z-index: 3;
  display: grid;
  width: 34px;
  height: 34px;
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  align-self: start;
  place-items: center;
  margin-top: 4px;
  border: 1px solid rgba(239, 169, 200, .72);
  border-radius: 50%;
  background: #223252;
  color: #f3b2cf;
  font: 700 10px/1 var(--font-sans, sans-serif);
  box-shadow: 0 0 0 5px rgba(236, 159, 194, .055), 0 0 18px rgba(234, 159, 195, .25);
}

.fe-history__chapter:nth-child(odd) .fe-history__meteor-marker {
  border-color: rgba(143, 201, 239, .74);
  color: #bfe3fa;
  box-shadow: 0 0 0 5px rgba(120, 186, 231, .06), 0 0 18px rgba(112, 182, 231, .28);
}

.fe-history__meteor-marker::before {
  position: absolute;
  z-index: -1;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 7px #fff, 0 0 18px rgba(157, 210, 247, .9), 0 0 34px rgba(128, 190, 235, .55);
  content: "";
  opacity: .34;
}

.fe-history__chapter-header,
.fe-history__chapter-body {
  width: 100%;
  max-width: 500px;
  grid-column: 1;
  justify-self: end;
  padding-right: clamp(18px, 2.7vw, 34px);
}

.fe-history__chapter-header {
  position: relative;
  grid-row: 1;
  margin-bottom: clamp(30px, 3.6vw, 42px);
}

.fe-history__chapter-body { grid-row: 2; }

.fe-history__chapter:nth-child(odd) .fe-history__chapter-header,
.fe-history__chapter:nth-child(odd) .fe-history__chapter-body {
  grid-column: 3;
  justify-self: start;
  padding-right: 0;
  padding-left: clamp(18px, 2.7vw, 34px);
}

.fe-history__chapter-header::after {
  position: absolute;
  top: 20px;
  right: -36px;
  width: 36px;
  height: 1px;
  background: linear-gradient(90deg, rgba(233, 165, 195, .18), rgba(234, 216, 229, .72));
  content: "";
}

.fe-history__chapter:nth-child(odd) .fe-history__chapter-header::after {
  right: auto;
  left: -36px;
  background: linear-gradient(90deg, rgba(216, 237, 251, .72), rgba(120, 183, 228, .16));
}

.fe-history__chapter h3 {
  max-width: 480px;
  font-size: clamp(24px, 2.6vw, 34px);
}

.fe-history__chapter-body { max-width: 500px; }

.fe-history__chapter blockquote {
  max-width: 480px;
  border-top-color: rgba(207, 221, 239, .13);
}

.fe-history [data-fe-reveal] {
  opacity: 0;
  filter: blur(2px);
  transform: translate3d(0, 18px, 0);
  transition:
    opacity .72s cubic-bezier(.22, 1, .36, 1) var(--fe-reveal-delay, 0ms),
    transform .72s cubic-bezier(.22, 1, .36, 1) var(--fe-reveal-delay, 0ms),
    filter .72s ease var(--fe-reveal-delay, 0ms);
  will-change: opacity, transform;
}

.fe-history [data-fe-reveal].is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
}

@media (max-width: 900px) {
  #history .fe-history { width: min(100% - 32px, 720px); }
  .fe-history__chapter {
    grid-template-columns: 44px minmax(0, 1fr);
    padding-block: 60px 70px;
  }
  .fe-history__chapter::after { left: 22px; transform: none; }
  .fe-history__chapter::before,
  .fe-history__chapter:nth-child(odd)::before { right: auto; left: 70px; }
  .fe-history__meteor-marker { grid-column: 1; }
  .fe-history__chapter-header,
  .fe-history__chapter-body,
  .fe-history__chapter:nth-child(odd) .fe-history__chapter-header,
  .fe-history__chapter:nth-child(odd) .fe-history__chapter-body {
    grid-column: 2;
    justify-self: stretch;
    max-width: none;
    padding-right: 0;
    padding-left: 18px;
  }
  .fe-history__chapter-header::after,
  .fe-history__chapter:nth-child(odd) .fe-history__chapter-header::after {
    top: 20px;
    right: auto;
    left: -18px;
    width: 18px;
    background: linear-gradient(90deg, rgba(220, 239, 252, .68), rgba(123, 184, 228, .14));
  }
  .fe-history__chapter h3,
  .fe-history__chapter-body,
  .fe-history__chapter blockquote { max-width: none; }
}

@media (max-width: 560px) {
  #history {
    background:
      linear-gradient(
        180deg,
        #fff8fb 0,
        #e6e5ec 32px,
        #c4cad6 68px,
        #96a2b6 106px,
        #697b98 146px,
        #475e7f 186px,
        #30496d 226px,
        #223758 266px,
        #1a2948 306px,
        #182440 350px,
        #182440 calc(100% - 88px),
        #3d5373 calc(100% - 64px),
        #8995aa calc(100% - 38px),
        #d8d8e1 calc(100% - 16px),
        #fff8fb 100%
      ) !important;
  }
  .fe-history__chapter { grid-template-columns: 38px minmax(0, 1fr); padding-block: 52px 62px; }
  .fe-history__chapter::after { left: 19px; }
  .fe-history__meteor-marker { width: 30px; height: 30px; font-size: 9px; }
  .fe-history__chapter::before,
  .fe-history__chapter:nth-child(odd)::before { left: 56px; font-size: 60px; }
  .fe-history__chapter-header,
  .fe-history__chapter-body,
  .fe-history__chapter:nth-child(odd) .fe-history__chapter-header,
  .fe-history__chapter:nth-child(odd) .fe-history__chapter-body { padding-left: 14px; }
  .fe-history__chapter-header::after,
  .fe-history__chapter:nth-child(odd) .fe-history__chapter-header::after { left: -14px; width: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .fe-history__chapter::after { animation: none; }
  .fe-history [data-fe-reveal] { opacity: 1; filter: none; transform: none; transition: none; }
}

/* Light paper palette and tighter alternating rhythm. */
#history {
  padding-top: clamp(38px, 3.4vw, 50px) !important;
  padding-bottom: clamp(46px, 4.4vw, 62px) !important;
  background:
    radial-gradient(circle at 12% 20%, rgba(190, 218, 239, .24), transparent 30%),
    radial-gradient(circle at 88% 66%, rgba(239, 194, 213, .22), transparent 28%),
    linear-gradient(180deg, #fffafb 0%, #f7f8fc 22%, #f1f6fb 58%, #fff8fa 100%) !important;
  color: #5d6070;
}

#history::before {
  background:
    radial-gradient(circle at 14% 26%, rgba(132, 183, 222, .1), transparent 26%),
    radial-gradient(circle at 86% 68%, rgba(224, 148, 183, .085), transparent 25%);
}

#history::after {
  background: linear-gradient(90deg, rgba(188, 208, 226, .08), transparent 18% 82%, rgba(232, 193, 211, .08));
}

#history .fe-history__title { margin-bottom: clamp(30px, 3.2vw, 42px); }

#history .fe-history__title h2 {
  color: #4e5266;
  text-shadow: none;
}

#history .fe-history__title > span { color: rgba(151, 105, 133, .7); }

.fe-history__foreword {
  padding-bottom: clamp(34px, 3.6vw, 46px);
  border-bottom-color: rgba(125, 145, 170, .16);
}

.fe-history__foreword > small { color: #be6f91; }

.fe-history__perspective { color: #898797 !important; }

.fe-history__foreword h3,
.fe-history__chapter h3 { color: #4b4f62; }

.fe-history__foreword > p:not(.fe-history__perspective),
.fe-history__subsection p {
  color: #626675;
  line-height: 1.82;
}

.fe-history__foreword blockquote,
.fe-history__chapter blockquote {
  color: #69586a;
}

.fe-history__chapter {
  padding: clamp(30px, 3.1vw, 40px) 0 clamp(34px, 3.5vw, 46px);
}

@media (min-width: 901px) {
  .fe-history__chapter + .fe-history__chapter {
    margin-top: clamp(-186px, -12vw, -148px);
  }
}

.fe-history__chapter::after {
  background: linear-gradient(180deg, rgba(221, 137, 174, .34), #b8d8ee 28%, #77afd5 60%, rgba(130, 176, 210, .2) 100%);
  box-shadow: 0 0 7px rgba(116, 164, 203, .32), 0 0 18px rgba(151, 190, 220, .2);
}

.fe-history__chapter::before,
.fe-history__chapter:nth-child(odd)::before {
  color: rgba(95, 119, 150, .06);
}

.fe-history__meteor-marker {
  border-color: rgba(204, 111, 151, .58);
  background: #fffafd;
  color: #b76388;
  box-shadow: 0 0 0 4px rgba(212, 130, 164, .06), 0 0 14px rgba(192, 119, 151, .2);
}

.fe-history__chapter:nth-child(odd) .fe-history__meteor-marker {
  border-color: rgba(94, 158, 203, .6);
  color: #4f91bd;
  box-shadow: 0 0 0 4px rgba(112, 174, 214, .07), 0 0 14px rgba(95, 157, 200, .2);
}

.fe-history__meteor-marker::before {
  background: #fff;
  box-shadow: 0 0 6px #fff, 0 0 15px rgba(100, 163, 208, .7), 0 0 26px rgba(111, 171, 213, .38);
}

.fe-history__chapter-header {
  margin-bottom: clamp(16px, 1.8vw, 22px);
}

.fe-history__chapter-header::after {
  background: linear-gradient(90deg, rgba(209, 126, 161, .1), rgba(195, 135, 161, .52));
}

.fe-history__chapter:nth-child(odd) .fe-history__chapter-header::after {
  background: linear-gradient(90deg, rgba(109, 166, 205, .52), rgba(117, 176, 215, .1));
}

.fe-history__chapter-index { margin-bottom: 12px; }
.fe-history__chapter-index span { color: #b9678a; }
.fe-history__chapter-index i { color: rgba(108, 116, 136, .28); }
.fe-history__chapter-index b { color: rgba(91, 124, 157, .72); }
.fe-history__years { color: rgba(99, 126, 153, .68); }

.fe-history__subsection + .fe-history__subsection {
  margin-top: clamp(25px, 2.8vw, 34px);
}

.fe-history__subsection h4 {
  margin-bottom: 12px;
  padding-top: 13px;
  color: #925f79;
}

.fe-history__subsection h4::before {
  background: linear-gradient(90deg, #cf829f, rgba(105, 163, 205, .2));
}

.fe-history__chapter blockquote {
  margin-top: clamp(17px, 1.8vw, 22px);
  padding-top: clamp(14px, 1.5vw, 18px);
  border-top-color: rgba(109, 136, 165, .14);
}

@media (max-width: 900px) {
  .fe-history__chapter { margin-top: 0; padding-block: 32px 40px; }
}

@media (max-width: 560px) {
  #history {
    padding-top: 34px !important;
    padding-bottom: 48px !important;
    background:
      radial-gradient(circle at 12% 20%, rgba(190, 218, 239, .22), transparent 28%),
      radial-gradient(circle at 88% 68%, rgba(239, 194, 213, .2), transparent 26%),
      linear-gradient(180deg, #fffafb 0%, #f7f8fc 24%, #f1f6fb 60%, #fff8fa 100%) !important;
  }
  #history .fe-history__title { margin-bottom: 28px; }
  .fe-history__foreword { padding-bottom: 34px; }
  .fe-history__chapter { padding-block: 28px 36px; }
  .fe-history__chapter-header { margin-bottom: 17px; }
  .fe-history__subsection + .fe-history__subsection { margin-top: 24px; }
}
/* Portrait and tablet responsive pass. */
.fe-news__more {
  display: none;
  width: max-content;
  margin: 12px 0 0 auto;
  color: #c76f90;
  font: 700 14px/1.5 var(--font-sans, sans-serif);
  letter-spacing: .06em;
  text-decoration: none;
}

.fe-news__more span {
  display: inline-block;
  margin-left: 5px;
  transition: transform .2s ease;
}

.fe-news__more:hover span,
.fe-news__more:focus-visible span { transform: translateX(3px); }

.fe-news__carousel.has-overflow .fe-news__more { display: block; }

.fe-news__carousel { padding-inline: 64px; }

/* Show only whole announcement cards: three columns on desktop, two on tablets. */
.fe-news__track { grid-auto-columns: calc((100% - 36px) / 3); }

.fe-news__card {
  color: inherit;
  cursor: default;
  text-decoration: none;
}

.fe-news__card[href] { cursor: pointer; }

.fe-news__card:hover,
.fe-news__card:focus-visible {
  border-color: rgba(216, 173, 192, .28);
  box-shadow: 0 9px 22px rgba(78, 75, 99, .08), 0 3px 7px rgba(78, 75, 99, .04);
  transform: none;
}

.fe-news__card[href]:hover,
.fe-news__card[href]:focus-visible {
  border-color: rgba(216, 173, 192, .48);
  box-shadow: 0 13px 28px rgba(78, 75, 99, .105), 0 4px 9px rgba(78, 75, 99, .045);
  outline: none;
  transform: translateY(-3px);
}

.fe-news__cover--fallback {
  display: grid;
  place-items: center;
}

.fe-news__cover--fallback > img,
.fe-news__card:hover .fe-news__cover--fallback > img {
  width: min(58%, 220px);
  height: auto;
  object-fit: contain;
  transform: none !important;
}

/* Keep the arrows in dedicated side gutters, outside the announcement cards. */
.fe-news__controls {
  position: absolute;
  top: var(--fe-news-control-y, 112px);
  right: 0;
  bottom: auto;
  left: 0;
  display: block;
  height: 0;
  margin: 0;
  pointer-events: none;
}

.fe-news__controls button,
.fe-news__controls button:first-child,
.fe-news__controls button:last-child {
  position: absolute;
  top: 0;
  width: 48px;
  height: 48px;
  pointer-events: auto;
  transform: translateY(-50%);
}

.fe-news__controls button:first-child { right: auto; left: 0; }
.fe-news__controls button:last-child { right: 0; left: auto; }
.fe-news__controls button:hover { transform: translateY(calc(-50% - 2px)); }

/* Q art is moved into the illustration container by the redesign script. */
.fe-character__art > .fe-character__q {
  top: auto;
  right: 0;
  bottom: 6px;
  left: auto;
  width: clamp(132px, 12vw, 176px);
  height: clamp(190px, 17vw, 248px);
  transform: none;
}

.fe-character__art > .fe-character__q img {
  position: static;
  inset: auto;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  opacity: 1;
  transform: translateZ(0);
}

@media (max-width: 600px) {
  header[class*="_floatingHeader_"] {
    display: flex !important;
    top: 16px !important;
    right: 16px !important;
    left: auto !important;
    width: 52px !important;
    max-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    justify-content: flex-end !important;
    overflow: visible !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    transform: none !important;
  }

  header[class*="_floatingHeader_"]::before { display: none !important; }

  header nav[aria-label="主导航"] { display: none !important; }
  header nav[aria-label="官方社交平台"] { display: none !important; }
  header button[aria-expanded] {
    position: relative;
    z-index: 3;
    display: grid !important;
    width: 52px !important;
    height: 52px !important;
    flex: 0 0 52px;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 244, 248, .94) !important;
    box-shadow: 0 10px 30px rgba(65, 72, 96, .12);
    cursor: pointer;
  }

  header button[aria-expanded] span {
    position: absolute;
    width: 19px;
    height: 2px;
    border-radius: 99px;
    background: #dc779b;
  }

  header button[aria-expanded] span:first-child { transform: translateY(-5px); }
  header button[aria-expanded] span:last-child { transform: translateY(5px); }

  header nav[aria-label="移动端导航"] {
    position: fixed;
    z-index: 2;
    inset: 0;
    display: flex !important;
    width: 100vw;
    height: 100svh;
    min-height: 100svh;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: clamp(10px, 2.2vh, 18px);
    padding: 110px 24px 42px;
    background: rgba(250, 249, 252, .97);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-16px);
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
    overflow-y: auto;
  }

  header nav[aria-label="移动端导航"] a {
    color: #55596f;
    font-size: 20px;
    text-decoration: none;
  }

  .fe-mobile-socials {
    display: flex;
    width: min(286px, calc(100vw - 48px));
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 10px;
    order: 9;
    margin-top: 10px;
    padding-top: 16px;
    border-top: 1px solid rgba(105, 99, 126, .16);
  }

  header nav[aria-label="移动端导航"] .fe-mobile-socials a {
    display: flex;
    width: 100%;
    height: 48px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 0;
    border: 1px solid rgba(213, 127, 158, .2);
    border-radius: 15px;
    background: #fff;
    color: #55596f;
    box-shadow: 0 9px 24px rgba(65, 72, 96, .1);
    transition: color .2s ease, transform .2s ease, box-shadow .2s ease;
  }

  header nav[aria-label="移动端导航"] .fe-mobile-socials a:hover,
  header nav[aria-label="移动端导航"] .fe-mobile-socials a:focus-visible {
    color: #d67599;
    outline: none;
    box-shadow: 0 12px 28px rgba(193, 101, 137, .17);
    transform: translateY(-2px);
  }

  .fe-mobile-socials span { font: 700 20px/1 sans-serif; }
  .fe-mobile-socials img { width: 27px; height: 27px; object-fit: contain; }
  .fe-mobile-socials strong {
    color: inherit;
    font: 700 14px/1.2 sans-serif;
    letter-spacing: .03em;
  }

  header button[aria-expanded="true"] + nav[aria-label="移动端导航"] { pointer-events: auto; }
}

@media (orientation: portrait) {
  #top [class*="_heroLogo_"] {
    top: clamp(92px, 12svh, 132px) !important;
    right: auto !important;
    bottom: auto !important;
    left: 50%;
    width: min(82vw, 520px) !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    visibility: hidden;
    opacity: 0;
    animation: none !important;
  }

  #top [class*="_heroLogo_"].fe-hero-logo-ready {
    visibility: visible;
    animation: fe-portrait-logo-arrival .9s .15s ease both !important;
  }
}

/* Creation guidelines page entry. */
.fe-rules-link {
  font-family: var(--font-sans, sans-serif);
  text-decoration: none;
}

.fe-rules-link--desktop {
  display: inline-flex;
  min-width: 62px;
  height: 38px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  margin-left: 14px;
  padding: 0 17px;
  border: 1px solid rgba(213, 127, 158, .2);
  border-radius: 999px;
  background: linear-gradient(135deg, #fff7fa, #f9eef4);
  color: #b95f82;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .08em;
  box-shadow: 0 7px 18px rgba(88, 80, 112, .09);
  transition: color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.fe-rules-link--desktop:hover,
.fe-rules-link--desktop:focus-visible,
.fe-rules-link--desktop[aria-current="page"] {
  border-color: rgba(201, 103, 138, .48);
  color: #c9678a;
  outline: none;
  box-shadow: 0 10px 24px rgba(193, 101, 137, .16);
  transform: translateY(-2px);
}

.fe-rules-link--desktop[aria-current="page"]::after {
  position: absolute;
  right: 15%;
  bottom: -5px;
  left: 15%;
  height: 3px;
  border-radius: 3px;
  background: var(--pink);
  content: '';
}

.fe-rules__body {
  padding: 0;
  font-size: 16px;
  line-height: 1.85;
}

.fe-rules__body > p:first-child { margin-top: 0; }
.fe-rules__body p { margin: .65em 0; }
.fe-rules__lead { color: #4e4860; font-size: 18px; font-weight: 700; }

.fe-rules__body section {
  margin-top: 34px;
  padding-top: 27px;
  border-top: 1px solid rgba(116, 105, 139, .12);
}

.fe-rules__body h3 {
  margin: 0 0 18px;
  color: #c36487;
  font-size: 21px;
  line-height: 1.4;
}

.fe-rules__body h4 {
  margin: 20px 0 8px;
  color: #5a536b;
  font-size: 17px;
}

.fe-rules__body ol,
.fe-rules__body ul {
  margin: 10px 0;
  padding-left: 1.5em;
}

.fe-rules__body li { margin: .55em 0; padding-left: .18em; }
.fe-rules__body li::marker { color: #cf7294; font-weight: 700; }

.fe-rules__body blockquote {
  margin: 18px 0;
  padding: 14px 18px;
  border-left: 4px solid #e797b4;
  border-radius: 0 14px 14px 0;
  background: rgba(250, 232, 240, .58);
  color: #665f74;
}

.fe-rules__aside { color: #8b8397; font-size: 14px; }

.fe-rules__examples {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 18px 0 25px;
}

.fe-rules__examples > div {
  padding: 4px 20px 16px;
  border: 1px solid rgba(116, 105, 139, .11);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
}

.fe-rules__closing { text-align: center; }
.fe-rules__dates { margin-top: 22px !important; color: #766d83; }

@media (max-width: 600px) {
  .fe-rules-link--desktop { display: none; }

  header nav[aria-label="移动端导航"] {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-content: center;
    align-items: stretch;
    gap: 12px;
    padding: 94px max(22px, calc((100vw - 480px) / 2)) 34px;
  }

  header nav[aria-label="移动端导航"] > a,
  header nav[aria-label="移动端导航"] > .fe-rules-link--mobile {
    display: flex;
    min-width: 0;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    padding: 9px 6px;
    border: 1px solid rgba(213, 127, 158, .17);
    border-radius: 14px;
    background: rgba(255,255,255,.78);
    color: #5d586d;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    box-shadow: 0 7px 20px rgba(65, 72, 96, .07);
  }

  header nav[aria-label="移动端导航"] > a:hover,
  header nav[aria-label="移动端导航"] > a:focus-visible,
  header nav[aria-label="移动端导航"] > .fe-rules-link--mobile:hover,
  header nav[aria-label="移动端导航"] > .fe-rules-link--mobile:focus-visible {
    border-color: rgba(201, 103, 138, .42);
    color: #c9678a;
    outline: none;
    background: #fff7fa;
  }

  header nav[aria-label="移动端导航"] > .fe-rules-link--mobile { order: 9; }

  header nav[aria-label="移动端导航"] .fe-mobile-socials {
    display: flex;
    width: 100%;
    max-width: none;
    grid-column: 1 / -1;
    flex-direction: row;
    order: 10;
    margin-top: 4px;
  }

  header nav[aria-label="移动端导航"] .fe-mobile-socials a {
    width: auto;
    min-width: 0;
    flex: 1;
  }
}

@media (min-width: 601px) {
  header nav[aria-label="主导航"] {
    min-width: 0;
  }

  header nav[aria-label="主导航"] a {
    min-width: 0;
  }

  .fe-rules-link--desktop,
  header nav[aria-label="官方社交平台"] {
    margin-left: 0;
  }

  header nav[aria-label="官方社交平台"] {
    padding-left: 0;
    border-left: 0;
  }
}

@media (min-width: 601px) and (max-width: 1040px) {
  header._floatingHeader_1fn1y_19 {
    width: min(1120px, calc(100% - 24px));
    padding-right: clamp(10px, 2vw, 20px);
    padding-left: clamp(10px, 2vw, 20px);
  }

  header nav[aria-label="主导航"] {
    min-width: 0;
    gap: clamp(2px, 1vw, 18px);
  }

  header nav[aria-label="主导航"] a {
    width: auto;
    flex: 1 1 0;
    min-width: 0;
    padding: 10px 1px;
    font-size: clamp(11px, 1.55vw, 16px);
  }

  .fe-rules-link--desktop {
    min-width: clamp(48px, 6vw, 62px);
    margin-left: 0;
    padding-right: clamp(8px, 1.4vw, 14px);
    padding-left: clamp(8px, 1.4vw, 14px);
    font-size: clamp(11px, 1.35vw, 14px);
  }

  header nav[aria-label="官方社交平台"] {
    gap: clamp(3px, .7vw, 7px);
    margin-left: 0;
    padding-left: 0;
    border-left: 0;
  }

  header nav[aria-label="官方社交平台"] a {
    width: clamp(30px, 3.4vw, 38px);
    height: clamp(30px, 3.4vw, 38px);
  }
}

@media (max-width: 680px) {
  .fe-rules__examples { grid-template-columns: 1fr; }
}

@keyframes fe-portrait-logo-arrival {
  from {
    opacity: 0;
    transform: translate(-50%, 14px) scale(.98);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) scale(1);
  }
}

@media (orientation: portrait) and (prefers-reduced-motion: reduce) {
  #top [class*="_heroLogo_"].fe-hero-logo-ready {
    animation: none !important;
    visibility: visible;
    opacity: 1;
    transform: translateX(-50%) !important;
  }
}

@media (min-width: 761px) and (max-width: 1100px) {
  .fe-news__track { grid-auto-columns: calc((100% - 18px) / 2); }
}

@media (max-width: 900px) {
  .fe-character__heading {
    gap: 22px;
    margin-bottom: 30px;
  }

  .fe-character__tabs {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
    padding: 6px;
    border-radius: 24px;
  }

  .fe-character__tab {
    display: flex;
    min-width: 0;
    height: 92px;
    align-items: flex-start;
    justify-content: center;
    gap: 3px;
    padding: 9px 5px;
    border-radius: 20px;
    font-size: 15px;
  }

  .fe-character__tab-name,
  .fe-character__tab small {
    display: block;
    margin: 0;
    writing-mode: vertical-rl;
    text-orientation: upright;
  }

  .fe-character__tab-name {
    order: 1;
    line-height: 1.15;
  }

  .fe-character__tab small {
    order: 2;
    font-size: 8px;
    line-height: 1;
    letter-spacing: .08em;
  }

  .fe-character__stage { gap: 24px; }
  .fe-character__profile { margin-top: 0; }

  .fe-character__art > .fe-character__q {
    right: clamp(4px, 4vw, 34px);
    bottom: 0;
    width: 132px;
    height: 190px;
  }
}

@media (max-width: 760px) {
  #news { padding-right: 18px !important; padding-left: 18px !important; }
  #news [class*="_newsLayout_"] { margin-top: 22px; }

  .fe-news__carousel { padding-inline: 0; }

  .fe-news__track {
    display: grid;
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: 1fr;
    gap: 0;
    overflow: visible;
    padding: 0;
    scroll-snap-type: none;
  }

  .fe-news__card {
    display: block;
    min-height: 58px;
    padding: 0;
    overflow: visible;
    border: 0;
    border-bottom: 1px solid rgba(111, 119, 145, .14);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .fe-news__card:hover,
  .fe-news__card:focus-visible {
    border-color: rgba(223, 135, 166, .38);
    box-shadow: none;
    transform: none;
  }

  .fe-news__cover { display: none; }

  .fe-news__copy {
    display: grid;
    min-height: 58px;
    grid-template-columns: 132px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 12px 5px;
  }

  .fe-news__copy time {
    display: block;
    color: #d77f9f;
    font-size: 12px;
    letter-spacing: .02em;
    white-space: nowrap;
  }

  .fe-news__copy strong {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: #53586f;
    font-size: 16px;
    line-height: 1.65;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .fe-news__controls { display: none; }
  .fe-news__carousel.has-overflow .fe-news__card:nth-child(n + 6) { display: none; }
  .fe-news__carousel.has-overflow .fe-news__more { display: block; }

  .fe-character { padding-right: 14px; padding-left: 14px; }
  .fe-character__art { height: 530px; min-height: 0; }
  .fe-character__stage { gap: 18px; }
  .fe-character__profile { padding: 28px 22px; }

  .fe-character__art > .fe-character__q {
    right: 4px;
    bottom: -2px;
    width: 112px;
    height: 160px;
  }
}

@media (max-width: 430px) {
  .fe-character__tab {
    height: 86px;
    gap: 1px;
    padding-inline: 2px;
    font-size: 14px;
  }

  .fe-character__tab small { font-size: 7px; }
  .fe-character__art { height: 500px; min-height: 0; }
  .fe-character__profile { padding: 26px 19px; }
}

/* Keep the home key logo centered at every viewport size. */

/* The whole rendered portrait is interactive; no marker is drawn over the character. */
.fe-character__art-interaction {
  position: absolute;
  z-index: 4;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.fe-character__art-interaction[hidden] { display: none; }

.fe-character__art-interaction:focus-visible { outline: 0; }

.fe-character__hand {
  position: absolute;
  z-index: 8;
  top: 50%;
  left: 50%;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.94);
  border-radius: 50%;
  background: rgba(255,255,255,.84);
  box-shadow: 0 8px 22px rgba(70,75,99,.18);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: opacity .16s ease;
  user-select: none;
}

.fe-character__hand.is-visible {
  opacity: 1;
}

.fe-character__dialogue {
  position: absolute;
  z-index: 7;
  top: var(--fe-dialogue-y, 2%);
  right: auto;
  left: var(--fe-dialogue-x, 50%);
  width: var(--fe-dialogue-width, 270px);
  min-height: var(--fe-dialogue-height, auto);
  max-width: calc(100% - 16px);
  box-sizing: border-box;
  padding: 18px 42px 17px 20px;
  border: 1px solid color-mix(in srgb, var(--character-accent, #ef91b1) 28%, white);
  border-radius: 22px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 18px 45px rgba(62,67,91,.16);
  color: #67677a;
  backdrop-filter: blur(12px);
  transform: translateX(-50%);
}

.fe-character__dialogue[hidden] { display: none; }

.fe-character__dialogue strong {
  display: block;
  margin-bottom: 7px;
  color: color-mix(in srgb, var(--character-accent, #ef91b1) 82%, #465069);
  font-size: 14px;
  letter-spacing: .12em;
}

.fe-character__dialogue p {
  margin: 0;
  font-size: clamp(14px, 1.15vw, 16px);
  line-height: 1.7;
}

.fe-character__dialogue button {
  position: absolute;
  top: 10px;
  right: 11px;
  width: 27px;
  height: 27px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: color-mix(in srgb, var(--character-accent, #ef91b1) 10%, white);
  color: #8a8998;
  cursor: pointer;
  font: 400 20px/1 sans-serif;
}

.fe-character__q:disabled { cursor: wait; }

@media (max-width: 620px) {
  .fe-character__hand { width: 38px; height: 38px; }
  .fe-character__dialogue {
    padding: 15px 38px 14px 17px;
  }
}
#top [class*="_heroLogo_"] {
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  margin: 0 !important;
  transform: translate(-50%, -50%) !important;
}

/* Shared site chrome: the logo sits beside the standalone navigation surface. */
:root {
  --font-serif: "JiangChengJieXing", "Noto Serif CJK SC", "Source Han Serif SC", "Songti SC", serif;
  --font-sans: "Noto Sans CJK SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;
  --font-display: Georgia, serif;
}

header[class*="_floatingHeader_"] {
  position: fixed;
  z-index: 60;
  top: 18px;
  left: 50%;
  display: flex;
  width: min(1230px, calc(100% - 34px));
  min-height: 68px;
  align-items: center;
  gap: clamp(10px, 1.4vw, 18px);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: translateX(-50%);
  backdrop-filter: none;
}

header[class*="_floatingHeader_"]::before { display: none; }

.fe-header-brand {
  display: block;
  width: clamp(132px, 14vw, 164px);
  height: 52px;
  flex: 0 0 clamp(132px, 14vw, 164px);
  background: url("../public/assets/fuyuki/brand/logo.png?v=20260831-2") left center / contain no-repeat;
}

.fe-header-nav-shell {
  display: grid;
  min-width: 0;
  min-height: 68px;
  flex: 1 1 auto;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  padding: 8px 26px;
  border: 1px solid rgba(255,255,255,.9);
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 35px rgba(91,101,141,.14), inset 0 0 0 1px rgba(242,172,194,.15);
  color: var(--deep);
  font-family: var(--font-sans);
  backdrop-filter: blur(18px);
}

.fe-header-nav-shell ._desktopNav_1fn1y_43 {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 2.7vw, 42px);
}

.fe-header-nav-shell ._desktopNav_1fn1y_43 a,
.fe-header-nav-shell .fe-rules-link--desktop {
  position: relative;
  display: block;
  min-width: 0;
  height: auto;
  padding: 12px 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #6c667b;
  font: 600 16px/1.2 var(--font-sans);
  letter-spacing: 0;
  white-space: nowrap;
  text-decoration: none;
  transition: color .25s ease;
}

.fe-header-nav-shell ._desktopNav_1fn1y_43 a::after,
.fe-header-nav-shell .fe-rules-link--desktop::after {
  position: absolute;
  right: 50%;
  bottom: 3px;
  left: 50%;
  height: 3px;
  border-radius: 3px;
  background: var(--pink);
  content: '';
  transition: .25s ease;
}

.fe-header-nav-shell ._desktopNav_1fn1y_43 a:hover,
.fe-header-nav-shell ._desktopNav_1fn1y_43 a:focus-visible,
.fe-header-nav-shell ._desktopNav_1fn1y_43 a._active_1fn1y_46,
.fe-header-nav-shell .fe-rules-link--desktop:hover,
.fe-header-nav-shell .fe-rules-link--desktop:focus-visible,
.fe-header-nav-shell .fe-rules-link--desktop[aria-current="page"] { color: #c9678a; }

.fe-header-nav-shell ._desktopNav_1fn1y_43 a:hover::after,
.fe-header-nav-shell ._desktopNav_1fn1y_43 a:focus-visible::after,
.fe-header-nav-shell ._desktopNav_1fn1y_43 a._active_1fn1y_46::after,
.fe-header-nav-shell .fe-rules-link--desktop:hover::after,
.fe-header-nav-shell .fe-rules-link--desktop:focus-visible::after,
.fe-header-nav-shell .fe-rules-link--desktop[aria-current="page"]::after { right: 15%; left: 15%; }

.fe-header-nav-shell .fe-rules-link--desktop[aria-current="page"]::after { bottom: 3px; }

.fe-header-nav-shell ._headerSocials_1fn1y_57 { display: flex; align-items: center; gap: 7px; margin-left: 14px; padding-left: 14px; border-left: 1px solid rgba(105,99,126,.13); }
.fe-header-nav-shell ._headerSocials_1fn1y_57 a { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: #f5f3f7; color: #4f4b5f; text-decoration: none; }
.fe-header-nav-shell ._headerSocials_1fn1y_57 a:first-child span { font: 700 18px/1 var(--font-sans); }

._footer_1fn1y_272 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 510px);
  align-items: center;
  gap: 18px 36px;
  padding: 70px max(5vw,28px) 36px;
  border-radius: 52px 52px 0 0;
  background: #58536f;
  color: #fff;
}

._footer_1fn1y_272 > div { display: block; }
._footer_1fn1y_272 h2 { margin: 0; color: #fff; font-size: 23px; font-weight: 500; }
._footer_1fn1y_272 > div p { margin: 9px 0 0; color: rgba(255,255,255,.72); font-size: 14px; }
._footer_1fn1y_272 nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 13px 22px; max-width: 510px; }
._footer_1fn1y_272 nav a { color: rgba(255,255,255,.82); font: 600 14px/1 var(--font-sans); text-decoration: none; }
._footer_1fn1y_272 nav a:hover, ._footer_1fn1y_272 nav a:focus-visible { color: #ffc4d7; }
._footer_1fn1y_272 > p, ._footer_1fn1y_272 > a { margin: 0; color: rgba(255,255,255,.62); font: 600 13px/1.5 var(--font-sans); }
._footer_1fn1y_272 > .fe-footer-meta { grid-column: 1; }
._footer_1fn1y_272 > .fe-footer-meta > p { margin: 0; color: rgba(255,255,255,.62); font: 600 13px/1.5 var(--font-sans); }
._footer_1fn1y_272 .fe-footer-records { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 8px; }
._footer_1fn1y_272 .fe-footer-records a { color: rgba(255,255,255,.56); font: 500 11px/1.5 var(--font-sans); text-decoration: none; }
._footer_1fn1y_272 .fe-footer-records a:hover, ._footer_1fn1y_272 .fe-footer-records a:focus-visible { color: rgba(255,255,255,.9); }
@media (min-width: 601px) and (max-width: 1040px) {
  header[class*="_floatingHeader_"] { width: min(1230px, calc(100% - 24px)); }
  .fe-header-brand { width: clamp(116px, 14vw, 145px); flex-basis: clamp(116px, 14vw, 145px); }
  .fe-header-nav-shell { padding-right: 12px; padding-left: 12px; }
  .fe-header-nav-shell ._desktopNav_1fn1y_43 { gap: clamp(2px, 1vw, 18px); }
  .fe-header-nav-shell ._desktopNav_1fn1y_43 a,
  .fe-header-nav-shell .fe-rules-link--desktop { padding-right: 1px; padding-left: 1px; font-size: clamp(11px, 1.55vw, 16px); }
  .fe-header-nav-shell ._headerSocials_1fn1y_57 { gap: 3px; margin-left: 6px; padding-left: 6px; border-left: 0; }
  .fe-header-nav-shell ._headerSocials_1fn1y_57 a { width: 31px; height: 31px; }
}

@media (max-width: 600px) {
  header[class*="_floatingHeader_"] {
    display: flex !important;
    top: 16px !important;
    right: 16px !important;
    left: 16px !important;
    width: auto !important;
    max-width: none !important;
    height: 52px !important;
    min-height: 52px !important;
    justify-content: space-between !important;
    gap: 12px;
    overflow: visible !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }
  .fe-header-brand { width: 132px; height: 44px; flex-basis: 132px; }
  .fe-header-nav-shell { display: none; }
  header[class*="_floatingHeader_"] ._menuButton_1fn1y_50,
  header[class*="_floatingHeader_"] button[aria-expanded] { position: relative; z-index: 64; display: grid; width: 52px; height: 52px; flex: 0 0 52px; place-items: center; padding: 0; border: 0; border-radius: 50%; background: rgba(255,244,248,.94); box-shadow: 0 10px 30px rgba(65,72,96,.12); cursor: pointer; }
  header[class*="_floatingHeader_"] button[aria-expanded] span { position: absolute; width: 19px; height: 2px; border-radius: 99px; background: #dc779b; }
  header[class*="_floatingHeader_"] button[aria-expanded] span:first-child { transform: translateY(-5px); }
  header[class*="_floatingHeader_"] button[aria-expanded] span:last-child { transform: translateY(5px); }
  header[class*="_floatingHeader_"] nav[aria-label="移动端导航"] { position: fixed; z-index: 63; inset: 0; display: flex !important; width: 100vw; height: 100svh; min-height: 100svh; align-items: center; justify-content: center; flex-direction: column; gap: clamp(10px, 2.2vh, 18px); padding: 110px 24px 42px; background: rgba(250,249,252,.97); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-16px); transition: opacity .25s ease, visibility .25s ease, transform .25s ease; overflow-y: auto; }
  header[class*="_floatingHeader_"] button[aria-expanded="true"] + nav[aria-label="移动端导航"] { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  header[class*="_floatingHeader_"] nav[aria-label="移动端导航"] > a { display: block; color: #55596f; font: 600 20px/1.2 var(--font-sans); text-decoration: none; }
  header[class*="_floatingHeader_"] nav[aria-label="移动端导航"] > a:hover,
  header[class*="_floatingHeader_"] nav[aria-label="移动端导航"] > a:focus-visible,
  header[class*="_floatingHeader_"] nav[aria-label="移动端导航"] > a._active_1fn1y_46 { color: #c9678a; }
  header[class*="_floatingHeader_"] nav[aria-label="移动端导航"] > .fe-rules-link--mobile { order: 9; }
  ._footer_1fn1y_272 { grid-template-columns: 1fr; gap: 26px; padding: 52px 24px 30px; border-radius: 36px 36px 0 0; }
  ._footer_1fn1y_272 nav { justify-content: flex-start; }
  ._footer_1fn1y_272 > .fe-footer-meta { grid-column: auto; }
}
