/* Love Reading / Living storybook / 2026-09-11
 * Presentation only. Data, booking and authentication keep their existing owners.
 */
.public-home.storybook-home {
  min-width: 0;
  --home-bg: #fffdf8;
  --home-surface: #edf5f8;
  --home-surface-strong: #fff;
  --home-ink: #203e50;
  --home-muted: #526773;
  --home-brand: #cb683b;
  --home-brand-strong: #aa4d28;
  --home-brand-soft: #f9e6d3;
  --home-sky: #cbe5f1;
  --home-sky-soft: #eaf4f9;
  --home-sky-strong: #286485;
  --home-border: #d8e4e8;
  --home-border-strong: #afc9d5;
  --activity-deep: #203e50;
  --shadow-card: 0 8px 30px rgb(32 62 80 / 5%);
  --home-line: #087d44;
  --home-line-dark: #065b33;
  --home-line-ink: #fff;
  --shadow-line: 0 6px 18px rgb(8 125 68 / 12%);
  color: var(--home-ink);
  font-size: 1rem;
  line-height: 1.8;
}
.public-home.storybook-home :is(h1, h2, h3, h4) {
  font-family: var(--font-display);
  line-height: 1.4;
  letter-spacing: -.025em;
  font-weight: 600;
}
.public-home.storybook-home .section-shell,
.public-home.storybook-home .site-header__inner,
.public-home.storybook-home .site-footer__inner {
  width: min(100% - 3rem, 73rem);
}
.public-home.storybook-home .site-header {
  border-bottom: 1px solid rgb(40 100 133 / 12%);
  background: rgb(255 253 248 / 97%);
  box-shadow: none;
}
.public-home.storybook-home .site-brand > span strong {
  color: #245d7d;
  font-size: 1.28rem;
  font-weight: 600;
}
.public-home.storybook-home .site-brand > span small { color: #526773; font-weight: 500; font-size: .75rem; }
.public-home.storybook-home .site-brand__mark { border: 0; box-shadow: none; }
.public-home.storybook-home .site-nav a { font-size: .9rem; font-weight: 500; }
.public-home.storybook-home .nav-toggle { border: 1px solid var(--home-border); border-radius: .85rem; box-shadow: none; }
.public-home.storybook-home .button {
  min-height: 3.1rem;
  padding: .82rem 1.3rem;
  border-radius: .9rem;
  font-size: 1rem;
  font-weight: 600;
  transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}
.public-home.storybook-home .button--line { color: #fff; background: #087d44; border: 1px solid #087d44; box-shadow: var(--shadow-line); }
.public-home.storybook-home .button--secondary { background: #fffdf8; color: #245d7d; border: 1px solid #b5ceda; box-shadow: none; }
.public-home.storybook-home .header-line-cta { min-height: 2.8rem; font-size: .875rem; padding: .6rem 1rem; }
.public-home.storybook-home .hero {
  overflow: hidden;
  isolation: isolate;
  background: #e4f1f8;
  border-bottom: 1px solid #cbdfe9;
}
.public-home.storybook-home .hero::before,
.public-home.storybook-home .hero::after,
.public-home.storybook-home .hero__media::before { display: none; }
.public-home.storybook-home .hero__inner {
  grid-template-columns: 1fr 1.02fr;
  min-height: 0;
  gap: clamp(2rem, 4vw, 4.5rem);
  padding-block: 4rem 4.6rem;
}
.public-home.storybook-home .hero__content { text-align: left; }
.public-home.storybook-home .hero__eyebrow {
  display: block;
  padding: 0;
  margin: 0 0 1.2rem;
  border: 0;
  background: none;
  box-shadow: none;
  color: #386b85;
  font-size: .875rem;
  font-weight: 500;
  letter-spacing: .12em;
}
.public-home.storybook-home .hero__content h1 {
  max-width: none;
  margin: 0;
  font-size: clamp(2.5rem, 4.4vw, 4rem);
  line-height: 1.3;
  letter-spacing: -.04em;
  font-weight: 600;
  text-wrap: initial;
}
.public-home.storybook-home .hero h1 > span { display: block; color: #286485; text-decoration: none; }
.public-home.storybook-home .hero h1 em { color: #ad512c; font-style: normal; background: linear-gradient(transparent 76%, #ffe3a0 76%, #ffe3a0 94%, transparent 94%); }
.public-home.storybook-home .hero__lead { max-width: 29rem; margin: 1.4rem 0 0; font-size: 1.0625rem; line-height: 1.95; }
.public-home.storybook-home .hero__actions { display: flex; flex-wrap: wrap; margin: 1.8rem 0 0; gap: .7rem; }
.public-home.storybook-home .line-hint { font-size: .8125rem; line-height: 1.65; color: var(--home-muted); }
.public-home.storybook-home .hero__trust { display: flex; flex-wrap: wrap; gap: 0; margin: 1.6rem 0 0; }
.public-home.storybook-home .hero__trust li:nth-child(n) {
  padding: 0 1rem;
  border: 0;
  border-right: 1px solid #b9d2df;
  border-radius: 0;
  background: none;
  box-shadow: none;
  text-align: left;
}
.public-home.storybook-home .hero__trust li:first-child { padding-left: 0; }
.public-home.storybook-home .hero__trust li:last-child { border-right: 0; }
.public-home.storybook-home .hero__trust strong { color: #245d7d; font-size: .875rem; font-weight: 600; }
.public-home.storybook-home .hero__trust span { color: #526773; font-size: .75rem; }
.public-home.storybook-home .hero__media { width: 100%; max-width: 35rem; margin: 0 auto; padding: 0 0 1.8rem; }
.public-home.storybook-home .hero__picture {
  border: 8px solid rgb(255 255 255 / 80%);
  border-radius: 47% 47% 1.8rem 1.8rem;
  background: #dceef7;
  box-shadow: 0 18px 45px rgb(44 97 125 / 9%);
  transform: none;
}
.public-home.storybook-home .hero__picture img { width: 100%; aspect-ratio: 1; object-fit: contain; filter: none; transform: none; }
.public-home.storybook-home .hero__signature {
  position: absolute;
  right: 0;
  bottom: .7rem;
  margin: 0;
  padding: .55rem 1.2rem;
  background: #fffdf8;
  border: 1px solid #d7e5eb;
  border-radius: .7rem;
  color: #2d6280;
  font-family: var(--font-display);
  font-size: 1.15rem;
  line-height: 1.5;
  transform: rotate(-3deg);
  box-shadow: 0 5px 14px rgb(32 62 80 / 7%);
}
.public-home.storybook-home .hero__hello { position: absolute; z-index: 1; top: 3rem; left: -.75rem; display: grid; gap: .2rem; max-width: 12rem; padding: .8rem 1.1rem; border: 2px solid #deaf70; border-radius: 1.25rem 1.25rem 1.25rem .25rem; background: #fff6d9; color: #385c70; box-shadow: 0 5px 0 rgb(159 114 54 / 12%); text-decoration: none; transform: rotate(-5deg); }
.public-home.storybook-home .hero__hello strong { color: #a4512e; font: 600 1.65rem/1.1 var(--font-display); }
.public-home.storybook-home .hero__hello > span { font-size: .875rem; line-height: 1.65; }
.public-home.storybook-home .hero__hello:hover { background: #ffecc0; }
.public-home.storybook-home .hero__note {
  position: static;
  display: inline-flex;
  align-items: center;
  gap: .9rem;
  max-width: none;
  min-height: 44px;
  padding: .25rem 0;
  margin: .7rem 0 0;
  border: 0;
  background: transparent;
  color: #2d6280;
  font-size: .875rem;
  font-weight: 500;
  box-shadow: none;
  text-decoration: underline;
  text-underline-offset: .3em;
}
.public-home.storybook-home .hero__note > img { width: 4.5rem; height: 4.5rem; padding: .25rem; object-fit: contain; flex-shrink: 0; }
.public-home.storybook-home .home-section { padding-block: clamp(3.5rem, 7vw, 6rem); scroll-margin-top: 1rem; }
.public-home.storybook-home .home-section[data-chapter] { border: 0; }
.public-home.storybook-home .section-title { font-size: clamp(1.7rem, 3.1vw, 2.6rem); line-height: 1.45; }
.public-home.storybook-home .section-kicker { color: #9b492a; font-size: .875rem; font-weight: 500; letter-spacing: .1em; }
.public-home.storybook-home .section-kicker::before { background: #d38951; width: 1.5rem; height: 2px; }
.public-home.storybook-home .section-lead { font-size: 1rem; line-height: 1.85; }
.public-home.storybook-home .quick-facts { padding-block: 2.8rem 3.5rem; background: #fffdf8; }
.public-home.storybook-home .quick-facts .section-heading { text-align: left; margin: 0 0 1.5rem; }
.public-home.storybook-home .quick-facts .section-kicker { display: none; }
.public-home.storybook-home .quick-facts .section-title { font-size: 1.35rem; color: #386b85; }
.public-home.storybook-home .quick-facts__grid { gap: 1.5rem; }
.public-home.storybook-home .fact-card:nth-child(n) {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  align-items: center;
  gap: .9rem;
  min-height: 0;
  padding: 1.3rem 1rem;
  border: 1px solid #d8c49d;
  border-radius: 1.5rem .65rem 1.5rem .65rem;
  background: #fff0d6;
  box-shadow: 0 5px 0 #edddbd;
}
.public-home.storybook-home .fact-card:nth-child(2) { background: #eaf3e8; border-color: #c2d6ba; box-shadow: 0 5px 0 #dae7d5; }
.public-home.storybook-home .fact-card:nth-child(3) { background: #e6f2fa; border-color: #b6d5e4; box-shadow: 0 5px 0 #d1e6f0; }
.public-home.storybook-home .fact-card__image { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; padding: .2rem; border-radius: 0; }
.public-home.storybook-home .fact-card__copy { min-width: 0; }
.public-home.storybook-home .fact-card__copy > span { color: #6d634e; font-size: .8125rem; }
.public-home.storybook-home .fact-card::before { display: none; }
.public-home.storybook-home a.fact-card { color: var(--home-ink); text-decoration: none; }
.public-home.storybook-home a.fact-card:hover h3 { text-decoration: underline; text-underline-offset: .3em; }
.public-home.storybook-home .fact-card h3 > span { color: #9b542c; margin-left: .4rem; }
.public-home.storybook-home .fact-card > span:first-child { display: inline; font-size: .8125rem; color: #95642c; padding: 0; }
.public-home.storybook-home .fact-card h3 { margin: .15rem 0 .4rem; font-size: 1.0625rem; }
.public-home.storybook-home .fact-card p { margin: 0; font-size: .875rem; line-height: 1.8; }
.public-home.storybook-home .courses { background: #f0f6f8; }
.public-home.storybook-home .cat-guide,
.public-home.storybook-home .courses .cat-guide,
.public-home.storybook-home .schedule .cat-guide {
  grid-template-columns: 7.5rem minmax(0, 1fr);
  max-width: 40rem;
  margin: 0 auto 1.8rem;
  gap: 1rem;
  align-items: center;
}
.public-home.storybook-home .cat-guide__image { width: 7.5rem; height: 7.5rem; padding: .35rem; border-radius: 0; border: 0; background: transparent; box-shadow: none; object-fit: contain; }
.public-home.storybook-home .cat-guide__body,
.public-home.storybook-home .schedule .cat-guide__body { border: 1px solid #c7dfe9; border-radius: 1.25rem 1.25rem 1.25rem .25rem; padding: .9rem 1.2rem; background: #fffdf8; box-shadow: 0 4px 0 rgb(40 100 133 / 7%); }
.public-home.storybook-home .cat-guide__body::before { display: none; }
.public-home.storybook-home .cat-guide__title { font-size: 1rem; }
.public-home.storybook-home .cat-guide p { font-size: .875rem; line-height: 1.8; }
.public-home.storybook-home .age-filter { display: flex; flex-wrap: wrap; gap: .55rem; margin: 0 0 2rem; padding: 0; overflow: visible; white-space: normal; }
.public-home.storybook-home .age-chip:nth-child(n) { padding: .65rem 1.1rem; min-height: 44px; max-width: 100%; white-space: normal; background: #fff; border: 1px solid #cadce5; border-radius: .85rem .85rem .85rem .3rem; color: #385c70; font-size: .9375rem; font-weight: 500; box-shadow: 0 3px 0 #d9e6ec; }
.public-home.storybook-home .age-chip[aria-pressed="true"] { background: #286485; color: #fff; border-color: #286485; box-shadow: 0 3px 0 #173e56; text-decoration: underline; text-underline-offset: .25em; }
.public-home.storybook-home .age-chip::after { display: none; }
.public-home.storybook-home .course-grid { gap: 1.7rem; align-items: stretch; }
.public-home.storybook-home .course-card:nth-child(n) { display: flex; flex-direction: column; min-width: 0; border: 1px solid #c9dce5; border-bottom: 5px solid var(--course-accent); border-radius: 1.65rem .7rem 1.65rem .7rem; background: #fffdf8; box-shadow: 0 7px 0 rgb(40 100 133 / 6%); }
.public-home.storybook-home .course-card:nth-child(5n + 1) { --course-accent: #78abc2; --course-tint: #e4f2f9; }
.public-home.storybook-home .course-card:nth-child(5n + 2) { --course-accent: #ce9567; --course-tint: #fae8d5; }
.public-home.storybook-home .course-card:nth-child(5n + 3) { --course-accent: #91ae80; --course-tint: #eaf2dd; }
.public-home.storybook-home .course-card:nth-child(5n + 4) { --course-accent: #9b94bd; --course-tint: #f0ecf6; }
.public-home.storybook-home .course-card:nth-child(5n + 5) { --course-accent: #c3a357; --course-tint: #fff1cb; }
.public-home.storybook-home .course-card[hidden] { display: none !important; }
.public-home.storybook-home .course-card:focus-within { outline: 2px solid #286485; outline-offset: 4px; }
.public-home.storybook-home .course-card::before,
.public-home.storybook-home .course-card__media::before,
.public-home.storybook-home .course-card__media::after { display: none; }
.public-home.storybook-home .course-card:nth-child(n) .course-card__media { display: grid; place-items: center; min-width: 0; min-height: 0; padding: 1.4rem; background: var(--course-tint); border-bottom: 1px solid rgb(32 62 80 / 8%); }
.public-home.storybook-home .course-card__media img { width: min(11rem, 100%); height: auto; aspect-ratio: 1; margin: 0; padding: .55rem; border: 1px solid rgb(32 62 80 / 10%); border-radius: .3rem 1rem 1rem .3rem; background: #fffdf8; box-shadow: 4px 5px 0 rgb(32 62 80 / 10%); object-fit: contain; transform: rotate(-3deg); }
.public-home.storybook-home .course-card:nth-child(even) .course-card__media img { transform: rotate(3deg); }
.public-home.storybook-home .course-card__body { flex: 1; min-width: 0; padding: 1.3rem 1.4rem 1rem; gap: 1rem; }
.public-home.storybook-home .course-card__title { min-height: 0; font-size: 1.28rem; line-height: 1.5; }
.public-home.storybook-home .course-card__meta { grid-template-columns: 1fr; gap: .5rem; }
.public-home.storybook-home .course-card__meta > div { display: grid; gap: .4rem; padding: .4rem 0; background: none; border: 0; border-bottom: 1px solid #e5ebee; border-radius: 0; grid-template-columns: minmax(0, 24%) minmax(0, 1fr); }
.public-home.storybook-home .course-card__meta :is(dt, dd) { min-width: 0; overflow-wrap: anywhere; }
.public-home.storybook-home .course-card__meta dt { font-size: .875rem; font-weight: 400; color: #657986; }
.public-home.storybook-home .course-card__meta dd { font-size: .9375rem; font-weight: 500; line-height: 1.65; }
.public-home.storybook-home .course-card__meta > div:last-child dd { color: #9a4929; }
.public-home.storybook-home .course-card__features { gap: .3rem; }
.public-home.storybook-home .course-card__features li { border: 0; border-radius: 0; padding: 0; background: none; color: #586d79; font-size: .875rem; font-weight: 400; line-height: 1.7; }
.public-home.storybook-home .course-card__features li + li::before { content: "／"; color: #a8bbc4; padding-inline: .2rem; }
.public-home.storybook-home .course-card__footer { padding: 0 1.4rem 1.4rem; }
.public-home.storybook-home .course-card__footer .button--line { width: 100%; min-width: 0; white-space: normal; border: 1px solid #b7d4c6; color: #17643a; background: #f0f8f2; box-shadow: 0 3px 0 #d7e8dd; font-size: .9375rem; }
.public-home.storybook-home .schedule { background: #fffdf8; }
.public-home.storybook-home .schedule-grid { grid-template-columns: 1fr; gap: 0; border-top: 1px solid #cbdee7; }
.public-home.storybook-home .schedule-card:nth-child(n) {
  display: grid;
  grid-template-columns: 1.1fr 1.2fr .8fr .8fr auto;
  align-items: center;
  gap: 1rem;
  padding: 1.3rem .5rem;
  border: 0;
  border-bottom: 1px solid #dbe6eb;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.public-home.storybook-home .schedule-card > * { grid-column: auto; min-width: 0; }
.public-home.storybook-home .schedule-card__top { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; border: 0; }
.public-home.storybook-home .schedule-card__day { min-width: 3.2rem; padding: .25rem .5rem; border: 0; background: #e6f1f7; color: #286485; font-size: .875rem; }
.public-home.storybook-home .schedule-card__time { color: #385c70; font-size: .875rem; font-weight: 500; line-height: 1.7; }
.public-home.storybook-home .schedule-card h3 { margin: 0; font-size: 1.0625rem; }
.public-home.storybook-home .schedule-card__age,
.public-home.storybook-home .schedule-card__price { margin: 0; font-size: .875rem; font-weight: 400; overflow-wrap: anywhere; }
.public-home.storybook-home .schedule-card__link { min-height: 44px; display: inline-flex; align-items: center; padding: .5rem 0; border: 0; background: none; font-size: .875rem; box-shadow: none; }
.public-home.storybook-home .teacher { background: #e4f0f5; }
.public-home.storybook-home .teacher__grid { gap: 3.5rem; align-items: center; }
.public-home.storybook-home .teacher__media > img:first-child { width: 100%; border-radius: 1.4rem; border: 6px solid #fff; box-shadow: 0 12px 30px rgb(32 62 80 / 8%); transform: none; }
.public-home.storybook-home .teacher__badge { display: none; }
.public-home.storybook-home .teacher__content { padding: 0; border: 0; background: none; box-shadow: none; }
.public-home.storybook-home .teacher__content .section-title { font-size: clamp(1.7rem, 2.8vw, 2.4rem); }
.public-home.storybook-home .teacher__quote { margin: 1.3rem 0; padding: .2rem 0 .2rem 1rem; border-left: 3px solid #bd7840; border-radius: 0; background: none; font-family: var(--font-story); font-size: 1.18rem; line-height: 1.85; }
.public-home.storybook-home .teacher__features { gap: .5rem; }
.public-home.storybook-home .teacher__features span:nth-child(n) { padding: .35rem .7rem; border: 1px solid #c4dae4; border-radius: .5rem; background: rgb(255 255 255 / 55%); color: #476779; font-size: .875rem; font-weight: 400; }
.public-home.storybook-home .cat-friends { margin-top: 4.5rem; padding: 2.5rem; border: 1px solid #bfd9e6; border-radius: 1.5rem; background: #f7fbfc; }
.public-home.storybook-home .cat-friends__heading { max-width: 42rem; }
.public-home.storybook-home .cat-friends__heading h3 { font-size: 1.65rem; }
.public-home.storybook-home .cat-friends__grid { gap: 2rem; margin-top: 1.8rem; }
.public-home.storybook-home .cat-friend-card { display: grid; grid-template-columns: 40% 1fr; gap: 1.2rem; align-items: center; overflow: visible; border: 0; background: none; box-shadow: none; }
.public-home.storybook-home .cat-friend-card > img { height: auto; min-height: 0; aspect-ratio: 1; padding: .5rem; border-radius: 0; background: transparent; object-fit: contain; box-shadow: none; }
.public-home.storybook-home .cat-friend-card__body { padding: 0; }
.public-home.storybook-home .cat-friend-card__tag { padding: 0; border: 0; background: none; color: #9b542c; font-size: .875rem; font-weight: 500; }
.public-home.storybook-home .cat-friend-card h4 { margin: .3rem 0 .6rem; font-size: 1.05rem; line-height: 1.65; }
.public-home.storybook-home .cat-friend-card p { padding: 0; font-size: .875rem; line-height: 1.8; }
.public-home.storybook-home .cat-play { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; margin-top: 3rem; padding: clamp(1.4rem, 3vw, 2.5rem); border: 2px solid #dabc83; border-radius: 2rem .8rem 2rem .8rem; background: #fff0d3; scroll-margin-top: 1.5rem; }
.public-home.storybook-home .cat-play__intro { min-width: 0; }
.public-home.storybook-home .cat-play h3 { margin: .4rem 0 1rem; font-size: clamp(1.45rem, 2.3vw, 1.9rem); }
.public-home.storybook-home .cat-play__intro > p:not(.section-kicker) { line-height: 1.85; }
.public-home.storybook-home .cat-play__choices { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.4rem; }
.public-home.storybook-home .cat-play__choice { display: flex; flex: 1 1 9rem; align-items: center; gap: .6rem; min-height: 3.5rem; padding: .55rem .75rem; border: 2px solid #c1cdd1; border-radius: .9rem; background: #fffdf8; color: #385c70; font: inherit; font-weight: 600; cursor: pointer; }
.public-home.storybook-home .cat-play__choice img { width: 3.5rem; height: 3.5rem; flex-shrink: 0; padding: .2rem; border-radius: 0; object-fit: contain; }
.public-home.storybook-home .cat-play__choice[aria-pressed="true"] { border-color: #286485; background: #e4f1f8; color: #244e66; box-shadow: 0 3px 0 #286485; }
.public-home.storybook-home .cat-play__privacy { margin: 1.2rem 0 0; color: #586675; font-size: .875rem; }
.public-home.storybook-home .cat-play__card { min-width: 0; display: grid; grid-template-columns: minmax(6.5rem, 30%) minmax(0, 1fr); column-gap: 1.2rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid #cbdde5; border-radius: 1.25rem; background: #fffdf8; box-shadow: 0 7px 0 rgb(40 100 133 / 7%); }
.public-home.storybook-home .cat-play__scene { align-self: center; min-width: 0; }
.public-home.storybook-home .cat-play__scene img { width: 100%; height: auto; aspect-ratio: 1; padding: .45rem; object-fit: contain; border-radius: 0; transform-origin: 50% 90%; }
.public-home.storybook-home .cat-play__card > noscript { grid-column: 1 / -1; }
.public-home.storybook-home .cat-play__activity { min-height: 14rem; }
.public-home.storybook-home .cat-play__progress { margin: 0 0 1.1rem; color: #637580; font-size: .875rem; letter-spacing: .04em; }
.public-home.storybook-home .cat-play__english { margin: 0 0 .3rem; color: #286485; font: 500 clamp(1.85rem, 3vw, 2.6rem)/1.3 var(--font-display); overflow-wrap: anywhere; }
.public-home.storybook-home .cat-play__translation { margin: .4rem 0 1.2rem; color: #984c2b; font-size: 1.125rem; }
.public-home.storybook-home .cat-play__instruction { margin: 0; font-size: 1rem; line-height: 1.85; }
.public-home.storybook-home .cat-play__actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-top: 1.5rem; }
.public-home.storybook-home .cat-play__actions .button { flex: 1 1 8rem; cursor: pointer; }
.public-home.storybook-home .cat-play__actions .text-link { min-height: 44px; display: inline-flex; align-items: center; font-size: .875rem; }
.public-home.storybook-home .gallery { background: #fffdf8; }
.public-home.storybook-home .activity-tags { margin: -1rem 0 2rem; justify-content: center; gap: .6rem 1.2rem; }
.public-home.storybook-home .activity-tags li:nth-child(n) { padding: 0; border: 0; background: none; color: #536d7c; font-size: .875rem; font-weight: 400; }
.public-home.storybook-home .activity-tags li > span { display: none; }
.public-home.storybook-home .gallery-grid { display: grid; gap: 1.5rem; margin-inline: 0; padding: 0; overflow: visible; scroll-snap-type: none; }
.public-home.storybook-home .gallery-card:nth-child(n) { border: 0; border-radius: 1.1rem; background: #f1f6f8; box-shadow: none; grid-column: auto; }
.public-home.storybook-home .gallery-card > img { aspect-ratio: 4 / 3; object-fit: cover; }
.public-home.storybook-home .gallery-card__body { border: 0; padding: 1.4rem; background: #f1f6f8; }
.public-home.storybook-home .gallery-card__body h3 { font-size: 1.1rem; }
.public-home.storybook-home .gallery-card__body p { font-size: .875rem; }
.public-home.storybook-home .trial-steps { background: #f7edda; }
.public-home.storybook-home .trial-steps__grid { gap: 1.5rem; }
.public-home.storybook-home .trial-step:nth-child(n) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto 1fr; align-items: start; gap: .8rem; min-width: 0; padding: 1.4rem; border: 1px solid #c5dce5; border-bottom-width: 4px; border-radius: 1.65rem .7rem 1.65rem .7rem; background: #f4fbfd; box-shadow: 0 6px 0 rgb(108 79 38 / 5%); text-align: left; }
.public-home.storybook-home .trial-step:nth-child(2) { background: #f5f8e9; border-color: #d1d8b5; }
.public-home.storybook-home .trial-step:nth-child(3) { background: #fffaf1; border-color: #ddc79e; }
.public-home.storybook-home .trial-step > span:first-child { grid-column: 1; grid-row: 1; align-self: start; width: auto; height: auto; display: block; margin: .5rem 0 0; padding: 0; border: 0; background: none; color: #98612d; font-size: 2.6rem; font-family: var(--font-display); font-weight: 500; box-shadow: none; }
.public-home.storybook-home .trial-step > img { grid-column: 2; grid-row: 1; justify-self: end; width: min(7.5rem, 100%); height: auto; aspect-ratio: 1; margin: 0; padding: .45rem; border: 0; border-radius: .6rem; background: transparent; object-fit: contain; box-shadow: none; transform: none; }
.public-home.storybook-home .trial-step > :is(h3, p) { grid-column: 1 / -1; min-width: 0; margin: 0; }
.public-home.storybook-home .trial-step h3 { grid-row: 2; font-size: 1.18rem; }
.public-home.storybook-home .trial-step p { grid-row: 3; font-size: 1rem; line-height: 1.85; }
.public-home.storybook-home .faq { background: #fffdf8; }
.public-home.storybook-home .faq-list { max-width: 54rem; margin-inline: auto; }
.public-home.storybook-home .faq-item:nth-child(n) { border: 0; border-bottom: 1px solid #d7e4eb; border-radius: 0; background: none; box-shadow: none; }
.public-home.storybook-home .faq-item summary { padding: 1.35rem .4rem; font-weight: 500; font-size: 1.0625rem; }
.public-home.storybook-home .faq-item summary::after { flex-shrink: 0; color: #286485; background: #e8f2f7; }
.public-home.storybook-home .faq-item > p { padding: 0 .4rem 1.4rem; color: #526773; }
.public-home.storybook-home .faq-item[open] { background: #edf6fa; border-radius: .75rem; }
.public-home.storybook-home .faq-item[open] :is(summary, p) { padding-inline: 1rem; }
.public-home.storybook-home .location { background: #f0f6f8; }
.public-home.storybook-home .location__content address p:nth-child(n) { border: 0; border-radius: 0; padding: .7rem 0; border-bottom: 1px solid #cddfe8; background: none; }
.public-home.storybook-home .location__card { background: #fff; border: 1px solid #d5e4eb; border-radius: 1.3rem; box-shadow: none; }
.public-home.storybook-home .location__cat { padding: .5rem; border: 0; border-radius: 0; object-fit: contain; }
.public-home.storybook-home .location__content { min-width: 0; }
.public-home.storybook-home .location__actions .button,
.public-home.storybook-home .social-links a { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.public-home.storybook-home .location__social { margin-top: 1.6rem; }
.public-home.storybook-home .location__social > p { margin: 0 0 .6rem; color: #526773; font-size: .9375rem; }
.public-home.storybook-home .social-links { display: flex; flex-wrap: wrap; gap: .65rem; }
.public-home.storybook-home .social-links a { display: inline-flex; align-items: center; gap: 1.25rem; min-height: 2.75rem; padding: .55rem 1rem; border: 1px solid #bfd5e1; border-radius: .65rem; background: #fff; color: #245d7d; text-decoration: none; font-weight: 600; }
.public-home.storybook-home .social-links a:hover { background: #e5f0f6; border-color: #7099af; }
.public-home.storybook-home .social-links a span[aria-hidden] { font-weight: 400; }
.public-home.storybook-home .final-cta { margin: 0; width: 100%; border: 0; border-radius: 0; padding: 3.5rem 1.5rem; background: #254f68; box-shadow: none; color: #fff; }
.public-home.storybook-home .final-cta__inner { max-width: 64rem; margin: auto; gap: 2rem; }
.public-home.storybook-home .final-cta__inner > * { min-width: 0; max-width: 100%; }
.public-home.storybook-home .final-cta__inner .button--line { min-width: 0; max-width: 100%; }
.public-home.storybook-home .final-cta__inner > img { width: 9rem; padding: .5rem; border: 0; border-radius: 0; background: none; filter: none; object-fit: contain; box-shadow: none; }
.public-home.storybook-home .final-cta h2 { color: #fff; font-size: clamp(1.65rem, 3vw, 2.2rem); }
.public-home.storybook-home .final-cta p { color: #d4e7f1; }
.public-home.storybook-home .final-cta .section-kicker { color: #f5d299; }
.public-home.storybook-home .final-cta .button--line { background: #fffdf8; color: #17643a; border-color: #fffdf8; }
.public-home.storybook-home .site-footer { background: #1d3d51; }
.public-home.storybook-home .site-footer__inner { padding-block: 2rem; }
.public-home.storybook-home .footer-social { border-top: 1px solid rgb(255 255 255 / 20%); padding-top: .65rem; }
.public-home.storybook-home .footer-social a { gap: .25rem; }
.public-home.storybook-home .mobile-line-bar { background: #087d44; color: #fff; border: 0; box-shadow: 0 -4px 20px rgb(32 62 80 / 8%); font-size: 1rem; }
.public-home.storybook-home .text-link { color: #245d7d; }
.public-home.storybook-home :is(a, button, summary):focus-visible { outline: 3px solid #a8551b; outline-offset: 5px; }
.public-home.storybook-home .schedule-card:focus-within { background: #f0f6f8; }

@media (min-width: 56rem) {
  .public-home.storybook-home .quick-facts__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .public-home.storybook-home .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-home.storybook-home .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .public-home.storybook-home .teacher__grid { grid-template-columns: .95fr 1.05fr; }
  .public-home.storybook-home .cat-friends__grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 70rem) {
  .public-home.storybook-home .course-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 55.99rem) {
  .public-home.storybook-home .hero__inner { grid-template-columns: 1fr; gap: 0; padding-block: 2rem 2.5rem; }
  .public-home.storybook-home .hero__content { display: contents; }
  .public-home.storybook-home .hero__intro { grid-row: 1; text-align: center; }
  .public-home.storybook-home .hero__eyebrow { margin-bottom: .85rem; font-size: .8125rem; }
  .public-home.storybook-home .hero__content h1 { font-size: clamp(2rem, 6.7vw, 3.3rem); line-height: 1.3; }
  .public-home.storybook-home .hero__lead { max-width: 31rem; margin: .9rem auto 0; font-size: 1rem; line-height: 1.8; }
  .public-home.storybook-home .hero__media { grid-row: 2; width: min(100%, 27rem); margin-top: 1.4rem; padding-bottom: 1.2rem; }
  .public-home.storybook-home .hero__picture { border-width: 5px; }
  .public-home.storybook-home .hero__signature { right: 0; bottom: .25rem; font-size: 1rem; padding: .4rem .9rem; }
  .public-home.storybook-home .hero__hello { top: 1.2rem; left: .2rem; max-width: 9rem; padding: .6rem .8rem; }
  .public-home.storybook-home .hero__hello strong { font-size: 1.25rem; }
  .public-home.storybook-home .hero__hello > span { font-size: .8125rem; }
  .public-home.storybook-home .hero__actions { grid-row: 3; display: grid; grid-template-columns: 1fr 1fr; margin: 1.25rem 0 0; }
  .public-home.storybook-home .hero__actions .button { padding-inline: .6rem; font-size: .9375rem; }
  .public-home.storybook-home .hero__content > .line-hint { grid-row: 4; text-align: center; margin-bottom: 0; }
  .public-home.storybook-home .hero__trust { grid-row: 5; justify-content: center; margin-top: 1.2rem; }
  .public-home.storybook-home .hero__trust li:nth-child(n) { text-align: center; }
  .public-home.storybook-home .hero__note { grid-row: 6; justify-self: center; margin-top: 1.1rem; }
  .public-home.storybook-home .schedule-card:nth-child(n) { grid-template-columns: 1fr 1fr; gap: .55rem 1rem; padding: 1.25rem .3rem; }
  .public-home.storybook-home .schedule-card__top { grid-column: 1 / -1; }
  .public-home.storybook-home .schedule-card h3 { grid-column: 1 / -1; }
  .public-home.storybook-home .schedule-card__link { grid-column: 1 / -1; justify-self: start; }
  .public-home.storybook-home .cat-friends { padding: 1.5rem; }
  .public-home.storybook-home .cat-friend-card { grid-template-columns: 34% 1fr; }
  .public-home.storybook-home .teacher__grid { gap: 2rem; }
  .public-home.storybook-home .teacher__media { max-width: 31rem; margin: 0 auto; }
  .public-home.storybook-home .cat-play { grid-template-columns: 1fr; }
  .public-home.storybook-home .final-cta__inner { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 39.99rem) {
  .public-home.storybook-home .section-shell,
  .public-home.storybook-home .site-header__inner,
  .public-home.storybook-home .site-footer__inner { width: calc(100% - 2.2rem); }
  .public-home.storybook-home .site-brand > span strong { font-size: 1.13rem; }
  .public-home.storybook-home .hero__media { width: min(100%, 22rem); }
  .public-home.storybook-home .hero__trust li:nth-child(n) { padding-inline: .6rem; }
  .public-home.storybook-home .hero__trust strong { font-size: .8125rem; }
  .public-home.storybook-home .hero__trust span { font-size: .75rem; }
  .public-home.storybook-home .quick-facts__grid { grid-template-columns: 1fr; gap: 1.4rem; }
  .public-home.storybook-home .fact-card:nth-child(n) { grid-template-columns: minmax(0, 26%) minmax(0, 1fr); padding: 1rem; }
  .public-home.storybook-home .course-grid,
  .public-home.storybook-home .gallery-grid { grid-template-columns: 1fr; }
  .public-home.storybook-home .course-card:nth-child(n) .course-card__media { padding: 1.2rem; }
  .public-home.storybook-home .course-card__media img { width: min(10rem, 100%); height: auto; }
  .public-home.storybook-home .course-card__body { padding-top: 1.1rem; }
  .public-home.storybook-home .course-card__meta > div { padding-block: .25rem; }
  .public-home.storybook-home .cat-guide,
  .public-home.storybook-home .schedule .cat-guide { grid-template-columns: minmax(0, 24%) minmax(0, 1fr); gap: .7rem; }
  .public-home.storybook-home .cat-guide__image { width: 100%; height: auto; aspect-ratio: 1; }
  .public-home.storybook-home .cat-guide__body,
  .public-home.storybook-home .schedule .cat-guide__body { padding: .7rem .8rem; }
  .public-home.storybook-home .cat-friends { padding: 1.3rem; margin-top: 3rem; }
  .public-home.storybook-home .cat-friends__heading { text-align: left; }
  .public-home.storybook-home .cat-friend-card { gap: .9rem; }
  .public-home.storybook-home .cat-play { padding: 1.2rem; gap: 1.5rem; }
  .public-home.storybook-home .cat-play__choice { flex-basis: 7rem; padding-inline: .5rem; gap: .4rem; font-size: .9375rem; }
  .public-home.storybook-home .cat-play__choice img { width: 2.5rem; height: 2.5rem; }
  .public-home.storybook-home .cat-play__activity { min-height: 14rem; }
  .public-home.storybook-home .cat-play__card { grid-template-columns: minmax(0, 1fr); }
  .public-home.storybook-home .cat-play__scene { width: min(7rem, 100%); justify-self: center; margin: -.5rem 0 .8rem; }
  .public-home.storybook-home .cat-play__activity { min-height: 0; }
  .public-home.storybook-home .final-cta__inner { text-align: center; }
  .public-home.storybook-home .final-cta__inner > img { margin: auto; width: 7rem; }
}

/* Brief, non-looping entrances. All content stays visible if scripts fail. */
@media (prefers-reduced-motion: no-preference) {
  .public-home.storybook-home .hero__intro { animation: story-arrive 650ms both; }
  .public-home.storybook-home .hero__media { animation: story-arrive 800ms 120ms both; }
  .public-home.storybook-home .hero__hello { animation: hello-wiggle 900ms 800ms 2; }
  .public-home.storybook-home .story-enter { animation: story-arrive 650ms var(--story-delay, 0ms) both; }
  @keyframes story-arrive { from { opacity: .45; transform: translateY(14px); } to { opacity: 1; transform: none; } }
  @keyframes hello-wiggle { 0%, 100% { transform: rotate(-5deg); } 45% { transform: translateY(-5px) rotate(2deg); } 75% { transform: rotate(-7deg); } }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .public-home.storybook-home .fact-card { transition: transform 220ms ease, box-shadow 220ms ease; }
  .public-home.storybook-home .fact-card:hover { transform: translateY(-5px) rotate(-1deg); }
  .public-home.storybook-home .fact-card__image { transition: transform 240ms ease; }
  .public-home.storybook-home .fact-card:hover .fact-card__image { transform: rotate(5deg); }
  .public-home.storybook-home .cat-play__choice:hover img { transform: translateY(-3px); }
  .public-home.storybook-home .course-card { transition: transform 220ms ease, box-shadow 220ms ease; }
  .public-home.storybook-home .course-card:hover { transform: translateY(-5px); box-shadow: 0 16px 32px rgb(32 62 80 / 10%); }
  .public-home.storybook-home .course-card__media img,
  .public-home.storybook-home .cat-friend-card > img { transition: transform 250ms ease; }
  .public-home.storybook-home .course-card:hover .course-card__media img { transform: rotate(-4deg) scale(1.04); }
  .public-home.storybook-home .course-card:nth-child(even):hover .course-card__media img { transform: rotate(4deg) scale(1.04); }
  .public-home.storybook-home .trial-step > img { transition: transform 240ms ease; }
  .public-home.storybook-home .trial-step:hover > img { transform: translateY(-4px) rotate(3deg); }
  .public-home.storybook-home .cat-friend-card:hover > img { transform: translateY(-4px) rotate(-2deg); }
  .public-home.storybook-home .button:hover { transform: translateY(-2px); }
  .public-home.storybook-home .button--line:hover { background: #065b33; color: #fff; }
  .public-home.storybook-home .button--secondary:hover { background: #edf5f8; }
  .public-home.storybook-home .gallery-card:hover > img { transform: scale(1.025); }
}
@media (prefers-reduced-motion: no-preference) {
  .public-home.storybook-home :is(.button, .age-chip, .cat-play__choice):active { transform: translateY(2px); box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) {
  .public-home.storybook-home .hero__intro,
  .public-home.storybook-home .hero__media,
  .public-home.storybook-home .story-enter { animation: none !important; opacity: 1 !important; transform: none !important; }
}
@media (forced-colors: active) {
  .public-home.storybook-home :is(.hero, .teacher, .courses, .schedule, .final-cta, .site-footer, .mobile-line-bar, .cat-play, .cat-play__card) { background: Canvas; color: CanvasText; }
  .public-home.storybook-home :is(.button, .age-chip, .hero__hello, .hero__signature, .course-card, .fact-card, .trial-step, .faq-item, .schedule-card, .cat-play__choice) { border: 1px solid ButtonText; background: ButtonFace; color: ButtonText; box-shadow: none; }
  .public-home.storybook-home :is(h1, h2, h3, h4, p, .section-kicker, .hero h1 > span, .hero h1 em) { color: CanvasText; }
  .public-home.storybook-home :is(.age-chip, .cat-play__choice)[aria-pressed="true"] { outline: 3px solid Highlight; outline-offset: 2px; }
  .public-home.storybook-home :is(a, button, summary):focus-visible { outline: 3px solid Highlight; }
}
@media print {
  .public-home.storybook-home,
  .public-home.storybook-home :is(.hero, .home-section, .final-cta, .cat-friends, .course-card, .fact-card, .gallery-card, .gallery-card__body, .site-footer, .cat-play, .cat-play__card) { background: #fff !important; color: #000 !important; box-shadow: none !important; }
  .public-home.storybook-home :is(h1, h2, h3, h4, p, .section-kicker, .hero h1 > span, .hero h1 em) { color: #000 !important; }
  .public-home.storybook-home .site-footer a { color: #000 !important; }
  .public-home.storybook-home :is(.hero__intro, .hero__media, .story-enter) { opacity: 1 !important; animation: none !important; transform: none !important; }
  .public-home.storybook-home :is(.hero__hello, .hero__signature, .hero__note, .hero__actions, .mobile-line-bar, .age-filter, .schedule-card__link, .cat-play__choices, .cat-play__actions) { display: none !important; }
  .public-home.storybook-home .hero__inner { display: block; padding-block: 1rem; }
  .public-home.storybook-home .hero__media { max-width: 16rem; }
  .public-home.storybook-home .home-section { padding-block: 1rem; }
  .public-home.storybook-home .schedule-card { break-inside: avoid; }
  .public-home.storybook-home .trial-step:nth-child(n) { background: #fff !important; box-shadow: none !important; break-inside: avoid; }
  .public-home.storybook-home .trial-step > img { display: none !important; }
  .public-home.storybook-home .course-card__media img { transform: none !important; }
}
