/* catalog: generated from the legacy catalog template; edit this external module only. */
:root { --canvas:#f8f9f7; --surface:#fff; --ink:#172027; --muted:#56636b; --border:#d9e1df; --purple:#6e44a6; --purple-soft:#f0eafd; --teal:#007c83; --terracotta:#a24b2e; --status-development:#f4b942; --status-playtesting:#2e7d52; --status-seeking-publisher:#005ea8; --status-produced:#6e44a6; --status-retired:#56636b; --radius:14px; }
      * { box-sizing:border-box; }
      html { scroll-behavior:smooth; }
      body { margin:0; min-width:320px; background:var(--canvas); color:var(--ink); font-family:"Disrupt Cabin",ui-rounded,Arial,sans-serif; font-size:16px; line-height:1.55; }
      a { color:inherit; text-decoration:none; }
      .site-shell { width:min(1160px,calc(100% - 48px)); margin:0 auto; }
      .site-header { min-height:65px; border-bottom:1px solid var(--border); }
      .header-inner { min-height:65px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
      .brand { display:inline-flex; align-items:center; gap:10px; font-family:"Disrupt Comfortaa",sans-serif; font-size:18px; font-weight:700; letter-spacing:-.04em; }
      .brand img { width:29px; height:29px; object-fit:contain; }
      .header-actions { display:flex; align-items:center; gap:30px; color:var(--muted); font-size:14px; font-weight:650; }
      .header-actions a:not(.button):hover,.header-actions a[aria-current="page"] { color:var(--purple); }
      .button { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 22px; border:1px solid transparent; border-radius:999px; background:var(--purple); color:var(--surface); font-size:14px; font-weight:800; line-height:1; white-space:nowrap; }
      .catalog-hero { width:min(990px,calc(100% - 48px)); max-width:none; margin-inline:auto; padding:80px 0 34px; }
      .eyebrow { margin:0 0 13px; color:var(--purple); font-size:12px; font-weight:850; letter-spacing:.075em; text-transform:uppercase; }
      h1,h2 { margin:0; font-family:"Disrupt Comfortaa",sans-serif; letter-spacing:-.06em; }
      h1 { font-size:clamp(48px,6vw,74px); font-weight:700; line-height:1.01; }
      .catalog-hero p:last-child { max-width:490px; margin:19px 0 0; color:var(--muted); font-size:16px; }
      .catalog-tools { padding:21px 0 16px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
      .search { display:flex; align-items:center; gap:10px; width:min(100%,410px); min-height:46px; padding:0 14px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
      .search svg { flex:0 0 auto; width:17px; height:17px; color:#738084; }
      .search input { min-width:0; width:100%; border:0; outline:0; background:transparent; color:var(--ink); font:inherit; font-size:14px; }
      .search input::placeholder { color:#849093; }
      .filters { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
      .filter { display:inline-flex; align-items:center; min-height:29px; padding:0 11px; border:1px solid var(--border); border-radius:999px; background:var(--surface); color:#435157; cursor:pointer; font:inherit; font-size:12px; font-weight:750; }
      .filter:not([data-status="All"])::before { width:7px; height:7px; margin-right:6px; border-radius:50%; background:var(--filter-color); content:""; }
      .filter[data-status="Playtesting"] { --filter-color:var(--status-playtesting); }
      .filter[data-status="In Development"] { --filter-color:var(--status-development); }
      .filter[data-status="Seeking Publisher"] { --filter-color:var(--status-seeking-publisher); }
      .filter[data-status="Self-Published"] { --filter-color:var(--status-produced); }
      .filter[data-status="Retired"] { --filter-color:var(--status-retired); }
      .filter[aria-current="page"] { border-color:var(--ink); background:var(--ink); color:var(--surface); }
      .filter[data-status="Playtesting"][aria-current="page"],.filter[data-status="Seeking Publisher"][aria-current="page"],.filter[data-status="Self-Published"][aria-current="page"],.filter[data-status="Retired"][aria-current="page"] { border-color:var(--filter-color); background:var(--filter-color); color:var(--surface); }
      .filter[data-status="In Development"][aria-current="page"] { border-color:var(--filter-color); background:var(--filter-color); color:var(--ink); }
      .filter[aria-current="page"]::before { background:currentColor; }
      .catalog-summary { display:grid; grid-template-columns:48px minmax(0,1fr) 58px 78px 120px 70px; align-items:center; gap:13px; margin:16px 0 5px; color:#748084; font-size:12px; }
      .catalog-summary #result-count { grid-column:1 / 3; }
      .catalog-summary .column-label { white-space:nowrap; }
      .catalog-list { border-top:1px solid var(--border); }
      .game-row { display:grid; grid-template-columns:48px minmax(0,1fr) 58px 78px 120px 70px; align-items:center; gap:13px; min-height:69px; border-bottom:1px solid var(--border); }
      .game-row:hover .game-name { color:var(--purple); }
      .game-mark { display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--border); border-radius:8px; background:var(--surface); color:#455156; font-family:"Disrupt Comfortaa",sans-serif; font-size:11px; font-weight:700; letter-spacing:-.08em; }
      .game-name { display:block; overflow:hidden; font-family:"Disrupt Comfortaa",sans-serif; font-size:15px; font-weight:700; letter-spacing:-.045em; text-overflow:ellipsis; white-space:nowrap; }
      .game-subtitle { display:block; overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
      .game-data { color:#667479; font-size:12px; white-space:nowrap; }
      .status-label { display:inline-flex; align-items:center; justify-content:center; min-height:24px; padding:3px 7px; border-radius:5px; color:var(--surface); font-size:10px; font-weight:850; line-height:1.1; text-align:center; white-space:nowrap; }
      .status-self-published { background:var(--status-produced); }
      .status-playtesting { background:var(--status-playtesting); }
      .status-seeking-publisher { background:var(--status-seeking-publisher); }
      .status-in-development { background:var(--status-development); color:var(--ink); }
      .status-retired { background:var(--status-retired); }
      .row-action { color:var(--terracotta); font-size:12px; font-weight:850; white-space:nowrap; }
      .game-row-retired { color:var(--muted); }
      .game-row-retired .game-name { color:var(--muted); }
      .empty { padding:42px 0; color:var(--muted); text-align:center; }
      .site-footer { margin-top:70px; border-top:1px solid var(--border); padding:40px 0 24px; }
      .footer-top { display:flex; justify-content:space-between; gap:40px; }
      .footer-brand { max-width:285px; }
      .footer-brand .tagline { margin:9px 0 0; color:var(--purple); font-size:13px; font-weight:800; }
      .footer-brand .summary { margin:9px 0 0; color:var(--muted); font-size:12px; line-height:1.55; }
      .footer-links { display:flex; gap:26px; flex-wrap:wrap; align-items:start; }
      .footer-links a { color:var(--muted); font-size:12px; font-weight:700; }
      .scripture { margin:35px 0 0; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); font-family:"Disrupt Comfortaa",sans-serif; font-size:16px; font-weight:700; letter-spacing:-.035em; text-align:center; }
      .scripture cite { display:block; margin-top:7px; color:var(--purple); font-family:inherit; font-size:10px; font-style:normal; letter-spacing:.06em; text-transform:uppercase; }
      .footer-bottom { margin-top:18px; color:#849093; font-size:11px; text-align:center; }
      @media (max-width:820px) { .site-shell{width:min(100% - 36px,720px)}.header-actions{gap:16px}.header-actions a:not(.button){display:none}.catalog-summary,.game-row{grid-template-columns:46px minmax(0,1fr) 58px 75px}.status-heading,.status-label,.action-heading,.row-action{display:none}.footer-top{display:block}.footer-links{margin-top:25px} }
      @media (max-width:540px) { .site-shell{width:min(100% - 32px,720px)}.brand{font-size:16px}.brand img{width:26px;height:26px}.catalog-hero{padding:51px 0 29px}.catalog-hero h1{font-size:48px}.catalog-summary,.game-row{grid-template-columns:40px minmax(0,1fr) 59px;gap:8px}.time-heading,.status-heading,.action-heading,.game-row .game-data:nth-of-type(2){display:none}.game-subtitle{max-width:190px}.site-footer{margin-top:50px}.scripture{font-size:14px} }
    
      /* Canonical site header: shared by every page type. */
      .primary-nav { display:flex; align-items:center; gap:26px; color:var(--muted); font-size:14px; font-weight:700; }
      .primary-nav a:hover,.primary-nav a[aria-current="page"] { color:var(--purple); }
      .primary-nav .nav-action { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:0 18px; border-radius:999px; background:var(--purple); color:var(--surface); font-size:14px; font-weight:800; line-height:1; white-space:nowrap; }
      .primary-nav .nav-action:hover { background:var(--purple-dark); color:var(--surface); }
      @media (max-width:820px) { .primary-nav{gap:17px}.primary-nav a:not(.nav-action){display:none} }

      /* Disrupt site layout contract */
      :root { --page-width:1160px; --reading-width:780px; --status-playtesting:#2e7d52; --status-development:#f4b942; --status-seeking:#005ea8; --status-self-published:#6e44a6; --status-retired:#56636b; --action:#a24b2e; }
      .site-shell,.shell { width:min(var(--page-width),calc(100% - 48px)); margin-inline:auto; }
      .mobile-nav { display:none; }
      @media (max-width:880px) {
        .primary-nav { display:none; }
        .mobile-nav { position:relative; display:block; }
        .mobile-nav summary { min-height:40px; padding:9px 15px; border:1px solid var(--border); border-radius:999px; color:var(--ink); cursor:pointer; font-size:14px; font-weight:850; list-style:none; }
        .mobile-nav summary::-webkit-details-marker { display:none; }
        .mobile-nav nav { position:absolute; z-index:10; top:calc(100% + 9px); right:0; display:grid; width:min(260px,calc(100vw - 36px)); padding:10px; border:1px solid var(--border); border-radius:14px; background:var(--surface); box-shadow:0 16px 34px rgba(23,32,39,.12); }
        .mobile-nav nav a { padding:10px 11px; border-radius:8px; color:var(--ink); font-size:14px; font-weight:800; }
        .mobile-nav nav a:hover { background:#eef2ee; color:var(--purple); }
      }

/* v12 keyboard baseline */
.skip-link { position:fixed; z-index:100; top:10px; left:10px; padding:11px 15px; border-radius:8px; background:#172027; color:#fff; font-weight:850; transform:translateY(-160%); transition:transform .16s ease; }
.skip-link:focus { transform:translateY(0); }
:where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #006f77; outline-offset:3px; }
@media (prefers-reduced-motion:reduce) { .skip-link { transition:none; } }

/* v16 spacing-led content rhythm */
main .section-head,main .section-soft,main .journal-list,main .journal-item { border-top:0; border-bottom:0; }
.site-footer,.site-footer blockquote { border-top:0; border-bottom:0; }
.article-page .status-guide-section,.article-page .rights-guide-cc,.article-page .rights-guide-choice,.article-page .rights-guide-permissions,.article-page .rights-guide-notice { border-top:0; padding-top:0; }
.article-page .dd-section::before,.article-page .dd-game-gylen,.article-page .dd-game-dalrymple,.article-page .dd-triad>div { border-top:0; content:none; }
