@media (max-width: 1120px) {
  .header-inner { grid-template-columns: auto 1fr auto; }
  .desktop-nav { position: fixed; top: 74px; left: 12px; right: 12px; display: none; flex-direction: column; align-items: stretch; padding: 12px; border-radius: 18px; background: #17182d; box-shadow: var(--shadow); }
  .desktop-nav.is-open { display: flex; }
  .desktop-nav button { text-align: left; padding: 12px 14px; }
  .menu-toggle { display: inline-flex; border: 0; border-radius: 11px; background: rgba(255,255,255,.1); color: white; padding: 10px 12px; cursor: pointer; }
  .book-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .hero { grid-template-columns: 1.15fr .85fr; }
}

@media (max-width: 850px) {
  .header-inner { grid-template-columns: auto 1fr auto; gap: 10px; padding: 10px 14px; }
  .brand small { display: none; }
  .global-search { grid-column: 1 / -1; grid-row: 2; }
  .hero { grid-template-columns: 1fr; min-height: auto; padding: 38px 26px; }
  .hero-visual { min-height: 250px; }
  .glow-ring { width: 240px; height: 240px; }
  .book-illustration { width: 205px; height: 155px; }
  .book-illustration span { top: 58px; }
  .metrics-grid, .diary-metrics { grid-template-columns: repeat(2,1fr); }
  .feature-grid, .book-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .community-layout, .diary-overview, .two-column, .admin-grid { grid-template-columns: 1fr; }
  .community-guide { position: static; }
  .filter-grid, .form-grid, .diary-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .quality-grid { grid-template-columns: repeat(2,1fr); }
  .admin-form { grid-template-columns: 1fr; }
  .admin-form .wide { grid-column: auto; }
}

@media (max-width: 620px) {
  body { padding-bottom: env(safe-area-inset-bottom); }
  .page-shell { padding: 18px 12px 96px; }
  .header-inner { min-height: 64px; }
  .brand strong { font-size: .94rem; }
  .brand-mark { width: 38px; height: 38px; border-radius: 12px; }
  .menu-toggle { font-size: .8rem; }
  .hero { border-radius: 24px; padding: 30px 20px; gap: 10px; }
  .hero h1 { font-size: clamp(2.25rem, 12vw, 3.4rem); }
  .hero p { font-size: .98rem; }
  .hero-visual { min-height: 210px; }
  .glow-ring { width: 205px; height: 205px; }
  .book-illustration { width: 170px; height: 130px; }
  .book-illustration span { top: 48px; }
  .floating-symbol { width: 42px; height: 42px; }
  .button-row .button { flex: 1 1 auto; }
  .content-card { border-radius: 20px; padding: 18px; }
  .section-heading { align-items: flex-start; }
  .page-heading { flex-direction: column; }
  .metrics-grid, .diary-metrics { grid-template-columns: repeat(2,1fr); gap: 10px; }
  .metric-card { padding: 16px 9px; }
  .metric-card strong { font-size: 1.75rem; }
  .feature-grid, .book-grid { grid-template-columns: 1fr; }
  .book-card { display: grid; grid-template-columns: 112px 1fr; }
  .book-cover { aspect-ratio: auto; min-height: 100%; }
  .book-cover .cover-initials { font-size: 1.8rem; }
  .answer-grid { grid-template-columns: 1fr; }
  .answer-button { min-height: 70px; }
  .filter-grid, .form-grid, .diary-form { grid-template-columns: 1fr; }
  .field-span-2, .book-picker { grid-column: auto; }
  .composer-actions, .comment-form { align-items: stretch; flex-direction: column; }
  .profile-card { align-items: flex-start; }
  .modal-panel { width: 100%; max-height: 92vh; margin: 8vh 0 0; border-radius: 24px 24px 0 0; }
  .modal-book-head { grid-template-columns: 1fr; }
  .modal-cover { min-height: 170px; }
  .site-footer { padding-bottom: 105px; flex-direction: column; }
  .site-footer nav { flex-wrap: wrap; }
  .mobile-nav {
    position: fixed;
    left: 8px;
    right: 8px;
    bottom: max(8px, env(safe-area-inset-bottom));
    z-index: 190;
    display: grid;
    grid-template-columns: repeat(5,1fr);
    gap: 3px;
    padding: 6px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 20px;
    color: white;
    background: rgba(16,18,37,.96);
    box-shadow: 0 18px 45px rgba(0,0,0,.3);
    backdrop-filter: blur(16px);
  }
  .mobile-nav button { min-height: 54px; border: 0; border-radius: 14px; color: rgba(255,255,255,.7); background: transparent; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font-size: .68rem; cursor: pointer; }
  .mobile-nav button span { font-size: 1.1rem; }
  .mobile-nav button.is-active { color: white; background: rgba(255,255,255,.1); }
  .mobile-nav .mobile-primary { background: linear-gradient(135deg,var(--brand),var(--accent)); color: white; }
  .toast-region { left: 12px; right: 12px; bottom: 88px; }
  .toast { max-width: none; }
}

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