/* V1.1 uses the site's established palette; desktop retains the original layout. */
.mobile-app-header, .mobile-home, .mobile-tabbar, .mobile-navigation-status { display: none; }
.mobile-more { border: 0; padding: 0; }
@media (max-width: 767px), (max-height: 500px) and (pointer: coarse) {
  @view-transition { navigation: none; }
  .mobile-navigation-pending .mobile-navigation-status { display: block; position: fixed; top: calc(56px + env(safe-area-inset-top,0px)); right: max(12px,env(safe-area-inset-right,0px)); z-index: 200; margin: 6px 0 0; padding: 6px 12px; border-radius: 6px; background: #405647; color: #fffdf7; font: 12px/1.5 system-ui; pointer-events: none; }
  body.mobile-app-site { --mobile-nav-height: 66px; --mobile-header-height: 56px; --mobile-gap: 18px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif; padding-bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom, 0px) + 18px); }
  .mobile-app-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; position: sticky; top: 0; height: calc(var(--mobile-header-height) + env(safe-area-inset-top, 0px)); min-height: calc(var(--mobile-header-height) + env(safe-area-inset-top, 0px)); margin: 0; border-radius: 0; box-shadow: none; transform: none; animation: none; padding: env(safe-area-inset-top, 0px) max(16px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px)); background: #fbf8f2; border-bottom: 1px solid #e4e2d7; color: #405647; z-index: 100; box-sizing: border-box; }
  .mobile-app-header::before, .mobile-app-header::after { content: none; display: none; }
  body.mobile-app-site > .site-header, body.mobile-app-site > .topbar, body.mobile-app-site > .memory-nav, body.mobile-app-site > .welcome-header { display: none !important; }
  .mobile-brand { display: flex; align-items: center; gap: 9px; font-size: 17px; font-weight: 600; white-space: nowrap; letter-spacing: 0; }
  .mobile-icon { display: block; width: 28px; height: 28px; flex-shrink: 0; object-fit: contain; }
  .mobile-back { display: grid; place-items: center; width: 44px; height: 44px; font: 38px/1 system-ui; margin-left: -12px; text-decoration: none; flex-shrink: 0; }
  .mobile-page-title { font-size: 16px; font-weight: 600; margin-right: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-header-action { min-height: 44px; display: flex; align-items: center; font-size: 13px; font-weight: 500; flex-shrink: 0; text-decoration: none; }
  .mobile-home { display: block; width: auto; margin: 16px 18px 0; padding: 0; color: #405647; }
  .mobile-home-photo { margin: 0; overflow: hidden; border-radius: 14px; background: #e6e8df; }
  .mobile-home-photo img { display: block; width: 100%; height: 158px; object-fit: cover; object-position: center 52%; }
  .mobile-home-intro { margin: 17px 0 18px; }
  .mobile-app-site .mobile-home h1 { margin: 0 0 8px; max-width: 330px; color: #405647; font: 500 27px/1.4 "Songti SC", SimSun, serif; letter-spacing: 0; text-shadow: none; }
  .mobile-home-intro p { margin: 0; color: #646e62; font-size: 13px; line-height: 1.75; }
  .mobile-journey-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-bottom: 23px; }
  .mobile-journey-link { display: grid; grid-template-columns: 28px minmax(0,1fr); align-content: center; align-items: center; gap: 6px 8px; padding: 14px 12px; min-height: 87px; border-radius: 12px; background: #e9eee4; color: #405647; font-size: 15px; font-weight: 600; text-decoration: none; }
  .mobile-journey-link:nth-child(2) { background: #f1e7e5; }
  .mobile-journey-link small { grid-column: 1 / -1; color: #626b60; font-size: 11px; font-weight: 400; line-height: 1.6; }
  .mobile-app-site .mobile-collections h2 { margin: 0 0 12px; color: #405647; font-size: 16px; font-weight: 600; letter-spacing: 0; }
  .mobile-collection-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
  .mobile-collection-link { display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 13px 4px; color: #405647; font-size: 12px; background: #fffdf8; border: 1px solid #e4e2d7; border-radius: 12px; text-decoration: none; }
  .mobile-collection-link .mobile-icon { width: 32px; height: 32px; }
  .mobile-together { display: grid; grid-template-columns: 30px minmax(0,1fr) 16px; align-items: center; column-gap: 10px; margin-top: 18px; padding: 15px 0; color: #405647; border-bottom: 1px solid #e4e2d7; text-decoration: none; }
  .mobile-together>.mobile-icon { grid-row: 1 / 3; }
  .mobile-together>span:not(.mobile-chevron) { font-size: 14px; font-weight: 500; }
  .mobile-together small { grid-column: 2; color: #687163; font-size: 11px; line-height: 1.8; }
  .mobile-together .mobile-chevron { grid-column: 3; grid-row: 1 / 3; }
  .mobile-chevron { font: 24px/1 system-ui; color: #687163; }
  .mobile-home-expand { display: block; width: 100%; margin: 10px 0 0; min-height: 44px; border: 0; background: transparent; color: #52664f; font: 12px/1.5 system-ui; cursor: pointer; }
  body.mobile-app-home > #main-content { display: none; }
  body.mobile-app-home.mobile-home-expanded > #main-content { display: block; }
  body.mobile-app-home.mobile-home-expanded > #main-content > .journal-hero { display: none; }
  body.mobile-app-site > footer { display: none; }
  .mobile-tabbar { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); position: fixed; left: 0; right: 0; bottom: 0; z-index: 150; height: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom, 0px)); padding: 7px max(8px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(8px,env(safe-area-inset-left,0px)); border-top: 1px solid #dedfd5; background: #fbf8f2; color: #646e62; box-sizing: border-box; }
  .mobile-tab { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 44px; padding: 0; border: 0; background: transparent; color: #646e62; font: 11px/1.4 system-ui,sans-serif; text-decoration: none; touch-action: manipulation; cursor: pointer; }
  .mobile-tab .mobile-icon { width: 25px; height: 25px; opacity: .68; }
  .mobile-tab[aria-current="page"], .mobile-tab-selected { color: #405647; font-weight: 700; }
  .mobile-tab[aria-current="page"] .mobile-icon { opacity: 1; }
  .mobile-tab[aria-current="page"]>span { border-bottom: 2px solid #405647; }
  .mobile-more-icon { height: 25px; font: 700 18px/25px system-ui; letter-spacing: 2px; }
  .mobile-app-site a:focus-visible, .mobile-app-site button:focus-visible { outline: 2px solid #ad7d86; outline-offset: 3px; }
  .mobile-tab:active, .mobile-journey-link:active, .mobile-collection-link:active { background-color: #dce4d6; }
  .mobile-more { margin: auto auto 0; width: 100%; max-width: 560px; max-height: calc(100dvh - 70px - env(safe-area-inset-top,0px)); overflow-y: auto; padding: 18px max(20px,env(safe-area-inset-right,0px)) calc(22px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px)); border: 1px solid #e4e2d7; border-bottom: 0; border-radius: 18px 18px 0 0; background: #fbf8f2; color: #405647; font: 14px/1.7 system-ui,sans-serif; }
  .mobile-more::backdrop { background: #20352d70; }
  .mobile-more-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 8px; }
  .mobile-more h2 { margin: 0; color: #405647; font-size: 19px; letter-spacing: 0; }
  .mobile-close { min-width: 44px; min-height: 44px; padding: 0; border: 0; background: transparent; color: #405647; font: 14px/1.5 system-ui; cursor: pointer; }
  .mobile-more-menu { display: grid; gap: 2px; }
  .mobile-more-link { display: grid; grid-template-columns: 28px minmax(0,1fr) 16px; gap: 13px; align-items: center; min-height: 49px; color: #405647; text-decoration: none; }
  .mobile-more-link .mobile-icon { width: 27px; height: 27px; }
  .mobile-more-install { min-height: 44px; margin-top: 12px; padding: 10px 16px; border: 1px solid #405647; border-radius: 8px; background: #405647; color: #fffdf7; font: 14px/1.5 system-ui; cursor: pointer; }
  .mobile-more-note { margin: 16px 0 0; color: #626c5f; font-size: 12px; line-height: 1.8; }
  .mobile-keyboard-open .mobile-tabbar { visibility: hidden; pointer-events: none; }
  .mobile-app-site .pwa-notices { bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom,0px) + 12px); }
  .mobile-app-site .top, .mobile-app-site .back-to-top, .mobile-app-site .home-back-top { bottom: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom,0px) + 16px); }
  .mobile-app-site .fixed-actions, .mobile-app-site .ticket-window { position: static; inset: auto; z-index: auto; margin: 12px 18px; }
  .mobile-app-site .fixed-actions { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .mobile-app-site .fixed-actions .action-btn, .mobile-app-site .ticket-btn { min-height: 44px; padding: 9px 12px; font-size: 12px; }
  .mobile-app-site .daynav { top: calc(var(--mobile-header-height) + env(safe-area-inset-top,0px)); }
  .mobile-app-site .day { scroll-margin-top: calc(125px + env(safe-area-inset-top,0px)); }
  .mobile-app-site .page-hero, .mobile-app-site .travel-hero, .mobile-app-site .memory-hero { min-height: 0 !important; }
  .mobile-app-site .page-hero-content { padding: 28px 0 !important; }
  .mobile-app-site .page-hero h1 { font-size: 28px !important; line-height: 1.4 !important; letter-spacing: 0 !important; }
  .mobile-app-site .page-hero-content>p:last-child { font-size: 13px; margin-top: 12px; }
  .mobile-app-site .hero { min-height: 0 !important; }
  .mobile-app-site .hero-inner { padding: 32px 0 !important; }
  .mobile-app-site .hero h1 { font-size: 29px !important; line-height: 1.45 !important; letter-spacing: 0 !important; }
  .mobile-app-site .intro { margin-top: 24px; margin-bottom: 20px; padding-bottom: 20px !important; }
  .mobile-app-site .intro h2 { font-size: 23px !important; }
  .mobile-app-site .content { margin-top: 24px; }
  .mobile-app-site .daytitle .num { font-size: 50px !important; }
  .mobile-app-site .planner { margin-top: 22px; }
  .mobile-app-site .container { margin-top: 18px; }
  .mobile-app-site .content-tabs { top: calc(var(--mobile-header-height) + env(safe-area-inset-top,0px)); }
  .mobile-app-site .welcome-main { padding-top: 220px; padding-bottom: 20px; }
  .mobile-app-site.pwa-offline-page { display: block; }
  .mobile-app-site .pwa-offline-content { margin: 0 auto; padding-top: 55px; }
  .mobile-app-site .lightbox, .mobile-app-site .album-lightbox { z-index: 300 !important; }
  .mobile-app-site :is(.travel-cover,.memory-collage,.future-collage,.album-collage) { display: none; }
  .mobile-app-site :is(.travel-opening,.memory-opening,.album-opening,.future-opening) { display: block; padding-top: 20px !important; padding-bottom: 24px !important; }
  .mobile-app-site .travel-hero { padding-top: 0; }
  .mobile-app-site :is(.travel-opening-copy,.memory-opening-copy,.album-opening-copy,.opening-copy) { padding: 0; }
  .mobile-app-site :is(.travel-opening,.memory-opening,.album-opening,.future-opening,.couple-intro) h1 { font-size: 28px; line-height: 1.4; margin: 10px 0; letter-spacing: 0; }
  .mobile-app-site :is(.travel-lead,.memory-lead,.album-lead) { font-size: 13px; line-height: 1.8; }
  .mobile-app-site .future-opening .intro { margin: 12px 0; padding: 0 !important; font-size: 13px; }
  .mobile-app-site .couple-intro { padding: 20px 0; }
  .mobile-app-site :is(.opening-note,.memory-whisper,.album-opening-note,.opening-whisper) { margin-top: 12px; }
  .mobile-app-site :is(.action,.travel-button,.memory-button,.album-jump,.album-filter,.tab-btn,.chapter-nav a) { min-height: 44px; }
  .mobile-app-site .chapter-nav { top: calc(var(--mobile-header-height) + env(safe-area-inset-top,0px)); }
  .mobile-app-site .container > header { padding: 24px 20px; }
  .mobile-app-site .container > header h1 { font-size: 27px; line-height: 1.4; }
  @media (max-width: 360px) {
    .mobile-home { margin-left: 14px; margin-right: 14px; }
    .mobile-home-photo img { height: 138px; }
    .mobile-app-site .mobile-home h1 { font-size: 25px; }
    .mobile-journey-link { padding: 13px 10px; font-size: 14px; }
    .mobile-journey-link small { font-size: 10px; }
  }
  @media (max-height: 500px) and (pointer: coarse) {
    .mobile-home-photo img { height: 130px; }
    .mobile-home { max-width: 640px; margin-left: auto; margin-right: auto; padding: 0 18px; }
    .mobile-app-site .welcome-main { padding-top: 150px; }
  }
}
