    /* ── Nord palette ── */
    :root {
      --nord0:  #2e3440;
      --nord1:  #3b4252;
      --nord3:  #4c566a;
      --nord4:  #d8dee9;
      --nord5:  #e5e9f0;
      --nord6:  #eceff4;
      --nord8:  #88c0d0;
      --nord9:  #81a1c1;
      --nord10: #5e81ac;
      --nord13: #ebcb8b;
      --nord14: #a3be8c;
    }

    /* ── Light theme (default) ── */
    :root {
      --bg:             #f7f5f0;
      --bg-alt:         #eeeae3;
      --surface:        #ffffff;
      --surface-hover:  #f5f1ea;
      --border:         #ddd9d2;
      --text:           var(--nord0);
      --text-secondary: var(--nord3);
      --text-muted:     #5d6b7c; /* darkened from #7a8799 — passes WCAG AA at ~5.2:1 on --bg */
      --accent:         var(--nord10);
      --accent-gold:    var(--nord13);
      --accent-label:   #7a6120; /* darkened gold — passes WCAG AA at ~5.4:1 on --bg */
      --link-color:     var(--nord10);
      --link-bg:        var(--nord5);
      --link-hover-bg:  var(--nord13);
      --link-hover-fg:  var(--nord0);
      --cta-bg:         var(--nord10);
      --cta-color:      #ffffff;
      --cta-hover:      color-mix(in srgb, var(--nord10) 80%, #000000);
      --focus-ring:     var(--nord10);
      --shadow-sm:      0 1px 4px rgba(46,52,64,.07);
      --shadow-md:      0 4px 16px rgba(46,52,64,.10);
      --shadow-lg:      0 8px 32px rgba(46,52,64,.14);
      --radius:         12px;
      --radius-sm:       8px;
    }

    /* ── Dark theme ── */
    [data-theme="dark"] {
      --bg:             var(--nord0);
      --bg-alt:         var(--nord1);
      --surface:        rgba(236,239,244,.06);
      --surface-hover:  rgba(236,239,244,.10);
      --border:         rgba(236,239,244,.13);
      --text:           var(--nord6);
      --text-secondary: var(--nord4);
      --text-muted:     var(--nord9);
      --accent:         var(--nord9);
      --accent-gold:    var(--nord13);
      --accent-label:   var(--nord13);
      --link-color:     var(--nord13);
      --link-bg:        rgba(235,203,139,.15);
      --link-hover-bg:  var(--nord13);
      --link-hover-fg:  var(--nord0);
      --cta-bg:         var(--nord13);
      --cta-color:      var(--nord0);
      --cta-hover:      #d4a853;
      --focus-ring:     var(--nord6);
      --shadow-sm:      0 1px 4px rgba(0,0,0,.22);
      --shadow-md:      0 4px 16px rgba(0,0,0,.28);
      --shadow-lg:      0 8px 32px rgba(0,0,0,.40);
    }

    /* ── Reset ── */
    *, *::before, *::after { box-sizing: border-box; }

    /* ── Base ── */
    html {
      font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
      font-size: 1.125rem;
      line-height: 1.65;
      background: var(--bg);
      color: var(--text);
      scroll-behavior: smooth;
      -webkit-text-size-adjust: 100%;
    }

    body {
      margin: 0;
      padding: 0;
    }

    /* ── Typography ── */
    h1, h2 {
      font-family: 'Lora', Georgia, serif;
      font-weight: 400;
      line-height: 1.15;
      margin: 0 0 0.5em;
    }

    h2 {
      font-size: clamp(1.9rem, 4.5vw, 3rem);
      letter-spacing: -0.015em;
    }

    /* Page-title h2: used as the primary heading on about/resources/tools */
    h2.page-title {
      font-size: clamp(2.5rem, 6vw, 4rem);
      letter-spacing: -0.02em;
      margin-bottom: 0.4em;
    }

    h3 {
      font-family: 'DM Sans', system-ui, sans-serif;
      font-weight: 700;
      font-size: 1rem;
      line-height: 1.3;
      margin: 0 0 0.4em;
    }

    p { margin: 0 0 1em; }
    p:last-child { margin-bottom: 0; }

    ul { margin: 0; padding: 0; }

    /* ── Links ── */
    a {
      color: var(--link-color);
      background: var(--link-bg);
      text-decoration: none;
      font-weight: 600;
      border-radius: 4px;
      padding: 0.1em 0.3em;
      transition: background .18s ease, color .18s ease;
    }

    a:hover {
      background: var(--link-hover-bg);
      color: var(--link-hover-fg);
    }

    a:focus-visible {
      outline: 2px solid var(--focus-ring);
      outline-offset: 2px;
    }

    /* ── Skip link ── */
    .skip-link {
      position: absolute;
      top: -100%;
      left: 1rem;
      z-index: 200;
      padding: 0.5em 1em;
    }
    .skip-link:focus { top: 1rem; }

    /* ── Section label (eyebrow) ── */
    .label {
      display: inline-flex;
      align-items: center;
      gap: 0.5em;
      font-size: 0.75rem;
      font-weight: 700;
      letter-spacing: 0.13em;
      text-transform: uppercase;
      color: var(--accent-label);
      margin-bottom: 0.75rem;
    }

    .label::before {
      content: "";
      display: inline-block;
      width: 1.5em;
      height: 2px;
      background: var(--accent-gold);
      flex-shrink: 0;
    }

    /* ── Nav ── */
    .site-nav {
      position: sticky;
      top: 0;
      z-index: 100;
      background: var(--bg);
      background: color-mix(in srgb, var(--bg) 90%, transparent);
      border-bottom: 1px solid var(--border);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
    }

    .nav-inner {
      max-width: 1100px;
      margin: 0 auto;
      padding: 0.7rem 5%;
      display: flex;
      align-items: center;
      gap: 1.5rem;
    }

    .nav-logo {
      font-weight: 700;
      font-size: 0.9rem;
      color: var(--text);
      background: none;
      padding: 0;
      display: flex;
      align-items: center;
      gap: 0.45rem;
      white-space: nowrap;
      margin-right: auto;
      letter-spacing: -0.01em;
    }

    .nav-logo:hover { background: none; color: var(--accent); }

    .nav-logo svg {
      width: 1.5em;
      height: 1.5em;
      flex-shrink: 0;
    }

    .nav-links {
      list-style: none;
      display: flex;
      gap: 0.15rem;
    }

    .nav-links a {
      background: none;
      color: var(--text-secondary);
      font-weight: 500;
      font-size: 0.875rem;
      padding: 0.4em 0.65em;
      border-radius: 6px;
      white-space: nowrap;
      min-height: 44px;
      display: inline-flex;
      align-items: center;
    }

    .nav-links a:hover {
      background: var(--surface-hover);
      color: var(--text);
    }

    .nav-links a.nav-cta {
      background: var(--cta-bg);
      color: var(--cta-color);
      font-weight: 700;
    }

    .nav-links a.nav-cta:hover {
      background: var(--cta-hover);
      color: var(--cta-color);
    }

    .theme-btn {
      background: none;
      border: 1px solid var(--border);
      color: var(--text-secondary);
      cursor: pointer;
      border-radius: var(--radius-sm);
      padding: 0.4em;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 44px;
      height: 44px;
      flex-shrink: 0;
      transition: border-color .18s, color .18s, background .18s;
    }

    .theme-btn:hover {
      border-color: var(--accent);
      color: var(--text);
      background: var(--surface-hover);
    }

    .theme-btn:focus-visible {
      outline: 2px solid var(--focus-ring);
      outline-offset: 2px;
    }

    .theme-btn .icon-sun  { display: none; }
    .theme-btn .icon-moon { display: block; }
    [data-theme="dark"] .theme-btn .icon-sun  { display: block; }
    [data-theme="dark"] .theme-btn .icon-moon { display: none; }

    [data-theme="dark"] .nav-logo svg circle { fill: var(--nord9); }

    @media (max-width: 600px) {
      .nav-inner {
        flex-wrap: wrap;
        row-gap: 0;
        padding-bottom: 0;
      }
      .nav-links {
        order: 3;
        width: 100%;
        overflow-x: auto;
        scrollbar-width: none;
        padding: 0.4rem 0 0.5rem;
        border-top: 1px solid var(--border);
        gap: 0.25rem;
      }
      .nav-links::-webkit-scrollbar { display: none; }
      .nav-links a { white-space: nowrap; font-size: 0.8rem; }
    }

    /* ── Page wrapper ── */
    .page {
      max-width: 1100px;
      margin: 0 auto;
      padding: 0 5%;
      padding-left: max(5%, env(safe-area-inset-left));
      padding-right: max(5%, env(safe-area-inset-right));
    }

    /* ── Section spacing ── */
    .section {
      padding: 4rem 0;
    }

    .section + .section {
      border-top: 1px solid var(--border);
    }

    /* ── Buttons ── */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: 0.4em;
      font-family: 'DM Sans', system-ui, sans-serif;
      font-size: 1rem;
      font-weight: 700;
      padding: 0.75em 1.5em;
      border-radius: var(--radius-sm);
      text-decoration: none;
      background: none;
      color: var(--text);
      transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
    }

    .btn:hover { transform: translateY(-1px); }

    .btn-primary {
      background: var(--cta-bg);
      color: var(--cta-color);
      box-shadow: var(--shadow-sm);
    }

    .btn-primary:hover {
      background: var(--cta-hover);
      color: var(--cta-color);
      box-shadow: var(--shadow-md);
    }

    .btn-ghost {
      background: var(--surface);
      color: var(--text-secondary);
      border: 1px solid var(--border);
    }

    .btn-ghost:hover {
      background: var(--surface-hover);
      color: var(--text);
    }

    /* ── Hero ── */
    .hero {
      padding: 4rem 0 3.5rem;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 3.5rem;
      align-items: center;
    }

    .hero-photo {
      order: 2;
    }

    .hero-photo img {
      width: 100%;
      max-height: 520px;
      object-fit: cover;
      object-position: center 15%;
      border-radius: 16px;
      display: block;
      box-shadow: var(--shadow-lg);
    }

    .hero-text {
      order: 1;
    }

    .hero-name {
      font-size: clamp(2.75rem, 7vw, 5rem);
      font-weight: 600;
      letter-spacing: -0.025em;
      line-height: 1.0;
      margin-bottom: 0.15em;
      color: var(--text);
    }

    .hero-role {
      font-family: 'Lora', Georgia, serif;
      font-style: italic;
      font-weight: 400;
      font-size: 1.2rem;
      color: var(--text-muted);
      margin: 0 0 0.75rem;
      letter-spacing: 0;
    }

    .hero-mantra {
      font-family: 'Lora', Georgia, serif;
      font-weight: 600;
      font-style: italic;
      font-size: clamp(1.35rem, 2.6vw, 1.75rem);
      line-height: 1.25;
      color: var(--accent, var(--text));
      margin: 0 0 1rem;
      letter-spacing: 0.005em;
    }

    .hero-intro {
      color: var(--text-secondary);
      font-size: 1.25rem;
      line-height: 1.55;
      margin-bottom: 1.25rem;
    }

    .hero-intro strong {
      color: var(--text);
      font-weight: 700;
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem;
      align-items: center;
    }

    @media (max-width: 660px) {
      .hero {
        grid-template-columns: 1fr;
        gap: 2rem;
        padding-top: 2.5rem;
      }
      .hero-photo { order: 1; }
      .hero-text  { order: 2; }
      .hero-photo img {
        max-height: 340px;
        object-position: center 10%;
      }
    }

    /* ── Situation ── */
    .situation {
      background: transparent;
      border: none;
      border-left: 4px solid var(--accent-gold);
      border-radius: 0;
      padding: 0.25rem 0 0.25rem 2.25rem;
    }

    .situation h2 {
      font-size: clamp(2rem, 5vw, 3.5rem);
      letter-spacing: -0.02em;
      margin-bottom: 0.6em;
      max-width: 80%;
    }

    .situation-body {
      font-size: 1.05rem;
      color: var(--text-secondary);
      line-height: 1.75;
      max-width: 80%;
    }

    .situation-body strong { color: var(--text); }

    @media (max-width: 500px) {
      .situation { padding: 0.25rem 0 0.25rem 1.5rem; }
    }

    /* ── Services ── */
    .services-stack {
      display: flex;
      flex-direction: column;
      gap: 1.5rem;
      margin-top: 2rem;
    }

    .service-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-top-width: 3px;
      border-radius: var(--radius);
      padding: 2rem 2.25rem;
      box-shadow: var(--shadow-sm);
      transition: box-shadow .2s ease, transform .2s ease;
    }

    .service-card:hover {
      box-shadow: var(--shadow-md);
      transform: translateY(-2px);
    }

    .services-stack .service-card:nth-child(1) { border-top-color: var(--nord10); }
    .services-stack .service-card:nth-child(2) { border-top-color: var(--nord14); }
    .services-stack .service-card:nth-child(3) { border-top-color: var(--nord13); }

    .service-card {
      position: relative;
      overflow: hidden;
    }

    .services-stack .service-card:nth-child(1)::after { content: "01"; color: var(--nord10); }
    .services-stack .service-card:nth-child(2)::after { content: "02"; color: var(--nord14); }
    .services-stack .service-card:nth-child(3)::after { content: "03"; color: var(--nord13); }

    .services-stack .service-card::after {
      font-family: 'Lora', Georgia, serif;
      font-weight: 600;
      font-size: 7rem;
      line-height: 1;
      opacity: 0.07;
      position: absolute;
      top: 0.75rem;
      right: 1.5rem;
      pointer-events: none;
      user-select: none;
    }

    .service-card h3 {
      font-family: 'Lora', Georgia, serif;
      font-weight: 600;
      font-size: 1.5rem;
      line-height: 1.2;
      color: var(--text);
      margin-bottom: 0.5em;
    }

    .service-body {
      color: var(--text-secondary);
      font-size: 1.05rem;
      margin-bottom: 1em;
    }

    .service-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 0.4rem;
      margin: 1em 0;
    }

    .tag {
      font-size: 0.78rem;
      font-weight: 500;
      color: var(--text-secondary);
      background: var(--bg-alt);
      border: 1px solid var(--border);
      border-radius: 20px;
      padding: 0.2em 0.65em;
    }

    .service-examples {
      border-top: 1px solid var(--border);
      margin-top: 1.25em;
      padding-top: 1.25em;
    }

    .service-examples-label {
      font-size: 0.78rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.09em;
      color: var(--text-muted);
      margin-bottom: 0.6em;
    }

    .service-example {
      font-size: 0.9rem;
      color: var(--text-secondary);
      margin: 0;
      line-height: 1.55;
    }

    /* ── About ── */
    .about-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 3.5rem;
      align-items: start;
      margin-top: 2rem;
    }

    .about-text p {
      color: var(--text-secondary);
      margin-bottom: 1.1em;
    }

    .about-text p strong { color: var(--text); }

    .timeline {
      list-style: none;
      padding: 0;
      margin: 0;
    }

    .timeline-item {
      display: flex;
      gap: 1.1rem;
      margin-bottom: 1.4rem;
      align-items: flex-start;
    }

    .timeline-year {
      font-family: 'Lora', Georgia, serif;
      font-weight: 400;
      font-size: 0.85rem;
      color: var(--accent-label);
      white-space: nowrap;
      padding-top: 0.15em;
      min-width: 4.5em;
    }

    .timeline-text {
      font-size: 0.92rem;
      color: var(--text-secondary);
      line-height: 1.55;
    }

    .timeline-text strong {
      color: var(--text);
      font-weight: 700;
    }

    @media (max-width: 660px) {
      .about-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
      }
    }

    /* ── Testimonials ── */
    .testimonial-lead {
      background: var(--surface);
      border: 1px solid var(--border);
      border-left: 4px solid var(--accent-gold);
      border-radius: 0 var(--radius) var(--radius) 0;
      padding: 2.5rem 2.75rem 2.5rem 2.75rem;
      box-shadow: var(--shadow-sm);
      margin-bottom: 1.25rem;
      position: relative;
    }

    .testimonial-lead::before {
      content: '\201D';
      font-family: 'Lora', Georgia, serif;
      font-size: 6rem;
      line-height: 0.7;
      color: var(--accent-gold);
      opacity: 0.12;
      position: absolute;
      top: 1rem;
      right: 1.25rem;
      pointer-events: none;
      user-select: none;
      z-index: 0;
    }
    .testimonial-lead blockquote { z-index: 1; }

    @media (max-width: 640px) {
      .testimonial-lead::before { display: none; }
    }

    .testimonial-lead blockquote {
      margin: 0;
      padding: 0;
      position: relative;
    }

    .testimonial-lead p {
      font-size: 1.05rem;
      color: var(--text-secondary);
      line-height: 1.75;
      margin-bottom: 0.8em;
    }

    .testimonial-lead footer,
    .testimonial-card footer {
      display: block;
      text-align: left;
    }

    .testimonial-lead footer {
      margin-top: 1.4em;
    }

    .testimonial-lead cite {
      display: block;
      font-family: 'Lora', Georgia, serif;
      font-style: italic;
      font-weight: 400;
      font-size: 0.95rem;
      color: var(--text-muted);
    }

    .testimonials-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1rem;
    }

    .testimonial-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 1.25rem 1.5rem;
      box-shadow: var(--shadow-sm);
    }

    .testimonial-card blockquote {
      margin: 0;
      padding: 0;
    }

    .testimonial-card p {
      font-size: 0.875rem;
      color: var(--text-secondary);
      line-height: 1.65;
      margin-bottom: 0.75em;
    }

    .testimonial-card footer { margin-top: 0.5em; }

    .testimonial-card cite {
      font-style: italic;
      font-size: 0.82rem;
      color: var(--text-muted);
    }

    [data-theme="dark"] .testimonial-card cite,
    [data-theme="dark"] .testimonial-lead cite {
      color: var(--accent-gold);
    }

    .testimonials-more {
      margin-top: 1.5rem;
    }

    .testimonials-more > summary {
      display: inline-flex;
      align-items: center;
      gap: 0.4em;
      cursor: pointer;
      font-size: 0.9rem;
      font-weight: 500;
      color: var(--text-secondary);
      list-style: none;
      padding: 0.4em 0;
      border-bottom: 1px solid var(--border);
      width: 100%;
    }

    .testimonials-more > summary::-webkit-details-marker { display: none; }

    .testimonials-more > summary::before {
      content: '+';
      display: inline-block;
      font-size: 1.1rem;
      font-weight: 400;
      line-height: 1;
      transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1);
    }

    .testimonials-more[open] > summary::before {
      content: '−';
    }

    .testimonials-more > summary:hover {
      color: var(--accent-gold);
      border-bottom-color: var(--accent-gold);
    }

    .testimonials-more .testimonials-grid {
      margin-top: 1.25rem;
    }

    @media (max-width: 600px) {
      .testimonials-grid { grid-template-columns: 1fr; }
    }

    /* ── Resources ── */
    .resources-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1.25rem;
      margin-top: 2rem;
    }

    .resource-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 1.25rem 1.5rem;
      transition: box-shadow .18s, transform .18s;
    }

    .resource-card:hover {
      box-shadow: var(--shadow-md);
      transform: translateY(-2px);
    }

    .resource-card h3 {
      font-family: 'Lora', Georgia, serif;
      font-weight: 600;
      font-size: 1.1rem;
      margin-bottom: 0.5em;
    }
    .resource-card--full  { grid-column: 1 / -1; }
    .resource-card--blue  { border-top: 3px solid var(--nord10); }
    .resource-card--green { border-top: 3px solid var(--nord14); }
    .card-more-link { margin-top: 1em; font-size: 0.875rem; }
    .card-footer-link { margin-top: 1.25em; font-size: 0.9rem; }
    .about-more { margin-top: 1.25em; display: flex; flex-wrap: wrap; gap: 0.75rem; }

    .resource-card p {
      font-size: 0.925rem;
      color: var(--text-secondary);
      line-height: 1.6;
      margin-bottom: 0.75em;
    }

    .resource-link {
      font-size: 0.85rem;
      font-weight: 700;
    }

    .ebook-card {
      grid-column: 1 / -1;
      display: flex;
      gap: 1.75rem;
      align-items: flex-start;
    }

    .ebook-cover {
      width: 110px;
      flex-shrink: 0;
      border-radius: 6px;
      clip-path: inset(0 round 6px);
      box-shadow: var(--shadow-md);
    }

    .ebook-cover img {
      display: block;
      width: 100%;
      border-radius: 6px;
    }

    @media (max-width: 600px) {
      .resources-grid { grid-template-columns: 1fr; }
      .ebook-card { flex-direction: column; }
      .ebook-cover { width: 90px; }
    }

    /* ── Writing list ── */
    .writing-list {
      list-style: none;
      padding: 0;
      margin: 0.5em 0;
    }

    .writing-list li { border-bottom: 1px solid var(--border); }
    .writing-list li:first-child { border-top: 1px solid var(--border); }

    .writing-list a {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 1rem;
      background: none;
      color: var(--text);
      font-weight: 400;
      font-size: 0.875rem;
      padding: 0.65em 0.2em;
      border-radius: 0;
      transition: color .18s;
    }

    .writing-list a::after {
      content: "→";
      color: var(--text-muted);
      opacity: 0;
      transform: translateX(-4px);
      transition: opacity .18s, transform .18s;
      flex-shrink: 0;
    }

    .writing-list a:hover {
      background: none;
      color: var(--accent);
    }

    .writing-list a:hover::after {
      opacity: 1;
      transform: translateX(0);
    }

    /* ── Tools row ── */
    .tools-section {
      margin-top: 2.5rem;
      padding-top: 2rem;
      border-top: 1px solid var(--border);
    }

    .tools-heading {
      font-size: clamp(1.6rem, 3.5vw, 2.4rem);
      font-weight: 600;
      margin: 0 0 0.4em;
    }

    .tools-intro {
      font-size: 0.9rem;
      color: var(--text-secondary);
      margin: 0.5rem 0 1rem;
    }

    .tools-row {
      display: flex;
      flex-wrap: wrap;
      gap: 0.6rem;
    }

    .tool-pill {
      display: inline-flex;
      align-items: center;
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 0.45em 0.9em;
      font-size: 0.85rem;
      font-weight: 500;
      color: var(--text-secondary);
      min-height: 44px;
      transition: border-color .18s, color .18s, box-shadow .18s;
    }

    .tool-pill:hover {
      border-color: var(--accent);
      color: var(--text);
      background: var(--surface);
      box-shadow: var(--shadow-sm);
    }

    .tool-pill-more {
      border-color: var(--accent-gold);
      color: var(--accent-label);
      font-weight: 700;
    }

    .tool-pill-more:hover {
      background: var(--accent-gold);
      border-color: var(--accent-gold);
      color: var(--nord0);
    }

    /* ── Contact ── */
    .contact-box {
      background: var(--bg-alt);
      border-radius: var(--radius);
      padding: 3.5rem;
      border-top: 4px solid var(--accent-gold);
    }

    .contact-box h2 {
      margin-bottom: 0.4em;
      font-size: clamp(2.25rem, 5vw, 3.5rem);
    }

    .contact-box > p {
      color: var(--text-secondary);
      font-size: 1.1rem;
      margin-bottom: 2rem;
      max-width: 580px;
    }

    @media (max-width: 500px) {
      .contact-box { padding: 2.5rem 1.5rem; }
    }

    .contact-links {
      display: flex;
      flex-wrap: wrap;
      gap: 0.6rem;
      margin-top: 1.25rem;
    }

    .contact-links a {
      background: var(--surface);
      border: 1px solid var(--border);
      color: var(--text);
      font-weight: 600;
      padding: 0.45em 1em;
      border-radius: var(--radius-sm);
      min-height: 44px;
      display: inline-flex;
      align-items: center;
    }

    .contact-links a:hover {
      background: var(--surface-hover);
      color: var(--text);
      border-color: var(--accent);
    }

    /* ── Footer ── */
    footer {
      border-top: 1px solid var(--border);
      padding: 2rem 0;
      text-align: center;
      font-size: 0.8rem;
      color: var(--text-muted);
    }

    footer p { margin: 0.2em 0; }

    /* ── Hero entrance ── */
    @media (prefers-reduced-motion: no-preference) {
      .hero-text > * {
        opacity: 0;
        transform: translateY(20px);
      }
      .hero-photo {
        opacity: 0;
        transform: translateX(30px);
      }
      .hero-text > *.is-entered {
        opacity: 1;
        transform: none;
        transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1),
                    transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
      }
      .hero-photo.is-entered {
        opacity: 1;
        transform: none;
        transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
                    transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
      }
    }

    /* ── Scroll reveals ── */
    @media (prefers-reduced-motion: no-preference) {
      [data-reveal] {
        opacity: 0;
        transform: translateY(22px);
        transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
                    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
      }
      [data-reveal].is-visible {
        opacity: 1;
        transform: none;
      }
    }

    /* ── Hero photo parallax — scroll-driven (Chrome/Safari/Edge) ── */
    @supports (animation-timeline: scroll()) {
      @media (prefers-reduced-motion: no-preference) {
        .hero-photo img {
          animation: hero-parallax linear both;
          animation-timeline: scroll(root block);
          animation-range: 0px 700px;
        }
        @keyframes hero-parallax {
          from { transform: translateY(0); }
          to   { transform: translateY(50px); }
        }
      }
    }

    /* ── Reduced motion ── */
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after { transition: none !important; }
      .btn:hover,
      .service-card:hover,
      .resource-card:hover { transform: none; }
      .writing-list a::after,
      .writing-list a:hover::after { opacity: 0; }
    }

/* ── Restructure additions (2026-04) ───────────────────────── */

/* Generic section lede paragraph used under label + h2 */
.section-lede {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.125rem;
  line-height: 1.55;
  color: var(--text-secondary);
  max-width: 60ch;
  margin: 0 0 2rem;
}

/* Tools page: use body font for the lede under the title */
[aria-labelledby="tools-heading"] .section-lede {
  font-family: 'DM Sans', system-ui, sans-serif;
}

/* Nav: aria-current treatment for active page */
.nav-links a[aria-current="page"] {
  color: var(--text);
  background: var(--link-bg);
}

/* ── Interactive Venn ───────────────────────────────────────── */
#venn-explorer {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 2.5rem;
  align-items: start;
  margin-top: 1rem;
}

#venn-explorer .ve-stage {
  width: 100%;
  position: relative;
}

#venn-explorer .ve-diagram {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}

/* Circle outlines use theme accent */
#venn-explorer .ve-ring {
  stroke-width: 3;
  opacity: 1;
  transition: fill-opacity .18s ease, stroke-width .18s ease;
}
#venn-explorer .ve-ring-think     { stroke: #5e81ac; fill: #5e81ac; fill-opacity: 0.42; }
#venn-explorer .ve-ring-make      { stroke: #a3be8c; fill: #a3be8c; fill-opacity: 0.42; }
#venn-explorer .ve-ring-recognise { stroke: #b48ead; fill: #b48ead; fill-opacity: 0.42; }

[data-theme="dark"] #venn-explorer .ve-ring-think     { fill-opacity: 0.55; }
[data-theme="dark"] #venn-explorer .ve-ring-make      { fill-opacity: 0.55; }
[data-theme="dark"] #venn-explorer .ve-ring-recognise { fill-opacity: 0.55; }

/* Static circle names */
#venn-explorer .ve-label-static {
  font-family: 'Lora', Georgia, serif;
  font-size: 30px;
  font-weight: 600;
  text-anchor: middle;
  fill: var(--text);
}

/* Region hit-rects are invisible until active */
#venn-explorer .region-hit {
  fill: var(--nord10);
  fill-opacity: 0;
  transition: fill-opacity .14s ease;
  cursor: pointer;
}
#venn-explorer .region-overlay:hover .region-hit,
#venn-explorer .region-overlay:focus-visible .region-hit,
#venn-explorer .region-overlay.is-active .region-hit {
  fill-opacity: 0.14;
}
[data-theme="dark"] #venn-explorer .region-overlay:hover .region-hit,
[data-theme="dark"] #venn-explorer .region-overlay:focus-visible .region-hit,
[data-theme="dark"] #venn-explorer .region-overlay.is-active .region-hit {
  fill-opacity: 0.22;
  fill: var(--nord6);
}

#venn-explorer .region-overlay:focus { outline: none; }
#venn-explorer .region-overlay:focus-visible .region-hit {
  stroke: var(--focus-ring);
  stroke-width: 2;
  stroke-opacity: 0.5;
}

/* Panel: artefact description */
#venn-explorer .ve-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem 1.75rem;
  min-height: 200px;
  box-shadow: var(--shadow-sm);
}
#venn-explorer .ve-panel h3 {
  font-family: 'Lora', Georgia, serif;
  font-weight: 600;
  font-size: 1.35rem;
  color: var(--text);
  margin: 0 0 0.4rem;
}
#venn-explorer .ve-panel p {
  color: var(--text-secondary);
  margin: 0 0 0.9rem;
  line-height: 1.55;
}
#venn-explorer .ve-panel ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
#venn-explorer .ve-panel li {
  color: var(--text);
  padding: 0.3rem 0.6rem;
  background: var(--bg-alt);
  border-radius: var(--radius-sm);
  font-size: 0.95rem;
}
#venn-explorer .ve-panel-hint {
  color: var(--text-muted);
  font-style: italic;
}

@media (max-width: 780px) {
  #venn-explorer {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  #venn-explorer .ve-panel { min-height: 0; }
}

/* ── Go deeper cards (homepage) ─────────────────────────────── */
.section-deeper .deeper-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 1rem 0 2rem;
}
.deeper-card {
  display: block;
  position: relative;
  padding: 1.3rem 1.4rem 3rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  text-decoration: none;
  color: var(--text);
  box-shadow: var(--shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
a.deeper-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  border-color: var(--accent);
  background: var(--surface-hover);
  color: var(--text);
}
a.deeper-card:hover h3 { color: var(--text); }
a.deeper-card:hover p  { color: var(--text-secondary); }
.deeper-card h3 {
  font-family: 'Lora', Georgia, serif;
  font-weight: 600;
  font-size: 1.2rem;
  margin: 0 0 0.35rem;
  color: var(--text);
}
.deeper-card p {
  margin: 0;
  color: var(--text-secondary);
  font-size: 0.95rem;
  line-height: 1.5;
}
.deeper-arrow {
  position: absolute;
  right: 1.4rem;
  bottom: 1.1rem;
  font-size: 1.3rem;
  color: var(--accent);
  transition: transform .18s ease;
}
.deeper-card:hover .deeper-arrow {
  transform: translateX(4px);
}
.deeper-cta {
  display: flex;
  gap: 0.8rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
}

@media (max-width: 780px) {
  .section-deeper .deeper-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Homepage testimonial pull-quote ─────────────────────────── */
.section-pull {
  padding: 2.5rem 0;
}
.pull-quote {
  border-left: 3px solid var(--accent-gold);
  padding: 0.5rem 0 0.5rem 1.5rem;
  margin: 0;
  max-width: 60ch;
}
.pull-quote p {
  font-family: 'Lora', Georgia, serif;
  font-style: italic;
  font-size: 1.25rem;
  line-height: 1.5;
  color: var(--text);
  margin: 0 0 0.6rem;
}
.pull-quote footer {
  color: var(--text-muted);
  font-size: 0.9rem;
}
.pull-quote cite { font-style: normal; }

/* ── Readings grid (about page) ─────────────────────────────── */
.readings-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 1rem;
}
.reading-figure {
  margin: 0;
  padding: 1rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.reading-figure img {
  width: 100%;
  height: auto;
  display: block;
}
.reading-figure figcaption {
  margin-top: 0.75rem;
  color: var(--text-secondary);
  font-size: 0.92rem;
  line-height: 1.45;
}
@media (max-width: 780px) {
  .readings-grid { grid-template-columns: 1fr; }
}

/* Resources-page footnote pointing at /tools */
.resources-footnote {
  margin-top: 2rem;
  padding: 1rem 1.25rem;
  background: var(--bg-alt);
  border-radius: var(--radius-sm);
  color: var(--text-secondary);
  font-size: 0.95rem;
}

/* ── Tools page ── */
.tools-header {
  padding: 4rem 0 3rem;
  border-bottom: 1px solid var(--border);
}

.tools-header h1 {
  font-size: clamp(2.5rem, 6vw, 4rem);
  letter-spacing: -0.02em;
  margin-bottom: 0.4em;
}

.tools-header p {
  font-size: 1.15rem;
  color: var(--text-secondary);
  max-width: 580px;
  margin-bottom: 1.5rem;
}

.tool-group {
  padding: 3rem 0;
  border-bottom: 1px solid var(--border);
}

.tool-group:last-child { border-bottom: none; }

.tool-group-header { margin-bottom: 1.75rem; }

.tool-group-header h2 {
  font-size: clamp(1.4rem, 3vw, 2rem);
  margin-bottom: 0.3em;
}

.tool-group-header p {
  color: var(--text-secondary);
  font-size: 0.95rem;
  margin: 0;
}

.tool-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
}

.tool-grid-pair {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1rem;
}

.tool-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: box-shadow .18s, border-color .18s, transform .18s;
}

.tool-card:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--accent);
  transform: translateY(-2px);
}

.tool-card-name {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--text);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5em;
}

.tool-card-name .tool-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--bg-alt);
  border: 1px solid var(--border);
}

.tool-card-name .tool-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.tool-card-desc {
  color: var(--text-secondary);
  font-size: 0.9rem;
  line-height: 1.5;
  flex: 1;
  margin: 0;
}

.tool-card-footer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-top: 0.25rem;
  border-top: 1px solid var(--border);
  flex-wrap: wrap;
}

.tool-card-footer .btn {
  padding: 0.4em 1em;
  font-size: 0.82rem;
}

.tool-card-footer .source-link {
  font-size: 0.8rem;
  color: var(--text-muted);
  background: none;
  padding: 0;
  font-weight: 500;
}

.tool-card-footer .source-link:hover {
  background: none;
  color: var(--text-secondary);
  text-decoration: underline;
}

/* ── About banner image + credit ─────────────────────────── */
.about-banner {
  margin: 1.5rem 0 2rem;
  border-radius: 10px;
  overflow: hidden;
  background: var(--bg-alt, #000);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.about-banner img {
  display: block;
  width: 100%;
  height: auto;
  /* Force a consistent banner height on wide screens; image fills it */
  max-height: 220px;
  object-fit: cover;
}

@media (max-width: 640px) {
  .about-banner img { max-height: 140px; }
}

[data-theme="dark"] .about-banner img {
  /* The original is already black-and-white; invert nothing but soften slightly in dark mode */
  filter: brightness(0.92);
}

.image-credit {
  margin-top: 2.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border, rgba(0, 0, 0, 0.08));
  font-size: 0.8125rem;
  color: var(--text-muted);
}

.image-credit a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--border, rgba(0, 0, 0, 0.25));
  text-underline-offset: 2px;
}

.image-credit a:hover {
  color: var(--text-secondary, var(--text));
  text-decoration-color: currentColor;
}

/* ── Trust bar (home page, under hero) ────────────────────────────── */
.trust-bar {
  margin: 2.25rem 0 3rem;
  padding: 1.25rem 0 1.5rem;
  border-top: 1px solid var(--border, rgba(0, 0, 0, 0.08));
  border-bottom: 1px solid var(--border, rgba(0, 0, 0, 0.08));
  text-align: center;
}

.trust-bar-label {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 1rem;
  font-weight: 500;
}

.trust-bar-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.75rem 2.5rem;
}

.trust-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  max-width: 200px;
  opacity: 0.75;
  transition: opacity 0.18s ease;
}

.trust-logo:hover {
  opacity: 1;
}

.trust-logo--text {
  font-family: 'Lora', Georgia, serif;
  font-weight: 600;
  font-size: 1.125rem;
  letter-spacing: 0.01em;
  line-height: 1;
  color: var(--text-muted);
  white-space: nowrap;
}

[data-theme="dark"] .trust-logo--text {
  color: #ffffff;
}

.trust-logo--image img {
  display: block;
  height: 100%;
  width: auto;
  max-width: 180px;
  object-fit: contain;
  /* Force mono rendering across all logos via filter so they sit consistently. */
  filter: brightness(0) invert(1) opacity(0.85);
}

/* Per-logo size overrides: horizontal wordmarks get less height, compact marks more. */
.trust-logo[data-logo="bbc-r-d"] { height: 28px; max-width: 180px; }
.trust-logo[data-logo="awards-network"] { height: 64px; max-width: 70px; }
.trust-logo[data-logo="skills-development-scotland"] { height: 54px; max-width: 170px; }
.trust-logo[data-logo="mit"] { height: 44px; max-width: 90px; }
.trust-logo[data-logo="city-guilds"] { height: 50px; max-width: 90px; }
.trust-logo[data-logo="n-tutorr"] { height: 52px; max-width: 90px; }

.trust-logo--image:hover img {
  filter: brightness(0) invert(1);
}

[data-theme="light"] .trust-logo--image img,
:root:not([data-theme="dark"]) .trust-logo--image img {
  /* In light mode, keep logos dark for contrast instead of forcing white. */
  filter: brightness(0) opacity(0.6);
}

[data-theme="light"] .trust-logo--image:hover img,
:root:not([data-theme="dark"]) .trust-logo--image:hover img {
  filter: brightness(0) opacity(0.85);
}

[data-theme="light"] .trust-logo--text,
:root:not([data-theme="dark"]) .trust-logo--text {
  color: var(--text-secondary, var(--text));
}

@media (max-width: 560px) {
  .trust-bar-logos {
    gap: 1rem 1.5rem;
  }
  .trust-logo {
    height: 32px;
  }
  .trust-logo--text {
    font-size: 1rem;
  }
  .trust-logo[data-logo="bbc-r-d"] { height: 22px; }
  .trust-logo[data-logo="awards-network"] { height: 50px; }
  .trust-logo[data-logo="skills-development-scotland"] { height: 44px; }
  .trust-logo[data-logo="mit"] { height: 36px; }
  .trust-logo[data-logo="city-guilds"] { height: 40px; }
  .trust-logo[data-logo="n-tutorr"] { height: 40px; }
}
