html {
  font-size: min(100vw / 144, 100svh / 72, 13.333px);
  scroll-padding-top: var(--header-height);
  scroll-behavior: smooth;
}
@media (max-width: 1023px) {
  html { font-size: calc(100vw / 39); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  font-family: var(--font-ja);
  color: var(--color-ink);
  background: var(--color-paper);
  font-weight: 400;
}

.page {
  position: relative;
  overflow: clip;
  background: var(--color-paper);
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: 0.8rem;
  left: 0.8rem;
  z-index: 2000;
  padding: 1.2rem 1.6rem;
  background: var(--color-ink);
  color: var(--color-white);
  font-size: max(1.4rem, 14px);
  transform: translateY(-200%);
  transition: transform 0.2s;
}
.skip-link:focus { transform: none; }

:focus-visible {
  outline: 2px solid var(--color-ink);
  outline-offset: 3px;
}
.section--dark :focus-visible,
.cta__panel :focus-visible { outline-color: var(--color-paper); }

body {
  line-break: strict;
}

@supports (word-break: auto-phrase) {
  body { text-wrap: pretty; }
}

.hero__lead,
.btn > span { text-wrap-style: auto; }

.perspectives__heading,
.plan__includes {
  word-break: keep-all;
  overflow-wrap: anywhere;
}
h1, h2, h3, h4 { font-weight: 400; }

.num { font-family: var(--font-en); }

.nowrap { white-space: nowrap; }

.plan-license { font-size: 0.75em; }

@supports (word-break: auto-phrase) {
  :is(h1, h2, h3, h4, h5, .hero__lead, .cta__text, .voices__podcast-title, .faq__q-text, .archive-guide__lead, .btn span) {
    word-break: auto-phrase;
  }
}

:is(h1, h2, h3, h4, .cta__text, .voices__podcast-title, .faq__q-text, .btn > span):has(wbr) {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  height: 7.2rem;
  padding: 2.4rem;
  background: var(--color-ink);
  color: var(--color-white);
  font-size: 1.5rem;
  line-height: 2.4rem;
  white-space: nowrap;
  transition: background-color 0.3s, color 0.3s;
}

.btn {
  --btn-surface: var(--color-paper);
  --btn-on-surface: var(--color-ink);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: background-color 0.45s ease, color 0.45s ease;
}
.btn > * {
  position: relative;
  z-index: 1;
}
.btn:hover,
.btn:focus-visible {
  background: var(--btn-surface);
  color: var(--btn-on-surface);
}
.btn::before,
.btn::after {
  content: "";
  position: absolute;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1), opacity 0.5s ease;
}

.btn::before {
  left: -6%;
  bottom: -150%;
  width: 46%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle at 34% 30%, rgba(60, 114, 196, 0.85), rgba(110, 158, 218, 0.55) 42%, rgba(181, 206, 233, 0.22) 74%, rgba(234, 242, 250, 0) 100%);
  transform: translate(-25%, 35%) scale(0.55);
}

.btn::after {
  inset: 0;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 92'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='.75' y2='1'%3E%3Cstop stop-color='%23FFF1E6' stop-opacity='.15'/%3E%3Cstop offset='.5' stop-color='%23FF9E70' stop-opacity='.6'/%3E%3Cstop offset='1' stop-color='%23FF6A35' stop-opacity='.9'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M4 6 L96 0 L40 92 Z' fill='url(%23g)'/%3E%3C/svg%3E") no-repeat right 22% top 50% / auto 120%,
    radial-gradient(circle at 92% 0%, rgba(93, 185, 217, 0.75), rgba(169, 220, 234, 0.45) 22%, rgba(240, 248, 250, 0) 42%);
  transform: translateX(18%) rotate(-6deg);
  transition-delay: 0.08s;
}
.btn:hover::before,
.btn:focus-visible::before {
  opacity: 1;
  transform: none;
}
.btn:hover::after,
.btn:focus-visible::after {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .btn::before,
  .btn::after { transition: opacity 0.3s; transform: none; }
}
.btn--compact {
  height: 4.8rem;
  padding: 0.8rem 2.4rem;
}

.btn--compact::after { background-position: right 26% top 50%, 0 0; background-size: auto 84%, auto; }
.btn--light {
  background: var(--color-paper);
  color: var(--color-ink);
}

.btn__icon,
.link__icon {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: square;
  transition: transform 0.3s;
}
.btn:hover .btn__icon { transform: translateX(0.3rem); }
.btn[href^="#"]:not([href="#"]):hover .btn__icon { transform: translateY(0.3rem); }
.btn:hover .btn__icon--up { transform: translateY(-0.3rem); }

.link {
  display: inline-flex;
  align-items: center;
  gap: 1.6rem;
  height: 4.8rem;
  padding: 0.8rem 0;
  border-bottom: 1px solid var(--color-ink);
  font-size: 1.5rem;
  line-height: 2.4rem;
  white-space: nowrap;
}
.link:hover .link__icon { transform: translate(0.2rem, -0.2rem); }
.link--light { border-color: var(--color-paper); }

.section {
  padding: var(--space-section) var(--gutter);
}
.section--dark {
  background: var(--color-muted);
  color: var(--color-paper);
}

.section-label {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  padding-bottom: 2.4rem;
}
.section-label--compact { gap: 1.6rem; }
.section-label__index {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  font-family: var(--font-en);
  font-size: 1.6rem;
  line-height: 2.4rem;
  letter-spacing: 0.03rem;
  color: var(--color-muted);
}
.section-label__index::after {
  content: "";
  height: 1px;
  background: var(--color-line);
}
.section--dark .section-label__index { color: var(--color-paper); }
.section-label__title {
  font-size: 4rem;
  line-height: 1;
  font-weight: 400;
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--header-height);
  padding: 2.4rem var(--gutter);
}
.header > :not(.header__blur) { position: relative; }

.header__blur {
  position: absolute;
  inset: 0 0 -3.2rem;
  z-index: -1;
  pointer-events: none;
}
.header__blur span {
  position: absolute;
  inset: 0;
}
.header__blur span:nth-child(1) {
  backdrop-filter: blur(1px);
  -webkit-backdrop-filter: blur(1px);
  mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%);
}
.header__blur span:nth-child(2) {
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  mask-image: linear-gradient(to bottom, #000 0%, #000 40%, transparent 80%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 40%, transparent 80%);
}
.header__blur span:nth-child(3) {
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  mask-image: linear-gradient(to bottom, #000 0%, #000 20%, transparent 60%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 20%, transparent 60%);
}
.header__blur span:nth-child(4) {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  mask-image: linear-gradient(to bottom, #000 0%, transparent 40%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, transparent 40%);
}
.header__brand {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.header__brand-main {
  display: flex;
  align-items: center;
  gap: 1.2rem;
}
.header__logo {
  width: 23.1rem;
  height: 2.139rem;
}

.header__badge {
  padding: 0.5rem 0.8rem;
  border: 1px solid currentColor;
  font-family: var(--font-en);
  font-size: 1.1rem;
  line-height: 1;
  letter-spacing: 0.12rem;
  white-space: nowrap;
}
.header__support {
  font-family: var(--font-en);
  font-size: max(1.1rem, 10px);
  line-height: 1.4rem;
  letter-spacing: 0.044rem;
  color: #1f2420;
}
.header__right {
  display: flex;
  align-items: center;
  gap: 4.8rem;
}
.header__nav {
  display: flex;
  gap: 1.5rem;
  font-size: 1.3rem;
  line-height: 1.6;
}
.header__nav a { transition: opacity 0.3s; }
.header__nav a:hover { opacity: 0.6; }
.header__btn { width: 21.6rem; }

.hero {
  position: relative;
  height: 100svh;
  min-height: 60rem;
  padding: 0 var(--gutter) 7.2rem;
}

.kv-stage {
  position: relative;
  clip-path: inset(0);
}
.hero__art {

  --kv-w: calc(min(100vw, (100svh - var(--header-height)) * 16 / 9) * 1.25);

  --kv-sphere-y: 0.4778;
  position: fixed;
  top: calc(var(--kv-cy, 50svh) - var(--kv-w) * 9 / 16 * var(--kv-sphere-y));

  will-change: transform;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  pointer-events: none;
}

.hero__video {
  width: var(--kv-w);
  max-width: none;
  flex-shrink: 0;
  aspect-ratio: 16 / 9;
  height: auto;

  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent), linear-gradient(transparent, #000 10%, #000 90%, transparent);
  mask-composite: intersect;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent), linear-gradient(transparent, #000 10%, #000 90%, transparent);
  -webkit-mask-composite: source-in;
}
.hero__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
  padding-top: 12rem;
}
.hero__body {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.hero__title {
  display: flex;
  flex-direction: column;
  font-weight: 400;
}
.hero__title-sub {
  font-size: 4.4rem;
  line-height: 1.35;
  letter-spacing: 0.22rem;
}
.hero__title-main {
  font-size: 9.2rem;
  line-height: 1.35;
  letter-spacing: 0.46rem;
}
.hero__title-en {
  font-family: var(--font-en);
  font-size: 4rem;
  line-height: 5rem;
}

.hero__author {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem 1.6rem;
  margin-top: 2.4rem;
}
.hero__author-name {
  font-size: 2.6rem;
  line-height: 1.4;
  letter-spacing: 0.13rem;
}
.hero__author-org {
  font-family: var(--font-en);
  font-size: 1.5rem;
  letter-spacing: 0.1rem;
  color: var(--color-muted);
}
.hero__aside {
  display: flex;
  flex-direction: column;
  gap: 2.7rem;
}
.hero__lead {
  font-size: 1.9rem;
  line-height: 1.7;
  letter-spacing: 0.095rem;
}

.film {
  position: relative;
  display: flex;
  justify-content: center;

  padding: calc(var(--space-section) * 2 - 7.2rem) var(--gutter) var(--space-section);
}
.film__player {
  position: relative;
  width: 94.4rem;
  aspect-ratio: 4 / 3;
  background: #000;
}
.film__iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.about__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-lead);
}
.about__definition {
  font-size: 1.7rem;
  line-height: 1.7;
}

.perspectives {
  height: calc(var(--stages) * 70vh + 67.2rem);
  margin-top: var(--space-block);
}
.perspectives__sticky {
  position: sticky;
  top: calc(var(--header-height) + max(0px, (100vh - var(--header-height) - 67.2rem) / 2));
}
.perspectives__layout {
  transform-origin: top center;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  height: 67.2rem;
}
.perspectives__story {
  display: flex;
  align-items: center;
  gap: 7.2rem;
  width: 112.8rem;
  margin-top: 4.8rem;
  padding: 2.4rem 0;
}

.perspectives__art {
  position: relative;
  flex: 1.15 1 0;
  height: 57.6rem;
}
.perspectives__img {
  position: absolute;
  inset: 0;
  width: calc(var(--w) * 0.12rem);
  height: calc(var(--h) * 0.12rem);
  max-width: none;
  margin: auto;
  opacity: 0;
  transform: scale(0.96);
  transition: opacity 0.6s ease, transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.perspectives__img.is-active {
  opacity: 1;
  transform: none;
}
.perspectives__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4.8rem;
  flex: 1 1 0;
  align-self: stretch;
}
.perspectives__copies { display: grid; }
.perspective {
  grid-area: 1 / 1;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  opacity: 0;
  transform: translateY(1.2rem);
  transition: opacity 0.45s ease, transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
  pointer-events: none;
}
.perspective.is-active {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}
.perspective__index {
  font-size: 1.2rem;
  line-height: 1.7;
  letter-spacing: 0.06rem;
  color: var(--color-muted);
}
.perspective__title {
  font-size: 3rem;
  line-height: 1.7;
  font-weight: 400;
}
.perspective__body {
  font-size: 1.7rem;
  line-height: 1.7;
}
.perspectives__progress {
  display: flex;
  gap: 2.4rem;
}
.perspectives__step {
  position: relative;
  flex: 1 1 0;
  padding: 1.6rem 0 0.8rem;
  border-top: 1px solid var(--color-line);
  font-family: var(--font-en);
  font-size: 1.2rem;
  text-align: left;
  color: var(--color-muted);
  transition: color 0.3s;
}

.perspectives__step::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--color-ink);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.perspectives__step.is-active { color: var(--color-ink); }
.perspectives__step.is-active::before { transform: none; }
.perspectives__heading {
  order: 2;
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-end;
  gap: 2.4rem;
  font-size: 3.2rem;
  line-height: 1;
}
.perspectives__heading > span {
  display: block;
  writing-mode: vertical-rl;
}
.tcy { text-combine-upright: all; }

.contents {
  display: flex;
  flex-direction: column;
  gap: var(--space-block);
}
.contents__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-lead);
}
.contents__lead {
  font-size: 1.7rem;
  line-height: 1.7;
}
.contents__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-group);
}

.row {
  display: flex;
  align-items: center;
  gap: 2.4rem;
  padding: 2.4rem 0;
  border-bottom: 1px solid var(--color-line-strong);
  line-height: 1.8;
}
.row__label {
  flex-shrink: 0;
  width: 12rem;
  font-family: var(--font-en);
  font-size: 1.2rem;
  letter-spacing: 0.06rem;
  color: var(--color-muted);
}
.row__title {
  flex-shrink: 0;
  width: 42.4rem;
  font-size: 2rem;
}
.row__text {
  flex: 1 1 0;
  font-size: 1.6rem;
}

.takeaway {
  display: flex;
  gap: 5.6rem;
}
.takeaway__heading {
  font-size: 3.2rem;
  line-height: 1.4;
  text-align: left;
  white-space: nowrap;
}
.takeaway__text {
  max-width: 80rem;
  font-size: 1.6rem;
  line-height: 1.8;
}

.master {
  display: flex;
  flex-direction: column;
  gap: var(--space-block);
}
.master__body {
  display: flex;
  align-items: center;
  gap: 10.4rem;
}
.master__portrait {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  width: 57.6rem;
}
.master__photo {
  position: relative;
  aspect-ratio: 1;
}
.master__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.master__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--color-portrait-tint);
  mix-blend-mode: multiply;
}
.master__caption {
  font-family: var(--font-en);
  font-size: 1.2rem;
}
.master__profile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 57.6rem;
}
.master__profile > * { max-width: 52rem; }
.master__catch {
  font-family: var(--font-en);
  font-size: 3.2rem;
  line-height: 4.8rem;
}
.master__name {
  margin-top: 2.4rem;
  font-size: 4.8rem;
  line-height: 6.4rem;
}
.master__role {
  font-family: var(--font-en);
  font-size: 1.5rem;
  line-height: 2.8rem;
}
.master__bio {
  margin-top: 7.2rem;
  font-size: 1.6rem;
  line-height: 3.2rem;
}
.master__link { margin-top: 3.2rem; }

.voices {
  display: flex;
  flex-direction: column;
  gap: var(--space-block);
}
.voices__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-lead);
}
.voices__lead {
  font-size: 1.6rem;
  line-height: 1.7;
}
.voices__list {
  columns: 3;
  column-gap: 2.4rem;
}
.voice {
  break-inside: avoid;
  margin-bottom: 2.4rem;
  padding: 4rem;
  background: var(--color-paper);
}
.voice__figure {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}
.voice__meta {
  font-size: 1.2rem;
  line-height: 2rem;
  letter-spacing: 0.06rem;
  color: var(--color-muted);
}
.voice__text {
  font-size: 1.6rem;
  line-height: 1.9;
  color: var(--color-ink);
}
.voice__text p + p { margin-top: 1em; }

.voices__podcast {
  display: flex;
  align-items: center;
  gap: 4rem;
  margin-top: calc(var(--space-group) - var(--space-block) - 1.6rem);
  padding: 3.2rem 0;
  border-top: 1px solid rgba(250, 250, 247, 0.4);
  border-bottom: 1px solid rgba(250, 250, 247, 0.4);
}
.voices__podcast-label {
  flex-shrink: 0;
  width: 12rem;
  font-family: var(--font-en);
  font-size: 1.2rem;
  letter-spacing: 0.06rem;
  opacity: 0.8;
}
.voices__podcast-body {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  flex: 1 1 0;
}
.voices__podcast-show { font-size: 1.3rem; opacity: 0.8; }
.voices__podcast-title { font-size: 2rem; line-height: 1.6; }
.voices__podcast-text { font-size: 1.5rem; line-height: 1.8; }
.voices__podcast-link { flex-shrink: 0; }

.plans {
  display: flex;
  flex-direction: column;
  gap: var(--space-sub);
}
.plans__intro {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
}
.plans__compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: calc(var(--space-block) - var(--space-sub));
}

.plan {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  row-gap: 3.2rem;
  align-content: start;
  min-height: 61.6rem;
  padding: 4.8rem;
  border: 1px solid var(--color-line);
}
.plan__btn { align-self: end; }

.plan + .plan { margin-left: -1px; }
.plan__head {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}
.plan__label {
  font-family: var(--font-en);
  font-size: 1.2rem;
  line-height: 1.8;
  letter-spacing: 0.06rem;
  color: var(--color-muted);
}
.plan__name {
  font-size: 2.8rem;
  line-height: 1.8;
  font-weight: 400;
}
.plan__desc {
  font-size: 1.6rem;
  line-height: 1.8;
}
.plan__price {
  font-family: var(--font-en);
  font-size: 4rem;
  line-height: 1.25;
  letter-spacing: -0.096rem;
}
.plan__includes {
  min-height: 11.2rem;
  font-size: 1.5rem;
  line-height: 1.9;
}
.plans__org-intro {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin-top: calc(var(--space-group) - var(--space-sub));
}
.plans__org-title {
  font-size: 3.2rem;
  line-height: 1.5;
  font-weight: 400;
}
.plans__org-lead {
  max-width: 88rem;
  font-size: 1.6rem;
  line-height: 1.9;
}
.plans__org {
  display: flex;
  gap: 2.4rem;
}
.license {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
  flex: 1 1 0;
  min-height: 38.4rem;
  padding: 4.8rem;
  border: 1px solid var(--color-line);
}
.license__label {
  font-size: 1.2rem;
  line-height: 2rem;
  color: var(--color-muted);
}
.license__head {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.license__name {
  font-size: 2.4rem;
  line-height: 3.6rem;
  font-weight: 400;
}
.license__desc {
  font-size: 1.6rem;
  line-height: 2.8rem;
}

.license__foot {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2.4rem;
  margin-top: auto;
}
.license__price {
  font-family: var(--font-en);
  font-size: 4rem;
  line-height: 1.25;
  letter-spacing: -0.096rem;
  white-space: nowrap;
}
.license { min-width: 0; }

.plan__spec {
  display: grid;
  grid-template-columns: max-content 1fr;
  align-content: start;
  gap: 0.2rem 1.6rem;
}
.plan__spec > div { display: contents; }
.plan__spec dt { color: var(--color-muted); }
.plan__spec dd { word-break: keep-all; overflow-wrap: anywhere; }
.license__spec { margin-top: 0.8rem; font-size: 1.4rem; line-height: 1.9; }

.plan__btn,
.license__btn,
.cta__actions .btn {
  height: auto;
  min-height: 7.2rem;
  padding-top: 1.6rem;
  padding-bottom: 1.6rem;
  white-space: normal;
  line-height: 1.6;
  text-align: left;
}

.price-tax {
  margin-left: 0.4rem;
  font-family: var(--font-ja);
  font-size: 1.4rem;
  letter-spacing: 0;
}

.faq {
  display: flex;
  flex-direction: column;
  gap: var(--space-block);
}
.faq__row { border-bottom: 1px solid var(--color-line); }
.faq__q {
  display: flex;
  align-items: flex-start;
  gap: 2.4rem;
  padding: 2.4rem 0;
  font-size: 1.8rem;
  line-height: 1.7;
  cursor: pointer;
  list-style: none;
}
.faq__q::-webkit-details-marker { display: none; }
.faq__no {
  flex-shrink: 0;
  width: 12rem;
  padding-top: 0.6rem;
  font-family: var(--font-en);
  font-size: max(1.1rem, 10px);
  letter-spacing: 0.055rem;
  color: var(--color-muted);
}
.faq__q-text { flex: 1 1 0; }

.faq__toggle {
  position: relative;
  flex-shrink: 0;
  width: 1.6rem;
  height: 1.6rem;
  margin-top: 0.6rem;
}
.faq__toggle::before,
.faq__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  transition: transform 0.3s;
}
.faq__toggle::after { transform: rotate(90deg); }
.faq__row[open] .faq__toggle::after { transform: rotate(0); }
.faq__q:hover .faq__q-text { opacity: 0.7; }
.faq__a {
  max-width: calc(12rem + 2.4rem + 88rem);
  padding: 0 4rem 3.2rem calc(12rem + 2.4rem);
  font-size: 1.5rem;
  line-height: 1.9;
}
.faq__a > * + * { margin-top: 0.8em; }

.faq__list-items li { padding-left: 1em; text-indent: -1em; }
.faq__list-items li::before { content: "・"; }

.cta {
  position: relative;
  display: flex;
  justify-content: center;
  padding: 14.4rem var(--gutter) 7.2rem;
}

.cta__marquee {
  position: absolute;
  top: 25.54rem;
  left: 0;
  right: 0;
  height: 14.03rem;
  pointer-events: none;
}
.cta__track {
  position: absolute;
  inset: 0 auto 0 -28.51rem;
  width: calc(105.66rem * 3);
  animation: cta-marquee 48s linear infinite;
}
.cta__shape {
  position: absolute;
  max-width: none;
  opacity: 0.48;
}
.cta__shape--1 { width: 17.42rem; top: 0; }
.cta__shape--2 { width: 16.07rem; top: 0.5rem; }
.cta__shape--3 { width: 14.31rem; top: 0.33rem; }
.cta__shape--4 { width: 16.66rem; top: 1.9rem; }
.cta__shape:nth-child(4n + 1) { --x: 0rem; }
.cta__shape:nth-child(4n + 2) { --x: 27.72rem; }
.cta__shape:nth-child(4n + 3) { --x: 54.09rem; }
.cta__shape:nth-child(4n + 4) { --x: 78.7rem; }
.cta__shape:nth-child(n + 5) { --loop: 1; }
.cta__shape:nth-child(n + 9) { --loop: 2; }
.cta__shape { left: calc(var(--x) + var(--loop, 0) * 105.66rem); }
@keyframes cta-marquee {
  to { transform: translateX(-105.66rem); }
}
@media (prefers-reduced-motion: reduce) {
  .cta__track { animation: none; }
}
.cta__panel {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
  width: 80rem;
  padding: 7.2rem;
  background: var(--color-muted);
  color: var(--color-paper);
  text-align: center;
}
.cta__title {
  font-size: 4rem;
  line-height: 1.55;
  letter-spacing: -0.08rem;
  font-weight: 400;
}
.cta__text {
  font-size: 1.8rem;
  line-height: 1.9;
}
.cta__actions {
  display: flex;
  gap: 2.4rem;
}
.cta__actions .btn { flex: 1 1 0; }

.footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 3.2rem var(--gutter);
  line-height: 1.6;
}
.footer__brand {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.footer__logo {
  width: 23.1rem;
  height: 2.139rem;
}
.footer__support {
  font-family: var(--font-en);
  font-size: max(1.1rem, 10px);
  line-height: normal;
  letter-spacing: 0.044rem;
  color: #1f2420;
}
.footer__nav {
  display: flex;
  gap: 2.8rem;
  font-size: 1.4rem;
}
.footer__nav a:hover { opacity: 0.6; }

html.is-opening { overflow: hidden; }
.opening {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  background: var(--color-paper);
  animation: opening-out 0.9s cubic-bezier(0.65, 0, 0.35, 1) 2.1s forwards;
}
.opening__text {
  display: flex;
  gap: 0.28em;
  font-family: var(--font-en);
  font-size: 4rem;
  line-height: 1.2;
  color: var(--color-ink);
  white-space: nowrap;
  animation: opening-text-out 0.7s ease-in 1.9s forwards;
}
.opening__word {
  display: inline-block;
  opacity: 0;
  transform: translateY(0.4em);
  filter: blur(0.8rem);
  animation: opening-word 0.9s cubic-bezier(0.22, 1, 0.36, 1) calc(0.3s + var(--i) * 0.16s) forwards;
}
@keyframes opening-word {
  to { opacity: 1; transform: none; filter: blur(0); }
}
@keyframes opening-text-out {
  to { opacity: 0; filter: blur(1.2rem); transform: scale(1.04); }
}
@keyframes opening-out {
  to { opacity: 0; visibility: hidden; }
}

html.is-opening .hero__video { opacity: 0; transform: scale(0.94); }
.hero__video { transition: opacity 1.2s ease, transform 1.6s cubic-bezier(0.2, 0.7, 0.2, 1); }

html.is-opening .hero__author,
html.is-opening .hero__title > span,
html.is-opening .hero__aside > * {
  opacity: 0;
  transform: translateY(1.6rem);
}
.hero__author,
.hero__title > span,
.hero__aside > * {
  transition: opacity 0.9s ease, transform 1.1s cubic-bezier(0.2, 0.7, 0.2, 1);
}
html.is-opened .hero__title > span:nth-child(1) { transition-delay: 0.6s; }
html.is-opened .hero__title > span:nth-child(2) { transition-delay: 0.7s; }
html.is-opened .hero__title > span:nth-child(3) { transition-delay: 0.8s; }
html.is-opened .hero__author { transition-delay: 0.9s; }
html.is-opened .hero__aside > :nth-child(1) { transition-delay: 1s; }
html.is-opened .hero__aside > :nth-child(2) { transition-delay: 1.1s; }

@media (prefers-reduced-motion: reduce) {
  html.is-opening { overflow: visible; }
  .opening { display: none; }
  html.is-opening .hero__video,
  html.is-opening .hero__author,
  html.is-opening .hero__title > span,
  html.is-opening .hero__aside > * { opacity: 1; transform: none; }
}

.page--sub main { padding-top: var(--header-height); }

.archive-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 40rem;
  margin: 4.8rem var(--gutter) 8rem;
}
.archive-intro__copy {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  width: 86.4rem;
}
.archive-intro__title {
  font-size: 4.8rem;
  line-height: 7.2rem;
}
.archive-intro__text {
  max-width: 72rem;
  font-size: 1.7rem;
  line-height: 3.2rem;
}
.archive-intro__plan {
  font-size: 1.4rem;
  line-height: 2.45rem;
}
.archive-intro__plan strong { font-weight: 700; }
.archive-intro__motif {
  display: grid;
  place-items: center;
  width: 40.8rem;
  height: 40rem;
}

.archive-intro__motif img {
  width: 36.25rem;
  height: 40rem;
}

.archive-section { padding: 6.4rem var(--gutter); }
.archive-section__title {
  font-size: 3.6rem;
  line-height: 5.6rem;
}

.archive-guide {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}
.archive-guide__notice {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.archive-guide__lead {
  font-size: 2.4rem;
  line-height: 2.8rem;
}
.archive-guide__body {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  font-size: 1.6rem;
  line-height: 2.8rem;
}
.archive-guide__flow {
  display: flex;
  flex-wrap: wrap;
  gap: 0 3.2rem;
}
.archive-guide__flow li {
  display: flex;
  gap: 0.8rem;
}

.archive-guide__flow li + li::before {
  content: "→";
  margin-right: 2.4rem;
}

.terms {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.terms__title {
  font-size: 1.7rem;
  line-height: 1.8;
}
.terms__viewport {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  height: 22rem;
  padding: 2.4rem 4rem 2.4rem 2.4rem;
  overflow-y: auto;
  border: 1px solid var(--color-line);
  font-size: 1.3rem;
  line-height: 1.75;
  scrollbar-width: thin;
  scrollbar-color: var(--color-muted) var(--color-line);
}
.terms__viewport:focus-visible { outline: 2px solid var(--color-ink); outline-offset: 2px; }
.terms__viewport::-webkit-scrollbar { width: 3px; }
.terms__viewport::-webkit-scrollbar-track { margin: 2rem 0; background: var(--color-line); border-radius: 2px; }
.terms__viewport::-webkit-scrollbar-thumb { background: var(--color-muted); border-radius: 2px; }
.terms__placeholder { color: var(--color-muted); }
.terms__note {
  font-size: 1.2rem;
  line-height: 1.8;
  color: var(--color-muted);
}

.archive-sessions {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
  padding: 8rem var(--gutter) 9.6rem;
}
.archive-sessions__intro {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}
.archive-sessions__note {
  font-size: 1.5rem;
  line-height: 2.8rem;
}

.archive-sessions__notes {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  font-size: 1.3rem;
  line-height: 1.8;
  color: var(--color-muted);
}
.archive-sessions__notes li { padding-left: 1.2em; text-indent: -1.2em; }
.archive-sessions__notes li::before { content: "※"; display: inline-block; width: 1.2em; text-indent: 0; }
.archive-sessions__notes a { text-decoration: underline; text-underline-offset: 0.2em; }

.archive-sessions__notes .archive-sessions__credit { padding-left: 0; text-indent: 0; }
.archive-sessions__notes .archive-sessions__credit::before { content: none; }
.session-list { border-top: 1px solid var(--color-line-strong); }
.session {
  background: var(--color-white);
  border-bottom: 1px solid var(--color-line-strong);
}

.session__head {
  display: flex;
  align-items: center;
  gap: 2.4rem;
  min-height: 14.4rem;
  padding: 2.4rem;
  cursor: pointer;
  list-style: none;
  transition: background-color 0.3s;
}
.session__head::-webkit-details-marker { display: none; }
.session__head:hover { background: var(--color-mist); }
.session__head:focus-visible { outline: 2px solid var(--color-ink); outline-offset: -2px; }
.session__code {
  flex-shrink: 0;
  width: 12rem;
  font-family: var(--font-en);
  font-size: 1.2rem;
}
.session__title-group {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  flex: 1 1 0;
}
.session__title {
  font-size: 1.7rem;
  line-height: 2.8rem;
}
.session__desc {
  font-size: 1.3rem;
  line-height: 2.2rem;
  opacity: 0.68;
}

.session__toggle {
  position: relative;
  flex-shrink: 0;
  width: 2.4rem;
  height: 2.4rem;
}
.session__toggle::before,
.session__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.6rem;
  height: 1px;
  background: currentColor;
  transform: translate(-50%, -50%);
  transition: transform 0.3s;
}
.session__toggle::after { transform: translate(-50%, -50%) rotate(90deg); }
.session[open] .session__toggle::after { transform: translate(-50%, -50%) rotate(0deg); }
.session__body {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
  padding: 4rem;
  background: var(--color-mist);
}
.session__video {
  aspect-ratio: 784 / 405;
  background: #202622;
  border: 1px solid var(--color-line-strong);
}

.session__video:has(iframe) { position: relative; border: 0; }
.session__video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.session__video--4x3 {
  aspect-ratio: 4 / 3;
  width: min(100%, (100svh - var(--header-height) - 9.6rem) * 4 / 3);
  margin-inline: auto;
}
.assignment {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.assignment__label {
  font-family: var(--font-en);
  font-size: 1.2rem;
  color: var(--color-muted);
}
.assignment__body {
  display: flex;
  flex-direction: column;
  gap: 2.8rem;
  font-size: 1.5rem;
  line-height: 2.8rem;
  color: #1f2420;
}
.assignment__body h3 { font-size: 2rem; line-height: 1.5; font-weight: 700; }
.assignment__step { display: block; font-weight: 700; }
.assignment__note { display: block; margin-top: 0.4rem; color: var(--color-muted); }

.legal {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 var(--gutter) 9.6rem;
}
.legal__intro {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  width: 100%;
  padding: 8.8rem 0 6.4rem;
}
.legal__label {
  font-family: var(--font-en);
  font-size: 1.4rem;
  line-height: 1.7;
  color: var(--color-muted);
}
.legal__title {
  font-size: 4.8rem;
  line-height: 1.4;
}
.legal__table {
  width: 100%;
  border-top: 1px solid var(--color-line);
}

.legal__row {
  display: flex;
  align-items: flex-start;
  gap: 6.4rem;
  padding: 2.4rem 0;
  border-bottom: 1px solid var(--color-line);
  line-height: 1.8;
}
.legal__row dt {
  flex-shrink: 0;
  width: 28.8rem;
  font-size: 2rem;
}
.legal__row dd {
  flex: 1 1 0;
  max-width: 94.4rem;
  font-size: 1.6rem;
}
.legal__row a { text-decoration: underline; text-underline-offset: 0.2em; }
.legal__row dd p + p { margin-top: 0.8em; }

.legal__note { margin-top: 0.8rem; font-size: 0.9em; color: var(--color-muted); }

.terms-doc {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  width: 100%;
  font-size: 1.6rem;
  line-height: 1.9;
}
.terms-doc > p,
.terms-doc__article > * { max-width: 94.4rem; }
.terms-doc__article {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  margin-top: 2.4rem;
  padding-top: 3.2rem;
  border-top: 1px solid var(--color-line);
}
.terms-doc__heading {
  font-size: 2rem;
  line-height: 1.6;
  font-weight: 400;
}
.terms-doc__sub {
  margin-top: 0.8rem;
  font-size: 1.7rem;
  line-height: 1.7;
  font-weight: 400;
}

.terms-doc__list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  counter-reset: terms;
}
.terms-doc__list li {
  counter-increment: terms;
  padding-left: 2.6em;
  text-indent: -2.6em;
}
.terms-doc__list li::before {
  content: "(" counter(terms) ")";
  display: inline-block;
  width: 2.6em;
  text-indent: 0;
}

.terms-doc--compact { gap: 0.8rem; font-size: inherit; line-height: inherit; }
.terms-doc--compact .terms-doc__article { gap: 0.6rem; margin-top: 1.2rem; padding-top: 0; border-top: 0; }
.terms-doc--compact .terms-doc__heading { font-size: 1.4rem; line-height: 1.75; }
.terms-doc--compact .terms-doc__sub { margin-top: 0.4rem; font-size: inherit; line-height: inherit; }
.terms-doc--compact .terms-doc__list { gap: 0.4rem; }
.terms__viewport a { text-decoration: underline; text-underline-offset: 0.2em; }
.legal__back {
  width: 24rem;
  margin-top: 8rem;
}
.btn:hover .btn__icon--back { transform: translateX(-0.3rem); }

.faq__no { font-size: 1.2rem; }
.plan__includes,
.voices__podcast-show,
.terms__viewport,
.archive-sessions__notes,
.session__desc,
.legal__note { font-size: 1.4rem; }
.master__role,
.voices__podcast-text,
.faq__a,
.archive-sessions__note,
.assignment__body { font-size: 1.6rem; }
.hero__lead,
.about__definition,
.contents__lead,
.voices__lead,
.perspective__body,
.archive-intro__text,
.session__title,
.terms__title,
.terms-doc__sub { font-size: 1.8rem; }
.license__name { font-size: 2.8rem; line-height: 1.8; }
.perspective__title { font-size: 3.2rem; }
.archive-section__title { font-size: 4rem; }

@media (max-width: 1023px) {
  :root {
    --gutter: 2.4rem;
    --header-height: 6.4rem;
    --space-section: 9.6rem;
    --space-block: 4.8rem;
    --space-group: 6.4rem;
    --space-sub: 3.2rem;
  }

  .section-label__title { font-size: 2.6rem; line-height: 1.4; }
  .section-label__index { font-size: 1.3rem; }

  .header { padding: 1.2rem var(--gutter); }
  .header__logo { width: 15rem; height: auto; }
  .header__support { font-size: max(0.9rem, 9.5px); }
  .header__brand { gap: 0.4rem; }

  .header__brand { display: grid; grid-template-columns: auto auto; justify-content: start; align-items: center; gap: 0.4rem 0.8rem; }
  .header__brand-main { display: contents; }
  .header__logo { grid-column: 1 / -1; }
  .header__support { grid-row: 2; grid-column: 1; }
  .header__badge { grid-row: 2; grid-column: 2; justify-self: start; padding: 0.2rem 0.5rem; font-size: max(0.8rem, 8px); letter-spacing: 0.08rem; }
  .header__nav { display: none; }

  .header .header__btn { width: auto; height: max(3.2rem, 30px); gap: 0.6rem; padding: 0 1.2rem; font-size: max(1.1rem, 10px); line-height: 1; letter-spacing: 0.02rem; }
  .header__btn .btn__icon { width: 1.2rem; height: 1.2rem; }

  .hero { min-height: 56rem; padding-bottom: 8rem; }

  .hero__art { --kv-w: 246.67vw; }
  .hero__inner { justify-content: flex-start; padding-top: 9.6rem; }
  .hero__body { flex: 1 1 auto; flex-direction: column; align-items: stretch; justify-content: space-between; gap: 2.4rem; }
  .hero__aside { flex: none; justify-content: flex-start; gap: 2.1rem; }
  .hero__title-sub { font-size: 2rem; line-height: 1.35; letter-spacing: 0.1rem; }
  .hero__title-main { font-size: 4.8rem; line-height: 1.35; letter-spacing: 0.2rem; }
  .hero__title-en { font-size: 2rem; line-height: 2.8rem; }
  .hero__author { margin-top: 1.2rem; gap: 0.2rem 1rem; }
  .hero__author-name { font-size: 1.7rem; letter-spacing: 0.13rem; }
  .hero__author-org { font-size: 1.1rem; letter-spacing: 0.1rem; }
  .hero__lead { font-size: 1.4rem; line-height: 1.75; letter-spacing: 0.04rem; }

  .film { padding: calc(var(--space-section) * 2 - 8rem) var(--gutter) var(--space-section); }
  .film__player { width: 100%; }

  .about__definition,
  .contents__lead { font-size: 1.5rem; }

  .about__definition br,
  .contents__lead br,
  .voice__text br,
  .hero__lead br,
  .plan__desc br,
  .faq__a p br,
  .archive-intro__text br,
  .archive-guide__body p br { display: none; }

  .perspectives { height: calc(var(--stages) * 60vh + 64rem); }
  .perspectives__sticky { top: calc(var(--header-height) + 1.6rem); }
  .perspectives__layout { flex-direction: column; height: auto; gap: 2.4rem; }
  .perspectives__heading { order: 0; }
  .perspectives__heading { flex-direction: column; align-items: flex-start; gap: 0; font-size: 2rem; line-height: 1.4; }
  .perspectives__heading > span { writing-mode: horizontal-tb; }
  .perspectives__story { flex-direction: column; gap: 2.4rem; width: 100%; margin-top: 0; padding: 0; }
  .perspectives__art { flex: none; width: 100%; height: 30rem; }
  .perspectives__img { width: calc(var(--w) * 0.061rem); height: calc(var(--h) * 0.061rem); }
  .perspectives__content { gap: 2.4rem; }
  .perspective { gap: 0.8rem; }
  .perspective__title { font-size: 2rem; line-height: 1.6; }
  .perspective__body { font-size: 1.4rem; }

  .row { flex-wrap: wrap; gap: 0.4rem 1.6rem; padding: 2rem 0; }
  .row__label { width: 100%; }
  .row__title { width: 100%; font-size: 1.7rem; }
  .row__text { flex-basis: 100%; font-size: 1.4rem; }
  .takeaway { flex-direction: column; gap: 2.4rem; }
  .takeaway__heading { font-size: 2.4rem; text-align: left; }
  .takeaway__text { font-size: 1.3rem; }
  .takeaway__text br { display: none; }

  .master__body { flex-direction: column; align-items: stretch; gap: 4rem; }
  .master__portrait,
  .master__profile { width: 100%; }
  .master__catch { font-size: 2.2rem; line-height: 3.2rem; }
  .master__name { margin-top: 1.6rem; font-size: 3.6rem; line-height: 4.8rem; }
  .master__bio { margin-top: 3.2rem; font-size: 1.4rem; line-height: 2.6rem; }
  .master__link { margin-top: 2.4rem; }

  .voices__list { columns: 1; }
  .voice { margin-bottom: 1.6rem; padding: 3.2rem 2.4rem; }
  .voice__figure { gap: 1.6rem; }
  .voice__text { font-size: 1.5rem; line-height: 1.85; }
  .voices__podcast { flex-direction: column; align-items: flex-start; gap: 2.4rem; margin-top: calc(var(--space-group) - var(--space-block) - 1.6rem); padding: 5rem 0; }

  .voices__podcast-body { gap: 1.2rem; }
  .voices__podcast-show + .voices__podcast-title { margin-top: -0.8rem; }
  .voices__podcast-label { width: auto; }
  .voices__podcast-title { font-size: 1.7rem; }
  .voices__podcast-text { font-size: 1.4rem; }

  .plans__compare { grid-template-columns: 1fr; }
  .plan { display: flex; flex-direction: column; min-height: 0; padding: 3.2rem 2.4rem; gap: 2.4rem; }
  .plan__btn { align-self: stretch; }
  .plan + .plan { margin: -1px 0 0; }
  .plan__name { font-size: 2.4rem; }
  .plan__price { font-size: 3.2rem; }
  .plan__includes { min-height: 0; font-size: 1.4rem; }
  .btn { font-size: 1.4rem; }
  .plans__org-intro { gap: 1.2rem; }
  .plans__org-title { font-size: 2.2rem; }
  .plans__org-lead { font-size: 1.4rem; line-height: 1.85; }
  .plans__org-lead br { display: none; }
  .plans__org { flex-direction: column; gap: 1.6rem; }
    .license { flex: none; min-height: 0; padding: 3.2rem 2.4rem; gap: 2.4rem; }
  .license__foot { gap: 1.6rem; }
  .license__price { font-size: 3.2rem; }
  .license__btn { width: 100%; }

  .faq__q { flex-wrap: wrap; gap: 0.4rem 1.6rem; padding: 2rem 0; font-size: 1.6rem; word-break: normal; overflow-wrap: normal; }

  .faq__q .faq__q-text { word-break: normal; overflow-wrap: normal; }
  .faq__no { width: 100%; padding-top: 0; font-size: max(1.1rem, 10px); }
  .faq__q-text { flex: 1 1 0; }
  .faq__toggle { margin-top: 0.5rem; }
  .row__label { font-size: max(1.2rem, 10.5px); }
  .faq__a { padding: 0 0 2.4rem; font-size: 1.4rem; line-height: 1.85; }

  .cta { padding: 9.6rem var(--gutter) 4.8rem; }

  .cta__marquee { top: calc(50% + 2.4rem - 14.03rem * 0.6 / 2); transform: scale(0.6); transform-origin: left top; width: 166%; }
  .cta__panel { width: 100%; padding: 4.8rem 2.4rem; gap: 2.4rem; }
  .cta__title { font-size: 2.6rem; }
  .cta__text { font-size: 1.4rem; }
  .cta__actions { flex-direction: column; gap: 1.6rem; }

  .archive-intro { flex-direction: column-reverse; align-items: flex-start; gap: 2.4rem; min-height: 0; margin: 3.2rem var(--gutter) 4.8rem; }
  .archive-intro__copy { width: 100%; gap: 1.6rem; }
  .archive-intro__title { font-size: 2.8rem; line-height: 1.5; }
  .archive-intro__text { font-size: 1.5rem; line-height: 1.8; }
  .archive-intro__motif { width: 20rem; height: 20rem; }
  .archive-intro__motif img { width: 18.13rem; height: 20rem; }
  .archive-section { padding: 4.8rem var(--gutter); }
  .archive-section__title { font-size: 2.6rem; line-height: 1.5; }
  .archive-guide__lead { font-size: 1.9rem; line-height: 1.5; }
  .archive-guide__body { font-size: 1.4rem; line-height: 1.8; }

  .archive-guide__flow { flex-direction: column; gap: 0.4rem; }
  .archive-guide__flow li + li::before { content: none; }
  .terms__viewport { padding: 1.6rem 2.4rem 1.6rem 1.6rem; }
  .archive-sessions { padding: 4.8rem var(--gutter) 9.6rem; gap: 2.4rem; }
  .archive-sessions__note { font-size: 1.4rem; line-height: 1.8; }
  .archive-sessions__notes { font-size: 1.2rem; }
  .session__head { flex-wrap: wrap; gap: 0.8rem 1.6rem; min-height: 0; padding: 2rem 1.6rem; }
  .session__code { width: auto; flex: 1 1 0; }
  .session__toggle { order: 2; }
  .session__title-group { order: 3; flex-basis: 100%; gap: 0.4rem; }
  .session__title { font-size: 1.6rem; line-height: 1.6; }
  .session__body { gap: 2.4rem; padding: 1.6rem; }
  .assignment__body { gap: 2rem; font-size: 1.4rem; line-height: 1.8; }
  .assignment__body h3 { font-size: 1.6rem; }
  .legal__intro { padding: 4.8rem 0 3.2rem; gap: 1.2rem; }
  .legal__label { font-size: 1.2rem; }
  .legal__title { font-size: 2.8rem; }
  .legal__row { flex-direction: column; gap: 0.4rem; padding: 2rem 0; }
  .legal__row dt { width: auto; font-size: 1.6rem; }
  .legal__row dd { font-size: 1.4rem; }

  .legal__row dd a { display: inline-flex; align-items: center; min-height: 44px; }
  .legal__back { width: 100%; margin-top: 4.8rem; }
  .terms-doc { font-size: 1.4rem; line-height: 1.85; }
  .terms-doc__article { margin-top: 1.6rem; padding-top: 2.4rem; }
  .terms-doc__heading { font-size: 1.7rem; }
  .terms-doc__sub { font-size: 1.5rem; }

  .footer { flex-direction: column; align-items: flex-start; gap: 1.6rem; padding: 3.2rem var(--gutter); }
  .opening__text { font-size: 2.6rem; }
  .footer__logo { width: 15rem; height: auto; }
  .footer__support { font-size: max(0.9rem, 9.5px); }
  .footer__brand { gap: 0.4rem; }
  .footer__nav { gap: 2.4rem; font-size: max(1.2rem, 11px); }

  .footer__nav a { display: inline-flex; align-items: center; min-height: 44px; }
}

@media (max-width: 1023px) {
  .faq__no,
  .voices__podcast-show,
  .legal__note { font-size: max(1.2rem, 10.5px); }
  .voice__text,
  .plan__desc,
  .license__desc,
  .takeaway__text,
  .master__role,
  .link { font-size: 1.4rem; }
  .voice__text { line-height: 1.85; }
  .voices__lead,
  .cta__text { font-size: 1.5rem; }
  .row__title,
  .voices__podcast-title,
  .terms-doc__heading,
  .terms__title,
  .session__title,
  .legal__row dt,
  .faq__q,
  .terms-doc__sub { font-size: 1.6rem; }
  .archive-guide__lead,
  .master__catch,
  .plans__org-title,
  .perspective__title { font-size: 2rem; }
  .plan__name,
  .license__name { font-size: 2.4rem; }
  .master__role { line-height: 1.8; }

  .header__badge { position: relative; top: 1px; padding: 0.25rem 0.6rem; font-size: 0.8rem; letter-spacing: 0.08rem; }
}
