@charset "UTF-8";
/* v22: stable reading sizes, lighter artwork, and concise joining steps. */
@media (max-width: 980px) {
  .journey-v17 {
    --ej-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  }
  .ej-page {
    font: 400 1.125rem/1.72 var(--ej-sans);
    letter-spacing: 0;
    line-break: strict;
  }
  .ej-page p { overflow-wrap: break-word; }
}

@media (max-width: 700px) {
  .ej-wrap { max-width: 600px; padding-inline: 20px; }
  .ej-sky, .ej-closing { background-image: url('assets/journey-clouds-mobile-v22.webp'); }
  .ej-dialogue { background-image: url('assets/journey-moon-mobile-v22.webp'); }
  .ej-page h2, .ej-page h3 {
    font-family: var(--ej-sans);
    font-weight: 700;
    letter-spacing: -.015em;
    line-height: 1.4;
    overflow-wrap: anywhere;
    word-break: normal;
  }
  .ej-page h2 { font-size: 1.875rem; }
  .ej-page h3 { font-size: 1.75rem; }
  .ej-page p { margin-bottom: 12px; }
  .ej-page .ej-kind {
    font-size: .9375rem;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .02em;
    margin-bottom: 12px;
  }

  .ej-intro-spread { padding: 0; }
  .ej-intro-words { padding: 40px 20px 16px; }
  .ej-intro-words h2 { font-size: 1.875rem; line-height: 1.4; letter-spacing: -.015em; margin-bottom: 22px; }
  .ej-intro-words > p { font-size: 1.125rem; line-height: 1.72; }
  .ej-intro-words .ej-intro-lead { font-weight: 500; margin-bottom: 12px; }
  .ej-intro-words .ej-free-value { font-size: 1.3125rem; line-height: 1.55; letter-spacing: 0; margin-top: 22px; margin-bottom: 12px; }
  .ej-intro-words .ej-credit { font-size: .875rem; line-height: 1.6; letter-spacing: 0; margin-top: 24px; gap: 8px 12px; }
  .ej-credit::before { width: 24px; }
  .ej-intro-portrait { width: 76%; max-width: 252px; height: auto; aspect-ratio: 744/994; align-self: flex-end; }
  .ej-intro-portrait img { position: static; width: 100%; height: auto; object-fit: contain; }

  .ej-learning-heading { padding: 42px 0 26px; }
  .ej-learning-heading h2 { font-size: 1.875rem; line-height: 1.4; letter-spacing: -.015em; margin-bottom: 18px; }
  .ej-learning-heading p { font-size: 1.125rem; line-height: 1.72; margin-bottom: 10px; }
  .ej-learning-grid { gap: 24px; }
  .ej-panel-copy, .ej-session { padding: 24px 20px; }
  .ej-seminar-photo { aspect-ratio: 1500/1032; object-fit: contain; object-position: center; }
  .ej-seminar .ej-kind { font-size: .9375rem; }
  .ej-seminar h3, .ej-session h3 { font-size: 1.75rem; line-height: 1.4; letter-spacing: -.015em; }
  .ej-seminar .ej-seminar-purpose { font-size: 1.0625rem; line-height: 1.65; margin-top: 14px; }
  .ej-session h3 { margin-bottom: 18px; }
  .ej-session > p:not(.ej-kind) { font-size: 1.125rem; line-height: 1.72; margin-bottom: 14px; }
  .ej-session-photo { padding-top: 6px; }
  .ej-session-photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: 43% 44%; }
  .ej-session .ej-session-history { font-size: 1.0625rem !important; line-height: 1.72 !important; margin-top: 16px !important; }

  .ej-books { padding: 24px 20px; grid-template-columns: minmax(0,1.12fr) minmax(0,.88fr); gap: 22px 18px; }
  .ej-books h3 { font-size: 1.75rem; line-height: 1.4; letter-spacing: -.015em; margin-bottom: 14px; }
  .ej-books-copy > p:last-child { font-size: 1.125rem; line-height: 1.72; }
  .ej-book-main { width: 100%; max-width: 180px; justify-self: center; align-self: center; transform: none; }
  .ej-book-2017, .ej-book-wish { width: 92%; max-width: 132px; justify-self: center; margin: 0 !important; }
  .ej-book-2017 { transform: rotate(-2deg); }
  .ej-book-wish { transform: rotate(2deg); }
  .ej-book img { width: 100%; height: auto; }
  .ej-books .ej-books-example { font-size: .875rem; line-height: 1.65; margin-top: 0; }

  .ej-dialogue { padding: 30px 20px; gap: 26px; }
  .ej-dialogue h3 { font: 500 1.875rem/1.4 var(--ej-sans); letter-spacing: -.015em; margin-bottom: 16px; }
  .ej-dialogue-copy .ej-dialogue-future { font-size: 1.375rem; font-weight: 500; line-height: 1.55; letter-spacing: 0; margin-bottom: 14px; }
  .ej-dialogue-copy > p:last-child, .ej-dialogue-example > p:last-child { font-size: 1.0625rem; line-height: 1.72; }
  .ej-dialogue-example { padding-left: 16px; }
  .ej-dialogue-example .ej-example-label { font-size: .9375rem; line-height: 1.6; }
  .ej-dialogue-example .ej-dialogue-guests { font-size: 1.375rem; font-weight: 500; line-height: 1.5; letter-spacing: 0; }

  .ej-insights { padding-top: 42px; }
  .ej-insights-copy h2 { font-size: 1.875rem; line-height: 1.4; letter-spacing: -.015em; margin-bottom: 20px; }
  .ej-insights-copy > p:not(.ej-kind) { font-size: 1.125rem; line-height: 1.72; margin-bottom: 14px; }
  .ej-reading { padding: 24px 18px; margin-top: 26px; }
  .ej-reading h3 { font-size: 1.3125rem; line-height: 1.5; letter-spacing: 0; margin-bottom: 14px; }
  .ej-reading > p { font-size: 1.125rem; line-height: 1.72; }
  .ej-reading .ej-reading-date { font-size: .875rem; line-height: 1.65; }
  .ej-invitation .ej-invitation-title { font-size: 1.375rem; font-weight: 500; line-height: 1.55; }
  .ej-invitation > p:not(.join-note):not(.ej-invitation-title) { font-size: 1.0625rem; line-height: 1.72; margin-bottom: 24px; }
  .ej-invitation > p br { display: none; }

  .ej-letter { padding-block: 48px; gap: 26px; }
  .ej-letter-copy h2 { font-size: 1.875rem; line-height: 1.4; margin-bottom: 22px; }
  .ej-letter-copy > p:not(.ej-kind):not(.ej-signature) { font-size: 1.125rem; line-height: 1.75; margin-bottom: 16px; }
  .ej-letter-copy .ej-signature { font: 500 1.375rem/1.65 var(--serif); margin-top: 24px; }
  .ej-signature span { font: 400 .875rem/1.65 var(--ej-sans); }
  .ej-letter-photo { width: 72%; max-width: 230px; align-self: center; }
  .ej-letter-photo img { width: 100%; height: auto; max-height: none; object-fit: contain; }

  .ej-start h2 { font-size: 1.875rem; line-height: 1.4; }
  .ej-start > .ej-wrap > p { font-size: 1.125rem; line-height: 1.72; }
  .ej-steps h3 { font-size: 1.25rem; line-height: 1.5; letter-spacing: 0; margin-bottom: 12px; }
  .ej-steps p { font-size: 1.0625rem; line-height: 1.72; letter-spacing: 0; }
  .ej-step-action { font: 500 1.625rem/1.4 var(--ej-sans); letter-spacing: 0; gap: 12px; }
  .ej-step-place { font-size: .9375rem; line-height: 1.6; letter-spacing: .02em; }
  /* One action and one explanation per step; keep the desktop diagram. */
  .ej-steps { margin-top: 24px; }
  .ej-steps li {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 8px;
    padding: 20px 0 30px;
    margin: 0;
  }
  .ej-steps .ej-step-number {
    position: static;
    grid-column: 1;
    grid-row: 1;
    font-size: 1.875rem;
    line-height: 1;
    margin: 0;
  }
  .ej-steps .ej-step-map { display: none; }
  .ej-steps h3 { grid-column: 2; grid-row: 1; margin: 0; }
  .ej-steps p { grid-column: 2; grid-row: 2; margin: 0; }
  .ej-steps li:not(:last-child)::after {
    top: auto;
    right: auto;
    bottom: 15px;
    left: 11px;
    width: 9px;
    height: 9px;
  }
  .ej-steps li:last-child { padding-bottom: 0; }
  .ej-faq h2 { font-size: 1.875rem; line-height: 1.4; margin-bottom: 24px; }
  .ej-faq .faq-list summary { font-size: 1.0625rem; font-weight: 500; line-height: 1.65; letter-spacing: 0; padding-block: 20px; gap: 16px; }
  .ej-faq .faq-answer { font-size: 1.0625rem; line-height: 1.75; }
  .ej-closing h2 { font-size: 1.875rem; line-height: 1.45; }
  .ej-closing > .ej-wrap > p:not(.join-note) { font-size: 1.125rem; line-height: 1.72; }

  .ej-voices h2 { font-size: 1.875rem; line-height: 1.4; }
  .ej-page .ej-voices-lead { font-size: 1.125rem; line-height: 1.72; }
  .ej-page .ej-voice-topic { font-size: 1.0625rem; line-height: 1.65; letter-spacing: 0; }
  .ej-page .ej-voice-pending { font-size: 1rem; line-height: 1.72; }
  .ej-page .ej-voice-meta, .ej-page .ej-voices-note, .ej-page .ej-voices-status { font-size: .875rem; line-height: 1.7; }

  .journey-v17 > .site-header { padding-inline: 20px; }
  .journey-v17 > .site-header .brand { min-width: 0; }
  .journey-v17 > .site-header .brand > .wordmark { font-size: 1.3125rem; letter-spacing: .075em; }
  .journey-v17 > .site-header .mobile-menu { flex-shrink: 0; }
  .journey-v17 > .site-header .mobile-menu nav a { font-size: 1rem; line-height: 1.6; }
  .journey-v17 .hero-content { padding-inline: 20px; }
  .journey-v17 .hero-japanese { font-size: 2rem; line-height: 1.4; letter-spacing: 0; }
  .journey-v17 .hero-about, .journey-v17 .hero-purpose { font-size: 1.0625rem; line-height: 1.72; letter-spacing: 0; }
  .journey-v17 .hero-formats { font-size: .9375rem; line-height: 1.7; letter-spacing: 0; }
  .journey-v17 .hero .join-button, .ej-page .join-button, .journey-v17 .sticky-join .join-button { font-size: 1rem; line-height: 1.6; letter-spacing: 0; gap: 12px; }
  .ej-page .join-note { font-size: .875rem; line-height: 1.65; letter-spacing: 0; }
  .journey-v17 .footer > .wrap { padding-inline: 20px; }
  .journey-v17 .footer-meta { font-family: var(--ej-sans); font-size: .875rem; line-height: 1.7; letter-spacing: 0; }
}

@media (max-width: 359px) {
  .join-compact-break { display: block; }
  html { scroll-padding-bottom: calc(118px + env(safe-area-inset-bottom)); }
  .journey-v17 .footer { padding-bottom: calc(125px + env(safe-area-inset-bottom)); }
  .ej-intro-words h2, .ej-learning-heading h2, .ej-insights-copy h2,
  .ej-letter-copy h2, .ej-closing h2, .ej-voices h2, .ej-start h2,
  .ej-faq h2, .journey-v17 .hero-japanese { font-size: 1.75rem; }
  .ej-panel-copy, .ej-session, .ej-books, .ej-dialogue { padding-inline: 18px; }
  .ej-intro-words .ej-credit { gap: 8px; }
  .ej-credit::before { display: none; }
}
