  :root{
    --bg:#12130f; --panel:#181a14; --ink:#e7e4d8; --dim:#8b8d7e;
    --line:#2c2e24; --accent:#c9a24b; --accent2:#7a3b2e;
    --q-red:#c1443a; --q-orange:#d98c3d; --q-green:#7a9d5c; --q-flag:#ddd35c;
    --nav-text:#a7a998;
    --mono: 'Consolas', 'SF Mono', monospace;
    color-scheme: dark;
  }
  *{box-sizing:border-box;}
  *{ scrollbar-width:thin; scrollbar-color:var(--line) var(--bg); }
  ::-webkit-scrollbar{ width:11px; height:11px; }
  ::-webkit-scrollbar-track{ background:var(--bg); }
  ::-webkit-scrollbar-thumb{ background:var(--line); border-radius:6px; border:2px solid var(--bg); }
  ::-webkit-scrollbar-thumb:hover{ background:var(--accent2); }
  ::-webkit-scrollbar-corner{ background:var(--bg); }
  body{ margin:0; background:var(--bg); color:var(--ink); font-family: Georgia, 'Iowan Old Style', serif; line-height:1.55; zoom:1.3; }
  .wrap{ display:flex; min-height:calc(100vh / 1.3); }
  nav{
    width:240px; background:var(--panel); border-right:1px solid var(--line);
    padding:28px 18px; position:fixed; top:0; left:0; height:calc(100vh / 1.3); overflow-y:auto;
    transition:width .25s ease, padding .25s ease;
  }
  .wrap.nav-collapsed nav{
    width:0; padding-left:0; padding-right:0; border-right:none; overflow:hidden;
  }
  #nav-toggle{
    position:fixed; top:24px; left:226px; z-index:50;
    width:28px; height:28px; display:flex; align-items:center; justify-content:center;
    background:var(--panel); border:1px solid var(--line); border-radius:50%;
    color:var(--accent); font-family:var(--mono); font-size:14px; line-height:1; cursor:pointer;
    transition:left .25s ease, border-color .15s ease;
  }
  #nav-toggle:hover{ border-color:var(--accent); }
  #nav-toggle.collapsed{ left:12px; }
  nav a.section-link{
    display:block; color:var(--accent); text-decoration:none; font-size:13.5px; font-weight:800;
    text-transform:uppercase; letter-spacing:.03em; line-height:1.4; white-space:normal;
    padding:10px 0 2px 10px; border-left:2px solid transparent; transition:border-color .15s, background-color .15s;
    background-repeat:no-repeat;
  }
  nav a.section-link.active{ border-left-color:var(--accent); background-color:rgba(201,162,75,.07); }
  nav a.sub-link{
    display:block; color:var(--nav-text); text-decoration:none; font-size:11.5px; font-weight:700;
    text-transform:uppercase; letter-spacing:.02em; line-height:1.4; white-space:normal;
    padding:5px 0 5px 6px; border-left:2px solid transparent; transition:color .15s, border-color .15s;
    background-repeat:no-repeat;
  }
  nav a.sub-link:hover, nav a.sub-link:focus{ color:var(--accent); border-left-color:var(--accent); }
  nav a.sub-link.active{ color:var(--accent); border-left-color:var(--accent); }
  nav a.sub-sub-link{
    display:block; color:var(--nav-text); text-decoration:none; font-size:10px; font-weight:600;
    text-transform:uppercase; letter-spacing:.02em; line-height:1.4; white-space:normal;
    padding:4px 0 4px 6px; border-left:2px solid transparent; opacity:.85; transition:color .15s, border-color .15s;
    background-repeat:no-repeat;
  }
  nav a.sub-sub-link:hover, nav a.sub-sub-link:focus{ color:var(--accent); border-left-color:var(--accent); opacity:1; }
  nav a.sub-sub-link.active{ color:var(--accent); border-left-color:var(--accent); opacity:1; }
  .nav-section{ margin-bottom:3px; }
  .nav-row{ display:flex; align-items:center; }
  .nav-row .section-link, .nav-row .sub-link{ flex:1; min-width:0; }
  .nav-caret{
    background:none; border:none; padding:0; margin-left:2px; cursor:pointer;
    color:var(--dim); font-size:8px; width:14px; height:20px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center; transition:color .15s, transform .15s;
  }
  .nav-row.sub-row .nav-caret{ height:18px; margin-left:1px; }
  .nav-caret:hover{ color:var(--accent); }
  .nav-caret::before{ content:'▾'; }
  .nav-caret.collapsed{ transform:rotate(-90deg); }
  .nav-children{
    margin-left:9px; padding-left:11px;
    border-left:1px dashed rgba(201,162,75,.32);
  }
  main{
    flex:1; min-width:0; max-width:1750px; padding:48px 56px 120px;
    margin-left:240px; transition:margin-left .25s ease;
  }
  .wrap.nav-collapsed main{ margin-left:0; }
  @media (max-width: 900px){
    main{ padding:32px 24px 100px; }
    header.top h1{ font-size:30px; }
  }
  @media (max-width: 560px){
    main{ padding:24px 16px 90px; }
  }
  header.top{ margin-bottom:46px; border-bottom:1px solid var(--line); padding-bottom:22px; scroll-margin-top:24px; }
  header.top h1{ font-size:38px; margin:0; letter-spacing:.01em; color:var(--accent); font-weight:normal; }
  .ai-note{
    display:inline-block; font-family:var(--mono); font-size:9.5px; letter-spacing:.02em;
    color:var(--accent2); background:rgba(122,59,46,.14); border:1px solid rgba(122,59,46,.4);
    border-radius:3px; padding:1px 7px; margin-left:8px; vertical-align:1px;
  }
  .ai-note.block{ display:block; margin:8px 0 0; }
  .game-info{
    background:var(--panel); border:1px solid var(--line); border-radius:4px;
    padding:20px 24px; scroll-margin-top:24px; height:500px; overflow-y:auto; min-width:0;
  }
  @media (max-width: 899px){
    .game-info, .process-note{ height:320px; }
  }
  .game-info h2{
    font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase;
    color:var(--ink); margin:0 0 14px; border:none; padding:0;
  }
  .version-id{
    font-family:var(--mono); font-size:11px; color:var(--dim); margin-bottom:16px;
    padding-bottom:14px; border-bottom:1px solid var(--line);
  }
  .version-id strong{ color:var(--accent); font-size:13px; font-style:normal; }
  .wiki-grid{ display:flex; flex-direction:column; }
  .wiki-field{ padding:9px 0; border-bottom:1px solid var(--line); }
  .wiki-field:last-child{ border-bottom:none; }
  .wiki-label{
    font-family:var(--mono); font-size:10px; letter-spacing:.05em; text-transform:uppercase;
    color:var(--dim); margin-bottom:3px;
  }
  .wiki-value{ font-size:14px; }
  .wiki-field.empty .wiki-value{ color:var(--dim); font-style:italic; }
  section{ margin-bottom:60px; scroll-margin-top:24px; }
  section > h2{
    font-family:var(--mono); font-size:22px; letter-spacing:.1em; text-transform:uppercase;
    color:var(--accent); border-bottom:1px solid var(--line); padding-bottom:12px; margin-bottom:26px;
  }
  section > .stub-note{ font-family:var(--mono); font-size:11px; color:var(--accent2); letter-spacing:.05em; margin-bottom:18px; }
  h3.subhead{ font-family:var(--mono); font-size:17px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); margin:32px 0 13px; scroll-margin-top:24px; }
  .subhead-draft{
    display:inline-block; font-size:11px; letter-spacing:0; text-transform:none;
    color:var(--dim); font-weight:400; margin-left:10px; vertical-align:2px;
  }
  .addr{
    display:inline-block; font-size:11px; letter-spacing:0; text-transform:none;
    color:var(--dim); font-weight:400; margin-right:10px; vertical-align:2px;
  }
  h3.subhead:first-of-type{ margin-top:0; }
  h4.subsubhead{
    font-family:var(--mono); font-size:13.5px; letter-spacing:.05em; text-transform:uppercase;
    color:var(--dim); margin:26px 0 10px 16px; padding-left:10px; border-left:2px solid var(--line);
    scroll-margin-top:24px;
  }
  .status-tag{ font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:.06em; padding:2px 7px; border-radius:3px; margin-left:8px; vertical-align:2px; }
  .status-tag.negative{ background:rgba(193,68,58,.15); color:var(--q-red); }
  .status-tag.positive{ background:rgba(122,157,92,.15); color:var(--q-green); }
  .note{ margin:0 0 12px; padding-left:16px; border-left:2px solid var(--line); color:var(--dim); }
  .note a, .process-note a{ color:var(--accent); text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:2px; }
  .note a:hover, .process-note a:hover{ text-decoration-color:var(--accent); }
  .note.open{ border-left-color:var(--accent2); color:var(--dim); font-style:italic; }
  .stamp{ display:inline-block; font-family:var(--mono); font-size:10px; color:var(--dim); margin-right:8px; }
  .subtext{ display:block; margin-top:6px; padding-left:14px; font-size:12px; font-style:italic; color:var(--dim); border-left:1px dotted var(--line); }
  a.xref{ font-style:normal; }
  .backrefs{ font-family:var(--mono); font-size:10.5px; letter-spacing:.02em; color:var(--dim); margin:-8px 0 16px 16px; }
  .backrefs a{ color:var(--accent2); text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:2px; }
  .backrefs a:hover{ text-decoration-color:var(--accent2); }
  .backrefs a.ref-addr{ cursor:help; text-decoration:none; border-bottom:1px dotted var(--accent2); }
  .backrefs a.ref-addr:hover, .backrefs a.ref-addr:focus{ color:var(--accent); border-bottom-color:var(--accent); }
  .addr-tooltip{
    position:fixed; z-index:500; max-width:280px;
    background:var(--panel); border:1px solid var(--accent); border-radius:4px;
    padding:10px 14px; font-family:var(--mono); font-size:11px; line-height:1.5;
    color:var(--ink); pointer-events:none; box-shadow:0 6px 20px rgba(0,0,0,.45);
  }
  .addr-tooltip .tt-addr{ color:var(--accent); font-weight:700; margin-right:8px; }
  .addr-tooltip .tt-name{ color:var(--ink); text-transform:uppercase; letter-spacing:.03em; font-weight:700; }
  .addr-tooltip .tt-preview{ display:block; margin-top:6px; color:var(--dim); font-style:italic; font-weight:400; text-transform:none; letter-spacing:0; }
  ul{ margin:8px 0; padding-left:20px; }
  li{ margin-bottom:6px; }
  .placeholder{ color:var(--dim); font-style:italic; font-size:14px; }
  .doc-meta{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
    gap:20px; margin-bottom:20px; align-items:start;
  }
  .game-info .backrefs, .process-note .backrefs, .doc-stats .backrefs{ margin:0 0 14px; }
  .doc-stats{
    background:var(--panel); border:1px solid var(--line); border-radius:4px;
    padding:20px 24px; margin-bottom:44px; scroll-margin-top:24px;
  }
  .doc-stats h2{
    font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase;
    color:var(--ink); margin:0 0 4px; border:none; padding:0;
  }
  .doc-stats .stats-sub{ font-family:var(--mono); font-size:10.5px; color:var(--dim); margin-bottom:16px; }
  .stats-chart{ display:flex; align-items:flex-end; gap:8px; height:110px; }
  .stats-bar-col{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; }
  .stats-bar-stack{
    width:100%; max-width:32px; display:flex; flex-direction:column;
    border-radius:2px 2px 0 0; overflow:hidden;
  }
  .stats-bar-label{ font-family:var(--mono); font-size:10px; color:var(--dim); margin-top:6px; }
  .stats-legend{ display:flex; flex-wrap:wrap; gap:14px; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); }
  .stats-legend-item{ display:flex; align-items:center; gap:5px; font-family:var(--mono); font-size:10.5px; color:var(--dim); }
  .stats-legend-swatch{ width:9px; height:9px; border-radius:2px; display:inline-block; }
  .process-note{
    background:var(--panel); border:1px solid var(--accent2); border-radius:4px;
    padding:16px 20px; font-size:12px; font-family:var(--mono);
    color:var(--dim); line-height:1.55; scroll-margin-top:24px;
    height:500px; overflow-y:auto; min-width:0;
  }
  .process-note h2{
    font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase;
    color:var(--accent2); margin:0 0 10px; border:none; padding:0;
  }
  .process-note ul{ margin:0; padding-left:16px; }
  .process-note li{ margin-bottom:7px; }
  .process-note li:last-child{ margin-bottom:0; }
  .process-note ul ul{ margin:4px 0 0; padding-left:16px; }
  .process-note ul ul li{ margin-bottom:3px; }
  .process-note code{ font-family:var(--mono); font-size:11px; background:var(--bg); color:var(--ink); padding:1px 5px; border-radius:3px; }
  .q-red{ color:var(--q-red); border-left-color:var(--q-red); }
  .q-orange{ color:var(--q-orange); border-left-color:var(--q-orange); }
  .q-green{ color:var(--q-green); border-left-color:var(--q-green); }
  .established{ color:var(--ink); border-left-color:var(--ink); }
  .flagged{ color:var(--q-flag); border-left-color:var(--q-flag); }
  .note.schema{
    font-family:var(--mono); background:rgba(255,255,255,.025);
    border-radius:0 4px 4px 0; padding:14px 18px;
  }
  .note.schema .qtag{ display:block; margin-bottom:10px; }
  .schema-body{
    white-space:pre-wrap; margin:0; font-family:inherit; font-size:12.5px;
    line-height:1.7; color:inherit; overflow-x:auto;
  }
  .schema-body strong{ color:var(--accent); font-weight:700; }
  .qtag{ font-family:var(--mono); font-size:9px; text-transform:uppercase; letter-spacing:.08em; margin-right:6px; opacity:.85; }

