     REFERENCE STRIP — oracy / literacy diagrams on click
     ============================================================ */
  .ref-strip{
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--dur-page) var(--ease-out-soft),
                border-color var(--dur-page) var(--ease-out-soft),
                padding var(--dur-page) var(--ease-out-soft);
    border-bottom: 1px solid transparent;
    padding: 0 0;
  }
  .ref-strip.open{
    max-height: 260px;
    border-bottom-color: var(--line);
    padding: 12px 0 16px;
  }
  .ref-panel{ display: none; }
  .ref-strip[data-active="oracy"] .ref-panel[data-panel="oracy"],
  .ref-strip[data-active="literacy"] .ref-panel[data-panel="literacy"]{ display: block; }
  .ref-label{
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--ink-faint);
    margin-bottom: 8px;
  }
  .ref-label b{ color: var(--ink-soft); font-weight: 600; }
  .ref-panel svg{
    width: 100%; height: 150px; display: block; overflow: visible;
  }

  .triad{
    position: relative;
    min-height: 0;
    overflow: hidden;
    padding: 8px 0;
  }
  .triad svg{
    width: 100%; height: 100%;
    display: block;
    overflow: visible;
  }

  .diagram-foot{
    border-top: 1px solid var(--line);
    padding-top: 12px;
    margin-top: 4px;
    display: flex; justify-content: space-between; gap: 16px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ink-soft);
    line-height: 1.5;
  }
  .diagram-foot b{ color: var(--ink); font-weight: 600; }
  .diagram-foot .right{ text-align: right; color: var(--ink); max-width: 60%; }

  /* ============================================================
     SVG — diagram styles
     ============================================================ */
  .node-ring{
    fill: var(--pitch-raised);
    stroke: var(--ink);
    stroke-width: 1.5;
  }
  .node-glyph{
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: 18px;
    fill: var(--ink);
    text-anchor: middle;
    dominant-baseline: central;
  }
  .node-label{
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: .22em;
    fill: var(--ink-soft);
    text-transform: uppercase;
  }

  .alg-core{
    fill: var(--pitch);
    stroke: var(--cool);
    stroke-width: 1.5;
    filter: url(#glow);
  }

  .alg-glyph{
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: 22px;
    fill: var(--cool);
    text-anchor: middle;
    dominant-baseline: central;
    filter: url(#glow);
  }

  .ringpulse{
    fill: none;
    stroke: var(--cool);
    stroke-width: 1;
    animation: ring 3s ease-out infinite;
  }
  @keyframes ring{
    0%   { r: 26; opacity: .7; }
    100% { r: 58; opacity: 0; }
  }

  .draw{
    stroke-dasharray: 600;
    stroke-dashoffset: 600;
    animation: drawIn 1.6s var(--ease-out-soft) forwards;
  }
  .draw.d2{ animation-delay: .25s; }
  .draw.d3{ animation-delay: 1.1s; }
  @keyframes drawIn{
    to{ stroke-dashoffset: 0; }
  }

  .particle{
    fill: var(--signal);
    filter: drop-shadow(0 0 6px rgba(255,89,69,.85));
  }
  .chip-bg{
    fill: var(--pitch-raised);
    stroke: var(--line-strong);
    stroke-width: 1;
  }


  @media (max-width: 720px){
    .diagram{ min-height: 320px; padding-top: 16px; }
    .diagram-head{ font-size: 9px; gap: 8px; padding-bottom: 8px; }
    .diagram-foot{ flex-direction: column; gap: 6px; padding-top: 10px; }
    .diagram-foot .right{ text-align: left; max-width: 100%; }
  }
