
    /* Basic reset-ish */
    *,
    *::before,
    *::after {
      box-sizing: border-box;
    }

    html,
    body {
      margin: 0;
      padding: 0;
      background: #050505;
      color: #f5f5f5;
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      scroll-behavior: smooth;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    a:hover {
      text-decoration: underline;
    }

    /* Intro screen (email / letter-like) */
    
    

      .intro-screen {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2.5rem 1.5rem;
  background: radial-gradient(circle at top, #101010 0, #050505 55%);
}


    

    .intro-card {
      max-width: 38rem;
      width: 100%;
      background: #0d0d0d;
      border-radius: 1rem;
      box-shadow: 0 26px 60px rgba(0,0,0,0.7);
      border: 1px solid rgba(255,255,255,0.06);
      padding: 1.5rem 1.5rem 1.25rem;
    }

    .intro-header {
      font-size: 0.8rem;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
      border-bottom: 1px solid rgba(255,255,255,0.08);
      padding-bottom: 0.7rem;
      margin-bottom: 1.1rem;
      opacity: 0.9;
    }

    .intro-header-row {
      display: flex;
      gap: 0.75rem;
      margin-bottom: 0.2rem;
    }

    .intro-header-label {
      min-width: 3.2rem;
      opacity: 0.6;
    }

    .intro-body {
      font-size: 0.98rem;
      line-height: 1.7;
    }

    .intro-body p {
      margin: 0 0 0.9rem;
    }

    .intro-body p:last-child {
      margin-bottom: 0;
    }

    .intro-signoff {
      margin-top: 1.2rem;
      font-size: 0.95rem;
      opacity: 0.9;
    }

    .intro-button-row {
      display: flex;
      justify-content: flex-end;
      margin-top: 1.3rem;
    }

    .intro-button {
      border: 1px solid rgba(255,255,255,0.22);
      background: linear-gradient(to bottom right, #1c1c1c, #101010);
      border-radius: 999px;
      padding: 0.45rem 1.3rem;
      font-size: 0.85rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: #f5f5f5;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 0.4rem;
      transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
    }

    .intro-button span {
      font-size: 0.85rem;
    }

    .intro-button:hover {
      transform: translateY(-1px);
      border-color: rgba(255,255,255,0.45);
      box-shadow: 0 12px 30px rgba(0,0,0,0.7);
    }

    .intro-button:active {
      transform: translateY(0);
      box-shadow: none;
    }

    @media (max-width: 600px) {
      .intro-card {
        padding: 1.2rem 1.1rem 1rem;
      }
    }

    /* Main site shell (appears after intro scroll) */

    .site-shell {
      border-top: 1px solid rgba(255,255,255,0.08);
    }

    /* Header & timeline */

    .site-header {
      padding: 1.5rem 1.75rem 0.75rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.06);
      background: #111;
      position: sticky;
      top: 0;
      z-index: 20;
    }

    .site-title h1 {
      font-size: 1.3rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      margin: 0;
    }

    .site-subtitle {
      margin: 0.15rem 0 0;
      font-size: 0.85rem;
      opacity: 0.7;
    }

    .timeline {
      margin-top: 1.1rem;
    }

    .timeline-caption {
      font-size: 0.7rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      opacity: 0.5;
      margin-bottom: 0.35rem;
    }

    .timeline-scale {
      display: flex;
      justify-content: space-between;
      font-size: 0.65rem;
      opacity: 0.5;
      margin-bottom: 0.25rem;
    }

    .timeline-track-wrapper {
      overflow-x: auto;
      padding-bottom: 0.35rem;
    }

    .timeline-track {
      position: relative;
      min-width: 420px;
      height: 2.1rem;
      border-radius: 999px;
      background: radial-gradient(circle at top, #222 0, #181818 60%);
    }

    .timeline-track::before {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      top: 50%;
      height: 1px;
      background: linear-gradient(to right, transparent, rgba(255,255,255,0.25), transparent);
      pointer-events: none;
    }

    .timeline-marker {
      position: absolute;
      top: 0;
      transform: translateX(-50%);
      background: none;
      border: none;
      padding: 0.15rem 0.25rem 0.25rem;
      cursor: pointer;
      font: inherit;
      color: inherit;
      text-align: center;
    }

    .timeline-marker:focus-visible {
      outline: 1px solid rgba(255,255,255,0.8);
      outline-offset: 2px;
    }

    .timeline-dot {
      width: 7px;
      height: 7px;
      border-radius: 999px;
      background: #f5f5f5;
      margin: 0.25rem auto 0;
      box-shadow: 0 0 0 4px rgba(255,255,255,0.12);
    }

    .timeline-marker.active .timeline-dot {
      box-shadow: 0 0 0 6px rgba(255,255,255,0.26);
    }

    .timeline-label {
      display: none;
      font-size: 0.62rem;
      margin-top: 0.1rem;
      white-space: nowrap;
      opacity: 0.85;
    }

    @media (min-width: 720px) {
      .timeline-label {
        display: block;
      }
    }

    /* Layout: poems + note panel */

    .layout {
      display: grid;
      grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.3fr);
      gap: 1.75rem;
      padding: 1.75rem;
      min-height: calc(100vh - 112px);
    }

    .content-column {
      max-width: 40rem;
      margin: 0 auto;
    }

    section {
      margin-bottom: 2.25rem;
    }

    .section-label {
      font-size: 0.75rem;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      opacity: 0.6;
      margin: 0 0 0.35rem;
    }

    /* Poems */

    .poems-list {
      display: flex;
      flex-direction: column;
      gap: 2.25rem;
    }

    .poem-block {
  display: none;              /* hide all poems by default */
  scroll-margin-top: 6.5rem;  /* keep this if you like */
}

.poem-block.active {
  display: block;             /* only the active poem is shown */
}


    .poem-header-main {
      margin-bottom: 0.35rem;
    }

    .poem-meta-main {
      font-size: 0.82rem;
      text-transform: uppercase;
      letter-spacing: 0.14em;
      opacity: 0.7;
      margin: 0 0 0.15rem;
    }

    .poem-title {
      font-family: Georgia, "Times New Roman", serif;
      font-weight: 400;
      font-size: 1.5rem;
      margin: 0;
    }

    .poem-subtitle {
      margin: 0.3rem 0 0.75rem;
      font-size: 0.85rem;
      opacity: 0.7;
    }

    .poem-body {
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.05rem;
      line-height: 1.9;
    }

   .poem-line {
  margin: 0;              /* remove margins so they don't collapse */
  padding: 0.35rem 0;     /* normal vertical spacing */
}


.poem-line.gloss {
  padding-top: 0.1rem;    /* tighter gap from original line */
  padding-bottom: 0.6rem; /* bigger gap before next pair */
  font-size: 0.98rem;     /* optional: a touch smaller */
  opacity: 0.9;           /* optional: slightly softer */
}


    /* Note references */

    .note-ref {
      position: relative;
      cursor: pointer;
      font-size: 0.7em;
      vertical-align: super;
      padding: 0 0.1em;
      opacity: 0.8;
      transition: opacity 0.15s ease, transform 0.15s ease;
    }

    .note-ref::after {
      content: attr(data-note-id);
      display: none;
    }

    .note-ref:hover,
    .note-ref:focus-visible {
      opacity: 1;
      transform: translateY(-1px);
    }

    .note-ref.active {
      opacity: 1;
      text-decoration: underline;
      text-decoration-style: dotted;
    }

    /* Note panel */

    .note-panel {
      border-left: 1px solid rgba(255, 255, 255, 0.06);
      padding-left: 1.5rem;
      display: flex;
      align-items: flex-start;
    }

    .note-panel-inner {
      position: sticky;
      top: 1.5rem;
      padding: 1rem 1rem 1.2rem;
      background: radial-gradient(circle at top, #222 0, #151515 55%);
      border-radius: 0.9rem;
      box-shadow: 0 18px 35px rgba(0, 0, 0, 0.45);
      min-height: 6rem;
    }

    .note-panel-header {
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      margin-bottom: 0.6rem;
    }

    .note-label {
      font-size: 0.8rem;
      text-transform: uppercase;
      letter-spacing: 0.16em;
      opacity: 0.6;
    }

    .note-id {
      font-size: 0.8rem;
      opacity: 0.6;
    }

    .note-body {
      font-size: 0.9rem;
      line-height: 1.6;
    }

    .note-placeholder {
      opacity: 0.6;
    }

    /* Hidden notes source */

    .notes-source {
      display: none;
    }

    /* Footer */

    .site-footer {
      border-top: 1px solid rgba(255, 255, 255, 0.06);
      padding: 0.9rem 1.75rem 1.3rem;
      font-size: 0.8rem;
      opacity: 0.6;
    }

    /* Responsive */

    @media (max-width: 960px) {
      .layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.25rem;
      }

      .note-panel {
        border-left: none;
        border-top: 1px solid rgba(255, 255, 255, 0.06);
        padding-left: 0;
        padding-top: 1.25rem;
        margin-top: 1.5rem;
      }

      .note-panel-inner {
        position: static;
        width: 100%;
      }
    }

    @media (max-width: 600px) {
      .site-header,
      .layout,
      .site-footer {
        padding-left: 1.1rem;
        padding-right: 1.1rem;
      }

      .poem-title {
        font-size: 1.3rem;
      }

      .poem-body {
        font-size: 1rem;
      }
    }
  
/* Appended SPA-2 styles */

.poem-container {
  min-height: 8rem;
}

.poem-placeholder {
  opacity: 0.65;
  font-size: 0.95rem;
  font-style: italic;
}

/* timeline ticks (optional future use) */
.timeline-track {
  position: relative;
}

.timeline-tick {
  position: absolute;
  top: 50%;
  width: 1px;
  height: 12px;
  background: rgba(255,255,255,0.25);
  transform: translate(-50%, -50%);
}

/* ensure intro covers full screen initially on top */
.intro-screen {
  position: fixed;
  inset: 0;
  z-index: 9999;
}

/* Mobile timeline fix — make timeline scroll horizontally instead of squashing */
@media (max-width: 600px) {

  /* Make the track horizontally scrollable */
  .timeline-track-wrapper {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
  }

  /* The track needs to expand to fit markers laid out horizontally */
  .timeline-track {
    height: auto;
    min-height: 2.1rem; /* keep the dot size */
    width: max-content; /* allows auto expansion */
    padding: 0.4rem 0.4rem 0.6rem;
    background: radial-gradient(circle at top, #222 0, #181818 60%);
  }

  /* Let markers flow horizontally instead of being absolutely placed */
  .timeline-marker {
    position: static !important;   /* remove absolute positioning */
    display: inline-block;         /* horizontal list */
    transform: none !important;
    margin-right: 1rem;            /* spacing */
    text-align: center;
    white-space: nowrap;
  }

  /* Hide ticks—they don't render well on cramped screens */
  .timeline-tick {
    display: none;
  }

  /* Always show labels on mobile (otherwise you have dots only) */
  .timeline-label {
    display: block !important;
    font-size: 0.7rem;
    margin-top: 0.25rem;
  }
}

