/*
Theme Name: Funkornaut Portfolio
Theme URI: https://funkornaut.com/
Author: Trevor Foster (funkornaut)
Description: Single-page portfolio for Funkornaut LLC - smart contract security research. Self-contained, no external assets, respects the visitor's light/dark preference.
Version: 1.0.0
License: GPL-2.0-or-later
Text Domain: funkornaut-portfolio
*/

    :root {
      --bg: #ffffff;
      --fg: #1a1a1a;
      --muted: #6b6b6b;
      --link: #0b5fa5;
      --rule: #e3e3e3;
      --chip: #f4f4f4;
    }

    @media (prefers-color-scheme: dark) {
      :root {
        --bg: #15161a;
        --fg: #e8e8ea;
        --muted: #9a9aa2;
        --link: #7cb3e8;
        --rule: #2a2b31;
        --chip: #202128;
      }
    }

    * {
      box-sizing: border-box;
    }

    body {
      margin: 0 auto;
      max-width: 52rem;
      padding: 3rem 1.25rem 5rem;
      background: var(--bg);
      color: var(--fg);
      font-family: -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
      font-size: 16px;
      line-height: 1.6;
    }

    a {
      color: var(--link);
    }

    a:hover {
      text-decoration: none;
    }

    header {
      margin-bottom: 2.5rem;
    }

    h1 {
      font-family: ui-monospace, Menlo, Consolas, monospace;
      font-size: 1.6rem;
      margin: 0 0 0.15rem;
      letter-spacing: -0.02em;
    }

    .realname {
      color: var(--muted);
      font-size: 0.98rem;
    }

    .intro {
      margin: 1rem 0 0;
    }

    nav {
      margin-top: 1.25rem;
      font-size: 0.9rem;
      display: flex;
      flex-wrap: wrap;
      gap: 0 1rem;
    }

    h2 {
      font-size: 0.8rem;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      color: var(--muted);
      font-family: ui-monospace, Menlo, Consolas, monospace;
      margin: 2.75rem 0 0.9rem;
      padding-bottom: 0.4rem;
      border-bottom: 1px solid var(--rule);
    }

    table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.93rem;
    }

    th {
      text-align: left;
      font-weight: 600;
      color: var(--muted);
      font-size: 0.78rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      padding: 0 0.6rem 0.5rem 0;
      border-bottom: 1px solid var(--rule);
    }

    td {
      padding: 0.6rem 0.6rem 0.6rem 0;
      border-bottom: 1px solid var(--rule);
      vertical-align: top;
    }

    td:last-child,
    th:last-child {
      padding-right: 0;
    }

    .nowrap {
      white-space: nowrap;
    }

    th.num,
    td.num {
      text-align: right;
      width: 2.6rem;
      padding-right: 0;
      padding-left: 0.5rem;
      font-family: ui-monospace, Menlo, Consolas, monospace;
      font-variant-numeric: tabular-nums;
    }

    td.num {
      color: var(--fg);
    }

    td.date {
      font-family: ui-monospace, Menlo, Consolas, monospace;
      font-size: 0.85rem;
      color: var(--muted);
    }

    tr.total td {
      border-bottom: none;
      border-top: 2px solid var(--rule);
    }

    .sev {
      font-family: ui-monospace, Menlo, Consolas, monospace;
      font-size: 0.85rem;
      white-space: nowrap;
    }

    ul {
      padding-left: 1.15rem;
      margin: 0.6rem 0;
    }

    li {
      margin-bottom: 0.4rem;
    }

    .note {
      font-size: 0.87rem;
      color: var(--muted);
      margin-top: 0.85rem;
    }

    .stats {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
      margin: 0.25rem 0 0.9rem;
    }

    .stat {
      background: var(--chip);
      border: 1px solid var(--rule);
      border-radius: 3px;
      padding: 0.35rem 0.6rem;
      font-family: ui-monospace, Menlo, Consolas, monospace;
      font-size: 0.82rem;
    }



    .head-row {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 2.5rem;
    }

    .head-text {
      min-width: 0;
    }

    .avatar {
      width: 208px;
      height: 208px;
      border-radius: 50%;
      flex-shrink: 0;
      object-fit: cover;
      border: 1px solid var(--rule);
    }

    .contact-row {
      display: flex;
      flex-wrap: wrap;
      gap: 0.4rem 1.5rem;
      font-size: 0.92rem;
    }

    .scroll {
      overflow-x: auto;
    }

    @media (max-width: 34rem) {
      body {
        padding-top: 2rem;
      }

      .head-row {
        flex-direction: column-reverse;
        align-items: flex-start;
        gap: 1rem;
      }

      .avatar {
        width: 132px;
        height: 132px;
      }

      /* Collapse the wide prose tables into stacked blocks on narrow screens. */
      table:not(.engagements),
      table:not(.engagements) thead,
      table:not(.engagements) tbody,
      table:not(.engagements) tr,
      table:not(.engagements) td,
      table:not(.engagements) th {
        display: block;
      }

      table:not(.engagements) thead {
        display: none;
      }

      table:not(.engagements) td {
        border: none;
        padding: 0.15rem 0;
      }

      table:not(.engagements) tr {
        padding: 0.75rem 0;
        border-bottom: 1px solid var(--rule);
      }

      /* The engagements table stays a real table and scrolls inside .scroll instead. */
      .engagements {
        min-width: 30rem;
      }
    }

/* keep the fixed-position WP admin bar from overlapping the header */
body.admin-bar { padding-top: 32px; }
@media screen and (max-width: 782px) {
  body.admin-bar { padding-top: 46px; }
}
