@charset "utf-8";
/* The Punctuation Guide - Page-Specific Styles (2026) */
/* Scope: front page layout, titles page structure, examples, and chart components. */

@media screen {
  /* ==========================================================================
     Landing Page (index.html)
     ========================================================================== */

  html#front-page {
    overflow: hidden;
  }

  html#front-page main {
    display: flex;
    justify-content: center;
  }

  nav#front-page-nav {
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
  }

  nav#front-page-nav section {
    width: 255px;
    min-width: 26%;
    margin: 1% 1% 1% 3%;
    background: var(--color-bg-light);
    border-radius: 8px;
    padding: 1.5em 1.5em 1em 1.5em;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
    transition: box-shadow var(--transition-fast);
  }

  nav#front-page-nav section:hover {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
  }

  #front-page-nav section > div:nth-child(2) {
    margin-left: 45px;
    padding-top: var(--spacing-md);
    color: var(--color-text-muted);
  }

  .other-matters div {
    margin-left: -40px;
  }

  /* Places punctuation glyph markers before front-page links. */
  nav#front-page-nav a::before {
    content: "";
    color: var(--color-text-muted);
    margin-left: -55px;
    margin-top: -3px;
    position: absolute;
    text-align: center;
    width: 50px;
  }

  nav#front-page-nav .period::before { content: "."; }
  nav#front-page-nav .question-mark::before { content: "?"; }
  nav#front-page-nav .exclamation-point::before { content: "!"; }
  nav#front-page-nav .comma::before { content: ","; }
  nav#front-page-nav .semicolon::before { content: ";"; }
  nav#front-page-nav .colon::before { content: ":"; }
  nav#front-page-nav .hyphen::before { content: "-"; }
  nav#front-page-nav .en-dash::before { content: "–"; }
  nav#front-page-nav .em-dash::before { content: "—"; }
  nav#front-page-nav .quotation-marks::before { content: "“”"; }
  nav#front-page-nav .ellipses::before { content: ".\00a0.\00a0."; }
  nav#front-page-nav .brackets::before { content: "[\00a0]"; }
  nav#front-page-nav .parentheses::before { content: "(\00a0)"; }
  nav#front-page-nav .apostrophe::before { content: "’"; }
  nav#front-page-nav .slash::before { content: "/"; }
  nav#front-page-nav .angle-brackets::before { content: "<\00a0>"; }
  nav#front-page-nav .braces::before { content: "{\00a0}"; }

  /* ==========================================================================
     Titles Of Works Page
     ========================================================================== */

  #titles-container {
    display: flex;
  }

  #titles-container h2 {
    background: var(--color-primary);
    margin-top: 0;
    margin-bottom: var(--spacing-sm);
    padding: var(--spacing-sm);
  }

  #titles-container div {
    margin-right: var(--spacing-sm);
    background: var(--color-bg-example);
    flex: 1;
  }

  #titles-container ul {
    padding: var(--spacing-sm) var(--spacing-sm);
    margin-bottom: var(--spacing-md);
  }

  #titles-container li {
    margin-bottom: var(--spacing-md);
  }

  /* ==========================================================================
     Example Blocks
     ========================================================================== */

  .example {
    position: relative;
    background: var(--color-bg-example);
    border-radius: 5px;
    padding-left: 1em;
    padding-right: 1em;
    padding-bottom: 1px;
  }

  div.example p {
    padding-left: .25em;
    padding-right: .25em;
  }

  div.example p:first-of-type {
    padding-top: 1.5em;
  }

  div.example p:last-of-type {
    margin-bottom: .5em;
  }

  div.example > span {
    position: absolute;
    display: block;
    background: var(--color-text-nav);
    color: white;
    border-radius: 0 0 5px 5px;
    padding: 1.5px 8px;
  }

  div.correct > span {
    background: #387E4E;
    color: white;
  }

  div.incorrect > span {
    background: #8A1B1D;
    color: white;
  }

  .erroneous-punctuation {
    color: #BC0003;
    position: relative;
    display: inline-block;
  }

  .erroneous-punctuation::before,
  .missing-punctuation::before {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid red;
    z-index: auto;
    top: 70%;
    transform: translate(-50%, -50%);
    animation: blink-light 2s infinite;
  }

  .erroneous-punctuation::after,
  .missing-punctuation::after {
    content: attr(data-content);
    position: relative;
    z-index: auto;
  }

  @keyframes blink-light {
    0% { opacity: .1; }
    50% { opacity: .2; }
    100% { opacity: .1; }
  }

  span.uncertain-punctuation {
    color: grey;
  }

  .explanation {
    color: grey;
    margin-top: -.5em;
  }

  .internal-example {
    color: #424242;
  }

  /* ==========================================================================
     Tables And Charts
     ========================================================================== */

  table {
    border-collapse: collapse;
  }

  td {
    vertical-align: top;
    border: 3px solid white;
    background: #E4E4E4;
  }

  th {
    background: var(--color-primary);
    border: 3px solid white;
    padding: var(--spacing-sm);
  }

  th.empty-cell {
    visibility: hidden;
  }

  .chart-rule {
    padding: 10px;
  }

  .chart-example {
    display: inline-block;
    margin: 5px;
    padding: 10px;
    background: #D0D0D0;
    border-radius: 5px;
  }

  .chart-rule-caption,
  .chart-example-caption {
    display: none;
  }

  .chart-break {
    display: none;
  }

  .end-of-sentence-row {
    display: none;
  }

  /* Title text classifications for <cite> and related inline labels. */
  .title-in-italics {
    font-style: italic;
  }

  .title-in-quotation-marks,
  .title-in-roman {
    font-style: normal;
  }
}
