:root{
    --ink:#101a2b;
    --ink-2:#1a2740;
    --parchment:#f6f2e9;
    --paper:#fbf9f4;
    --burgundy:#7a2634;
    --burgundy-dark:#5e1c27;
    --brass:#a9823c;
    --brass-light:#c7a35f;
    --slate:#5b6472;
    --line:#d9d0bd;
  }
  body{
    background:var(--parchment);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    line-height:1.55;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces',serif;
    font-weight:560;
    letter-spacing:-0.01em;
    color:var(--ink);
  }
  .font-serif{font-family:'Fraunces',serif;}
  .font-mono{font-family:'IBM Plex Mono',monospace;}
  a{color:inherit;}

  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--brass);
    display:inline-flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:22px;height:1px;
    background:var(--brass);
    display:inline-block;
  }
  .citation{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.04em;
    color:var(--slate);
  }

  /* Utility strip */
  .utility-strip{
    background:var(--ink);
    color:#b9c2d4;
    font-family:'IBM Plex Mono',monospace;
    font-size:11.5px;
  }

  /* Header */
  .navbar-journal{
    background:var(--paper) !important;
    border-bottom:1px solid var(--line);
  }
  .brand-mark{
    width:40px;height:40px;
    border:1.5px solid var(--ink);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
  }
  .brand-mark svg{width:20px;height:20px;}
  .navbar-brand .name{
    font-family:'Fraunces',serif;
    font-size:19px;
    font-weight:560;
    line-height:1.1;
    display:block;
  }
  .navbar-brand .tag{
    font-family:'IBM Plex Mono',monospace;
    font-size:9.5px;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--slate);
    display:block;
  }
  .navbar-journal .nav-link{
    font-weight:500;
    font-size:14.5px;
    color:var(--ink) !important;
    padding:.5rem 1rem !important;
  }
  .navbar-journal .nav-link:hover{color:var(--burgundy) !important;}

  .btn-burgundy{
    background:var(--burgundy);
    border-color:var(--burgundy);
    color:#fff;
    font-weight:600;
    border-radius:2px;
  }
  .btn-burgundy:hover{background:var(--burgundy-dark);border-color:var(--burgundy-dark);color:#fff;}
  .btn-outline-ink{
    border:1px solid var(--ink);
    color:var(--ink);
    font-weight:600;
    border-radius:2px;
  }
  .btn-outline-ink:hover{background:var(--ink);color:#fff;}

  /* Hero */
  .hero{
    background:
      radial-gradient(ellipse 900px 500px at 85% -10%, rgba(169,130,60,0.18), transparent 60%),
      var(--ink);
    color:#fff;
    position:relative;
    overflow:hidden;
    padding:96px 0 90px;
  }
  .hero .eyebrow{color:var(--brass-light);}
  .hero .eyebrow::before{background:var(--brass-light);}
  .hero h1{
    color:#fff;
    font-size:clamp(32px, 4.2vw, 52px);
    line-height:1.08;
  }
  .hero h1 em{font-style:italic;color:var(--brass-light);}
  .hero .lede{font-size:17px;color:#c7cede;max-width:46ch;}

  .stat .num{font-family:'Fraunces',serif;font-size:28px;color:#fff;}
  .stat .label{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#8f9ab3;
  }

  .search-card{
    background:var(--paper);
    color:var(--ink);
    border-top:3px solid var(--burgundy);
    box-shadow:0 20px 50px -25px rgba(16,26,43,0.5);
    border-radius:0;
  }
  .search-card label{
    font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--slate);font-weight:600;
  }
  .search-card .form-control, .search-card .form-select{
    border-radius:1px;
    border-color:var(--line);
    padding:.7rem .85rem;
  }
  .search-card .form-control:focus, .search-card .form-select:focus{
    border-color:var(--burgundy);
    box-shadow:0 0 0 2px rgba(122,38,52,0.15);
  }

  .seal{position:absolute;right:-30px;bottom:-40px;width:220px;height:220px;opacity:.08;}

  /* Intro */
  .intro-lede{
    font-family:'Fraunces',serif;
    font-size:23px;
    font-weight:460;
    color:var(--ink-2);
    max-width:800px;
  }

  /* Practice cards */
  .practice-card{
    background:var(--paper);
    border:1px solid var(--line);
    padding:2rem 1.75rem 2.25rem;
    height:100%;
    transition:background .2s ease;
  }
  .practice-card:hover{background:#fff;}
  .practice-card .index{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--brass);}
  .practice-card p{font-size:14.5px;color:var(--slate);}
  .practice-card .link{
    font-size:13px;font-weight:600;color:var(--burgundy);text-decoration:none;
    display:inline-flex;align-items:center;gap:6px;
  }
  .practice-card .link svg{width:14px;height:14px;transition:transform .18s ease;}
  .practice-card .link:hover svg{transform:translateX(3px);}

  /* Pricing */
  .pricing-section{background:var(--ink);color:#fff;}
  .pricing-section .eyebrow{color:var(--brass-light);}
  .pricing-section .eyebrow::before{background:var(--brass-light);}
  .pricing-section h2{color:#fff;}
  .plan-card{
    background:var(--ink-2);
    border:1px solid #2c3a58;
    border-radius:0;
    padding:2.2rem 2rem;
    height:100%;
  }
  .plan-card h3{color:#fff;}
  .plan-price{font-family:'Fraunces',serif;font-size:28px;color:var(--brass-light);}
  .plan-price span{font-family:'Inter',sans-serif;font-size:12px;color:#8f9ab3;font-weight:400;}
  .plan-card .list-unstyled li{
    font-size:14px;color:#c7cede;padding:.6rem 0;border-bottom:1px dashed #2c3a58;
    display:flex;gap:10px;align-items:flex-start;
  }
  .plan-card .list-unstyled li:last-child{border-bottom:none;}
  .plan-card .list-unstyled li svg{width:15px;height:15px;flex-shrink:0;margin-top:3px;color:var(--brass-light);}

  /* Showcase */
  .showcase-visual{
    aspect-ratio:4/3;
    background:var(--paper);
    border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;
    position:relative;overflow:hidden;
  }
  .showcase-visual::before{
    content:"";position:absolute;inset:0;
    background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size:28px 28px;opacity:.5;
  }
  .showcase-visual svg{width:46%;height:46%;position:relative;z-index:2;color:var(--burgundy);}
  .showcase-row{border-bottom:1px solid var(--line);padding:3.5rem 0;}
  .showcase-row:last-child{border-bottom:none;}

  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* Footer */
  .site-footer{background:var(--paper);border-top:1px solid var(--line);}
  .footer-links a{font-size:13.5px;text-decoration:none;color:var(--ink);}
  .footer-links a:hover{color:var(--burgundy);}

  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
  }