
    :root{
      --bg: #fbf6ee;
      --paper: #fffaf2;
      --card: #ffffff;
      --ink: #1f2430;
      --muted: #5a6472;

      --accent: #2f6f62;      /* deep sage */
      --accent2:#c98b2c;      /* warm amber */
      --accent3:#7a3e2a;      /* toasted sienna */
      --rule: rgba(31,36,48,.10);

      --shadow: 0 12px 30px rgba(31,36,48,.10);
      --shadow2: 0 6px 18px rgba(31,36,48,.08);
      --radius: 18px;
      --radius2: 26px;

      --max: 1100px;
      --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
      --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
      --serif: ui-serif, Georgia, "Times New Roman", Times, serif;
    }

    *{ box-sizing: border-box; }
    html,body{ height:100%; }
    body{
      margin:0;
      font-family: var(--sans);
      color: var(--ink);
      background:
        radial-gradient(1200px 600px at 20% -10%, rgba(47,111,98,.14), transparent 60%),
        radial-gradient(900px 500px at 110% 10%, rgba(201,139,44,.16), transparent 55%),
        radial-gradient(900px 500px at 30% 120%, rgba(122,62,42,.10), transparent 55%),
        var(--bg);
      line-height:1.45;
    }

    a{ color: var(--accent); text-decoration: none; }
    a:hover{ text-decoration: underline; }

    /* Top bar */
    .topbar{
      position: sticky;
      top: 0;
      z-index: 10;
      backdrop-filter: blur(10px);
      background: rgba(251,246,238,.78);
      border-bottom: 1px solid var(--rule);
    }
    .topbar-inner{
      max-width: var(--max);
      margin: 0 auto;
      padding: 14px 18px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 12px;
    }
    .brand{
      display:flex;
      align-items:baseline;
      gap:10px;
      white-space: nowrap;
    }
    .brand .mark{
      width: 10px;
      height: 10px;
      border-radius: 999px;
      background: linear-gradient(135deg, var(--accent), var(--accent2));
      box-shadow: 0 0 0 6px rgba(47,111,98,.10);
    }
    .brand .title{
      font-family: var(--serif);
      font-weight: 700;
      letter-spacing:.2px;
      font-size: 18px;
    }
    .brand .sub{
      font-family: var(--mono);
      font-size: 12px;
      color: var(--muted);
      letter-spacing:.4px;
      text-transform: uppercase;
    }
    nav{
      display:flex;
      gap: 14px;
      flex-wrap: wrap;
      justify-content: flex-end;
    }
    nav a{
      font-size: 13px;
      color: var(--muted);
      padding: 8px 10px;
      border-radius: 999px;
      border: 1px solid transparent;
    }
    nav a:hover{
      color: var(--ink);
      border-color: rgba(47,111,98,.22);
      background: rgba(255,255,255,.55);
      text-decoration:none;
    }

    /* Page frame */
    .wrap{
      max-width: var(--max);
      margin: 0 auto;
      padding: 28px 18px 16px;
    }

    /* Hero */
    .hero{
      border-radius: var(--radius2);
      background: linear-gradient(135deg, rgba(255,255,255,.75), rgba(255,250,242,.92));
      border: 1px solid rgba(31,36,48,.08);
      box-shadow: var(--shadow);
      overflow:hidden;
    }
    .hero-inner{
      display:grid;
      grid-template-columns: 1.2fr .8fr;
      gap: 0;
    }
    .hero-main{
      padding: 26px 26px 22px;
    }
    .kicker{
      font-family: var(--mono);
      color: var(--accent3);
      font-size: 12px;
      letter-spacing: .6px;
      text-transform: uppercase;
      margin-bottom: 10px;
    }
    h1{
      margin: 0 0 10px;
      font-family: var(--serif);
      font-size: 40px;
      line-height: 1.08;
      letter-spacing: .2px;
    }
.lede{
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 16px;
}
    .cta{
      display:flex;
      gap: 10px;
      flex-wrap: wrap;
      align-items:center;
      margin-top: 8px;
    }
    .btn{
      display:inline-flex;
      align-items:center;
      gap: 8px;
      padding: 10px 14px;
      border-radius: 999px;
      border: 1px solid rgba(31,36,48,.14);
      background: rgba(255,255,255,.75);
      color: var(--ink);
      box-shadow: var(--shadow2);
      font-size: 13px;
      text-decoration:none;
    }
    .btn:hover{ text-decoration:none; border-color: rgba(47,111,98,.35); }
    .btn.primary{
      background: linear-gradient(135deg, var(--accent), #1f5a50);
      border-color: rgba(0,0,0,.08);
      color: white;
    }
    .btn.primary:hover{ filter: brightness(1.02); }

    .hero-side{
      border-left: 1px solid var(--rule);
      padding: 22px 22px 22px;
      background:
        radial-gradient(520px 320px at 40% 30%, rgba(201,139,44,.18), transparent 60%),
        radial-gradient(520px 320px at 80% 80%, rgba(47,111,98,.14), transparent 62%),
        rgba(255,255,255,.50);
    }
    .statgrid{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin-top: 8px;
    }
    .stat{
      border-radius: 16px;
      background: rgba(255,255,255,.70);
      border: 1px solid rgba(31,36,48,.08);
      padding: 12px 12px;
    }
    .stat .num{
      font-family: var(--serif);
      font-weight: 700;
      font-size: 18px;
    }
    .stat .lbl{
      font-size: 12px;
      color: var(--muted);
      margin-top: 2px;
    }
    .mini{
      margin-top: 14px;
      border-top: 1px dashed rgba(31,36,48,.16);
      padding-top: 14px;
      color: var(--muted);
      font-size: 13px;
    }
    .mini strong{ color: var(--ink); }

    /* Sections */
    .section{
      margin-top: 22px;
      border-radius: var(--radius);
      background: rgba(255,255,255,.70);
      border: 1px solid rgba(31,36,48,.08);
      box-shadow: var(--shadow2);
      overflow:hidden;
    }
    .section header{
      padding: 16px 18px;
      display:flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 10px;
      background: rgba(255,250,242,.80);
      border-bottom: 1px solid var(--rule);
    }
    .section header h2{
      margin: 0;
      font-family: var(--serif);
      font-size: 20px;
    }
    .section header .hint{
      font-family: var(--mono);
      font-size: 12px;
      color: var(--muted);
      text-transform: uppercase;
      letter-spacing:.5px;
      white-space: nowrap;
    }
    .section .content{
      padding: 18px;
    }

    /* About */
    .about{
      display:grid;
      grid-template-columns: 1.1fr .9fr;
      gap: 16px;
      align-items:start;
    }
    .about p{ margin: 0 0 12px; color: var(--muted); }
    .callout{
      border-radius: 18px;
      background: rgba(47,111,98,.08);
      border: 1px solid rgba(47,111,98,.18);
      padding: 14px 14px;
    }
    .callout h3{
      margin: 0 0 8px;
      font-family: var(--serif);
      font-size: 16px;
    }
    .chips{
      display:flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 10px;
    }
    .chip{
      font-size: 12px;
      padding: 7px 10px;
      border-radius: 999px;
      background: rgba(255,255,255,.65);
      border: 1px solid rgba(31,36,48,.10);
      color: var(--ink);
    }

    /* Category cards */
    .grid{
      display:grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 12px;
    }
    #categories .grid{
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    }
    .card{
      border-radius: 18px;
      background: rgba(255,255,255,.78);
      border: 1px solid rgba(31,36,48,.10);
      padding: 14px 14px;
      box-shadow: 0 4px 14px rgba(31,36,48,.06);
      display:flex;
      flex-direction: column;
      min-height: 160px;
    }
    .card:hover{
      border-color: rgba(47,111,98,.28);
      transform: translateY(-1px);
      transition: transform .12s ease, border-color .12s ease;
    }
    .card.upcoming{
      background: rgba(244,245,247,.72);
      border-color: rgba(31,36,48,.16);
      box-shadow: none;
      filter: grayscale(.2);
    }
    .card.upcoming:hover{
      transform: none;
      border-color: rgba(31,36,48,.16);
    }
    .icon{
      width: 40px;
      height: 40px;
      border-radius: 14px;
      display:grid;
      place-items:center;
      background: linear-gradient(135deg, rgba(47,111,98,.16), rgba(201,139,44,.16));
      border: 1px solid rgba(31,36,48,.08);
      margin-bottom: 10px;
      font-size: 18px;
    }
    .card h3{
      margin: 0 0 6px;
      font-family: var(--serif);
      font-size: 18px;
    }
    .card p{
      margin: 0 0 12px;
      color: var(--muted);
      font-size: 13px;
      flex: 1;
    }
    .card .links{
      display:flex;
      gap: 10px;
      flex-wrap: wrap;
      align-items:center;
      margin-top: 4px;
    }
    .pill{
      font-size: 12px;
      padding: 7px 10px;
      border-radius: 999px;
      background: rgba(47,111,98,.09);
      border: 1px solid rgba(47,111,98,.16);
      color: var(--accent);
      text-decoration:none;
    }
    .pill:hover{ text-decoration:none; filter: brightness(1.03); }

    /* Featured */
    .featured{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
    }
    .feature{
      border-radius: 18px;
      border: 1px solid rgba(31,36,48,.10);
      background: rgba(255,255,255,.78);
      padding: 14px 14px;
      box-shadow: 0 4px 14px rgba(31,36,48,.06);
    }
    .feature .meta{
      font-family: var(--mono);
      font-size: 12px;
      color: var(--muted);
      letter-spacing: .4px;
      text-transform: uppercase;
    }
    .feature h3{
      margin: 6px 0 8px;
      font-family: var(--serif);
      font-size: 18px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
    }
    .feature .recipe-title-link,
    .feature .recipe-title-link:visited{
      color: rgba(31,36,48,.92);
      text-decoration-line: underline;
      text-decoration-color: rgba(31,36,48,.22);
      text-decoration-thickness: 1px;
      text-underline-offset: 1px;
    }
    .feature .recipe-title-link:hover,
    .feature .recipe-title-link:focus-visible{
      color: var(--ink);
      text-decoration-color: rgba(31,36,48,.42);
    }
    .feature .recipe-link{
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 34px;
      height: 34px;
      border-radius: 999px;
      border: 1px solid rgba(31,36,48,.14);
      background: rgba(255,250,242,.9);
      font-size: 20px;
      line-height: 1;
      text-decoration: none;
      transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
      flex-shrink: 0;
    }
    .feature .recipe-link:hover{
      transform: translateY(-1px);
      box-shadow: 0 4px 10px rgba(31,36,48,.12);
      filter: brightness(1.02);
    }
    .feature p{ margin: 0 0 10px; color: var(--muted); font-size: 13px; }
    .feature .row{
      display:flex;
      justify-content: space-between;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 10px;
      border-top: 1px solid var(--rule);
      padding-top: 10px;
      color: var(--muted);
      font-size: 12px;
    }
    .badge{
      display:inline-flex;
      align-items:center;
      gap: 6px;
      padding: 6px 10px;
      border-radius: 999px;
      border: 1px solid rgba(31,36,48,.12);
      background: rgba(255,250,242,.85);
      color: var(--ink);
      font-size: 12px;
      white-space: nowrap;
    }

    /* Footer */
    footer{
      margin-top: 18px;
      color: var(--muted);
      font-size: 12px;
      text-align: center;
      padding: 18px 8px 0;
    }
    footer .tiny{
      font-family: var(--mono);
      letter-spacing: .35px;
      text-transform: uppercase;
      opacity: .9;
    }

    /* Responsive */
    @media (max-width: 980px){
      .hero-inner{ grid-template-columns: 1fr; }
      .hero-side{ border-left: none; border-top: 1px solid var(--rule); }
      .about{ grid-template-columns: 1fr; }
      .grid{ grid-template-columns: 1fr 1fr; }
      .featured{ grid-template-columns: 1fr; }
    }
    @media (max-width: 560px){
      h1{ font-size: 32px; }
      nav{ display:none; }
      .grid{ grid-template-columns: 1fr; }
      .statgrid{ grid-template-columns: 1fr 1fr; }
    }

    /* Print */
    @media print{
      .topbar, .cta{ display:none !important; }
      body{ background: white; }
      .hero, .section{ box-shadow:none; }
    }
  
/* Category index story text block */
.story p{margin:0 0 12px;color:var(--muted);font-size:15px}
.story p:last-child{margin-bottom:0}

/* Pizza index mini-cards */
.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.mini-card{border-radius:18px;border:1px solid rgba(31,36,48,.10);background:rgba(255,255,255,.78);padding:14px;box-shadow:0 4px 14px rgba(31,36,48,.06)}
.mini-meta{font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:uppercase}
.mini-card h3{margin:6px 0 8px;font-family:var(--serif);font-size:19px}
.mini-card .recipe-title-link,.mini-card .recipe-title-link:visited{color:rgba(31,36,48,.92);text-decoration-line:underline;text-decoration-color:rgba(31,36,48,.22);text-decoration-thickness:1px;text-underline-offset:1px}
.mini-card .recipe-title-link:hover,.mini-card .recipe-title-link:focus-visible{color:var(--ink);text-decoration-color:rgba(31,36,48,.42)}
.mini-card p{margin:0 0 10px;color:var(--muted);font-size:13px}
.mini-row{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px;border-top:1px solid var(--rule);padding-top:10px}
.mini-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;border:1px solid rgba(31,36,48,.12);background:rgba(255,250,242,.85);color:var(--ink);font-size:12px;white-space:nowrap}
.mini-card--reference{grid-column:1/-1;background:linear-gradient(135deg,rgba(47,111,98,.10),rgba(255,255,255,.82));border:1px dashed rgba(47,111,98,.45)}
.mini-card--wide{grid-column:1/-1}
.mini-card--reference .mini-meta{color:var(--accent)}
.mini-card--reference .mini-row{border-top-color:rgba(47,111,98,.22)}
.mini-card--reference .mini-badge{background:rgba(47,111,98,.12);border-color:rgba(47,111,98,.28)}

@media (max-width:900px){.mini-grid{grid-template-columns:1fr}}

/* Category index hero spacing */
.category-index .hero{padding:26px}
