:root {
  --ink: #20312e;
  --muted: #6a7771;
  --paper: #f6f3ed;
  --paper-deep: #ebe6dc;
  --card: #fffdf8;
  --line: #d8d8ca;
  --leaf: #2f6657;
  --leaf-dark: #204d43;
  --coral: #d87e5d;
  --sun: #e7b85a;
  --serif: Georgia, "Times New Roman", serif;
  --sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  line-height: 1.65;
}
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .2em; }
a:hover { color: var(--coral); }
img, svg { display: block; max-width: 100%; }
.wrap { width: min(1120px, calc(100% - 40px)); margin: 0 auto; }
.site-header {
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
  padding: 28px 0 22px; border-bottom: 1px solid var(--line);
}
.brand { display: inline-flex; flex-direction: column; gap: 0; color: var(--leaf-dark); text-decoration: none; font-weight: 750; letter-spacing: -.02em; line-height: 1.15; }
.brand strong { font-size: 1.3rem; }
.brand small { color: var(--muted); font-size: .72rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.nav { display: flex; gap: 22px; align-items: center; color: var(--muted); font-size: .9rem; }
.nav a { text-decoration: none; }
.nav .pill { border: 1px solid var(--leaf); border-radius: 999px; color: var(--leaf-dark); padding: 7px 14px; }
.nav .pill:hover { background: var(--leaf); color: #fff; }
.eyebrow { color: var(--coral); font-size: .76rem; font-weight: 750; letter-spacing: .15em; text-transform: uppercase; }
.hero { display: grid; grid-template-columns: 1.03fr .97fr; gap: 70px; align-items: center; padding: 74px 0 82px; }
.hero h1 { max-width: 680px; margin: 12px 0 20px; font: 500 clamp(2.8rem, 7vw, 5.8rem)/.98 var(--serif); letter-spacing: -.055em; }
.hero h1 em { color: var(--leaf); font-style: normal; }
.hero-copy { max-width: 530px; color: var(--muted); font-size: 1.08rem; }
.hero-copy .cn { color: var(--ink); display: block; font-size: 1.2rem; margin-bottom: 4px; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 30px; }
.button { background: var(--leaf-dark); border-radius: 999px; color: #fff; display: inline-block; font-size: .9rem; font-weight: 700; padding: 12px 20px; text-decoration: none; }
.button:hover { background: var(--coral); color: #fff; }
.text-link { color: var(--leaf-dark); font-size: .9rem; font-weight: 700; }
.hero-art { background: var(--paper-deep); border-radius: 24px; box-shadow: 18px 18px 0 rgba(47,102,87,.12); overflow: hidden; transform: rotate(1.2deg); }
.hero-art img { height: auto; width: 100%; }
.section { padding: 76px 0; }
.section.tint { background: var(--paper-deep); }
.section-head { align-items: end; display: flex; justify-content: space-between; gap: 25px; margin-bottom: 30px; }
.section h2 { font: 500 clamp(2rem, 4vw, 3.2rem)/1.05 var(--serif); letter-spacing: -.04em; margin: 8px 0 0; }
.section-intro { color: var(--muted); max-width: 480px; margin: 0; }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.post-card { background: var(--card); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.post-card:hover { box-shadow: 0 12px 30px rgba(32,49,46,.08); transform: translateY(-4px); }
.card-art { aspect-ratio: 1.6; background: var(--paper-deep); overflow: hidden; }
.card-art img { height: 100%; object-fit: cover; width: 100%; }
.card-art svg { height: 100%; width: 100%; transition: transform .35s ease; }
.post-card:hover .card-art svg { transform: scale(1.04); }
.card-body { padding: 20px 21px 22px; }
.meta { color: var(--muted); font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; }
.post-card h3 { font: 500 1.5rem/1.15 var(--serif); margin: 9px 0 7px; letter-spacing: -.025em; }
.post-card h3 span { color: var(--leaf); display: block; font: 600 .84rem/1.4 var(--sans); letter-spacing: 0; margin-top: 7px; }
.post-card p { color: var(--muted); font-size: .92rem; margin: 12px 0 18px; }
.read-more { color: var(--leaf-dark); font-size: .84rem; font-weight: 750; text-decoration: none; }
.latest-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 62px; }
.post-list { border-top: 1px solid var(--line); }
.post-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 25px; grid-template-columns: 105px 1fr auto; padding: 22px 0; text-decoration: none; }
.post-row time { color: var(--muted); font-size: .8rem; }
.post-row h3 { font: 500 1.3rem/1.2 var(--serif); margin: 0; }
.post-row h3 span { color: var(--muted); display: block; font: .78rem/1.5 var(--sans); margin-top: 5px; }
.post-row .arrow { color: var(--coral); font-size: 1.25rem; }
.note-box { background: var(--leaf-dark); border-radius: 18px; color: #eff7ed; padding: 30px; }
.note-box .eyebrow { color: #e7c87d; }
.note-box h3 { font: 500 2rem/1.1 var(--serif); margin: 12px 0; }
.note-box p { color: #d0e3d8; font-size: .92rem; margin-bottom: 0; }
.site-footer { border-top: 1px solid var(--line); color: var(--muted); font-size: .8rem; padding: 30px 0 44px; }
.footer-row { align-items: center; display: flex; justify-content: space-between; gap: 20px; }
.footer-links { display: flex; gap: 18px; }
.footer-links a { text-decoration: none; }
.page-intro { max-width: 730px; padding: 85px 0 50px; }
.page-intro h1 { font: 500 clamp(2.7rem, 7vw, 5.2rem)/1 var(--serif); letter-spacing: -.055em; margin: 12px 0 20px; }
.page-intro p { color: var(--muted); font-size: 1.08rem; max-width: 580px; }
.archive-list { border-top: 1px solid var(--line); margin-bottom: 75px; }
.archive-item { display: grid; grid-template-columns: 125px 1fr 80px; gap: 25px; border-bottom: 1px solid var(--line); padding: 28px 0; text-decoration: none; }
.archive-item time { color: var(--muted); font-size: .8rem; }
.archive-item h2 { font: 500 1.65rem/1.1 var(--serif); margin: 0; }
.archive-item h2 span { color: var(--leaf); display: block; font: 600 .84rem/1.5 var(--sans); margin-top: 7px; }
.archive-item p { color: var(--muted); font-size: .9rem; margin: 10px 0 0; }
.tag { color: var(--coral); font-size: .72rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.post-header { max-width: 800px; padding: 75px 0 32px; }
.post-header h1 { font: 500 clamp(2.8rem, 7vw, 5.4rem)/.98 var(--serif); letter-spacing: -.06em; margin: 14px 0 20px; }
.post-header h1 span { color: var(--leaf); display: block; font: 650 clamp(1rem, 2vw, 1.28rem)/1.4 var(--sans); letter-spacing: 0; margin-top: 14px; }
.post-dek { color: var(--muted); font-size: 1.1rem; max-width: 630px; }
.post-meta { color: var(--muted); font-size: .8rem; margin-top: 25px; }
.post-hero { background: var(--paper-deep); border-radius: 22px; margin: 20px 0 55px; overflow: hidden; }
.post-hero img, .post-hero svg { height: auto; margin: auto; width: 100%; }
.prose { margin: 0 auto 85px; max-width: 710px; }
.prose .lead { color: var(--leaf-dark); font: 500 1.38rem/1.45 var(--serif); margin-bottom: 34px; }
.prose h2 { font: 500 2rem/1.15 var(--serif); letter-spacing: -.03em; margin: 43px 0 12px; }
.prose h2 span { color: var(--muted); display: block; font: 650 .77rem/1.5 var(--sans); letter-spacing: .06em; margin-top: 4px; text-transform: uppercase; }
.prose p { color: #43534e; font-size: 1rem; margin: 0 0 20px; }
.prose blockquote { border-left: 3px solid var(--coral); color: var(--leaf-dark); font: italic 1.35rem/1.4 var(--serif); margin: 35px 0; padding: 4px 0 4px 25px; }
.bilingual { border-top: 1px solid var(--line); margin-top: 55px; padding-top: 24px; }
.bilingual p { color: var(--muted); font-size: .9rem; }
.about-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; margin-bottom: 90px; }
.about-card { background: var(--leaf-dark); border-radius: 20px; color: #eff7ed; padding: 32px; align-self: start; }
.about-card h2 { font: 500 2.3rem/1 var(--serif); margin: 12px 0 15px; }
.about-card p { color: #d0e3d8; font-size: .9rem; }
.prose.no-margin { margin-bottom: 20px; }
.not-found { min-height: 58vh; padding: 110px 0; }
.not-found h1 { font: 500 clamp(4rem, 14vw, 10rem)/.8 var(--serif); letter-spacing: -.08em; margin: 15px 0 30px; }
@media (max-width: 800px) {
  .wrap { width: min(100% - 30px, 640px); }
  .site-header { align-items: flex-start; flex-direction: column; gap: 18px; padding-top: 20px; }
  .nav { flex-wrap: wrap; gap: 13px 18px; }
  .hero { grid-template-columns: 1fr; gap: 38px; padding: 56px 0 65px; }
  .hero-art { max-width: 570px; }
  .feature-grid, .latest-grid, .about-grid { grid-template-columns: 1fr; gap: 30px; }
  .section { padding: 58px 0; }
  .section-head { align-items: flex-start; flex-direction: column; gap: 10px; }
  .post-row { grid-template-columns: 82px 1fr auto; gap: 12px; }
  .post-row h3 { font-size: 1.1rem; }
  .archive-item { grid-template-columns: 85px 1fr; gap: 12px; }
  .archive-item .tag { grid-column: 2; grid-row: 1; }
  .archive-item p { grid-column: 2; }
  .post-header { padding-top: 60px; }
  .post-hero { border-radius: 15px; margin-bottom: 38px; }
  .prose { margin-bottom: 60px; }
  .footer-row { align-items: flex-start; flex-direction: column; }
}
