:root {
  --paper: #f4f5f2;
  --surface: #ffffff;
  --ink: #18201c;
  --muted: #68716b;
  --line: #d7dcd7;
  --forest: #235045;
  --cinnabar: #a63d32;
  --saffron: #bd7a3b;
  --aubergine: #4d394e;
  --hero-ink: #fffdf7;
  --max: 1180px;
  --reader: 720px;
}

/* Xiaoxu metaphysics guide */
.xuanshu-page {
  --xuan-night: #172b27;
  --xuan-night-soft: #213b34;
  --xuan-paper: #eee8dc;
  --xuan-paper-deep: #ded4c2;
  --xuan-gold: #c6a460;
  --xuan-red: #a33b31;
  background: var(--xuan-paper);
}
.xuanshu-page .site-header.inner-header { background: rgba(238, 232, 220, 0.96); border-color: #cbbfa9; }
.xuanshu-page .site-nav a[aria-current="page"] { color: var(--xuan-red); }
.xuan-section-inner { width: min(1080px, calc(100% - 56px)); margin: 0 auto; }
.xuan-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 76% 42%, rgba(198, 164, 96, 0.12), transparent 30%),
    radial-gradient(circle at 12% 88%, rgba(163, 59, 49, 0.12), transparent 28%),
    var(--xuan-night);
  color: #f1eadc;
  isolation: isolate;
}
.xuan-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: 0.11;
  background-image: linear-gradient(rgba(238, 232, 220, 0.26) 1px, transparent 1px), linear-gradient(90deg, rgba(238, 232, 220, 0.26) 1px, transparent 1px);
  background-size: 44px 44px;
  content: "";
  mask-image: linear-gradient(90deg, transparent, black 40%, black);
}
.xuan-hero-inner { width: min(1080px, calc(100% - 56px)); min-height: 650px; display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(330px, 0.84fr); gap: 100px; align-items: center; margin: 0 auto; padding: 86px 0 92px; }
.xuan-hero-copy { position: relative; z-index: 2; }
.xuan-hero .section-index { color: #cfb77e; }
.xuan-seal { position: absolute; top: 64px; left: -38px; width: 48px; height: 48px; display: grid; place-items: center; margin: 0; border: 1px solid #b84b40; color: #d86b5f; font-family: "Kaiti SC", "STKaiti", serif; font-size: 25px; transform: rotate(-5deg); }
.xuan-hero h1 { max-width: 680px; margin: 26px 0 6px; font-family: "Kaiti SC", "STKaiti", "Songti SC", serif; font-size: clamp(56px, 5.8vw, 82px); font-weight: 500; line-height: 1.04; letter-spacing: 0.04em; white-space: nowrap; }
.xuan-declaration { margin: 0 0 30px; color: var(--xuan-gold); font-family: "Songti SC", "STSong", serif; font-size: 26px; letter-spacing: 0.12em; }
.xuan-lead { max-width: 610px; margin: 0; color: #c6cdc7; font-size: 15px; line-height: 2; }
.xuan-start { display: inline-flex; align-items: center; gap: 20px; margin-top: 35px; padding: 8px 0 6px; border-bottom: 1px solid #927f56; color: #eee5d4; font-size: 13px; font-weight: 700; text-decoration: none; }
.xuan-start:hover, .xuan-start:focus-visible { color: #e0c17d; border-color: #e0c17d; }
.xuan-compass { min-width: 0; margin: 0; }
.xuan-dial { position: relative; width: min(100%, 390px); aspect-ratio: 1; margin: 0 auto; border: 1px solid rgba(212, 184, 122, 0.52); border-radius: 50%; animation: xuan-arrive 900ms cubic-bezier(.2,.8,.2,1) both; }
.xuan-dial::before, .xuan-dial::after { position: absolute; inset: 8.5%; border: 1px solid rgba(212, 184, 122, 0.25); content: ""; transform: rotate(45deg); }
.xuan-dial::after { inset: 21%; border-color: rgba(216, 107, 95, 0.38); }
.xuan-ring { position: absolute; border: 1px solid rgba(212, 184, 122, 0.38); border-radius: 50%; }
.xuan-ring-outer { inset: 14%; }
.xuan-ring-inner { inset: 32%; border-color: rgba(238, 232, 220, 0.28); }
.xuan-axis { position: absolute; top: 50%; left: 8%; width: 84%; height: 1px; background: rgba(212, 184, 122, 0.3); transform-origin: center; }
.xuan-axis-two { transform: rotate(45deg); }
.xuan-axis-three { transform: rotate(90deg); }
.xuan-axis-four { transform: rotate(135deg); }
.xuan-glyph { position: absolute; inset: 36%; display: grid; place-items: center; border: 1px solid rgba(212, 184, 122, 0.62); border-radius: 50%; background: rgba(14, 34, 29, 0.8); color: #e6d5ad; font-family: "Kaiti SC", "STKaiti", serif; font-size: 52px; }
.xuan-mark { position: absolute; width: 38px; height: 38px; display: grid; place-items: center; color: #d7bd84; font-family: "Songti SC", "STSong", serif; font-size: 17px; }
.xuan-mark-n { top: 3%; left: calc(50% - 19px); }
.xuan-mark-e { top: calc(50% - 19px); right: 3%; }
.xuan-mark-s { bottom: 3%; left: calc(50% - 19px); }
.xuan-mark-w { top: calc(50% - 19px); left: 3%; }
.xuan-compass figcaption { display: flex; justify-content: space-between; gap: 24px; margin-top: 23px; padding-top: 16px; border-top: 1px solid rgba(212, 184, 122, 0.35); color: #909f97; font-size: 10px; }
.xuan-compass figcaption strong { color: #d8c49a; font-weight: 500; text-align: right; }
.xuan-choose { background: var(--xuan-paper); color: #252a26; }
.xuan-choose .xuan-section-inner { padding: 100px 0 118px; }
.xuan-section-heading { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 46px; margin-bottom: 54px; }
.xuan-section-heading h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 44px; font-weight: 600; line-height: 1.25; }
.xuan-section-heading div > p { max-width: 700px; margin: 12px 0 0; color: #66675f; font-size: 14px; }
.xuan-route-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #696b64; }
.xuan-route-grid a { position: relative; min-height: 218px; display: grid; grid-template-columns: 40px minmax(0, 1fr); align-content: start; gap: 8px 22px; padding: 30px 34px 28px 0; border-bottom: 1px solid #bbb3a5; color: inherit; text-decoration: none; transition: background 180ms ease, padding 180ms ease; }
.xuan-route-grid a:nth-child(even) { padding-right: 0; padding-left: 34px; border-left: 1px solid #bbb3a5; }
.xuan-route-grid a > span { grid-row: 1 / span 3; color: var(--xuan-red); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.xuan-route-grid h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 25px; font-weight: 600; line-height: 1.35; }
.xuan-route-grid p { margin: 0; color: #6a6a62; font-size: 13px; }
.xuan-route-grid small { align-self: end; margin-top: 24px; color: #6c5831; font-size: 11px; font-weight: 700; }
.xuan-route-grid a:hover, .xuan-route-grid a:focus-visible { background: rgba(255, 255, 255, 0.32); }
.xuan-route-grid a:hover h3, .xuan-route-grid a:focus-visible h3 { color: var(--xuan-red); }
.xuan-atlas { background: var(--xuan-night); color: #ebe6d9; }
.xuan-atlas .xuan-section-inner { padding: 104px 0 124px; }
.xuan-section-heading-light { margin-bottom: 36px; }
.xuan-section-heading-light .section-index { color: #c9ab6a; }
.xuan-section-heading-light div > p { color: #9eaaa3; }
.xuan-method-group { scroll-margin-top: 96px; display: grid; grid-template-columns: 205px minmax(0, 1fr); gap: 44px; padding: 62px 0 66px; border-top: 1px solid #4b5d55; }
.xuan-method-group > header > p { margin: 0 0 18px; color: #758b80; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; letter-spacing: 0.08em; }
.xuan-method-group > header span { color: #c6a460; font-size: 11px; font-weight: 750; }
.xuan-method-group > header h3 { margin: 8px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 26px; font-weight: 500; line-height: 1.42; }
.xuan-method-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; background: #4b5d55; }
.xuan-method-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.xuan-method-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.xuan-method-card { min-height: 284px; display: flex; flex-direction: column; padding: 28px 26px 25px; background: var(--xuan-night-soft); }
.xuan-method-card > span { color: #b2a073; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; }
.xuan-method-card h4 { margin: auto 0 13px; font-family: "Kaiti SC", "STKaiti", "Songti SC", serif; font-size: 32px; font-weight: 500; }
.xuan-method-card p { margin: 0; color: #b7c0ba; font-size: 12px; line-height: 1.85; }
.xuan-method-card small { margin-top: 21px; padding-top: 14px; border-top: 1px solid #52655c; color: #d0b675; font-size: 10px; line-height: 1.65; }
.xuan-method-card-wide { min-height: 224px; }
.xuan-method-card-wide h4 { margin-top: 38px; }
.xuan-wisdom-boundary { grid-column: 2; margin: 22px 0 0; padding-top: 18px; border-top: 1px solid #4b5d55; color: #9eaaa3; font-size: 11px; line-height: 1.8; }
.xuan-wisdom-boundary a { color: #d0b675; text-underline-offset: 4px; }
.xuan-combine { background: #dcd2c0; color: #292d28; }
.xuan-combine .xuan-section-inner { padding: 98px 0 112px; }
.xuan-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid #77766c; border-bottom: 1px solid #aaa292; list-style: none; }
.xuan-flow li { position: relative; min-height: 218px; display: flex; flex-direction: column; padding: 24px 26px 27px; }
.xuan-flow li + li { border-left: 1px solid #aaa292; }
.xuan-flow li:not(:last-child)::after { position: absolute; z-index: 2; top: 50%; right: -13px; width: 26px; height: 26px; display: grid; place-items: center; border: 1px solid #9b917f; border-radius: 50%; background: #dcd2c0; color: var(--xuan-red); content: "→"; font-size: 12px; }
.xuan-flow span { color: var(--xuan-red); font-family: "Kaiti SC", "STKaiti", serif; font-size: 23px; }
.xuan-flow strong { margin: auto 0 10px; font-family: "Songti SC", "STSong", serif; font-size: 19px; font-weight: 600; }
.xuan-flow p { margin: 0; color: #65665f; font-size: 12px; }
.xuan-contact { overflow: hidden; background: #eee7da; color: #292d28; }
.xuan-contact-inner { width: min(1080px, calc(100% - 56px)); margin: 0 auto; padding: 92px 0 98px; }
.xuan-contact-note { position: relative; display: grid; grid-template-columns: 160px minmax(0, 1fr) 280px; gap: 46px; align-items: center; padding: 50px 0 52px; border-top: 1px solid #817c70; border-bottom: 1px solid #bcb19f; }
.xuan-contact-note::after { position: absolute; z-index: 0; right: -20px; bottom: -46px; color: rgba(163, 59, 49, 0.055); content: "问"; font-family: "Kaiti SC", "STKaiti", serif; font-size: 190px; line-height: 1; pointer-events: none; }
.xuan-contact .section-index { z-index: 1; align-self: start; padding-top: 8px; color: var(--xuan-red); }
.xuan-contact-copy { z-index: 1; max-width: 500px; }
.xuan-contact-kicker { margin: 0 0 14px; color: #7d6a46; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.12em; }
.xuan-contact h2 { margin: 0 0 15px; font-family: "Songti SC", "STSong", serif; font-size: 39px; font-weight: 600; line-height: 1.25; }
.xuan-contact-copy > p:last-child { max-width: 470px; margin: 0; color: #68675f; font-size: 13px; line-height: 1.9; }
.xuan-contact-card { z-index: 1; min-height: 150px; display: grid; align-content: center; padding-left: 38px; border-left: 1px solid #b9ad98; }
.xuan-contact-card > span { color: var(--xuan-red); font-size: 10px; font-weight: 750; }
.xuan-contact-card strong { margin: 5px 0 12px; color: #263d36; font-family: "Songti SC", "STSong", serif; font-size: 38px; font-weight: 500; letter-spacing: 0.035em; }
.xuan-copy-wechat { justify-self: start; padding: 0 0 5px; border: 0; border-bottom: 1px solid #8f8063; background: transparent; color: #5d513d; font-size: 11px; font-weight: 700; cursor: pointer; }
.xuan-copy-wechat span { margin-left: 9px; color: var(--xuan-red); }
.xuan-copy-wechat:hover, .xuan-copy-wechat:focus-visible { border-color: var(--xuan-red); color: var(--xuan-red); }
.xuan-copy-status { margin-top: 12px; color: #827f76; font-size: 9px; }
.xuan-boundary { background: #a33b31; color: #f7eee0; }
.xuan-boundary-inner { width: min(1080px, calc(100% - 56px)); display: grid; grid-template-columns: 160px minmax(0, 1fr) 130px; gap: 46px; align-items: start; margin: 0 auto; padding: 74px 0 82px; }
.xuan-boundary .section-index { color: #efcf9a; }
.xuan-boundary h2 { margin: 0 0 12px; font-family: "Songti SC", "STSong", serif; font-size: 35px; font-weight: 600; }
.xuan-boundary p { max-width: 730px; margin: 0; color: #f0d8c7; font-size: 13px; line-height: 1.9; }
.xuan-boundary a { justify-self: end; padding-bottom: 5px; border-bottom: 1px solid #e7b99a; color: #fff3e3; font-size: 12px; font-weight: 700; text-decoration: none; }

@keyframes xuan-arrive {
  from { opacity: 0; transform: scale(0.84) rotate(-8deg); }
  to { opacity: 1; transform: scale(1) rotate(0); }
}

@media (max-width: 940px) {
  .xuan-hero-inner { grid-template-columns: minmax(0, 1fr) 300px; gap: 52px; }
  .xuan-seal { left: -22px; }
  .xuan-method-group { grid-template-columns: 160px minmax(0, 1fr); gap: 30px; }
  .xuan-method-grid-three { grid-template-columns: 1fr; }
  .xuan-method-grid-three .xuan-method-card { min-height: 220px; }
  .xuan-method-grid-three .xuan-method-card h4 { margin-top: 32px; }
  .xuan-contact-note { grid-template-columns: 130px minmax(0, 1fr); gap: 34px; }
  .xuan-contact-card { grid-column: 2; min-height: 0; padding: 26px 0 0; border-top: 1px solid #c4b9a6; border-left: 0; }
}

@media (max-width: 760px) {
  .site-header { height: 68px; padding-inline: 16px; }
  .wordmark { display: inline-flex; font-size: 13px; }
  .site-header .mobile-nav-toggle { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; }
  .site-header .mobile-nav-toggle span { font-size: 26px; line-height: 1; }
  .site-header .site-nav { position: absolute; top: 68px; left: 0; width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding: 8px 16px 16px; border-bottom: 1px solid var(--line); background: rgba(244, 245, 242, 0.98); color: var(--ink); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px); transition: opacity 180ms ease, transform 180ms ease, visibility 180ms; }
  .site-header .site-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
  .site-header .site-nav a { min-height: 48px; display: flex; align-items: center; padding: 0 10px; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 650; white-space: nowrap; }
  .site-header.nav-open { background: rgba(244, 245, 242, 0.98); color: var(--ink); border-color: var(--line); }
  .inner-page, .reader-page { padding-top: 68px; }
  .xuan-hero-inner { min-height: 0; grid-template-columns: 1fr; gap: 60px; padding: 68px 0 76px; }
  .xuan-hero-copy { max-width: 620px; }
  .xuan-compass { width: min(420px, 86vw); justify-self: center; }
  .xuan-route-grid { grid-template-columns: 1fr; }
  .xuan-route-grid a, .xuan-route-grid a:nth-child(even) { min-height: 190px; padding: 28px 0; border-left: 0; }
  .xuan-method-group { grid-template-columns: 1fr; gap: 26px; }
  .xuan-wisdom-boundary { grid-column: 1; }
  .xuan-method-group > header { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 24px; }
  .xuan-method-group > header > p { margin: 7px 0 0; }
  .xuan-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xuan-flow li:nth-child(3) { border-left: 0; }
  .xuan-flow li:nth-child(n + 3) { border-top: 1px solid #aaa292; }
  .xuan-flow li:nth-child(2)::after { display: none; }
  .xuan-contact-note { grid-template-columns: 120px minmax(0, 1fr); }
  .xuan-boundary-inner { grid-template-columns: 120px minmax(0, 1fr); gap: 34px; }
  .xuan-boundary a { grid-column: 2; justify-self: start; }
}

@media (max-width: 620px) {
  .xuan-section-inner, .xuan-hero-inner, .xuan-contact-inner, .xuan-boundary-inner { width: calc(100% - 32px); }
  .xuan-hero-inner { gap: 50px; padding: 58px 0 64px; }
  .xuan-seal { position: static; width: 40px; height: 40px; margin: 28px 0 14px; font-size: 21px; }
  .xuan-hero h1 { margin-top: 0; font-size: clamp(43px, 13vw, 52px); }
  .xuan-declaration { font-size: 20px; }
  .xuan-lead { font-size: 13px; }
  .xuan-choose .xuan-section-inner, .xuan-atlas .xuan-section-inner, .xuan-combine .xuan-section-inner { padding: 68px 0 78px; }
  .xuan-section-heading { grid-template-columns: 1fr; gap: 14px; margin-bottom: 38px; }
  .xuan-section-heading h2 { font-size: 33px; }
  .xuan-route-grid a, .xuan-route-grid a:nth-child(even) { min-height: 0; grid-template-columns: 28px minmax(0, 1fr); padding: 24px 0 27px; }
  .xuan-route-grid h3 { font-size: 21px; }
  .xuan-route-grid small { margin-top: 16px; }
  .xuan-method-group { padding: 46px 0 50px; }
  .xuan-method-group > header { grid-template-columns: 1fr; gap: 2px; }
  .xuan-method-group > header h3 { font-size: 23px; }
  .xuan-method-grid-two { grid-template-columns: 1fr; }
  .xuan-method-card, .xuan-method-grid-three .xuan-method-card { min-height: 240px; padding: 24px 22px; }
  .xuan-method-card h4, .xuan-method-grid-three .xuan-method-card h4 { margin-top: 34px; font-size: 29px; }
  .xuan-flow { grid-template-columns: 1fr; }
  .xuan-flow li { min-height: 170px; border-top: 1px solid #aaa292; border-left: 0 !important; }
  .xuan-flow li:first-child { border-top: 0; }
  .xuan-flow li::after { display: none; }
  .xuan-contact-inner { padding: 66px 0 74px; }
  .xuan-contact-note { grid-template-columns: 1fr; gap: 18px; padding: 38px 0 42px; }
  .xuan-contact-note::after { right: -12px; bottom: -22px; font-size: 126px; }
  .xuan-contact h2 { font-size: 32px; }
  .xuan-contact-card { grid-column: auto; width: 100%; margin-top: 12px; padding-top: 24px; }
  .xuan-boundary-inner { grid-template-columns: 1fr; gap: 18px; padding: 56px 0 62px; }
  .xuan-boundary h2 { font-size: 30px; }
  .xuan-boundary a { grid-column: auto; margin-top: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .xuan-dial { animation: none; }
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  font-size: 16px;
  line-height: 1.7;
  letter-spacing: 0;
  text-rendering: optimizeLegibility;
}

a { color: inherit; }
button, input, textarea { font: inherit; letter-spacing: 0; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible {
  outline: 3px solid rgba(166, 61, 50, 0.38);
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 8px;
  left: 8px;
  transform: translateY(-150%);
  padding: 8px 12px;
  background: white;
  color: var(--ink);
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: fixed;
  z-index: 30;
  inset: 0 0 auto 0;
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 max(28px, calc((100% - var(--max)) / 2));
  color: var(--hero-ink);
  border-bottom: 1px solid rgba(255, 255, 255, 0.28);
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.site-header.scrolled,
.site-header.inner-header {
  background: rgba(244, 245, 242, 0.96);
  color: var(--ink);
  border-color: var(--line);
  backdrop-filter: blur(12px);
}
.wordmark { display: inline-flex; align-items: center; gap: 10px; color: inherit; font-weight: 750; text-decoration: none; }
.wordmark-mark {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  background: var(--cinnabar);
  color: white;
  font-family: "Songti SC", "STSong", serif;
  font-size: 17px;
}
.site-nav { display: flex; gap: 22px; align-items: center; }
.site-nav a { color: inherit; font-size: 14px; text-decoration: none; }
.site-nav a:hover, .site-nav a:focus-visible { text-decoration: underline; text-underline-offset: 5px; }
.site-nav a[aria-current="page"] { color: var(--cinnabar); text-decoration: underline; text-underline-offset: 5px; }
.mobile-nav-toggle { display: none; }

@media (max-width: 980px) {
  .site-header { height: 68px; padding-inline: 20px; }
  .site-header .mobile-nav-toggle { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; }
  .site-header .mobile-nav-toggle span { font-size: 26px; line-height: 1; }
  .site-header .site-nav { position: absolute; top: 68px; left: 0; width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding: 8px 16px 16px; border-bottom: 1px solid var(--line); background: rgba(244, 245, 242, 0.98); color: var(--ink); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px); transition: opacity 180ms ease, transform 180ms ease, visibility 180ms; }
  .site-header .site-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
  .site-header .site-nav a { min-height: 48px; display: flex; align-items: center; padding: 0 10px; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 650; white-space: nowrap; }
  .site-header.nav-open { background: rgba(244, 245, 242, 0.98); color: var(--ink); border-color: var(--line); }
  .inner-page, .reader-page { padding-top: 68px; }
}

.hero {
  position: relative;
  min-height: min(760px, 86svh);
  display: flex;
  align-items: flex-end;
  background: url("assets/writing-desk.jpg") center center / cover no-repeat;
  color: var(--hero-ink);
  isolation: isolate;
}
.hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: rgba(11, 17, 14, 0.52); }
.hero-content { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 150px 0 108px; }
.kicker, .section-index { margin: 0; color: var(--cinnabar); font-size: 12px; font-weight: 750; line-height: 1.4; text-transform: uppercase; }
.hero .kicker { color: rgba(255, 255, 255, 0.72); }
.hero h1 {
  margin: 20px 0 22px;
  font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  font-size: 76px;
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: 0;
}
.hero-copy { max-width: 610px; margin: 0 0 34px; color: rgba(255,255,255,0.84); font-size: 18px; }
.primary-link { display: inline-flex; align-items: center; gap: 18px; padding: 9px 0 6px; border-bottom: 1px solid rgba(255,255,255,0.7); color: white; font-weight: 650; text-decoration: none; }
.hero-ledger {
  position: absolute;
  right: max(28px, calc((100% - var(--max)) / 2));
  bottom: 108px;
  display: flex;
  gap: 36px;
  margin: 0;
}
.hero-ledger div { min-width: 94px; padding-left: 14px; border-left: 1px solid rgba(255,255,255,0.38); }
.hero-ledger dt { color: rgba(255,255,255,0.62); font-size: 11px; }
.hero-ledger dd { margin: 3px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 30px; line-height: 1.1; }

.start-here { background: #e2e7e3; border-bottom: 1px solid #cbd3ce; }
.start-here-inner { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 96px 0 108px; }
.start-here-heading { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 40px; margin-bottom: 52px; }
.start-here-heading h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 46px; font-weight: 600; line-height: 1.22; }
.start-here-heading div > p { margin: 12px 0 0; color: #58645d; }
.question-navigation { border-top: 1px solid var(--ink); }
.question-navigation a { min-height: 116px; display: grid; grid-template-columns: 44px minmax(0, 1fr) 110px 32px; gap: 24px; align-items: center; border-bottom: 1px solid #b8c2bc; color: inherit; text-decoration: none; }
.question-navigation a > span { color: var(--cinnabar); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 750; }
.question-navigation h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 25px; font-weight: 600; line-height: 1.35; }
.question-navigation h3 + p { max-width: 680px; margin: 7px 0 0; color: #66726b; font-size: 14px; }
.question-navigation small { color: var(--forest); font-size: 12px; text-align: right; }
.question-navigation strong { width: 32px; height: 32px; display: grid; place-items: center; color: var(--cinnabar); font-size: 18px; font-weight: 400; transition: transform 180ms ease; }
.question-navigation a:hover h3,
.question-navigation a:focus-visible h3 { color: var(--cinnabar); }
.question-navigation a:hover strong,
.question-navigation a:focus-visible strong { transform: translate(3px, -3px); }

.series-map-section { background: #263d36; color: #f3f2eb; }
.series-map-inner { width: min(var(--max), calc(100% - 56px)); display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 40px; margin: 0 auto; padding: 92px 0 104px; }
.series-map-inner > .section-index { color: #d2b477; }
.series-map { min-width: 0; margin: 0; }
.series-map figcaption h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 42px; font-weight: 600; line-height: 1.25; }
.series-map figcaption p { max-width: 620px; margin: 12px 0 0; color: #b9c4be; }
.series-flow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 42px; margin: 54px 0 0; padding: 0; list-style: none; }
.series-flow li { position: relative; min-width: 0; }
.series-flow li:not(:last-child)::after { content: "→"; position: absolute; top: 48px; right: -29px; color: #d2b477; font-size: 18px; }
.series-flow a { min-height: 148px; display: flex; flex-direction: column; padding: 17px 0; border-top: 1px solid #7f9487; border-bottom: 1px solid #52685f; color: inherit; text-decoration: none; }
.series-flow a > span { color: #d2b477; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.series-flow strong { margin-top: 20px; font-family: "Songti SC", "STSong", serif; font-size: 27px; font-weight: 600; line-height: 1.2; }
.series-flow small { margin-top: auto; color: #bac5bf; font-size: 13px; }
.series-flow a:hover,
.series-flow a:focus-visible { border-top-color: #d2b477; color: #fff; }

.section { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 106px 0 116px; }
.section-heading { display: grid; grid-template-columns: minmax(130px, 0.65fr) minmax(0, 2fr); gap: 40px; margin-bottom: 58px; }
.section-heading h2, .about-section h2, .directory-heading h2 {
  margin: 0;
  font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0;
}
.section-heading p:not(.section-index) { max-width: 640px; margin: 13px 0 0; color: var(--muted); }

.work-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 64px 38px; }
.work-card { min-width: 0; }
.work-cover {
  --cover: var(--forest);
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  padding: 28px;
  border-radius: 3px;
  background: var(--cover);
  box-shadow: 0 18px 34px rgba(20, 29, 24, 0.14);
  color: #fffdf7;
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease;
}
.work-cover::before { content: ""; position: absolute; top: 0; bottom: 0; left: 18px; width: 1px; background: currentColor; opacity: 0.22; }
.work-cover:hover, .work-cover:focus-visible { transform: translateY(-5px); box-shadow: 0 24px 42px rgba(20, 29, 24, 0.2); }
.cover-order { font-size: 10px; font-weight: 750; }
.work-cover strong { max-width: 9em; font-family: "Songti SC", "STSong", serif; font-size: 34px; font-weight: 600; line-height: 1.3; }
.cover-type { align-self: flex-end; max-width: 75%; font-size: 11px; line-height: 1.5; text-align: right; }
.work-card-copy { padding-top: 22px; }
.work-status-line { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; color: var(--muted); font-size: 12px; }
.status-badge { display: inline-block; padding: 2px 7px; border: 1px solid var(--line); border-radius: 3px; font-size: 11px; font-weight: 750; }
.status-badge.complete { border-color: #87a89a; color: var(--forest); }
.status-badge.creating { border-color: #d5a29a; color: var(--cinnabar); }
.work-card h3 { margin: 10px 0 8px; font-family: "Songti SC", "STSong", serif; font-size: 23px; line-height: 1.35; }
.work-card h3 a { text-decoration: none; }
.work-card-copy > p { min-height: 5.1em; margin: 0 0 16px; color: var(--muted); font-size: 14px; }
.text-link { display: inline-flex; gap: 9px; padding-bottom: 3px; border-bottom: 1px solid currentColor; color: var(--ink); font-size: 13px; font-weight: 650; text-decoration: none; }
.text-link:hover, .text-link:focus-visible { color: var(--cinnabar); }

.wechat-link { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; padding: 7px 16px; border: 1px solid currentColor; border-radius: 3px; font-size: 13px; font-weight: 700; text-decoration: none; }
.wechat-link:hover, .wechat-link:focus-visible { border-color: var(--cinnabar); background: var(--cinnabar); color: white; }

.home-contact { background: #dfe5e1; border-top: 1px solid #cbd3ce; }
.home-contact-inner { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 62px 0 68px; display: grid; grid-template-columns: 130px 220px minmax(0, 1fr); gap: 48px; align-items: start; }
.home-contact h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 34px; font-weight: 600; line-height: 1.3; }
.home-contact-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin: 0; }
.home-contact-list div { padding: 13px 0; border-top: 1px solid #aeb9b2; border-bottom: 1px solid #aeb9b2; }
.home-contact-list dt { color: var(--muted); font-size: 11px; }
.home-contact-list dd { margin: 4px 0 0; font-size: 15px; overflow-wrap: anywhere; }
.home-contact-list dd small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.home-contact-list a { text-decoration: none; }
.home-contact-list a:hover, .home-contact-list a:focus-visible { color: var(--cinnabar); text-decoration: underline; text-underline-offset: 4px; }

.site-footer { display: flex; justify-content: space-between; gap: 24px; padding: 28px max(28px, calc((100% - var(--max)) / 2)); background: #101612; color: #cbd2cd; font-size: 12px; }
.site-footer p { margin: 0; }
.site-footer a { text-decoration: none; }
.site-footer a:hover, .site-footer a:focus-visible { color: white; text-decoration: underline; text-underline-offset: 4px; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 24px; }
.noscript, .fatal-error { position: fixed; z-index: 50; right: 12px; bottom: 12px; margin: 0; padding: 8px 12px; background: var(--cinnabar); color: white; }

/* Author */
.author-hero { background: #dfe5e1; border-bottom: 1px solid var(--line); }
.author-hero-inner {
  width: min(var(--max), calc(100% - 56px));
  min-height: min(620px, calc(100svh - 76px));
  margin: 0 auto;
  padding: 82px 0;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) 310px;
  gap: 90px;
  align-items: center;
}
.author-identity h1 { margin: 14px 0 22px; font-family: "Songti SC", "STSong", serif; font-size: 76px; font-weight: 600; line-height: 1.08; }
.author-lead { max-width: 680px; margin: 0; color: #4f5b54; font-size: 18px; }
.author-ledger { display: flex; gap: 52px; margin: 38px 0 0; }
.author-ledger div { min-width: 112px; padding-left: 14px; border-left: 2px solid #bdc8c1; }
.author-ledger dt { color: var(--muted); font-size: 11px; }
.author-ledger dd { margin: 2px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 31px; line-height: 1.2; }
.author-profile-note { padding: 25px 0 0; border-top: 3px solid var(--cinnabar); border-bottom: 1px solid #b7c1bb; }
.author-profile-note > p { margin: 0 0 20px; color: var(--cinnabar); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 750; }
.author-profile-note dl { margin: 0; }
.author-profile-note dl > div { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 15px; padding: 14px 0; border-top: 1px solid #c7d0ca; }
.author-profile-note dt { color: var(--muted); font-size: 11px; }
.author-profile-note dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 15px; line-height: 1.55; }
.author-work { width: min(1000px, calc(100% - 56px)); margin: 0 auto; padding: 96px 0 112px; }
.author-section-heading { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 40px; margin-bottom: 50px; }
.author-section-heading h2, .author-resources h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 42px; font-weight: 600; line-height: 1.28; }
.author-section-heading div > p { max-width: 620px; margin: 13px 0 0; color: var(--muted); }
.author-work-list { border-top: 1px solid var(--ink); }
.author-work-row { min-height: 130px; display: grid; grid-template-columns: 50px minmax(0, 1fr) 42px; gap: 25px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.author-work-row > span { align-self: start; padding-top: 7px; color: var(--cinnabar); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }
.author-work-row h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 28px; font-weight: 600; line-height: 1.4; }
.author-work-row p { margin: 5px 0 0; color: var(--muted); font-size: 14px; }
.author-work-row > strong { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-weight: 500; }
.author-work-row:hover h3, .author-work-row:focus-visible h3 { color: var(--cinnabar); }
.author-work-row:hover > strong, .author-work-row:focus-visible > strong { border-color: var(--ink); background: var(--ink); color: white; }
.author-resources { background: #18201c; color: #f5f4ee; }
.author-resources-inner { width: min(1000px, calc(100% - 56px)); margin: 0 auto; padding: 90px 0 100px; display: grid; grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1.3fr); gap: 90px; }
.author-resources .section-index { color: #d87566; }
.author-resources h2 { margin-top: 28px; font-size: 38px; }
.author-resource-list { border-top: 1px solid #4a5650; }
.author-resource-list a { min-height: 86px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 0.7fr) 30px; gap: 24px; align-items: center; border-bottom: 1px solid #3d4842; color: inherit; text-decoration: none; }
.author-resource-list span { font-family: "Songti SC", "STSong", serif; font-size: 21px; }
.author-resource-list small { color: #aebbb3; font-size: 12px; }
.author-resource-list strong { color: #d87566; font-weight: 500; text-align: right; }
.author-resource-list a:hover span, .author-resource-list a:focus-visible span { color: #e58979; }

/* Viewpoints */
.views-page { background: #f0f1ec; }
.views-subnav { width: min(var(--max), calc(100% - 56px)); min-height: 54px; display: flex; align-items: stretch; gap: 34px; margin: 0 auto; border-bottom: 1px solid #c5cbc5; }
.views-subnav a { min-height: 54px; display: flex; align-items: center; border-bottom: 2px solid transparent; color: #69736b; font-size: 11px; text-decoration: none; }
.views-subnav a:hover,
.views-subnav a:focus-visible { color: var(--ink); }
.views-subnav a[aria-current="page"] { border-bottom-color: var(--cinnabar); color: var(--ink); font-weight: 750; }
.views-hero { background: #dfe4de; border-bottom: 1px solid #c5ccc6; }
.views-hero-inner { width: min(var(--max), calc(100% - 56px)); min-height: min(500px, calc(100svh - 130px)); margin: 0 auto; padding: 76px 0; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr); gap: 110px; align-items: center; }
.views-hero h1 { margin: 14px 0 18px; font-family: "Songti SC", "STSong", serif; font-size: 68px; font-weight: 600; line-height: 1.12; }
.views-hero h1 + p { max-width: 650px; margin: 0; color: #4f5b54; font-size: 17px; }
.views-scope { margin: 0; border-top: 1px solid #9da9a2; }
.views-scope div { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 18px; padding: 17px 0; border-bottom: 1px solid #b9c3bd; align-items: baseline; }
.views-scope dt { color: var(--cinnabar); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.views-scope dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 20px; }
.views-paths { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 92px 0 118px; }
.views-section-heading { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 42px; margin-bottom: 52px; }
.views-section-heading h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 42px; font-weight: 600; line-height: 1.25; }
.views-section-heading div > p { max-width: 720px; margin: 11px 0 0; color: var(--muted); }
.views-path-list { border-top: 2px solid var(--ink); }
.views-path-row { min-height: 162px; display: grid; grid-template-columns: 128px minmax(0, 1fr) 220px 44px; gap: 34px; align-items: center; border-bottom: 1px solid #bcc4bd; color: inherit; text-decoration: none; }
.views-path-row > p { display: flex; flex-direction: column; gap: 8px; margin: 0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.views-path-row > p span { color: #1f67d2; font-size: 18px; }
.views-path-row > p small { color: #69736b; font-size: 9px; }
.views-path-row h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 30px; font-weight: 600; line-height: 1.35; }
.views-path-row h3 + p { max-width: 620px; margin: 8px 0 0; color: #5f6962; font-size: 13px; }
.views-path-row > span { color: var(--cinnabar); font-size: 10px; line-height: 1.6; text-align: right; }
.views-path-row > strong { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #a7b0a8; border-radius: 50%; font-size: 18px; font-weight: 500; }
.views-path-row:hover h3,
.views-path-row:focus-visible h3 { color: #1f67d2; }
.views-path-row:hover > strong,
.views-path-row:focus-visible > strong { border-color: var(--ink); background: var(--ink); color: white; }
.views-notes { background: #e8ebe7; border-top: 1px solid #c5cbc5; }
.views-notes-inner { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 92px 0 118px; }
.views-empty { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 8px 40px; padding: 52px 0 56px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.views-empty > span { grid-row: 1 / span 2; padding-top: 8px; color: var(--cinnabar); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 750; }
.views-empty h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 29px; font-weight: 600; }
.views-empty p { margin: 0; color: var(--muted); }
.views-radar { background: #e8ebe7; color: var(--ink); border-top: 1px solid #c5cbc5; }
.views-radar-inner { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 92px 0 126px; }
.views-radar-heading { max-width: 720px; display: block; margin: 0 auto 54px; text-align: center; }
.views-radar-heading .section-index { color: #1f67d2; }
.views-radar-heading h2 { margin-top: 14px; }
.views-radar-heading div > p { margin: 12px auto 0; color: #5f6962; }
.views-radar-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(190px, 1.25fr); margin: 0; border-top: 2px solid var(--ink); border-bottom: 1px solid #9fa7a0; }
.views-radar-stats div { min-height: 108px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 17px 18px 18px; text-align: center; }
.views-radar-stats div + div { border-left: 1px solid #c1c7c1; }
.views-radar-stats dt { color: #667168; font-size: 9px; }
.views-radar-stats dd { margin: 0; color: var(--ink); font-family: "Songti SC", "STSong", serif; font-size: 32px; }
.views-radar-stats dd small { color: #7c867e; font-family: inherit; font-size: 15px; }
.views-radar-stats time { color: #1f67d2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 20px; }
.views-radar-schedule { min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 9px; margin: 0; border-bottom: 1px solid #c5cbc5; color: #69736b; font-size: 10px; }
.views-radar-schedule span { width: 7px; height: 7px; background: #75a949; box-shadow: 0 0 0 3px rgba(117, 169, 73, 0.12); }
.views-report-filters { display: grid; grid-template-columns: minmax(240px, 1.5fr) repeat(2, minmax(170px, 0.8fr)) 72px; gap: 12px; align-items: end; padding: 24px 0 28px; border-bottom: 1px solid #bfc6bf; }
.views-report-filters label { min-width: 0; display: grid; gap: 7px; }
.views-report-filters label > span { color: #667168; font-size: 9px; }
.views-report-filters input,
.views-report-filters select { width: 100%; min-height: 46px; padding: 0 12px; border: 1px solid #9fa9a1; border-radius: 2px; background: #f7f8f4; color: var(--ink); font: inherit; font-size: 12px; }
.views-report-filters button { min-height: 46px; padding: 0 12px; border: 1px solid #7f8981; border-radius: 2px; background: transparent; color: var(--ink); cursor: pointer; font: inherit; font-size: 11px; }
.views-report-filters input:focus,
.views-report-filters select:focus,
.views-report-filters button:focus-visible { outline: 2px solid #1f67d2; outline-offset: 2px; }
.views-report-result { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 24px; color: #737d75; font-size: 10px; }
.views-report-result output { color: var(--cinnabar); }
.views-report-list { border-top: 2px solid var(--ink); }
.views-report-row { min-height: 142px; display: grid; grid-template-columns: 160px minmax(0, 1fr) 220px; align-items: center; padding: 25px 0; border-bottom: 1px solid #c4cac4; transition: background 160ms ease; }
.views-report-row:hover { background: rgba(31, 103, 210, 0.035); }
.views-report-source { display: grid; gap: 8px; padding-right: 28px; text-align: right; }
.views-report-source time { color: #475148; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.views-report-source span { color: #7b857d; font-size: 9px; line-height: 1.5; }
.views-report-title { align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding: 4px 34px; border-right: 1px solid #d1d6d1; border-left: 1px solid #d1d6d1; }
.views-report-title h3 { margin: 0; color: var(--ink); font-family: "Songti SC", "STSong", serif; font-size: 20px; font-weight: 600; line-height: 1.45; }
.views-report-title > div { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.views-report-title > div span { padding: 3px 7px; border: 1px solid #aeb6af; color: #69736b; font-size: 9px; }
.views-report-identity { align-self: stretch; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding-left: 28px; text-align: left; }
.views-report-identity strong { color: #39433c; font-family: "Songti SC", "STSong", serif; font-size: 15px; font-weight: 600; }
.views-report-identity > span { margin-top: 5px; color: #79847b; font-size: 10px; }
.views-report-identity a { margin-top: 18px; color: #1f67d2; font-size: 10px; text-decoration: none; }
.views-report-identity a:hover,
.views-report-identity a:focus-visible { color: var(--cinnabar); }
.views-report-unavailable { margin-top: 18px !important; }
.views-report-empty { min-height: 180px; display: grid; place-content: center; gap: 7px; color: #758078; text-align: center; }
.views-report-empty strong { color: var(--ink); font-family: "Songti SC", "STSong", serif; font-size: 22px; }
.views-report-pagination { min-height: 78px; display: flex; align-items: center; justify-content: center; gap: 22px; width: fit-content; margin: 30px auto 0; }
.views-report-pagination[hidden] { display: none; }
.views-report-pagination > button { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid #a7b0a8; border-radius: 50%; background: transparent; color: var(--ink); cursor: pointer; font: inherit; font-size: 18px; }
.views-report-pagination > button:hover,
.views-report-pagination > button:focus-visible { border-color: var(--ink); background: var(--ink); color: white; }
.views-report-pagination button:disabled { border-color: #c8cdc8; background: transparent; color: #9da59f; cursor: default; }
.views-report-pagination [data-report-pages] { display: flex; justify-content: center; gap: 5px; }
.views-report-pagination [data-report-pages] button { width: 36px; height: 44px; padding: 0; border: 0; border-bottom: 2px solid transparent; background: transparent; color: #727c74; cursor: pointer; font: inherit; font-size: 12px; }
.views-report-pagination [data-report-pages] button:hover,
.views-report-pagination [data-report-pages] button:focus-visible { color: #1f67d2; }
.views-report-pagination [data-report-pages] [aria-current="page"] { border-bottom-color: #1f67d2; color: #1f67d2; font-weight: 750; }
.views-report-pagination [data-report-pages] span { min-width: 18px; display: grid; place-items: center; color: #7a847c; }
.views-report-pagination output { display: none; color: #69736b; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.broker-page { background: #e8ebe7; }
.broker-hero { background: #dfe4de; border-bottom: 1px solid #c5ccc6; }
.broker-hero-inner { width: min(var(--max), calc(100% - 56px)); min-height: min(460px, calc(100svh - 130px)); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr); gap: 110px; align-items: center; margin: 0 auto; padding: 76px 0; }
.broker-hero h1 { margin: 14px 0 18px; font-family: "Songti SC", "STSong", serif; font-size: 68px; font-weight: 600; line-height: 1.12; }
.broker-hero h1 + p { max-width: 680px; margin: 0; color: #4f5b54; font-size: 17px; }
.broker-principles { margin: 0; border-top: 1px solid #9da9a2; }
.broker-principles div { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 18px; padding: 17px 0; border-bottom: 1px solid #b9c3bd; align-items: baseline; }
.broker-principles dt { color: #1f67d2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.broker-principles dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 20px; }
/* Broker analyst scorecard */
.broker-local-nav { width: min(var(--max), calc(100% - 56px)); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 auto; border-bottom: 1px solid #aeb7b0; }
.broker-local-nav a { min-height: 74px; display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 0 18px 0 0; color: #58645c; text-decoration: none; }
.broker-local-nav a + a { padding-left: 24px; border-left: 1px solid #c1c8c2; }
.broker-local-nav a[aria-current="page"] { color: var(--ink); }
.broker-local-nav span { font-family: "Songti SC", "STSong", serif; font-size: 19px; }
.broker-local-nav strong { color: #1f67d2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; }
.broker-local-nav a:hover span,
.broker-local-nav a:focus-visible span { color: #1f67d2; }

.analyst-performance-page { background: #eceeea; }
.analyst-hero { background: #dfe4de; border-bottom: 1px solid #c5ccc6; }
.analyst-hero-inner { width: min(var(--max), calc(100% - 56px)); min-height: min(500px, calc(100svh - 130px)); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr); gap: 100px; align-items: center; margin: 0 auto; padding: 72px 0; }
.analyst-hero .breadcrumb { display: flex; gap: 10px; margin-bottom: 42px; color: #6b756d; font-size: 10px; }
.analyst-hero .breadcrumb a { color: inherit; text-decoration: none; }
.analyst-hero h1 { margin: 14px 0 18px; font-family: "Songti SC", "STSong", serif; font-size: 64px; font-weight: 600; line-height: 1.12; }
.analyst-hero h1 + p { max-width: 700px; margin: 0; color: #4f5b54; font-size: 16px; line-height: 1.85; }
.analyst-principles { margin: 0; border-top: 2px solid var(--ink); }
.analyst-principles div { min-height: 82px; display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 18px; align-items: center; border-bottom: 1px solid #adb7af; }
.analyst-principles dt { color: #1f67d2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; }
.analyst-principles dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 19px; }
.analyst-scorecard-inner { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 92px 0 116px; }
.analyst-scorecard-heading { margin-bottom: 48px; }
.analyst-coverage { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-top: 2px solid var(--ink); border-bottom: 1px solid #aeb7b0; }
.analyst-coverage div { min-height: 112px; display: flex; flex-direction: column; justify-content: space-between; padding: 17px 20px 20px; }
.analyst-coverage div + div { border-left: 1px solid #bec6bf; }
.analyst-coverage dt { color: #657068; font-size: 9px; font-weight: 700; }
.analyst-coverage dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 34px; }
.analyst-coverage dd small { color: #6b756e; font-size: 12px; }
.analyst-freshness { min-height: 42px; display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 9px 0; border-bottom: 1px solid #c3c9c4; color: #657068; font-size: 10px; }
.analyst-freshness p { margin: 0; }
.analyst-freshness p:first-child { display: flex; gap: 9px; align-items: center; }
.analyst-freshness p:first-child span { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: #2f7a5a; }
.analyst-horizon-bar { min-height: 92px; display: flex; justify-content: space-between; gap: 28px; align-items: center; border-bottom: 1px solid #aeb7b0; }
.analyst-horizons { display: inline-grid; grid-template-columns: repeat(4, 72px); border: 1px solid #aab3ac; border-radius: 3px; overflow: hidden; }
.analyst-horizons button { min-height: 40px; padding: 0 10px; border: 0; border-right: 1px solid #b9c1bb; background: transparent; color: #5e6961; cursor: pointer; font: inherit; font-size: 11px; }
.analyst-horizons button:last-child { border-right: 0; }
.analyst-horizons button[aria-pressed="true"] { background: var(--ink); color: white; }
.analyst-horizon-bar > p { margin: 0; color: #677169; font-size: 11px; }
.analyst-horizon-bar > p strong { color: #1f67d2; font-family: "Songti SC", "STSong", serif; font-size: 24px; }
.analyst-filters { display: grid; grid-template-columns: minmax(210px, 1.4fr) repeat(3, minmax(130px, 0.8fr)) auto; gap: 14px; align-items: end; padding: 24px 0; border-bottom: 1px solid #b8c0ba; }
.analyst-filters label { display: grid; gap: 7px; }
.analyst-filters label > span { color: #68736b; font-size: 9px; font-weight: 700; }
.analyst-filters input,
.analyst-filters select { width: 100%; min-width: 0; min-height: 42px; padding: 0 12px; border: 1px solid #afb8b1; border-radius: 3px; background: rgba(255, 255, 255, 0.35); color: var(--ink); font: inherit; font-size: 12px; }
.analyst-filters button { min-height: 42px; padding: 0 16px; border: 1px solid #89958c; border-radius: 3px; background: transparent; color: #4f5a52; cursor: pointer; font: inherit; font-size: 11px; }
.analyst-result { min-height: 50px; display: flex; justify-content: space-between; gap: 24px; align-items: center; color: #657068; font-size: 10px; }
.analyst-result output { color: var(--ink); font-size: 11px; font-weight: 700; }
.analyst-table-scroll { max-width: 100%; overflow: auto hidden; border-top: 2px solid var(--ink); border-bottom: 1px solid #aeb7b0; }
.analyst-table { width: 100%; min-width: 1040px; border-collapse: collapse; table-layout: fixed; }
.analyst-table th,
.analyst-table td { height: 72px; padding: 12px 14px; border-bottom: 1px solid #c1c8c2; text-align: right; vertical-align: middle; }
.analyst-table thead th { height: 48px; color: #657068; font-size: 9px; font-weight: 700; }
.analyst-table th:first-child { width: 260px; text-align: left; }
.analyst-table thead th:nth-child(2),
.analyst-table thead th:nth-child(3) { width: 78px; }
.analyst-table thead th:nth-child(4) { width: 110px; }
.analyst-table tbody th { text-align: left; }
.analyst-table tbody th strong,
.analyst-table tbody th span { display: block; }
.analyst-table tbody th strong { font-family: "Songti SC", "STSong", serif; font-size: 18px; font-weight: 600; }
.analyst-table tbody th span { max-width: 230px; margin-top: 6px; overflow: hidden; color: #6a746d; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.analyst-table td > strong { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 14px; }
.analyst-table td > small { display: block; margin-top: 4px; color: #758078; font-size: 8px; }
.analyst-metric-value { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; font-weight: 700; }
.analyst-metric-value.is-positive { color: #1c684b; }
.analyst-metric-value.is-negative { color: #a13d34; }
.analyst-table tr[hidden],
.analyst-metric-value[hidden] { display: none !important; }
.analyst-scorecard-empty td { height: 180px; text-align: center; }
.analyst-scorecard-empty strong,
.analyst-scorecard-empty span { display: block; }
.analyst-scorecard-empty span { margin-top: 9px; color: #68736b; font-size: 11px; }
.analyst-load-more { width: 100%; min-height: 52px; margin-top: 18px; border: 1px solid #9da89f; border-radius: 3px; background: transparent; color: var(--ink); cursor: pointer; font: inherit; font-size: 11px; }
.analyst-load-more:hover,
.analyst-load-more:focus-visible { border-color: #1f67d2; color: #1f67d2; }
.analyst-methodology { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 42px; margin-top: 86px; padding-top: 30px; border-top: 2px solid var(--ink); }
.analyst-methodology h2 { margin: 14px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 32px; font-weight: 600; }
.analyst-methodology ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.analyst-methodology li { min-height: 126px; padding: 18px 24px 22px 0; border-bottom: 1px solid #bec6bf; }
.analyst-methodology li:nth-child(even) { padding-left: 24px; border-left: 1px solid #bec6bf; }
.analyst-methodology strong,
.analyst-methodology span { display: block; }
.analyst-methodology strong { font-family: "Songti SC", "STSong", serif; font-size: 18px; font-weight: 600; }
.analyst-methodology span { margin-top: 9px; color: #606b63; font-size: 11px; line-height: 1.75; }
.analyst-source-note { grid-column: 2; margin: 22px 0 0; color: #667169; font-size: 10px; line-height: 1.75; }
.analyst-source-note a { color: #1f67d2; text-underline-offset: 3px; }

/* Macro method */
.macro-page { background: #f0f1ec; }
.macro-hero { background: #dfe4de; border-bottom: 1px solid #c4cbc5; }
.macro-hero-inner { width: min(var(--max), calc(100% - 56px)); min-height: min(560px, calc(100svh - 130px)); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr); gap: 100px; align-items: center; margin: 0 auto; padding: 76px 0; }
.macro-hero-copy h1 { margin: 14px 0 19px; font-family: "Songti SC", "STSong", serif; font-size: 68px; font-weight: 600; line-height: 1.1; }
.macro-hero-copy > p:last-child { max-width: 650px; margin: 0; color: #4e5a53; font-size: 17px; }
.macro-ledger { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 2px solid var(--ink); border-bottom: 1px solid #9da79f; }
.macro-ledger div { min-height: 112px; display: flex; flex-direction: column; justify-content: space-between; padding: 17px 18px 19px 0; border-bottom: 1px solid #bcc5be; }
.macro-ledger div:nth-child(even) { padding-left: 18px; border-left: 1px solid #bcc5be; }
.macro-ledger div:nth-last-child(-n + 2) { border-bottom: 0; }
.macro-ledger dt { color: var(--muted); font-size: 9px; }
.macro-ledger dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 25px; line-height: 1.25; }
.macro-ledger dd small { color: var(--muted); font-size: 13px; }
.macro-method,
.macro-sources { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 94px 0 112px; }
.macro-section-heading { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 42px; margin-bottom: 52px; }
.macro-section-heading h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 42px; font-weight: 600; line-height: 1.25; }
.macro-section-heading div > p { max-width: 720px; margin: 11px 0 0; color: var(--muted); }
.macro-method-flow { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 2px solid var(--ink); border-bottom: 1px solid #aeb7b0; list-style: none; }
.macro-method-flow li { position: relative; min-height: 180px; display: flex; flex-direction: column; justify-content: space-between; gap: 25px; padding: 20px 18px 22px; }
.macro-method-flow li + li { border-left: 1px solid #c0c7c1; }
.macro-method-flow li:not(:last-child)::after { content: "→"; position: absolute; z-index: 1; top: 24px; right: -8px; color: #1f67d2; font-size: 14px; }
.macro-method-flow li > span { color: #1f67d2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.macro-method-flow strong { display: block; font-family: "Songti SC", "STSong", serif; font-size: 21px; font-weight: 600; }
.macro-method-flow small { display: block; margin-top: 8px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.macro-map { background: #e3e7e2; border-top: 1px solid #c1c8c2; border-bottom: 1px solid #c1c8c2; }
.macro-map-inner,
.macro-industries-inner { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 92px 0 112px; }
.macro-map-list { border-top: 2px solid var(--ink); }
.macro-map-group { display: grid; grid-template-columns: minmax(290px, 0.85fr) minmax(0, 1.15fr); gap: 76px; padding: 40px 0 44px; border-bottom: 1px solid #b8c1b9; }
.macro-map-group > header { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 24px; align-content: start; }
.macro-map-group > header > p { display: flex; flex-direction: column; gap: 7px; margin: 3px 0 0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.macro-map-group > header > p span { color: #1f67d2; font-size: 18px; }
.macro-map-group > header > p small { color: #657068; font-size: 9px; line-height: 1.5; }
.macro-map-group h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 27px; font-weight: 600; line-height: 1.35; }
.macro-map-group h3 + p { max-width: 420px; margin: 10px 0 0; color: #566159; font-size: 13px; line-height: 1.75; }
.macro-map-chapters > p { margin: 2px 0 12px; color: #657068; font-size: 9px; font-weight: 700; }
.macro-map-outline { margin: 0; padding: 0; border-top: 1px solid #9fa9a1; list-style: none; }
.macro-map-item { min-height: 66px; border-bottom: 1px solid #bdc5be; }
.macro-map-item a { min-height: 66px; display: grid; grid-template-columns: 36px minmax(0, 1fr) 24px; gap: 17px; align-items: center; color: inherit; text-decoration: none; }
.macro-map-item span { color: var(--cinnabar); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.macro-map-item p { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 17px; line-height: 1.5; }
.macro-map-item strong { color: #1f67d2; font-size: 14px; font-weight: 500; text-align: right; }
.macro-map-item a:hover p,
.macro-map-item a:focus-visible p { color: #1f67d2; }
.macro-industries { background: #e2e7e7; border-top: 1px solid #c1c9c9; }
.macro-industry-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--ink); border-bottom: 1px solid #aab4b4; }
.macro-industry-row { min-height: 150px; display: grid; grid-template-columns: 32px minmax(0, 1fr); grid-template-rows: 1fr auto; gap: 8px 12px; padding: 21px 22px; color: inherit; text-decoration: none; }
.macro-industry-row + .macro-industry-row { border-left: 1px solid #bcc5c5; }
.macro-industry-row:nth-child(4) { border-left: 0; }
.macro-industry-row:nth-child(n + 4) { border-top: 1px solid #bcc5c5; }
.macro-industry-row > span { grid-row: 1 / span 2; color: #1f67d2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.macro-industry-row h3 { align-self: center; margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 24px; font-weight: 600; line-height: 1.35; }
.macro-industry-row p { margin: 0; color: var(--cinnabar); font-size: 9px; font-weight: 750; }
.macro-industry-row p::after { content: "  →"; color: #1f67d2; }
.macro-industry-row:hover h3,
.macro-industry-row:focus-visible h3 { color: #1f67d2; }
.macro-sources { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 42px; padding-bottom: 120px; }
.macro-sources header h2 { margin: 18px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 32px; font-weight: 600; }
.macro-sources > div { border-top: 1px solid var(--ink); }
.macro-sources > div a { min-height: 76px; display: grid; grid-template-columns: minmax(0, 1fr) 30px; gap: 22px; align-items: center; border-bottom: 1px solid #c1c7c1; text-decoration: none; }
.macro-sources > div a span { font-size: 13px; }
.macro-sources > div a strong { color: #1f67d2; text-align: right; }
.macro-sources > p { grid-column: 2; margin: -18px 0 0; color: var(--muted); font-size: 11px; }

/* Macro observation */
.macro-observation { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 0 0 112px; }
.macro-observation-link { min-height: 172px; display: grid; grid-template-columns: 170px minmax(0, 1fr) 220px 104px; gap: 42px; align-items: center; padding: 30px 0; border-top: 2px solid var(--ink); border-bottom: 1px solid #aeb7b0; color: inherit; text-decoration: none; }
.macro-observation-kicker { align-self: start; padding-top: 6px; color: #1f67d2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; line-height: 1.7; }
.macro-observation-link h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 31px; font-weight: 600; line-height: 1.3; }
.macro-observation-link h3 + p { max-width: 600px; margin: 10px 0 0; color: #58635c; font-size: 13px; }
.macro-observation-link dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-left: 1px solid #b7c0b9; }
.macro-observation-link dl div { padding-left: 20px; }
.macro-observation-link dt { color: #68736b; font-size: 9px; }
.macro-observation-link dd { margin: 8px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 18px; }
.macro-observation-link > strong { display: flex; justify-content: space-between; gap: 12px; align-items: center; color: #1f67d2; font-size: 11px; }
.macro-observation-link > strong span:last-child { font-size: 19px; font-weight: 400; }
.macro-observation-link:hover h3,
.macro-observation-link:focus-visible h3 { color: #1f67d2; }

.macro-asset-page { background: #f0f1ec; }
.macro-asset-hero { background: #dfe4de; border-bottom: 1px solid #c4cbc5; }
.macro-asset-hero-inner { width: min(var(--max), calc(100% - 56px)); min-height: min(560px, calc(100svh - 130px)); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr); gap: 100px; align-items: center; margin: 0 auto; padding: 76px 0; }
.macro-asset-hero .breadcrumb { margin-bottom: 44px; }
.macro-asset-hero h1 { margin: 14px 0 19px; font-family: "Songti SC", "STSong", serif; font-size: 62px; font-weight: 600; line-height: 1.12; }
.macro-asset-hero h1 + p { max-width: 700px; margin: 0; color: #4e5a53; font-size: 16px; line-height: 1.85; }
.macro-asset-ledger { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 2px solid var(--ink); border-bottom: 1px solid #9da79f; }
.macro-asset-ledger div { min-height: 112px; display: flex; flex-direction: column; justify-content: space-between; padding: 17px 18px 19px 0; border-bottom: 1px solid #bcc5be; }
.macro-asset-ledger div:nth-child(even) { padding-left: 18px; border-left: 1px solid #bcc5be; }
.macro-asset-ledger div:nth-last-child(-n + 2) { border-bottom: 0; }
.macro-asset-ledger dt { color: var(--muted); font-size: 9px; }
.macro-asset-ledger dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 21px; line-height: 1.25; }
.macro-asset-ledger dd small { color: var(--muted); font-size: 11px; }
.macro-asset-theses,
.macro-asset-readouts,
.macro-asset-sources,
.macro-asset-section-inner { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; }
.macro-asset-theses,
.macro-asset-readouts { padding: 94px 0 112px; }
.macro-thesis-list { border-top: 2px solid var(--ink); }
.macro-thesis-list article { min-height: 150px; display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 42px; align-items: center; padding: 30px 0; border-bottom: 1px solid #b9c1ba; }
.macro-thesis-list article > span { color: #1f67d2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }
.macro-thesis-list h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 27px; font-weight: 600; }
.macro-thesis-list h3 + p { max-width: 760px; margin: 10px 0 0; color: #566159; font-size: 13px; line-height: 1.8; }
.macro-asset-matrix { padding: 92px 0 106px; overflow: hidden; background: #e3e7e2; border-top: 1px solid #c1c8c2; border-bottom: 1px solid #c1c8c2; }
.macro-heatmap-scroll { width: 100%; max-width: 100%; min-width: 0; display: block; overflow: auto hidden; contain: layout paint; overscroll-behavior-inline: contain; border-top: 2px solid var(--ink); border-bottom: 1px solid #aeb7b0; }
.macro-heatmap { width: 1120px; min-width: 1120px; max-width: none; border-collapse: collapse; table-layout: fixed; }
.macro-heatmap th,
.macro-heatmap td { height: 68px; padding: 10px 8px; border-right: 1px solid #bec6bf; border-bottom: 1px solid #bec6bf; text-align: center; }
.macro-heatmap tr:last-child th,
.macro-heatmap tr:last-child td { border-bottom: 0; }
.macro-heatmap th:first-child { width: 190px; position: sticky; z-index: 2; left: 0; padding-left: 0; background: #e3e7e2; text-align: left; }
.macro-heatmap thead th { height: 72px; color: #46534b; font-size: 11px; font-weight: 700; }
.macro-heatmap thead th:first-child { z-index: 3; }
.macro-heatmap th span,
.macro-heatmap th strong { display: block; font-size: 11px; }
.macro-heatmap th small { display: block; margin-top: 5px; color: #6e7871; font-size: 8px; font-weight: 500; }
.macro-heatmap td span { display: block; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; font-weight: 750; }
.macro-heatmap td small { display: block; margin-top: 5px; color: #6c766f; font-size: 8px; }
.macro-heatmap td.positive { background: rgba(31, 103, 210, 0.11); color: #1559b9; }
.macro-heatmap td.negative { background: rgba(166, 61, 50, 0.11); color: #97372e; }
.macro-heatmap td.neutral { background: rgba(255, 255, 255, 0.2); color: #536058; }
.macro-heatmap-legend { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; padding-top: 18px; color: #5d685f; font-size: 9px; }
.macro-heatmap-legend span { display: inline-flex; gap: 7px; align-items: center; }
.macro-heatmap-legend i { width: 12px; height: 12px; display: block; border: 1px solid #aeb7b0; }
.macro-heatmap-legend i.positive { background: rgba(31, 103, 210, 0.18); }
.macro-heatmap-legend i.negative { background: rgba(166, 61, 50, 0.18); }
.macro-heatmap-legend i.neutral { background: rgba(255, 255, 255, 0.35); }
.macro-heatmap-legend small { margin-left: auto; color: #6d7770; }
.macro-asset-readout-list { border-top: 2px solid var(--ink); }
.macro-asset-readout { min-height: 154px; display: grid; grid-template-columns: minmax(280px, 1.1fr) minmax(220px, 0.95fr) minmax(220px, 0.95fr); gap: 42px; align-items: center; padding: 29px 0; border-bottom: 1px solid #bbc3bc; }
.macro-asset-readout header { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 18px; }
.macro-asset-readout header > span { color: #1f67d2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.macro-asset-readout p { margin: 0; color: #68736b; font-size: 9px; }
.macro-asset-readout h3 { margin: 7px 0 2px; font-family: "Songti SC", "STSong", serif; font-size: 25px; font-weight: 600; }
.macro-asset-readout header small { color: #7a837d; font-size: 9px; }
.macro-asset-readout > div { min-height: 70px; padding-left: 20px; border-left: 1px solid #bdc5be; }
.macro-asset-readout > div strong { display: block; margin-top: 9px; font-family: "Songti SC", "STSong", serif; font-size: 17px; font-weight: 600; }
.macro-asset-readout > div span { display: block; margin-top: 7px; color: #1f67d2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; }
.macro-asset-readout > div:last-child span { color: var(--cinnabar); }
.macro-asset-method { padding: 92px 0 106px; background: #e2e7e7; border-top: 1px solid #c1c9c9; border-bottom: 1px solid #c1c9c9; }
.macro-asset-rules { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-top: 2px solid var(--ink); border-bottom: 1px solid #aab4b4; }
.macro-asset-rules div { min-height: 132px; padding: 20px 20px 23px; }
.macro-asset-rules div + div { border-left: 1px solid #b8c2c2; }
.macro-asset-rules dt { color: #66736c; font-size: 9px; }
.macro-asset-rules dd { margin: 28px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 18px; line-height: 1.55; }
.macro-asset-sources { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 42px; padding: 90px 0 120px; }
.macro-asset-sources header h2 { margin: 18px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 32px; font-weight: 600; }
.macro-asset-sources > div { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--ink); }
.macro-asset-sources > div a { min-height: 76px; display: grid; grid-template-columns: minmax(0, 1fr) 24px; gap: 18px; align-items: center; border-bottom: 1px solid #c1c7c1; color: inherit; font-size: 12px; text-decoration: none; }
.macro-asset-sources > div a:nth-child(odd) { padding-right: 22px; }
.macro-asset-sources > div a:nth-child(even) { padding-left: 22px; border-left: 1px solid #c1c7c1; }
.macro-asset-sources > div a strong { color: #1f67d2; text-align: right; }
.macro-asset-sources > p { grid-column: 2; margin: -18px 0 0; color: var(--muted); font-size: 11px; }

/* Macro research entries */
.macro-entry-page { background: #f0f1ec; }
.macro-entry-hero { background: #dfe4de; border-bottom: 1px solid #c4cbc5; }
.macro-entry-hero-inner { width: min(var(--max), calc(100% - 56px)); min-height: min(540px, calc(100svh - 130px)); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr); gap: 100px; align-items: center; margin: 0 auto; padding: 76px 0; }
.macro-entry-hero .breadcrumb { margin-bottom: 46px; }
.macro-entry-hero h1 { max-width: 800px; margin: 14px 0 19px; font-family: "Songti SC", "STSong", serif; font-size: 52px; font-weight: 600; line-height: 1.22; }
.macro-entry-hero h1 + p { max-width: 680px; margin: 0; color: #4e5a53; font-size: 16px; }
.macro-entry-ledger { margin: 0; border-top: 2px solid var(--ink); }
.macro-entry-ledger div { min-height: 88px; display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 20px; align-items: center; border-bottom: 1px solid #b5beb7; }
.macro-entry-ledger dt { color: #657068; font-size: 9px; }
.macro-entry-ledger dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 20px; }
.macro-entry-ledger .status-badge { font-family: "SF Pro Text", "PingFang SC", sans-serif; font-size: 10px; }
.macro-entry-workbench { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 92px 0 120px; }
.macro-entry-question { min-height: 170px; display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 42px; align-items: center; padding: 28px 0; border-top: 2px solid var(--ink); border-bottom: 1px solid #b9c1ba; }
.macro-entry-question h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 30px; font-weight: 600; }
.macro-entry-question h3 + p { max-width: 720px; margin: 10px 0 0; color: #566159; font-size: 15px; }
.macro-entry-method { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 42px; padding: 70px 0 78px; }
.macro-entry-method > p { margin-top: 7px; }
.macro-entry-method ol { display: grid; grid-template-columns: 1fr 1fr; gap: 0 42px; margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.macro-entry-method li { min-height: 100px; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 16px; align-items: center; border-bottom: 1px solid #c0c7c1; }
.macro-entry-method li > span { color: #1f67d2; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.macro-entry-method li strong { font-family: "Songti SC", "STSong", serif; font-size: 19px; font-weight: 600; }
.macro-entry-method li p { margin: 5px 0 0; color: #667068; font-size: 10px; }
.macro-entry-sources { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 42px; padding: 42px 0 54px; border-top: 1px solid var(--ink); border-bottom: 1px solid #b9c1ba; }
.macro-entry-sources h3 { margin: 14px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 26px; font-weight: 600; }
.macro-entry-sources > div:last-child { border-top: 1px solid #aeb7b0; }
.macro-entry-sources a { min-height: 68px; display: grid; grid-template-columns: minmax(0, 1fr) 24px; gap: 18px; align-items: center; border-bottom: 1px solid #c4cac4; color: inherit; font-size: 12px; text-decoration: none; }
.macro-entry-sources a strong { color: #1f67d2; text-align: right; }
.macro-entry-note { margin: 24px 0 58px; color: #667068; font-size: 11px; }

/* Travel notes */
.travel-hero { background: #e5e8e5; border-bottom: 1px solid var(--line); }
.travel-hero-inner { width: min(1000px, calc(100% - 56px)); min-height: min(560px, calc(100svh - 76px)); margin: 0 auto; padding: 82px 0; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr); gap: 90px; align-items: center; }
.travel-hero h1 { margin: 14px 0 18px; font-family: "Songti SC", "STSong", serif; font-size: 68px; font-weight: 600; line-height: 1.12; }
.travel-hero h1 + p { max-width: 610px; margin: 0; color: #4f5b54; font-size: 17px; }
.travel-compass { margin: 0; padding-left: 28px; border-left: 3px solid var(--cinnabar); }
.travel-compass div { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 18px; padding: 15px 0; border-bottom: 1px solid #bdc5c0; align-items: baseline; }
.travel-compass div:first-child { border-top: 1px solid #bdc5c0; }
.travel-compass dt { color: var(--cinnabar); font-size: 11px; }
.travel-compass dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 20px; }
.travel-journal { width: min(1000px, calc(100% - 56px)); min-height: 540px; margin: 0 auto; padding: 94px 0 112px; }
.travel-journal-heading { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 40px; margin-bottom: 48px; }
.travel-journal-heading h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 40px; font-weight: 600; line-height: 1.3; }
.travel-journal-heading div > p { margin: 11px 0 0; color: var(--muted); }
.travel-empty { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 8px 40px; padding: 52px 0 56px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.travel-empty > span { grid-row: 1 / span 2; padding-top: 8px; color: var(--cinnabar); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 750; }
.travel-empty h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 29px; font-weight: 600; }
.travel-empty p { margin: 0; color: var(--muted); }

/* Photography and music */
.photography-hero { background: #171c19; color: #f3f2eb; border-bottom: 1px solid #343d38; }
.photography-hero-inner, .music-hero-inner { width: min(1000px, calc(100% - 56px)); min-height: min(560px, calc(100svh - 76px)); margin: 0 auto; padding: 82px 0; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr); gap: 90px; align-items: center; }
.photography-hero .section-index { color: #d87566; }
.photography-hero h1, .music-hero h1 { margin: 14px 0 18px; font-family: "Songti SC", "STSong", serif; font-size: 68px; font-weight: 600; line-height: 1.12; }
.photography-hero h1 + p { max-width: 610px; margin: 0; color: #bdc7c1; font-size: 17px; }
.photography-index { margin: 0; border-top: 1px solid #505b55; }
.photography-index div { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 18px; padding: 17px 0; border-bottom: 1px solid #3c4641; align-items: baseline; }
.photography-index dt { color: #d87566; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.photography-index dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 21px; }
.photography-page { background: #101210; color: #eeece4; }
.photography-page .site-header.inner-header,
.photography-reader-page .site-header.inner-header { background: rgba(16, 18, 16, 0.96); color: #eeece4; border-color: #303431; }
.photography-page .site-nav a[aria-current="page"],
.photography-reader-page .site-nav a[aria-current="page"] { color: #f06a5f; }
.photography-hero { background: #101210; border-color: #303431; }
.photography-hero-inner { width: min(var(--max), calc(100% - 56px)); min-height: 430px; padding: 68px 0; grid-template-columns: minmax(0, 1.4fr) minmax(250px, 0.6fr); }
.photography-hero h1 { font-size: 72px; }
.photography-hero h1 + p { color: #adb5af; }
.photography-index { border-color: #4a504c; }
.photography-index div { border-color: #343936; }
.photography-page .site-footer { background: #101210; color: #9da59f; border-color: #303431; }
.music-hero { position: relative; isolation: isolate; background: #111 url("assets/music-rock-studio-v1.jpg") 64% center / cover no-repeat; color: #fffaf4; border-bottom: 1px solid #472c2c; }
.music-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: rgba(10, 11, 11, 0.6); }
.music-hero .section-index { color: #ee6b5e; }
.music-hero h1 + p { max-width: 610px; margin: 0; color: #d6d2cc; font-size: 17px; }
.music-platform { border-top: 1px solid rgba(255, 250, 244, 0.42); border-bottom: 1px solid rgba(255, 250, 244, 0.42); }
.music-platform > p { margin: 0; padding: 12px 0 10px; color: #ee6b5e; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 750; }
.music-platform a { min-height: 110px; display: grid; grid-template-columns: minmax(0, 1fr) 28px; gap: 4px 18px; align-content: center; color: inherit; text-decoration: none; }
.music-platform span { font-size: 12px; }
.music-platform strong { grid-column: 1; font-family: "Songti SC", "STSong", serif; font-size: 27px; font-weight: 600; }
.music-platform i { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: #ee6b5e; font-size: 20px; font-style: normal; text-align: right; }
.music-platform a:hover strong, .music-platform a:focus-visible strong { color: #ee6b5e; }
.music-counts { display: flex; gap: 32px; margin: 0; padding: 13px 0; border-top: 1px solid #adb7b1; }
.music-counts div { display: flex; align-items: baseline; gap: 7px; }
.music-counts dt { color: #bcb8b2; font-size: 10px; }
.music-counts dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 20px; }
.creative-catalog { width: min(1000px, calc(100% - 56px)); min-height: 540px; margin: 0 auto; padding: 94px 0 112px; }
.creative-catalog-heading { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 40px; margin-bottom: 48px; }
.creative-catalog-heading h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 40px; font-weight: 600; line-height: 1.3; }
.creative-catalog-heading div > p { margin: 11px 0 0; color: var(--muted); }
.creative-empty { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 8px 40px; padding: 52px 0 56px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.creative-empty > span { grid-row: 1 / span 2; padding-top: 8px; color: var(--cinnabar); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 750; }
.creative-empty h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 29px; font-weight: 600; }
.creative-empty p { margin: 0; color: var(--muted); }
.music-catalog { background: var(--paper); }
.music-album-list { border-top: 1px solid var(--ink); }
.music-album { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 42px; padding: 38px 0; border-bottom: 1px solid var(--line); }
.music-album-cover { aspect-ratio: 1; display: block; overflow: hidden; background: #dfe3df; }
.music-album-cover img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 180ms ease; }
.music-album-cover:hover img, .music-album-cover:focus-visible img { transform: scale(1.025); }
.music-album-copy { align-self: center; }
.music-album-copy > p { margin: 0 0 5px; color: var(--cinnabar); font-size: 10px; }
.music-album-copy h3 { margin: 0 0 17px; font-family: "Songti SC", "STSong", serif; font-size: 30px; font-weight: 600; }
.music-album-copy h3 a { text-decoration: none; }
.music-album-copy ol { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.music-album-copy li a { min-height: 38px; display: grid; grid-template-columns: minmax(0, 1fr) 46px; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); color: inherit; font-size: 13px; text-decoration: none; }
.music-album-copy li a:hover span, .music-album-copy li a:focus-visible span { color: var(--cinnabar); }
.music-album-copy time { color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; text-align: right; }
.creative-entry-list { border-top: 1px solid var(--ink); }
.creative-entry-row { min-height: 180px; display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 1fr); gap: 44px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.creative-entry-row:not(:has(.creative-entry-media)) { grid-template-columns: 160px minmax(0, 1fr); }
.creative-entry-row:not(:has(.creative-entry-media))::before { content: "FIELD NOTE"; padding-top: 5px; color: var(--cinnabar); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 750; }
.creative-entry-media { min-height: 150px; display: block; overflow: hidden; background: #dfe3df; }
.creative-entry-media img { width: 100%; height: 100%; display: block; object-fit: cover; }
.creative-entry-copy { align-self: center; }
.creative-entry-copy > p:first-child { margin: 0 0 8px; color: var(--cinnabar); font-size: 11px; }
.creative-entry-copy h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 29px; font-weight: 600; }
.creative-entry-copy h3 a { text-decoration: none; }
.creative-entry-copy h3 a:hover, .creative-entry-copy h3 a:focus-visible { color: var(--cinnabar); }
.creative-entry-copy h3 + p { max-width: 680px; margin: 9px 0 17px; color: var(--muted); }
.photography-page .creative-catalog { width: min(var(--max), calc(100% - 56px)); padding: 74px 0 128px; }
.photography-page .creative-catalog-heading { margin-bottom: 62px; }
.photography-page .creative-catalog-heading .section-index { color: #f06a5f; }
.photography-page .creative-catalog-heading h2 { color: #eeece4; }
.photography-page .creative-catalog-heading div > p { color: #929b95; }
.photography-exhibition { border-top: 1px solid #3a3e3b; }
.photography-work { padding: 62px 0 74px; border-bottom: 1px solid #303431; }
.photography-work-image,
.photography-work-placeholder { position: relative; aspect-ratio: 3 / 2; display: block; overflow: hidden; background: #090a09; color: #eeece4; text-decoration: none; }
.photography-work-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 420ms ease, opacity 420ms ease; }
.photography-work-image > span { position: absolute; top: 0; left: 0; min-width: 54px; min-height: 54px; display: grid; place-items: center; background: #f06a5f; color: #101210; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; font-weight: 800; }
.photography-work-image:hover img,
.photography-work-image:focus-visible img { transform: scale(1.012); opacity: 0.92; }
.photography-work-placeholder { display: grid; place-items: center; border: 1px solid #343936; }
.photography-work-placeholder > span { font-family: "Songti SC", "STSong", serif; font-size: 96px; color: #303431; }
.photography-work-placeholder > small { position: absolute; bottom: 24px; color: #7f8882; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.photography-work-caption { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr); gap: 72px; padding-top: 28px; }
.photography-work-caption > div > p:first-child { margin: 0 0 9px; color: #f06a5f; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; text-transform: uppercase; }
.photography-work-caption h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 42px; font-weight: 600; line-height: 1.24; }
.photography-work-caption h3 a { text-decoration: none; }
.photography-work-caption h3 a:hover,
.photography-work-caption h3 a:focus-visible { color: #f06a5f; }
.photography-work-note { align-self: end; }
.photography-work-note > p { margin: 0 0 16px; color: #9ea6a1; }
.photography-work-link { color: #eeece4; font-size: 13px; text-underline-offset: 5px; }
.photography-work-link span { color: #f06a5f; }
.photography-page .photography-empty { border-color: #3a3e3b; }
.photography-page .photography-empty h3 { color: #eeece4; }
.photography-page .photography-empty p { color: #929b95; }

/* Photography visual archive */
.photography-stage { min-height: min(790px, calc(100svh - 112px)); padding: 44px 0 30px; background: #101210; color: #eeece4; }
.photography-stage-heading { width: min(1200px, calc(100% - 56px)); display: flex; align-items: end; justify-content: space-between; gap: 42px; margin: 0 auto; }
.photography-stage h1 { margin: 9px 0 8px; font-family: "Songti SC", "STSong", serif; font-size: 54px; font-weight: 600; line-height: 1.08; }
.photography-stage h1 + p { max-width: 520px; margin: 0; color: #9da59f; font-size: 14px; }
.photography-stage-counts { display: grid; grid-template-columns: repeat(2, 88px); margin: 0; border-top: 1px solid #4a504c; }
.photography-stage-counts div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 12px 10px 0 0; }
.photography-stage-counts div + div { padding-left: 14px; border-left: 1px solid #343936; }
.photography-stage-counts dt { color: #8d9690; font-size: 9px; }
.photography-stage-counts dd { margin: 0; color: #f06a5f; font-family: "Songti SC", "STSong", serif; font-size: 22px; }
.photography-stage-empty { width: min(1200px, calc(100% - 56px)); min-height: 430px; display: grid; place-content: center; gap: 12px; margin: 36px auto 0; border-top: 1px solid #343936; color: #8d9690; text-align: center; }
.photography-stage-empty span { color: #f06a5f; font-size: 10px; }
.photography-stage-empty p { margin: 0; }
.photography-coverflow { width: 100%; margin-top: 23px; overflow: hidden; }
.photography-series-filter { width: min(1200px, calc(100% - 56px)); display: flex; gap: 8px 26px; margin: 0 auto; overflow-x: auto; scrollbar-width: none; }
.photography-series-filter::-webkit-scrollbar { display: none; }
.photography-series-filter button { min-height: 44px; flex: 0 0 auto; padding: 0; border: 0; border-bottom: 1px solid transparent; background: transparent; color: #7f8882; font: inherit; font-size: 11px; cursor: pointer; }
.photography-series-filter button small { margin-left: 5px; color: #606963; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 8px; }
.photography-series-filter button[aria-pressed="true"] { border-color: #f06a5f; color: #eeece4; }
.photography-series-filter button[aria-pressed="true"] small { color: #f06a5f; }
.photography-coverflow-viewport { position: relative; height: clamp(355px, 41vw, 530px); overflow: hidden; outline: none; perspective: 880px; perspective-origin: 50% 43%; touch-action: pan-y; }
.photography-coverflow-track { height: 100%; display: flex; align-items: center; gap: 20px; padding: 18px max(28px, calc((100% - 1200px) / 2)); overflow-x: auto; scroll-snap-type: x mandatory; }
.photography-coverflow-card { position: relative; min-width: min(68vw, 820px); aspect-ratio: 3 / 2; flex: 0 0 auto; display: block; overflow: hidden; padding: 0; border: 1px solid #333733; border-radius: 4px; background: #070807; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.42); color: inherit; cursor: pointer; scroll-snap-align: center; }
.photography-coverflow-card img { width: 100%; height: 100%; display: block; object-fit: contain; background: #070807; }
.has-photo-coverflow .photography-coverflow-track { position: relative; display: block; padding: 0; overflow: visible; transform-style: preserve-3d; }
.has-photo-coverflow .photography-coverflow-card { position: absolute; top: 50%; left: 50%; width: min(64vw, 820px); min-width: 0; height: min(42.66vw, 546px); aspect-ratio: auto; opacity: var(--photo-opacity); filter: brightness(var(--photo-brightness)) saturate(var(--photo-saturation)); transform: translate(-50%, -50%) translateX(var(--photo-x)) translateY(var(--photo-y)) translateZ(var(--photo-z)) rotateY(var(--photo-rotate)) scale(var(--photo-scale)); transform-origin: var(--photo-origin); transform-style: preserve-3d; will-change: transform, opacity, filter; transition: transform 580ms cubic-bezier(0.2, 0.78, 0.16, 1), opacity 440ms ease, filter 440ms ease, border-color 320ms ease; }
.has-photo-coverflow .photography-coverflow-card.is-active { border-color: #8d938e; box-shadow: 0 38px 90px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(238, 236, 228, 0.08); }
.has-photo-coverflow .photography-coverflow-card:not(.is-active):not(.is-offstage):hover { border-color: #8d938e; }
.has-photo-coverflow .photography-coverflow-card.is-offstage { pointer-events: none; }
.photography-coverflow-controls { width: min(960px, calc(100% - 56px)); display: grid; grid-template-columns: 48px minmax(0, 1fr) auto 48px; gap: 18px; align-items: center; margin: 3px auto 0; padding-top: 14px; border-top: 1px solid #343936; }
.photography-icon-button,
.photography-lightbox button { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid #464c48; border-radius: 50%; background: transparent; color: #eeece4; font-size: 20px; cursor: pointer; }
.photography-icon-button:hover,
.photography-icon-button:focus-visible { border-color: #f06a5f; color: #f06a5f; }
.photography-active-caption { min-width: 0; }
.photography-active-caption p { margin: 0 0 5px; color: #f06a5f; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 8px; }
.photography-active-caption strong { display: block; overflow: hidden; font-family: "Songti SC", "STSong", serif; font-size: 18px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.photography-coverflow-controls output { color: #7f8882; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.photography-collection-index { padding: 94px max(28px, calc((100% - 1200px) / 2)) 118px; background: #e8e5de; color: #171a17; }
.photography-collection-index > header { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 40px; margin-bottom: 58px; }
.photography-collection-index > header .section-index { color: #a14538; }
.photography-collection-index h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 42px; font-weight: 600; line-height: 1.25; }
.photography-collection-index > header div > p { max-width: 680px; margin: 12px 0 0; color: #646a65; }
.photography-collection-list { border-top: 1px solid #1f231f; }
.photography-collection { padding: 36px 0 48px; border-bottom: 1px solid #bcbab3; scroll-margin-top: 80px; }
.photography-collection > header { display: grid; grid-template-columns: 170px minmax(0, 1fr) auto; gap: 40px; align-items: start; margin-bottom: 27px; }
.photography-collection > header > p { margin: 7px 0 0; color: #a14538; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; }
.photography-collection h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 31px; font-weight: 600; }
.photography-collection h3 + p { max-width: 620px; margin: 8px 0 0; color: #646a65; font-size: 12px; }
.photography-collection > header > span { margin-top: 7px; color: #777c78; font-size: 10px; }
.photography-contact-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 9px; }
.photography-contact-strip button { min-width: 0; aspect-ratio: 3 / 2; display: block; overflow: hidden; padding: 0; border: 0; border-radius: 2px; background: #111; cursor: pointer; }
.photography-contact-strip img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 280ms ease, opacity 280ms ease; }
.photography-contact-strip button:hover img,
.photography-contact-strip button:focus-visible img { transform: scale(1.018); opacity: 0.88; }
.photography-published { background: #101210; }
.photography-lightbox { width: 100vw; max-width: none; height: 100svh; max-height: none; margin: 0; padding: 0; overflow: hidden; border: 0; background: #080908; color: #eeece4; }
.photography-lightbox[open] { display: grid; grid-template-rows: 78px minmax(0, 1fr) 76px; }
.photography-lightbox::backdrop { background: rgba(0, 0, 0, 0.88); }
.photography-lightbox-bar { z-index: 2; width: 100%; min-height: 0; display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 14px 24px; background: #080908; }
.photography-lightbox-bar p { margin: 0 0 4px; color: #f06a5f; font-size: 8px; }
.photography-lightbox-bar strong { font-family: "Songti SC", "STSong", serif; font-size: 17px; font-weight: 600; }
.photography-lightbox-bar button { font-size: 25px; }
.photography-lightbox-image { width: 100%; height: 100%; min-height: 0; display: grid; place-items: center; padding: 8px 24px; overflow: hidden; }
.photography-lightbox-image img { width: 100%; height: 100%; min-width: 0; min-height: 0; display: block; object-fit: contain; }
.photography-lightbox-controls { z-index: 2; display: flex; align-items: center; justify-content: flex-end; gap: 14px; padding: 8px 24px 16px; }
.photography-lightbox-controls output { min-width: 58px; color: #a7afa9; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; text-align: center; }

/* Wine notes */
.wine-hero { background: #3d2630; color: #f5f0ec; border-bottom: 1px solid #5a3a47; }
.wine-hero-inner { width: min(1000px, calc(100% - 56px)); min-height: min(560px, calc(100svh - 76px)); margin: 0 auto; padding: 82px 0; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr); gap: 90px; align-items: center; }
.wine-hero .section-index { color: #e6a56f; }
.wine-hero h1 { margin: 14px 0 18px; font-family: "Songti SC", "STSong", serif; font-size: 68px; font-weight: 600; line-height: 1.12; }
.wine-hero h1 + p { max-width: 610px; margin: 0; color: #d5c6ca; font-size: 17px; }
.wine-notes { margin: 0; padding-left: 28px; border-left: 3px solid #d58b62; }
.wine-notes div { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 18px; padding: 15px 0; border-bottom: 1px solid #6a4b57; align-items: baseline; }
.wine-notes div:first-child { border-top: 1px solid #6a4b57; }
.wine-notes dt { color: #e6a56f; font-size: 11px; }
.wine-notes dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 20px; }

/* Shared section reader */
.section-reader-shell { width: min(820px, calc(100% - 56px)); margin: 0 auto; padding: 72px 0 100px; }
.section-reader-title { padding: 28px 0 34px; border-bottom: 1px solid var(--line); }
.section-reader-title h1 { margin: 14px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 46px; font-weight: 600; line-height: 1.28; }
.section-entry-figure { margin: 38px 0 8px; }
.section-entry-figure img { width: 100%; max-height: 720px; display: block; object-fit: contain; background: #e4e7e3; }
.section-reader-body { width: min(var(--reader), 100%); margin: 0 auto; padding-top: 42px; }
.section-source-link { display: inline-block; margin: 0 0 40px; color: var(--forest); font-size: 13px; text-underline-offset: 4px; }
.photography-reader-page { padding-top: 76px; background: #101210; color: #eeece4; }
.photography-reader-shell { padding: 72px 0 108px; }
.photography-story-heading { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding-bottom: 46px; }
.photography-story-heading .breadcrumb { color: #8f9892; }
.photography-story-heading .breadcrumb a { color: #c7ccc8; }
.photography-story-heading .section-index { margin-top: 46px; color: #f06a5f; }
.photography-story-heading h1 { max-width: 900px; margin: 14px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 64px; font-weight: 600; line-height: 1.18; }
.photography-reader-page .section-entry-figure { width: min(1440px, 100%); margin: 0 auto; background: #090a09; }
.photography-reader-page .section-entry-figure img { width: 100%; max-height: none; display: block; object-fit: contain; background: #090a09; }
.photography-story-caption { width: min(var(--max), calc(100% - 56px)); display: grid; grid-template-columns: 210px minmax(0, 620px); gap: 70px; margin: 0 auto; padding: 34px 0 54px; border-bottom: 1px solid #303431; }
.photography-story-caption > span { color: #f06a5f; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 750; }
.photography-story-caption p { margin: 0; color: #adb5af; font-family: "Songti SC", "STSong", serif; font-size: 19px; }
.photography-reader-body { width: min(var(--reader), calc(100% - 56px)); margin: 0 auto; padding: 58px 0 20px; color: #d8d9d4; }
.photography-reader-page .chapter-navigation { width: min(var(--max), calc(100% - 56px)); margin: 50px auto 0; border-color: #303431; }
.photography-reader-page .chapter-navigation a { color: #eeece4; }
.photography-reader-page .section-source-link { margin-left: max(28px, calc((100% - var(--max)) / 2)); color: #eeece4; }
.photography-reader-footer { background: #101210; color: #9da59f; border-color: #303431; }

/* Work directory */
.inner-page { padding-top: 76px; }
.work-hero { background: #e9ece8; border-bottom: 1px solid var(--line); }
.work-hero-inner { width: min(var(--max), calc(100% - 56px)); min-height: 590px; margin: 0 auto; padding: 82px 0; display: grid; grid-template-columns: minmax(0, 1.25fr) 300px; gap: 110px; align-items: center; }
.work-title-copy .work-status-line { margin: 30px 0 13px; }
.work-title-copy h1 { max-width: 760px; margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 58px; font-weight: 600; line-height: 1.15; letter-spacing: 0; }
.work-type { margin: 13px 0 0; color: var(--cinnabar); font-size: 14px; font-weight: 650; }
.work-summary { max-width: 700px; margin: 24px 0 30px; color: #4e5952; font-size: 17px; }
.work-counts { display: flex; gap: 48px; margin: 0; }
.work-counts div { padding-left: 13px; border-left: 2px solid #c8ceca; }
.work-counts dt { color: var(--muted); font-size: 11px; }
.work-counts dd { margin: 2px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 26px; }
.single-cover {
  --cover: var(--forest);
  aspect-ratio: 3 / 4;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 25px;
  border-radius: 3px;
  background: var(--cover);
  box-shadow: 0 22px 44px rgba(20, 29, 24, 0.18);
  color: white;
}
.single-cover span, .single-cover small { font-size: 10px; font-weight: 700; }
.single-cover strong { font-family: "Songti SC", "STSong", serif; font-size: 31px; line-height: 1.3; }
.single-cover small { align-self: flex-end; max-width: 80%; text-align: right; }
.work-directory { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 92px 0 112px; }
.wechat-work-band { background: #18201c; color: #f5f4ee; }
.wechat-work-inner { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 54px 0; display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; gap: 42px; align-items: center; }
.wechat-work-inner .section-index { color: #d87566; }
.wechat-work-inner h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 29px; font-weight: 600; line-height: 1.35; }
.wechat-work-inner div > p { margin: 8px 0 0; color: #bdc7c0; font-size: 14px; }
.directory-heading { display: grid; grid-template-columns: minmax(130px, 0.65fr) minmax(0, 2fr); gap: 40px; margin-bottom: 48px; }
.volume-section { scroll-margin-top: 92px; padding: 0; border-top: 1px solid var(--ink); }
.volume-header { display: flex; justify-content: space-between; gap: 30px; padding: 30px 0 25px; }
.volume-header p { margin: 0 0 5px; color: var(--cinnabar); font-size: 11px; }
.volume-header h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 27px; font-weight: 600; }
.volume-state { display: flex; align-items: flex-end; flex-direction: column; gap: 5px; }
.volume-state small { color: var(--muted); }
.chapter-list { padding-bottom: 48px; }
.chapter-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) 78px; gap: 20px; align-items: center; min-height: 62px; border-top: 1px solid var(--line); color: inherit; text-decoration: none; }
.chapter-row.published:hover, .chapter-row.published:focus-visible { background: #ecefeb; }
.chapter-order { color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }
.chapter-title { line-height: 1.45; }
.chapter-action { color: var(--muted); font-size: 12px; text-align: right; }
.chapter-row.published .chapter-action { color: var(--cinnabar); }
.chapter-row.creating { color: #7a817d; }
.empty-volume { margin: 0 0 45px; padding: 24px 0; border-top: 1px solid var(--line); color: var(--muted); }
.inner-footer { align-items: center; }

/* Reader */
.reader-page { background: #f8f8f5; padding-top: 76px; }
.reading-progress { position: fixed; z-index: 50; top: 0; left: 0; width: 100%; height: 3px; background: transparent; }
.reading-progress span { display: block; width: 0; height: 100%; background: var(--cinnabar); }
.reader-shell { width: min(1120px, calc(100% - 56px)); margin: 0 auto; display: grid; grid-template-columns: 260px minmax(0, var(--reader)); gap: 80px; align-items: start; padding: 74px 0 100px; }
.reader-aside { position: sticky; top: 112px; max-height: calc(100svh - 140px); overflow: auto; padding-right: 24px; border-right: 1px solid var(--line); }
.reader-aside > summary { display: none; }
.aside-work { margin: 0 0 5px; color: var(--cinnabar); font-size: 11px; font-weight: 750; }
.reader-aside h2 { margin: 0 0 18px; font-family: "Songti SC", "STSong", serif; font-size: 20px; line-height: 1.35; }
.reader-aside ol { margin: 0; padding: 0; list-style: none; counter-reset: aside; }
.reader-aside li { position: relative; padding: 8px 0 8px 20px; color: var(--muted); font-size: 12px; line-height: 1.45; counter-increment: aside; }
.reader-aside li::before { content: counter(aside, decimal-leading-zero); position: absolute; left: 0; color: #a2aaa5; font-family: ui-monospace, monospace; font-size: 9px; }
.reader-aside li.current { color: var(--ink); font-weight: 700; }
.reader-aside a { text-decoration: none; }
.reader-aside a:hover, .reader-aside a:focus-visible { color: var(--cinnabar); text-decoration: underline; text-underline-offset: 3px; }
.aside-creating { display: flex; flex-direction: column; }
.aside-creating small { color: var(--cinnabar); }
.reader-article { min-width: 0; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: 12px; }
.breadcrumb a { text-decoration: none; }
.breadcrumb a:hover { color: var(--cinnabar); }
.reader-title { padding: 27px 0 32px; border-bottom: 1px solid var(--line); }
.reader-title h1 { margin: 14px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 44px; font-weight: 600; line-height: 1.3; letter-spacing: 0; }
.reader-body { padding: 35px 0 45px; }
.loading-copy, .reader-error { color: var(--muted); }
.chapter-source { color: #242b27; font-family: "Songti SC", "STSong", "Noto Serif CJK SC", serif; overflow-wrap: anywhere; }
.chapter-source p { margin: 0 0 1.45em; font-size: 18px; line-height: 2; }
.chapter-source h2, .chapter-source h3, .chapter-source h4 { margin: 2em 0 0.8em; color: var(--ink); font-weight: 650; line-height: 1.4; letter-spacing: 0; }
.chapter-source h2 { font-size: 29px; }
.chapter-source h3 { font-size: 24px; }
.chapter-source h4 { font-size: 20px; }
.chapter-source ul, .chapter-source ol { margin: 0 0 1.5em; padding-left: 1.5em; }
.chapter-source li { margin-bottom: 0.45em; font-size: 17px; line-height: 1.85; }
.chapter-source blockquote { margin: 1.8em 0; padding: 2px 0 2px 20px; border-left: 3px solid var(--cinnabar); color: #4f5a54; }
.chapter-source blockquote p { margin-bottom: 0.8em; }
.chapter-source hr { margin: 36px 0; border: 0; border-top: 1px solid var(--line); }
.chapter-source a { color: var(--forest); text-decoration-thickness: 1px; text-underline-offset: 3px; overflow-wrap: anywhere; }
.chapter-source strong { color: #101512; }
.chapter-source img { display: block; max-width: 100%; height: auto; margin: 32px auto; border-radius: 4px; }
.chapter-source table { width: 100%; margin: 28px 0; border-collapse: collapse; font-family: "SF Pro Text", "PingFang SC", sans-serif; font-size: 13px; }
.chapter-source th, .chapter-source td { padding: 10px 9px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.chapter-source th { background: #ecefeb; }
.chapter-source pre { overflow: auto; margin: 28px 0; padding: 18px; border-radius: 6px; background: #18201c; color: #f3f5f1; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; line-height: 1.7; }
.chapter-source code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.9em; }
.chapter-source .source-metadata { padding: 16px 18px 16px 34px; border: 1px solid var(--line); border-radius: 4px; background: #f0f2ef; font-family: "SF Pro Text", "PingFang SC", sans-serif; }
.chapter-source .source-metadata li { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.chapter-navigation { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-top: 28px; border-top: 1px solid var(--line); }
.article-wechat { margin: 12px 0 40px; padding: 28px 0 32px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.article-wechat h2 { margin: 8px 0 9px; font-family: "Songti SC", "STSong", serif; font-size: 25px; font-weight: 600; }
.article-wechat > p:not(.section-index) { margin: 0 0 20px; color: var(--muted); font-size: 14px; }
.article-wechat .wechat-link { color: var(--ink); }
.chapter-navigation a { display: flex; flex-direction: column; gap: 4px; color: inherit; text-decoration: none; }
.chapter-navigation .next { text-align: right; }
.chapter-navigation span { color: var(--cinnabar); font-size: 11px; }
.chapter-navigation strong { font-family: "Songti SC", "STSong", serif; font-size: 16px; line-height: 1.45; }
.reader-footer { min-height: 76px; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 10px 28px; padding: 24px 28px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; text-align: center; }
.reader-footer p { margin: 0; }

.empty-state { width: min(720px, calc(100% - 40px)); margin: 0 auto; padding: 150px 0; }
.empty-state h1 { margin: 15px 0; font-family: "Songti SC", "STSong", serif; font-size: 44px; }
.empty-state > p:not(.section-index) { margin-bottom: 25px; color: var(--muted); }

/* Cooking journal */
.kitchen-hero {
  position: relative;
  min-height: min(680px, 78svh);
  display: flex;
  align-items: flex-end;
  background: url("assets/kitchen-diary.jpg") center center / cover no-repeat;
  color: #fffdf7;
  isolation: isolate;
}
.kitchen-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: rgba(20, 16, 13, 0.32); }
.kitchen-hero-inner { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 110px 0 86px; }
.kitchen-hero .kicker { color: #edb77f; }
.kitchen-hero h1 {
  margin: 17px 0 5px;
  font-family: "Songti SC", "STSong", serif;
  font-size: 68px;
  font-weight: 600;
  line-height: 1.1;
}
.kitchen-subtitle { margin: 0 0 22px; color: #f0b777; font-size: 15px; font-weight: 700; }
.kitchen-summary { max-width: 570px; margin: 0; color: rgba(255, 253, 247, 0.82); font-size: 17px; }
.kitchen-ledger { display: flex; gap: 48px; margin: 34px 0 0; }
.kitchen-ledger div { min-width: 100px; padding-left: 13px; border-left: 1px solid rgba(255,255,255,0.42); }
.kitchen-ledger dt { color: rgba(255,255,255,0.62); font-size: 11px; }
.kitchen-ledger dd { margin: 3px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 24px; }
.kitchen-journal { width: min(var(--max), calc(100% - 56px)); margin: 0 auto; padding: 96px 0 116px; }
.kitchen-journal-heading { display: grid; grid-template-columns: minmax(130px, 0.65fr) minmax(0, 2fr); gap: 40px; margin-bottom: 55px; }
.kitchen-journal-heading h2 {
  max-width: 720px;
  margin: 0;
  font-family: "Songti SC", "STSong", serif;
  font-size: 40px;
  font-weight: 600;
  line-height: 1.32;
}
.kitchen-journal-heading div > p { margin: 13px 0 0; color: var(--muted); }
.kitchen-entry-list { border-top: 1px solid var(--ink); }
.kitchen-entry-row {
  display: grid;
  grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.2fr);
  gap: 50px;
  padding: 42px 0;
  border-bottom: 1px solid var(--line);
  align-items: center;
}
.kitchen-entry-media { aspect-ratio: 3 / 2; overflow: hidden; background: #dedfd9; text-decoration: none; }
.kitchen-entry-media img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 220ms ease; }
.kitchen-entry-media:hover img, .kitchen-entry-media:focus-visible img { transform: scale(1.02); }
.kitchen-entry-status {
  aspect-ratio: 3 / 2;
  display: grid;
  place-content: center;
  gap: 9px;
  border: 1px solid #c9cec7;
  background: #e8ebe5;
  color: var(--forest);
  text-align: center;
}
.kitchen-entry-status span { color: var(--muted); font-size: 10px; font-weight: 750; }
.kitchen-entry-status strong { font-family: "Songti SC", "STSong", serif; font-size: 29px; font-weight: 600; }
.kitchen-entry-copy > p:first-child { margin: 0 0 8px; color: var(--saffron); font-size: 11px; font-weight: 700; }
.kitchen-entry-copy h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 29px; line-height: 1.4; }
.kitchen-entry-copy h3 a { text-decoration: none; }
.kitchen-entry-copy h3 a:hover, .kitchen-entry-copy h3 a:focus-visible { color: var(--cinnabar); }
.kitchen-entry-copy > p:not(:first-child) { max-width: 620px; margin: 13px 0 21px; color: var(--muted); }
.kitchen-empty { padding: 72px 0 78px; border-bottom: 1px solid var(--line); }
.kitchen-empty h3 { margin: 13px 0 8px; font-family: "Songti SC", "STSong", serif; font-size: 34px; font-weight: 600; }
.kitchen-empty > p:last-child { margin: 0; color: var(--muted); }
.kitchen-reader-shell { width: min(820px, calc(100% - 56px)); margin: 0 auto; padding: 72px 0 100px; }
.kitchen-reader-title { padding: 28px 0 34px; }
.kitchen-reader-title h1 { margin: 14px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 46px; font-weight: 600; line-height: 1.28; }
.kitchen-entry-figure { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; background: #dedfd9; }
.kitchen-entry-figure img { width: 100%; height: 100%; display: block; object-fit: cover; }
.kitchen-reader-body { width: min(var(--reader), 100%); margin: 0 auto; padding-top: 42px; }
.kitchen-appreciation { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: center; margin-top: 78px; padding: 31px 0 34px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.kitchen-appreciation h2 { margin: 11px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 27px; font-weight: 600; line-height: 1.4; }
.kitchen-like-control { min-width: 220px; display: flex; gap: 15px; align-items: center; }
.kitchen-like-button { width: 52px; height: 52px; flex: 0 0 52px; display: grid; place-items: center; padding: 0; border: 1px solid #9faaa2; border-radius: 50%; background: transparent; color: var(--cinnabar); cursor: pointer; }
.kitchen-like-button span { font-size: 25px; line-height: 1; transform: translateY(-1px); }
.kitchen-like-button:hover,
.kitchen-like-button:focus-visible { border-color: var(--cinnabar); background: rgba(166, 61, 50, 0.07); }
.kitchen-like-button.is-liked { border-color: var(--cinnabar); background: var(--cinnabar); color: #fffaf3; }
.kitchen-like-control strong { display: block; font-size: 12px; font-weight: 750; }
.kitchen-like-control output { min-height: 1.6em; display: block; margin-top: 4px; color: var(--muted); font-size: 10px; }
.kitchen-reader-appreciation { width: min(var(--reader), 100%); margin: 66px auto 54px; }

/* Article archive */
.archive-shell { width: min(980px, calc(100% - 56px)); min-height: calc(100svh - 150px); margin: 0 auto; padding: 92px 0 112px; }
.archive-header { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 10px 40px; padding-bottom: 48px; border-bottom: 1px solid var(--ink); }
.archive-header .section-index { grid-row: 1 / span 2; }
.archive-header h1 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 52px; font-weight: 600; line-height: 1.2; }
.archive-header > p:last-child { margin: 0; color: var(--muted); }
.archive-controls { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 24px; padding: 34px 0 20px; }
.archive-controls label { display: grid; gap: 7px; color: var(--muted); font-size: 12px; }
.archive-controls input, .archive-controls select { width: 100%; min-height: 46px; padding: 9px 12px; border: 1px solid #bfc6c0; border-radius: 3px; background: var(--surface); color: var(--ink); }
.archive-result { margin: 0 0 18px; color: var(--muted); font-size: 12px; text-align: right; }
.archive-list { border-top: 1px solid var(--line); }
.archive-row { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 7px 34px; padding: 27px 0; border-bottom: 1px solid var(--line); }
.archive-row[hidden] { display: none; }
.archive-meta { grid-row: 1 / span 2; display: flex; flex-direction: column; gap: 6px; color: var(--muted); font-size: 11px; }
.archive-row h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 22px; font-weight: 600; line-height: 1.45; }
.archive-row h2 a { text-decoration: none; }
.archive-row h2 a:hover, .archive-row h2 a:focus-visible { color: var(--cinnabar); }
.archive-row p { margin: 0; color: var(--muted); font-size: 13px; }
.archive-empty { padding: 42px 0; color: var(--muted); text-align: center; }

/* Friends */
.links-shell { width: min(900px, calc(100% - 56px)); min-height: calc(100svh - 150px); margin: 0 auto; padding: 104px 0 120px; }
.links-header { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 10px 40px; padding-bottom: 50px; border-bottom: 1px solid var(--ink); }
.links-header .section-index { grid-row: 1 / span 2; }
.links-header h1 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 52px; font-weight: 600; line-height: 1.2; }
.links-header > p:last-child { margin: 0; color: var(--muted); }
.friend-list { border-bottom: 1px solid var(--line); }
.friend-row {
  min-height: 180px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48px;
  gap: 32px;
  align-items: center;
  padding: 36px 0;
  text-decoration: none;
}
.friend-row > div > p { margin: 0; color: var(--muted); font-size: 12px; }
.friend-row h2 { margin: 9px 0 8px; font-family: "Songti SC", "STSong", serif; font-size: 30px; font-weight: 600; line-height: 1.35; }
.friend-row > span { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; }
.friend-row:hover h2, .friend-row:focus-visible h2 { color: var(--cinnabar); }
.friend-row:hover > span, .friend-row:focus-visible > span { border-color: var(--ink); background: var(--ink); color: white; }

/* RSS subscription */
.subscribe-shell { width: min(820px, calc(100% - 56px)); min-height: calc(100svh - 150px); margin: 0 auto; padding: 104px 0 120px; }
.subscribe-header { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 10px 40px; padding-bottom: 48px; border-bottom: 1px solid var(--ink); }
.subscribe-header .section-index { grid-row: 1 / span 2; }
.subscribe-header h1 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 52px; font-weight: 600; line-height: 1.2; }
.subscribe-header > p:last-child { margin: 0; color: var(--muted); }
.subscribe-tool { padding: 42px 0; border-bottom: 1px solid var(--line); }
.subscribe-tool > label { display: block; margin-bottom: 9px; color: var(--muted); font-size: 12px; }
.feed-address-row { display: grid; grid-template-columns: minmax(0, 1fr) 112px; }
.feed-address-row input { min-width: 0; min-height: 50px; padding: 10px 14px; border: 1px solid #aeb7b0; border-radius: 3px 0 0 3px; background: var(--surface); color: var(--ink); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 14px; }
.feed-address-row button { border: 1px solid var(--ink); border-radius: 0 3px 3px 0; background: var(--ink); color: white; cursor: pointer; font-size: 13px; font-weight: 700; }
.feed-address-row button:hover, .feed-address-row button:focus-visible { background: var(--cinnabar); border-color: var(--cinnabar); }
.copy-status { min-height: 1.7em; margin: 7px 0 0; color: var(--forest); font-size: 12px; }
.subscribe-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; margin-top: 25px; }
.subscribe-primary { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; padding: 7px 16px; border: 1px solid var(--ink); border-radius: 3px; background: var(--ink); color: white; font-size: 13px; font-weight: 700; text-decoration: none; }
.subscribe-primary:hover, .subscribe-primary:focus-visible { background: var(--cinnabar); border-color: var(--cinnabar); }

/* Philosophical notes */
.philosophy-page {
  --philosophy-paper: #ebe5d8;
  --philosophy-paper-deep: #ddd3c0;
  --philosophy-ink: #252620;
  --philosophy-muted: #6d6b60;
  --philosophy-rule: #b8ad98;
  --philosophy-red: #963d32;
  background: var(--philosophy-paper);
  color: var(--philosophy-ink);
}
.philosophy-page .site-header.inner-header { background: rgba(235, 229, 216, 0.96); border-color: #c8beaa; }
.philosophy-page .site-nav a[aria-current="page"] { color: var(--philosophy-red); }
.philosophy-section-inner { width: min(1080px, calc(100% - 56px)); margin: 0 auto; }
.philosophy-hero { position: relative; overflow: hidden; background-color: var(--philosophy-paper); background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 43px, rgba(91, 91, 76, 0.09) 44px); }
.philosophy-hero::after { position: absolute; top: 0; bottom: 0; left: max(28px, calc((100% - 1080px) / 2 + 82px)); width: 1px; background: rgba(150, 61, 50, 0.35); content: ""; }
.philosophy-hero-inner { position: relative; z-index: 1; width: min(1080px, calc(100% - 56px)); min-height: 610px; display: grid; grid-template-columns: 110px minmax(0, 1fr) 210px; gap: 46px; align-items: center; margin: 0 auto; padding: 90px 0 92px; }
.philosophy-folio { align-self: start; display: flex; flex-direction: column; align-items: center; gap: 13px; padding-top: 73px; color: var(--philosophy-red); }
.philosophy-folio span { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid currentColor; font-family: "Kaiti SC", "STKaiti", serif; font-size: 27px; transform: rotate(-3deg); }
.philosophy-folio small { writing-mode: vertical-rl; color: #777063; font-size: 9px; letter-spacing: 0.28em; }
.philosophy-intro { max-width: 680px; }
.philosophy-intro .section-index { color: #806c49; }
.philosophy-intro h1 { margin: 25px 0 10px; font-family: "Songti SC", "STSong", serif; font-size: clamp(61px, 7vw, 92px); font-weight: 500; line-height: 1; letter-spacing: 0.04em; }
.philosophy-declaration { margin: 0 0 34px; color: var(--philosophy-red); font-family: "Kaiti SC", "STKaiti", serif; font-size: 25px; letter-spacing: 0.12em; }
.philosophy-lead { max-width: 650px; margin: 0; color: #55574f; font-family: "Songti SC", "STSong", serif; font-size: 17px; line-height: 2.1; }
.philosophy-margin-note { align-self: end; margin: 0 0 22px; padding: 18px 0 0 19px; border-top: 1px solid var(--philosophy-rule); border-left: 1px solid var(--philosophy-rule); color: #767267; font-family: "Kaiti SC", "STKaiti", serif; font-size: 13px; line-height: 1.9; transform: rotate(-1deg); }
.philosophy-axes { background: #f2eee5; }
.philosophy-axes .philosophy-section-inner, .philosophy-notes-inner { padding: 100px 0 112px; }
.philosophy-heading { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 46px; margin-bottom: 50px; }
.philosophy-heading h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 42px; font-weight: 600; line-height: 1.3; }
.philosophy-heading div > p { max-width: 650px; margin: 12px 0 0; color: var(--philosophy-muted); font-size: 13px; line-height: 1.8; }
.philosophy-axis-list { margin: 0; padding: 0; border-top: 1px solid #6f7068; list-style: none; }
.philosophy-axis-list li { border-bottom: 1px solid #c2b9aa; }
.philosophy-axis-list a { min-height: 142px; display: grid; grid-template-columns: 95px minmax(0, 1fr) 150px; gap: 32px; align-items: center; padding: 0 18px 0 0; color: inherit; text-decoration: none; transition: background-color 180ms ease, padding 180ms ease; }
.philosophy-axis-list .philosophy-axis-glyph { color: var(--philosophy-red); font-family: "Kaiti SC", "STKaiti", serif; font-size: 48px; text-align: center; transition: transform 180ms ease; }
.philosophy-axis-list strong { font-family: "Songti SC", "STSong", serif; font-size: 24px; font-weight: 600; }
.philosophy-axis-list p { margin: 8px 0 0; color: var(--philosophy-muted); font-size: 13px; }
.philosophy-axis-list small { display: flex; flex-direction: column; align-items: flex-end; gap: 9px; color: #8d816b; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; letter-spacing: 0.12em; text-align: right; }
.philosophy-axis-list small b { color: var(--philosophy-red); font-size: 13px; font-weight: 400; transition: transform 180ms ease; }
.philosophy-axis-list a:hover, .philosophy-axis-list a:focus-visible { padding-left: 10px; background: rgba(150, 61, 50, 0.055); outline: 0; }
.philosophy-axis-list a:hover .philosophy-axis-glyph, .philosophy-axis-list a:focus-visible .philosophy-axis-glyph { transform: rotate(-5deg) scale(1.06); }
.philosophy-axis-list a:hover small b, .philosophy-axis-list a:focus-visible small b { transform: translate(3px, -3px); }
.philosophy-axis-list a:focus-visible { box-shadow: inset 3px 0 var(--philosophy-red); }
.philosophy-boundaries { background: #29342f; color: #f0ece3; }
.philosophy-boundaries .philosophy-section-inner { padding: 92px 0 104px; }
.philosophy-heading-light .section-index { color: #c8aa70; }
.philosophy-heading-light div > p { color: #aeb7b0; }
.philosophy-boundary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #708078; border-bottom: 1px solid #56685f; }
.philosophy-boundary-grid a { min-height: 270px; display: flex; flex-direction: column; padding: 27px 29px 29px; color: inherit; text-decoration: none; }
.philosophy-boundary-grid a + a { border-left: 1px solid #56685f; }
.philosophy-boundary-grid a[aria-current="page"] { background: #34443d; }
.philosophy-boundary-grid span { color: #c9ad77; font-size: 10px; font-weight: 750; }
.philosophy-boundary-grid h3 { margin: 48px 0 12px; font-family: "Songti SC", "STSong", serif; font-size: 29px; font-weight: 500; }
.philosophy-boundary-grid p { margin: 0; color: #b6c0b9; font-size: 12px; line-height: 1.85; }
.philosophy-boundary-grid small { margin-top: auto; color: #dfc794; font-size: 10px; font-weight: 700; }
.philosophy-boundary-grid a:hover, .philosophy-boundary-grid a:focus-visible { background: #3b4c44; }
.philosophy-notes { background: var(--philosophy-paper); }
.philosophy-notes .creative-entry-list { border-top-color: #6f7068; }
.philosophy-notes .creative-entry-row { border-bottom-color: #bdb3a2; }
.philosophy-notes .creative-empty { border-top-color: #6f7068; border-bottom-color: #bdb3a2; }
.philosophy-footer { background: #ddd3c0; border-color: #b8ad98; }
.philosophy-axis-hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--philosophy-rule); background-color: var(--philosophy-paper); background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 43px, rgba(91, 91, 76, 0.09) 44px); }
.philosophy-axis-hero::after { position: absolute; top: 0; bottom: 0; left: max(28px, calc((100% - 1080px) / 2 + 104px)); width: 1px; background: rgba(150, 61, 50, 0.35); content: ""; }
.philosophy-axis-hero-inner { position: relative; z-index: 1; width: min(1080px, calc(100% - 56px)); min-height: 470px; display: grid; grid-template-columns: 156px minmax(0, 1fr) 150px; gap: 50px; align-items: center; margin: 0 auto; padding: 74px 0 82px; }
.philosophy-axis-seal { align-self: stretch; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 17px; color: var(--philosophy-red); }
.philosophy-axis-seal span { width: 82px; height: 82px; display: grid; place-items: center; border: 1px solid currentColor; background: rgba(235, 229, 216, 0.78); font-family: "Kaiti SC", "STKaiti", serif; font-size: 50px; transform: rotate(-3deg); box-shadow: 8px 8px 0 rgba(150, 61, 50, 0.07); }
.philosophy-axis-seal small { color: #777063; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; letter-spacing: 0.24em; }
.philosophy-axis-back { display: inline-flex; margin-bottom: 46px; color: #777063; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-decoration: none; }
.philosophy-axis-back:hover, .philosophy-axis-back:focus-visible { color: var(--philosophy-red); }
.philosophy-axis-intro h1 { display: flex; align-items: baseline; gap: 22px; margin: 18px 0 24px; font-family: "Songti SC", "STSong", serif; font-size: clamp(38px, 5vw, 66px); font-weight: 500; line-height: 1.15; }
.philosophy-axis-intro h1 span { color: var(--philosophy-red); font-family: "Kaiti SC", "STKaiti", serif; font-size: 0.7em; font-weight: 400; }
.philosophy-axis-intro > p:last-child { max-width: 650px; margin: 0; color: #55574f; font-family: "Songti SC", "STSong", serif; font-size: 16px; line-height: 2; }
.philosophy-axis-count { align-self: end; margin: 0 0 11px; padding-top: 18px; border-top: 1px solid var(--philosophy-rule); color: #777063; text-align: right; }
.philosophy-axis-count strong { display: block; color: var(--philosophy-red); font-family: "Songti SC", "STSong", serif; font-size: 42px; font-weight: 500; line-height: 1; }
.philosophy-axis-count span { display: block; margin-top: 9px; font-size: 10px; letter-spacing: 0.08em; }
.philosophy-axis-directory { background: #f2eee5; }
.philosophy-axis-directory .philosophy-section-inner { padding: 96px 0 108px; }
.philosophy-axis-directory .creative-entry-list { border-top-color: #6f7068; }
.philosophy-axis-directory .creative-entry-row, .philosophy-axis-directory .creative-empty { border-bottom-color: #bdb3a2; }
.philosophy-axis-switch { background: #29342f; color: #f0ece3; }
.philosophy-axis-switch .philosophy-section-inner { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 46px; padding: 72px 0 82px; }
.philosophy-axis-switch header h2 { margin: 12px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 28px; font-weight: 500; }
.philosophy-axis-switch header .section-index { color: #c8aa70; }
.philosophy-axis-switch nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #708078; border-bottom: 1px solid #56685f; }
.philosophy-axis-switch nav a { min-height: 155px; display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 8px 18px; align-content: center; padding: 22px; color: inherit; text-decoration: none; }
.philosophy-axis-switch nav a + a { border-left: 1px solid #56685f; }
.philosophy-axis-switch nav a[aria-current="page"] { background: #34443d; }
.philosophy-axis-switch nav a:hover, .philosophy-axis-switch nav a:focus-visible { background: #3b4c44; outline: 0; }
.philosophy-axis-switch nav a > span { grid-row: 1 / 3; color: #c9ad77; font-family: "Kaiti SC", "STKaiti", serif; font-size: 34px; }
.philosophy-axis-switch nav strong { align-self: end; font-family: "Songti SC", "STSong", serif; font-size: 16px; font-weight: 500; }
.philosophy-axis-switch nav small { color: #aeb7b0; font-size: 10px; }

@media (max-width: 900px) {
  .philosophy-hero-inner { width: calc(100% - 40px); grid-template-columns: 80px minmax(0, 1fr) 170px; gap: 30px; }
  .philosophy-hero::after { left: calc(20px + 58px); }
  .philosophy-section-inner { width: calc(100% - 40px); }
  .philosophy-boundary-grid a { padding-inline: 22px; }
}

@media (max-width: 620px) {
  .philosophy-hero::after { left: 31px; }
  .philosophy-hero-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; gap: 22px; padding: 60px 0 70px 31px; }
  .philosophy-folio { align-self: auto; align-items: flex-start; padding-top: 0; }
  .philosophy-folio small { writing-mode: initial; letter-spacing: 0.18em; }
  .philosophy-intro h1 { margin-top: 20px; font-size: 51px; }
  .philosophy-declaration { margin-bottom: 25px; font-size: 20px; }
  .philosophy-lead { font-size: 15px; line-height: 2; }
  .philosophy-margin-note { justify-self: end; width: 190px; margin: 8px 0 0; }
  .philosophy-section-inner { width: calc(100% - 32px); }
  .philosophy-axes .philosophy-section-inner, .philosophy-notes-inner, .philosophy-boundaries .philosophy-section-inner { padding: 66px 0 76px; }
  .philosophy-heading { grid-template-columns: 1fr; gap: 14px; margin-bottom: 36px; }
  .philosophy-heading h2 { font-size: 32px; }
  .philosophy-axis-list a { grid-template-columns: 58px minmax(0, 1fr); gap: 18px; padding: 24px 0; }
  .philosophy-axis-list a:hover, .philosophy-axis-list a:focus-visible { padding-left: 8px; }
  .philosophy-axis-list .philosophy-axis-glyph { font-size: 38px; }
  .philosophy-axis-list strong { font-size: 20px; }
  .philosophy-axis-list small { grid-column: 2; align-items: flex-start; text-align: left; }
  .philosophy-axis-hero::after { left: 31px; }
  .philosophy-axis-hero-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; gap: 26px; padding: 52px 0 62px 31px; }
  .philosophy-axis-seal { align-self: auto; align-items: flex-start; }
  .philosophy-axis-seal span { width: 62px; height: 62px; font-size: 38px; }
  .philosophy-axis-back { margin-bottom: 31px; }
  .philosophy-axis-intro h1 { gap: 13px; margin-top: 15px; font-size: 38px; }
  .philosophy-axis-count { justify-self: end; width: 150px; }
  .philosophy-axis-directory .philosophy-section-inner { padding: 66px 0 76px; }
  .philosophy-axis-switch .philosophy-section-inner { grid-template-columns: 1fr; gap: 28px; padding: 58px 0 66px; }
  .philosophy-axis-switch nav { grid-template-columns: 1fr; }
  .philosophy-axis-switch nav a { min-height: 112px; }
  .philosophy-axis-switch nav a + a { border-top: 1px solid #56685f; border-left: 0; }
  .philosophy-boundary-grid { grid-template-columns: 1fr; }
  .philosophy-boundary-grid a { min-height: 220px; padding: 25px 21px 26px; }
  .philosophy-boundary-grid a + a { border-top: 1px solid #56685f; border-left: 0; }
  .philosophy-boundary-grid h3 { margin-top: 36px; }
}

@media (max-width: 900px) {
  .site-header { height: 68px; padding: 0 20px; }
  .site-nav { gap: 14px; }
  .site-nav a { font-size: 13px; }
  .hero { min-height: min(720px, 88svh); background-position: 58% center; }
  .hero-content { width: calc(100% - 40px); padding: 130px 0 120px; }
  .hero h1 { font-size: 58px; }
  .hero-ledger { right: 20px; bottom: 70px; }
  .start-here-inner,
  .series-map-inner { width: calc(100% - 40px); }
  .start-here-heading { grid-template-columns: 140px minmax(0, 1fr); }
  .question-navigation a { grid-template-columns: 34px minmax(0, 1fr) 100px 32px; gap: 18px; }
  .series-map-inner { grid-template-columns: 140px minmax(0, 1fr); }
  .series-flow { gap: 28px; }
  .series-flow li:not(:last-child)::after { right: -21px; }
  .section { width: calc(100% - 40px); padding: 78px 0 88px; }
  .section-heading { grid-template-columns: 1fr; gap: 18px; margin-bottom: 42px; }
  .section-heading h2 { font-size: 36px; }
  .work-grid { gap: 48px 25px; }
  .work-cover { padding: 21px; }
  .work-cover strong { font-size: 28px; }
  .home-contact-inner { width: calc(100% - 40px); grid-template-columns: 120px minmax(0, 1fr); gap: 25px 38px; }
  .home-contact-list { grid-column: 2; }
  .inner-page, .reader-page { padding-top: 68px; }
  .author-hero-inner { width: calc(100% - 40px); min-height: min(580px, calc(100svh - 68px)); grid-template-columns: minmax(0, 1fr) 250px; gap: 48px; padding: 70px 0; }
  .author-identity h1 { font-size: 64px; }
  .author-work, .author-resources-inner { width: calc(100% - 40px); }
  .author-resources-inner { grid-template-columns: minmax(180px, 0.65fr) minmax(0, 1.35fr); gap: 50px; }
  .views-subnav,
  .views-hero-inner,
  .views-paths,
  .views-notes-inner,
  .broker-hero-inner,
  .views-radar-inner,
  .broker-local-nav,
  .analyst-hero-inner,
  .analyst-scorecard-inner { width: calc(100% - 40px); }
  .views-hero-inner,
  .broker-hero-inner { min-height: min(520px, calc(100svh - 122px)); grid-template-columns: minmax(0, 1fr) 250px; gap: 50px; }
  .views-path-row { grid-template-columns: 100px minmax(0, 1fr) 170px 44px; gap: 24px; }
  .views-report-row { grid-template-columns: 120px minmax(0, 1fr) 190px; }
  .analyst-hero-inner { grid-template-columns: minmax(0, 1fr) 260px; gap: 52px; }
  .analyst-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .analyst-filters label:first-child { grid-column: 1 / -1; }
  .analyst-filters button { width: 100%; }
  .macro-hero-inner,
  .macro-method,
  .macro-map-inner,
  .macro-industries-inner,
  .macro-sources,
  .macro-entry-hero-inner,
  .macro-entry-workbench { width: calc(100% - 40px); }
  .macro-hero-inner { grid-template-columns: minmax(0, 1fr) 300px; gap: 55px; }
  .macro-entry-hero-inner { grid-template-columns: minmax(0, 1fr) 260px; gap: 55px; }
  .macro-method-flow { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .macro-method-flow li:nth-child(4) { border-left: 0; }
  .macro-method-flow li:nth-child(n + 4) { border-top: 1px solid #c0c7c1; }
  .macro-method-flow li::after { display: none; }
  .macro-map-group { grid-template-columns: minmax(250px, 0.8fr) minmax(0, 1.2fr); gap: 42px; }
  .travel-hero-inner, .travel-journal { width: calc(100% - 40px); }
  .travel-hero-inner { min-height: min(520px, calc(100svh - 68px)); grid-template-columns: minmax(0, 1fr) 250px; gap: 50px; }
  .photography-hero-inner, .music-hero-inner, .creative-catalog { width: calc(100% - 40px); }
  .photography-hero-inner, .music-hero-inner { min-height: min(520px, calc(100svh - 68px)); grid-template-columns: minmax(0, 1fr) 250px; gap: 50px; }
  .photography-hero-inner { min-height: 410px; }
  .photography-page .creative-catalog { width: calc(100% - 40px); }
  .photography-work-caption { gap: 42px; }
  .photography-stage-heading,
  .photography-series-filter { width: calc(100% - 40px); }
  .has-photo-coverflow .photography-coverflow-card { width: min(72vw, 760px); height: min(48vw, 507px); }
  .photography-collection-index > header,
  .photography-collection > header { grid-template-columns: 140px minmax(0, 1fr) auto; gap: 28px; }
  .photography-story-heading,
  .photography-story-caption,
  .photography-reader-page .chapter-navigation { width: calc(100% - 40px); }
  .wine-hero-inner { width: calc(100% - 40px); min-height: min(520px, calc(100svh - 68px)); grid-template-columns: minmax(0, 1fr) 250px; gap: 50px; }
  .work-hero-inner { width: calc(100% - 40px); min-height: 520px; grid-template-columns: minmax(0, 1fr) 230px; gap: 55px; }
  .work-title-copy h1 { font-size: 46px; }
  .work-directory { width: calc(100% - 40px); }
  .wechat-work-inner { width: calc(100% - 40px); grid-template-columns: 150px minmax(0, 1fr); gap: 22px 30px; }
  .wechat-work-inner .wechat-link { grid-column: 2; justify-self: start; }
  .reader-shell { width: min(var(--reader), calc(100% - 40px)); display: block; padding-top: 55px; }
  .reader-aside { position: static; max-height: none; overflow: visible; margin-bottom: 38px; padding: 0; border: 1px solid var(--line); border-radius: 3px; }
  .reader-aside > summary { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 15px; cursor: pointer; list-style: none; }
  .reader-aside > summary::-webkit-details-marker { display: none; }
  .reader-aside > summary span { color: var(--cinnabar); font-size: 11px; font-weight: 750; }
  .reader-aside > summary strong { font-family: "Songti SC", "STSong", serif; font-size: 15px; font-weight: 600; text-align: right; }
  .reader-aside > summary::after { content: "+"; font-size: 20px; line-height: 1; }
  .reader-aside[open] > summary::after { content: "−"; }
  .reader-aside-content { padding: 20px 18px 25px; border-top: 1px solid var(--line); }
  .reader-aside ol { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
  .archive-shell { width: calc(100% - 40px); padding-top: 72px; }
  .subscribe-shell { width: calc(100% - 40px); padding-top: 80px; }
  .kitchen-hero { background-position: 58% center; }
  .kitchen-hero-inner, .kitchen-journal { width: calc(100% - 40px); }
  .kitchen-journal-heading { grid-template-columns: 1fr; gap: 17px; }
  .kitchen-entry-row { gap: 32px; }
}

@media (max-width: 620px) {
  .site-header { padding-inline: 16px; }
  .wordmark { display: inline-flex; font-size: 13px; }
  .mobile-nav-toggle { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; }
  .mobile-nav-toggle span { font-size: 26px; line-height: 1; }
  .site-nav { position: absolute; top: 68px; left: 0; width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding: 8px 16px 16px; border-bottom: 1px solid var(--line); background: rgba(244, 245, 242, 0.98); color: var(--ink); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px); transition: opacity 180ms ease, transform 180ms ease, visibility 180ms; }
  .site-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
  .site-nav a { min-height: 48px; display: flex; align-items: center; padding: 0 10px; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 650; white-space: nowrap; }
  .site-header.nav-open { background: rgba(244, 245, 242, 0.98); color: var(--ink); border-color: var(--line); }
  .hero { min-height: min(700px, 86svh); background-position: 66% center; }
  .hero-content { width: calc(100% - 32px); padding-bottom: 150px; }
  .hero h1 { font-size: 48px; }
  .hero-copy { max-width: 340px; font-size: 16px; }
  .hero-ledger { left: 16px; right: auto; bottom: 48px; }
  .hero-ledger div { min-width: 82px; }
  .start-here-inner { width: calc(100% - 32px); padding: 66px 0 78px; }
  .start-here-heading { grid-template-columns: 1fr; gap: 15px; margin-bottom: 38px; }
  .start-here-heading h2 { font-size: 34px; }
  .question-navigation a { min-height: 0; grid-template-columns: 26px minmax(0, 1fr) 28px; gap: 13px; padding: 24px 0 27px; align-items: start; }
  .question-navigation h3 { font-size: 21px; }
  .question-navigation h3 + p { margin-top: 8px; font-size: 13px; }
  .question-navigation small { grid-column: 2; color: var(--forest); text-align: left; }
  .question-navigation strong { grid-column: 3; grid-row: 1 / span 2; }
  .series-map-inner { width: calc(100% - 32px); grid-template-columns: 1fr; gap: 15px; padding: 66px 0 78px; }
  .series-map figcaption h2 { font-size: 34px; }
  .series-flow { grid-template-columns: 1fr; gap: 30px; margin-top: 40px; }
  .series-flow li:not(:last-child)::after { content: "↓"; top: auto; right: 50%; bottom: -25px; }
  .series-flow a { min-height: 112px; display: grid; grid-template-columns: 32px minmax(0, 1fr); grid-template-rows: auto auto; gap: 5px 12px; padding: 15px 0; }
  .series-flow a > span { grid-row: 1 / span 2; padding-top: 7px; }
  .series-flow strong { margin: 0; font-size: 25px; }
  .series-flow small { margin: 0; }
  .section { width: calc(100% - 32px); padding: 64px 0 74px; }
  .section-heading h2 { font-size: 31px; }
  .work-grid { grid-template-columns: 1fr; gap: 54px; }
  .work-cover { width: min(100%, 360px); }
  .work-card-copy { width: min(100%, 360px); }
  .work-card-copy > p { min-height: 0; }
  .home-contact-inner { width: calc(100% - 32px); grid-template-columns: 1fr; gap: 12px; padding: 50px 0 56px; }
  .home-contact h2 { font-size: 29px; }
  .home-contact-list { grid-column: auto; grid-template-columns: 1fr; gap: 0; margin-top: 20px; }
  .home-contact-list div + div { border-top: 0; }
  .site-footer { flex-direction: column; padding: 24px 16px; }
  .footer-links { justify-content: flex-start; }
  .author-hero-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; gap: 44px; padding: 64px 0 70px; }
  .author-identity h1 { font-size: 54px; }
  .author-lead { font-size: 16px; }
  .author-ledger { gap: 30px; margin-top: 30px; }
  .author-ledger div { min-width: 0; }
  .author-profile-note { width: 100%; }
  .author-work { width: calc(100% - 32px); padding: 68px 0 82px; }
  .author-section-heading { grid-template-columns: 1fr; gap: 14px; margin-bottom: 38px; }
  .author-section-heading h2, .author-resources h2 { font-size: 31px; }
  .author-work-row { min-height: 120px; grid-template-columns: 28px minmax(0, 1fr) 36px; gap: 12px; }
  .author-work-row h3 { font-size: 24px; }
  .author-work-row > strong { width: 36px; height: 36px; }
  .author-resources-inner { width: calc(100% - 32px); grid-template-columns: 1fr; gap: 38px; padding: 68px 0 78px; }
  .author-resources h2 { margin-top: 14px; }
  .author-resource-list a { min-height: 92px; grid-template-columns: minmax(0, 1fr) 28px; gap: 6px 18px; }
  .author-resource-list small { grid-column: 1; }
  .author-resource-list strong { grid-column: 2; grid-row: 1 / span 2; }
  .views-subnav { width: calc(100% - 32px); display: flex; gap: 20px; overflow-x: auto; }
  .views-subnav a { flex: 0 0 auto; justify-content: center; font-size: 10px; }
  .views-hero-inner,
  .broker-hero-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; gap: 42px; padding: 64px 0 68px; }
  .views-hero h1,
  .broker-hero h1 { font-size: 49px; }
  .views-paths,
  .views-notes-inner,
  .views-radar-inner { width: calc(100% - 32px); padding: 68px 0 82px; }
  .views-path-row { min-height: 0; grid-template-columns: minmax(0, 1fr) 40px; gap: 11px 18px; padding: 28px 0 32px; }
  .views-path-row > p { grid-column: 1 / -1; flex-direction: row; align-items: baseline; gap: 10px; }
  .views-path-row h3 { font-size: 25px; }
  .views-path-row > span { grid-column: 1; text-align: left; }
  .views-path-row > strong { grid-column: 2; grid-row: 2 / span 2; width: 40px; height: 40px; }
  .views-section-heading, .views-empty { grid-template-columns: 1fr; gap: 12px; }
  .views-section-heading { margin-bottom: 38px; }
  .views-section-heading h2 { font-size: 31px; }
  .views-empty > span { grid-row: auto; }
  .views-empty h3 { font-size: 25px; }
  .views-radar-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .views-radar-stats div { min-height: 90px; padding: 14px 12px; border-bottom: 1px solid #c1c7c1; }
  .views-radar-stats div:nth-child(odd) { border-left: 0; }
  .views-radar-stats div:last-child { grid-column: 1 / -1; }
  .views-radar-stats dd { font-size: 27px; }
  .views-report-filters { grid-template-columns: 1fr 1fr; }
  .views-report-filters label:first-child { grid-column: 1 / -1; }
  .views-report-filters button { width: 100%; align-self: end; }
  .views-report-result { align-items: flex-start; flex-direction: column; justify-content: center; gap: 4px; }
  .views-report-row { grid-template-columns: 1fr; gap: 13px; padding: 25px 0 29px; }
  .views-report-source { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 0; text-align: left; }
  .views-report-source span { text-align: right; }
  .views-report-title { padding: 0; border: 0; }
  .views-report-title h3 { font-size: 19px; }
  .views-report-identity { align-items: flex-start; padding-left: 0; text-align: left; }
  .views-report-identity a, .views-report-unavailable { margin-top: 12px !important; }
  .views-report-pagination { width: min(220px, 100%); display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 14px; }
  .views-report-pagination [data-report-pages] { display: none; }
  .broker-local-nav { width: calc(100% - 32px); grid-template-columns: 1fr; }
  .broker-local-nav a { min-height: 66px; padding-right: 0; }
  .broker-local-nav a + a { padding-left: 0; border-top: 1px solid #c1c8c2; border-left: 0; }
  .analyst-hero-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; gap: 42px; padding: 62px 0 68px; }
  .analyst-hero .breadcrumb { margin-bottom: 32px; }
  .analyst-hero h1 { font-size: 47px; }
  .analyst-scorecard-inner { width: calc(100% - 32px); padding: 67px 0 82px; }
  .analyst-coverage { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .analyst-coverage div { min-height: 94px; padding: 14px 12px 16px; border-bottom: 1px solid #bec6bf; }
  .analyst-coverage div:nth-child(odd) { border-left: 0; }
  .analyst-coverage dd { font-size: 29px; }
  .analyst-freshness { align-items: flex-start; flex-direction: column; justify-content: center; gap: 4px; padding: 12px 0; line-height: 1.55; }
  .analyst-horizon-bar { align-items: flex-start; flex-direction: column; justify-content: center; gap: 13px; padding: 18px 0; }
  .analyst-horizons { width: 100%; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .analyst-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 10px; }
  .analyst-filters label:first-child { grid-column: 1 / -1; }
  .analyst-filters button { width: 100%; }
  .analyst-result { align-items: flex-start; flex-direction: column; justify-content: center; gap: 4px; }
  .analyst-table-scroll { overflow: visible; border-bottom: 0; }
  .analyst-table { min-width: 0; display: block; }
  .analyst-table thead { display: none; }
  .analyst-table tbody { display: grid; gap: 18px; }
  .analyst-table tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid #aeb7b0; }
  .analyst-table tbody tr[hidden] { display: none; }
  .analyst-table th,
  .analyst-table td { width: auto !important; height: auto; min-height: 66px; padding: 13px 12px; border-bottom: 1px solid #c4cbc5; text-align: left; }
  .analyst-table tbody th { grid-column: 1 / -1; min-height: 76px; padding: 15px 0; }
  .analyst-table tbody th span { max-width: 100%; }
  .analyst-table td:nth-child(even) { border-right: 1px solid #c4cbc5; }
  .analyst-table td::before { content: attr(data-label); display: block; margin-bottom: 8px; color: #727c74; font-size: 8px; font-weight: 700; }
  .analyst-metric-value { font-size: 12px; }
  .analyst-methodology { grid-template-columns: 1fr; gap: 30px; margin-top: 68px; }
  .analyst-methodology ol { grid-template-columns: 1fr; }
  .analyst-methodology li,
  .analyst-methodology li:nth-child(even) { min-height: 0; padding: 18px 0 22px; border-left: 0; }
  .analyst-source-note { grid-column: auto; margin-top: 0; }
  .views-report-pagination output { grid-column: 2; grid-row: 1; display: block; text-align: center; }
  .views-report-pagination [data-report-next] { grid-column: 3; }
  .macro-hero-inner,
  .macro-method,
  .macro-map-inner,
  .macro-industries-inner,
  .macro-sources,
  .macro-entry-hero-inner,
  .macro-entry-workbench { width: calc(100% - 32px); }
  .macro-hero-inner { min-height: 0; grid-template-columns: 1fr; gap: 42px; padding: 62px 0 68px; }
  .macro-hero-copy h1 { font-size: 49px; }
  .macro-hero-copy > p:last-child { font-size: 16px; }
  .macro-ledger div { min-height: 94px; padding: 14px 12px; }
  .macro-ledger div:nth-child(even) { padding-left: 12px; }
  .macro-ledger dd { font-size: 21px; }
  .macro-method { padding: 68px 0 82px; }
  .macro-map-inner,
  .macro-industries-inner { padding: 68px 0 82px; }
  .macro-section-heading { grid-template-columns: 1fr; gap: 13px; margin-bottom: 38px; }
  .macro-section-heading h2 { font-size: 31px; }
  .macro-method-flow { grid-template-columns: 1fr; }
  .macro-method-flow li { min-height: 112px; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 13px; padding: 20px 0; }
  .macro-method-flow li + li { border-top: 1px solid #c0c7c1; border-left: 0; }
  .macro-method-flow li > span { padding-top: 6px; }
  .macro-method-flow strong { font-size: 20px; }
  .macro-map-group { grid-template-columns: 1fr; gap: 26px; padding: 32px 0 36px; }
  .macro-map-group > header { grid-template-columns: 52px minmax(0, 1fr); gap: 14px; }
  .macro-map-group h3 { font-size: 23px; }
  .macro-map-group h3 + p { margin-top: 7px; }
  .macro-map-chapters > p { margin-left: 66px; }
  .macro-map-item { min-height: 62px; }
  .macro-map-item a { min-height: 62px; grid-template-columns: 31px minmax(0, 1fr) 20px; gap: 13px; }
  .macro-map-item p { font-size: 16px; }
  .macro-industry-list { grid-template-columns: 1fr; }
  .macro-industry-row { min-height: 112px; border-left: 0 !important; }
  .macro-industry-row + .macro-industry-row { border-top: 1px solid #bcc5c5; }
  .macro-industry-row h3 { font-size: 22px; }
  .macro-sources { grid-template-columns: 1fr; gap: 30px; padding: 68px 0 82px; }
  .macro-sources header h2 { font-size: 29px; }
  .macro-sources > p { grid-column: 1; margin-top: -12px; }
  .macro-entry-hero-inner { min-height: 0; grid-template-columns: 1fr; gap: 42px; padding: 62px 0 68px; }
  .macro-entry-hero .breadcrumb { margin-bottom: 36px; }
  .macro-entry-hero h1 { font-size: 39px; }
  .macro-entry-workbench { padding: 68px 0 82px; }
  .macro-entry-question,
  .macro-entry-method,
  .macro-entry-sources { grid-template-columns: 1fr; gap: 18px; }
  .macro-entry-question { padding: 28px 0 32px; }
  .macro-entry-question h3 { font-size: 25px; }
  .macro-entry-method { padding: 54px 0 62px; }
  .macro-entry-method ol { grid-template-columns: 1fr; gap: 0; }
  .macro-entry-method li { min-height: 88px; }
  .macro-entry-sources { padding: 34px 0 44px; }
  .macro-entry-note { margin-bottom: 42px; }
  .travel-hero-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; gap: 42px; padding: 64px 0 68px; }
  .travel-hero h1 { font-size: 49px; }
  .travel-compass { padding-left: 18px; }
  .travel-journal { width: calc(100% - 32px); min-height: 470px; padding: 68px 0 82px; }
  .travel-journal-heading, .travel-empty { grid-template-columns: 1fr; gap: 12px; }
  .travel-journal-heading { margin-bottom: 38px; }
  .travel-journal-heading h2 { font-size: 31px; }
  .travel-empty > span { grid-row: auto; }
  .travel-empty h3 { font-size: 25px; }
  .photography-hero-inner, .music-hero-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; gap: 42px; padding: 64px 0 68px; }
  .photography-hero h1, .music-hero h1 { font-size: 49px; }
  .photography-index { padding-left: 18px; border-left: 3px solid #d87566; border-top: 0; }
  .photography-index div:first-child { border-top: 1px solid #505b55; }
  .creative-catalog { width: calc(100% - 32px); min-height: 470px; padding: 68px 0 82px; }
  .creative-catalog-heading, .creative-empty { grid-template-columns: 1fr; gap: 12px; }
  .creative-catalog-heading { margin-bottom: 38px; }
  .creative-catalog-heading h2 { font-size: 31px; }
  .creative-empty > span { grid-row: auto; }
  .creative-empty h3 { font-size: 25px; }
  .creative-entry-row, .creative-entry-row:not(:has(.creative-entry-media)) { grid-template-columns: 1fr; gap: 16px; padding: 28px 0 34px; }
  .creative-entry-row:not(:has(.creative-entry-media))::before { padding-top: 0; }
  .creative-entry-media { min-height: 0; aspect-ratio: 4 / 3; }
  .creative-entry-copy h3 { font-size: 25px; }
  .photography-page .creative-catalog { width: calc(100% - 32px); padding: 62px 0 84px; }
  .photography-page .creative-catalog-heading { margin-bottom: 40px; }
  .photography-stage { min-height: min(720px, calc(100svh - 96px)); padding: 34px 0 24px; }
  .photography-stage-heading { width: calc(100% - 32px); align-items: start; }
  .photography-stage h1 { font-size: 44px; }
  .photography-stage h1 + p { max-width: 255px; font-size: 12px; }
  .photography-stage-counts { grid-template-columns: repeat(2, 58px); }
  .photography-stage-counts div { display: block; padding-right: 6px; text-align: center; }
  .photography-stage-counts div + div { padding-left: 6px; }
  .photography-stage-counts dd { margin-top: 4px; font-size: 20px; }
  .photography-series-filter { width: calc(100% - 32px); gap: 7px 21px; }
  .photography-coverflow-viewport { height: 330px; perspective: 1000px; }
  .has-photo-coverflow .photography-coverflow-card { width: min(82vw, 360px); height: min(54.67vw, 240px); }
  .photography-coverflow-controls { width: calc(100% - 32px); grid-template-columns: 44px minmax(0, 1fr) auto 44px; gap: 9px; padding-top: 12px; }
  .photography-active-caption strong { font-size: 16px; }
  .photography-collection-index { padding: 68px 16px 80px; }
  .photography-collection-index > header { grid-template-columns: 1fr; gap: 14px; margin-bottom: 40px; }
  .photography-collection-index h2 { font-size: 33px; }
  .photography-collection { padding: 28px 0 38px; }
  .photography-collection > header { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 18px; margin-bottom: 21px; }
  .photography-collection > header > p { grid-column: 1 / -1; }
  .photography-collection h3 { font-size: 27px; }
  .photography-contact-strip { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 82%; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; }
  .photography-contact-strip button { scroll-snap-align: start; }
  .photography-lightbox[open] { grid-template-rows: 68px minmax(0, 1fr) 64px; }
  .photography-lightbox-bar { padding: 10px 16px; }
  .photography-lightbox-image { padding: 6px 12px; }
  .photography-lightbox-controls { padding: 6px 16px 10px; }
  .photography-work { padding: 30px 0 48px; }
  .photography-work-caption { grid-template-columns: 1fr; gap: 22px; padding-top: 20px; }
  .photography-work-caption h3 { font-size: 31px; }
  .photography-work-note { align-self: auto; }
  .photography-work-placeholder > span { font-size: 62px; }
  .photography-reader-page { padding-top: 68px; }
  .photography-reader-shell { padding: 48px 0 76px; }
  .photography-story-heading { width: calc(100% - 32px); padding-bottom: 32px; }
  .photography-story-heading .section-index { margin-top: 32px; }
  .photography-story-heading h1 { font-size: 42px; }
  .photography-story-caption { width: calc(100% - 32px); grid-template-columns: 1fr; gap: 14px; padding: 25px 0 38px; }
  .photography-story-caption p { font-size: 17px; }
  .photography-reader-body { width: calc(100% - 32px); padding-top: 38px; }
  .photography-reader-page .chapter-navigation { width: calc(100% - 32px); margin-top: 36px; }
  .music-album { grid-template-columns: 104px minmax(0, 1fr); gap: 18px; padding: 27px 0; align-items: start; }
  .music-album-copy { align-self: start; }
  .music-album-copy h3 { margin-bottom: 12px; font-size: 24px; }
  .music-album-copy li a { min-height: 34px; grid-template-columns: minmax(0, 1fr) 40px; gap: 10px; font-size: 12px; }
  .wine-hero-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; gap: 42px; padding: 64px 0 68px; }
  .wine-hero h1 { font-size: 49px; }
  .wine-notes { padding-left: 18px; }
  .section-reader-shell { width: calc(100% - 32px); padding: 48px 0 76px; }
  .section-reader-title h1 { font-size: 35px; }
  .section-reader-body { padding-top: 33px; }
  .work-hero-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; gap: 50px; padding: 64px 0; }
  .work-title-copy h1 { font-size: 40px; }
  .single-cover { width: min(260px, 76vw); order: -1; }
  .work-directory { width: calc(100% - 32px); padding: 68px 0 82px; }
  .wechat-work-inner { width: calc(100% - 32px); grid-template-columns: 1fr; gap: 14px; padding: 40px 0 44px; }
  .wechat-work-inner .wechat-link { grid-column: auto; margin-top: 10px; }
  .wechat-work-inner h2 { font-size: 25px; }
  .directory-heading { grid-template-columns: 1fr; gap: 14px; }
  .volume-header { align-items: flex-start; }
  .volume-state { max-width: 130px; text-align: right; }
  .chapter-row { grid-template-columns: 25px minmax(0, 1fr); gap: 10px; padding: 13px 0; }
  .chapter-action { grid-column: 2; text-align: left; }
  .reader-shell { width: calc(100% - 32px); padding: 42px 0 72px; }
  .reader-aside ol { grid-template-columns: 1fr; }
  .reader-title h1 { font-size: 34px; }
  .chapter-source p { font-size: 17px; line-height: 1.95; }
  .chapter-source li { font-size: 16px; }
  .chapter-source table { display: block; overflow-x: auto; }
  .chapter-navigation { grid-template-columns: 1fr; }
  .chapter-navigation .next { text-align: left; }
  .archive-shell { width: calc(100% - 32px); padding: 62px 0 80px; }
  .archive-header { grid-template-columns: 1fr; gap: 10px; padding-bottom: 34px; }
  .archive-header .section-index { grid-row: auto; }
  .archive-header h1 { font-size: 40px; }
  .archive-controls { grid-template-columns: 1fr; gap: 15px; padding-top: 28px; }
  .archive-row { grid-template-columns: 1fr; gap: 8px; padding: 23px 0; }
  .archive-meta { grid-row: auto; flex-direction: row; justify-content: space-between; gap: 14px; }
  .links-shell { width: calc(100% - 32px); padding: 66px 0 82px; }
  .links-header { grid-template-columns: 1fr; gap: 10px; padding-bottom: 34px; }
  .links-header .section-index { grid-row: auto; }
  .links-header h1 { font-size: 40px; }
  .friend-row { min-height: 150px; grid-template-columns: minmax(0, 1fr) 42px; gap: 18px; padding: 28px 0; }
  .friend-row h2 { font-size: 25px; }
  .subscribe-shell { width: calc(100% - 32px); padding: 66px 0 82px; }
  .subscribe-header { grid-template-columns: 1fr; gap: 10px; padding-bottom: 34px; }
  .subscribe-header .section-index { grid-row: auto; }
  .subscribe-header h1 { font-size: 40px; }
  .subscribe-tool { padding-top: 32px; }
  .feed-address-row { grid-template-columns: 1fr; gap: 8px; }
  .feed-address-row input, .feed-address-row button { border-radius: 3px; }
  .feed-address-row button { min-height: 46px; }
  .kitchen-hero { min-height: min(620px, 76svh); background-position: 63% center; }
  .kitchen-hero-inner { width: calc(100% - 32px); padding: 86px 0 56px; }
  .kitchen-hero h1 { font-size: 48px; }
  .kitchen-summary { max-width: 340px; font-size: 15px; }
  .kitchen-ledger { gap: 25px; }
  .kitchen-ledger dd { font-size: 20px; }
  .kitchen-journal { width: calc(100% - 32px); padding: 68px 0 82px; }
  .kitchen-journal-heading { margin-bottom: 38px; }
  .kitchen-journal-heading h2 { font-size: 31px; }
  .kitchen-entry-row { grid-template-columns: 1fr; gap: 25px; padding: 30px 0 36px; }
  .kitchen-entry-copy h3 { font-size: 25px; }
  .kitchen-empty { padding: 58px 0 64px; }
  .kitchen-empty h3 { font-size: 29px; }
  .kitchen-reader-shell { width: calc(100% - 32px); padding: 48px 0 76px; }
  .kitchen-reader-title h1 { font-size: 35px; }
  .kitchen-reader-body { padding-top: 33px; }
  .kitchen-appreciation { grid-template-columns: 1fr; gap: 24px; margin-top: 58px; padding: 27px 0 30px; }
  .kitchen-appreciation h2 { font-size: 24px; }
  .kitchen-like-control { min-width: 0; }
  .kitchen-reader-appreciation { margin-top: 52px; margin-bottom: 42px; }
}

/* Tasting atlas */
.tasting-page,
.tasting-map-page,
.tasting-timeline-page,
.tasting-item-page { background: #f3efe6; color: #1e2421; }
.tasting-page .site-header.inner-header,
.tasting-map-page .site-header.inner-header,
.tasting-timeline-page .site-header.inner-header,
.tasting-item-page .site-header.inner-header { background: rgba(243, 239, 230, 0.96); }
.tasting-hero { position: relative; overflow: hidden; background: #263d36 url("/assets/tasting-hero-v1.jpg") center / cover no-repeat; color: #f5f1e8; border-bottom: 1px solid #52685f; }
.tasting-hero::before { content: ""; position: absolute; inset: 0; background: rgba(20, 39, 33, 0.72); }
.tasting-hero-inner { position: relative; z-index: 1; width: min(1200px, calc(100% - 56px)); min-height: min(700px, calc(100svh - 76px)); display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.65fr); grid-template-rows: 1fr auto; gap: 54px 90px; margin: 0 auto; padding: 92px 0 50px; align-items: center; }
.tasting-hero .section-index { color: #d2b477; }
.tasting-hero h1 { max-width: 820px; margin: 15px 0 22px; font-family: "Songti SC", "STSong", serif; font-size: 74px; font-weight: 600; line-height: 1.12; }
.tasting-lead { max-width: 720px; margin: 0; color: #c7d0ca; font-size: 17px; line-height: 1.9; }
.tasting-keywords { display: flex; flex-wrap: wrap; gap: 0 22px; margin: 31px 0 0; padding: 0; list-style: none; }
.tasting-keywords li { padding: 7px 0; border-bottom: 1px solid #7f9487; color: #eee7d9; font-size: 12px; }
.tasting-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 38px; }
.tasting-hero-actions a { min-height: 46px; display: inline-flex; align-items: center; gap: 20px; color: inherit; font-size: 13px; font-weight: 700; text-decoration: none; }
.tasting-hero-actions .tasting-primary-action { padding: 0 16px; border: 1px solid #d2b477; color: #fff; }
.tasting-hero-actions a:hover,
.tasting-hero-actions a:focus-visible { color: #e2c98f; }
.tasting-compass { align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding: 30px; border: 1px solid #71847a; border-radius: 4px; background: rgba(20, 48, 39, 0.86); backdrop-filter: blur(8px); }
.tasting-compass > span { color: #d2b477; font-size: 10px; font-weight: 750; }
.tasting-compass strong { margin-top: 22px; font-family: "Songti SC", "STSong", serif; font-size: 27px; font-weight: 600; line-height: 1.45; }
.tasting-compass p { margin: 24px 0 0; padding-top: 17px; border-top: 1px solid #52685f; color: #b9c5bf; font-size: 13px; line-height: 1.8; }
.tasting-stats { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-top: 1px solid #71847a; }
.tasting-stats div { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 18px 24px 0 0; }
.tasting-stats div + div { padding-left: 24px; border-left: 1px solid #52685f; }
.tasting-stats dt { color: #aebdb5; font-size: 11px; }
.tasting-stats dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 28px; }
.tasting-route-band { background: #e7dfd1; border-bottom: 1px solid #c9c0b0; }
.tasting-route-inner { width: min(1200px, calc(100% - 56px)); margin: 0 auto; padding: 88px 0 98px; }
.tasting-route-inner > header { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 40px; }
.tasting-route-inner h2,
.tasting-section-heading h2,
.tasting-preference-band h2,
.tasting-subpage-hero h1,
.tasting-archive-section h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 43px; font-weight: 600; line-height: 1.25; }
.tasting-route-inner header div > p,
.tasting-section-heading div > p,
.tasting-archive-section header div > p { margin: 10px 0 0; color: #68716c; }
.tasting-main-route { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 56px; margin: 50px 0 0 220px; padding: 0; list-style: none; }
.tasting-main-route li { position: relative; min-height: 100px; padding: 16px 0; border-top: 1px solid #8f846f; border-bottom: 1px solid #c4b9a8; }
.tasting-main-route li:not(:last-child)::after { content: "→"; position: absolute; top: 42px; right: -36px; color: #a98a55; }
.tasting-main-route span { color: #6e3238; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.tasting-main-route strong { display: block; margin-top: 21px; font-family: "Songti SC", "STSong", serif; font-size: 23px; font-weight: 600; }
.tasting-atlas-overview,
.tasting-record-section,
.tasting-archive-section { width: min(1200px, calc(100% - 56px)); margin: 0 auto; padding: 96px 0 112px; }
.tasting-section-heading,
.tasting-archive-section > header { display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; gap: 40px; align-items: start; margin-bottom: 52px; }
.tasting-section-heading > a { min-height: 44px; display: inline-flex; align-items: center; gap: 12px; color: #263d36; font-size: 12px; font-weight: 700; text-decoration: none; }
.tasting-section-heading > a:hover,
.tasting-section-heading > a:focus-visible { color: #6e3238; }
.tasting-root-grid { border-top: 1px solid #1e2421; }
.tasting-root-overview { min-height: 190px; display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 40px; padding: 34px 0; border-bottom: 1px solid #c9c0b0; }
.tasting-root-overview header { display: flex; flex-direction: column; justify-content: space-between; }
.tasting-root-overview header span { font-family: "Songti SC", "STSong", serif; font-size: 32px; }
.tasting-root-overview header strong { color: #a98a55; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.tasting-root-overview > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; align-content: start; }
.tasting-root-overview a { min-height: 48px; display: flex; align-items: center; border-bottom: 1px solid #d4ccbf; color: inherit; font-size: 14px; text-decoration: none; }
.tasting-root-overview a:hover,
.tasting-root-overview a:focus-visible { color: #6e3238; border-color: #6e3238; }
.tasting-coffee-entry { position: relative; overflow: hidden; min-height: 620px; display: flex; align-items: center; background: #263d36 url("/assets/tasting-coffee-v1.jpg") center / cover no-repeat; color: #f5f1e8; }
.tasting-coffee-entry::before { content: ""; position: absolute; inset: 0; background: rgba(22, 31, 27, 0.58); }
.tasting-coffee-entry-inner { position: relative; z-index: 1; width: min(1200px, calc(100% - 56px)); display: grid; grid-template-columns: 180px minmax(0, 650px); gap: 42px; margin: 0 auto; padding: 88px 0; }
.tasting-coffee-entry .section-index { color: #e1c985; }
.tasting-coffee-entry h2 { max-width: 620px; margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 48px; font-weight: 600; line-height: 1.25; }
.tasting-coffee-entry h2 + p { max-width: 620px; margin: 22px 0 0; color: #d9dfdb; font-size: 15px; line-height: 1.9; }
.tasting-coffee-entry a { min-height: 46px; display: inline-flex; align-items: center; gap: 14px; margin-top: 28px; color: #fff; font-size: 12px; font-weight: 750; text-decoration: none; border-bottom: 1px solid #d2b477; }
.tasting-coffee-entry dl { grid-column: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 30px 0 0; border-top: 1px solid rgba(245, 241, 232, 0.48); }
.tasting-coffee-entry dl div { padding: 18px 18px 0 0; }
.tasting-coffee-entry dl div + div { padding-left: 18px; border-left: 1px solid rgba(245, 241, 232, 0.3); }
.tasting-coffee-entry dt { color: #e1c985; font-size: 9px; font-weight: 750; }
.tasting-coffee-entry dd { margin: 9px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 16px; }
.tasting-preference-band { display: grid; grid-template-columns: minmax(180px, 0.55fr) minmax(360px, 1fr) minmax(260px, 0.75fr); gap: 72px; padding: 96px max(28px, calc((100% - 1200px) / 2)); background: #dce2de; border-top: 1px solid #c4cec8; border-bottom: 1px solid #c4cec8; }
.tasting-preference-band h2 { margin-top: 13px; }
.tasting-preference-plane { position: relative; min-height: 280px; border-left: 1px solid #7f9487; border-bottom: 1px solid #7f9487; background: linear-gradient(#cbd5cf 1px, transparent 1px), linear-gradient(90deg, #cbd5cf 1px, transparent 1px); background-size: 25% 25%; }
.tasting-preference-plane .axis { position: absolute; display: flex; justify-content: space-between; color: #53635a; font-size: 10px; font-weight: 500; }
.tasting-preference-plane .axis-horizontal { left: 0; right: 0; bottom: -25px; }
.tasting-preference-plane .axis-vertical { top: 0; bottom: 0; left: -35px; flex-direction: column; }
.tasting-preference-plane b { font-weight: 500; }
.preference-point { position: absolute; left: 24%; bottom: 28%; display: flex; align-items: center; gap: 9px; color: #263d36; font-size: 12px; font-weight: 750; }
.preference-point i { width: 13px; height: 13px; display: block; border: 3px solid #f3efe6; border-radius: 50%; background: #6e3238; box-shadow: 0 0 0 1px #6e3238; }
.tasting-preference-copy { margin: 0; }
.tasting-preference-copy div { padding: 20px 0; border-top: 1px solid #aebdb5; }
.tasting-preference-copy div:last-child { border-bottom: 1px solid #aebdb5; }
.tasting-preference-copy dt { color: #6e3238; font-size: 10px; font-weight: 750; }
.tasting-preference-copy dd { margin: 10px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 17px; line-height: 1.7; }
.tasting-next-section { width: 100%; padding-right: max(28px, calc((100% - 1200px) / 2)); padding-left: max(28px, calc((100% - 1200px) / 2)); background: #e6e9e6; border-top: 1px solid #ccd3ce; }
.tasting-record-list { border-top: 1px solid #1e2421; }
.tasting-record-row { position: relative; display: grid; grid-template-columns: 205px minmax(220px, 0.75fr) minmax(260px, 1.25fr) 100px; gap: 32px; min-height: 142px; padding: 27px 0; border-bottom: 1px solid #c9c0b0; align-items: center; }
.tasting-record-meta { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; color: #707872; font-size: 10px; }
.tasting-note-kind { padding-bottom: 2px; border-bottom: 1px solid #a98a55; color: #8c6e31; font-size: 9px; font-weight: 750; }
.tasting-note-kind.source { border-color: #7f9487; color: #53635a; }
.tasting-status { display: inline-flex; align-items: center; gap: 6px; color: #53635a; font-size: 10px; font-weight: 750; white-space: nowrap; }
.tasting-status.favorite { color: #8c6e31; }
.tasting-status.tasted { color: #263d36; }
.tasting-status.candidate { color: #6e3238; }
.tasting-status.revisit { color: #725f7a; }
.tasting-status.reference { color: #818983; font-weight: 500; }
.tasting-status.unknown { color: #777; }
.tasting-record-row h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 23px; font-weight: 600; line-height: 1.4; }
.tasting-record-row h3 a { color: inherit; text-decoration: none; }
.tasting-record-row h3 a:hover,
.tasting-record-row h3 a:focus-visible { color: #6e3238; }
.tasting-record-row > p { margin: 0; color: #626a65; font-size: 13px; line-height: 1.75; }
.tasting-row-link { justify-self: end; color: #263d36; font-size: 11px; font-weight: 700; text-decoration: none; }
.tasting-row-link:hover,
.tasting-row-link:focus-visible { color: #6e3238; }
.tasting-subpage-hero { width: min(1200px, calc(100% - 56px)); margin: 0 auto; padding: 86px 0 68px; border-bottom: 1px solid #8f948f; }
.tasting-subpage-hero h1 { margin-top: 13px; font-size: 60px; }
.tasting-subpage-hero > p:not(.section-index) { max-width: 700px; margin: 17px 0 0; color: #68716c; font-size: 16px; }
.tasting-subpage-hero nav { display: flex; flex-wrap: wrap; gap: 28px; margin-top: 37px; }
.tasting-subpage-hero nav a { min-height: 44px; display: inline-flex; align-items: center; color: #53635a; font-size: 12px; font-weight: 700; text-decoration: none; }
.tasting-subpage-hero nav a[aria-current="page"] { color: #6e3238; border-bottom: 2px solid #6e3238; }
.tasting-map-hero { position: relative; overflow: hidden; padding-right: 38px; padding-left: 38px; background: #e8ecea url("/assets/tasting-map-v1.jpg") center / cover no-repeat; }
.tasting-map-hero::before { content: ""; position: absolute; inset: 0; background: rgba(243, 239, 230, 0.78); }
.tasting-map-hero > * { position: relative; z-index: 1; }
.tasting-map-shell { width: min(1440px, 100%); min-height: 720px; display: grid; grid-template-columns: 260px minmax(400px, 1fr) 320px; margin: 0 auto; border-bottom: 1px solid #c9c0b0; }
.tasting-map-sidebar { padding: 36px 24px 80px 28px; border-right: 1px solid #c9c0b0; background: #ebe6dc; }
.tasting-map-sidebar > label { display: block; margin-bottom: 8px; color: #53635a; font-size: 11px; font-weight: 700; }
.tasting-search { position: relative; }
.tasting-search input { width: 100%; min-height: 46px; padding: 9px 38px 9px 11px; border: 1px solid #aaa396; border-radius: 3px; background: #f6f2e9; color: #1e2421; font-size: 13px; }
.tasting-search span { position: absolute; top: 13px; right: 12px; color: #6e3238; }
.tasting-status-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 18px; border-top: 1px solid #bcb4a6; border-left: 1px solid #bcb4a6; }
.tasting-status-filters button { min-height: 44px; padding: 7px; border: 0; border-right: 1px solid #bcb4a6; border-bottom: 1px solid #bcb4a6; background: transparent; color: #53635a; cursor: pointer; font-size: 11px; }
.tasting-status-filters button[aria-pressed="true"] { background: #263d36; color: #f5f1e8; }
.tasting-branch-groups { margin-top: 30px; }
.tasting-branch-groups section + section { margin-top: 28px; }
.tasting-branch-groups h2 { margin: 0 0 8px; color: #6e3238; font-family: "Songti SC", "STSong", serif; font-size: 17px; font-weight: 600; }
.tasting-branch-groups section > div { border-top: 1px solid #bcb4a6; }
.tasting-branch-button { width: 100%; min-height: 44px; display: flex; align-items: center; padding: 8px 0; border: 0; border-bottom: 1px solid #c9c0b0; background: transparent; color: #343b37; cursor: pointer; font-size: 12px; text-align: left; }
.tasting-branch-button[aria-pressed="true"] { color: #6e3238; font-weight: 750; }
.tasting-branch-button[aria-pressed="true"]::before { content: "→"; margin-right: 8px; color: #a98a55; }
.tasting-map-stage { min-width: 0; padding: 36px 42px 90px; background: #f3efe6; }
.tasting-map-result { min-height: 24px; margin: 0 0 23px; color: #68716c; font-size: 11px; }
.tasting-map-branch > header { display: grid; grid-template-columns: 1fr auto; gap: 7px 20px; padding-bottom: 24px; border-bottom: 1px solid #1e2421; }
.tasting-map-branch > header p { grid-column: 1 / -1; margin: 0; color: #6e3238; font-size: 10px; }
.tasting-map-branch > header h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 34px; font-weight: 600; }
.tasting-map-branch > header > span { align-self: end; color: #68716c; font-size: 10px; }
.tasting-tree,
.tasting-tree ul { margin: 0; padding: 0; list-style: none; }
.tasting-tree > .tasting-node { border-bottom: 1px solid #cbc4b7; }
.tasting-node ul { margin-left: 18px; padding-left: 14px; border-left: 1px solid #c2b9aa; }
.tasting-node-button { width: 100%; min-height: 48px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 8px 0; border: 0; background: transparent; color: inherit; cursor: pointer; scroll-margin-top: 88px; text-align: left; }
.tasting-node-button > span:first-child { min-width: 0; overflow-wrap: anywhere; font-size: 13px; line-height: 1.55; }
.tasting-node-button:hover > span:first-child,
.tasting-node-button:focus-visible > span:first-child,
.tasting-node-button[aria-current="true"] > span:first-child { color: #6e3238; }
.tasting-map-detail { align-self: start; position: sticky; top: 76px; min-height: 480px; padding: 42px 30px; border-left: 1px solid #c9c0b0; background: #e1e6e2; }
.tasting-map-detail .section-index { color: #8c6e31; }
.tasting-detail-status { display: inline-block; margin-top: 52px; color: #6e3238; font-size: 10px; font-weight: 750; }
.tasting-detail-title { margin: 14px 0 12px; font-family: "Songti SC", "STSong", serif; font-size: 29px; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.tasting-detail-path { margin: 0; padding-bottom: 19px; border-bottom: 1px solid #aebdb5; color: #637169; font-size: 10px; line-height: 1.7; }
.tasting-detail-summary { margin: 22px 0 0; color: #4f5b54; font-size: 13px; line-height: 1.85; }
.tasting-detail-link { min-height: 44px; display: inline-flex; align-items: center; gap: 14px; margin-top: 28px; color: #263d36; font-size: 12px; font-weight: 750; text-decoration: none; }
.tasting-archive-section > header { grid-template-columns: 180px minmax(0, 1fr); }
.tasting-item-shell { width: min(920px, calc(100% - 56px)); min-height: calc(100svh - 160px); margin: 0 auto; padding: 92px 0 118px; }
.tasting-item-heading { padding-bottom: 48px; border-bottom: 1px solid #1e2421; }
.tasting-item-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 38px; color: #68716c; font-size: 11px; }
.tasting-item-heading h1 { max-width: 800px; margin: 20px 0 15px; font-family: "Songti SC", "STSong", serif; font-size: 51px; font-weight: 600; line-height: 1.25; overflow-wrap: anywhere; }
.tasting-item-heading > p:last-child { margin: 0; color: #68716c; font-size: 11px; }
.tasting-item-body { padding-top: 12px; }
.tasting-item-body dl { margin: 0; }
.tasting-item-body dl > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 38px; padding: 28px 0; border-bottom: 1px solid #c9c0b0; }
.tasting-item-body dt { color: #6e3238; font-size: 11px; font-weight: 750; }
.tasting-item-body dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 18px; line-height: 1.8; }
.tasting-source-boundary { margin: 36px 0 0; padding-left: 14px; border-left: 2px solid #a98a55; color: #68716c; font-size: 12px; }

/* Coffee sensory atlas */
.coffee-atlas-hero { position: relative; overflow: hidden; min-height: min(680px, calc(100svh - 130px)); display: flex; align-items: center; background: #dce2de url("/assets/tasting-coffee-v1.jpg") center / cover no-repeat; border-bottom: 1px solid #aebdb5; }
.coffee-atlas-hero::before { content: ""; position: absolute; inset: 0; background: rgba(235, 239, 236, 0.7); }
.coffee-atlas-hero-inner { position: relative; z-index: 1; width: min(1200px, calc(100% - 56px)); margin: 0 auto; padding: 78px 0 54px; }
.coffee-atlas-hero .section-index { color: #813f42; }
.coffee-atlas-hero h1 { max-width: 720px; margin: 15px 0 21px; font-family: "Songti SC", "STSong", serif; font-size: 70px; font-weight: 600; line-height: 1.12; }
.coffee-atlas-hero h1 + p { max-width: 620px; margin: 0; color: #46544d; font-size: 17px; line-height: 1.9; }
.coffee-atlas-hero nav { display: flex; flex-wrap: wrap; gap: 30px; margin-top: 31px; }
.coffee-atlas-hero nav a { min-height: 44px; display: inline-flex; align-items: center; border-bottom: 1px solid #76877e; color: #263d36; font-size: 12px; font-weight: 750; text-decoration: none; }
.coffee-atlas-counts { width: min(620px, 100%); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 39px 0 0; border-top: 1px solid #76877e; }
.coffee-atlas-counts div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 17px 18px 0 0; }
.coffee-atlas-counts div + div { padding-left: 18px; border-left: 1px solid #aebdb5; }
.coffee-atlas-counts dt { color: #5b6962; font-size: 10px; }
.coffee-atlas-counts dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 25px; }
.coffee-boundary { padding: 31px max(28px, calc((100% - 1200px) / 2)); background: #263d36; color: #e9eee9; }
.coffee-boundary p { max-width: 900px; margin: 0; padding-left: 17px; border-left: 2px solid #d2b477; font-size: 12px; line-height: 1.9; }
.coffee-profile-section { width: min(1200px, calc(100% - 56px)); margin: 0 auto; padding: 94px 0 112px; scroll-margin-top: 76px; }
.coffee-profile-section > header { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 40px; margin-bottom: 50px; }
.coffee-profile-section h2,
.coffee-cupping-band h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 43px; font-weight: 600; line-height: 1.25; }
.coffee-profile-section header div > p { max-width: 700px; margin: 12px 0 0; color: #68716c; line-height: 1.8; }
.coffee-processing-section { width: 100%; padding-right: max(28px, calc((100% - 1200px) / 2)); padding-left: max(28px, calc((100% - 1200px) / 2)); background: #e0e6e2; border-top: 1px solid #c4cec8; border-bottom: 1px solid #c4cec8; }
.coffee-profile-list { border-top: 1px solid #1e2421; }
.coffee-profile-row { display: grid; grid-template-columns: 170px minmax(260px, 1.1fr) minmax(220px, 0.75fr) minmax(180px, 0.7fr); gap: 32px; align-items: start; padding: 31px 0 34px; border-bottom: 1px solid #c9c0b0; scroll-margin-top: 90px; }
.coffee-profile-row header > span { color: #8c6e31; font-size: 9px; font-weight: 750; }
.coffee-profile-row h3 { margin: 11px 0 2px; font-family: "Songti SC", "STSong", serif; font-size: 25px; font-weight: 600; }
.coffee-profile-row header > p { margin: 0; color: #68716c; font-size: 11px; }
.coffee-profile-copy > p { margin: 0; color: #4f5b54; font-size: 13px; line-height: 1.85; }
.coffee-profile-copy ul { display: flex; flex-wrap: wrap; gap: 7px 17px; margin: 17px 0 0; padding: 0; list-style: none; }
.coffee-profile-copy li { padding-bottom: 3px; border-bottom: 1px solid #aebdb5; color: #6e3238; font-size: 10px; }
.coffee-profile-metrics { margin: 0; }
.coffee-profile-metrics > div { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 30px; }
.coffee-profile-metrics dt { color: #68716c; font-size: 10px; }
.coffee-profile-metrics dd { display: grid; grid-template-columns: minmax(0, 1fr) 15px; gap: 8px; align-items: center; margin: 0; }
.coffee-profile-metrics b { color: #53635a; font-size: 9px; font-weight: 600; }
.coffee-meter { height: 4px; display: block; overflow: hidden; background: #c7d0ca; }
.coffee-meter i { width: calc(var(--score) * 20%); height: 100%; display: block; background: #6e3238; }
.coffee-profile-finish { margin: 0; color: #4f5b54; font-family: "Songti SC", "STSong", serif; font-size: 14px; line-height: 1.75; }
.coffee-profile-finish span { display: block; margin-bottom: 8px; color: #8c6e31; font-family: system-ui, sans-serif; font-size: 9px; font-weight: 750; }
.coffee-cupping-band { padding: 94px max(28px, calc((100% - 1200px) / 2)) 108px; background: #263d36; color: #f5f1e8; scroll-margin-top: 76px; }
.coffee-cupping-band > header { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 40px; }
.coffee-cupping-band .section-index { color: #d2b477; }
.coffee-cupping-band ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 30px; margin: 52px 0 0 220px; padding: 0; list-style: none; }
.coffee-cupping-band li { min-width: 0; padding-top: 17px; border-top: 1px solid #71847a; }
.coffee-cupping-band li > span { color: #d2b477; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; }
.coffee-cupping-band strong { display: block; margin-top: 17px; font-family: "Songti SC", "STSong", serif; font-size: 20px; font-weight: 600; }
.coffee-cupping-band li p { margin: 10px 0 0; color: #bdc9c2; font-size: 11px; line-height: 1.75; }

@media (max-width: 1000px) {
  .tasting-hero-inner { width: calc(100% - 40px); gap: 42px 48px; }
  .tasting-hero h1 { font-size: 62px; }
  .tasting-main-route { margin-left: 0; }
  .tasting-route-inner > header { grid-template-columns: 140px minmax(0, 1fr); }
  .tasting-section-heading { grid-template-columns: 140px minmax(0, 1fr) auto; }
  .tasting-preference-band { grid-template-columns: 150px minmax(320px, 1fr); gap: 58px; }
  .tasting-preference-copy { grid-column: 2; }
  .tasting-record-row { grid-template-columns: 165px minmax(200px, 0.8fr) minmax(220px, 1.2fr); gap: 24px; }
  .tasting-row-link { grid-column: 2 / -1; justify-self: start; }
  .tasting-map-shell { grid-template-columns: 230px minmax(0, 1fr); }
  .tasting-map-detail { position: static; grid-column: 2; min-height: 0; border-top: 1px solid #c9c0b0; border-left: 0; }
  .tasting-coffee-entry-inner { grid-template-columns: 140px minmax(0, 1fr); }
  .tasting-coffee-entry-inner dl { grid-column: 2; }
  .coffee-profile-section > header,
  .coffee-cupping-band > header { grid-template-columns: 140px minmax(0, 1fr); }
  .coffee-profile-row { grid-template-columns: 145px minmax(0, 1fr) minmax(205px, 0.75fr); gap: 24px; }
  .coffee-profile-finish { grid-column: 2 / -1; }
  .coffee-cupping-band ol { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-left: 180px; }
}

@media (max-width: 620px) {
  .tasting-hero-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; grid-template-rows: auto; gap: 24px; padding: 54px 0 36px; }
  .tasting-hero h1 { margin: 10px 0 14px; font-size: 48px; }
  .tasting-lead { font-size: 14px; line-height: 1.75; }
  .tasting-keywords { gap: 0 16px; margin-top: 18px; }
  .tasting-keywords li { padding: 5px 0; font-size: 10px; }
  .tasting-hero-actions { gap: 18px; margin-top: 22px; }
  .tasting-compass { padding: 18px 20px; }
  .tasting-compass strong { margin-top: 11px; font-size: 20px; }
  .tasting-compass p { margin-top: 13px; padding-top: 11px; line-height: 1.65; }
  .tasting-stats { grid-column: auto; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tasting-stats div { min-width: 0; display: block; padding: 11px 7px 0; text-align: center; }
  .tasting-stats div + div { padding-left: 7px; }
  .tasting-stats dt { min-height: 2.6em; font-size: 9px; line-height: 1.3; }
  .tasting-stats dd { font-size: 21px; }
  .tasting-route-inner { width: calc(100% - 32px); padding: 66px 0 76px; }
  .tasting-route-inner > header,
  .tasting-section-heading,
  .tasting-archive-section > header { grid-template-columns: 1fr; gap: 14px; }
  .tasting-route-inner h2,
  .tasting-section-heading h2,
  .tasting-preference-band h2,
  .tasting-archive-section h2 { font-size: 33px; }
  .tasting-main-route { grid-template-columns: 1fr; gap: 27px; margin-top: 38px; }
  .tasting-main-route li { min-height: 78px; display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; }
  .tasting-main-route li:not(:last-child)::after { content: "↓"; top: auto; right: 50%; bottom: -23px; }
  .tasting-main-route strong { margin: 0; }
  .tasting-atlas-overview,
  .tasting-record-section,
  .tasting-archive-section { width: calc(100% - 32px); padding: 68px 0 80px; }
  .tasting-next-section { width: 100%; padding-right: 16px; padding-left: 16px; }
  .tasting-section-heading > a { justify-self: start; }
  .tasting-root-overview { grid-template-columns: 1fr; gap: 24px; }
  .tasting-root-overview header { flex-direction: row; }
  .tasting-root-overview > div { grid-template-columns: 1fr 1fr; gap: 0 16px; }
  .tasting-root-overview a { font-size: 12px; }
  .tasting-preference-band { grid-template-columns: 1fr; gap: 42px; padding: 68px 48px 82px; }
  .tasting-preference-plane { min-height: 240px; }
  .tasting-preference-copy { grid-column: auto; }
  .tasting-record-row { grid-template-columns: 1fr; gap: 11px; padding: 27px 0 31px; }
  .tasting-record-meta { flex-direction: row; flex-wrap: wrap; }
  .tasting-record-row h3 { font-size: 22px; }
  .tasting-row-link { grid-column: auto; }
  .tasting-subpage-hero { width: calc(100% - 32px); padding: 66px 0 48px; }
  .tasting-subpage-hero h1 { font-size: 44px; }
  .tasting-map-shell { width: 100%; grid-template-columns: 1fr; }
  .tasting-map-sidebar { padding: 30px 16px 36px; border-right: 0; border-bottom: 1px solid #c9c0b0; }
  .tasting-branch-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 20px; }
  .tasting-branch-groups section + section { margin-top: 0; }
  .tasting-map-stage { padding: 34px 16px 58px; }
  .tasting-map-branch > header h2 { font-size: 29px; }
  .tasting-node ul { margin-left: 8px; padding-left: 10px; }
  .tasting-node-button { min-height: 50px; gap: 10px; }
  .tasting-node-button > span:first-child { font-size: 12px; }
  .tasting-node-button .tasting-status { font-size: 9px; }
  .tasting-map-detail { grid-column: auto; padding: 36px 16px 52px; }
  .tasting-detail-status { margin-top: 31px; }
  .tasting-item-shell { width: calc(100% - 32px); padding: 66px 0 82px; }
  .tasting-item-heading h1 { font-size: 38px; }
  .tasting-item-body dl > div { grid-template-columns: 1fr; gap: 9px; }
  .tasting-hero { background-position: 62% center; }
  .tasting-coffee-entry { min-height: 620px; background-position: 62% center; }
  .tasting-coffee-entry-inner { width: calc(100% - 32px); grid-template-columns: 1fr; gap: 23px; padding: 58px 0 54px; }
  .tasting-coffee-entry-inner dl { grid-column: auto; grid-template-columns: 1fr; margin-top: 3px; }
  .tasting-coffee-entry h2 { font-size: 36px; }
  .tasting-coffee-entry-inner > div > p { font-size: 13px; }
  .tasting-map-hero { width: 100%; padding: 58px 16px 48px; background-position: 60% center; }
  .coffee-atlas-hero { min-height: min(680px, calc(100svh - 84px)); background-position: 58% center; }
  .coffee-atlas-hero-inner { width: calc(100% - 32px); padding: 58px 0 42px; }
  .coffee-atlas-hero h1 { margin: 12px 0 17px; font-size: 46px; }
  .coffee-atlas-hero h1 + p { font-size: 14px; line-height: 1.75; }
  .coffee-atlas-hero nav { gap: 12px 22px; margin-top: 23px; }
  .coffee-atlas-hero nav a { min-height: 40px; }
  .coffee-atlas-counts { margin-top: 27px; }
  .coffee-atlas-counts div { display: block; padding: 13px 8px 0; text-align: center; }
  .coffee-atlas-counts div + div { padding-left: 8px; }
  .coffee-atlas-counts dt { min-height: 2.6em; line-height: 1.3; }
  .coffee-atlas-counts dd { margin-top: 5px; font-size: 22px; }
  .coffee-boundary { padding: 27px 16px; }
  .coffee-profile-section { width: calc(100% - 32px); padding: 68px 0 80px; }
  .coffee-processing-section { width: 100%; padding-right: 16px; padding-left: 16px; }
  .coffee-profile-section > header,
  .coffee-cupping-band > header { grid-template-columns: 1fr; gap: 14px; }
  .coffee-profile-section h2,
  .coffee-cupping-band h2 { font-size: 33px; }
  .coffee-profile-section > header { margin-bottom: 35px; }
  .coffee-profile-row { grid-template-columns: 1fr; gap: 15px; padding: 28px 0 31px; }
  .coffee-profile-finish { grid-column: auto; }
  .coffee-profile-metrics { width: min(100%, 300px); margin-top: 3px; }
  .coffee-cupping-band { padding: 68px 16px 80px; }
  .coffee-cupping-band ol { grid-template-columns: 1fr; gap: 25px; margin: 38px 0 0; }
}

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

@media (max-width: 900px) {
  .macro-observation,
  .macro-asset-hero-inner,
  .macro-asset-theses,
  .macro-asset-readouts,
  .macro-asset-sources,
  .macro-asset-section-inner { width: calc(100% - 40px); }
  .macro-observation-link { grid-template-columns: 120px minmax(0, 1fr) 170px 88px; gap: 24px; }
  .macro-asset-hero-inner { grid-template-columns: minmax(0, 1fr) 290px; gap: 52px; }
  .macro-thesis-list article { grid-template-columns: 120px minmax(0, 1fr); gap: 24px; }
  .macro-asset-readout { grid-template-columns: minmax(240px, 1.05fr) minmax(180px, 0.95fr) minmax(180px, 0.95fr); gap: 24px; }
  .macro-asset-rules { grid-template-columns: 1fr 1fr; }
  .macro-asset-rules div:nth-child(3) { border-left: 0; border-top: 1px solid #b8c2c2; }
  .macro-asset-rules div:nth-child(4) { border-top: 1px solid #b8c2c2; }
}

@media (max-width: 620px) {
  .macro-observation,
  .macro-asset-hero-inner,
  .macro-asset-theses,
  .macro-asset-readouts,
  .macro-asset-sources,
  .macro-asset-section-inner { width: calc(100% - 32px); }
  .macro-observation { padding-bottom: 78px; }
  .macro-observation-link { min-height: 0; grid-template-columns: 1fr 34px; gap: 18px; padding: 25px 0 29px; }
  .macro-observation-kicker { grid-column: 1 / -1; }
  .macro-observation-link > div { grid-column: 1 / -1; }
  .macro-observation-link h3 { font-size: 27px; }
  .macro-observation-link dl { grid-column: 1; border-left: 0; }
  .macro-observation-link dl div { padding: 0; }
  .macro-observation-link > strong { grid-column: 2; grid-row: 3; align-self: end; }
  .macro-observation-link > strong span:first-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .macro-asset-hero-inner { min-height: 0; grid-template-columns: 1fr; gap: 44px; padding: 58px 0 66px; }
  .macro-asset-hero .breadcrumb { margin-bottom: 36px; }
  .macro-asset-hero h1 { font-size: 46px; }
  .macro-asset-hero h1 + p { font-size: 14px; }
  .macro-asset-ledger div { min-height: 96px; }
  .macro-asset-ledger dd { font-size: 18px; }
  .macro-asset-theses,
  .macro-asset-readouts { padding: 68px 0 80px; }
  .macro-asset-page .macro-section-heading { grid-template-columns: 1fr; gap: 14px; margin-bottom: 38px; }
  .macro-asset-page .macro-section-heading h2 { font-size: 33px; }
  .macro-thesis-list article { min-height: 0; grid-template-columns: 32px minmax(0, 1fr); gap: 14px; align-items: start; padding: 27px 0 30px; }
  .macro-thesis-list h3 { font-size: 23px; }
  .macro-asset-matrix,
  .macro-asset-method { padding: 68px 0 78px; }
  .macro-heatmap-scroll { width: 100%; }
  .macro-heatmap { width: 960px; min-width: 960px; }
  .macro-heatmap th:first-child { width: 160px; }
  .macro-heatmap-legend { gap: 14px; }
  .macro-heatmap-legend small { width: 100%; margin-left: 0; }
  .macro-asset-readout { min-height: 0; grid-template-columns: 1fr 1fr; gap: 22px 16px; padding: 27px 0 31px; }
  .macro-asset-readout header { grid-column: 1 / -1; }
  .macro-asset-readout > div { min-height: 82px; padding: 15px 0 0; border-top: 1px solid #bdc5be; border-left: 0; }
  .macro-asset-readout > div:last-child { padding-left: 16px; border-left: 1px solid #bdc5be; }
  .macro-asset-rules { grid-template-columns: 1fr; }
  .macro-asset-rules div { min-height: 104px; }
  .macro-asset-rules div + div { border-top: 1px solid #b8c2c2; border-left: 0; }
  .macro-asset-rules dd { margin-top: 20px; }
  .macro-asset-sources { grid-template-columns: 1fr; gap: 30px; padding: 68px 0 82px; }
  .macro-asset-sources > div { grid-template-columns: 1fr; }
  .macro-asset-sources > div a:nth-child(odd),
  .macro-asset-sources > div a:nth-child(even) { padding-right: 0; padding-left: 0; border-left: 0; }
  .macro-asset-sources > p { grid-column: auto; margin: -8px 0 0; }
}

/* Daily stock desk */
.stock-page { --stock-red: #a33b34; --stock-green: #28715a; --stock-blue: #275d85; --stock-amber: #9a6a26; background: #f2f3ef; color: #202622; }
.stock-hero { background: #1e2521; color: #f1f3ed; border-bottom: 1px solid #48514b; }
.stock-hero-inner,
.stock-section-inner { width: min(1200px, calc(100% - 56px)); margin: 0 auto; }
.stock-hero-inner { min-height: 390px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(360px, 0.8fr); gap: 92px; align-items: center; padding: 62px 0 58px; }
.stock-hero .section-index { color: #c8a461; }
.stock-hero h1 { margin: 14px 0 16px; font-family: "Songti SC", "STSong", serif; font-size: 54px; font-weight: 600; line-height: 1.15; }
.stock-hero h1 + p { max-width: 660px; margin: 0; color: #bbc5be; font-size: 15px; line-height: 1.9; }
.stock-session-ledger { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid #768078; border-bottom: 1px solid #768078; }
.stock-session-ledger div { min-height: 96px; display: flex; flex-direction: column; justify-content: space-between; padding: 15px 17px 17px 0; }
.stock-session-ledger div:nth-child(even) { padding-left: 17px; border-left: 1px solid #535d56; }
.stock-session-ledger div:nth-child(-n + 2) { border-bottom: 1px solid #535d56; }
.stock-session-ledger dt { color: #8f9d94; font-size: 9px; }
.stock-session-ledger dd { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 23px; line-height: 1.25; }
.stock-session-ledger dd small { color: #93a097; font-size: 12px; }
.stock-mode-bar { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 0 max(28px, calc((100% - 1200px) / 2)); background: #151a17; border-top: 1px solid #323a35; }
.stock-mode-bar > p { margin: 0; color: #849087; font-size: 9px; }
.stock-mode-switch { display: inline-grid; grid-template-columns: 1fr 1fr; padding: 4px; border: 1px solid #505a53; background: #272f2a; }
.stock-mode-switch button { min-width: 104px; min-height: 36px; padding: 0 14px; border: 0; border-radius: 2px; background: transparent; color: #a9b4ac; cursor: pointer; font: inherit; font-size: 11px; }
.stock-mode-switch button[aria-pressed="true"] { background: #eff1eb; color: #1e2521; font-weight: 750; }
.stock-mode-switch button:focus-visible { outline: 2px solid #d1ac68; outline-offset: 2px; }
.stock-section-inner { padding: 82px 0 94px; }
.stock-section-heading { display: grid; grid-template-columns: 178px minmax(0, 1fr); gap: 38px; margin-bottom: 42px; }
.stock-section-heading h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 38px; font-weight: 600; line-height: 1.25; }
.stock-section-heading div > p { max-width: 690px; margin: 9px 0 0; color: #68736b; font-size: 13px; }
.stock-snapshot { background: #f2f3ef; }
.stock-call { min-height: 112px; display: grid; grid-template-columns: 178px minmax(0, 1fr) 150px; gap: 38px; align-items: center; padding: 23px 0; border-top: 2px solid #202622; border-bottom: 1px solid #aeb6b0; }
.stock-call > p { margin: 0; font-size: 11px; font-weight: 750; }
.stock-call > div { padding: 0 38px; border-right: 1px solid #ccd1cd; border-left: 1px solid #ccd1cd; }
.stock-call h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 24px; font-weight: 600; }
.stock-call h3 + p { margin: 7px 0 0; color: #606b63; font-size: 12px; }
.stock-call > time { color: #758078; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; text-align: right; }
.stock-tone-positive > p,
.stock-value-positive span,
.stock-number-positive { color: var(--stock-red); }
.stock-tone-negative > p,
.stock-value-negative span,
.stock-number-negative { color: var(--stock-green); }
.stock-tone-neutral > p,
.stock-value-neutral span,
.stock-number-neutral { color: var(--stock-amber); }
.stock-tape { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin-top: 26px; border-top: 1px solid #909b93; border-bottom: 1px solid #b7beb9; }
.stock-tape-item { min-width: 0; min-height: 148px; display: flex; flex-direction: column; justify-content: space-between; padding: 17px 16px 19px; }
.stock-tape-item + .stock-tape-item { border-left: 1px solid #c5cbc6; }
.stock-tape-item header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.stock-tape-item header span { color: #303833; font-size: 11px; font-weight: 750; }
.stock-tape-item header small { overflow: hidden; color: #8a948d; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.stock-tape-item > strong { margin-top: 18px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 22px; font-weight: 650; }
.stock-tape-item > p { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 17px 0 0; }
.stock-tape-item > p span { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; font-weight: 750; }
.stock-tape-item > p small { color: #758078; font-size: 9px; }
.stock-radar { background: #dfe4dc; border-bottom: 1px solid #bbc4ba; }
.stock-screener { border-top: 2px solid #202622; border-bottom: 1px solid #9da89e; }
.stock-screener > header { min-height: 128px; display: grid; grid-template-columns: 250px minmax(0, 1fr); align-items: stretch; }
.stock-screener > header > div:first-child { display: flex; flex-direction: column; justify-content: center; padding-right: 28px; }
.stock-screener > header > div:first-child p { margin: 0 0 9px; color: #69746b; font-size: 9px; }
.stock-screener h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 25px; font-weight: 600; }
.stock-screener .stock-screener-logic { margin: 10px 0 0; color: var(--stock-red); font-size: 10px; font-weight: 700; }
.stock-screener > header dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-left: 1px solid #abb5ab; }
.stock-screener > header dl div { display: flex; flex-direction: column; justify-content: center; gap: 11px; padding: 20px 28px; }
.stock-screener > header dl div + div { border-left: 1px solid #abb5ab; }
.stock-screener dt { color: #707b72; font-size: 9px; }
.stock-screener dd { margin: 0; color: #27322b; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 720; }
.stock-screener > header dd { font-size: 21px; }
.stock-radar-results { border-top: 1px solid #abb5ab; }
.stock-radar-row { min-height: 118px; display: grid; grid-template-columns: 84px minmax(190px, 0.9fr) minmax(480px, 2fr) 132px; gap: 20px; align-items: center; border-bottom: 1px solid #bac3ba; }
.stock-radar-row:last-child { border-bottom: 0; }
.stock-radar-row > p { display: flex; flex-direction: column; gap: 7px; margin: 0; }
.stock-radar-row > p:first-child span { color: var(--stock-blue); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 22px; font-weight: 720; }
.stock-radar-row > p strong { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 18px; }
.stock-rank-change { align-items: flex-end; text-align: right; }
.stock-rank-change strong { color: var(--stock-red); }
.stock-radar-row small { color: #707b72; font-size: 9px; }
.stock-radar-row h4 { display: inline; margin: 0 9px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 18px; font-weight: 600; }
.stock-radar-row > div > small { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.stock-radar-row > div > div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.stock-radar-row > div > div span { padding: 3px 6px; border: 1px solid #a8b2a8; color: #566159; font-size: 8px; }
.stock-radar-row > div > div .stock-condition-tag { border-color: var(--stock-red); color: var(--stock-red); font-weight: 700; }
.stock-radar-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.stock-radar-metrics div { min-width: 0; display: flex; flex-direction: column; gap: 6px; padding: 4px 15px; border-left: 1px solid #b7c0b7; }
.stock-radar-metrics dd { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.stock-radar-metrics small { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.stock-radar-empty { min-height: 152px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.stock-radar-empty strong { font-family: "Songti SC", "STSong", serif; font-size: 22px; font-weight: 600; }
.stock-radar-empty p { margin: 10px 0 0; color: #68736b; font-size: 11px; }
.stock-screener > footer { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid #abb5ab; }
.stock-screener > footer a { color: #35483c; font-size: 10px; font-weight: 700; text-decoration: none; }
.stock-screener > footer a span { margin-left: 5px; color: var(--stock-blue); }
.stock-screener-sources { display: flex; gap: 18px; }
.stock-screener > footer p { margin: 0; color: #667168; font-size: 9px; }
.stock-screener > footer time { color: #727d74; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; }
.stock-structure { background: #e6eaeb; border-top: 1px solid #c1c9ca; border-bottom: 1px solid #c1c9ca; }
.stock-structure-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 68px; }
.stock-signal-ledger > h3,
.stock-asset-ledger > h3 { margin: 0; padding-bottom: 17px; border-bottom: 2px solid #202622; font-size: 11px; }
.stock-signal-row,
.stock-asset-row { min-height: 82px; display: grid; grid-template-columns: minmax(0, 1fr) 140px; gap: 20px; align-items: center; border-bottom: 1px solid #b5bec0; }
.stock-signal-row > div,
.stock-asset-row > div { display: grid; gap: 5px; }
.stock-signal-row strong,
.stock-asset-row strong { font-family: "Songti SC", "STSong", serif; font-size: 17px; font-weight: 600; }
.stock-signal-row small,
.stock-asset-row small { color: #758086; font-size: 9px; }
.stock-signal-row > p,
.stock-asset-row > p { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: baseline; margin: 0; text-align: right; }
.stock-signal-row > p span,
.stock-asset-row > p span { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; font-weight: 750; }
.stock-signal-row > p small,
.stock-asset-row > p small { color: #717d82; font-size: 9px; }
.stock-questions { background: #f2f3ef; }
.stock-question-list { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 0; border-top: 2px solid #202622; border-bottom: 1px solid #aeb6b0; list-style: none; }
.stock-question-list li { min-height: 148px; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 18px; align-items: start; padding: 25px 28px 27px 0; }
.stock-question-list li:nth-child(even) { padding-left: 28px; border-left: 1px solid #c3cac4; }
.stock-question-list li:nth-child(-n + 2) { border-bottom: 1px solid #c3cac4; }
.stock-question-list li > span { color: var(--stock-blue); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.stock-question-list h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 20px; font-weight: 600; }
.stock-question-list h3 + p { margin: 10px 0 0; color: #657068; font-size: 11px; line-height: 1.7; }
.stock-plan { background: #ece9e2; border-top: 1px solid #cec8bd; }
.stock-plan-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr); gap: 72px; }
.stock-condition-list { border-top: 2px solid #202622; }
.stock-condition-list article { min-height: 126px; display: grid; grid-template-columns: 46px minmax(210px, 0.8fr) minmax(250px, 1.2fr); gap: 23px; align-items: center; border-bottom: 1px solid #c6c0b5; }
.stock-condition-list article > p,
.stock-condition-list article > div > span { margin: 0; color: var(--stock-amber); font-size: 9px; font-weight: 750; }
.stock-condition-list h3 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 17px; font-weight: 600; line-height: 1.55; }
.stock-condition-list article > div { padding-left: 23px; border-left: 1px solid #d1cbc0; }
.stock-condition-list article > div p { margin: 8px 0 0; color: #5d665f; font-size: 11px; line-height: 1.7; }
.stock-risk-checks { align-self: start; margin: 0; padding: 0; border: 0; border-top: 2px solid #202622; }
.stock-risk-checks legend { width: 100%; padding: 17px 0; border-bottom: 1px solid #c6c0b5; font-size: 11px; font-weight: 750; }
.stock-risk-checks label { min-height: 66px; display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 15px; align-items: center; border-bottom: 1px solid #c6c0b5; color: #4f5952; cursor: pointer; font-size: 12px; }
.stock-risk-checks input { width: 18px; height: 18px; margin: 0; accent-color: #202622; }
.stock-review { background: #f2f3ef; }
.stock-review-table-wrap { overflow-x: auto; border-top: 2px solid #202622; }
.stock-review-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.stock-review-table th,
.stock-review-table td { height: 68px; padding: 10px 18px; border-bottom: 1px solid #c3cac4; text-align: right; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }
.stock-review-table thead th { height: 48px; color: #727d75; font-size: 9px; font-weight: 650; }
.stock-review-table th:first-child { padding-left: 0; text-align: left; }
.stock-review-table th:first-child strong { display: block; color: #303833; font-family: "Songti SC", "STSong", serif; font-size: 15px; font-weight: 600; }
.stock-review-table th:first-child small { display: block; margin-top: 4px; color: #879189; font-size: 8px; }
.stock-review-table td:last-child { min-width: 170px; }
.stock-review-table td:last-child > small { display: inline-block; min-width: 34px; color: #6f7a72; }
.stock-range { width: 94px; height: 4px; display: inline-block; position: relative; margin-right: 10px; background: #cbd1cc; vertical-align: middle; }
.stock-range i { position: absolute; top: -3px; left: clamp(0%, var(--position), 100%); width: 2px; height: 10px; background: var(--stock-blue); }
.stock-review-questions { background: #e6eaeb; border-top: 1px solid #c1c9ca; }
.stock-review-question-list { margin: 0; padding: 0; border-top: 2px solid #202622; list-style: none; }
.stock-review-question-list li { min-height: 76px; display: grid; grid-template-columns: 52px minmax(0, 1fr); align-items: center; border-bottom: 1px solid #b9c2c3; }
.stock-review-question-list span { color: var(--stock-blue); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.stock-review-question-list p { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 18px; }
.stock-sources { background: #202622; color: #edf0ea; }
.stock-sources-inner { display: grid; grid-template-columns: 178px minmax(0, 1fr); gap: 38px; }
.stock-sources h2 { margin: 16px 0 0; font-family: "Songti SC", "STSong", serif; font-size: 28px; font-weight: 600; }
.stock-sources-inner > div { border-top: 1px solid #68736b; }
.stock-sources-inner > div a { min-height: 68px; display: grid; grid-template-columns: minmax(0, 1fr) 26px; gap: 18px; align-items: center; border-bottom: 1px solid #48524b; color: inherit; font-size: 12px; text-decoration: none; }
.stock-sources-inner > div a strong { color: #c8a461; text-align: right; }
.stock-sources-inner > p { grid-column: 2; margin: -18px 0 0; color: #8f9a92; font-size: 10px; }
.stock-data-empty { margin: 0; padding: 28px 0; color: #78827a; font-size: 11px; text-align: center; }

/* Fiction catalog */
.home-novels { background: #ddd8ce; border-top: 1px solid #c8c0b4; border-bottom: 1px solid #c8c0b4; }
.home-novels-inner { width: min(var(--max), calc(100% - 56px)); min-height: 520px; display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 90px; align-items: center; margin: 0 auto; padding: 76px 0; }
.home-novels-copy { max-width: 720px; }
.home-novels-status { margin: 32px 0 0; color: var(--cinnabar); font-size: 11px; font-weight: 750; }
.home-novels h2 { margin: 8px 0 22px; font-family: "Songti SC", "STSong", serif; font-size: 50px; font-weight: 600; line-height: 1.2; }
.home-novels h3 { margin: 0 0 15px; font-family: "Songti SC", "STSong", serif; font-size: 25px; font-weight: 600; }
.home-novels-copy > p:not(.section-index, .home-novels-status) { max-width: 650px; margin: 0; color: #596159; }
.home-novels-copy > a { display: inline-flex; gap: 16px; margin-top: 28px; padding-bottom: 5px; border-bottom: 1px solid #7d7469; font-weight: 700; text-decoration: none; }
.home-novels-copy > a:hover, .home-novels-copy > a:focus-visible { color: var(--cinnabar); border-bottom-color: var(--cinnabar); }
.home-novels-cover { width: 180px; justify-self: end; padding: 10px; background: #f8f6f0; box-shadow: 0 22px 45px rgba(48, 39, 30, 0.18); transition: transform 180ms ease, box-shadow 180ms ease; }
.home-novels-cover img { width: 100%; display: block; aspect-ratio: 3 / 4; object-fit: cover; }
.home-novels-cover:hover, .home-novels-cover:focus-visible { transform: translateY(-5px) rotate(0.5deg); box-shadow: 0 28px 52px rgba(48, 39, 30, 0.23); }

.novels-page { background: #f3f1eb; }
.novels-hero { background: #e7e2d8; border-bottom: 1px solid #c9c1b5; }
.novels-hero-inner { width: min(1000px, calc(100% - 56px)); min-height: 520px; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr); gap: 88px; align-items: center; margin: 0 auto; padding: 92px 0 70px; }
.novels-hero .section-index { color: #8c443c; }
.novels-hero h1 { max-width: 640px; margin: 18px 0 20px; font-family: "Songti SC", "STSong", serif; font-size: 65px; font-weight: 600; line-height: 1.12; }
.novels-lead { max-width: 620px; margin: 0; color: #5d635e; font-size: 17px; }
.novels-author-note { padding: 25px 0 24px; border-top: 3px solid #8c443c; border-bottom: 1px solid #aaa197; }
.novels-author-note > p { margin: 0 0 26px; color: #8c443c; font-size: 10px; font-weight: 750; }
.novels-author-note blockquote { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 27px; line-height: 1.55; }
.novels-author-note small { display: block; margin-top: 24px; color: #71736f; font-size: 11px; }
.novels-catalog { width: min(1000px, calc(100% - 56px)); margin: 0 auto; padding: 96px 0 124px; }
.novels-catalog-heading { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 42px; margin-bottom: 54px; }
.novels-catalog-heading h2 { margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 42px; font-weight: 600; line-height: 1.25; }
.novels-catalog-heading div > p { margin: 12px 0 0; color: var(--muted); }
.novel-list { border-top: 1px solid var(--ink); }
.novel-feature { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 72px; padding: 58px 0 66px; border-bottom: 1px solid #c9cbc6; }
.novel-cover { width: 225px; align-self: start; padding: 9px; background: #fff; box-shadow: 0 18px 38px rgba(36, 31, 25, 0.17); transition: transform 180ms ease, box-shadow 180ms ease; }
.novel-cover img { width: 100%; display: block; aspect-ratio: 3 / 4; object-fit: cover; }
.novel-cover:hover, .novel-cover:focus-visible { transform: translateY(-4px); box-shadow: 0 24px 46px rgba(36, 31, 25, 0.22); }
.novel-order { margin: 0 0 8px; color: #8c443c; font-size: 10px; font-weight: 750; }
.novel-copy h3 { max-width: 640px; margin: 0; font-family: "Songti SC", "STSong", serif; font-size: 38px; font-weight: 600; line-height: 1.25; }
.novel-byline { margin: 9px 0 0; color: #777b75; font-size: 12px; }
.novel-summary { max-width: 650px; margin: 25px 0 0; color: #4f5751; line-height: 1.85; }
.novel-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 23px; }
.novel-tags span { padding: 4px 9px; border: 1px solid #bbb7ae; color: #676760; font-size: 10px; }
.novel-meta { display: grid; grid-template-columns: 0.7fr 0.7fr 1.6fr; margin: 28px 0 0; border-top: 1px solid #c5c6c0; border-bottom: 1px solid #c5c6c0; }
.novel-meta div { min-width: 0; padding: 14px 16px 15px 0; }
.novel-meta div + div { padding-left: 16px; border-left: 1px solid #d3d3cd; }
.novel-meta dt { color: #858983; font-size: 9px; }
.novel-meta dd { margin: 3px 0 0; overflow: hidden; font-family: "Songti SC", "STSong", serif; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.novel-read-link { display: inline-flex; align-items: center; gap: 18px; margin-top: 30px; padding: 11px 18px; background: #202622; color: #f6f3eb; font-size: 13px; font-weight: 700; text-decoration: none; }
.novel-read-link:hover, .novel-read-link:focus-visible { background: #8c443c; }

@media (max-width: 900px) {
  .home-novels-inner { gap: 48px; }
  .novels-hero-inner { grid-template-columns: minmax(0, 1fr) 260px; gap: 48px; }
  .novel-feature { gap: 44px; }
}

@media (max-width: 620px) {
  .home-novels-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: minmax(0, 1fr) 112px; gap: 24px; padding: 62px 0 68px; }
  .home-novels h2 { margin-top: 7px; font-size: 35px; }
  .home-novels h3 { font-size: 20px; }
  .home-novels-copy > p:not(.section-index, .home-novels-status) { font-size: 13px; }
  .home-novels-status { margin-top: 23px; }
  .home-novels-cover { width: 112px; padding: 6px; }
  .novels-hero-inner { width: calc(100% - 32px); min-height: 0; grid-template-columns: 1fr; gap: 44px; padding: 56px 0 52px; }
  .novels-hero h1 { font-size: 44px; }
  .novels-lead { font-size: 14px; }
  .novels-author-note blockquote { font-size: 23px; }
  .novels-catalog { width: calc(100% - 32px); padding: 66px 0 82px; }
  .novels-catalog-heading { grid-template-columns: 1fr; gap: 12px; margin-bottom: 36px; }
  .novels-catalog-heading h2 { font-size: 32px; }
  .novel-feature { grid-template-columns: 116px minmax(0, 1fr); gap: 22px; padding: 36px 0 44px; }
  .novel-cover { width: 116px; padding: 5px; }
  .novel-copy h3 { font-size: 26px; }
  .novel-summary { grid-column: 1 / -1; margin-top: 20px; }
  .novel-tags, .novel-meta, .novel-read-link { grid-column: 1 / -1; }
  .novel-meta { grid-template-columns: 1fr; }
  .novel-meta div, .novel-meta div + div { padding: 11px 0; border-top: 1px solid #d3d3cd; border-left: 0; }
  .novel-meta div:first-child { border-top: 0; }
  .novel-meta dd { white-space: normal; }
}

@media (max-width: 900px) {
  .stock-hero-inner,
  .stock-section-inner { width: calc(100% - 40px); }
  .stock-hero-inner { grid-template-columns: minmax(0, 1fr) 320px; gap: 48px; }
  .stock-tape { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stock-tape-item:nth-child(4) { border-left: 0; }
  .stock-tape-item:nth-child(n + 4) { border-top: 1px solid #c5cbc6; }
  .stock-structure-grid { gap: 38px; }
  .stock-screener > header { grid-template-columns: 210px minmax(0, 1fr); }
  .stock-screener > header dl div { padding-right: 18px; padding-left: 18px; }
  .stock-radar-row { grid-template-columns: 62px minmax(150px, 0.8fr) minmax(390px, 2fr) 105px; gap: 14px; }
  .stock-radar-metrics div { padding-right: 9px; padding-left: 9px; }
  .stock-radar-metrics dd { font-size: 12px; }
  .stock-plan-grid { gap: 42px; }
  .stock-condition-list article { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; padding: 22px 0; }
  .stock-condition-list article > div { grid-column: 2; padding: 13px 0 0; border-top: 1px solid #d1cbc0; border-left: 0; }
}

@media (max-width: 620px) {
  .stock-page .views-subnav { width: calc(100% - 32px); display: flex; gap: 20px; overflow-x: auto; }
  .stock-page .views-subnav a { flex: 0 0 auto; }
  .stock-hero-inner,
  .stock-section-inner { width: calc(100% - 32px); }
  .stock-hero-inner { min-height: 0; grid-template-columns: 1fr; gap: 38px; padding: 52px 0 44px; }
  .stock-hero h1 { font-size: 43px; }
  .stock-hero h1 + p { font-size: 13px; }
  .stock-session-ledger div { min-height: 86px; }
  .stock-session-ledger dd { font-size: 19px; }
  .stock-mode-bar { min-height: 68px; padding: 0 16px; }
  .stock-mode-switch { width: 100%; }
  .stock-mode-switch button { min-width: 0; }
  .stock-mode-bar > p { display: none; }
  .stock-section-inner { padding: 64px 0 74px; }
  .stock-section-heading { grid-template-columns: 1fr; gap: 13px; margin-bottom: 34px; }
  .stock-section-heading h2 { font-size: 31px; }
  .stock-call { grid-template-columns: 1fr auto; gap: 16px; padding: 22px 0 24px; }
  .stock-call > p { grid-column: 1; }
  .stock-call > div { grid-column: 1 / -1; grid-row: 2; padding: 18px 0 0; border-top: 1px solid #ccd1cd; border-right: 0; border-left: 0; }
  .stock-call h3 { font-size: 21px; }
  .stock-call > time { grid-column: 2; grid-row: 1; }
  .stock-tape { grid-template-columns: 1fr 1fr; }
  .stock-tape-item:nth-child(3),
  .stock-tape-item:nth-child(5) { border-left: 0; }
  .stock-tape-item:nth-child(n + 3) { border-top: 1px solid #c5cbc6; }
  .stock-tape-item:nth-child(4) { border-left: 1px solid #c5cbc6; }
  .stock-tape-item { min-height: 137px; padding: 15px 12px 17px; }
  .stock-tape-item > strong { font-size: 19px; }
  .stock-tape-item > p { align-items: flex-start; flex-direction: column; gap: 5px; }
  .stock-screener > header { grid-template-columns: 1fr; }
  .stock-screener > header > div:first-child { min-height: 90px; padding-right: 0; }
  .stock-screener > header dl { min-height: 94px; border-top: 1px solid #abb5ab; border-left: 0; }
  .stock-screener > header dl div { gap: 8px; padding: 17px 10px; }
  .stock-screener > header dl div:first-child { padding-left: 0; }
  .stock-screener > header dl div:last-child { padding-right: 0; }
  .stock-screener > header dd { font-size: 17px; }
  .stock-radar-row { min-height: 0; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 14px; padding: 22px 0; }
  .stock-radar-metrics { grid-column: 1 / -1; grid-row: 2; }
  .stock-radar-metrics div { gap: 5px; padding: 12px 8px 0; }
  .stock-radar-metrics div:first-child { padding-left: 0; border-left: 0; }
  .stock-radar-metrics div:last-child { padding-right: 0; }
  .stock-radar-metrics dd { font-size: 11px; }
  .stock-radar-metrics dt,
  .stock-radar-metrics small { font-size: 8px; }
  .stock-rank-change { grid-column: 3; grid-row: 1; }
  .stock-radar-row > p:first-child span { font-size: 18px; }
  .stock-radar-row > p strong { font-size: 15px; }
  .stock-radar-row h4 { display: block; margin: 0 0 4px; font-size: 16px; }
  .stock-radar-empty { min-height: 142px; padding: 20px; }
  .stock-screener > footer { min-height: 74px; flex-wrap: wrap; gap: 8px 18px; padding: 12px 0; }
  .stock-screener > footer p { order: 3; width: 100%; }
  .stock-structure-grid { grid-template-columns: 1fr; gap: 44px; }
  .stock-signal-row,
  .stock-asset-row { grid-template-columns: minmax(0, 1fr) 118px; }
  .stock-signal-row > p,
  .stock-asset-row > p { gap: 7px; }
  .stock-question-list { grid-template-columns: 1fr; }
  .stock-question-list li,
  .stock-question-list li:nth-child(even) { min-height: 0; padding: 24px 0 27px; border-bottom: 1px solid #c3cac4; border-left: 0; }
  .stock-plan-grid { grid-template-columns: 1fr; gap: 44px; }
  .stock-condition-list article { min-height: 0; }
  .stock-risk-checks label { min-height: 62px; }
  .stock-review-table-wrap { width: 100%; overflow: visible; }
  .stock-review-table { min-width: 0; display: block; }
  .stock-review-table thead { display: none; }
  .stock-review-table tbody { display: block; }
  .stock-review-table tr { min-height: 112px; display: grid; grid-template-columns: minmax(112px, 1fr) 72px 72px; grid-template-rows: 1fr 1fr; align-items: center; border-bottom: 1px solid #c3cac4; }
  .stock-review-table th,
  .stock-review-table td { height: auto; min-width: 0; padding: 9px 8px; border-bottom: 0; font-size: 10px; }
  .stock-review-table th:first-child { grid-column: 1; grid-row: 1 / 3; padding-left: 0; }
  .stock-review-table td::before { display: block; margin-bottom: 4px; color: #89928c; font-family: system-ui, sans-serif; font-size: 7px; font-weight: 500; content: attr(data-label); }
  .stock-review-table td:nth-of-type(1) { grid-column: 2; grid-row: 1; }
  .stock-review-table td:nth-of-type(2) { grid-column: 3; grid-row: 1; }
  .stock-review-table td:nth-of-type(3) { grid-column: 2; grid-row: 2; }
  .stock-review-table td:nth-of-type(4) { min-width: 0; grid-column: 3; grid-row: 2; }
  .stock-review-table td:last-child { min-width: 0; }
  .stock-review-table td:last-child > small { min-width: 0; }
  .stock-review-table .stock-range { display: none; }
  .stock-review-question-list li { grid-template-columns: 40px minmax(0, 1fr); }
  .stock-review-question-list p { font-size: 16px; }
  .stock-sources-inner { grid-template-columns: 1fr; gap: 28px; }
  .stock-sources-inner > p { grid-column: auto; margin: -8px 0 0; }
}
