/* 全站视觉层：统一色彩与尺度，保留每页内容和原有交互。 */
body.editorial-site {
  --paper: #fbf8f2;
  --ink: #394f43;
  --muted: #7a8277;
  --green: #526d59;
  --pink: #ad7d86;
  --line: #e4e2d7;
  background: var(--paper);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}

.editorial-site ::selection {
  background: #dfe7d9;
  color: #314a3b;
}

.editorial-site :is(.site-header, .memory-nav) {
  height: 80px;
  padding-inline: clamp(20px, 5vw, 76px);
  background: #fbf8f2ed;
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
  box-shadow: none;
}

.editorial-site .site-header .brand {
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 1px;
  gap: 12px;
}

.editorial-site .brand-heart {
  font-size: 23px;
  color: var(--pink);
}

.editorial-site .site-header .brand small {
  color: var(--muted);
  font-size: 9px;
  letter-spacing: 2px;
  margin-top: 1px;
}

.editorial-site .main-nav {
  gap: 30px;
  font: 400 12px/1.8 "Microsoft YaHei", sans-serif;
}

.editorial-site .main-nav a.active::after {
  height: 1px;
  bottom: 21px;
  background: var(--pink);
}

.editorial-site .main-nav a:hover {
  color: var(--green);
}

.editorial-site :is(.home-shell, .travel-shell, .memory-shell, .album-shell, .planner .shell) {
  width: min(1180px, 90%);
}

.editorial-site :is(h1, h2, h3) {
  text-wrap: balance;
}

.editorial-site :is(.journal-lead, .travel-lead, .album-lead, .memory-lead, .intro) {
  color: var(--muted);
  line-height: 2.1;
}

.editorial-site :is(.journal-button, .travel-button, .action, .album-jump, .memory-button) {
  border-radius: 6px;
  box-shadow: none;
}

.editorial-site .planner .action {
  background: var(--green);
  border-color: var(--green);
  color: #fffdf9;
}

.editorial-site .planner .action.secondary {
  background: transparent;
  border-color: var(--line);
  color: var(--ink);
}

.editorial-site :is(.filter, .album-filter, .status-filter, .memory-more, .album-more, .retry-plans) {
  border-radius: 6px;
}

.editorial-site :is(a, button, input, textarea, select):focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 5px;
}

.editorial-site :is(.site-footer, .memory-footer) {
  background: transparent;
  border-top: 1px solid var(--line);
  color: var(--muted);
  padding-block: 30px;
}

/* 首页：大照片作为中心，四个插画入口保留轻盈的存在感。 */
.editorial-site.home-page .journal-hero {
  padding-top: 52px;
  background: radial-gradient(ellipse at 78% 38%, #e7eadf65, transparent 60%);
}

.editorial-site.home-page .hero-edition {
  margin-bottom: 24px;
}

.editorial-site.home-page .gallery-word {
  opacity: .45;
}

.editorial-site.home-page .hero-postcard {
  box-shadow: 0 22px 65px #34473c12;
}

.editorial-site.home-page .home-block {
  padding-block: 86px;
}

.editorial-site.home-page .home-ribbon {
  background: transparent;
  opacity: .65;
}

.editorial-site.home-page .ribbon-track {
  animation-duration: 75s;
}

.editorial-site.home-page .chapter-card {
  background: #fffdf9;
  border: 1px solid var(--line);
  border-radius: 9px;
  box-shadow: none;
  overflow: hidden;
}

.editorial-site.home-page .chapter-image img {
  filter: none;
}

.editorial-site.home-page .chapter-copy {
  padding: 24px 20px;
}

.editorial-site.home-page .chapter-symbol {
  opacity: .55;
}

.editorial-site.home-page .moment-grid {
  grid-template-columns: 1.35fr 1fr 1fr;
  align-items: end;
  gap: 28px;
}

.editorial-site.home-page .moment-card {
  transform: none;
  border-radius: 6px;
  box-shadow: none;
}

.editorial-site.home-page .moment-card .moment-photo {
  height: 330px;
}

.editorial-site.home-page .moment-card:first-child .moment-photo {
  height: 410px;
}

.editorial-site.home-page .moment-card::before {
  display: none;
}

/* 路书与回忆：弱化装饰，保留照片和阅读节奏。 */
.editorial-site :is(.place-card, .mood-card, .memory-card) {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffdf9;
  box-shadow: none;
  transition: transform .35s ease, box-shadow .35s ease;
}

.editorial-site :is(.place-card, .mood-card, .memory-card):hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px #394f430d;
}

.editorial-site :is(.place-photo, .memory-photo) img {
  transition: transform .65s ease;
}

.editorial-site :is(.place-card, .memory-card):hover img {
  transform: scale(1.035);
}

.editorial-site :is(.memory-stamp, .cover-stamp, .collection-mark, .future-postmark, .album-stamp) {
  opacity: .5;
}

.editorial-site .memory-copy {
  padding: 25px;
}

.editorial-site .journal-entry {
  margin-block: 72px;
}

.editorial-site :is(.entry-photo, .cover-photo, .small-photo) {
  box-shadow: 0 16px 40px #394f4310;
}

/* 相册：首张大幅封面与横向照片交替，不改变筛选和加载顺序。 */
.editorial-site.album-page .album-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  background: none;
  align-items: start;
}

.editorial-site.album-page .album-photo {
  --photo-tilt: 0deg;
  padding: 0;
  transform: none;
  border: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}

.editorial-site.album-page .album-photo:is(.is-offset, .is-offset-mobile) {
  margin-top: 0;
}

.editorial-site.album-page .album-photo::before {
  display: none;
}

.editorial-site.album-page .album-photo.is-featured {
  grid-column: span 2;
}

.editorial-site.album-page .album-photo img {
  border-radius: 6px;
  aspect-ratio: 4 / 5;
  transition: filter .45s ease;
}

.editorial-site.album-page .album-photo.is-featured img {
  aspect-ratio: 3 / 2;
}

.editorial-site.album-page .album-photo.is-panorama {
  grid-column: 1 / -1;
}

.editorial-site.album-page .album-photo.is-panorama img {
  aspect-ratio: 21 / 9;
}

.editorial-site.album-page .album-photo:hover {
  transform: translateY(-3px);
  box-shadow: none;
}

.editorial-site.album-page .album-photo:hover img {
  filter: brightness(1.04);
  transform: none;
}

.editorial-site.album-page .album-photo .photo-caption {
  padding: 18px 0 12px;
  border-bottom: 1px solid var(--line);
}

.editorial-site.album-page .album-photo .photo-title {
  color: var(--ink);
  font-size: 17px;
}

.editorial-site.album-page .album-photo .photo-place {
  color: var(--muted);
  margin-top: 6px;
}

.editorial-site.album-page .album-photo .photo-heart {
  background: none;
  border: 0;
}

.editorial-site.album-page .album-photo .photo-city {
  top: 16px;
  left: 16px;
  transform: none;
  border: 0;
  border-radius: 4px;
  background: #fbf8f2e6;
  box-shadow: none;
}

/* 出发手账：目的地、日期、准备进度优先，生活细节其次。 */
.editorial-site.future-page .plan-grid {
  gap: 24px;
}

.editorial-site.future-page .plan-card {
  --accent: #74866d;
  --card-paper: #eff2e9;
  padding: 30px;
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent);
  border-radius: 8px;
  background: #fffdf9;
  box-shadow: none;
}

.editorial-site.future-page .plan-card.planning {
  --accent: #ad7d86;
  --card-paper: #f5eae9;
}

.editorial-site.future-page .plan-card.booked {
  --accent: #648984;
  --card-paper: #e9f0ed;
}

.editorial-site.future-page .plan-card::before,
.editorial-site.future-page .plan-card::after {
  display: none;
}

.editorial-site.future-page .plan-card:hover {
  box-shadow: 0 18px 40px #394f430d;
}

.editorial-site.future-page .plan-card h3 {
  font-size: 29px;
  color: var(--ink);
  margin-top: 20px;
}

.editorial-site.future-page .plan-card p {
  color: var(--muted);
}

.editorial-site.future-page .card-facts {
  background: transparent;
  border: 0;
  padding: 18px 0;
  gap: 18px;
}

.editorial-site.future-page .card-facts .fact-date {
  grid-column: 1 / -1;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}

.editorial-site.future-page .fact-date strong {
  color: var(--ink);
  font-size: 16px;
  line-height: 1.9;
  font-variant-numeric: tabular-nums;
}

.editorial-site.future-page .progress-track {
  height: 4px;
  background: #e9ece3;
}

.editorial-site.future-page .plan-actions {
  border-top: 1px solid var(--line);
}

.editorial-site.future-page .plan-actions a {
  font-size: 12px;
}

.editorial-site.future-page :is(.empty, .connection-note, .loading-plans) {
  background: #f1f3eacc;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.editorial-site .planner {
  background: var(--paper);
  color: var(--ink);
}

.editorial-site .planner .panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: none;
  background: #fffdf9;
}

.editorial-site .planner :is(.field, .checklist label, .summary-row) {
  color: var(--ink);
}

.editorial-site .planner :is(.hint, .date-undetermined) {
  color: var(--muted);
}

.editorial-site .planner input[type=checkbox] {
  accent-color: var(--green);
}

.editorial-site .field :is(input, textarea, select) {
  border-color: var(--line);
  border-radius: 5px;
  background: #fbfaf6;
  color: var(--ink);
}

/* 动效不预先隐藏内容；禁用脚本仍能完整阅读。 */
@keyframes editorial-arrive {
  from { opacity: .65; translate: 0 14px; }
  to { opacity: 1; translate: 0 0; }
}

.editorial-site .editorial-arrived {
  animation: editorial-arrive .7s cubic-bezier(.2, .7, .2, 1) both;
}

@view-transition {
  navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: .2s;
}

@media (max-width: 950px) {
  .editorial-site .main-nav { gap: 18px; }
  .editorial-site.home-page .moment-card .moment-photo { height: 260px; }
  .editorial-site.home-page .moment-card:first-child .moment-photo { height: 330px; }
  .editorial-site.album-page .album-grid { gap: 24px; }
}

@media (max-width: 850px) {
  .editorial-site.album-page .album-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .editorial-site.album-page .album-photo.is-featured img { aspect-ratio: 4 / 3; }
  .editorial-site.album-page .album-photo.is-panorama img { aspect-ratio: 16 / 9; }
}

@media (max-width: 700px) {
  .editorial-site :is(.site-header, .memory-nav) { height: 68px; }
  .editorial-site .main-nav { top: 68px; background: var(--paper); gap: 0; }
  .editorial-site .main-nav a.active::after { bottom: 4px; }
  .editorial-site.home-page .journal-hero { padding-top: 28px; }
  .editorial-site.home-page .home-block { padding-block: 54px; }
  .editorial-site.home-page .moment-grid { grid-template-columns: 1fr; width: 100%; }
  .editorial-site.home-page .moment-card .moment-photo { height: 320px; }
  .editorial-site.home-page .moment-card:first-child .moment-photo { height: 390px; }
  .editorial-site.album-page .album-grid { gap: 24px 14px; }
  .editorial-site.album-page .album-photo .photo-title { font-size: 13px; }
  .editorial-site.future-page .plan-card { padding: 24px; }
  .editorial-site .journal-entry { margin-block: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .editorial-site *, .editorial-site *::before, .editorial-site *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}

@media print {
  .editorial-site .editorial-arrived { animation: none; }
  .editorial-site .site-header { position: static; }
}
