/* Pages — page-specific layouts and content styles
   Hero, post content, rules list, markdown extensions. */

/* Hero section — .hero / .hero-label / .hero-desc 见 shared.css
   写作子站保留专属的 .hero-heading（字号与主站不同） */
.hero-heading {
  font-family: var(--sans);
  font-weight: 200;
  font-size: min(8vw, 14vh);
  line-height: .94;
  letter-spacing: -.025em;
  color: var(--ink);
}

/* Homepage hero — unified full-width container */
.home-hero-split {
  background: var(--paper);
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 80vh;
  margin-bottom: var(--sp-10);
  position: relative;
  overflow: hidden;
}

.home-hero-split canvas.ascii-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  opacity: .4;
}

.hero-content {
  grid-column: 1;
  color: var(--ink);
  padding: var(--sp-10) var(--sp-8);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}

/* .split-left-content / .split-left-footer 见 shared.css
   .rules-list / .rule-item / .rule-num / .rule-body 见 shared.css */

@media (max-width: 768px) {
  .home-hero-split {
    grid-template-columns: 1fr;
  }

  .hero-content {
    padding: var(--sp-8) var(--sp-6);
    min-height: 50vh;
  }
}

/* .hero h1 / .hero .lead 见 shared.css */

/* Post page */
.post-layout {
  max-width: 900px;
  margin: 0 auto;
}

.post-header {
  padding: var(--sp-10) 0 var(--sp-5);
  border-bottom: 1px solid var(--ink);
  margin-bottom: var(--sp-8);
}

.post-header h1 {
  font-size: min(4vw, 7vh);
  margin-bottom: var(--sp-5);
}

.post-header .post-meta {
  display: flex;
  gap: var(--sp-6);
  align-items: center;
  flex-wrap: wrap;
  margin-top: var(--sp-6);
}

.post-content h2 {
  font-size: min(2.2vw, 3.6vh);
  font-weight: 200;
  margin-top: var(--sp-9);
  margin-bottom: var(--sp-6);
}

.post-content h3 {
  font-size: 1.15rem;
  font-weight: 400;
  margin-top: var(--sp-8);
  margin-bottom: var(--sp-5);
}

.post-content p {
  margin-bottom: var(--sp-6);
}

.post-content img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto var(--sp-6);
}

.post-content p:has(img) {
  max-width: none;
  text-align: center;
}

.post-content ul,
.post-content ol {
  margin-bottom: var(--sp-6);
  padding-left: var(--sp-7);
}

.post-content li {
  margin-bottom: var(--sp-3);
}

.post-content .task-list-item {
  list-style: none;
}

.post-content .task-list-item::marker {
  display: none;
  content: "";
}

.post-content .task-list-item .task-list-item-checkbox {
  margin-right: var(--sp-3);
}

.post-content pre {
  margin-bottom: var(--sp-6);
  overflow-x: auto;
  background: var(--grey-1);
  padding: var(--sp-6);
  font-size: 0.85rem;
}

.post-content code {
  font-size: 0.85em;
  font-family: var(--mono);
  background-color: var(--grey-1);
  padding: 2px 6px;
  border-radius: 4px;
}

.post-content blockquote {
  border-left: 2px solid var(--ink);
  padding-left: var(--sp-6);
  margin-bottom: var(--sp-6);
  color: var(--grey-3);
  font-style: italic;
}

/* Footnotes separator */
.post-content .footnotes-sep {
  margin: var(--sp-8) 0;
  border: none;
  border-top: 1px solid var(--grey-2);
}

/* Footnote reference anchor - scroll padding for centered view */
.post-content [id^="fnref"] {
  scroll-margin-top: 50vh;
}

/* Post sidebar — fixed, top adjusts on scroll */
.post-sidebar {
  position: fixed;
  right: var(--sp-7);
  width: 220px;
  z-index: 10;
  max-height: calc(100vh - var(--sp-6) * 2 - 1.4rem - var(--sp-8));
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.post-sidebar::-webkit-scrollbar {
  display: none;
}

.post-sidebar:hover,
.post-sidebar:focus-within {
  scrollbar-width: thin;
  scrollbar-color: var(--grey-2) transparent;
}

.post-sidebar:hover::-webkit-scrollbar,
.post-sidebar:focus-within::-webkit-scrollbar {
  display: block;
  width: 6px;
}

.post-sidebar:hover::-webkit-scrollbar-thumb,
.post-sidebar:focus-within::-webkit-scrollbar-thumb {
  background-color: var(--grey-2);
  border-radius: 3px;
}

/* Keyboard keys */
.post-content kbd {
  display: inline-block;
  padding: 0.1em 0.5em;
  font-family: var(--mono);
  font-size: 0.8em;
  line-height: 1.4;
  color: var(--ink);
  background: var(--grey-1);
  border: 1px solid var(--grey-2);
  vertical-align: baseline;
}

/* Definition lists */
.post-content dl {
  margin-bottom: var(--sp-7);
}

.post-content dt {
  font-weight: 600;
  font-size: 0.95rem;
  margin-bottom: var(--sp-3);
}

.post-content dd {
  margin-left: var(--sp-7);
  margin-bottom: var(--sp-5);
  color: var(--grey-3);
}

.post-content dd::before {
  content: "";
  display: block;
  width: 24px;
  border-top: 1px solid var(--grey-2);
  margin-bottom: var(--sp-4);
}

/* Abbreviations */
.post-content abbr {
  text-decoration: underline dotted var(--grey-3);
  cursor: help;
}

/* Details/Summary */
.post-content details {
  border: 1px solid var(--grey-2);
  padding: var(--sp-5) var(--sp-6);
  margin-bottom: var(--sp-7);
  background: var(--grey-1);
}

.post-content summary {
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  user-select: none;
}

.post-content details[open] summary {
  margin-bottom: var(--sp-5);
  padding-bottom: var(--sp-4);
  border-bottom: 1px solid var(--grey-2);
}

/* Responsive */
@media (max-width: 1200px) {
  .post-sidebar {
    display: none;
  }
}
