:root{--bg:#f4ecd8;--paper:#fbf6ea;--ink:#2c241b;--muted:#6a573e;--line:#d8c7a1;--head:#e9dcb8;--link:#2f5d7c;--accent:#a8551e;--ib:#efe4c8;--hl:#fff3c4}
:root[data-theme="dark"]{--bg:#17130f;--paper:#211b15;--ink:#efe4c8;--muted:#b9a274;--line:#4a3a2a;--head:#2e251c;--link:#8cbfe0;--accent:#e9b23a;--ib:#2a2119;--hl:#3a2f1a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#17130f;--paper:#211b15;--ink:#efe4c8;--muted:#b9a274;--line:#4a3a2a;--head:#2e251c;--link:#8cbfe0;--accent:#e9b23a;--ib:#2a2119;--hl:#3a2f1a}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 "Alegreya Sans",ui-sans-serif,system-ui,sans-serif}
a{color:var(--link)}a:hover{text-decoration:underline}
.top{position:sticky;top:0;z-index:5;display:flex;gap:12px;align-items:center;padding:8px 16px;background:var(--paper);border-bottom:2px solid var(--line)}
.brand{display:flex;gap:8px;align-items:center;text-decoration:none;color:var(--ink);font:700 1.15rem/1 Georgia,"IM Fell English",serif;white-space:nowrap}
.brand img{border-radius:8px}
.search{position:relative;flex:1;max-width:520px}.search input{width:100%;padding:8px 12px;border:2px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit}
.hits{position:absolute;left:0;right:0;top:100%;margin-top:4px;background:var(--paper);border:2px solid var(--line);border-radius:8px;max-height:60vh;overflow:auto;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.hits a{display:block;padding:8px 12px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}.hits a:hover,.hits a.on{background:var(--hl)}.hits small{display:block;color:var(--muted)}
.menu{display:none;border:2px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:6px 10px;font:inherit;cursor:pointer}
.theme{border:2px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:6px 10px;font:inherit;cursor:pointer}
.play{background:var(--accent);color:#fff8e6;text-decoration:none;padding:7px 12px;border-radius:8px;font-weight:700;white-space:nowrap}
.shell{display:grid;grid-template-columns:220px minmax(0,1fr);max-width:1280px;margin:0 auto}
.side{padding:16px;border-right:2px solid var(--line);font-size:.92rem}.side h3{font:700 .8rem/1.2 inherit;letter-spacing:.02em;color:var(--muted);margin:16px 0 4px}.side ul{list-style:none;margin:0;padding:0}.side li{margin:2px 0}
.page{padding:16px 24px 40px;background:var(--paper);min-height:80vh}
.page h1{font:400 2.1rem/1.15 Georgia,"IM Fell English",serif;margin:4px 0 12px;border-bottom:2px solid var(--line);padding-bottom:6px}
.page h2{font:400 1.45rem/1.2 Georgia,"IM Fell English",serif;border-bottom:1px solid var(--line);margin:28px 0 10px;padding-bottom:4px;clear:none}
.crumbs{font-size:.85rem;color:var(--muted)}
.lead{font-size:1.05rem}
.infobox{float:right;clear:right;width:300px;margin:0 0 16px 20px;background:var(--ib);border:2px solid var(--line);border-radius:8px;overflow:hidden;font-size:.9rem}
.ib-title{background:var(--head);font:700 1.05rem/1.3 Georgia,serif;text-align:center;padding:8px}
.ib-img{text-align:center;padding:10px;background:var(--paper)}.ib-img img{image-rendering:pixelated;max-width:100%}.ib-art{width:160px;height:auto}.ib-wide{width:100%;height:auto}
.infobox table{width:100%;border-collapse:collapse}.infobox th{text-align:left;width:40%;padding:5px 8px;vertical-align:top;color:var(--muted);font-weight:600}.infobox td{padding:5px 8px}.infobox tr+tr{border-top:1px solid var(--line)}
.tablewrap{overflow-x:auto;margin:10px 0}
.wikitable{border-collapse:collapse;min-width:60%;font-size:.92rem;background:var(--paper)}
.wikitable th{background:var(--head);text-align:left;padding:6px 10px;border:1px solid var(--line);white-space:nowrap}
.wikitable td{padding:6px 10px;border:1px solid var(--line);vertical-align:top}
.wikitable tbody tr:nth-child(even){background:color-mix(in srgb,var(--ib) 50%,transparent)}
.sortable th{cursor:pointer;user-select:none}.sortable th::after{content:" ⇅";color:var(--muted);font-size:.75em}
.thumb img{width:28px;height:28px;vertical-align:middle;image-rendering:pixelated;object-fit:contain}
.stars{color:var(--accent);letter-spacing:1px;white-space:nowrap}
.gallery{display:flex;flex-wrap:wrap;gap:10px}.gallery figure{margin:0;text-align:center;font-size:.8rem;color:var(--muted)}.gallery img{width:96px;height:120px;object-fit:contain;image-rendering:pixelated;background:var(--ib);border:1px solid var(--line);border-radius:6px}
.toc{display:inline-block;background:var(--ib);border:1px solid var(--line);border-radius:6px;padding:8px 16px;margin:4px 0 12px;font-size:.92rem}.toc ol{margin:4px 0 0;padding-left:20px}
.navbox{width:100%;border-collapse:collapse;margin:28px 0 10px;font-size:.88rem;clear:both}.navbox th,.navbox td{border:1px solid var(--line);padding:6px 10px;text-align:left;vertical-align:top}.navbox th{background:var(--head);white-space:nowrap}.navbox tr:first-child th{text-align:center}
.cats{clear:both;margin-top:20px;padding:8px 12px;border:1px solid var(--line);background:var(--ib);border-radius:6px;font-size:.9rem}
.note{color:var(--muted);font-size:.9rem}.codexfoot{font-size:.88rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:6px}
.cols{columns:3 180px}
.portals{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:12px 0}.portal{display:block;background:var(--ib);border:2px solid var(--line);border-radius:10px;padding:12px;text-decoration:none;color:var(--ink)}.portal b{display:block;font:400 1.15rem Georgia,serif;color:var(--link)}.portal span{font-size:.85rem;color:var(--muted)}
.codexlines li{margin:4px 0}
.lang{position:relative;font-size:.9rem}.lang summary{list-style:none;cursor:pointer;border:2px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:6px 10px;white-space:nowrap}.lang summary::-webkit-details-marker{display:none}.lang ul{position:absolute;right:0;top:100%;margin:4px 0 0;padding:4px 0;list-style:none;background:var(--paper);border:2px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.18);z-index:6;min-width:11em}.lang li a{display:block;padding:6px 14px;text-decoration:none;color:var(--ink)}.lang li a:hover,.lang li a[aria-current]{background:var(--hl)}
footer{text-align:center;color:var(--muted);font-size:.85rem;padding:16px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media (max-width:860px){.menu{display:inline-block}.shell{grid-template-columns:1fr}.side{display:none;border-right:0;border-bottom:2px solid var(--line);padding:8px 16px;columns:2 150px}.menu-open .side{display:block}.side .navgroup{break-inside:avoid}.side h3{margin-top:4px}.page{padding:12px 16px 32px}.infobox{float:none;width:100%;margin:0 0 16px}.top{flex-wrap:wrap}.search{order:3;flex-basis:100%;max-width:none}.brand span{font-size:1rem}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.skip{position:absolute;left:8px;top:-60px;z-index:10;background:var(--accent);color:#fff8e6;padding:8px 12px;border-radius:8px;font-weight:700}.skip:focus{top:8px}
.grow{flex:1}
.newsnav{background:var(--paper);border-bottom:2px solid var(--line)}.newsnav ul{display:flex;flex-wrap:wrap;gap:4px 16px;list-style:none;margin:0 auto;padding:8px 16px;max-width:980px}
.newsnav a{display:inline-block;padding:6px 2px;font-weight:600}.newsnav a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-decoration-thickness:3px;text-decoration-color:var(--accent);text-underline-offset:6px}
.page.news{max-width:980px;margin:0 auto;min-height:70vh}.page.news:focus{outline:none}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:12px 0}
.card{background:var(--ib);border:2px solid var(--line);border-radius:10px;padding:12px 16px}.card h2,.card h3{font:400 1.25rem/1.25 Georgia,"IM Fell English",serif;margin:0 0 4px;border:0;padding:0}.card p{margin:6px 0}
.roadmap{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:12px 0}
.roadmap .col{background:var(--ib);border:2px solid var(--line);border-top-width:6px;border-radius:10px;padding:10px 16px}.roadmap .col-now{border-top-color:var(--accent)}.roadmap .col-next{border-top-color:var(--link)}
.roadmap .col h2,.roadmap .col h3{margin:4px 0;border:0;padding:0;font:400 1.4rem/1.2 Georgia,"IM Fell English",serif}
.roadmap ul{list-style:none;margin:0;padding:0}.roadmap li{padding:10px 0;border-top:1px solid var(--line)}.roadmap li b{display:block}.roadmap li span{display:block;font-size:.95rem}
.patch{margin-bottom:24px}.patch h3{font-size:1.05rem;margin:14px 0 4px}
.poll{background:var(--ib);border:2px solid var(--line);border-radius:10px;padding:12px 16px;margin:12px 0}.poll h2{margin-top:4px}
.poll ol{list-style:none;margin:8px 0;padding:0}.poll li{margin:8px 0}.poll .bar{height:10px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:3px}.poll .bar i{display:block;height:100%;background:var(--accent)}
.tag{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:0 8px;font-size:.8rem;margin-left:6px;vertical-align:middle}
