:root {
      --bg: #0a0a0d;
      --vignette: #07070a;
      --grain: rgba(255,255,255,0.02);
      --parch: #151314;           /* deep parchment base */
      --parch-edge: #211c1e;      /* edge shade */
      --ink: #e9e3d6;            /* bone ink */
      --muted: #bdb6a6;          /* parchment-muted */
      --accent: #b88c2a;         /* antique gold */
      --accent-2: #7a1b1b;       /* dried-blood burgundy */
      --rule: #3a2f2a;           /* etched line */
      --card-bg: #141114;
      --shadow: rgba(0,0,0,.5);
    }
    html, body { height: 100%; }
    body {
      margin: 0;
      color: var(--ink);
     background: #0a0a0d url('bg_istvan.jpg') repeat;
        background-size: 256px 256px;
      font: 20px/1.65 "EB Garamond", ui-serif, Georgia, serif;
    }
    /* subtle film grain */
    body::before {
      content: "";
      position: fixed; inset: 0; pointer-events: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/fi lter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
      mix-blend-mode: overlay; opacity: .7;
    }
    .wrap { max-width: 980px; margin: 0 auto; padding: 28px 18px 72px; }

    header { margin-bottom: 18px; }
    .tag { font-variant: small-caps; font-size: 16px; letter-spacing: .08em; color: var(--muted); }
    h1 { font-family: Cinzel, ui-serif, Georgia, serif; font-size: 44px; margin: 4px 0 4px; letter-spacing: .02em; color: var(--ink); text-shadow: 0 1px 0 #000; }
    .sub { color: var(--muted); font-size: 18px; }
    .tagline { margin-top: 4px; color: var(--accent); font-style: italic; }

    .badgebar { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
    .pill {
      display: inline-flex; align-items: center; gap: 8px;
      border: 1px solid var(--rule); color: var(--muted);
      background: linear-gradient(180deg, #171315, #120f10 40%, #0b0a0c);
      padding: 6px 10px; border-radius: 999px; font-size: 15px;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 2px 6px var(--shadow);
    }

    .grid { display: grid; gap: 16px; grid-template-columns: repeat(12, 1fr); }

    .card { padding: 15px;grid-column: span 12; border: 1px solid var(--rule);
      background:
        linear-gradient(180deg, rgba(255,255,255,0.02), transparent 40%),
        radial-gradient(1200px 800px at -10% -30%, rgba(184,140,42,0.06), transparent 60%),
        linear-gradient(180deg, #161213, #120f10 60%, #0d0b0c);
      border-radius: 14px; box-shadow: 0 14px 40px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,0.02);
        margin-bottom: 25px;
    }
    .card > .pad { padding: 18px; }

    .card h2 { margin: 0 0 10px; font-family: Cinzel, ui-serif, Georgia, serif; font-size: 22px; letter-spacing: .5px; }
    .muted { color: var(--muted); }

    /* etched dividers with rune */
    .rune { --c: var(--rule); height: 1px; background: linear-gradient(90deg, transparent, var(--c), transparent); position: relative; margin: 10px 0 14px; }
    .rune::after { content: "✶"; position: absolute; left: 50%; top: -9px; transform: translateX(-50%); font-size: 16px; color: var(--accent); background: #120f10; padding: 0 6px; }

    details { border: 1px solid var(--rule); border-radius: 12px; background: #120f10; }
    details + details { margin-top: 12px; }
    summary { cursor: pointer; padding: 14px 16px; list-style: none; }
    summary::-webkit-details-marker { display: none }
    summary:focus { outline: none; }
    .sum { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
    .sum .title { font-weight: 600; font-variant: small-caps; letter-spacing: .06em; }
    .sum .meta { color: var(--muted); font-size: 15px; }
    .panel { padding: 0 16px 16px; }

    .rules { display: grid; gap: 6px; padding-left: 18px; }
    .rules li { margin-left: 12px; }

    .toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 10px 0 12px; }
    input[type="search"] {
      background: #0c0b0d; border: 1px solid var(--rule); color: var(--ink); border-radius: 10px; padding: 10px 12px; width: 280px;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
    }
    button { border: 1px solid var(--rule); background: linear-gradient(180deg, #171315, #100e0f); color: var(--ink); border-radius: 10px; padding: 10px 12px; cursor: pointer; font-variant: small-caps; letter-spacing: .05em; }
    button:hover { filter: brightness(1.1); }

    ul.banlist { list-style: none; margin: 0; padding: 0; }
    ul.banlist li { padding: 8px 10px; border-bottom: 1px dashed var(--rule); display: flex; align-items: center; justify-content: space-between; gap: 8px; }
    ul.banlist li small { color: var(--muted); }
    ul.banlist li:last-child { border-bottom: 0; }

    footer { margin-top: 26px; color: var(--muted); font-size: 15px; }
    a { color: var(--accent); text-decoration: none; }
    a:hover { text-decoration: underline; }

    @media (min-width: 860px) {
      .card.rules-card { grid-column: span 5; }
      .card.ban-card { grid-column: span 7; }
    }