*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --bg:        #f8f6f2;
      --bg-warm:   #f0ece4;
      --bg-card:   #ffffff;
      --text:      #2a2016;
      --text-dim:  #5a4e38;
      --text-faint:#9a8e78;
      --accent:    #c8920c;
      --line:      #e2dcd2;
      --ink:       #1c1608;
    }

    html { scroll-behavior: smooth; }
    body {
      background: var(--bg);
      color: var(--text);
      font-family: 'Outfit', sans-serif;
      font-weight: 300;
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
    }

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

    /* ── NAV ── */
    .site-nav {
      max-width: 1100px; margin: 0 auto;
      padding: 22px 32px;
      display: flex; justify-content: space-between; align-items: center;
      border-bottom: 1px solid var(--line);
    }
    .nav-logo { display: flex; align-items: center; gap: 12px; }
    .nav-emblem {
      width: 38px; height: 38px; flex-shrink: 0;
    }
    .nav-title { display: flex; flex-direction: column; line-height: 1; }
    .nav-name {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 0.88rem; font-weight: 700; color: var(--ink);
    }
    .nav-sub {
      font-family: 'DM Mono', monospace; font-size: 0.56rem;
      letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-faint);
      margin-top: 2px;
    }
    .nav-links { display: flex; gap: 28px; align-items: center; }
    .nav-links a {
      font-family: 'DM Mono', monospace; font-size: 0.68rem;
      letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-faint);
      transition: color 0.2s;
    }
    .nav-links a:hover { color: var(--ink); }

    /* ── PAGE HEADER ── */
    .page-header {
      max-width: 1100px; margin: 0 auto;
      padding: 64px 32px 56px;
      text-align: center;
    }
    .page-eyebrow {
      display: flex; align-items: center; justify-content: center; gap: 16px;
      margin-bottom: 28px;
    }
    .eyebrow-rule { flex: 0 0 52px; height: 1px; background: var(--text-faint); opacity: 0.45; }
    .eyebrow-text {
      font-family: 'DM Mono', monospace; font-size: 0.7rem;
      letter-spacing: 0.22em; text-transform: uppercase; color: var(--text-faint);
      white-space: nowrap;
    }
    .page-title {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: clamp(2.8rem, 6vw, 4.2rem);
      font-weight: 700; line-height: 1.0; color: var(--ink);
      letter-spacing: -0.02em; margin-bottom: 22px;
    }
    .page-title em { font-style: italic; color: var(--accent); font-weight: 400; }
    .page-desc {
      max-width: 580px; margin: 0 auto;
      font-size: 1.06rem; font-weight: 300; color: var(--text-dim);
      line-height: 1.72;
    }

    /* ── CONTROLS BAR ── */
    .controls {
      max-width: 1100px; margin: 0 auto;
      padding: 14px 32px;
      border-top: 1px solid var(--line);
      border-bottom: 1px solid var(--line);
      display: flex; justify-content: space-between; align-items: center;
      flex-wrap: wrap; gap: 8px;
    }
    .controls-left, .controls-right {
      font-family: 'DM Mono', monospace; font-size: 0.68rem;
      letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-faint);
    }
    .controls-right { display: flex; gap: 6px; }
    .controls-count { color: var(--ink); }

    /* ── DIRECTORY ── */
    .directory {
      max-width: 1100px; margin: 0 auto;
      padding: 0 32px 80px;
    }

    /* ── CATEGORY GROUP ── */
    .category-section { margin-top: 48px; }
    .category-header {
      display: flex; align-items: center; gap: 16px;
      margin-bottom: 20px;
    }
    .category-label {
      font-family: 'DM Mono', monospace; font-size: 0.7rem;
      letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-faint);
      white-space: nowrap;
    }
    .category-rule { flex: 1; height: 1px; background: var(--line); }

    /* ── ENTRY CARD ── */
    .card-stack { display: flex; flex-direction: column; gap: 2px; }
    .entry-card {
      background: var(--bg-card);
      border: 1px solid var(--line);
      border-radius: 4px;
      display: flex;
      align-items: stretch;
      overflow: hidden;
      transition: box-shadow 0.2s, border-color 0.2s;
      min-height: 120px;
    }
    .entry-card:hover {
      box-shadow: 0 2px 12px rgba(0,0,0,0.07);
      border-color: rgba(0,0,0,0.12);
    }

    .entry-accent {
      width: 88px; flex-shrink: 0;
      display: flex; align-items: center; justify-content: center;
    }
    .entry-icon {
      width: 40px; height: 40px; color: rgba(255,255,255,0.55);
    }
    .entry-icon svg { width: 100%; height: 100%; }

    .entry-body {
      flex: 1; padding: 18px 20px 16px;
      display: flex; flex-direction: column; justify-content: center;
      min-width: 0;
    }

    .entry-meta {
      display: flex; align-items: center; gap: 10px;
      margin-bottom: 6px; flex-wrap: wrap;
    }
    .tag {
      font-family: 'DM Mono', monospace; font-size: 0.62rem;
      letter-spacing: 0.10em; text-transform: uppercase;
      padding: 0.18em 0.65em; border-radius: 3px; white-space: nowrap;
    }
    .entry-season {
      font-family: 'DM Mono', monospace; font-size: 0.66rem;
      letter-spacing: 0.08em; color: var(--text-faint);
    }

    .entry-name {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: 1.32rem; font-weight: 700; color: var(--ink);
      line-height: 1.2; margin-bottom: 2px;
    }
    .entry-latin {
      font-family: 'Playfair Display', Georgia, serif;
      font-style: italic; font-size: 0.9rem; color: var(--text-faint);
      margin-bottom: 8px;
    }
    .entry-desc {
      font-size: 0.95rem; font-weight: 300; color: var(--text-dim);
      line-height: 1.6; margin-bottom: 10px;
      display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .entry-attrs {
      display: flex; flex-wrap: wrap; gap: 2px 4px;
    }
    .entry-attr {
      font-size: 0.82rem; font-weight: 300; color: var(--text-faint);
    }

    .entry-profile {
      display: flex; align-items: center; padding: 0 24px;
      flex-shrink: 0;
      font-family: 'DM Mono', monospace; font-size: 0.66rem;
      letter-spacing: 0.12em; text-transform: uppercase;
      color: var(--text-faint); white-space: nowrap;
      transition: color 0.2s;
    }
    .entry-card:hover .entry-profile { color: var(--ink); }

    /* ── WILDLIFE TAG CLASSES ── */
    .tag-bee        { color: #7a5810; background: rgba(122,88,16,0.10);  border: 1px solid rgba(122,88,16,0.22); }
    .tag-butterfly  { color: #6a4878; background: rgba(106,72,120,0.10); border: 1px solid rgba(106,72,120,0.22); }
    .tag-moth       { color: #4a5060; background: rgba(74,80,96,0.10);   border: 1px solid rgba(74,80,96,0.22); }
    .tag-wasp       { color: #5a6018; background: rgba(90,96,24,0.10);   border: 1px solid rgba(90,96,24,0.22); }
    .tag-fly        { color: #485848; background: rgba(72,88,72,0.10);   border: 1px solid rgba(72,88,72,0.22); }
    .tag-beetle     { color: #3a5830; background: rgba(58,88,48,0.10);   border: 1px solid rgba(58,88,48,0.22); }
    .tag-bird       { color: #2a5870; background: rgba(42,88,112,0.10);  border: 1px solid rgba(42,88,112,0.22); }
    .tag-mammal     { color: #5a4830; background: rgba(90,72,48,0.10);   border: 1px solid rgba(90,72,48,0.22); }
    .tag-spider     { color: #603030; background: rgba(96,48,48,0.10);   border: 1px solid rgba(96,48,48,0.22); }
    .tag-dragonfly  { color: #1a5858; background: rgba(26,88,88,0.10);   border: 1px solid rgba(26,88,88,0.22); }
    .tag-firefly    { color: #6a6010; background: rgba(106,96,16,0.10);  border: 1px solid rgba(106,96,16,0.22); }
    .tag-lacewing   { color: #2f8a5e; background: rgba(47,138,94,0.10);  border: 1px solid rgba(47,138,94,0.22); }
    .tag-bug        { color: #9c4422; background: rgba(156,68,34,0.10);  border: 1px solid rgba(156,68,34,0.22); }
    .tag-frog       { color: #385828; background: rgba(56,88,40,0.10);   border: 1px solid rgba(56,88,40,0.22); }

    /* ── EMPTY STATE ── */
    .coming-soon {
      padding: 40px 0 20px;
      font-family: 'DM Mono', monospace; font-size: 0.7rem;
      letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-faint);
      text-align: center;
    }

    /* ── FOOTER ── */
    footer {
      border-top: 1px solid var(--line);
      background: var(--bg-warm);
      padding: 36px 32px 48px;
    }
    .footer-inner {
      max-width: 1100px; margin: 0 auto;
      display: flex; justify-content: space-between; align-items: flex-start;
      flex-wrap: wrap; gap: 16px;
    }
    .footer-inner p {
      font-family: 'DM Mono', monospace; font-size: 0.66rem;
      letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-faint);
    }

    /* ── RESPONSIVE ── */
    @media (max-width: 680px) {
      .site-nav { padding: 16px 20px; }
      .nav-links { gap: 16px; }
      .page-header { padding: 44px 20px 40px; }
      .controls { padding: 12px 20px; }
      .directory { padding: 0 20px 60px; }
      .entry-accent { width: 64px; }
      .entry-icon { width: 30px; height: 30px; }
      .entry-profile { padding: 0 14px; font-size: 0.6rem; }
      .entry-name { font-size: 1.1rem; }
    }
