/* ============================================================
   TOMOTOMO FRIENDS — FRESH 2026 VISUAL DIRECTION
   A cleaner storybook/app hybrid for kids and families.
   ============================================================ */

:root {
  --fresh-ink: #18365d;
  --fresh-ink-soft: #5d7190;
  --fresh-muted: #7d8ea7;
  --fresh-paper: #ffffff;
  --fresh-cream: #fff8e7;
  --fresh-sky: #e7f8ff;
  --fresh-mint: #eaf9ed;
  --fresh-pink: #fff0f7;
  --fresh-line: rgba(31, 68, 111, .12);
  --fresh-shadow: 0 22px 46px rgba(34, 67, 112, .12);
  --fresh-shadow-soft: 0 12px 26px rgba(34, 67, 112, .1);
  --fresh-radius: 30px;
  --fresh-radius-sm: 18px;
  --fresh-width: 1180px;
}

html {
  background: #f8fcff;
}

body {
  background:
    linear-gradient(90deg, rgba(24, 54, 93, .035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(24, 54, 93, .035) 1px, transparent 1px),
    linear-gradient(180deg, #f7fcff 0%, #fff8e7 46%, #fff1f8 100%);
  background-size: 34px 34px, 34px 34px, 100% 100%;
  color: var(--fresh-ink);
}

body,
button,
input,
select,
textarea {
  font-family: var(--font-body);
}

main {
  background: transparent;
}

.sec::after,
.dark-overlay,
.ft-orb,
.ft-spark,
.oc-float-icons,
.os-float-icons,
.ml-float-icons {
  display: none !important;
}

/* Header: clean family-app navigation */
header {
  position: sticky;
  top: 0;
  z-index: var(--z-nav);
  background: rgba(248, 252, 255, .88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--fresh-line);
}

header > nav {
  position: relative;
  top: auto;
  height: 78px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 clamp(18px, 4vw, 38px);
  gap: clamp(14px, 2.2vw, 26px);
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

header > nav::before,
header > nav::after {
  display: none;
}

.nav-logo {
  width: 58px;
  height: 58px;
  padding: 6px;
  border: 1px solid rgba(31, 68, 111, .1);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--fresh-shadow-soft);
  animation: none;
}

.nav-links {
  gap: 4px;
}

.nav-links li:nth-child(odd) a,
.nav-links li:nth-child(even) a,
.nav-links a,
.nav-links a:hover,
.nav-links a:focus-visible,
.nav-links a:active,
.nav-links a[aria-current="page"] {
  transform: none;
}

.nav-links a {
  min-height: 46px;
  padding: 10px 14px;
  border: 0;
  border-radius: 999px;
  background: transparent !important;
  color: var(--fresh-ink);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0;
  text-shadow: none;
  box-shadow: none;
}

.nav-links a::after {
  content: "";
  left: 50%;
  right: auto;
  top: auto;
  bottom: 5px;
  width: 6px;
  height: 6px;
  opacity: 0;
  transform: translateX(-50%);
  background: #ffb84d;
}

.nav-links a:hover,
.nav-links a:focus-visible {
  color: #0d6c91;
  background: rgba(88, 207, 238, .14) !important;
}

.nav-links a[aria-current="page"] {
  color: #0d6c91;
  background: #e8f8ff !important;
  box-shadow: inset 0 0 0 1px rgba(88, 207, 238, .34);
}

.nav-links a[aria-current="page"]::after {
  opacity: 1;
}

.lang-switch {
  margin-left: 0;
}

.lang-trigger {
  min-height: 44px;
  padding: 8px 34px 8px 16px;
  border: 1px solid var(--fresh-line);
  border-radius: 999px;
  background: #fff;
  color: var(--fresh-ink);
  box-shadow: var(--fresh-shadow-soft);
  text-shadow: none;
}

.lang-trigger::after,
.lang-prefix,
.lang-current {
  color: var(--fresh-ink);
  text-shadow: none;
}

.lang-prefix {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0;
}

.lang-popup {
  border: 1px solid var(--fresh-line);
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--fresh-shadow);
}

.lang-popup-title,
.lang-option {
  color: var(--fresh-ink);
  text-shadow: none;
}

.lang-option {
  background: #f6fbff;
}

.lang-option:hover,
.lang-option:focus-visible,
.lang-option.active {
  background: #fff3c8;
  border-color: rgba(255, 184, 77, .5);
}

.hamburger {
  border: 1px solid var(--fresh-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--fresh-shadow-soft);
}

.hamburger span {
  background: var(--fresh-ink);
}

/* Homepage hero */
#welcome {
  min-height: auto;
  padding: clamp(28px, 5vw, 56px) clamp(18px, 4vw, 36px) clamp(44px, 7vw, 76px);
  background:
    linear-gradient(90deg, rgba(24, 54, 93, .035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(24, 54, 93, .035) 1px, transparent 1px),
    linear-gradient(135deg, #f8fcff 0%, #eafaff 36%, #fff8dc 68%, #fff0f7 100%);
  background-size: 34px 34px, 34px 34px, 100% 100%;
}

#welcome .parallax-bg,
#welcome .cloud-layer,
.hero-svg {
  display: none !important;
}

.hero-stage {
  width: min(var(--fresh-width), 100%);
  min-height: auto;
  height: auto;
  margin: 0 auto;
  padding: 0;
  display: block;
}

.hero-stage::before,
.hero-stage::after {
  display: none;
}

.hero-shell {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(360px, 1.08fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid rgba(255, 255, 255, .9);
  border-radius: 44px;
  background:
    linear-gradient(115deg, rgba(255, 255, 255, .98) 0%, rgba(236, 251, 255, .94) 48%, rgba(255, 248, 220, .96) 100%);
  box-shadow: 0 28px 64px rgba(33, 72, 116, .14);
  overflow: hidden;
  isolation: isolate;
}

.hero-shell::before,
.hero-shell::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.hero-shell::before {
  right: clamp(260px, 31vw, 430px);
  top: 34px;
  width: clamp(120px, 14vw, 190px);
  height: clamp(78px, 10vw, 132px);
  border: 1px solid rgba(255, 184, 77, .28);
  border-radius: 26px;
  background:
    repeating-linear-gradient(135deg, rgba(255, 184, 77, .24) 0 10px, rgba(255, 255, 255, .42) 10px 20px);
  transform: rotate(9deg);
  opacity: .8;
}

.hero-shell::after {
  left: clamp(18px, 4vw, 52px);
  bottom: clamp(18px, 4vw, 42px);
  width: clamp(120px, 16vw, 230px);
  height: 12px;
  border-radius: 999px;
  background: linear-gradient(90deg, #ff7eb6, #ffd866, #7adcf3, #83dd8e);
  opacity: .58;
}

.hero-copy {
  position: relative;
  z-index: 2;
  min-width: 0;
}

.hero-kicker,
.fresh-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 14px;
  border: 1px solid rgba(255, 184, 77, .4);
  border-radius: 999px;
  background: #fff3c8;
  color: #865900;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
  box-shadow: 0 8px 0 rgba(255, 184, 77, .16);
  transform: rotate(-1.5deg);
}

.hero-title {
  margin: 18px 0 14px;
  color: var(--fresh-ink);
  font-family: var(--font-title);
  font-size: clamp(46px, 5.4vw, 76px);
  line-height: .92;
  letter-spacing: 0;
  text-wrap: balance;
  overflow-wrap: anywhere;
  text-shadow: 0 5px 0 rgba(118, 220, 238, .12);
}

.hero-subtitle {
  max-width: 560px;
  padding: 12px 16px;
  border: 1px solid rgba(31, 68, 111, .09);
  border-radius: 18px;
  background: rgba(255, 255, 255, .72);
  color: var(--fresh-ink-soft);
  font-size: clamp(18px, 2.1vw, 24px);
  font-weight: 850;
  line-height: 1.45;
}

.hero-actions,
.hero-mini-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.hero-btn,
.hero-mini-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 20px;
  border-radius: 16px;
  text-decoration: none;
  font-weight: 950;
  line-height: 1.15;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.hero-btn-primary {
  background: linear-gradient(135deg, #18365d 0%, #0d6c91 100%);
  color: #fff;
  box-shadow: 0 14px 0 rgba(24, 54, 93, .1), 0 18px 28px rgba(24, 54, 93, .2);
}

.hero-btn-secondary {
  border: 1px solid rgba(24, 54, 93, .14);
  background: linear-gradient(180deg, #fff 0%, #fff8e7 100%);
  color: var(--fresh-ink);
}

.hero-btn:hover,
.hero-btn:focus-visible {
  transform: translateY(-2px);
}

.hero-btn::after {
  content: "";
  width: 8px;
  height: 8px;
  margin-left: 10px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}

.hero-mini-links {
  margin-top: 14px;
}

.hero-mini-links a {
  min-height: 38px;
  padding: 8px 0;
  color: #0d6c91;
  border-bottom: 2px solid rgba(88, 207, 238, .28);
  border-radius: 0;
}

.hero-media {
  position: relative;
  min-height: clamp(390px, 44vw, 540px);
  border: 8px solid rgba(255, 255, 255, .92);
  border-radius: 38px;
  background:
    linear-gradient(135deg, rgba(255, 216, 102, .24), rgba(122, 220, 243, .2)),
    #fff;
  box-shadow: var(--fresh-shadow);
  overflow: hidden;
  isolation: isolate;
  transform: rotate(1deg);
}

.hero-media::before {
  content: "";
  position: absolute;
  z-index: 2;
  right: 22px;
  top: 20px;
  width: 76px;
  height: 76px;
  border: 1px solid rgba(24, 54, 93, .08);
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(255, 126, 182, .72), rgba(255, 216, 102, .84));
  box-shadow: 0 14px 28px rgba(24, 54, 93, .14);
  transform: rotate(12deg);
}

.hero-world {
  position: absolute;
  inset: 18px;
  width: calc(100% - 36px);
  height: calc(100% - 36px);
  border-radius: 28px;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.04) brightness(1.02);
}

.hero-media::after {
  content: "";
  position: absolute;
  inset: 18px;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .64));
  z-index: 1;
}

.hero-brand-mark {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  width: clamp(132px, 18vw, 210px);
  height: clamp(132px, 18vw, 210px);
  padding: 14px;
  border-radius: 34px;
  background: rgba(255, 255, 255, .9);
  object-fit: contain;
  box-shadow: 0 18px 34px rgba(24, 54, 93, .16);
  transform: translate(-50%, -50%);
}

.hero-pal {
  position: absolute;
  z-index: 4;
  bottom: -8px;
  width: clamp(124px, 16vw, 188px);
  height: auto;
  filter: drop-shadow(0 18px 18px rgba(24, 54, 93, .22));
}

.hero-pal-left {
  left: 18px;
}

.hero-pal-right {
  right: 10px;
}

/* Homepage section layout */
#our-story,
.loc-sec,
#meet-crew,
.char-sec {
  min-height: auto;
  padding: clamp(58px, 8vw, 104px) clamp(18px, 4vw, 36px);
  background: transparent;
  overflow: clip;
}

#our-story .parallax-bg,
.loc-sec .sec-bg,
.char-sec .sec-bg {
  display: none;
}

#our-story .story-inner,
.loc-sec .sec-inner {
  width: min(var(--fresh-width), 100%);
  min-height: auto;
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 62px);
  align-items: center;
  text-align: left;
}

#our-story .story-inner::before,
.loc-sec .sec-inner::before {
  content: "";
  display: block;
  min-height: 360px;
  border-radius: var(--fresh-radius);
  border: 1px solid rgba(255, 255, 255, .86);
  background-image: var(--fresh-image);
  background-size: cover;
  background-position: center;
  box-shadow: var(--fresh-shadow);
}

#our-story {
  --fresh-image: url("images/Background.webp");
  --fresh-accent: #ffb84d;
  background:
    linear-gradient(180deg, #fff8e7 0%, #fff1f8 100%);
}

#our-story .story-inner::before {
  grid-column: 2;
  grid-row: 1;
}

.story-content,
.loc-card {
  position: relative;
  max-width: none;
  width: 100%;
  padding: clamp(28px, 4.4vw, 52px);
  border: 1px solid var(--fresh-line);
  border-radius: var(--fresh-radius);
  background: rgba(255, 255, 255, .92);
  box-shadow: var(--fresh-shadow-soft);
  color: var(--fresh-ink);
  text-align: left;
  overflow: hidden;
}

.story-content::before,
.loc-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  display: block;
  height: 10px;
  background: linear-gradient(90deg, #ff7eb6, #ffd866, #7adcf3, #83dd8e);
}

.story-content::after,
.loc-card::after {
  content: "";
  position: absolute;
  right: -20px;
  top: 30px;
  width: 92px;
  height: 52px;
  border-radius: 16px;
  background: color-mix(in srgb, var(--fresh-accent, #ffb84d) 22%, #fff);
  transform: rotate(12deg);
  opacity: .75;
  pointer-events: none;
}

#our-story .story-title,
.loc-card .sec-title,
.crew-ttl,
.char-txt .sec-title {
  margin-bottom: 16px;
  color: var(--fresh-ink);
  font-family: var(--font-title);
  -webkit-text-stroke: 0 transparent;
  text-shadow: none;
  letter-spacing: 0;
}

#our-story .story-title,
.loc-card .sec-title {
  font-size: clamp(34px, 4.8vw, 62px) !important;
  line-height: 1.02;
  text-align: left;
}

.story-body,
.loc-body {
  max-width: 62ch;
  gap: 14px;
  margin: 0;
}

.story-body p,
.loc-body p,
.crew-body p,
.char-info-card p {
  color: var(--fresh-ink-soft);
  font-size: clamp(15px, 1.45vw, 17px);
  font-weight: 750;
  line-height: 1.72;
  text-shadow: none;
}

.story-closing,
.loc-closing {
  color: var(--fresh-ink) !important;
  border-top: 1px solid var(--fresh-line);
}

.loc-tagline {
  color: var(--fresh-accent) !important;
  margin-bottom: 20px;
  font-family: var(--font-body);
  font-size: clamp(17px, 2vw, 22px);
  font-weight: 950;
  text-align: left;
  text-shadow: none;
}

#tomotomo-land {
  --fresh-image: url("images/Background.webp");
  --fresh-accent: #2eac70;
  background: var(--fresh-mint);
}

#banana-land {
  --fresh-image: url("images/Banana_Land.webp");
  --fresh-accent: #dd8732;
  background: #fff1ce;
}

#magical-village {
  --fresh-image: url("images/Magical_Village.webp");
  --fresh-accent: #d85c9e;
  background: var(--fresh-pink);
}

#grand-town {
  --fresh-image: url("images/grandtown.webp");
  --fresh-accent: #168ab8;
  background: var(--fresh-sky);
}

#tomotomo-land .loc-card .sec-title,
#banana-land .loc-card .sec-title,
#magical-village .loc-card .sec-title,
#grand-town .loc-card .sec-title {
  color: var(--fresh-accent);
}

#banana-land .sec-inner::before,
#grand-town .sec-inner::before {
  grid-column: 2;
  grid-row: 1;
}

.loc-sec .sec-inner::before {
  transform: rotate(-1deg);
}

#banana-land .sec-inner::before,
#grand-town .sec-inner::before {
  transform: rotate(1deg);
}

#banana-land .loc-card,
#grand-town .loc-card {
  grid-column: 1;
  grid-row: 1;
}

/* Crew */
#meet-crew {
  background: #fff;
}

#meet-crew .sec-bg {
  display: none;
}

#meet-crew .sec-inner {
  width: min(var(--fresh-width), 100%);
  min-height: auto;
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) 180px;
  gap: clamp(18px, 4vw, 48px);
  align-items: center;
}

.crew-center {
  padding: clamp(30px, 5vw, 60px);
  border: 1px solid var(--fresh-line);
  border-radius: 36px;
  background: linear-gradient(180deg, #fff 0%, #fff8e7 100%);
  box-shadow: var(--fresh-shadow);
}

.crew-ttl {
  color: #d85c9e;
  font-size: clamp(34px, 5.4vw, 70px);
  line-height: .98;
}

.crew-body {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.crew-chars {
  width: 100%;
  gap: 14px;
}

.crew-char-img {
  width: 100%;
  max-height: 160px;
  object-fit: contain;
  filter: drop-shadow(0 16px 18px rgba(24, 54, 93, .18));
}

/* Character profiles */
.char-sec {
  --fresh-accent: #58cfee;
  background: #f8fcff;
}

#nara { --fresh-accent: #ffb84d; }
#yomin-koko { --fresh-accent: #dd8732; background: #fff1ce; }
#rere { --fresh-accent: #d85c9e; background: #fff0f7; }
#sisi { --fresh-accent: #8d6df2; background: #f5f0ff; }
#bobo { --fresh-accent: #71b85c; background: #ecf8e9; }
#kiki { --fresh-accent: #168ab8; background: #e7f8ff; }

.char-layout,
.char-layout.flip {
  width: min(var(--fresh-width), 100%);
  min-height: auto;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
  gap: clamp(24px, 5vw, 62px);
  align-items: center;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--fresh-line);
  border-radius: 38px;
  background: rgba(255, 255, 255, .9);
  box-shadow: var(--fresh-shadow);
}

.char-layout.flip {
  grid-template-columns: minmax(0, 1.22fr) minmax(280px, .78fr);
}

.char-layout.flip .char-img-wrap {
  grid-column: 2;
}

.char-layout.flip .char-txt {
  grid-column: 1;
  grid-row: 1;
}

.char-img-wrap {
  width: 100%;
  min-height: 430px;
  align-items: end;
  justify-content: center;
  border-radius: 30px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--fresh-accent) 18%, #fff) 0%, #fff 100%);
  overflow: hidden;
}

.char-img-wrap img {
  width: min(92%, 360px);
  height: auto;
  max-height: 500px;
  padding-top: 22px;
  filter: drop-shadow(0 18px 20px rgba(24, 54, 93, .2));
  animation: none !important;
}

.char-txt,
.char-txt.right {
  padding: 0;
  align-items: flex-start;
  text-align: left;
}

.char-txt .sec-title {
  color: var(--fresh-accent);
  font-size: clamp(46px, 7vw, 86px);
}

.char-info-card {
  max-width: none;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.char-role {
  display: inline-flex;
  margin-bottom: 18px !important;
  padding: 8px 14px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--fresh-accent) 14%, #fff);
  color: var(--fresh-ink);
  font-family: var(--font-body);
  font-weight: 950;
}

/* Shared inner-page hero direction */
#os-hero,
#oc-hero,
#ml-hero,
#ct-hero {
  min-height: auto;
  padding: clamp(44px, 7vw, 86px) clamp(18px, 4vw, 36px);
  background:
    linear-gradient(90deg, rgba(24, 54, 93, .035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(24, 54, 93, .035) 1px, transparent 1px),
    linear-gradient(135deg, #f8fcff 0%, #eefaff 54%, #fff8e7 100%) !important;
  background-size: 34px 34px, 34px 34px, 100% 100% !important;
}

#os-hero .os-hero-bg,
#oc-hero .hero-bg,
.ml-hero-bg,
.ct-hero-bg,
#os-hero .cloud-layer,
#oc-hero .cloud-layer,
#ml-hero .cloud-layer {
  display: none !important;
}

#os-hero .sec-inner,
#oc-hero .sec-inner,
#ml-hero .sec-inner,
.ct-hero-inner {
  width: min(var(--fresh-width), 100%);
  min-height: auto !important;
  margin: 0 auto;
  padding: clamp(30px, 5vw, 62px);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
  column-gap: clamp(34px, 5vw, 64px);
  row-gap: 18px;
  align-items: center;
  align-content: center;
  border: 1px solid var(--fresh-line);
  border-radius: 38px;
  background: rgba(255, 255, 255, .92);
  box-shadow: var(--fresh-shadow);
  text-align: left;
  overflow: hidden;
}

#os-hero .sec-inner::before,
#oc-hero .sec-inner::before,
#ml-hero .sec-inner::before,
.ct-hero-inner::before {
  content: "";
  grid-column: 2;
  grid-row: 1 / span 3;
  display: block;
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  z-index: 1 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 330px;
  border-radius: 30px;
  transform: none !important;
  justify-self: stretch;
  align-self: center;
  background-image: var(--fresh-hero-image, url("images/Background.webp"));
  background-repeat: no-repeat !important;
  background-size: cover;
  background-position: center;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
  filter: none !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.5);
  pointer-events: none;
}

#os-hero {
  --fresh-hero-image: url("images/os-beginning.webp");
  --fresh-hero-position: center 44%;
}

#oc-hero {
  --fresh-hero-image: url("images/Background.webp");
  --fresh-hero-position: center;
}

#ml-hero { --fresh-hero-image: url("images/banner-welcome.jpg"); }
#ct-hero { --fresh-hero-image: url("images/Background.webp"); }

#os-hero .sec-inner::before,
#oc-hero .sec-inner::before,
#ml-hero .sec-inner::before,
.ct-hero-inner::before {
  background-position: var(--fresh-hero-position, center) !important;
}

#os-hero .sec-inner::after,
#oc-hero .sec-inner::after,
#ml-hero .sec-inner::after,
#ct-hero::after {
  content: none !important;
  display: none !important;
}

#os-hero .os-hero-inner::after {
  content: none !important;
  display: none !important;
}

.os-hero-badge,
.oc-hero-badge,
.ml-hero-badge,
.ct-badge {
  position: relative;
  z-index: 2;
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  margin: 0;
  padding: 8px 14px;
  border: 1px solid rgba(255, 184, 77, .42);
  border-radius: 999px;
  background: #fff3c8;
  color: #865900;
  box-shadow: none;
  transform: none;
}

.os-hero-title,
.oc-hero-title,
.ml-hero-title,
.ct-title {
  position: relative;
  z-index: 2;
  grid-column: 1;
  grid-row: 2;
  margin: 0;
  color: var(--fresh-ink);
  font-family: var(--font-title);
  font-size: clamp(46px, 7vw, 86px);
  line-height: .94;
  letter-spacing: 0;
  -webkit-text-stroke: 0 transparent;
  text-shadow: none;
}

.os-hero-sub,
.oc-hero-sub,
.ml-hero-sub,
.ct-sub {
  position: relative;
  z-index: 2;
  grid-column: 1;
  grid-row: 3;
  width: auto;
  max-width: 620px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--fresh-ink-soft);
  box-shadow: none;
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.45;
  text-align: left;
}

.scroll-hint,
.ml-scroll-hint {
  display: none;
}

/* Inner page sections and cards */
.os-story-trail-wrap,
.ml-album-trail-wrap {
  top: 78px;
  padding: 12px clamp(18px, 4vw, 36px);
  background: rgba(255, 255, 255, .88);
  border-color: var(--fresh-line);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.os-trail-stop,
.ml-trail-stop {
  border: 1px solid var(--fresh-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--fresh-shadow-soft);
  transform: none !important;
}

.os-trail-stop::before,
.ml-trail-stop::before {
  height: 4px;
}

.os-trail-stop:hover,
.os-trail-stop:focus-visible,
.ml-trail-stop:hover,
.ml-trail-stop:focus-visible {
  transform: translateY(-3px) !important;
}

.os-sec-banner,
.ml-album-banner {
  width: min(var(--fresh-width), calc(100% - 36px));
  height: clamp(300px, 40vw, 500px);
  margin: clamp(34px, 6vw, 72px) auto 0;
  border-radius: 30px;
  border: 1px solid rgba(255, 255, 255, .88);
  box-shadow: var(--fresh-shadow);
}

.os-banner-img,
.ml-album-banner-bg-img {
  filter: saturate(1.04) brightness(.98);
}

.os-banner-title,
.ml-album-banner-title {
  display: inline-block;
  color: #fff;
  font-family: var(--font-title);
  width: auto;
  max-width: calc(100% - 20px);
  padding: 0 8px;
  box-sizing: border-box;
  font-size: clamp(34px, 5.4vw, 64px);
  letter-spacing: 0;
  -webkit-text-stroke: 0 transparent;
  text-shadow: 0 16px 34px rgba(0, 0, 0, .32);
}

.os-card,
.os-card--wide,
.os-hope-card,
.ml-album-card,
.ml-sc-card,
.oc-video-card,
.oc-social-card,
.oc-merch-card,
.oc-spotify-embed,
.oc-yt-channel-banner,
.ct-card,
.ct-faq-item,
.ct-social-link {
  border: 1px solid var(--fresh-line);
  border-radius: 24px;
  background: rgba(255, 255, 255, .94);
  box-shadow: var(--fresh-shadow-soft);
}

#oc-youtube,
#oc-spotify,
#oc-social,
#oc-merch,
#ct-actions,
#ct-faq,
#ct-social {
  background: transparent;
}

#oc-youtube .sec-inner,
#oc-spotify .sec-inner,
#oc-social .sec-inner,
#oc-merch .sec-inner,
.ct-grid,
.ct-faq-wrap,
.ct-social-wrap {
  width: min(var(--fresh-width), 100%);
  padding: clamp(58px, 8vw, 96px) clamp(18px, 4vw, 36px);
}

.oc-yt-title,
.oc-spotify-title,
.oc-social-title,
.oc-merch-title,
.ct-section-title {
  color: var(--fresh-ink);
  font-family: var(--font-title);
  -webkit-text-stroke: 0 transparent;
  text-shadow: none;
}

.oc-video-card:nth-child(odd),
.oc-video-card:nth-child(even) {
  transform: none;
}

.oc-btn,
.oc-yt-subscribe-btn,
.ct-card a,
.btn {
  border-radius: 16px;
  font-family: var(--font-body);
  font-weight: 950;
  letter-spacing: 0;
}

/* Footer */
.ft-wave {
  display: none;
}

footer#contact {
  padding: clamp(58px, 8vw, 92px) clamp(18px, 4vw, 36px) 42px;
  border-top: 1px solid var(--fresh-line);
  background: #fff;
}

footer#contact::before,
footer#contact::after {
  display: none;
}

.ft-inner {
  max-width: var(--fresh-width);
}

.ft-hero,
.ft-grid,
.ft-bottom {
  border: 1px solid var(--fresh-line);
  border-radius: 28px;
  background: #f8fcff;
  box-shadow: var(--fresh-shadow-soft);
}

.ft-hero {
  padding: 22px;
}

.ft-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 18px;
}

.ft-card {
  border: 0;
  border-radius: 20px;
  background: #fff !important;
  box-shadow: none;
}

.ft-bottom {
  padding: 18px 22px;
}

.ft-brand-name,
.ft-tagline,
.ft-card-title,
.ft-nav a,
.ft-platform,
.ft-contact-body,
.ft-copy,
.ft-made {
  color: var(--fresh-ink);
  text-shadow: none;
}

.ft-brand-name {
  font-family: var(--font-title);
  letter-spacing: 0;
}

.ft-logo-glow,
.ft-logo-wrap::after {
  display: none;
}

.ft-logo {
  border-radius: 18px;
  background: #fff;
}

.ft-soc {
  border: 1px solid var(--fresh-line);
  border-radius: 14px;
  background: #fff;
  color: var(--fresh-ink);
  box-shadow: none;
}

.ft-rule {
  display: none;
}

@media (max-width: 1100px) {
  header > nav {
    height: var(--nav-h-mobile);
  }

  .nav-logo {
    width: 54px;
    height: 54px;
  }

  .nav-links {
    top: calc(var(--nav-h-mobile) + var(--safe-top, 0px) + 10px);
    left: max(12px, var(--safe-left, 0px));
    right: max(12px, var(--safe-right, 0px));
    padding: 12px;
    border: 1px solid var(--fresh-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--fresh-shadow);
  }

  .nav-links a {
    justify-content: flex-start;
    width: 100%;
    border-radius: 16px;
    background: #f8fcff !important;
  }

  .nav-links a br {
    display: none;
  }

  .lang-switch {
    right: 64px;
  }

  .os-story-trail-wrap,
  .ml-album-trail-wrap {
    top: var(--nav-h-mobile);
  }
}

@media (max-width: 860px) {
  .hero-shell,
  #our-story .story-inner,
  .loc-sec .sec-inner,
  #meet-crew .sec-inner,
  .char-layout,
  .char-layout.flip,
  #os-hero .sec-inner,
  #oc-hero .sec-inner,
  #ml-hero .sec-inner,
  .ct-hero-inner,
  .ft-grid {
    grid-template-columns: 1fr;
  }

  #our-story .story-inner::before,
  .loc-sec .sec-inner::before,
  #banana-land .sec-inner::before,
  #grand-town .sec-inner::before,
  #banana-land .loc-card,
  #grand-town .loc-card,
  .char-layout.flip .char-img-wrap,
  .char-layout.flip .char-txt,
  #os-hero .sec-inner::before,
  #oc-hero .sec-inner::before,
  #ml-hero .sec-inner::before,
  .ct-hero-inner::before {
    grid-column: auto;
    grid-row: auto;
  }

  .hero-shell {
    gap: 32px;
  }

  .hero-media {
    min-height: 420px;
  }

  .story-content,
  .loc-card,
  #our-story .story-title,
  .loc-card .sec-title,
  .loc-tagline {
    text-align: left;
  }

  .char-img-wrap {
    min-height: 360px;
  }
}

@media (max-width: 680px) {
  body {
    background-size: 28px 28px, 28px 28px, 100% 100%;
  }

  #welcome,
  #our-story,
  .loc-sec,
  #meet-crew,
  .char-sec,
  #os-hero,
  #oc-hero,
  #ml-hero,
  #ct-hero {
    padding-left: 14px;
    padding-right: 14px;
  }

  .hero-title {
    font-size: clamp(38px, 10.7vw, 46px);
    line-height: .95;
  }

  .hero-actions,
  .hero-mini-links {
    width: 100%;
  }

  .hero-btn {
    flex: 1 1 100%;
  }

  .hero-media {
    min-height: 350px;
    border-radius: 28px;
  }

  .hero-world,
  .hero-media::after {
    inset: 12px;
    width: calc(100% - 24px);
    height: calc(100% - 24px);
    border-radius: 22px;
  }

  .hero-brand-mark {
    width: 138px;
    height: 138px;
    border-radius: 24px;
  }

  .hero-pal {
    width: 118px;
  }

  #our-story .story-inner::before,
  .loc-sec .sec-inner::before {
    min-height: 240px;
    border-radius: 22px;
  }

  #os-hero .sec-inner::before,
  #oc-hero .sec-inner::before,
  #ml-hero .sec-inner::before,
  .ct-hero-inner::before {
    aspect-ratio: 16 / 9;
    min-height: 190px;
    border-radius: 22px;
  }

  .story-content,
  .loc-card,
  .crew-center,
  .char-layout,
  .char-layout.flip,
  #os-hero .sec-inner,
  #oc-hero .sec-inner,
  #ml-hero .sec-inner,
  .ct-hero-inner {
    border-radius: 26px;
    padding: 22px;
  }

  #our-story .story-title,
  .loc-card .sec-title,
  .crew-ttl,
  .char-txt .sec-title,
  .os-hero-title,
  .oc-hero-title,
  .ml-hero-title,
  .ct-title {
    font-size: clamp(34px, 10vw, 52px) !important;
  }

  .os-hero-sub,
  .oc-hero-sub,
  .ml-hero-sub,
  .ct-sub {
    font-size: 17px;
  }

  .char-img-wrap {
    min-height: 300px;
  }

  .char-img-wrap img {
    max-height: 340px;
  }

  .ft-hero,
  .ft-bottom {
    align-items: flex-start;
    text-align: left;
  }
}

/* Final text-fit and page-specific corrections for the fresh direction. */
#ct-hero .ct-hero-inner {
  max-width: var(--fresh-width);
  padding: clamp(24px, 3.4vw, 44px);
}

.ct-title {
  font-size: clamp(36px, 4.2vw, 58px);
}

#ct-hero .ct-hero-inner::before {
  min-height: 280px;
}

.os-banner-title,
.ml-album-banner-title {
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.04;
}

.os-sec-banner .os-banner-title,
.os-sec-banner .os-banner-title.reveal,
.os-sec-banner .os-banner-title.reveal.on {
  letter-spacing: 0 !important;
  text-shadow: none !important;
  animation: none !important;
  padding: 8px 14px;
  border: 1px solid rgba(255, 255, 255, .44);
  border-radius: 22px;
  background: rgba(24, 54, 93, .46);
  box-shadow: 0 14px 34px rgba(24, 54, 93, .22);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.os-sec-banner .os-banner-title::before,
.os-sec-banner .os-banner-title::after {
  content: none !important;
  display: none !important;
}

.ml-song-title {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 680px) {
  .os-banner-title,
  .ml-album-banner-title {
    max-width: calc(100% - 18px);
    font-size: clamp(23px, 6vw, 32px) !important;
  }
}

@media (max-width: 860px) {
  #os-hero .sec-inner,
  #oc-hero .sec-inner,
  #ml-hero .sec-inner,
  .ct-hero-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }

  #os-hero .sec-inner::before,
  #oc-hero .sec-inner::before,
  #ml-hero .sec-inner::before,
  .ct-hero-inner::before {
    order: 4;
    width: 100%;
  }
}

/* ============================================================
   STORYBOOK PREMIUM DIRECTION
   Warmer, more playful, and less rigid than the white-card system.
   ============================================================ */

:root {
  --story-blue: #163963;
  --story-cyan: #76dcec;
  --story-sun: #ffd866;
  --story-peach: #ffb77c;
  --story-pink: #ff86b7;
  --story-leaf: #83dd8e;
  --story-lavender: #b99cff;
}

#welcome {
  position: relative;
  min-height: calc(100svh - 78px);
  padding-top: clamp(36px, 5vw, 68px);
  padding-bottom: clamp(42px, 6vw, 80px);
  background:
    linear-gradient(180deg, rgba(255,255,255,.38) 0%, rgba(255,255,255,0) 36%),
    linear-gradient(135deg, #eafaff 0%, #fff8db 48%, #fff0f7 100%);
  overflow: hidden;
}

#welcome::before {
  content: "";
  position: absolute;
  inset: auto -8% -14% -8%;
  height: clamp(180px, 22vw, 320px);
  background:
    radial-gradient(ellipse at 18% 20%, rgba(131,221,142,.34) 0 34%, transparent 35%),
    radial-gradient(ellipse at 48% 26%, rgba(255,216,102,.42) 0 38%, transparent 39%),
    radial-gradient(ellipse at 78% 16%, rgba(118,220,236,.32) 0 34%, transparent 35%);
  opacity: .9;
  pointer-events: none;
}

#welcome::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: clamp(24px, 4vw, 48px);
  width: min(920px, calc(100% - 42px));
  height: 18px;
  border-radius: 999px;
  background:
    repeating-linear-gradient(90deg, var(--story-pink) 0 48px, var(--story-sun) 48px 96px, var(--story-cyan) 96px 144px, var(--story-leaf) 144px 192px);
  transform: translateX(-50%);
  opacity: .22;
  pointer-events: none;
}

.hero-stage {
  position: relative;
  z-index: 1;
}

.hero-shell {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  grid-template-columns: minmax(0, .88fr) minmax(420px, 1.12fr);
}

.hero-shell::before {
  z-index: 0;
  left: 41%;
  right: auto;
  top: -22px;
  width: clamp(160px, 18vw, 250px);
  height: clamp(96px, 11vw, 150px);
  border-radius: 30px;
  background:
    linear-gradient(135deg, rgba(255,216,102,.44), rgba(255,134,183,.28));
}

.hero-shell::after {
  left: clamp(0px, 1vw, 14px);
  bottom: clamp(-8px, 2vw, 10px);
  width: clamp(180px, 22vw, 310px);
  height: 14px;
  opacity: .7;
}

.hero-copy {
  padding: clamp(18px, 2vw, 26px) 0;
}

.hero-kicker,
.fresh-kicker {
  border-width: 2px;
  border-color: rgba(255, 255, 255, .92);
  background: linear-gradient(180deg, #fff7c4 0%, #ffe477 100%);
  box-shadow: 0 8px 0 rgba(215, 146, 32, .18), 0 14px 24px rgba(24, 54, 93, .08);
}

.hero-title {
  max-width: 11.8ch;
  color: var(--story-blue);
  font-size: clamp(50px, 5.25vw, 76px);
  line-height: .88;
  text-shadow: 0 7px 0 rgba(118, 220, 236, .2);
  overflow-wrap: normal;
  word-break: keep-all;
}

.hero-subtitle {
  width: fit-content;
  max-width: min(570px, 100%);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #506b91;
  font-size: clamp(19px, 2.1vw, 26px);
}

.hero-actions {
  gap: 14px;
  margin-top: 30px;
}

.hero-btn {
  min-height: 54px;
  border-radius: 999px;
  padding-inline: 24px;
}

.hero-btn-primary {
  background: linear-gradient(135deg, #173963 0%, #0f80a2 100%);
  box-shadow: 0 7px 0 #102b4e, 0 18px 30px rgba(24,54,93,.18);
}

.hero-btn-secondary {
  border: 2px solid rgba(255,255,255,.92);
  background: linear-gradient(180deg, #fff 0%, #fff2c2 100%);
  box-shadow: 0 7px 0 rgba(228,172,71,.28);
}

.hero-mini-links a {
  color: #116d8a;
  border-bottom-color: rgba(17, 109, 138, .22);
}

.hero-media {
  min-height: clamp(430px, 44vw, 590px);
  border-width: 10px;
  border-radius: 46px;
  box-shadow: 0 30px 54px rgba(24,54,93,.16);
  transform: rotate(-1.1deg);
}

.hero-media::before {
  right: clamp(18px, 3vw, 38px);
  top: clamp(18px, 3vw, 34px);
  border-radius: 28px 34px 24px 36px;
}

.hero-world,
.hero-media::after {
  inset: 16px;
  width: calc(100% - 32px);
  height: calc(100% - 32px);
  border-radius: 34px;
}

.hero-brand-mark {
  border-radius: 32px;
}

.hero-pal {
  width: clamp(150px, 17vw, 214px);
}

.section-progress {
  right: 18px;
}

.progress-dot {
  border-color: rgba(255,255,255,.95);
  box-shadow: 0 7px 18px rgba(24,54,93,.14);
}

#our-story,
#tomotomo-land,
#banana-land,
#magical-village,
#grand-town,
#meet-crew,
.char-sec {
  position: relative;
  padding-top: clamp(72px, 9vw, 128px);
  padding-bottom: clamp(72px, 9vw, 128px);
}

#our-story {
  background: linear-gradient(180deg, #fff7d8 0%, #fff0f7 100%);
}

#tomotomo-land {
  background: linear-gradient(180deg, #ecfbef 0%, #eafaff 100%);
}

#banana-land {
  background: linear-gradient(180deg, #fff1c9 0%, #fff8df 100%);
}

#magical-village {
  background: linear-gradient(180deg, #fff0f7 0%, #f7f1ff 100%);
}

#grand-town {
  background: linear-gradient(180deg, #e7f8ff 0%, #eef7ff 100%);
}

#our-story .story-inner,
.loc-sec .sec-inner {
  grid-template-columns: minmax(0, .96fr) minmax(330px, 1.04fr);
  gap: clamp(34px, 6vw, 82px);
}

.story-content,
.loc-card {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

.story-content::before,
.story-content::after,
.loc-card::before,
.loc-card::after {
  display: none;
}

#our-story .story-inner::before,
.loc-sec .sec-inner::before {
  min-height: clamp(340px, 36vw, 500px);
  border: 10px solid rgba(255,255,255,.9);
  border-radius: 48px;
  box-shadow: 0 28px 48px rgba(24,54,93,.13);
}

#our-story .story-inner::before,
#banana-land .sec-inner::before,
#grand-town .sec-inner::before {
  transform: rotate(1.2deg);
}

#tomotomo-land .sec-inner::before,
#magical-village .sec-inner::before {
  transform: rotate(-1.2deg);
}

#our-story .story-title,
.loc-card .sec-title {
  font-size: clamp(42px, 5.2vw, 76px) !important;
  line-height: .92;
}

#our-story .story-title {
  max-width: 10ch;
}

.loc-card .sec-title {
  max-width: 12.5ch;
  overflow-wrap: anywhere;
}

.story-body,
.loc-body {
  max-width: 58ch;
}

.loc-tagline {
  display: inline-flex;
  width: fit-content;
  padding: 9px 14px;
  border: 2px solid rgba(255,255,255,.95);
  border-radius: 999px;
  background: rgba(255,255,255,.68);
}

#meet-crew {
  background:
    linear-gradient(90deg, rgba(24,54,93,.04) 1px, transparent 1px),
    linear-gradient(180deg, rgba(24,54,93,.04) 1px, transparent 1px),
    linear-gradient(180deg, #fff8d8 0%, #fff 100%);
  background-size: 28px 28px, 28px 28px, 100% 100%;
}

#meet-crew .sec-inner {
  grid-template-columns: minmax(120px, 180px) minmax(0, 1fr) minmax(120px, 180px);
}

.crew-center {
  border: 0;
  border-radius: 44px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94) 0%, rgba(255,240,247,.9) 100%);
  box-shadow: 0 24px 48px rgba(24,54,93,.12);
}

.crew-chars {
  transform: rotate(-2deg);
}

.crew-chars:last-child {
  transform: rotate(2deg);
}

.crew-char-img {
  max-height: 178px;
}

.char-layout,
.char-layout.flip {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.char-img-wrap {
  border: 10px solid rgba(255,255,255,.9);
  border-radius: 44px;
  box-shadow: 0 24px 44px rgba(24,54,93,.13);
  transform: rotate(-1deg);
}

.char-layout.flip .char-img-wrap {
  transform: rotate(1deg);
}

.char-info-card {
  padding: clamp(20px, 3vw, 34px);
  border-radius: 32px;
  background: rgba(255,255,255,.62);
  box-shadow: none;
}

/* Storybook cover treatment for top pages. */
#os-hero,
#oc-hero,
#ml-hero {
  padding-top: clamp(48px, 6vw, 78px);
  padding-bottom: clamp(42px, 6vw, 72px);
}

#os-hero .sec-inner,
#oc-hero .sec-inner,
#ml-hero .sec-inner {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
  overflow: visible;
}

#os-hero .sec-inner::before,
#oc-hero .sec-inner::before,
#ml-hero .sec-inner::before {
  min-height: clamp(320px, 30vw, 430px);
  border: 10px solid rgba(255,255,255,.92);
  border-radius: 44px;
  box-shadow: 0 28px 48px rgba(24,54,93,.14);
}

.os-hero-badge,
.oc-hero-badge,
.ml-hero-badge {
  width: fit-content;
  border-width: 2px;
  background: linear-gradient(180deg, #fff7c5, #ffe57c);
}

.os-hero-title,
.oc-hero-title,
.ml-hero-title {
  max-width: 9ch;
  font-size: clamp(52px, 7.4vw, 96px);
  line-height: .9;
}

.os-hero-sub,
.oc-hero-sub,
.ml-hero-sub {
  max-width: 560px;
  color: #526c91;
}

.os-story-trail-wrap,
.ml-album-trail-wrap {
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.os-story-trail,
.ml-album-trail {
  gap: 14px;
}

.os-trail-stop,
.ml-trail-stop {
  border-width: 2px;
  border-color: rgba(255,255,255,.92);
  border-radius: 999px;
  background: rgba(255,255,255,.86);
}

/* Our Content as a media hub. */
#oc-youtube,
#oc-spotify,
#oc-social,
#oc-merch {
  background: transparent;
}

#oc-youtube .sec-inner,
#oc-spotify .sec-inner,
#oc-social .sec-inner,
#oc-merch .sec-inner {
  width: min(var(--fresh-width), 100%);
  margin-inline: auto;
}

.oc-yt-header,
.oc-spotify-header,
.oc-social-header,
.oc-merch-header {
  text-align: left;
}

.oc-yt-title,
.oc-spotify-title,
.oc-social-title,
.oc-merch-title {
  color: var(--story-blue);
  line-height: .92;
}

.oc-yt-channel-banner,
.oc-spotify-embed,
.oc-social-card,
.oc-merch-card,
.oc-video-card {
  border: 8px solid rgba(255,255,255,.9);
  border-radius: 36px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 22px 42px rgba(24,54,93,.11);
}

@media (max-width: 860px) {
  #welcome {
    min-height: auto;
  }

  .hero-shell {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .hero-title {
    max-width: 12ch;
  }

  .hero-media {
    min-height: 390px;
    transform: none;
  }

  #our-story .story-inner,
  .loc-sec .sec-inner {
    grid-template-columns: 1fr;
  }

  #our-story .story-inner::before,
  .loc-sec .sec-inner::before {
    grid-column: auto;
    grid-row: auto;
    min-height: 290px;
    transform: none;
  }

  #meet-crew .sec-inner {
    grid-template-columns: 1fr;
  }

  .crew-chars,
  .crew-chars:last-child {
    display: flex;
    flex-direction: row;
    transform: none;
  }

  .char-layout,
  .char-layout.flip {
    grid-template-columns: 1fr;
  }

  .char-layout.flip .char-img-wrap,
  .char-layout.flip .char-txt {
    grid-column: auto;
    grid-row: auto;
  }

  #os-hero .sec-inner,
  #oc-hero .sec-inner,
  #ml-hero .sec-inner {
    display: flex;
    gap: 18px;
  }

  #os-hero .sec-inner::before,
  #oc-hero .sec-inner::before,
  #ml-hero .sec-inner::before {
    min-height: 210px;
    aspect-ratio: 16 / 9;
    order: 4;
  }
}

@media (max-width: 680px) {
  .hero-title {
    font-size: clamp(40px, 10.8vw, 46px);
  }

  .hero-shell::before {
    left: auto;
    right: 18px;
    top: 16px;
    width: 94px;
    height: 64px;
  }

  .hero-media {
    min-height: 360px;
    border-radius: 34px;
  }

  .hero-world,
  .hero-media::after {
    border-radius: 24px;
  }

  #our-story .story-title,
  .loc-card .sec-title,
  .os-hero-title,
  .oc-hero-title,
  .ml-hero-title {
    font-size: clamp(38px, 10.4vw, 48px) !important;
  }

  #os-hero .sec-inner::before,
  #oc-hero .sec-inner::before,
  #ml-hero .sec-inner::before {
    min-height: 190px;
    border-width: 8px;
    border-radius: 30px;
  }

  #our-story .story-inner::before,
  .loc-sec .sec-inner::before,
  .char-img-wrap,
  .oc-yt-channel-banner,
  .oc-spotify-embed,
  .oc-social-card,
  .oc-merch-card,
  .oc-video-card {
    border-width: 8px;
    border-radius: 30px;
  }
}

/* ============================================================
   ABOUT REDESIGN: TOMOTOMO LIVING WORLD
   Turns the first screen into an immersive kids story scene.
   ============================================================ */

#welcome {
  position: relative;
  min-height: calc(100svh - 78px);
  display: flex;
  align-items: center;
  padding: 0 clamp(18px, 4vw, 44px) clamp(28px, 4vw, 48px);
  background: #dff7ff;
  isolation: isolate;
  overflow: hidden;
}

#welcome .parallax-bg {
  display: block !important;
  position: absolute;
  inset: -1px 0 -6%;
  z-index: 0;
  background: #dff7ff;
  overflow: hidden;
}

#welcome .parallax-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 34%;
  filter: saturate(1.12) brightness(1.04);
}

#welcome .parallax-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.9) 0%, rgba(255,255,255,.7) 33%, rgba(255,255,255,.2) 66%, rgba(255,255,255,.06) 100%),
    linear-gradient(180deg, rgba(223,247,255,.2) 0%, rgba(255,246,205,.18) 52%, rgba(79,178,101,.26) 100%);
}

#welcome .cloud-layer {
  display: block !important;
  z-index: 1;
  opacity: .82;
}

#welcome::before {
  content: "";
  position: absolute;
  z-index: 2;
  left: -12%;
  right: -12%;
  bottom: -128px;
  height: 276px;
  border-radius: 52% 48% 0 0 / 42% 40% 0 0;
  background:
    linear-gradient(180deg, rgba(188,242,139,.98) 0%, rgba(102,206,112,.98) 100%);
  box-shadow: inset 0 18px 0 rgba(255,255,255,.24);
  pointer-events: none;
}

#welcome::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: -106px;
  width: min(620px, 68vw);
  height: 244px;
  border-radius: 50% 50% 0 0 / 72% 72% 0 0;
  background: linear-gradient(180deg, #ffe9a7 0%, #f6bd65 74%, #e99d46 100%);
  box-shadow: inset 0 12px 0 rgba(255,255,255,.22);
  transform: translateX(-50%);
  pointer-events: none;
}

#welcome .section-progress,
.section-progress {
  display: none !important;
}

#welcome .hero-stage {
  position: relative;
  z-index: 4;
  width: min(1240px, 100%);
  min-height: min(760px, calc(100svh - 128px));
  margin: 0 auto;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

#welcome .hero-shell {
  position: relative;
  width: 100%;
  min-height: min(760px, calc(100svh - 128px));
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(390px, 1fr);
  gap: clamp(18px, 3vw, 46px);
  align-items: center;
  padding: clamp(24px, 4vw, 54px) 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}

#welcome .hero-shell::before,
#welcome .hero-shell::after {
  display: none;
}

#welcome .hero-copy {
  position: relative;
  z-index: 8;
  max-width: 610px;
  margin-bottom: clamp(34px, 6vw, 84px);
  padding: clamp(24px, 3vw, 38px);
  border: 2px solid rgba(255,255,255,.88);
  border-radius: 42px 42px 42px 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.86) 0%, rgba(255,248,218,.78) 100%);
  box-shadow: 0 22px 44px rgba(30,73,111,.16), inset 0 1px 0 rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

#welcome .hero-copy::after {
  content: "";
  position: absolute;
  right: -16px;
  bottom: 76px;
  width: 30px;
  height: 30px;
  border-right: 2px solid rgba(255,255,255,.88);
  border-bottom: 2px solid rgba(255,255,255,.88);
  background: rgba(255,248,218,.78);
  transform: rotate(-45deg);
}

#welcome .hero-kicker {
  min-height: 36px;
  padding: 8px 16px;
  border: 2px solid rgba(255,255,255,.95);
  border-radius: 999px;
  background: linear-gradient(180deg, #fff7bd 0%, #ffd45e 100%);
  color: #7b5600;
  font-size: 13px;
  font-weight: 950;
  box-shadow: 0 8px 0 rgba(202,137,31,.18), 0 14px 24px rgba(30,73,111,.12);
  transform: rotate(-2deg);
}

#welcome .hero-title {
  max-width: none;
  margin: 18px 0 14px;
  color: #153b68;
  font-family: var(--font-title);
  font-size: 5.05rem;
  line-height: .86;
  letter-spacing: 0;
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: keep-all;
  -webkit-text-stroke: 2px rgba(255,255,255,.76);
  paint-order: stroke fill;
  text-shadow:
    0 6px 0 rgba(111,211,237,.35),
    0 14px 28px rgba(22,57,99,.16);
}

#welcome .hero-subtitle {
  width: fit-content;
  max-width: min(520px, 100%);
  padding: 11px 16px;
  border: 2px solid rgba(255,255,255,.9);
  border-radius: 22px;
  background: rgba(255,255,255,.72);
  color: #385c83;
  font-size: 21px;
  font-weight: 900;
  line-height: 1.4;
  box-shadow: 0 10px 22px rgba(30,73,111,.08);
}

#welcome .hero-actions {
  gap: 14px;
  margin-top: 28px;
}

#welcome .hero-btn {
  min-height: 56px;
  padding: 13px 24px;
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,.95);
  font-weight: 950;
  box-shadow: 0 8px 0 rgba(22,57,99,.18), 0 18px 28px rgba(30,73,111,.18);
}

#welcome .hero-btn-primary {
  background: linear-gradient(135deg, #173d67 0%, #0d83a4 100%);
  color: #fff;
}

#welcome .hero-btn-secondary {
  background: linear-gradient(180deg, #fffef7 0%, #ffe99a 100%);
  color: #173d67;
  box-shadow: 0 8px 0 rgba(210,151,39,.28), 0 18px 28px rgba(30,73,111,.12);
}

#welcome .hero-btn:hover,
#welcome .hero-btn:focus-visible {
  transform: translateY(-3px);
}

#welcome .hero-btn:active {
  transform: translateY(3px);
  box-shadow: 0 4px 0 rgba(22,57,99,.18), 0 10px 18px rgba(30,73,111,.14);
}

#welcome .hero-mini-links {
  gap: 10px;
  margin-top: 16px;
}

#welcome .hero-mini-links a {
  min-height: 40px;
  padding: 9px 14px;
  border: 2px solid rgba(255,255,255,.88);
  border-radius: 999px;
  background: rgba(255,255,255,.68);
  color: #11627d;
  box-shadow: 0 9px 18px rgba(30,73,111,.08);
}

#welcome .hero-media {
  position: relative;
  z-index: 5;
  align-self: end;
  justify-self: end;
  width: min(610px, 100%);
  min-height: min(680px, calc(100svh - 164px));
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
  isolation: isolate;
  transform: none;
}

#welcome .hero-world {
  display: none;
}

#welcome .hero-media::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 7%;
  right: 2%;
  top: auto;
  bottom: 22px;
  width: auto;
  height: 92px;
  border: 0;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(34,87,67,.26) 0%, rgba(34,87,67,.13) 46%, transparent 72%);
  box-shadow: none;
  transform: none;
}

#welcome .hero-media::after {
  display: none;
}

#welcome .hero-brand-mark {
  position: absolute;
  z-index: 3;
  left: 53%;
  top: clamp(10px, 3vw, 42px);
  width: 210px;
  height: 210px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  object-fit: contain;
  box-shadow: none;
  filter: drop-shadow(0 18px 22px rgba(22,57,99,.18));
  transform: translateX(-50%) rotate(2deg);
  animation: tomoLogoFloat 5.8s ease-in-out infinite;
}

#welcome .hero-pal {
  position: absolute;
  z-index: 4;
  bottom: 12px;
  height: auto;
  filter: drop-shadow(0 22px 18px rgba(22,57,99,.24));
}

#welcome .hero-pal-left {
  left: 2%;
  width: 280px;
  animation: tomoNaraFloat 4.8s ease-in-out infinite;
}

#welcome .hero-pal-right {
  right: 1%;
  width: 300px;
  animation: tomoYominFloat 4.6s ease-in-out infinite;
}

@keyframes tomoLogoFloat {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(-10px) rotate(-1deg); }
}

@keyframes tomoNaraFloat {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-12px) rotate(-.4deg); }
}

@keyframes tomoYominFloat {
  0%, 100% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-10px) rotate(.4deg); }
}

@media (max-width: 1080px) {
  #welcome .hero-title {
    font-size: 3.9rem;
  }

  #welcome .hero-brand-mark {
    width: 180px;
    height: 180px;
  }

  #welcome .hero-pal-left {
    width: 230px;
  }

  #welcome .hero-pal-right {
    width: 248px;
  }
}

@media (max-width: 920px) {
  #welcome {
    min-height: auto;
    padding: 26px clamp(14px, 4vw, 30px) 42px;
  }

  #welcome .parallax-bg::after {
    background:
      linear-gradient(180deg, rgba(255,255,255,.9) 0%, rgba(255,255,255,.68) 48%, rgba(255,255,255,.18) 100%),
      linear-gradient(180deg, rgba(223,247,255,.16) 0%, rgba(255,246,205,.18) 52%, rgba(79,178,101,.24) 100%);
  }

  #welcome::before {
    bottom: -112px;
    height: 220px;
  }

  #welcome::after {
    bottom: -92px;
    width: min(480px, 82vw);
    height: 190px;
  }

  #welcome .hero-stage,
  #welcome .hero-shell {
    min-height: auto;
  }

  #welcome .hero-stage {
    padding: 0;
  }

  #welcome .hero-shell {
    grid-template-columns: 1fr;
    gap: 8px;
    padding-top: 8px;
  }

  #welcome .hero-copy {
    max-width: 680px;
    margin: 0 auto;
    text-align: center;
    border-radius: 34px;
  }

  #welcome .hero-copy::after {
    display: none;
  }

  #welcome .hero-title {
    max-width: none;
    margin-inline: auto;
    font-size: 4.05rem;
  }

  #welcome .hero-subtitle {
    margin-inline: auto;
  }

  #welcome .hero-actions,
  #welcome .hero-mini-links {
    justify-content: center;
  }

  #welcome .hero-media {
    justify-self: center;
    width: min(560px, 100%);
    min-height: 430px;
    margin-top: 10px;
  }

  #welcome .hero-brand-mark {
    left: 50%;
    top: 0;
    width: 154px;
    height: 154px;
  }

  #welcome .hero-pal-left {
    left: 6%;
    width: 188px;
  }

  #welcome .hero-pal-right {
    right: 6%;
    width: 202px;
  }
}

@media (max-width: 560px) {
  #welcome {
    padding: 18px 14px 34px;
  }

  #welcome .cloud-layer {
    opacity: .58;
  }

  #welcome .hero-copy {
    padding: 20px 18px;
    border-radius: 28px;
  }

  #welcome .hero-kicker {
    font-size: 12px;
    min-height: 32px;
    padding: 7px 13px;
  }

  #welcome .hero-title {
    font-size: 2.78rem;
    line-height: .92;
    -webkit-text-stroke-width: 1px;
  }

  #welcome .hero-subtitle {
    font-size: 17px;
    line-height: 1.42;
  }

  #welcome .hero-actions,
  #welcome .hero-mini-links {
    width: 100%;
  }

  #welcome .hero-btn {
    flex: 1 1 100%;
    min-height: 52px;
  }

  #welcome .hero-mini-links a {
    flex: 1 1 calc(50% - 10px);
    min-width: 0;
  }

  #welcome .hero-media {
    min-height: 345px;
  }

  #welcome .hero-brand-mark {
    width: 124px;
    height: 124px;
  }

  #welcome .hero-pal-left {
    left: -2px;
    width: 146px;
  }

  #welcome .hero-pal-right {
    right: -2px;
    width: 158px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #welcome .hero-brand-mark,
  #welcome .hero-pal-left,
  #welcome .hero-pal-right {
    animation: none;
  }
}

/* ============================================================
   ABOUT HERO V2: INTERACTIVE STORYBOOK OPENING
   Stronger title-screen moment with signboard CTAs.
   ============================================================ */

#welcome {
  min-height: calc(100svh - 78px);
  padding: 0 clamp(18px, 4vw, 46px) clamp(20px, 3vw, 38px);
  align-items: stretch;
  background: #cdf3ff;
}

#welcome .parallax-bg {
  inset: 0 0 -3%;
}

#welcome .parallax-bg-img {
  object-position: center 38%;
  filter: saturate(1.2) contrast(1.03) brightness(1.05);
  transform: scale(1.02);
}

#welcome .parallax-bg::after {
  background:
    linear-gradient(90deg, rgba(255,255,255,.74) 0%, rgba(255,255,255,.38) 32%, rgba(255,255,255,.08) 62%, rgba(255,255,255,.02) 100%),
    linear-gradient(180deg, rgba(199,241,255,.12) 0%, rgba(255,239,164,.06) 48%, rgba(63,173,95,.18) 100%);
}

#welcome::before {
  left: -10%;
  right: -10%;
  bottom: -150px;
  height: 292px;
  border-radius: 48% 52% 0 0 / 44% 38% 0 0;
  background:
    linear-gradient(180deg, rgba(201,247,153,.96) 0%, rgba(95,205,102,.98) 78%);
  box-shadow: inset 0 18px 0 rgba(255,255,255,.26), 0 -18px 36px rgba(35,130,78,.08);
}

#welcome::after {
  display: block !important;
  bottom: -134px;
  width: min(840px, 78vw);
  height: 292px;
  border-radius: 50% 50% 0 0 / 78% 78% 0 0;
  background:
    linear-gradient(180deg, #ffeeb4 0%, #ffc96d 70%, #e49a45 100%);
  box-shadow: inset 0 12px 0 rgba(255,255,255,.24), 0 -18px 34px rgba(124,78,26,.08);
}

#welcome .hero-stage {
  width: min(1320px, 100%);
  min-height: min(790px, calc(100svh - 96px));
}

#welcome .hero-shell {
  min-height: min(790px, calc(100svh - 96px));
  grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr);
  gap: clamp(16px, 2.8vw, 42px);
  align-items: center;
  padding-top: clamp(18px, 3.2vw, 44px);
}

#welcome .hero-copy {
  max-width: 650px;
  margin: 0 0 clamp(78px, 10vw, 134px);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

#welcome .hero-copy::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: -42px;
  top: -54px;
  width: min(690px, calc(100vw - 34px));
  height: 410px;
  background:
    radial-gradient(ellipse at 34% 34%, rgba(255,255,255,.88) 0 48%, rgba(255,255,255,.58) 58%, transparent 72%);
  filter: blur(2px);
  opacity: .82;
  pointer-events: none;
}

#welcome .hero-copy::after {
  display: none;
}

#welcome .hero-kicker {
  min-height: 38px;
  padding: 8px 17px;
  border: 3px solid rgba(255,255,255,.96);
  background: linear-gradient(180deg, #fff6ad 0%, #ffc743 100%);
  color: #7d4e00;
  box-shadow: 0 7px 0 #d99723, 0 16px 24px rgba(22,57,99,.14);
}

#welcome .hero-title {
  max-width: 9.6ch;
  margin: 16px 0 12px;
  color: #143c68;
  font-size: 6.25rem;
  line-height: .82;
  -webkit-text-stroke: 3px rgba(255,255,255,.9);
  text-shadow:
    0 8px 0 #77d9ec,
    0 17px 24px rgba(22,57,99,.18);
}

#welcome .hero-subtitle {
  max-width: 500px;
  padding: 12px 18px;
  border: 3px solid rgba(255,255,255,.96);
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  color: #345c85;
  box-shadow: 0 10px 0 rgba(118,217,236,.18), 0 20px 30px rgba(22,57,99,.1);
}

#welcome .hero-actions {
  position: relative;
  width: min(520px, 100%);
  margin-top: 34px;
  padding: 16px;
  gap: 14px;
  border: 4px solid rgba(255,255,255,.95);
  border-radius: 30px;
  background: linear-gradient(180deg, #ffd96a 0%, #ffb94d 100%);
  box-shadow: 0 12px 0 #c77a2f, 0 24px 34px rgba(22,57,99,.2);
  transform: rotate(-1deg);
}

#welcome .hero-actions::before,
#welcome .hero-actions::after {
  content: "";
  position: absolute;
  z-index: -1;
  bottom: -48px;
  width: 20px;
  height: 62px;
  border-radius: 999px;
  background: linear-gradient(180deg, #a56735 0%, #6f4327 100%);
  box-shadow: inset 4px 0 0 rgba(255,255,255,.16);
}

#welcome .hero-actions::before {
  left: 74px;
}

#welcome .hero-actions::after {
  right: 74px;
}

#welcome .hero-btn {
  flex: 1 1 210px;
  min-height: 58px;
  border-radius: 20px;
  border: 3px solid rgba(255,255,255,.98);
  box-shadow: 0 7px 0 rgba(22,57,99,.18), 0 14px 18px rgba(22,57,99,.12);
}

#welcome .hero-btn-primary {
  background: linear-gradient(180deg, #1d78a4 0%, #145075 100%);
}

#welcome .hero-btn-secondary {
  background: linear-gradient(180deg, #fffdf0 0%, #fff0a8 100%);
}

#welcome .hero-mini-links {
  width: min(460px, 100%);
}

#welcome .hero-mini-links a {
  background: rgba(255,255,255,.84);
  border-color: rgba(255,255,255,.98);
}

#welcome .hero-media {
  width: min(675px, 100%);
  min-height: min(720px, calc(100svh - 126px));
}

#welcome .hero-media::before {
  left: 2%;
  right: -3%;
  bottom: 10px;
  height: 126px;
  background:
    radial-gradient(ellipse at center, rgba(22,70,52,.32) 0%, rgba(22,70,52,.14) 45%, transparent 72%);
}

#welcome .hero-brand-mark {
  left: 50%;
  top: clamp(4px, 2vw, 22px);
  width: 250px;
  height: 250px;
  filter:
    drop-shadow(0 6px 0 rgba(255,255,255,.82))
    drop-shadow(0 22px 24px rgba(22,57,99,.2));
}

#welcome .hero-pal {
  bottom: -2px;
  filter:
    drop-shadow(0 7px 0 rgba(255,255,255,.34))
    drop-shadow(0 26px 20px rgba(22,57,99,.26));
  transition: transform 220ms ease;
}

#welcome .hero-pal-left {
  left: -1%;
  width: 330px;
}

#welcome .hero-pal-right {
  right: -3%;
  width: 370px;
}

#welcome .hero-media:hover .hero-pal-left {
  transform: translateY(-8px) rotate(-2deg);
}

#welcome .hero-media:hover .hero-pal-right {
  transform: translateY(-8px) rotate(2deg);
}

@media (max-width: 1180px) {
  #welcome .hero-title {
    font-size: 5.25rem;
  }

  #welcome .hero-brand-mark {
    width: 210px;
    height: 210px;
  }

  #welcome .hero-pal-left {
    width: 282px;
  }

  #welcome .hero-pal-right {
    width: 318px;
  }
}

@media (max-width: 980px) {
  #welcome {
    padding: 24px clamp(14px, 4vw, 30px) 40px;
  }

  #welcome .parallax-bg::after {
    background:
      linear-gradient(180deg, rgba(255,255,255,.88) 0%, rgba(255,255,255,.62) 42%, rgba(255,255,255,.16) 100%),
      linear-gradient(180deg, rgba(199,241,255,.12) 0%, rgba(255,239,164,.08) 48%, rgba(63,173,95,.18) 100%);
  }

  #welcome .hero-stage,
  #welcome .hero-shell {
    min-height: auto;
  }

  #welcome .hero-shell {
    grid-template-columns: 1fr;
    gap: 18px;
    padding-top: 4px;
  }

  #welcome .hero-copy {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
  }

  #welcome .hero-copy::before {
    left: 50%;
    top: -34px;
    width: min(760px, calc(100vw - 20px));
    height: 365px;
    transform: translateX(-50%);
  }

  #welcome .hero-title {
    max-width: none;
    font-size: 4.35rem;
  }

  #welcome .hero-subtitle,
  #welcome .hero-actions,
  #welcome .hero-mini-links {
    margin-inline: auto;
  }

  #welcome .hero-actions {
    transform: none;
  }

  #welcome .hero-media {
    justify-self: center;
    width: min(640px, 100%);
    min-height: 430px;
    margin-top: 2px;
  }

  #welcome .hero-brand-mark {
    width: 152px;
    height: 152px;
  }

  #welcome .hero-pal-left {
    left: 5%;
    width: 188px;
  }

  #welcome .hero-pal-right {
    right: 4%;
    width: 212px;
  }
}

@media (max-width: 560px) {
  #welcome {
    padding: 18px 14px 36px;
  }

  #welcome::before {
    bottom: -122px;
    height: 220px;
  }

  #welcome::after {
    bottom: -108px;
    width: 92vw;
    height: 210px;
  }

  #welcome .hero-copy::before {
    top: -24px;
    height: 310px;
  }

  #welcome .hero-kicker {
    min-height: 34px;
    padding: 7px 14px;
  }

  #welcome .hero-title {
    margin-top: 14px;
    font-size: 3.05rem;
    line-height: .88;
    -webkit-text-stroke-width: 1.4px;
    text-shadow:
      0 5px 0 #77d9ec,
      0 12px 18px rgba(22,57,99,.16);
  }

  #welcome .hero-subtitle {
    font-size: 16.5px;
    border-width: 2px;
  }

  #welcome .hero-actions {
    padding: 12px;
    border-width: 3px;
    border-radius: 24px;
  }

  #welcome .hero-actions::before,
  #welcome .hero-actions::after {
    bottom: -40px;
    width: 16px;
    height: 52px;
  }

  #welcome .hero-actions::before {
    left: 58px;
  }

  #welcome .hero-actions::after {
    right: 58px;
  }

  #welcome .hero-btn {
    flex-basis: 100%;
    min-height: 52px;
    border-radius: 18px;
  }

  #welcome .hero-mini-links a {
    flex: 1 1 calc(50% - 10px);
  }

  #welcome .hero-media {
    min-height: 340px;
  }

  #welcome .hero-brand-mark {
    width: 118px;
    height: 118px;
  }

  #welcome .hero-pal-left {
    left: -3px;
    width: 145px;
  }

  #welcome .hero-pal-right {
    right: -8px;
    width: 165px;
  }
}

/* ============================================================
   HOME SECTIONS V2: PLAYFUL PARENT-READABLE STORY MAP
   Reworks the flat corporate sections into warm adventure stops.
   ============================================================ */

#our-story,
.loc-sec {
  position: relative;
  padding: clamp(58px, 7vw, 96px) clamp(18px, 4vw, 42px);
  overflow: hidden;
}

#our-story {
  --map-accent: #ffb84d;
  --map-accent-2: #ff7eb6;
  background:
    linear-gradient(180deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,0) 40%),
    linear-gradient(135deg, #fff4bd 0%, #fff1f8 58%, #eafaff 100%);
}

#tomotomo-land {
  --map-accent: #35ad72;
  --map-accent-2: #74dbea;
  background:
    linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,0) 42%),
    linear-gradient(135deg, #e6fbeb 0%, #eafaff 64%, #fff7d7 100%);
}

#banana-land {
  --map-accent: #f4a33d;
  --map-accent-2: #ffd75e;
  background:
    linear-gradient(180deg, rgba(255,255,255,.2), rgba(255,255,255,0) 42%),
    linear-gradient(135deg, #fff0bd 0%, #fff8d8 58%, #eafaff 100%);
}

#magical-village {
  --map-accent: #ef6fae;
  --map-accent-2: #b99cff;
  background:
    linear-gradient(180deg, rgba(255,255,255,.2), rgba(255,255,255,0) 42%),
    linear-gradient(135deg, #fff0f8 0%, #f6efff 58%, #eafaff 100%);
}

#grand-town {
  --map-accent: #2789bd;
  --map-accent-2: #ffd36a;
  background:
    linear-gradient(180deg, rgba(255,255,255,.2), rgba(255,255,255,0) 42%),
    linear-gradient(135deg, #e4f7ff 0%, #f5fbff 54%, #fff2cd 100%);
}

#our-story::before,
.loc-sec::before {
  content: "";
  position: absolute;
  inset: 26px clamp(16px, 4vw, 46px);
  border-radius: 42px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.5) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.45) 1px, transparent 1px);
  background-size: 34px 34px;
  opacity: .42;
  pointer-events: none;
}

#our-story::after,
.loc-sec::after {
  content: "";
  display: block !important;
  position: absolute;
  left: clamp(22px, 6vw, 92px);
  right: clamp(22px, 6vw, 92px);
  top: 50%;
  height: 12px;
  border-radius: 999px;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.95) 0 22px, transparent 22px 42px);
  opacity: .48;
  transform: translateY(-50%) rotate(-2deg);
  pointer-events: none;
}

#our-story .story-inner,
.loc-sec .sec-inner {
  position: relative;
  z-index: 1;
  width: min(1240px, 100%);
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(430px, 1.12fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

#tomotomo-land .sec-inner,
#magical-village .sec-inner {
  grid-template-columns: minmax(430px, 1.1fr) minmax(0, .9fr);
}

#tomotomo-land .loc-card,
#magical-village .loc-card {
  grid-column: 2;
  grid-row: 1;
}

#tomotomo-land .sec-inner::before,
#magical-village .sec-inner::before {
  grid-column: 1;
  grid-row: 1;
}

#banana-land .loc-card,
#grand-town .loc-card,
#our-story .story-content {
  grid-column: 1;
  grid-row: 1;
}

#banana-land .sec-inner::before,
#grand-town .sec-inner::before,
#our-story .story-inner::before {
  grid-column: 2;
  grid-row: 1;
}

#our-story .story-inner::before,
.loc-sec .sec-inner::before {
  position: relative;
  z-index: 2;
  min-height: clamp(360px, 35vw, 520px);
  border: 12px solid rgba(255,255,255,.92);
  border-radius: 42px;
  background-image: var(--fresh-image);
  background-size: cover;
  background-position: center;
  box-shadow:
    0 24px 42px rgba(24,54,93,.16),
    0 0 0 1px rgba(24,54,93,.06);
  transform: rotate(1.5deg);
}

#tomotomo-land .sec-inner::before,
#magical-village .sec-inner::before {
  transform: rotate(-1.5deg);
}

#our-story .story-inner::after,
.loc-sec .sec-inner::after {
  content: "";
  position: absolute;
  z-index: 1;
  width: clamp(160px, 20vw, 260px);
  height: 34px;
  right: clamp(32px, 5vw, 70px);
  top: clamp(6px, 2vw, 24px);
  border: 3px solid rgba(255,255,255,.9);
  border-radius: 999px;
  background:
    linear-gradient(90deg, var(--map-accent), var(--map-accent-2));
  box-shadow: 0 12px 22px rgba(24,54,93,.12);
  transform: rotate(4deg);
}

#tomotomo-land .sec-inner::after,
#magical-village .sec-inner::after {
  left: clamp(32px, 5vw, 70px);
  right: auto;
  transform: rotate(-4deg);
}

.story-content,
.loc-card {
  position: relative;
  z-index: 3;
  max-width: 620px;
  padding: clamp(24px, 3vw, 36px);
  border: 3px solid rgba(255,255,255,.82);
  border-radius: 36px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 18px 34px rgba(24,54,93,.1), inset 0 1px 0 rgba(255,255,255,.9);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  overflow: visible;
}

.story-content::before,
.loc-card::before {
  content: "";
  display: block;
  width: 76px;
  height: 10px;
  margin-bottom: 18px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--map-accent, #ffb84d), var(--map-accent-2, #ff7eb6));
}

.story-content::after,
.loc-card::after {
  content: "";
  position: absolute;
  right: clamp(18px, 3vw, 34px);
  top: -18px;
  width: 66px;
  height: 42px;
  border: 3px solid rgba(255,255,255,.92);
  border-radius: 16px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.9), color-mix(in srgb, var(--map-accent, #ffb84d) 45%, #fff));
  box-shadow: 0 10px 18px rgba(24,54,93,.12);
  transform: rotate(8deg);
}

#tomotomo-land .loc-card::after,
#magical-village .loc-card::after {
  left: clamp(18px, 3vw, 34px);
  right: auto;
  transform: rotate(-8deg);
}

#our-story .story-title,
.loc-card .sec-title {
  max-width: 10.5ch;
  margin: 0 0 14px;
  color: var(--map-accent, var(--fresh-ink)) !important;
  font-size: clamp(42px, 4.9vw, 72px) !important;
  line-height: .88;
  letter-spacing: 0;
  text-shadow:
    0 4px 0 rgba(255,255,255,.9),
    0 12px 22px rgba(24,54,93,.1);
}

#our-story .story-title {
  color: #d48a19 !important;
}

.loc-tagline {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 22px;
  padding: 10px 16px;
  border: 2px solid rgba(255,255,255,.95);
  border-radius: 999px;
  background: rgba(255,255,255,.8);
  color: #335a82 !important;
  font-size: clamp(17px, 1.8vw, 22px);
  line-height: 1.2;
  box-shadow: 0 10px 18px rgba(24,54,93,.08);
}

.story-body,
.loc-body {
  max-width: 60ch;
  display: grid;
  gap: 12px;
}

.story-body p,
.loc-body p {
  margin: 0;
  padding: 0;
  color: #526b8c;
  font-size: clamp(16px, 1.25vw, 18px);
  font-weight: 800;
  line-height: 1.65;
}

.loc-body p:not(.loc-closing),
.story-body p:not(.story-closing) {
  padding: 14px 16px;
  border-left: 6px solid var(--map-accent, #ffb84d);
  border-radius: 18px;
  background: rgba(255,255,255,.58);
}

.story-closing,
.loc-closing {
  margin-top: 6px !important;
  padding: 16px 18px !important;
  border: 2px solid rgba(255,255,255,.9) !important;
  border-left: 8px solid var(--map-accent-2, #ffd36a) !important;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,248,220,.74));
  color: #1f436b !important;
  font-style: italic;
  box-shadow: 0 10px 18px rgba(24,54,93,.07);
}

@media (max-width: 920px) {
  #our-story,
  .loc-sec {
    padding: clamp(42px, 8vw, 70px) 16px;
  }

  #our-story::after,
  .loc-sec::after {
    display: none;
  }

  #our-story .story-inner,
  .loc-sec .sec-inner,
  #tomotomo-land .sec-inner,
  #magical-village .sec-inner {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  #our-story .story-inner::before,
  .loc-sec .sec-inner::before,
  #tomotomo-land .sec-inner::before,
  #magical-village .sec-inner::before,
  #banana-land .sec-inner::before,
  #grand-town .sec-inner::before,
  #our-story .story-content,
  .loc-card,
  #tomotomo-land .loc-card,
  #magical-village .loc-card,
  #banana-land .loc-card,
  #grand-town .loc-card {
    grid-column: auto;
    grid-row: auto;
  }

  #our-story .story-inner::before,
  .loc-sec .sec-inner::before {
    min-height: 290px;
    order: -1;
    transform: none;
  }

  #our-story .story-inner::after,
  .loc-sec .sec-inner::after {
    display: none;
  }

  .story-content,
  .loc-card {
    max-width: none;
  }

  #our-story .story-title,
  .loc-card .sec-title {
    max-width: none;
    font-size: clamp(38px, 9vw, 56px) !important;
  }
}

@media (max-width: 560px) {
  #our-story,
  .loc-sec {
    padding-left: 14px;
    padding-right: 14px;
  }

  .story-content,
  .loc-card {
    padding: 22px 18px;
    border-radius: 28px;
  }

  #our-story .story-inner::before,
  .loc-sec .sec-inner::before {
    min-height: 230px;
    border-width: 8px;
    border-radius: 30px;
  }

  .loc-tagline {
    border-radius: 20px;
    font-size: 16px;
  }

  .story-body p,
  .loc-body p {
    font-size: 15.5px;
    line-height: 1.58;
  }

  .loc-body p:not(.loc-closing),
  .story-body p:not(.story-closing) {
    padding: 12px 13px;
    border-radius: 16px;
  }
}

/* ============================================================
   HOME SECTIONS V3: PREMIUM SOLID PASTEL STORYBOOK
   No gradients, no rainbow styling, softer parent-readable cards.
   ============================================================ */

#our-story,
.loc-sec {
  --premium-bg: #FFF9F0;
  --premium-panel: #FFFFFF;
  --premium-text: #25324D;
  --premium-muted: #5E6B85;
  --premium-border: #F0E3D2;
  --premium-accent: #F6C7A8;
  --premium-accent-2: #F7DFA1;
  --premium-soft: #FFF7E8;
  position: relative;
  padding: clamp(64px, 8vw, 112px) clamp(18px, 4vw, 42px);
  background: var(--premium-bg) !important;
  overflow: hidden;
}

#our-story {
  --premium-bg: #FFF9F0;
  --premium-accent: #F6C7A8;
  --premium-accent-2: #F7DFA1;
  --premium-soft: #FFF1E7;
}

#tomotomo-land {
  --premium-bg: #F5FBF1;
  --premium-accent: #BFE8C6;
  --premium-accent-2: #A9D8F5;
  --premium-soft: #EFF8EA;
}

#banana-land {
  --premium-bg: #FFF7E8;
  --premium-accent: #F7DFA1;
  --premium-accent-2: #F6C7A8;
  --premium-soft: #FFF1D5;
}

#magical-village {
  --premium-bg: #FFF6FA;
  --premium-accent: #F4A7B9;
  --premium-accent-2: #B9A7F4;
  --premium-soft: #F8F1FF;
}

#grand-town {
  --premium-bg: #F3FAFF;
  --premium-accent: #A9D8F5;
  --premium-accent-2: #F7DFA1;
  --premium-soft: #EAF6FD;
}

#our-story::before,
.loc-sec::before {
  content: "";
  position: absolute;
  left: clamp(16px, 5vw, 84px);
  top: clamp(24px, 5vw, 74px);
  width: clamp(180px, 24vw, 340px);
  height: clamp(120px, 17vw, 230px);
  border-radius: 48% 52% 46% 54%;
  background: var(--premium-soft) !important;
  opacity: .92;
  pointer-events: none;
}

#our-story::after,
.loc-sec::after {
  content: "";
  display: block !important;
  position: absolute;
  right: clamp(28px, 7vw, 120px);
  bottom: clamp(24px, 5vw, 72px);
  width: clamp(110px, 13vw, 180px);
  height: clamp(70px, 9vw, 120px);
  border: 2px solid rgba(37,50,77,.06);
  border-radius: 999px;
  background: var(--premium-accent-2) !important;
  opacity: .45;
  transform: rotate(-8deg);
  pointer-events: none;
}

#our-story .story-inner,
.loc-sec .sec-inner {
  position: relative;
  z-index: 1;
  width: min(1180px, 100%);
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(390px, 1.08fr);
  gap: clamp(34px, 6vw, 82px);
  align-items: center;
}

#tomotomo-land .sec-inner,
#magical-village .sec-inner {
  grid-template-columns: minmax(390px, 1.08fr) minmax(0, .92fr);
}

#our-story .story-inner::before,
.loc-sec .sec-inner::before {
  position: relative;
  z-index: 2;
  min-height: clamp(340px, 34vw, 500px);
  border: 10px solid #FFFFFF;
  border-radius: 36px;
  background-image: var(--fresh-image);
  background-size: cover;
  background-position: center;
  box-shadow: 0 18px 34px rgba(37,50,77,.1);
  outline: 1px solid var(--premium-border);
  outline-offset: 0;
  transform: rotate(1deg);
}

#tomotomo-land .sec-inner::before,
#magical-village .sec-inner::before {
  transform: rotate(-1deg);
}

#our-story .story-inner::after,
.loc-sec .sec-inner::after {
  content: "";
  position: absolute;
  z-index: 3;
  width: 72px;
  height: 72px;
  right: clamp(18px, 4vw, 52px);
  top: clamp(-12px, 1vw, 8px);
  border: 8px solid #FFFFFF;
  border-radius: 24px;
  background: var(--premium-accent) !important;
  box-shadow: 0 12px 22px rgba(37,50,77,.09);
  transform: rotate(8deg);
}

#tomotomo-land .sec-inner::after,
#magical-village .sec-inner::after {
  left: clamp(18px, 4vw, 52px);
  right: auto;
  transform: rotate(-8deg);
}

.story-content,
.loc-card {
  position: relative;
  z-index: 4;
  max-width: 610px;
  padding: clamp(26px, 3.4vw, 42px);
  border: 1px solid var(--premium-border);
  border-radius: 30px;
  background: var(--premium-panel) !important;
  box-shadow: 0 16px 30px rgba(37,50,77,.08);
  color: var(--premium-text);
  overflow: visible;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.story-content::before,
.loc-card::before {
  content: "";
  display: block;
  width: 58px;
  height: 58px;
  margin: 0 0 18px;
  border: 8px solid #FFF9F0;
  border-radius: 22px;
  background: var(--premium-accent) !important;
  box-shadow: 0 8px 14px rgba(37,50,77,.08);
  transform: rotate(-6deg);
}

.story-content::after,
.loc-card::after {
  content: "";
  position: absolute;
  right: 26px;
  top: 26px;
  width: 54px;
  height: 22px;
  border-radius: 999px;
  background: var(--premium-accent-2) !important;
  opacity: .76;
  box-shadow: none;
  transform: rotate(8deg);
}

#tomotomo-land .loc-card::after,
#magical-village .loc-card::after {
  left: auto;
  right: 26px;
  transform: rotate(-8deg);
}

#our-story .story-title,
.loc-card .sec-title {
  max-width: 11ch;
  margin: 0 0 14px;
  color: var(--premium-text) !important;
  font-size: clamp(38px, 4.4vw, 66px) !important;
  line-height: .94;
  letter-spacing: 0;
  text-shadow: none !important;
}

.loc-tagline {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 22px;
  padding: 10px 15px;
  border: 1px solid var(--premium-border);
  border-radius: 999px;
  background: var(--premium-soft) !important;
  color: var(--premium-text) !important;
  font-size: clamp(16px, 1.6vw, 20px);
  font-weight: 900;
  line-height: 1.25;
  box-shadow: none;
}

.story-body,
.loc-body {
  max-width: 62ch;
  display: grid;
  gap: 12px;
}

.story-body p,
.loc-body p {
  margin: 0;
  color: var(--premium-muted) !important;
  font-size: clamp(16px, 1.25vw, 18px);
  font-weight: 750;
  line-height: 1.66;
  text-shadow: none !important;
}

.loc-body p:not(.loc-closing),
.story-body p:not(.story-closing) {
  position: relative;
  padding: 15px 16px 15px 20px;
  border: 1px solid var(--premium-border);
  border-left: 8px solid var(--premium-accent);
  border-radius: 18px;
  background: #FFFFFF !important;
  box-shadow: 0 8px 18px rgba(37,50,77,.045);
}

.loc-body p:not(.loc-closing)::before,
.story-body p:not(.story-closing)::before {
  content: "";
  position: absolute;
  left: -14px;
  top: 18px;
  width: 18px;
  height: 18px;
  border: 4px solid #FFFFFF;
  border-radius: 50%;
  background: var(--premium-accent-2);
}

.story-closing,
.loc-closing {
  margin-top: 4px !important;
  padding: 16px 18px !important;
  border: 1px solid var(--premium-border) !important;
  border-left: 8px solid var(--premium-accent-2) !important;
  border-radius: 20px;
  background: var(--premium-soft) !important;
  color: var(--premium-text) !important;
  font-style: italic;
  box-shadow: none;
}

#banana-land .loc-card,
#grand-town .loc-card,
#our-story .story-content {
  grid-column: 1;
  grid-row: 1;
}

#banana-land .sec-inner::before,
#grand-town .sec-inner::before,
#our-story .story-inner::before {
  grid-column: 2;
  grid-row: 1;
}

#tomotomo-land .loc-card,
#magical-village .loc-card {
  grid-column: 2;
  grid-row: 1;
}

#tomotomo-land .sec-inner::before,
#magical-village .sec-inner::before {
  grid-column: 1;
  grid-row: 1;
}

@media (max-width: 920px) {
  #our-story,
  .loc-sec {
    padding: clamp(46px, 8vw, 72px) 16px;
  }

  #our-story .story-inner,
  .loc-sec .sec-inner,
  #tomotomo-land .sec-inner,
  #magical-village .sec-inner {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  #our-story .story-inner::before,
  .loc-sec .sec-inner::before,
  #tomotomo-land .sec-inner::before,
  #magical-village .sec-inner::before,
  #banana-land .sec-inner::before,
  #grand-town .sec-inner::before,
  #our-story .story-content,
  .loc-card,
  #tomotomo-land .loc-card,
  #magical-village .loc-card,
  #banana-land .loc-card,
  #grand-town .loc-card {
    grid-column: auto;
    grid-row: auto;
  }

  #our-story .story-inner::before,
  .loc-sec .sec-inner::before {
    min-height: 290px;
    order: -1;
    transform: none;
  }

  #our-story .story-inner::after,
  .loc-sec .sec-inner::after {
    width: 58px;
    height: 58px;
    right: 20px;
    top: 236px;
  }

  .story-content,
  .loc-card {
    max-width: none;
  }

  #our-story .story-title,
  .loc-card .sec-title {
    max-width: none;
    font-size: clamp(36px, 8vw, 54px) !important;
  }
}

@media (max-width: 560px) {
  #our-story,
  .loc-sec {
    padding-left: 14px;
    padding-right: 14px;
  }

  #our-story::before,
  .loc-sec::before {
    width: 190px;
    height: 128px;
  }

  #our-story::after,
  .loc-sec::after {
    width: 96px;
    height: 62px;
  }

  .story-content,
  .loc-card {
    padding: 22px 18px;
    border-radius: 26px;
  }

  .story-content::before,
  .loc-card::before {
    width: 46px;
    height: 46px;
    border-width: 6px;
    border-radius: 18px;
  }

  #our-story .story-inner::before,
  .loc-sec .sec-inner::before {
    min-height: 230px;
    border-width: 8px;
    border-radius: 28px;
  }

  #our-story .story-inner::after,
  .loc-sec .sec-inner::after {
    display: none;
  }

  .loc-tagline {
    border-radius: 18px;
    font-size: 16px;
  }

  .story-body p,
  .loc-body p {
    font-size: 15.5px;
    line-height: 1.58;
  }

  .loc-body p:not(.loc-closing),
  .story-body p:not(.story-closing) {
    padding: 12px 13px 12px 16px;
    border-left-width: 6px;
    border-radius: 16px;
  }
}

/* ============================================================
   OUR STORY SECTION: PREMIUM SOLID PASTEL STORYBOOK REDESIGN
   Scoped to the homepage intro narrative.
   ============================================================ */

#our-story.storybook-section {
  --story-cream: #FFF9F0;
  --story-ivory: #FFF7E8;
  --story-text: #25324D;
  --story-muted: #5E6B85;
  --story-border: #F0E3D2;
  --story-peach: #F6C7A8;
  --story-pink: #F4A7B9;
  --story-lavender: #B9A7F4;
  --story-sky: #A9D8F5;
  --story-mint: #BFE8C6;
  --story-yellow: #F7DFA1;
  position: relative;
  min-height: auto;
  padding: clamp(72px, 8vw, 118px) clamp(18px, 4vw, 44px);
  background: var(--story-cream) !important;
  color: var(--story-text);
  isolation: isolate;
  overflow: hidden;
}

#our-story.storybook-section .parallax-bg {
  display: none;
}

#our-story.storybook-section::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: clamp(-76px, -5vw, -28px);
  top: clamp(34px, 7vw, 88px);
  width: clamp(210px, 24vw, 360px);
  height: clamp(146px, 17vw, 240px);
  border: 1px solid rgba(37, 50, 77, .04);
  border-radius: 44% 56% 52% 48%;
  background: var(--story-peach) !important;
  opacity: .48;
  pointer-events: none;
}

#our-story.storybook-section::after {
  content: "";
  display: block !important;
  position: absolute;
  z-index: 0;
  right: clamp(-64px, -4vw, -22px);
  bottom: clamp(42px, 7vw, 98px);
  width: clamp(190px, 21vw, 320px);
  height: clamp(104px, 12vw, 188px);
  border: 1px solid rgba(37, 50, 77, .04);
  border-radius: 999px;
  background: var(--story-sky) !important;
  opacity: .42;
  transform: rotate(-7deg);
  pointer-events: none;
}

.story-bg-shapes {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.story-shape,
.story-cloud {
  position: absolute;
  display: block;
}

.story-cloud {
  width: clamp(96px, 12vw, 172px);
  height: auto;
  opacity: .34;
  filter: saturate(.82);
}

.story-cloud-one {
  left: clamp(18px, 8vw, 118px);
  top: clamp(22px, 5vw, 62px);
}

.story-cloud-two {
  right: clamp(14px, 9vw, 126px);
  top: clamp(18px, 4vw, 54px);
}

.story-blob {
  border-radius: 44% 56% 52% 48%;
}

.story-blob-peach {
  right: 44%;
  bottom: 8%;
  width: clamp(132px, 15vw, 228px);
  height: clamp(84px, 10vw, 150px);
  background: var(--story-peach);
  opacity: .32;
  transform: rotate(12deg);
}

.story-blob-sky {
  left: 45%;
  top: 10%;
  width: clamp(92px, 10vw, 152px);
  height: clamp(76px, 8vw, 126px);
  border-radius: 54% 46% 42% 58%;
  background: var(--story-sky);
  opacity: .28;
  transform: rotate(-10deg);
}

.story-leaf {
  width: clamp(34px, 4vw, 58px);
  height: clamp(48px, 6vw, 78px);
  border-radius: 72% 0 72% 0;
}

.story-leaf-mint {
  right: clamp(18px, 5vw, 80px);
  top: 36%;
  background: var(--story-mint);
  opacity: .72;
  transform: rotate(28deg);
}

.story-flower {
  left: clamp(20px, 5vw, 82px);
  bottom: 20%;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--story-pink);
  opacity: .62;
  box-shadow:
    20px 0 0 var(--story-pink),
    -20px 0 0 var(--story-pink),
    0 20px 0 var(--story-pink),
    0 -20px 0 var(--story-pink),
    0 0 0 8px var(--story-yellow);
}

.story-star {
  width: clamp(28px, 4vw, 46px);
  height: clamp(28px, 4vw, 46px);
  clip-path: polygon(50% 0, 62% 35%, 100% 50%, 62% 64%, 50% 100%, 38% 64%, 0 50%, 38% 35%);
}

.story-star-yellow {
  right: 36%;
  top: 16%;
  background: var(--story-yellow);
  opacity: .82;
  transform: rotate(14deg);
}

.story-trail {
  left: clamp(12px, 6vw, 92px);
  top: 48%;
  width: clamp(118px, 14vw, 188px);
  border-top: 3px dashed var(--story-pink);
  opacity: .34;
  transform: rotate(-12deg);
}

.story-dot-cluster {
  right: clamp(26px, 7vw, 120px);
  bottom: 22%;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--story-lavender);
  opacity: .5;
  box-shadow:
    22px -16px 0 var(--story-peach),
    46px 4px 0 var(--story-mint),
    12px 24px 0 var(--story-yellow),
    58px 30px 0 var(--story-pink);
}

#our-story.storybook-section .story-inner {
  position: relative;
  z-index: 1;
  width: min(1180px, 100%);
  min-height: auto;
  margin-inline: auto;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(360px, 1.05fr);
  gap: clamp(34px, 5.8vw, 76px);
  align-items: start;
  text-align: left;
}

#our-story.storybook-section .story-inner::before,
#our-story.storybook-section .story-inner::after {
  display: none !important;
}

#our-story.storybook-section .story-content {
  position: relative;
  z-index: 2;
  grid-column: auto;
  grid-row: auto;
  width: 100%;
  max-width: none;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
  color: var(--story-text);
  overflow: visible;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

#our-story.storybook-section .story-content::before,
#our-story.storybook-section .story-content::after {
  display: none !important;
}

.story-eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  min-height: 38px;
  margin-bottom: 16px;
  padding: 8px 14px;
  border: 1px solid var(--story-border);
  border-radius: 999px;
  background: #FFFFFF;
  color: var(--story-text);
  font-size: clamp(13px, 1.1vw, 15px);
  font-weight: 950;
  line-height: 1.25;
  box-shadow: 0 8px 18px rgba(37, 50, 77, .06);
}

#our-story.storybook-section .story-title {
  max-width: 11ch;
  margin: 0 0 18px;
  color: var(--story-text) !important;
  font-family: var(--font-title);
  font-size: clamp(40px, 5vw, 72px) !important;
  line-height: .95;
  letter-spacing: 0;
  text-align: left;
  text-shadow: none !important;
  overflow-wrap: normal;
}

.story-lede {
  max-width: 58ch;
  margin: 0 0 24px;
  color: var(--story-muted);
  font-size: clamp(17px, 1.45vw, 20px);
  font-weight: 800;
  line-height: 1.62;
}

#our-story.storybook-section .story-body {
  max-width: none;
  display: grid;
  gap: 14px;
  margin: 0;
}

.story-info-card {
  --card-accent: var(--story-peach);
  position: relative;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 18px;
  border: 1px solid var(--story-border);
  border-radius: 24px;
  background: #FFFFFF;
  box-shadow: 0 12px 24px rgba(37, 50, 77, .065);
}

.story-card-peach {
  --card-accent: var(--story-peach);
}

.story-card-sky {
  --card-accent: var(--story-sky);
}

.story-card-lavender {
  --card-accent: var(--story-lavender);
}

.story-info-card::before {
  content: "";
  position: absolute;
  inset: 12px 12px auto auto;
  width: 42px;
  height: 14px;
  border-radius: 999px;
  background: var(--card-accent);
  opacity: .34;
}

.story-card-icon {
  position: relative;
  width: 46px;
  height: 46px;
  border: 1px solid var(--story-border);
  border-radius: 16px;
  background: var(--card-accent);
  box-shadow: inset 0 0 0 7px #FFFFFF;
}

.story-card-icon::before,
.story-card-icon::after {
  content: "";
  position: absolute;
  background: #FFFFFF;
}

.story-card-icon::before {
  left: 14px;
  top: 8px;
  width: 10px;
  height: 28px;
  border-radius: 999px;
  transform: rotate(45deg);
}

.story-card-icon::after {
  left: 8px;
  top: 14px;
  width: 28px;
  height: 10px;
  border-radius: 999px;
  transform: rotate(45deg);
}

.story-info-card h3 {
  margin: 0 0 6px;
  color: var(--story-text);
  font-size: clamp(18px, 1.6vw, 22px);
  font-weight: 950;
  line-height: 1.16;
  letter-spacing: 0;
}

#our-story.storybook-section .story-info-card p {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
  color: var(--story-muted) !important;
  font-size: clamp(15.5px, 1.2vw, 17px);
  font-weight: 750;
  line-height: 1.58;
  text-shadow: none !important;
}

#our-story.storybook-section .story-info-card p::before {
  display: none;
}

.story-values {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.story-value-chip {
  --chip-bg: var(--story-ivory);
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid var(--story-border);
  border-radius: 999px;
  background: var(--chip-bg);
  color: var(--story-text);
  font-size: 14px;
  font-weight: 950;
  line-height: 1;
  white-space: nowrap;
}

.chip-pink {
  --chip-bg: #FCE6EC;
}

.chip-mint {
  --chip-bg: #EAF8ED;
}

.chip-lavender {
  --chip-bg: #F1EDFF;
}

.chip-yellow {
  --chip-bg: #FFF3CE;
}

.chip-mark {
  position: relative;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #FFFFFF;
  box-shadow: inset 0 0 0 4px currentColor;
  opacity: .78;
}

.story-visual {
  position: relative;
  z-index: 2;
  grid-column: auto;
  grid-row: auto;
  margin: clamp(58px, 6.6vw, 92px) 0 0;
}

.story-image-frame {
  position: relative;
  min-height: 0;
  padding: clamp(10px, 1.5vw, 16px);
  border: 1px solid var(--story-border);
  border-radius: 36px;
  background: #FFFFFF;
  box-shadow: 0 20px 36px rgba(37, 50, 77, .1);
  transform: rotate(1.1deg);
}

.story-image-frame::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: clamp(18px, 3vw, 34px) clamp(-14px, -1vw, -8px) clamp(-14px, -1vw, -8px) clamp(24px, 3vw, 44px);
  border-radius: 34px;
  background: var(--story-mint);
  opacity: .62;
  transform: rotate(-3deg);
}

.story-image-frame::after {
  content: "";
  position: absolute;
  left: clamp(22px, 4vw, 46px);
  top: -16px;
  width: clamp(92px, 9vw, 136px);
  height: 34px;
  border: 1px solid rgba(37, 50, 77, .04);
  border-radius: 999px;
  background: var(--story-yellow);
  opacity: .86;
  transform: rotate(-4deg);
}

.story-world-img {
  width: 100%;
  height: auto;
  aspect-ratio: 1920 / 823;
  border: 1px solid var(--story-border);
  border-radius: 26px;
  background: #EAF6FD;
  object-fit: contain;
  object-position: center;
}

.story-character {
  position: absolute;
  z-index: 2;
  bottom: clamp(-10px, -1vw, -5px);
  width: clamp(112px, 14vw, 176px);
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 14px 16px rgba(37, 50, 77, .14));
}

.story-character-nara {
  left: clamp(4px, 2vw, 24px);
}

.story-character-yomin {
  right: clamp(2px, 2vw, 22px);
  width: clamp(110px, 13vw, 168px);
}

.story-frame-badge {
  position: absolute;
  right: clamp(20px, 4vw, 44px);
  top: clamp(26px, 4vw, 54px);
  width: clamp(54px, 6vw, 82px);
  height: clamp(54px, 6vw, 82px);
  border: 8px solid #FFFFFF;
  border-radius: 28px;
  background: var(--story-pink);
  box-shadow: 0 10px 20px rgba(37, 50, 77, .09);
  transform: rotate(10deg);
}

.story-visual figcaption {
  width: fit-content;
  max-width: min(440px, 100%);
  margin: 16px auto 0;
  padding: 10px 14px;
  border: 1px solid var(--story-border);
  border-radius: 999px;
  background: #FFFFFF;
  color: var(--story-muted);
  font-size: clamp(13px, 1.1vw, 15px);
  font-weight: 900;
  line-height: 1.35;
  text-align: center;
  box-shadow: 0 8px 18px rgba(37, 50, 77, .055);
}

@media (max-width: 960px) {
  #our-story.storybook-section {
    padding: clamp(54px, 8vw, 78px) 16px;
  }

  #our-story.storybook-section .story-inner {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  #our-story.storybook-section .story-title {
    max-width: 12ch;
    font-size: clamp(38px, 8vw, 58px) !important;
  }

  .story-visual {
    order: -1;
    margin-top: 0;
  }

  .story-image-frame {
    min-height: 0;
    transform: none;
  }

  .story-world-img {
    height: auto;
  }

  .story-character {
    width: clamp(96px, 20vw, 148px);
  }

  .story-character-yomin {
    width: clamp(92px, 19vw, 142px);
  }
}

@media (max-width: 620px) {
  #our-story.storybook-section::before {
    left: -110px;
    opacity: .34;
  }

  #our-story.storybook-section::after {
    right: -118px;
    opacity: .3;
  }

  .story-cloud-two,
  .story-blob-sky,
  .story-dot-cluster {
    display: none;
  }

  #our-story.storybook-section .story-title {
    max-width: none;
    font-size: clamp(34px, 10vw, 46px) !important;
    line-height: 1;
  }

  .story-lede {
    font-size: 16px;
    line-height: 1.58;
  }

  .story-info-card {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 12px;
    padding: 15px;
    border-radius: 22px;
  }

  .story-card-icon {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    box-shadow: inset 0 0 0 6px #FFFFFF;
  }

  .story-info-card h3 {
    font-size: 17px;
  }

  #our-story.storybook-section .story-info-card p {
    font-size: 15px;
    line-height: 1.55;
  }

  .story-values {
    gap: 8px;
  }

  .story-value-chip {
    min-height: 34px;
    font-size: 13px;
    padding: 7px 10px;
  }

  .story-image-frame {
    padding: 8px;
    border-radius: 28px;
  }

  .story-world-img {
    height: auto;
    border-radius: 22px;
  }

  .story-frame-badge {
    display: none;
  }

  .story-visual figcaption {
    border-radius: 18px;
  }
}

@media (max-width: 420px) {
  .story-info-card {
    grid-template-columns: 1fr;
  }

  .story-card-icon {
    width: 38px;
    height: 38px;
  }

  .story-character {
    width: 86px;
  }

  .story-character-yomin {
    width: 82px;
  }
}

/* ============================================================
   HERO CTA REFINEMENT: PREMIUM PASTEL ACTIONS
   Replaces the older signboard treatment with a cleaner family UI.
   ============================================================ */

#welcome .hero-actions {
  position: relative;
  width: min(500px, 100%);
  margin-top: 28px;
  padding: 10px;
  gap: 10px;
  border: 1px solid #F0E3D2;
  border-radius: 24px;
  background: #FFF9F0;
  box-shadow: 0 14px 28px rgba(37, 50, 77, .1);
  transform: none;
}

#welcome .hero-actions::before,
#welcome .hero-actions::after {
  display: none !important;
}

#welcome .hero-btn {
  flex: 1 1 190px;
  min-height: 54px;
  padding: 13px 18px;
  border: 1px solid #F0E3D2;
  border-radius: 18px;
  box-shadow: none;
  font-size: clamp(14px, 1.3vw, 16px);
  line-height: 1.15;
  transform: none;
}

#welcome .hero-btn-primary {
  background: #25324D;
  color: #FFFFFF;
}

#welcome .hero-btn-secondary {
  background: #FFFFFF;
  color: #25324D;
}

#welcome .hero-btn-primary::after,
#welcome .hero-btn-secondary::after {
  opacity: .75;
}

#welcome .hero-btn:hover,
#welcome .hero-btn:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 10px 18px rgba(37, 50, 77, .1);
}

#welcome .hero-btn:active {
  transform: translateY(0);
  box-shadow: none;
}

#welcome .hero-mini-links {
  width: min(420px, 100%);
  gap: 8px;
  margin-top: 12px;
}

#welcome .hero-mini-links a {
  flex: 0 1 auto;
  min-height: 34px;
  padding: 8px 12px;
  border: 1px solid #DCEEF7;
  border-radius: 999px;
  background: #EAF6FD;
  color: #25324D;
  box-shadow: none;
  font-size: 13px;
  font-weight: 900;
}

#welcome .hero-mini-links a:hover,
#welcome .hero-mini-links a:focus-visible {
  background: #FFF9F0;
  border-color: #F0E3D2;
  color: #25324D;
  transform: translateY(-1px);
}

@media (max-width: 560px) {
  #welcome .hero-actions {
    width: min(360px, 100%);
    margin-top: 22px;
    padding: 8px;
    border-radius: 22px;
  }

  #welcome .hero-btn {
    flex-basis: 100%;
    min-height: 50px;
    border-radius: 16px;
  }

  #welcome .hero-mini-links {
    justify-content: center;
  }

  #welcome .hero-mini-links a {
    flex: 0 1 auto;
    min-height: 32px;
    padding: 7px 10px;
    font-size: 12.5px;
  }
}

/* ============================================================
   LOCATION CARDS REFINEMENT: CLEAN PREMIUM READABILITY
   Keeps the playful pastel system, but prevents decoration from
   entering the reading area on TomoTomo/Banana/Magical/Grand sections.
   ============================================================ */

.loc-sec:not(#our-story) .sec-inner {
  align-items: center;
}

.loc-sec:not(#our-story) .sec-inner::after {
  display: none !important;
}

.loc-sec:not(#our-story) .loc-card {
  isolation: isolate;
  overflow: hidden;
  max-width: 700px;
  padding: clamp(30px, 3.8vw, 48px);
  border: 1px solid var(--premium-border);
  border-radius: 34px;
  background: #FFFFFF !important;
  box-shadow: 0 18px 34px rgba(37, 50, 77, .075);
}

.loc-sec:not(#our-story) .loc-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  display: block;
  width: 10px;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 34px 0 0 34px;
  background: var(--premium-accent) !important;
  box-shadow: none;
  transform: none;
}

.loc-sec:not(#our-story) .loc-card::after {
  display: none !important;
}

.loc-sec:not(#our-story) .loc-card .sec-title {
  position: relative;
  z-index: 1;
  max-width: 12.5ch;
  margin: 0 0 18px;
  color: #25324D !important;
  font-size: clamp(44px, 5vw, 72px) !important;
  line-height: .95;
  letter-spacing: 0;
  overflow-wrap: normal;
  word-break: normal;
}

#tomotomo-land .loc-card .sec-title,
#banana-land .loc-card .sec-title,
#magical-village .loc-card .sec-title {
  max-width: none;
}

.loc-sec:not(#our-story) .loc-tagline {
  position: relative;
  z-index: 1;
  margin: 0 0 24px;
  padding: 10px 16px;
  border: 1px solid var(--premium-border);
  border-radius: 999px;
  background: var(--premium-soft) !important;
  color: #25324D !important;
  box-shadow: none;
}

.loc-sec:not(#our-story) .loc-body {
  position: relative;
  z-index: 1;
  max-width: none;
  gap: 16px;
}

.loc-sec:not(#our-story) .loc-body p {
  color: #5E6B85 !important;
  font-size: clamp(16px, 1.35vw, 18px);
  line-height: 1.68;
}

.loc-sec:not(#our-story) .loc-body p:not(.loc-closing) {
  padding: 18px 22px;
  border: 1px solid var(--premium-border);
  border-left: 0;
  border-radius: 22px;
  background: #FFFFFF !important;
  box-shadow: 0 10px 22px rgba(37, 50, 77, .045);
}

.loc-sec:not(#our-story) .loc-body p:not(.loc-closing)::before {
  display: none !important;
}

.loc-sec:not(#our-story) .loc-closing {
  padding: 18px 22px !important;
  border: 1px solid var(--premium-border) !important;
  border-left: 0 !important;
  border-radius: 22px;
  background: var(--premium-soft) !important;
  color: #25324D !important;
  box-shadow: none;
}

@media (max-width: 920px) {
  .loc-sec:not(#our-story) .loc-card {
    max-width: none;
    padding: clamp(26px, 5vw, 38px);
  }

  .loc-sec:not(#our-story) .loc-card .sec-title {
    max-width: none;
    font-size: clamp(38px, 9vw, 58px) !important;
  }
}

@media (max-width: 560px) {
  .loc-sec:not(#our-story) .loc-card {
    padding: 24px 18px 24px 22px;
    border-radius: 28px;
  }

  .loc-sec:not(#our-story) .loc-card::before {
    width: 8px;
    border-radius: 28px 0 0 28px;
  }

  .loc-sec:not(#our-story) .loc-card .sec-title {
    font-size: clamp(34px, 11vw, 46px) !important;
    line-height: .98;
  }

  .loc-sec:not(#our-story) .loc-tagline {
    border-radius: 20px;
    font-size: 15.5px;
  }

  .loc-sec:not(#our-story) .loc-body {
    gap: 12px;
  }

  .loc-sec:not(#our-story) .loc-body p,
  .loc-sec:not(#our-story) .loc-closing {
    font-size: 15.5px;
    line-height: 1.6;
  }

  .loc-sec:not(#our-story) .loc-body p:not(.loc-closing),
  .loc-sec:not(#our-story) .loc-closing {
    padding: 14px 15px !important;
    border-radius: 18px;
  }
}

/* ============================================================
   INTERACTIVE STORYBOOK MAP + CONSISTENT LOCATION MOTION
   ============================================================ */

#tomotomo-land .sec-inner {
  width: min(1280px, 100%);
  grid-template-columns: minmax(430px, 1.02fr) minmax(420px, .98fr);
  gap: clamp(32px, 5vw, 72px);
}

#tomotomo-land .sec-inner::before {
  content: none !important;
  display: none !important;
}

#tomotomo-land .land-map {
  position: relative;
  z-index: 3;
  grid-column: 1;
  grid-row: 1;
  width: min(100%, 760px);
  margin: 0;
}

.land-map-frame {
  position: relative;
  padding: clamp(10px, 1.4vw, 16px);
  border: 1px solid var(--premium-border);
  border-radius: 34px;
  background: #FFFFFF;
  box-shadow: 0 20px 38px rgba(37, 50, 77, .1);
  transform: rotate(-.8deg);
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.land-map-frame::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: clamp(20px, 3vw, 34px) clamp(-14px, -1vw, -8px) clamp(-16px, -1vw, -8px) clamp(24px, 3vw, 44px);
  border-radius: 32px;
  background: #BFE8C6;
  opacity: .58;
  transform: rotate(2.5deg);
}

.land-map-frame::after {
  content: "";
  position: absolute;
  left: clamp(28px, 4vw, 54px);
  top: -16px;
  width: clamp(108px, 10vw, 156px);
  height: 34px;
  border: 1px solid rgba(37, 50, 77, .04);
  border-radius: 999px;
  background: #F7DFA1;
  opacity: .9;
  transform: rotate(-3deg);
}

.land-map-frame picture {
  display: block;
}

.land-map-img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  border: 1px solid var(--premium-border);
  border-radius: 26px;
  background: #EAF6FD;
  object-fit: cover;
  object-position: center;
}

.land-map-pin {
  --pin-color: #A9D8F5;
  position: absolute;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: min(240px, 44%);
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid var(--premium-border);
  border-radius: 20px;
  background: #FFFFFF;
  color: #25324D;
  text-decoration: none;
  box-shadow: 0 10px 22px rgba(37, 50, 77, .11);
  transform: translateY(0);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.land-map-pin:focus-visible {
  outline: 3px solid rgba(169, 216, 245, .78);
  outline-offset: 4px;
}

.pin-dot {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  border: 3px solid #FFFFFF;
  border-radius: 999px;
  background: var(--pin-color);
  box-shadow: 0 0 0 4px rgba(37, 50, 77, .07);
}

.pin-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.pin-copy strong {
  color: #25324D;
  font-size: clamp(11px, 1vw, 13px);
  font-weight: 950;
  line-height: 1.05;
  letter-spacing: 0;
}

.pin-copy small {
  color: #5E6B85;
  font-size: clamp(10.5px, .92vw, 12px);
  font-weight: 850;
  line-height: 1.25;
}

.pin-banana {
  --pin-color: #F7DFA1;
  left: 7%;
  bottom: 14%;
}

.pin-magical {
  --pin-color: #F4A7B9;
  right: 6%;
  top: 15%;
}

.pin-grand {
  --pin-color: #A9D8F5;
  right: 10%;
  bottom: 13%;
}

.land-map-trail {
  position: absolute;
  z-index: 3;
  height: 0;
  border-top: 3px dashed rgba(246, 199, 168, .72);
  border-radius: 999px;
  pointer-events: none;
}

.trail-one {
  left: 24%;
  top: 54%;
  width: 30%;
  transform: rotate(-12deg);
}

.trail-two {
  right: 20%;
  bottom: 31%;
  width: 24%;
  border-color: rgba(185, 167, 244, .62);
  transform: rotate(16deg);
}

.land-map-sparkle {
  position: absolute;
  z-index: 3;
  width: 18px;
  height: 18px;
  pointer-events: none;
  transform: rotate(45deg);
}

.land-map-sparkle::before,
.land-map-sparkle::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 100%;
  height: 4px;
  border-radius: 999px;
  background: #B9A7F4;
  transform: translate(-50%, -50%);
}

.land-map-sparkle::after {
  width: 4px;
  height: 100%;
}

.sparkle-one {
  left: 17%;
  top: 18%;
}

.sparkle-two {
  right: 25%;
  top: 49%;
}

.sparkle-two::before,
.sparkle-two::after {
  background: #F4A7B9;
}

.land-map figcaption {
  width: fit-content;
  max-width: min(480px, 100%);
  margin: 16px auto 0;
  padding: 10px 15px;
  border: 1px solid var(--premium-border);
  border-radius: 999px;
  background: #FFFFFF;
  color: #5E6B85;
  font-size: clamp(13px, 1.05vw, 15px);
  font-weight: 900;
  line-height: 1.35;
  text-align: center;
  box-shadow: 0 8px 18px rgba(37, 50, 77, .055);
}

.loc-sec:not(#our-story) .loc-card {
  min-width: 0;
  width: min(700px, 100%);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.loc-sec:not(#our-story) .loc-tagline {
  min-height: 44px;
  align-items: center;
}

.loc-sec:not(#our-story) .loc-body p:not(.loc-closing),
.loc-sec:not(#our-story) .loc-closing {
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.loc-sec:not(#our-story):not(#tomotomo-land) .sec-inner::before {
  --location-frame-rotate: 1deg;
  transition: transform .24s ease, box-shadow .24s ease;
}

#magical-village .sec-inner::before {
  --location-frame-rotate: -1deg;
}

.story-info-card,
.story-value-chip,
.story-image-frame {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

@media (hover: hover) {
  .land-map-frame:hover,
  #tomotomo-land .land-map:focus-within .land-map-frame {
    transform: translateY(-4px) rotate(-.8deg);
    box-shadow: 0 24px 44px rgba(37, 50, 77, .13);
  }

  .land-map-pin:hover,
  .land-map-pin:focus-visible {
    border-color: rgba(37, 50, 77, .12);
    box-shadow: 0 14px 26px rgba(37, 50, 77, .13);
    transform: translateY(-3px);
  }

  .loc-sec:not(#our-story) .loc-card:hover {
    border-color: rgba(37, 50, 77, .11);
    box-shadow: 0 22px 40px rgba(37, 50, 77, .1);
    transform: translateY(-3px);
  }

  .loc-sec:not(#our-story):not(#tomotomo-land) .sec-inner:hover::before {
    box-shadow: 0 22px 40px rgba(37, 50, 77, .12);
    transform: translateY(-4px) rotate(var(--location-frame-rotate));
  }

  .loc-sec:not(#our-story) .loc-body p:not(.loc-closing):hover,
  .loc-sec:not(#our-story) .loc-closing:hover,
  .story-info-card:hover,
  .story-value-chip:hover {
    transform: translateY(-2px);
  }

  .story-image-frame:hover {
    box-shadow: 0 24px 42px rgba(37, 50, 77, .12);
    transform: translateY(-3px) rotate(1.1deg);
  }
}

@media (max-width: 980px) {
  #tomotomo-land .sec-inner {
    grid-template-columns: 1fr;
  }

  #tomotomo-land .land-map,
  #tomotomo-land .loc-card {
    grid-column: auto;
    grid-row: auto;
  }

  #tomotomo-land .land-map {
    order: -1;
    width: 100%;
  }

  .land-map-frame {
    display: grid;
    gap: 10px;
    transform: none;
  }

  .land-map-frame::before {
    inset: 20px -8px -10px 18px;
    transform: rotate(1.4deg);
  }

  .land-map-pin {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    max-width: none;
    width: 100%;
  }

  .land-map-trail,
  .land-map-sparkle {
    display: none;
  }
}

@media (max-width: 560px) {
  .land-map-frame {
    padding: 8px;
    border-radius: 28px;
  }

  .land-map-frame::after {
    left: 24px;
    top: -13px;
    width: 104px;
    height: 28px;
  }

  .land-map-img {
    border-radius: 22px;
  }

  .land-map-pin {
    min-height: 46px;
    padding: 9px 10px;
    border-radius: 18px;
  }

  .pin-copy strong {
    font-size: 11px;
  }

  .pin-copy small {
    font-size: 10.5px;
  }

  .land-map figcaption {
    border-radius: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .land-map-frame,
  .land-map-pin,
  .loc-sec:not(#our-story) .loc-card,
  .loc-sec:not(#our-story) .loc-body p:not(.loc-closing),
  .loc-sec:not(#our-story) .loc-closing,
  .loc-sec:not(#our-story):not(#tomotomo-land) .sec-inner::before,
  .story-info-card,
  .story-value-chip,
  .story-image-frame {
    transition: none;
  }

  .land-map-frame:hover,
  .land-map-pin:hover,
  .land-map-pin:focus-visible,
  .loc-sec:not(#our-story) .loc-card:hover,
  .loc-sec:not(#our-story):not(#tomotomo-land) .sec-inner:hover::before,
  .loc-sec:not(#our-story) .loc-body p:not(.loc-closing):hover,
  .loc-sec:not(#our-story) .loc-closing:hover,
  .story-info-card:hover,
  .story-value-chip:hover,
  .story-image-frame:hover {
    transform: none;
  }
}

/* ============================================================
   PLAYFUL DENSITY PASS: STORY, LOCATION, AND CHARACTER SECTIONS
   Reduces empty space while keeping the premium pastel system.
   ============================================================ */

#our-story.storybook-section {
  padding-block: clamp(58px, 6.5vw, 92px);
}

#our-story.storybook-section .story-inner {
  width: min(1320px, 100%);
  grid-template-columns: minmax(500px, .96fr) minmax(520px, 1.04fr);
  gap: clamp(28px, 4.2vw, 58px);
  align-items: center;
}

#our-story.storybook-section .story-content {
  max-width: none;
  padding: clamp(24px, 2.6vw, 34px);
}

#our-story.storybook-section .story-title {
  max-width: 10.5ch;
  margin-bottom: 14px;
  font-size: clamp(44px, 4.6vw, 68px) !important;
}

.story-lede {
  max-width: 52ch;
  margin-bottom: 18px;
  line-height: 1.5;
}

#our-story.storybook-section .story-body {
  gap: 12px;
}

.story-info-card {
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  padding: 15px;
  border-radius: 20px;
}

.story-card-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
}

.story-info-card h3 {
  font-size: clamp(17px, 1.35vw, 20px);
}

#our-story.storybook-section .story-info-card p {
  font-size: clamp(14.5px, 1vw, 16px);
  line-height: 1.48;
}

.story-values {
  margin-top: 14px;
}

.story-value-chip {
  min-height: 34px;
  padding: 7px 11px;
}

.story-visual {
  align-self: center;
  width: 100%;
  margin: 0;
}

.story-image-frame {
  min-height: clamp(560px, 52vw, 760px);
  display: grid;
  align-content: center;
}

.story-image-frame picture {
  display: block;
  height: 100%;
}

.story-world-img {
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
}

.story-character {
  width: clamp(138px, 13vw, 210px);
}

.story-character-yomin {
  width: clamp(132px, 12vw, 198px);
}

.loc-sec:not(#our-story):not(#tomotomo-land) {
  min-height: auto;
  padding-block: clamp(58px, 7vw, 96px);
}

.loc-sec:not(#our-story):not(#tomotomo-land) .sec-inner {
  width: min(1320px, 100%);
  grid-template-columns: minmax(500px, 1.05fr) minmax(480px, .95fr);
  gap: clamp(28px, 4vw, 56px);
}

.loc-sec:not(#our-story):not(#tomotomo-land) .sec-inner::before {
  min-height: clamp(430px, 38vw, 590px);
  aspect-ratio: 4 / 3;
  border-width: 12px;
  border-radius: 38px;
  box-shadow: 0 22px 42px rgba(37, 50, 77, .11);
}

#banana-land .sec-inner::before,
#grand-town .sec-inner::before {
  grid-column: 2;
  grid-row: 1;
}

#magical-village .sec-inner::before {
  grid-column: 1;
  grid-row: 1;
}

#banana-land .loc-card,
#grand-town .loc-card {
  grid-column: 1;
  grid-row: 1;
}

#magical-village .loc-card {
  grid-column: 2;
  grid-row: 1;
}

.loc-sec:not(#our-story):not(#tomotomo-land) .loc-card {
  width: 100%;
  max-width: 640px;
  padding: clamp(24px, 2.8vw, 36px);
  border-radius: 30px;
}

.loc-sec:not(#our-story):not(#tomotomo-land) .loc-card .sec-title {
  max-width: 11ch;
  margin-bottom: 14px;
  font-size: clamp(38px, 4.2vw, 64px) !important;
  line-height: .95;
}

#grand-town .loc-card .sec-title {
  max-width: 9.5ch;
}

.loc-sec:not(#our-story):not(#tomotomo-land) .loc-tagline {
  min-height: 38px;
  margin-bottom: 16px;
  padding: 8px 13px;
  font-size: clamp(15px, 1.15vw, 17px);
}

.loc-sec:not(#our-story):not(#tomotomo-land) .loc-body {
  gap: 10px;
}

.loc-sec:not(#our-story):not(#tomotomo-land) .loc-body p {
  font-size: clamp(14.5px, 1.05vw, 16.5px);
  line-height: 1.5;
}

.loc-sec:not(#our-story):not(#tomotomo-land) .loc-body p:not(.loc-closing),
.loc-sec:not(#our-story):not(#tomotomo-land) .loc-closing {
  padding: 14px 16px !important;
  border-radius: 18px;
}

.loc-sec:not(#our-story):not(#tomotomo-land) .loc-closing {
  font-size: clamp(15px, 1.12vw, 17px);
}

#tomotomo-land .sec-inner {
  align-items: start;
}

#tomotomo-land .land-map {
  align-self: center;
}

#tomotomo-land .loc-card {
  max-width: 620px;
  padding: clamp(24px, 2.8vw, 36px);
}

#tomotomo-land .loc-card .sec-title {
  font-size: clamp(42px, 4.4vw, 70px) !important;
}

#tomotomo-land .loc-body {
  gap: 10px;
}

#tomotomo-land .loc-body p {
  font-size: clamp(14.5px, 1.05vw, 16.5px);
  line-height: 1.5;
}

#tomotomo-land .loc-body p:not(.loc-closing),
#tomotomo-land .loc-closing {
  padding: 14px 16px !important;
  border-radius: 18px;
}

#meet-crew {
  padding-block: clamp(56px, 7vw, 92px);
  background: #FFF9F0 !important;
}

#meet-crew .sec-inner {
  width: min(1320px, 100%);
  grid-template-columns: minmax(250px, .9fr) minmax(390px, .95fr) minmax(250px, .9fr);
  gap: clamp(22px, 3.5vw, 44px);
}

.crew-center {
  padding: clamp(26px, 3.2vw, 44px);
  border: 1px solid #F0E3D2;
  border-radius: 32px;
  background: #FFFFFF !important;
  box-shadow: 0 18px 34px rgba(37, 50, 77, .075);
}

.crew-ttl {
  font-size: clamp(40px, 5.2vw, 76px);
  color: #25324D;
  -webkit-text-stroke: 0;
  text-shadow: none;
}

.crew-body {
  gap: 10px;
}

.crew-body p {
  font-size: clamp(14.5px, 1.05vw, 16.5px);
  line-height: 1.5;
}

.crew-chars,
.crew-chars:last-child {
  position: relative;
  min-height: clamp(520px, 46vw, 660px);
  width: 100%;
  display: block;
  transform: none;
}

.crew-chars picture {
  position: absolute;
  display: block;
  width: clamp(150px, 16vw, 245px);
}

.crew-chars picture:nth-child(1) {
  top: 0;
  left: 10%;
}

.crew-chars picture:nth-child(2) {
  top: 32%;
  right: 0;
}

.crew-chars picture:nth-child(3) {
  bottom: 0;
  left: 0;
}

.crew-chars:last-child picture:nth-child(1) {
  top: 4%;
  right: 6%;
  left: auto;
}

.crew-chars:last-child picture:nth-child(2) {
  top: 36%;
  left: 0;
  right: auto;
}

.crew-chars:last-child picture:nth-child(3) {
  right: 0;
  bottom: 0;
  left: auto;
}

.crew-char-img {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  filter: drop-shadow(0 22px 20px rgba(37, 50, 77, .16));
}

.char-sec {
  min-height: auto;
  padding-block: clamp(58px, 7vw, 94px);
}

.char-layout,
.char-layout.flip {
  width: min(1320px, 100%);
  grid-template-columns: minmax(430px, .9fr) minmax(560px, 1.1fr);
  gap: clamp(30px, 4.6vw, 68px);
  align-items: center;
}

.char-layout.flip {
  grid-template-columns: minmax(560px, 1.1fr) minmax(430px, .9fr);
}

.char-img-wrap {
  min-height: clamp(560px, 50vw, 720px);
  border: 12px solid #FFFFFF;
  border-radius: 42px;
  background: #FFF7E8 !important;
  overflow: hidden;
  box-shadow: 0 24px 46px rgba(37, 50, 77, .13);
}

#nara .char-img-wrap { background: #FFF3D8 !important; }
#yomin-koko .char-img-wrap { background: #FFF1D5 !important; }
#rere .char-img-wrap { background: #FCE6EC !important; }
#sisi .char-img-wrap { background: #F1EDFF !important; }
#bobo .char-img-wrap { background: #EAF8ED !important; }
#kiki .char-img-wrap { background: #EAF6FD !important; }

.char-img-wrap img {
  width: min(118%, 540px);
  max-height: 760px;
  padding-top: 0;
  transform: translateY(8px);
  filter: drop-shadow(0 26px 24px rgba(37, 50, 77, .22));
}

.char-img-wrap img:hover {
  transform: translateY(0) scale(1.035);
}

.char-txt .sec-title {
  margin-bottom: 14px;
  font-size: clamp(56px, 7.4vw, 104px);
  color: #25324D !important;
}

.char-info-card {
  max-width: 690px;
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid #F0E3D2;
  border-radius: 30px;
  background: #FFFFFF !important;
  box-shadow: 0 18px 34px rgba(37, 50, 77, .075);
}

.char-role {
  margin-bottom: 16px !important;
  background: color-mix(in srgb, var(--fresh-accent) 16%, #FFF9F0);
}

.char-info-card p {
  font-size: clamp(14.5px, 1.05vw, 16.5px);
  line-height: 1.55;
}

.char-info-card .loc-closing {
  margin-top: 14px !important;
  padding: 14px 16px !important;
  border-radius: 18px;
}

@media (max-width: 1080px) {
  #our-story.storybook-section .story-inner,
  .loc-sec:not(#our-story):not(#tomotomo-land) .sec-inner,
  #tomotomo-land .sec-inner,
  #meet-crew .sec-inner,
  .char-layout,
  .char-layout.flip {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #banana-land .sec-inner::before,
  #grand-town .sec-inner::before,
  #magical-village .sec-inner::before,
  #banana-land .loc-card,
  #grand-town .loc-card,
  #magical-village .loc-card,
  .char-layout.flip .char-img-wrap,
  .char-layout.flip .char-txt {
    grid-column: auto;
    grid-row: auto;
  }

  .loc-sec:not(#our-story):not(#tomotomo-land) .sec-inner::before {
    order: -1;
    min-height: clamp(300px, 55vw, 450px);
  }

  .loc-sec:not(#our-story):not(#tomotomo-land) .loc-card,
  #tomotomo-land .loc-card,
  .char-info-card {
    max-width: none;
  }

  .crew-chars,
  .crew-chars:last-child {
    display: flex;
    min-height: auto;
    justify-content: center;
    gap: 12px;
  }

  .crew-chars picture,
  .crew-chars picture:nth-child(1),
  .crew-chars picture:nth-child(2),
  .crew-chars picture:nth-child(3),
  .crew-chars:last-child picture:nth-child(1),
  .crew-chars:last-child picture:nth-child(2),
  .crew-chars:last-child picture:nth-child(3) {
    position: relative;
    inset: auto;
    width: clamp(112px, 22vw, 180px);
  }

  .char-img-wrap {
    order: -1;
    min-height: clamp(420px, 86vw, 620px);
  }
}

@media (max-width: 620px) {
  .loc-sec:not(#our-story) .sec-inner,
  .loc-sec:not(#our-story) .loc-card,
  .loc-sec:not(#our-story) .loc-body {
    min-width: 0;
  }

  .loc-sec:not(#our-story) .loc-card {
    width: 100%;
  }

  #our-story.storybook-section .story-content,
  .loc-sec:not(#our-story):not(#tomotomo-land) .loc-card,
  #tomotomo-land .loc-card,
  .crew-center,
  .char-info-card {
    padding: 20px;
    border-radius: 24px;
  }

  .story-image-frame {
    min-height: 290px;
  }

  .story-character {
    width: clamp(96px, 26vw, 132px);
  }

  .story-character-yomin {
    width: clamp(92px, 25vw, 128px);
  }

  .loc-sec:not(#our-story):not(#tomotomo-land) .loc-card .sec-title,
  #tomotomo-land .loc-card .sec-title,
  .char-txt .sec-title {
    font-size: clamp(34px, 11vw, 48px) !important;
    overflow-wrap: anywhere;
  }

  .crew-chars,
  .crew-chars:last-child {
    flex-wrap: wrap;
  }

  .crew-chars picture,
  .crew-chars picture:nth-child(1),
  .crew-chars picture:nth-child(2),
  .crew-chars picture:nth-child(3),
  .crew-chars:last-child picture:nth-child(1),
  .crew-chars:last-child picture:nth-child(2),
  .crew-chars:last-child picture:nth-child(3) {
    width: clamp(94px, 30vw, 130px);
  }

  .char-img-wrap {
    min-height: clamp(360px, 98vw, 520px);
    border-width: 8px;
    border-radius: 30px;
  }

  .char-img-wrap img {
    width: min(120%, 430px);
    transform: translateY(8px);
  }
}

/* ============================================================
   DESIGN QA FIX: BALANCED MAP + CREW COMPOSITION
   ============================================================ */

#tomotomo-land {
  padding-block: clamp(56px, 6vw, 88px);
}

#tomotomo-land .sec-inner {
  width: min(1240px, 100%);
  grid-template-columns: minmax(540px, 1.04fr) minmax(430px, .96fr);
  gap: clamp(30px, 4vw, 58px);
  align-items: center;
}

#tomotomo-land .land-map {
  width: min(100%, 700px);
}

#tomotomo-land .land-map-frame {
  transform: rotate(-.5deg);
}

#tomotomo-land .land-map-img {
  aspect-ratio: 16 / 9.6;
}

#tomotomo-land .loc-card {
  max-width: 560px;
  padding: clamp(22px, 2.4vw, 30px);
  border-radius: 28px;
}

#tomotomo-land .loc-card .sec-title {
  max-width: 8.5ch;
  margin-bottom: 12px;
  font-size: clamp(42px, 3.9vw, 64px) !important;
  line-height: .93;
}

#tomotomo-land .loc-tagline {
  min-height: 36px;
  margin-bottom: 14px;
  padding: 7px 12px;
  font-size: clamp(14px, 1vw, 16px);
}

#tomotomo-land .loc-body {
  gap: 8px;
}

#tomotomo-land .loc-body p {
  font-size: clamp(13.5px, .95vw, 15.5px);
  line-height: 1.45;
}

#tomotomo-land .loc-body p:not(.loc-closing),
#tomotomo-land .loc-closing {
  padding: 12px 14px !important;
  border-radius: 16px;
}

#meet-crew {
  min-height: auto;
  padding-block: clamp(56px, 6vw, 86px);
  background: #FFF9F0 !important;
}

#meet-crew .sec-inner {
  width: min(1240px, 100%);
  min-height: auto;
  grid-template-columns: minmax(260px, .92fr) minmax(360px, .9fr) minmax(260px, .92fr);
  gap: clamp(24px, 3vw, 42px);
  align-items: center;
}

.crew-center {
  max-width: 450px;
  justify-self: center;
  padding: clamp(26px, 3vw, 38px);
  border-radius: 30px;
}

.crew-ttl {
  max-width: 8.5ch;
  margin-inline: auto;
  font-size: clamp(42px, 4vw, 66px);
  line-height: .96;
}

.crew-body {
  max-width: 32ch;
  margin-inline: auto;
  gap: 8px;
}

.crew-body p {
  font-size: clamp(13.5px, .95vw, 15.5px);
  line-height: 1.48;
}

.crew-body .loc-closing {
  margin-top: 6px !important;
  padding: 12px 14px !important;
  border-radius: 16px;
}

.crew-chars,
.crew-chars:last-child {
  min-height: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: auto auto;
  gap: clamp(8px, 1.4vw, 18px);
  align-items: end;
  justify-items: center;
}

.crew-chars picture,
.crew-chars picture:nth-child(1),
.crew-chars picture:nth-child(2),
.crew-chars picture:nth-child(3),
.crew-chars:last-child picture:nth-child(1),
.crew-chars:last-child picture:nth-child(2),
.crew-chars:last-child picture:nth-child(3) {
  position: relative;
  inset: auto;
  width: clamp(128px, 12vw, 210px);
}

.crew-chars picture:nth-child(1),
.crew-chars:last-child picture:nth-child(1) {
  grid-column: 1 / -1;
  width: clamp(142px, 13vw, 220px);
}

.crew-char-img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 18px 18px rgba(37, 50, 77, .15));
}

@media (hover: hover) {
  .crew-char-img:hover {
    transform: translateY(-5px) scale(1.035);
  }
}

@media (max-width: 1080px) {
  #tomotomo-land .sec-inner,
  #meet-crew .sec-inner {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #meet-crew .crew-chars,
  #meet-crew .crew-chars:last-child {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: auto;
  }

  #meet-crew .crew-chars picture,
  #meet-crew .crew-chars picture:nth-child(1),
  #meet-crew .crew-chars picture:nth-child(2),
  #meet-crew .crew-chars picture:nth-child(3),
  #meet-crew .crew-chars:last-child picture:nth-child(1),
  #meet-crew .crew-chars:last-child picture:nth-child(2),
  #meet-crew .crew-chars:last-child picture:nth-child(3) {
    grid-column: auto;
    width: clamp(112px, 22vw, 170px);
  }

  .crew-center {
    order: -1;
    max-width: 560px;
  }
}

@media (max-width: 620px) {
  #tomotomo-land .loc-card .sec-title {
    max-width: none;
  }

  #meet-crew .sec-inner {
    gap: 18px;
  }

  #meet-crew .crew-chars,
  #meet-crew .crew-chars:last-child {
    gap: 8px;
  }

  #meet-crew .crew-chars picture,
  #meet-crew .crew-chars picture:nth-child(1),
  #meet-crew .crew-chars picture:nth-child(2),
  #meet-crew .crew-chars picture:nth-child(3),
  #meet-crew .crew-chars:last-child picture:nth-child(1),
  #meet-crew .crew-chars:last-child picture:nth-child(2),
  #meet-crew .crew-chars:last-child picture:nth-child(3) {
    width: clamp(88px, 28vw, 122px);
  }
}

/* ============================================================
   OFFICIAL WEBSITE + LANGUAGE QA PASS
   ============================================================ */

.official-brand-band {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(28px, 5vw, 64px) clamp(18px, 4vw, 40px);
  background: #FFF7E8;
  scroll-margin-top: calc(var(--nav-h-desktop, 96px) + 22px);
}

.official-brand-band::before,
.official-brand-band::after {
  content: "";
  position: absolute;
  z-index: -1;
  border-radius: 999px;
  opacity: .72;
}

.official-brand-band::before {
  width: clamp(170px, 22vw, 320px);
  height: clamp(110px, 14vw, 190px);
  left: -56px;
  top: 16px;
  background: #F6C7A8;
  transform: rotate(-7deg);
}

.official-brand-band::after {
  width: clamp(140px, 18vw, 260px);
  height: clamp(96px, 12vw, 160px);
  right: -42px;
  bottom: 8px;
  background: #BFE8C6;
  transform: rotate(10deg);
}

.official-brand-inner {
  width: min(1160px, 100%);
  margin-inline: auto;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(18px, 3vw, 34px);
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid #F0E3D2;
  border-radius: 30px;
  background: #FFFFFF;
  box-shadow: 0 20px 42px rgba(37, 50, 77, .10);
}

.official-brand-mark {
  width: clamp(74px, 8vw, 104px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid #F0E3D2;
  border-radius: 24px;
  background: #FFF9F0;
  box-shadow: 0 10px 22px rgba(37, 50, 77, .09);
}

.official-brand-mark img {
  width: 78%;
  height: 78%;
  object-fit: contain;
}

.official-brand-badge {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 34px;
  padding: 7px 13px;
  border: 1px solid #F0E3D2;
  border-radius: 999px;
  background: #EAF8EE;
  color: #25324D;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.official-brand-copy h2 {
  margin: 10px 0 8px;
  color: #25324D;
  font-family: var(--font-display);
  font-size: clamp(28px, 4vw, 50px);
  line-height: 1;
  letter-spacing: 0;
  text-wrap: balance;
}

.official-brand-copy p {
  max-width: 66ch;
  margin: 0;
  color: #5E6B85;
  font-family: var(--font-body);
  font-size: clamp(15px, 1.2vw, 18px);
  font-weight: 800;
  line-height: 1.55;
}

.official-brand-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 18px;
  border: 1px solid #F0E3D2;
  border-radius: 999px;
  background: #F7DFA1;
  color: #25324D;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 950;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 10px 18px rgba(37, 50, 77, .10);
  transition: transform .18s ease, box-shadow .18s ease;
}

.official-brand-cta:hover,
.official-brand-cta:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 14px 22px rgba(37, 50, 77, .14);
}

.ft-ownership {
  width: 100%;
  max-width: 760px;
  margin: 10px auto 0;
  padding-top: 10px;
  border-top: 1px solid #F0E3D2;
  color: #5E6B85;
  font-family: var(--font-body);
  font-size: clamp(10.5px, .82vw, 12.5px);
  font-weight: 800;
  line-height: 1.5;
  text-align: center;
  text-shadow: none;
}

.lang-switch {
  z-index: calc(var(--z-nav, 1000) + 8);
}

.lang-trigger {
  min-height: 44px;
  max-width: min(238px, calc(100vw - 154px));
  gap: 9px;
  padding: 8px 36px 8px 14px;
  border: 1px solid #F0E3D2;
  border-radius: 999px;
  background: #FFFFFF;
  color: #25324D;
  box-shadow: 0 9px 18px rgba(37, 50, 77, .10);
  text-shadow: none;
}

.lang-trigger::after {
  content: "";
  right: 15px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #25324D;
  border-bottom: 2px solid #25324D;
  transform: translateY(-60%) rotate(45deg);
  color: transparent;
}

.lang-switch.open .lang-trigger::after {
  transform: translateY(-30%) rotate(225deg);
}

.lang-prefix {
  color: #5E6B85;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0;
  text-shadow: none;
}

.lang-current {
  max-width: 118px;
  color: #25324D;
  font-weight: 950;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  overflow-wrap: normal;
  word-break: normal;
}

.lang-popup {
  width: min(310px, calc(100vw - 24px));
  max-height: min(430px, 72vh);
  overflow: auto;
  padding: 10px;
  border: 1px solid #F0E3D2;
  border-radius: 22px;
  background: #FFFFFF;
  box-shadow: 0 22px 46px rgba(37, 50, 77, .18);
}

.lang-popup-title {
  margin: 4px 6px 9px;
  color: #5E6B85;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0;
  text-transform: uppercase;
  text-shadow: none;
}

.lang-option {
  align-items: center;
  padding: 10px 12px;
  border: 1px solid #F0E3D2;
  border-radius: 16px;
  background: #FFF9F0;
  color: #25324D;
  text-shadow: none;
}

.lang-option + .lang-option {
  margin-top: 7px;
}

.lang-option-label {
  min-width: 0;
  color: #25324D;
  font-weight: 950;
  overflow-wrap: anywhere;
}

.lang-option-tag {
  flex: 0 0 auto;
  min-width: 36px;
  padding: 4px 7px;
  border: 1px solid #F0E3D2;
  border-radius: 999px;
  background: #FFFFFF;
  color: #5E6B85;
  font-size: 11px;
  font-weight: 950;
  text-align: center;
}

.lang-option:hover,
.lang-option:focus-visible,
.lang-option.active {
  background: #F7DFA1;
  border-color: #E9C979;
}

.lang-option:focus-visible {
  outline: 3px solid rgba(169, 216, 245, .7);
  outline-offset: 2px;
}

@media (max-width: 860px) {
  .official-brand-inner {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .official-brand-cta {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

@media (max-width: 620px) {
  .official-brand-band {
    padding-inline: 14px;
  }

  .official-brand-inner {
    grid-template-columns: minmax(0, 1fr);
    text-align: center;
    justify-items: center;
    border-radius: 24px;
  }

  .official-brand-copy p {
    max-width: 34ch;
  }

  .official-brand-cta {
    justify-self: center;
    width: min(100%, 260px);
  }

  .lang-trigger {
    max-width: min(178px, calc(100vw - 118px));
    padding-inline: 12px 32px;
  }

  .lang-prefix {
    display: none;
  }

  .lang-current {
    max-width: 108px;
  }
}

/* ======================================================
   UI/UX PRO MAX FINAL POLISH
   Shared accessibility, touch, and consistency refinements.
====================================================== */

:root {
  --tt-ink: #25324D;
  --tt-muted: #5E6B85;
  --tt-border: #F0E3D2;
  --tt-surface: #FFFFFF;
  --tt-cream: #FFF9F0;
  --tt-peach: #F6C7A8;
  --tt-pink: #F4A7B9;
  --tt-lavender: #B9A7F4;
  --tt-sky: #A9D8F5;
  --tt-mint: #BFE8C6;
  --tt-yellow: #F7DFA1;
  --tt-focus: rgba(83, 134, 214, .72);
}

html {
  scroll-padding-top: 92px;
}

body {
  text-rendering: optimizeLegibility;
}

a,
button,
summary,
[role="button"] {
  touch-action: manipulation;
}

:is(a, button, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--tt-focus);
  outline-offset: 3px;
}

.nav-logo {
  object-fit: contain;
}

.nav-links a,
.lang-trigger,
.hamburger,
.hero-btn,
.hero-mini-links a,
.official-brand-cta,
.ct-card a,
.ct-social-link,
.ft-mailto,
.oc-btn,
.oc-video-tag,
.oc-social-follow,
.ml-filter-btn,
.ml-lyrics-btn,
.ml-dl-btn {
  min-height: 44px;
}

.hero-mini-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
}

.ft-nav a,
.ft-platform {
  min-height: 44px;
  padding: 8px 12px;
  margin-inline: -12px;
  border: 1px solid transparent;
  border-radius: 14px;
}

.ft-nav a:hover,
.ft-nav a:focus-visible,
.ft-platform:hover,
.ft-platform:focus-visible {
  background: rgba(255, 255, 255, .58);
  border-color: rgba(240, 227, 210, .74);
  color: var(--tt-ink);
}

.ft-platform span,
.ft-nav a::before {
  box-shadow: 0 0 0 4px rgba(255, 255, 255, .52);
}

.ft-mailto {
  padding-block: 10px;
}

.ml-play-btn {
  min-width: 44px;
  min-height: 44px;
}

.ml-sc-dot {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px !important;
  height: 44px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ml-sc-dot::after {
  content: "";
  width: 12px;
  height: 12px;
  border: 2px solid #FFFFFF;
  border-radius: 999px;
  background: rgba(37, 50, 77, .28);
  box-shadow: 0 5px 12px rgba(37, 50, 77, .14);
  transition: width .22s ease, background .22s ease, transform .22s ease;
}

.ml-sc-dot.ml-sc-dot-active::after {
  width: 34px;
  background: var(--tt-sky);
}

.ml-sc-dot:hover::after,
.ml-sc-dot:focus-visible::after {
  transform: translateY(-1px);
  background: var(--tt-yellow);
}

.ml-sc-arrow {
  min-width: 44px;
  min-height: 44px;
}

.is-loading,
[aria-busy="true"] {
  cursor: progress;
}

.is-loading {
  opacity: .78;
}

@media (max-width: 680px) {
  html {
    scroll-padding-top: 78px;
  }

  .ft-nav,
  .ft-platform-list {
    gap: 6px;
  }

  .ft-nav a,
  .ft-platform {
    margin-inline: 0;
    width: 100%;
  }

  .hero-mini-links {
    gap: 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
