/* Approved homepage design. */
  :root { --bg: #f7f5ef; --surface: #fffefa; --text: #293e3e; --muted: #647474; --line: #dce3dd; --accent: #326c6c; --accent-dark: #244f50; --soft: #e5eeea; --shadow: 0 5px 18px rgba(38, 70, 63, .04); }
  body { background: var(--bg); }
  .page { width: min(100% - 40px, 1080px); padding-top: 36px; }
  .intro { padding: clamp(24px, 4vw, 44px); grid-template-columns: minmax(0, 1fr) minmax(240px, 320px); gap: 36px; align-items: center; margin-bottom: 28px; background: #e5ece5; border: 1px solid #d6e0d7; border-radius: 20px; }
  .intro-copy { gap: 22px; }
  h1 { font-size: clamp(38px, 5vw, 56px); font-weight: 750; line-height: 1.07; letter-spacing: -1.8px; }
  .lead { font-size: clamp(18px, 1.9vw, 21px); line-height: 1.65; }
  .actions { gap: 10px; }
  .button { border-radius: 10px; font-weight: 650; font-size: 15px; box-shadow: none; }
  .button.secondary { background: #fffdf7; border-color: #b3c8c3; }
  .button:hover { background: var(--accent-dark); }
  .button.secondary:hover { background: var(--soft); }
  .hero-portrait { position: static; margin: 0; width: 100%; }
  .hero-portrait-frame { border-radius: 14px; border: 5px solid #fffdf7; box-shadow: 0 8px 24px rgba(38, 70, 63, .09); }
  .hero-portrait figcaption { font-size: 12px; font-weight: 500; text-align: center; color: #536e69; }
  .info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 46px; align-items: start; }
  .info-panel { border-radius: 14px; padding: clamp(22px, 3vw, 32px); border-top: 3px solid #65918a; box-shadow: none; gap: 18px; height: 100%; }
  .info-panel h2 { font-size: 27px; line-height: 1.2; font-weight: 700; letter-spacing: -.6px; }
  .info-panel p { font-size: 17px; line-height: 1.7; }
  .info-links { gap: 12px; padding-top: 4px; }
  .text-link { font-size: 14px; line-height: 1.5; font-weight: 650; text-decoration-thickness: 1px; }
  .story { gap: 16px; }
  .story-title { padding-top: 28px; }
  .story-title h2 { font-size: 32px; font-weight: 700; letter-spacing: -.7px; }
  .story-title > p { font-size: 14px; font-weight: 500; }
  .interaction-note { font-size: 15px; font-weight: 400; margin-bottom: 6px; }
  .post { border-radius: 14px; box-shadow: var(--shadow); }
  .date { font-weight: 650; border-radius: 7px; }
  .description { font-size: 18px; line-height: 1.7; }
  .like-button, .comments-toggle, .comment-form button { border-radius: 9px; font-weight: 650; }
  @media (max-width: 900px) and (min-width: 761px) { .intro { grid-template-columns: minmax(0, 1fr) 260px; gap: 24px; padding: 28px; } h1 { font-size: 43px; } }
  @media (max-width: 760px) {
    .page { width: calc(100% - 24px); padding-top: 16px; }
    .intro { grid-template-columns: 1fr; gap: 22px; padding: 24px; }
    .intro-copy { display: grid; gap: 20px; }
    h1, .lead, .actions { order: initial; }
    h1 { font-size: clamp(30px, 7.6vw, 46px); letter-spacing: -1px; overflow-wrap: anywhere; }
    .hero-portrait { max-width: 420px; }
    .info-grid { grid-template-columns: 1fr; gap: 20px; margin-bottom: 32px; }
    .info-panel { padding: 24px; }
    .story { padding: 0 8px; }
  }
