  :root{
    --ink:#1b1f1d;
    --ivory:#f2ead9;
    --paper:#faf6ec;
    --felt:#2f4a3c;
    --felt-deep:#203527;
    --brass:#a97b3f;
    --brass-bright:#c99a5b;
    --claret:#7e3131;
    --mist:#6f776f;
    --line: rgba(27,31,29,0.14);

    --bg: var(--paper);
    --bg-raised: #ffffff;
    --text: #23271f;
    --text-dim: #565f52;
    --accent: var(--brass);
    --accent-text: #ffffff;
    --felt-text: #3a6a52;
    --board-a: rgba(27,31,29,0.05);
    --board-b: rgba(27,31,29,0.10);
  }
  @media (prefers-color-scheme: dark){
    :root{
      --bg: #14201a;
      --bg-raised: #1b2c22;
      --text: #ece4d2;
      --text-dim: #a9b3a4;
      --line: rgba(242,234,217,0.14);
      --accent: var(--brass-bright);
      --accent-text: #1b1f1d;
      --felt-text: var(--brass-bright);
      --board-a: rgba(242,234,217,0.04);
      --board-b: rgba(242,234,217,0.09);
    }
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family: -apple-system, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family: Georgia, "Iowan Old Style", "Palatino Linotype", "Times New Roman", serif;
    font-weight:600;
    text-wrap:balance;
    color:var(--text);
    margin:0;
  }
  .mono{
    font-family: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;
    font-variant-numeric: tabular-nums;
  }
  a{color:inherit;}
  .wrap{max-width:1080px;margin:0 auto;padding:0 24px;}

  header.site{
    position:sticky; top:0; z-index:40;
    background:var(--bg);
    border-bottom:1px solid var(--line);
  }
  .navbar{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 24px; max-width:1080px; margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
  .brand svg{width:28px;height:28px;color:var(--accent);flex:none;}
  .brand-text{font-family:Georgia,serif; font-size:1.15rem; font-weight:700; letter-spacing:0.01em;}
  .brand-text small{display:block; font-family:-apple-system,sans-serif; font-weight:500; font-size:0.62rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--text-dim);}
  nav.links{display:flex; gap:28px; align-items:center;}
  nav.links a{
    font-size:0.92rem; text-decoration:none; color:var(--text-dim);
    padding:6px 0; border-bottom:2px solid transparent;
  }
  nav.links a:hover, nav.links a:focus-visible{color:var(--text); border-color:var(--accent);}
  nav.links a.ig{
    display:flex; align-items:center; gap:6px; color:var(--felt-text);
    background:var(--board-b); padding:6px 12px; border-radius:100px;
  }
  .menu-toggle{display:none;}
  .burger{display:none;}

  @media (max-width: 780px){
    nav.links{
      position:absolute; top:100%; left:0; right:0;
      flex-direction:column; align-items:flex-start; gap:2px;
      background:var(--bg); border-bottom:1px solid var(--line);
      padding:8px 24px 18px; max-height:0; overflow:hidden;
    }
    nav.links a{padding:10px 0; width:100%; border-bottom:none;}
    .menu-toggle:checked ~ nav.links{max-height:400px;}
    .burger{
      display:flex; flex-direction:column; gap:5px; width:26px; cursor:pointer;
      background:none; border:none; padding:6px;
    }
    .burger span{display:block; width:100%; height:2px; background:var(--text);}
  }

  .hero{
    position:relative; overflow:hidden;
    border-bottom:1px solid var(--line);
  }
  .hero-board{
    position:absolute; top:-12%; right:-14%; width:62%; aspect-ratio:1;
    opacity:0.55; pointer-events:none;
  }
  @media (max-width:780px){ .hero-board{width:100%; right:-30%; top:-6%; opacity:0.35;} }
  .hero-inner{
    position:relative; max-width:1080px; margin:0 auto; padding:88px 24px 76px;
  }
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase;
    color:var(--felt-text); font-weight:700; margin-bottom:18px;
  }
  .eyebrow::before{content:""; width:22px; height:1.5px; background:currentColor;}
  h1.headline{font-size:clamp(2.2rem, 5vw, 3.6rem); max-width:14ch; line-height:1.05;}
  .hero-sub{max-width:52ch; color:var(--text-dim); font-size:1.08rem; margin-top:18px;}
  .hero-meta{
    margin-top:22px; font-size:0.98rem; color:var(--text);
    display:flex; gap:10px; align-items:baseline; flex-wrap:wrap;
  }
  .hero-meta b{font-weight:700;}
  .cta-row{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:13px 24px; border-radius:3px; text-decoration:none;
    font-size:0.95rem; font-weight:600; border:1px solid transparent;
    transition:transform 0.15s ease, background 0.15s ease;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-primary{background:var(--accent); color:var(--accent-text);}
  .btn-ghost{border-color:var(--line); color:var(--text);}
  .btn-ghost:hover{border-color:var(--felt);}

  .strip{background:var(--felt); color:#f2ead9;}
  @media (prefers-color-scheme: dark){ .strip{background:#0e1712;} }
  .strip-inner{
    max-width:1080px; margin:0 auto; padding:20px 24px;
    display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  }
  .tag-live{
    background:var(--claret); color:#fff; font-size:0.68rem; font-weight:700;
    letter-spacing:0.1em; text-transform:uppercase; padding:5px 10px; border-radius:2px; flex:none;
  }
  .strip-text{font-size:0.95rem; opacity:0.95;}
  .strip-text a{text-decoration:underline; text-underline-offset:2px;}
  .strip-text b{color:var(--brass-bright);}

  section{padding:76px 0;}
  .section-head{max-width:640px; margin-bottom:44px;}
  .section-head .kicker{
    font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--text-dim); font-weight:700; margin-bottom:10px; display:block;
  }
  .section-head h2{font-size:clamp(1.5rem,3vw,2.1rem);}
  .section-head p{color:var(--text-dim); margin-top:12px; font-size:1.02rem; max-width:56ch;}
  .alt{background:var(--board-a);}

  .steps{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
  @media (max-width:780px){.steps{grid-template-columns:1fr;}}
  .step{
    background:var(--bg-raised); border:1px solid var(--line); border-radius:6px;
    padding:28px 26px;
  }
  .step .num{
    font-family:Georgia,serif; font-size:1.6rem; color:var(--accent); font-weight:700; display:block; margin-bottom:12px;
  }
  .step h3{font-size:1.1rem; margin-bottom:8px;}
  .step p{color:var(--text-dim); font-size:0.95rem; margin:0;}

  .results-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:start;}
  @media (max-width:820px){.results-grid{grid-template-columns:1fr;}}
  table.crosstable{width:100%; border-collapse:collapse; font-size:0.92rem;}
  table.crosstable caption{
    text-align:left; font-family:Georgia,serif; font-weight:700; font-size:1.02rem;
    padding-bottom:10px; color:var(--text);
  }
  table.crosstable th{
    text-align:left; font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--text-dim); border-bottom:1px solid var(--line); padding:8px 10px 8px 0; font-weight:700;
  }
  table.crosstable td{padding:9px 10px 9px 0; border-bottom:1px solid var(--line);}
  table.crosstable tr:last-child td{border-bottom:none;}
  .place{color:var(--accent); font-weight:700;}
  .archive-note{
    margin-top:22px; padding-top:18px; border-top:1px dashed var(--line);
    font-size:0.9rem; color:var(--text-dim);
  }
  .archive-note a{color:var(--felt-text); font-weight:700; text-decoration:none;}

  .side-card{
    background:var(--felt); color:#f2ead9; border-radius:6px; padding:30px 28px;
  }
  @media (prefers-color-scheme: dark){ .side-card{background:#0e1712;} }
  .side-card h3{color:#f2ead9; font-size:1.15rem; margin-bottom:10px;}
  .side-card p{color:#cdd6c9; font-size:0.93rem; margin:0 0 18px;}
  .side-card .btn-primary{background:var(--brass-bright); color:#1b1f1d;}

  .join-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:6px; overflow:hidden;}
  @media (max-width:780px){.join-grid{grid-template-columns:repeat(2,1fr);}}
  .plan{background:var(--bg-raised); padding:26px 22px;}
  .plan .rate{font-family:Georgia,serif; font-size:1.7rem; font-weight:700; margin:10px 0 4px;}
  .plan .rate span{font-size:0.85rem; font-weight:400; color:var(--text-dim);}
  .plan .label{font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-dim); font-weight:700;}
  .plan .note{font-size:0.85rem; color:var(--text-dim); margin-top:6px;}
  .pay-note{
    margin-top:22px; display:flex; gap:12px; align-items:flex-start;
    background:var(--board-a); border:1px solid var(--line); border-radius:6px; padding:16px 18px;
    font-size:0.9rem; color:var(--text-dim);
  }
  .pay-note svg{flex:none; width:18px; height:18px; margin-top:2px; color:var(--felt-text);}

  .ig-head{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:30px;}
  .ig-stats{display:flex; gap:22px; font-size:0.9rem; color:var(--text-dim);}
  .ig-stats b{display:block; font-family:Georgia,serif; font-size:1.3rem; color:var(--text); font-weight:700;}
  .ig-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:10px;}
  @media (max-width:820px){.ig-grid{grid-template-columns:repeat(3,1fr);}}
  .ig-tile{
    aspect-ratio:1; border-radius:4px; position:relative; overflow:hidden;
    display:flex; align-items:flex-end; padding:10px;
  }
  .ig-tile span{
    font-size:0.68rem; color:#fff; font-weight:600; text-shadow:0 1px 3px rgba(0,0,0,0.5);
    line-height:1.2;
  }
  .ig-tile::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.55));}
  .t1{background:linear-gradient(135deg,#2f4a3c,#0e1712);}
  .t2{background:linear-gradient(135deg,#a97b3f,#5c3d1c);}
  .t3{background:linear-gradient(135deg,#7e3131,#2a1010);}
  .t4{background:repeating-conic-gradient(#3a3f38 0% 25%, #eae2d0 0% 50%) 0 0/28px 28px;}
  .t5{background:linear-gradient(135deg,#516b5a,#1b2c22);}
  .t6{background:linear-gradient(135deg,#c99a5b,#7e3131);}

  footer{background:var(--felt); color:#e9e2d1; padding:56px 0 28px;}
  @media (prefers-color-scheme: dark){ footer{background:#0e1712;} }
  .foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:36px; padding-bottom:36px; border-bottom:1px solid rgba(233,226,209,0.15);}
  @media (max-width:780px){.foot-grid{grid-template-columns:1fr; gap:28px;}}
  footer h4{font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:#c9bfa0; margin-bottom:14px; font-family:-apple-system,sans-serif; font-weight:700;}
  footer p, footer li{color:#cdd6c9; font-size:0.92rem;}
  footer ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px;}
  footer a{text-decoration:none;}
  footer a:hover{text-decoration:underline;}
  .foot-bottom{
    max-width:1080px; margin:0 auto; padding:22px 24px 0;
    display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
    font-size:0.78rem; color:#9aa89c;
  }

/* ---------- Tournament detail pages ---------- */
.t-page{padding:44px 0 76px;}
.t-crumb{font-size:0.82rem; color:var(--text-dim); margin-bottom:14px;}
.t-crumb a{color:var(--text-dim); text-decoration:none;}
.t-crumb a:hover{color:var(--text);}
.t-head{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin-bottom:8px;}
.t-head h1{font-size:clamp(1.5rem,3.5vw,2.1rem);}
.t-year-badge{
  font-family: ui-monospace,"SF Mono",Menlo,Consolas,monospace; font-size:0.78rem; font-weight:700;
  color:var(--accent-text); background:var(--accent); padding:3px 10px; border-radius:100px; flex:none;
}
.t-winner{color:var(--text-dim); font-size:1rem; margin:6px 0 28px;}
.t-winner b{color:var(--text); font-weight:700;}

.t-details{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:6px; overflow:hidden; margin-bottom:32px;
}
.t-details div{background:var(--bg-raised); padding:14px 16px;}
.t-details .label{display:block; font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-dim); font-weight:700; margin-bottom:4px;}
.t-details .value{font-size:0.92rem;}

.t-links{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:32px;}
.t-links a{
  display:inline-flex; align-items:center; gap:6px; font-size:0.86rem; font-weight:600;
  padding:8px 14px; border-radius:100px; text-decoration:none;
  background:var(--board-b); color:var(--felt-text);
}
.t-links a:hover{background:var(--board-a); filter:brightness(1.1);}

.t-section{margin-bottom:36px;}
.t-section h2{font-size:1.05rem; font-family:Georgia,serif; font-weight:700; margin:0 0 14px;}
.t-section h3{font-size:0.95rem; font-weight:700; margin:20px 0 10px; color:var(--text-dim);}
.t-section p{color:var(--text); font-size:0.95rem; max-width:70ch; margin:0 0 12px;}

.table-scroll{overflow-x:auto; border:1px solid var(--line); border-radius:8px; margin-bottom:18px;}
table.matrix-table, table.swiss-table{border-collapse:collapse; width:100%; font-size:0.84rem; min-width:560px;}
table.matrix-table caption, table.swiss-table caption{
  text-align:left; padding:10px 12px; font-family:Georgia,serif; font-weight:700; font-size:0.98rem;
  background:var(--board-a); border-bottom:1px solid var(--line);
}
table.matrix-table th, table.swiss-table th{
  background:var(--felt); color:#f2ead9; padding:9px 8px; text-align:center; font-size:0.7rem;
  letter-spacing:0.04em; white-space:nowrap;
}
table.matrix-table th:nth-child(2), table.swiss-table th:nth-child(2){text-align:left;}
table.matrix-table td, table.swiss-table td{padding:8px; text-align:center; border-bottom:1px solid var(--line); font-size:0.83rem;}
table.matrix-table td.rank, table.swiss-table td.rank{color:var(--text-dim); font-family:ui-monospace,monospace;}
table.matrix-table td.name, table.swiss-table td.name{text-align:left; font-weight:600; white-space:nowrap;}
table.matrix-table td.total, table.swiss-table td.total{font-weight:700; color:var(--accent);}
table.matrix-table tr:nth-child(odd), table.swiss-table tr:nth-child(odd){background:var(--bg-raised);}
td.res{font-family:ui-monospace,monospace; font-weight:700;}
td.res.win{color:#2f8a5c;}
td.res.loss{color:#b5544f;}
td.res.draw{color:var(--accent);}
td.res.self{color:var(--line);}
:root[data-theme="dark"] td.res.win, @media (prefers-color-scheme:dark){td.res.win{color:#7fbf9a;}}
:root[data-theme="dark"] td.res.loss, @media (prefers-color-scheme:dark){td.res.loss{color:#d98a8a;}}

.legacy-note{
  display:flex; gap:10px; align-items:flex-start; background:var(--board-a); border:1px solid var(--line);
  border-radius:6px; padding:12px 16px; margin-bottom:14px; font-size:0.84rem; color:var(--text-dim);
}
.legacy-pre{
  background:var(--bg-raised); border:1px solid var(--line); border-radius:8px; padding:16px 18px;
  overflow-x:auto; font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace; font-size:0.78rem;
  line-height:1.5; color:var(--text); margin-bottom:18px; white-space:pre;
}

/* ---------- Archive index ---------- */
.archive-toolbar{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:24px; align-items:center;}
.archive-search{
  flex:1; min-width:200px; padding:11px 16px; border-radius:6px; border:1px solid var(--line);
  background:var(--bg-raised); color:var(--text); font-size:0.94rem;
}
.archive-search:focus{outline:2px solid var(--accent); outline-offset:1px;}
.archive-year-select{
  padding:11px 14px; border-radius:6px; border:1px solid var(--line); background:var(--bg-raised); color:var(--text); font-size:0.9rem;
}
.archive-count{font-size:0.84rem; color:var(--text-dim); margin-bottom:14px;}
.archive-table-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:8px;}
table.archive-table{width:100%; border-collapse:collapse; font-size:0.9rem; min-width:640px;}
table.archive-table th{
  text-align:left; padding:12px 14px; font-size:0.7rem; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--text-dim); border-bottom:1px solid var(--line); background:var(--board-a); cursor:pointer; user-select:none;
  white-space:nowrap;
}
table.archive-table th:hover{color:var(--text);}
table.archive-table td{padding:12px 14px; border-bottom:1px solid var(--line);}
table.archive-table tr.hidden{display:none;}
table.archive-table tr:hover td{background:var(--board-a);}
table.archive-table a{color:var(--text); text-decoration:none; font-weight:600;}
table.archive-table a:hover{color:var(--felt-text);}
table.archive-table td.winner{color:var(--text-dim);}
table.archive-table td.year{font-family:ui-monospace,monospace; color:var(--accent); font-weight:700;}
