@media (max-width: 1040px) {
  .hero-grid,
  .lesson-layout,
  .quiz-layout,
  .basic-quiz-layout,
  .basic-result-card,
  .heritage-learning-layout,
  .mock-prep-layout,
  .mock-exam-layout,
  .mock-result-card,
  .mock-scope-groups,
  .mock-draft-item__body {
    grid-template-columns: 1fr;
  }

  .today-stamp-card {
    min-height: auto;
  }

  .weakness-prescription {
    grid-template-columns: 68px minmax(0, 1fr) auto;
  }

  .weakness-prescription__signals {
    grid-column: 2 / -1;
  }

  .stamp-stage {
    min-height: 180px;
  }

  .lesson-aside,
  .quiz-aside,
  .basic-quiz-aside {
    min-height: auto;
  }

  .basic-quiz-aside {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .basic-stamp-board {
    grid-template-columns: repeat(10, minmax(28px, 1fr));
  }

  .basic-result-score {
    min-height: 260px;
  }

  .quiz-aside {
    display: none;
  }

  .answer-feedback {
    grid-template-columns: 54px 1fr;
  }

  .answer-feedback .primary-button {
    grid-column: 1 / -1;
  }

  .heritage-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .heritage-detail-layout {
    grid-template-columns: 1fr;
  }

  .detail-index-card {
    display: none;
  }

  .heritage-memory-card {
    min-height: auto;
  }

  .mock-readiness-card {
    min-height: auto;
  }

  .mock-answer-panel {
    position: static;
  }

  .mock-result-score {
    min-height: 300px;
  }

  .world-learning-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 920px) {
  .review-notebook-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mock-recent-result:not([hidden]) {
    grid-template-columns: 1fr auto;
  }

  .mock-recent-result dl {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

@media (max-width: 780px) {
  .weakness-prescription {
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: start;
    gap: 0.85rem 1rem;
    padding: 1.1rem;
  }

  .weakness-prescription__seal {
    width: 56px;
  }

  .weakness-prescription__seal strong {
    font-size: 1.25rem;
  }

  .weakness-prescription__signals,
  .weakness-prescription__action {
    grid-column: 1 / -1;
    width: 100%;
  }

  .weakness-prescription__signals {
    grid-template-columns: 1fr;
  }

  .topbar-tools {
    gap: 0.4rem;
  }

  .reading-guide {
    width: 26px;
    overflow: hidden;
    font-size: 0;
  }

  .reading-guide__icon {
    width: 24px;
    flex: 0 0 auto;
    font-size: 0.7rem;
  }

  .review-notebook-hero {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    padding: 1.45rem;
  }

  .review-notebook-hero h1 {
    font-size: clamp(2rem, 12vw, 3.25rem);
  }

  .review-notebook-seal {
    width: 96px;
    justify-self: start;
  }

  .review-notebook-heading,
  .learning-record-settings {
    align-items: flex-start;
    flex-direction: column;
  }

  .review-notebook-heading .primary-button,
  .learning-record-settings .text-button {
    width: 100%;
  }

  .review-index-card {
    grid-template-columns: 1fr;
  }

  .review-index-card__tab {
    justify-content: start;
    padding: 0.55rem 0.8rem;
    writing-mode: horizontal-tb;
  }

  .review-index-card__meta {
    grid-template-columns: auto minmax(0, 1fr);
    min-width: 0;
    align-items: center;
    padding: 0.8rem 1rem 1rem;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .review-index-card__meta > span {
    text-align: left;
  }

  .mock-recent-result:not([hidden]) {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .mock-recent-result dl {
    grid-column: auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .mock-recent-result dl div {
    min-width: 0;
    padding: 0 0.45rem;
  }

  .mock-recent-result__button { width: 100%; }

  .mock-result-review__header {
    align-items: start;
  }

  .mock-result-review__seal {
    width: 74px;
  }

  .mock-result-question summary {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 0.7rem;
  }

  .mock-result-question__number { width: 36px; }

  .mock-result-question__status {
    grid-column: 2;
    justify-self: start;
  }

  .mock-result-question__body,
  .mock-review-choices {
    grid-template-columns: 1fr;
  }

  .mock-review-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .mock-review-sheet {
    min-height: 0;
    padding: 1.25rem;
    border-radius: 1.15rem;
  }

  .mock-review-sheet::after {
    font-size: 3.5rem;
  }

  .mock-review-controls {
    position: sticky;
    bottom: calc(72px + env(safe-area-inset-bottom));
    z-index: 5;
    margin: 1.2rem -1.25rem -1.25rem;
    padding: 0.8rem 1.25rem;
    background: rgba(248, 251, 251, 0.96);
    box-shadow: 0 -8px 20px rgba(16, 55, 66, 0.08);
    backdrop-filter: blur(12px);
  }

  body {
    background: var(--surface-page);
  }

  .side-nav {
    inset: auto 0 0 0;
    width: auto;
    height: 72px;
    flex-direction: row;
    padding: 0.35rem 0.6rem calc(0.35rem + env(safe-area-inset-bottom));
    box-shadow: 0 -10px 30px rgba(16, 55, 66, 0.12);
  }

  .brand-mark {
    display: none;
  }

  .nav-list {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.1rem;
    margin: 0;
  }

  .nav-item {
    min-height: 60px;
    padding-inline: 0.2rem;
    border-radius: 0.6rem;
  }

  .nav-item--settings {
    display: flex;
    margin-top: 0;
  }

  .nav-item svg { width: 21px; }
  .nav-item span { font-size: 0.62rem; }

  .main-content {
    margin-left: 0;
    padding: 1rem 1rem calc(6.5rem + env(safe-area-inset-bottom));
  }

  .topbar {
    margin-bottom: 1rem;
  }

  .topbar__edition { font-size: 0.65rem; }
  .topbar__date { display: none; }
  .language-toggle { padding: 0.45rem 0.65rem; font-size: 0.66rem; }

  .basics-hero {
    grid-template-columns: 1fr;
    padding: 1.5rem;
    border-radius: 1.25rem;
  }

  .basics-exam-ticket {
    min-height: 180px;
  }

  .basics-route {
    overflow-x: auto;
    padding: 0.4rem;
    scrollbar-width: none;
  }

  .basics-route::-webkit-scrollbar {
    display: none;
  }

  .basics-route i {
    min-width: 24px;
  }

  .basic-topic-grid {
    grid-template-columns: 1fr;
  }

  .basic-topic-card__toggle {
    grid-template-columns: 42px minmax(0, 1fr) 32px;
    padding: 0.9rem;
  }

  .basics-quiz-callout {
    align-items: stretch;
    flex-direction: column;
  }

  .basic-quiz-card {
    padding: 1.25rem;
    border-radius: 1.25rem;
  }

  .basic-quiz-aside {
    display: none;
  }

  .basic-result-card {
    border-radius: 1.25rem;
  }

  .basic-result-score {
    min-height: 240px;
  }

  .basic-result-score > strong {
    font-size: 4.5rem;
  }

  .basic-result-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .journey-ticket {
    display: flex;
    min-height: 520px;
    flex-direction: column;
    justify-content: flex-end;
    padding: 4.5rem 3.5rem 1.4rem 1.4rem;
    border-radius: 1.25rem;
  }

  .journey-ticket::before,
  .journey-ticket::after { right: 46px; }
  .journey-ticket h1 { font-size: clamp(2.8rem, 16vw, 4.6rem); }
  .ticket-route { inset: 1.6rem 3.5rem auto 1.4rem; }
  .ticket-summary { width: 100%; margin-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.14); border-left: 0; }
  .ticket-summary div { padding-left: 0; }
  .passport-seal { top: 4rem; right: 4rem; width: 84px; height: 84px; }
  .vertical-title { right: 1.1rem; }

  .today-stamp-card { min-height: 340px; border-radius: 1.25rem; }

  .dashboard-grid {
    grid-template-columns: 1fr;
  }

  .panel { border-radius: 1rem; }
  .update-panel { align-items: flex-start; }
  .status-chip { display: none; }
  .date-panel { align-items: flex-start; flex-direction: column; }

  .lesson-header {
    align-items: flex-start;
    gap: 1rem;
  }

  .lesson-progress {
    width: 42vw;
  }

  .lesson-main,
  .quiz-card {
    padding: 1.25rem;
    border-radius: 1.25rem;
  }

  .lesson-labels {
    margin-bottom: 1.7rem;
  }

  .lesson-main h1 {
    font-size: clamp(2.4rem, 14vw, 4rem);
  }

  .lesson-route {
    gap: 0.4rem;
    overflow: hidden;
  }

  .lesson-route i { width: 16px; }

  .lesson-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .lesson-actions .primary-button {
    width: 100%;
  }

  .lesson-aside {
    padding: 1.4rem;
    border-radius: 1.25rem;
  }

  .answer-list {
    grid-template-columns: 1fr;
  }

  .answer-feedback {
    grid-template-columns: 42px 1fr;
    align-items: start;
  }

  .feedback-icon { width: 40px; height: 40px; font-size: 1rem; }

  .result-view {
    min-height: calc(100vh - 150px);
  }

  .result-card { border-radius: 1.25rem; }
  .result-stats strong { font-size: 1.1rem; }

  .toast {
    right: 1rem;
    bottom: 5.5rem;
  }

  .archive-heading {
    grid-template-columns: 1fr;
    padding: 1.5rem;
    border-radius: 1.25rem;
  }

  .archive-counts {
    min-width: 0;
  }

  .archive-counts div {
    min-height: 82px;
  }

  .archive-counts strong {
    font-size: 1.55rem;
  }

  .archive-tools {
    align-items: stretch;
    flex-direction: column;
  }

  .search-field {
    min-width: 0;
    width: 100%;
  }

  .filter-tabs {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }

  .region-select {
    justify-content: space-between;
    margin-left: 0;
  }

  .region-select select {
    flex: 1;
  }

  .heritage-grid {
    grid-template-columns: 1fr;
  }

  .heritage-card {
    min-height: 225px;
  }

  .archive-source-note {
    flex-direction: column;
  }

  .heritage-detail-card {
    padding: 1.3rem;
    border-radius: 1.25rem;
  }

  .mock-prep-hero {
    grid-template-columns: 1fr;
    padding: 1.5rem;
    border-radius: 1.25rem;
  }

  .mock-prep-score {
    width: 100%;
    height: auto;
    grid-template-columns: auto auto auto;
    align-items: baseline;
    gap: 0.35rem;
    padding: 1rem;
    border-radius: 0.9rem;
    box-shadow: none;
  }

  .mock-prep-score strong {
    font-size: 2.5rem;
  }

  .mock-prep-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .mock-prep-actions .primary-button,
  .mock-resume-button {
    width: 100%;
  }

  .mock-exam-header {
    grid-template-columns: 1fr auto;
    gap: 0.7rem;
  }

  .mock-exam-header .back-button {
    grid-column: 1;
  }

  .mock-exam-header__progress {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .mock-exam-timer {
    grid-column: 2;
    grid-row: 1;
    min-width: 112px;
  }

  .mock-question-sheet {
    min-height: 0;
    padding: 1.25rem;
    border-radius: 1.15rem;
  }

  .mock-question-sheet::before {
    left: 0.75rem;
  }

  .mock-question-sheet__meta {
    margin-bottom: 1.5rem;
  }

  .mock-question-sheet h1 {
    font-size: 1.35rem;
  }

  .mock-exam-choices,
  .mock-result-sections {
    grid-template-columns: 1fr;
  }

  .mock-exam-choice {
    min-height: 74px;
    padding: 0.85rem;
  }

  .mock-exam-controls {
    position: sticky;
    bottom: calc(72px + env(safe-area-inset-bottom));
    z-index: 5;
    grid-template-columns: 1fr 1fr;
    margin: 1.5rem -1.25rem -1.25rem;
    padding: 0.8rem 1.25rem;
    background: rgba(248, 251, 251, 0.96);
    box-shadow: 0 -8px 20px rgba(16, 55, 66, 0.08);
    backdrop-filter: blur(12px);
  }

  .mock-exam-controls > span {
    display: none;
  }

  .mock-exam-controls .primary-button,
  .mock-exam-controls .mock-control-button {
    width: 100%;
    justify-self: stretch;
  }

  .mock-answer-panel {
    border-radius: 1.15rem;
  }

  .mock-answer-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .mock-submit-dialog > div,
  .mock-result-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .mock-submit-dialog .primary-button,
  .mock-submit-dialog .mock-control-button,
  .mock-result-actions .primary-button,
  .mock-result-actions .mock-control-button {
    width: 100%;
  }

  .mock-result-card {
    border-radius: 1.25rem;
  }

  .mock-result-score {
    min-height: 260px;
  }

  .mock-result-copy {
    padding: 1.5rem;
  }

  .mock-draft-list {
    grid-template-columns: 1fr;
  }

  .world-learning-heading,
  .world-learning-grid,
  .world-learning-checkpoints {
    grid-template-columns: 1fr;
  }

  .world-learning-heading {
    align-items: start;
  }

  .world-learning-progress {
    justify-self: start;
  }

  .world-learning-card-shell.is-open {
    grid-column: auto;
  }

  .world-learning-card__footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .world-learning-related {
    justify-content: flex-start;
  }

  .world-learning-photo__frame {
    aspect-ratio: 4 / 3;
  }

  .world-learning-photo figcaption {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.35rem;
  }

  .world-learning-photo__subject strong {
    white-space: normal;
  }

  .mock-scope-section .section-heading {
    align-items: start;
  }

  .mock-scope-links {
    justify-content: flex-start;
  }

  .mock-draft-item[open] {
    grid-column: auto;
  }

  .mock-blueprint-item {
    grid-template-columns: 30px minmax(0, 1fr);
  }

  .mock-blueprint-item__meta {
    grid-column: 2;
    grid-template-columns: auto auto;
    justify-content: start;
  }

  .heritage-learning-card {
    padding: 1.3rem;
    border-radius: 1.25rem;
  }

  .heritage-learning-card > h1 {
    font-size: clamp(2.15rem, 11vw, 3.4rem);
  }

  .heritage-core-grid {
    grid-template-columns: 1fr;
  }

  .heritage-core-card {
    min-height: 180px;
  }

  .heritage-memory-card {
    padding: 1.4rem;
    border-radius: 1.25rem;
  }

  .detail-labels {
    margin-bottom: 1.7rem;
  }

  .heritage-photo__frame {
    aspect-ratio: 4 / 3;
  }

  .heritage-photo figcaption {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.35rem;
  }

  .heritage-photo__subject strong {
    white-space: normal;
  }

  .heritage-detail-card > h1 {
    font-size: clamp(2.25rem, 12vw, 3.5rem);
  }

  .detail-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .detail-footer .primary-button {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .hero-lead { font-size: 0.82rem; }
  .ticket-summary span { font-size: 0.62rem; }
  .plan-copy span { max-width: 160px; }
  .record-row { grid-template-columns: 4.6rem minmax(60px, 1fr) 2.2rem; }
  .lesson-main h1 small { display: inline-block; margin-top: 0.4rem; font-size: 0.36em; line-height: 1.6; }
  .quiz-card h1 { font-size: 1.35rem; }
  .answer-button { font-size: 0.78rem; }
  .result-stats div { padding-inline: 0.45rem; }
  .world-learning-compare,
  .world-learning-translation { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
