/* EDIT THE DESIGN IN THIS FILE. Change these colors first. */
:root {
  --paper: #f1efe7;
  --ink: #171714;
  --accent: #dfff00;
  --line: rgba(23, 23, 20, 0.28);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
}
a { color: inherit; text-decoration: none; }
small, .number, .tag, .status, nav, .footer-line {
  font-family: "Courier New", monospace;
  font-size: 11px;
  text-transform: uppercase;
}

.header {
  position: absolute;
  z-index: 2;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 22px 28px;
  border-bottom: 1px solid var(--line);
}
.logo { font-weight: 700; letter-spacing: -1px; }
.logo span { margin-left: 4px; padding: 3px 5px; color: var(--paper); background: var(--ink); }
nav { display: flex; gap: 35px; }
nav a:hover { text-decoration: underline; }

.hero {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 100px 28px 30px;
  overflow: hidden;
}
.hero-note {
  display: flex;
  justify-content: space-between;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ink);
  font: 10px "Courier New", monospace;
  text-transform: uppercase;
}

/* The large title: vw makes it scale with the screen width. */
.hero h1 {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin: auto 0 5vh;
  font-size: min(17vw, 30vh);
  font-weight: 700;
  line-height: 0.76;
  letter-spacing: -0.09em;
  white-space: nowrap;
}
.outline {
  color: transparent;
  -webkit-text-stroke: max(2px, 0.012em) var(--ink);
}
.hero-bottom {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
}
.hero-bottom p {
  max-width: 650px;
  margin: 0;
  font-size: clamp(24px, 2.7vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.04em;
}
.hero-bottom a { font: 11px "Courier New", monospace; text-transform: uppercase; }

.status {
  display: flex;
  gap: 16px;
  align-items: center;
  min-height: 48px;
  padding: 0 28px;
  color: var(--paper);
  background: var(--ink);
}
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }

.section { padding: 120px 28px; }
.section-title {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  gap: 28px;
  margin-bottom: 70px;
}
.section-title h2 {
  margin: 0;
  font-size: clamp(56px, 7vw, 110px);
  line-height: 0.85;
  letter-spacing: -0.07em;
}
.section-title p { max-width: 320px; margin: 0; line-height: 1.5; }

.study-section { background: #dedbd0; }
.study-intro {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 20px;
  padding: 14px 0;
  border-top: 1px solid var(--ink);
  font: 10px "Courier New", monospace;
  text-transform: uppercase;
}
.study-intro p { margin: 0; }
.lessons { border-top: 1px solid var(--ink); }
.lesson { border-bottom: 1px solid var(--ink); }
.lesson summary {
  display: grid;
  grid-template-columns: 55px 2fr 1fr 25px;
  gap: 20px;
  align-items: center;
  min-height: 115px;
  cursor: pointer;
  list-style: none;
}
.lesson summary::-webkit-details-marker { display: none; }
.lesson summary > span {
  font: 10px "Courier New", monospace;
  text-transform: uppercase;
}
.lesson summary h3 {
  margin: 0;
  font-size: clamp(30px, 4vw, 64px);
  letter-spacing: -0.055em;
}
.lesson .plus {
  font-size: 22px;
  text-align: right;
  transition: transform 180ms ease;
}
.lesson[open] .plus { transform: rotate(45deg); }
.lesson-body {
  display: grid;
  grid-template-columns: 2fr 1fr 1.2fr;
  gap: 40px;
  margin-left: 55px;
  padding: 12px 0 55px;
}
.lesson-body > div { border-top: 1px solid var(--line); padding-top: 14px; }
.lesson-body p { max-width: 620px; font-size: 18px; line-height: 1.5; }
.lesson-body ol { margin: 22px 0 0; padding-left: 20px; }
.lesson-body li { margin-bottom: 10px; line-height: 1.35; }
pre {
  margin: 30px 0 0;
  padding: 20px;
  overflow-x: auto;
  color: var(--paper);
  background: var(--ink);
  font: 14px/1.6 "Courier New", monospace;
}

.projects { border-top: 1px solid var(--ink); }
.project {
  display: grid;
  grid-template-columns: 1fr 3fr;
  min-height: 360px;
  padding: 28px 0;
  border-bottom: 1px solid var(--ink);
}
.project > div { max-width: 850px; }
.project h3 {
  margin: 35px 0 22px;
  font-size: clamp(58px, 8vw, 125px);
  line-height: 0.8;
  letter-spacing: -0.07em;
}
.project p { max-width: 600px; font-size: 20px; line-height: 1.4; }
.tag { display: inline-block; margin: 25px 4px 0 0; padding: 7px 10px; border: 1px solid; border-radius: 50px; }

.dark { color: var(--paper); background: var(--ink); }
.archive { border-top: 1px solid rgba(241, 239, 231, 0.6); }
.row {
  display: grid;
  grid-template-columns: 1fr 2fr 1.2fr;
  align-items: center;
  min-height: 95px;
  border-bottom: 1px solid rgba(241, 239, 231, 0.25);
}
.row strong { font-size: clamp(24px, 3vw, 44px); letter-spacing: -0.04em; }
.row span { font: 10px "Courier New", monospace; text-transform: uppercase; }

.people { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid; border-left: 1px solid; }
.person { min-height: 210px; display: flex; flex-direction: column; justify-content: end; padding: 20px; border-right: 1px solid; border-bottom: 1px solid; }
.person:hover { background: var(--accent); }
.person h3 { margin: 0 0 8px; font-size: clamp(25px, 3vw, 45px); letter-spacing: -0.05em; }
.person p { margin: 0; font: 10px "Courier New", monospace; text-transform: uppercase; }

.about { padding: 80px 28px 130px; }
.about p { max-width: 1400px; margin: 100px 0 0; font-size: clamp(48px, 7vw, 110px); line-height: 0.94; letter-spacing: -0.065em; }

footer { padding: 90px 28px 28px; background: var(--accent); }
.contact { display: inline-block; margin-top: 12px; font-size: clamp(55px, 11vw, 180px); font-weight: 700; line-height: 0.9; letter-spacing: -0.075em; border-bottom: 6px solid; }
.footer-line { display: grid; grid-template-columns: 2fr 1fr auto; gap: 20px; margin-top: 100px; padding-top: 18px; border-top: 1px solid; }

/* STUDY INDEX + FULL CURRICULUM PAGES */
.solid-header { position: absolute; background: var(--paper); }
.solid-header [aria-current="page"] { text-decoration: underline; text-underline-offset: 5px; }
.home-study { background: #dedbd0; }
.home-java { background: #b9dcf2; }
.study-link {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 30px 0;
  border-top: 1px solid;
  border-bottom: 1px solid;
  font-size: clamp(20px, 3vw, 45px);
  letter-spacing: -0.04em;
}
.study-link strong { white-space: nowrap; }
.study-page { padding: 150px 28px 100px; }
.study-hero { min-height: 65vh; display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: 60px; }
.study-hero h1 {
  max-width: 1300px;
  margin: 30px 0;
  font-size: clamp(65px, 10vw, 165px);
  line-height: 0.82;
  letter-spacing: -0.075em;
}
.study-hero > p { max-width: 700px; margin: 0; font-size: clamp(19px, 2vw, 30px); line-height: 1.35; }
.study-cards { border-top: 1px solid; }
.study-card {
  display: grid;
  grid-template-columns: 55px 1.5fr 1fr auto;
  gap: 30px;
  align-items: center;
  min-height: 145px;
  border-bottom: 1px solid;
  transition: padding 180ms ease, background 180ms ease;
}
.study-card:hover { padding: 0 18px; background: var(--accent); }
.study-card > span, .study-card > strong { font: 10px "Courier New", monospace; text-transform: uppercase; }
.study-card h2 { margin: 0; font-size: clamp(32px, 4.5vw, 72px); letter-spacing: -0.06em; }
.study-card p { max-width: 440px; line-height: 1.45; }
.study-card strong { white-space: nowrap; }
.course-section { padding-top: 70px; }
.course-heading {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  gap: 28px;
  align-items: start;
  padding-bottom: 45px;
}
.course-heading h2 {
  margin: 0;
  font-size: clamp(44px, 6vw, 95px);
  line-height: 0.88;
  letter-spacing: -0.065em;
}
.course-heading p { max-width: 360px; margin: 0; line-height: 1.45; }
.advanced-course { margin-top: 110px; }
.advanced-course .course-heading small {
  display: inline-block;
  width: max-content;
  padding: 7px 10px;
  color: var(--ink);
  background: var(--accent);
}
.advanced-lesson-hero > p:first-of-type { color: #65635d; }
.java-course { margin-top: 110px; }
.java-course .course-heading small {
  display: inline-block;
  width: max-content;
  padding: 7px 10px;
  color: var(--ink);
  background: #8fd0ff;
}
.java-course .study-card:hover { background: #8fd0ff; }
.java-lesson-hero > p:first-of-type { color: #386680; }
.study-hub { padding: 150px 28px 80px; }
.study-hub-hero {
  min-height: 55vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 60px;
}
.study-hub-hero h1 {
  margin: 25px 0;
  font-size: clamp(68px, 11vw, 180px);
  line-height: 0.83;
  letter-spacing: -0.08em;
}
.study-hub-hero p { max-width: 650px; margin: 0; font-size: clamp(18px, 2vw, 29px); line-height: 1.4; }
.language-choices { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid; }
.language-choice {
  min-height: 540px;
  display: flex;
  flex-direction: column;
  padding: 28px;
}
.language-choice + .language-choice { border-left: 1px solid; }
.language-choice > span,
.language-choice > strong { font: 10px "Courier New", monospace; text-transform: uppercase; }
.language-choice h2 {
  margin: auto 0 30px;
  font-size: clamp(65px, 9vw, 145px);
  line-height: 0.75;
  letter-spacing: -0.075em;
}
.language-choice p { max-width: 360px; margin: 0 0 35px; font-size: 18px; line-height: 1.4; }
.language-choice strong { padding-top: 18px; border-top: 1px solid; }
.python-choice:hover { background: var(--accent); }
.java-choice:hover { background: #8fd0ff; }
.java-study-page .study-hero { border-bottom: 8px solid #8fd0ff; }

.lesson-page { padding: 135px 28px 80px; }
.lesson-hero { padding: 60px 0 85px; border-bottom: 1px solid; }
.lesson-hero > a, .lesson-hero > p:first-of-type {
  font: 10px "Courier New", monospace;
  text-transform: uppercase;
}
.lesson-hero > a { display: inline-block; margin-bottom: 75px; }
.lesson-hero h1 {
  max-width: 1300px;
  margin: 25px 0;
  font-size: clamp(65px, 10vw, 165px);
  line-height: 0.83;
  letter-spacing: -0.075em;
}
.lesson-hero > p:last-child { max-width: 700px; margin: 0; font-size: clamp(19px, 2vw, 30px); line-height: 1.35; }
.lesson-content {
  width: min(100%, 940px);
  margin: 0 auto;
  padding: 85px 0 120px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 18px;
  line-height: 1.65;
}
.lesson-content > h1:first-child { display: none; }
.lesson-content h1, .lesson-content h2 {
  margin: 90px 0 25px;
  font-size: clamp(44px, 6vw, 82px);
  line-height: 0.95;
  letter-spacing: -0.06em;
}
.lesson-content h3 { margin: 65px 0 20px; font-size: clamp(30px, 4vw, 50px); line-height: 1; letter-spacing: -0.045em; }
.lesson-content h4 { margin: 45px 0 15px; font-size: 25px; letter-spacing: -0.03em; }
.lesson-content p { margin: 0 0 19px; }
.lesson-content ul, .lesson-content ol { margin: 0 0 28px; padding-left: 28px; }
.lesson-content li { margin-bottom: 9px; }
.lesson-content strong { font-weight: 700; }
.lesson-content blockquote { margin: 30px 0; padding: 20px 25px; border-left: 4px solid var(--accent); background: #dedbd0; }
.lesson-content table { width: 100%; margin: 35px 0; border-collapse: collapse; font-size: 15px; }
.lesson-content td, .lesson-content th { padding: 12px; border: 1px solid var(--ink); text-align: left; vertical-align: top; }
.lesson-content img { display: block; max-width: 100%; height: auto; margin: 35px auto; }
.lesson-content a { text-decoration: underline; text-underline-offset: 3px; }
.lesson-content .code-panel {
  margin: 28px 0;
  padding: 22px 24px;
  overflow-x: auto;
  color: var(--paper);
  background: var(--ink);
  border-radius: 3px;
  font: 15px/1.55 "Courier New", monospace;
  white-space: pre-wrap;
}
.lesson-content .code-panel + .code-panel { margin-top: -20px; }
.lesson-content .code-panel p,
.lesson-content .code-panel ul,
.lesson-content .code-panel ol,
.lesson-content .code-panel table { margin: 0 0 8px; }
.lesson-content .code-panel p:last-child,
.lesson-content .code-panel ul:last-child,
.lesson-content .code-panel ol:last-child,
.lesson-content .code-panel table:last-child { margin-bottom: 0; }
.lesson-content .code-panel ul,
.lesson-content .code-panel ol { padding-left: 25px; }
.lesson-content .code-panel td,
.lesson-content .code-panel th { border-color: rgba(241, 239, 231, 0.45); }
.lesson-content .code-panel strong { color: var(--accent); }
.lesson-pagination {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
  padding-top: 25px;
  border-top: 1px solid;
}
.lesson-pagination a { font-size: clamp(20px, 2.5vw, 36px); letter-spacing: -0.04em; }
.lesson-pagination a:last-child { text-align: right; }
.lesson-pagination span { display: block; margin-bottom: 9px; font: 9px "Courier New", monospace; text-transform: uppercase; }

@media (max-width: 700px) {
  .header, .hero, .section, .about, footer { padding-left: 16px; padding-right: 16px; }
  nav { gap: 15px; }
  nav a:nth-child(n + 3) { display: none; }
  .hero h1 {
    flex-direction: column;
    justify-content: center;
    font-size: 31vw;
    line-height: 0.72;
  }
  .hero h1 span:last-child { align-self: flex-end; }
  .hero-bottom { display: block; }
  .hero-bottom a { display: inline-block; margin-top: 25px; }
  .status span:last-child { display: none; }
  .section { padding-top: 85px; padding-bottom: 85px; }
  .section-title { grid-template-columns: 1fr; gap: 22px; }
  .study-intro { grid-template-columns: 1fr 1fr; }
  .study-intro p:last-child { display: none; }
  .lesson summary { grid-template-columns: 35px 1fr 20px; min-height: 95px; gap: 10px; }
  .lesson summary > span:nth-of-type(2) { display: none; }
  .lesson-body { grid-template-columns: 1fr; margin-left: 35px; gap: 25px; }
  .project { grid-template-columns: 42px 1fr; min-height: 420px; }
  .row { grid-template-columns: 55px 1fr; }
  .row span:last-child { display: none; }
  .people { grid-template-columns: repeat(2, 1fr); }
  .person { min-height: 170px; }
  .footer-line { grid-template-columns: 1fr 1fr; }
  .study-link { display: block; }
  .study-link strong { display: block; margin-top: 30px; }
  .study-page, .lesson-page { padding-left: 16px; padding-right: 16px; }
  .study-card { grid-template-columns: 35px 1fr 20px; gap: 10px; min-height: 115px; }
  .study-card p { display: none; }
  .study-card strong { font-size: 0; }
  .study-card strong::after { content: "→"; font-size: 18px; }
  .course-heading { grid-template-columns: 1fr; gap: 18px; }
  .advanced-course { margin-top: 75px; }
  .java-course { margin-top: 75px; }
  .lesson-hero > a { margin-bottom: 55px; }
  .lesson-content { padding-top: 55px; font-size: 17px; }
  .lesson-content h1, .lesson-content h2 { margin-top: 65px; }
  .lesson-pagination { grid-template-columns: 1fr; }
  .lesson-pagination a:last-child { text-align: left; }
  .study-hub { padding-left: 16px; padding-right: 16px; }
  .language-choices { grid-template-columns: 1fr; }
  .language-choice { min-height: 390px; }
  .language-choice + .language-choice { border-left: 0; border-top: 1px solid; }
}

/* Four additional language courses */
.home-cpp { background: #f3c19e; }
.home-sql { background: #cfc6ef; }
.home-javascript { background: #f0dc73; }
.home-csharp { background: #b9dfc2; }

.language-choice:nth-child(odd) { border-left: 0; }
.language-choice:nth-child(n + 3) { border-top: 1px solid; }
.cpp-choice:hover { background: #f3a86f; }
.sql-choice:hover { background: #b9a9ed; }
.javascript-choice:hover { background: #f0d13f; }
.csharp-choice:hover { background: #8ed0a0; }

.cpp-study-page .study-hero { border-bottom: 8px solid #f3a86f; }
.sql-study-page .study-hero { border-bottom: 8px solid #b9a9ed; }
.javascript-study-page .study-hero { border-bottom: 8px solid #f0d13f; }
.csharp-study-page .study-hero { border-bottom: 8px solid #8ed0a0; }

.cpp-course .course-heading small,
.sql-course .course-heading small,
.javascript-course .course-heading small,
.csharp-course .course-heading small {
  display: inline-block;
  width: max-content;
  padding: 7px 10px;
  color: var(--ink);
}
.cpp-course .course-heading small { background: #f3a86f; }
.sql-course .course-heading small { background: #b9a9ed; }
.javascript-course .course-heading small { background: #f0d13f; }
.csharp-course .course-heading small { background: #8ed0a0; }
.cpp-course .study-card:hover { background: #f3a86f; }
.sql-course .study-card:hover { background: #b9a9ed; }
.javascript-course .study-card:hover { background: #f0d13f; }
.csharp-course .study-card:hover { background: #8ed0a0; }

.authored-course-page .lesson-content { width: min(100%, 1040px); }
.chapter-roadmap,
.assignment-section,
.chapter-project,
.key-terms {
  margin: 70px 0;
  padding: 30px;
  border: 1px solid var(--ink);
}
.chapter-roadmap h2,
.assignment-section h2,
.chapter-project h2,
.key-terms h2 { margin-top: 0; }
.authored-concept { margin: 100px 0; }
.concept-number,
.panel-label {
  font: 10px "Courier New", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.authored-concept .concept-number,
.chapter-project .concept-number { margin-bottom: 14px; }
.practice-box {
  margin: 28px 0;
  padding: 20px 22px;
  border-left: 4px solid var(--ink);
  background: #dedbd0;
}
.practice-box h3 { margin: 0 0 10px; font-size: 24px; }
.lesson-content .authored-code-panel { padding: 0; white-space: normal; }
.authored-code-panel .panel-label {
  display: block;
  padding: 13px 22px;
  color: var(--ink);
  background: var(--accent);
}
.authored-code-panel pre {
  margin: 0;
  padding: 20px 22px 24px;
  overflow-x: auto;
  color: var(--paper);
  font: 15px/1.55 "Courier New", monospace;
  white-space: pre-wrap;
}
.curriculum-assignments { padding-left: 0 !important; list-style: none; }
.curriculum-assignments li { padding: 26px 0; border-top: 1px solid var(--ink); }
.curriculum-assignments li:last-child { border-bottom: 1px solid var(--ink); }
.curriculum-assignments strong {
  display: inline-block;
  margin-bottom: 10px;
  font: 12px "Courier New", monospace;
}
.key-terms ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; list-style: none; }
.key-terms li { margin: 0; padding: 8px 10px; border: 1px solid var(--ink); font: 12px "Courier New", monospace; }

@media (max-width: 700px) {
  .language-choice:nth-child(odd) { border-left: 0; }
  .language-choice:nth-child(n + 2) { border-top: 1px solid; }
  .chapter-roadmap,
  .assignment-section,
  .chapter-project,
  .key-terms { padding: 20px; }
}

/* Games and Extended Archives */
.collection-page { padding: 145px 28px 100px; }
.collection-hero {
  min-height: 64vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 40px 0 60px;
  border-bottom: 8px solid var(--ink);
}
.collection-hero h1 {
  max-width: 1300px;
  margin: 28px 0;
  font-size: clamp(70px, 11vw, 175px);
  line-height: 0.8;
  letter-spacing: -0.08em;
}
.collection-hero > p { max-width: 720px; margin: 0; font-size: clamp(19px, 2vw, 30px); line-height: 1.35; }
.games-hero { border-color: #ff795f; }
.extended-hero { border-color: #79b7ff; }
.page-jump { display: flex; gap: 12px; margin-top: 35px; }
.page-jump a { padding: 10px 13px; border: 1px solid; font: 11px "Courier New", monospace; text-transform: uppercase; }
.page-jump a:hover { color: var(--paper); background: var(--ink); }

.games-list {
  min-height: 380px;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 28px;
  align-items: end;
  margin-top: 70px;
  padding: 28px;
  border: 1px solid;
}
.games-list h2 { margin: 25px 0 0; font-size: clamp(60px, 10vw, 150px); line-height: 0.8; letter-spacing: -0.075em; }
.games-list > p { max-width: 480px; margin: 0; font-size: 18px; line-height: 1.5; }

.archive-category,
.bulletin-section { padding: 100px 0 20px; }
.archive-category-heading { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 28px; padding-bottom: 45px; }
.archive-category-heading h2 { margin: 0; font-size: clamp(55px, 8vw, 125px); line-height: 0.82; letter-spacing: -0.07em; }
.archive-category-heading p { max-width: 390px; margin: 0; font-size: 17px; line-height: 1.5; }
.math-shelves { border-top: 1px solid; }
.math-shelf { border-bottom: 1px solid; }
.math-shelf summary {
  min-height: 120px;
  display: grid;
  grid-template-columns: 50px 1.5fr 1fr;
  gap: 20px;
  align-items: center;
  cursor: pointer;
  list-style: none;
}
.math-shelf summary::-webkit-details-marker { display: none; }
.math-shelf summary::after { content: "+"; grid-column: 4; font: 24px "Courier New", monospace; }
.math-shelf[open] summary::after { content: "−"; }
.math-shelf summary span,
.math-shelf summary em { font: 10px "Courier New", monospace; text-transform: uppercase; }
.math-shelf summary strong { font-size: clamp(34px, 4vw, 65px); letter-spacing: -0.055em; }
.math-shelf summary em { font-style: normal; line-height: 1.5; }
.math-shelf > div { max-width: 850px; margin-left: 70px; padding: 0 0 38px; font-size: 17px; line-height: 1.55; }
.math-shelf > div ul { padding-left: 20px; }
.bulletin-section { margin-top: 80px; border-top: 8px solid #79b7ff; }
.bulletin-grid { display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid; }
.bulletin-post { min-height: 360px; display: flex; flex-direction: column; padding: 27px; border-bottom: 1px solid; }
.bulletin-post:nth-child(odd) { border-right: 1px solid; }
.bulletin-post:nth-last-child(-n + 2) { border-bottom: 0; }
.bulletin-post.featured { background: #79b7ff; }
.bulletin-post h3 { margin: auto 0 22px; font-size: clamp(38px, 5vw, 70px); line-height: 0.88; letter-spacing: -0.06em; }
.bulletin-post p { max-width: 580px; margin: 0 0 28px; font-size: 17px; line-height: 1.5; }
.bulletin-post > span { width: max-content; padding: 7px 9px; border: 1px solid; font: 10px "Courier New", monospace; text-transform: uppercase; }

@media (max-width: 700px) {
  .collection-page { padding: 120px 16px 70px; }
  .collection-hero { min-height: 55vh; }
  .bulletin-grid { grid-template-columns: 1fr; }
  .bulletin-post,
  .bulletin-post:nth-child(odd),
  .bulletin-post:nth-last-child(-n + 2) { grid-column: auto; border-right: 0; border-bottom: 1px solid; }
  .bulletin-post:last-child { border-bottom: 0; }
  .games-list { grid-template-columns: 1fr; min-height: 320px; }
  .archive-category-heading { grid-template-columns: 1fr; }
  .math-shelf summary { grid-template-columns: 35px 1fr auto; gap: 10px; padding: 18px 0; }
  .math-shelf summary em { display: none; }
  .math-shelf summary::after { grid-column: 3; }
  .math-shelf > div { margin-left: 35px; padding-right: 12px; }
  .bulletin-section { margin-top: 45px; }
}
