:root{
    --ink:#1F2421;
    --ink-soft:#3A4038;
    --paper:#F5F2EA;
    --paper-deep:#ECE7DA;
    --sage:#5F6E52;
    --sage-deep:#3A4433;
    --brass:#B8863B;
    --line:#DCD6C8;
    --white:#FFFFFF;
    --radius:2px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  body{ background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; }
  h1,h2,h3,.display{ font-family:'Fraunces',serif; font-weight:500; color:var(--ink); }
  .mono{ font-family:'IBM Plex Mono',monospace; letter-spacing:0.04em; text-transform:uppercase; font-size:0.72rem; }
  a{ color:inherit; text-decoration:none; }
  .wrap{ max-width:1200px; margin:0 auto; padding:0 32px; }

    .page-head{ padding:52px 0 32px; border-bottom:1px solid var(--line); }
  .page-head .mono{ color:var(--brass); margin-bottom:10px; display:block; }
  .page-head h1{ font-size:2.4rem; margin-bottom:8px; }
  .page-head p{ color:var(--ink-soft); }

  .layout{ display:grid; grid-template-columns:270px 1fr; gap:44px; padding:44px 0 100px; align-items:start; }

  /* ---- SIDEBAR ---- */
  .sidebar{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
    padding:28px 24px; position:sticky; top:104px;
  }
  .sidebar h3{ font-size:1rem; margin-bottom:18px; }
  .search-box{ position:relative; margin-bottom:32px; }
  .search-box input{
    width:100%; padding:12px 14px 12px 38px; border:1px solid var(--line);
    border-radius:var(--radius); font-family:'Inter',sans-serif; font-size:0.9rem;
    background:var(--paper);
  }
  .search-box input:focus{ outline:none; border-color:var(--sage-deep); }
  .search-box svg{ position:absolute; left:12px; top:50%; transform:translateY(-50%); opacity:0.5; }

  .filter-group{ margin-bottom:30px; }
  .filter-group .mono{ display:block; margin-bottom:14px; color:var(--ink-soft); }
  .filter-option{
    display:flex; align-items:center; justify-content:space-between;
    padding:9px 0; font-size:0.9rem; cursor:pointer; color:var(--ink-soft);
    border-bottom:1px solid var(--paper-deep);
  }
  .filter-option:last-child{ border-bottom:none; }
  .filter-option input{ margin-right:10px; accent-color:var(--sage-deep); }
  .filter-option .count{ font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:#A6A296; }
  .filter-option.active{ color:var(--sage-deep); font-weight:600; }

  .btn-clear{
    width:100%; text-align:center; padding:11px; font-size:0.85rem; font-weight:600;
    border:1px solid var(--ink); border-radius:var(--radius); color:var(--ink);
  }
  .btn-clear:hover{ background:var(--ink); color:var(--paper); }

  /* ---- RESULTS ---- */
  .results-bar{ display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; }
  .results-count{ color:var(--ink-soft); font-size:0.92rem; }
  .results-count strong{ color:var(--ink); }
  .sort select{
    font-family:'Inter',sans-serif; font-size:0.85rem; border:1px solid var(--line);
    padding:8px 12px; border-radius:var(--radius); background:var(--white);
  }

  .pro-card{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
    display:grid; grid-template-columns:220px 1fr; overflow:hidden; margin-bottom:22px;
    transition:box-shadow .2s, transform .2s;
  }
  .pro-card:hover{ box-shadow:0 16px 32px -14px rgba(31,36,33,0.16); transform:translateY(-2px); }
  .pro-card .photo{ position:relative; }
  .pro-card .photo img{ width:100%; height:100%; object-fit:cover; display:block; min-height:210px; }
  .pro-card .tag{
    position:absolute; top:12px; left:12px; background:var(--sage-deep); color:var(--white);
    font-family:'IBM Plex Mono',monospace; font-size:0.65rem; text-transform:uppercase;
    letter-spacing:0.05em; padding:5px 9px; border-radius:2px;
  }
  .pro-content{ padding:22px 26px; display:flex; flex-direction:column; }
  .pro-top{ display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px; }
  .pro-name{ font-size:1.3rem; margin-bottom:2px; }
  .pro-role{ font-size:0.87rem; color:var(--sage-deep); font-weight:600; }
  .pro-social{ display:flex; gap:8px; }
  .pro-social a{
    width:30px; height:30px; border:1px solid var(--line); border-radius:50%;
    display:flex; align-items:center; justify-content:center; color:var(--ink-soft);
    transition:all .2s; font-size:0.8rem;
  }
  .pro-social a:hover{ background:var(--sage-deep); color:var(--white); border-color:var(--sage-deep); }

  .pro-meta-row{ display:flex; gap:18px; margin-bottom:12px; flex-wrap:wrap; }
  .pro-meta-row span{ display:flex; align-items:center; gap:6px; color:var(--ink-soft); font-size:0.78rem; }
  .pro-meta-row .mono{ color:#8B8880; }

  .pro-desc{ font-size:0.9rem; color:var(--ink-soft); line-height:1.6; margin-bottom:16px; flex:1; }

  .pro-bottom{ display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--paper-deep); padding-top:16px; }
  .pro-link{ font-weight:600; font-size:0.85rem; color:var(--brass); display:flex; align-items:center; gap:6px; }

  .pagination{ display:flex; justify-content:center; gap:8px; margin-top:20px; }
  .pagination a{
    width:38px; height:38px; display:flex; align-items:center; justify-content:center;
    border:1px solid var(--line); border-radius:var(--radius); font-size:0.85rem; color:var(--ink-soft);
  }
  .pagination a.active{ background:var(--sage-deep); color:var(--white); border-color:var(--sage-deep); }

  @media(max-width:900px){
    .layout{ grid-template-columns:1fr; }
    .sidebar{ position:static; }
    .pro-card{ grid-template-columns:1fr; }
    .pro-card .photo img{ min-height:180px; }
    .menu{ display:none; }
  }
