@media (max-width: 600px) {
  /* One continuous grid behind the post-hero content, matching the desktop spacing. */
  html body #emiMobileShell .emi-journal {
    background-image:
      linear-gradient(rgba(235, 225, 196, .18) 1px, transparent 1px),
      linear-gradient(90deg, rgba(235, 225, 196, .18) 1px, transparent 1px),
      var(--bg) !important;
    background-size: 31px 31px, 31px 31px, cover !important;
    background-position: 0 0, 0 0, center center !important;
    background-repeat: repeat, repeat, no-repeat !important;
  }
  html body #emiMobileShell .emi-page.emi-analog {
    scroll-snap-type: none !important;
    scroll-behavior: auto !important;
    background-image:
      linear-gradient(rgba(239, 230, 200, .14) 1px, transparent 1px),
      linear-gradient(90deg, rgba(239, 230, 200, .14) 1px, transparent 1px),
      var(--archive-bg) !important;
    background-size: 34px 34px, 34px 34px, cover !important;
    background-position: 0 0, 0 0, center top !important;
    background-repeat: repeat, repeat, no-repeat !important;
  }
  html body #emiMobileShell .emi-journal .journal-board,
  html body #emiMobileShell .emi-journal .emi-simple-footer,
  html body #emiMobileShell .emi-analog .emi-archive-list,
  html body #emiMobileShell .emi-analog .emi-simple-footer {
    background: transparent !important;
  }

  html body #emiMobileShell .emi-analog .emi-archive-row {
    transition: none !important;
  }
  html body #emiMobileShell .emi-analog .emi-archive-row.emi-folder-textured {
    background-image: none !important;
  }
  #emiMobileShell .emi-archive-row > .emi-archive-texture {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    overflow: hidden !important;
    border-radius: inherit !important;
    pointer-events: none !important;
    z-index: 0 !important;
    transform: translateZ(0);
  }
  #emiMobileShell .emi-archive-texture > img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    border-radius: inherit !important;
    pointer-events: none !important;
  }

  #emiMobileShell > .emi-background-effects {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    display: none !important;
    background: #17191a;
    isolation: isolate;
  }
  #emiMobileShell > .emi-background-effects.is-visible { display: block !important; }
  #emiMobileShell .emi-background-motion {
    position: absolute;
    inset: -28px;
    background: var(--emi-effects-image) center / cover no-repeat;
    animation: emi-background-drift 20s ease-in-out infinite alternate;
    will-change: transform;
  }
  /* Match the desktop Flash Point background veil. */
  #emiMobileShell:has([data-emi-page="project-flashpoint"].is-active) .emi-background-motion::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(185, 176, 154, .54);
    pointer-events: none;
  }
  #emiMobileShell:has([data-emi-page="project-flashpoint"].is-active) .emi-background-grain {
    display: none;
  }
  #emiMobileShell .emi-background-grain,
  .emi-textured-surface::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: url("./emi-background-grain.svg") 0 0 / 115px 115px repeat;
    opacity: .52;
    mix-blend-mode: soft-light;
  }
  html body #emiMobileShell .emi-page.emi-effects-page {
    z-index: 1 !important;
    background: transparent !important;
  }
  .emi-textured-surface { position: relative !important; isolation: isolate; }
  .emi-textured-surface::before {
    z-index: 0;
    animation: emi-grain-drift 20s ease-in-out infinite alternate;
  }
  .emi-textured-surface > * { position: relative; z-index: 1; }
  #emiMobileShell .emi-textured-surface {
    animation: emi-surface-drift 20s ease-in-out infinite alternate;
  }
  @keyframes emi-background-drift {
    from { transform: translate3d(-9px, -7px, 0) scale(1.02); }
    to { transform: translate3d(9px, 7px, 0) scale(1.06); }
  }
  @keyframes emi-surface-drift {
    from { background-position: 48% 48%; }
    to { background-position: 52% 52%; }
  }
  @keyframes emi-grain-drift {
    from { background-position: 0 0; }
    to { background-position: 12px 8px; }
  }
  @media (prefers-reduced-motion: reduce) {
    #emiMobileShell .emi-background-motion,
    #emiMobileShell .emi-textured-surface,
    .emi-textured-surface::before { animation: none; will-change: auto; }
  }
}
