/* The site's reading pages: lessons, techniques, privacy and terms. Same colors as the game; lessons wear its blue. */
:root{--page:#f8f8f5;--paper:#fff;--ink:#243531;--muted:#5f6d69;--green:#23695b;--mint:#e6f0eb;--line:#dce2dc;--accent:var(--green);--tint:var(--mint);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:var(--ink);font-size:17px;line-height:1.65;-webkit-text-size-adjust:100%}
body.blue{--accent:#2f5f8a;--tint:#e5edf6;--ink:#1f3550;--muted:#5d7089;--line:#d9e2ec;color:var(--ink)}
*{box-sizing:border-box}
html{scrollbar-gutter:stable}
body{margin:0;background:var(--page)}
a{color:var(--accent)}
h1,h2,h3{font-weight:620;letter-spacing:-.02em;line-height:1.18;margin:0 0 14px}
h1{font-size:clamp(34px,5vw,50px);letter-spacing:-.035em}
h2{font-size:clamp(23px,3vw,28px);margin-top:40px}
h3{font-size:18px}
p{margin:0 0 16px}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}

/* Header: the same bar as the game on a computer. */
.top{background:var(--paper);border-bottom:1px solid #dce2dc;position:sticky;top:0;z-index:5}
.top-in{max-width:1240px;margin:0 auto;height:68px;padding:0 32px;display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:center;gap:10px;color:#243531;text-decoration:none;font-size:22px;font-weight:650;letter-spacing:-.03em}
.brand svg{color:#23695b}.brand b{font-weight:400;color:#23695b}
.top nav{display:flex;gap:4px;margin:0 auto}
.top nav a{color:#5f6d69;text-decoration:none;font-size:15px;padding:10px 16px;border-radius:9px}
.top nav a:hover{color:#23695b;background:#e6f0eb}
.top nav a{font-weight:500}.top nav a[aria-current="page"]{color:#23695b;background:#e6f0eb}
.pill{color:#fff;background:#23695b;text-decoration:none;font-size:15px;font-weight:600;padding:10px 20px;border-radius:22px;white-space:nowrap}
.pill:hover{background:#195546}
@media(max-width:820px){.top-in{padding:0 16px;gap:10px;height:60px}.top nav{margin:0 0 0 auto;gap:0}.top nav a{padding:8px 9px;font-size:14px}.top nav a:first-child{display:none}.pill{display:none}}
@media(max-width:420px){.brand span{display:none}}

/* Reading column. */
.doc{max-width:760px;margin:0 auto;padding:40px 24px 72px}
.doc.wide{max-width:1080px}
.crumbs{font-size:14px;color:var(--muted);margin-bottom:22px}
.crumbs a{text-decoration:none}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.lead{font-size:20px;line-height:1.55;color:var(--muted);max-width:40em}
.doc h2{margin-top:44px}
.doc section>p,.doc li{font-size:17px}
.example{background:var(--tint);border-left:3px solid var(--accent);border-radius:0 10px 10px 0;padding:14px 18px;font-size:16px}
.example span{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}
.plain-rule{background:var(--tint);border-radius:10px;padding:12px 16px;font-size:16px;margin:12px 0 0}
.coord{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;color:var(--accent);white-space:nowrap}
.check{margin-top:44px;padding:22px 24px;background:var(--paper);border:1px solid var(--line);border-radius:14px}
.check h2{margin-top:0}
.check details{margin-top:8px}
summary{cursor:pointer;color:var(--accent);font-weight:600}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin:40px 0 8px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;font-size:16px;font-weight:600;text-decoration:none}
.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.button:hover{filter:brightness(.96)}
.up-next,.source{font-size:15px;color:var(--muted)}
.related ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.related a{display:inline-block;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);text-decoration:none;font-size:15px}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}
.pager a{display:flex;flex-direction:column;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper);text-decoration:none;font-weight:600;font-size:16px}
.pager a.next{text-align:right;grid-column:2}
.pager small{font-weight:500;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}

/* Worked example: two boards side by side, then the reasoning, step by step. */
.boards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:22px 0 8px}
@media(max-width:640px){.boards{grid-template-columns:1fr}}
.sboard{margin:0}
.sboard figcaption{font-size:14px;color:var(--muted);text-align:center;margin-top:8px}
.sgrid{display:grid;grid-template-columns:repeat(9,1fr);aspect-ratio:1;border:2px solid #6e8196;border-radius:6px;background:#fff;overflow:hidden}
.sgrid>div{position:relative;display:grid;place-items:center;border-right:1px solid #e1e7ee;border-bottom:1px solid #e1e7ee;min-width:0}
.sgrid>div:nth-child(9n){border-right:0}.sgrid>div:nth-child(n+73){border-bottom:0}
.sgrid>.br{border-right:2px solid #9fb0c2}.sgrid>.bb{border-bottom:2px solid #9fb0c2}
.sgrid>.ev{background:#fbefc8}.sgrid>.end{background:#dbefdf}.sgrid>.ctx{background:#eef2f7}
.sgrid .v{font-size:clamp(15px,3.1vw,24px);line-height:1}.sgrid .g{color:#1f3550;font-weight:520}.sgrid .e{color:#2f6f9a}
.sgrid .c{position:absolute;inset:1px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);font-size:clamp(6.5px,1.15vw,9.5px);line-height:1;color:#6d7f93}
.sgrid .c i{font-style:normal;display:grid;place-items:center}
.sgrid .c .dim{opacity:.3}
.sgrid .c .x{color:#fff;background:#c0564b;border-radius:2px;font-weight:700;text-decoration:line-through}
.sgrid .c .p{color:#fff;background:#2f7a5f;border-radius:50%;font-weight:700}
.steps{padding-left:22px;margin:24px 0 0}
.steps li{margin-bottom:18px}
.steps h3{margin-bottom:4px;font-size:17px}
.steps li>div{color:var(--muted)}
.steps b{color:var(--ink)}

/* The lesson index. */
.index{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:720px){.index{grid-template-columns:1fr}}
.index a{display:block;height:100%;padding:14px 18px;border:1px solid var(--line);border-radius:12px;background:var(--paper);text-decoration:none;color:var(--ink)}
.index a:hover{border-color:#a9bfd6}
.index b{display:block;font-size:16px;color:var(--accent)}
.index small{display:block;font-size:14px;line-height:1.5;color:var(--muted);margin-top:3px}
ol.index{counter-reset:basics}

/* Privacy and terms. */
.doc .updated{color:var(--muted);font-size:14px}

/* Footer: the same one sits under the game. */
.foot{border-top:1px solid #dce2dc;padding:44px 0 32px;font-size:15px;color:#5f6d69;background:#f1f3ee}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}.foot-about{grid-column:1 / -1}}
.foot h2{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#243531;margin:0 0 12px}
.foot nav{display:flex;flex-direction:column;gap:8px}
.foot nav a,.foot nav span{color:#5f6d69;text-decoration:none}
.foot nav a:hover{color:#23695b}
.foot .brand{font-size:20px;margin-bottom:10px}
.foot p{margin:0;max-width:26em}
.foot .fine{margin:32px auto 0;font-size:13px;max-width:1120px}

/* The site's own hand: serif headings, and the same notebook margin rule as the game on a computer. */
:root{--serif:ui-serif,'New York','Iowan Old Style',Georgia,serif;--rule:#efc6b8}
h1,h2,.pager a,.index b{font-family:var(--serif)}
h1,h2{font-weight:600}
.doc{border-left:2px solid var(--rule);padding-left:44px;margin-top:40px;margin-bottom:56px;padding-top:0;padding-bottom:16px}
.doc.wide{border-left:0;padding-left:24px}
.crumbs,.eyebrow{font-family:var(--serif);font-style:italic;letter-spacing:0;text-transform:none;font-size:16px;font-weight:400;color:#8a6f64}
.crumbs a{color:#8a6f64}
.example span{font-family:var(--serif);font-style:italic;letter-spacing:0;text-transform:none;font-size:15px;font-weight:400}
.button{border-radius:24px}
@media(max-width:820px){.doc{margin:24px 16px 48px 16px;padding-left:20px;padding-right:4px}}
/* Glossary. */
.glossary{margin:28px 0 0}
.glossary>div{padding:18px 0;border-bottom:1px solid var(--line)}
.glossary dt{font-family:var(--serif);font-size:21px;font-weight:600;margin-bottom:4px}
.glossary dd{margin:0}.glossary dd p{margin:0 0 8px}
.glossary .example{margin-top:10px}
/* The header lines up exactly with the game's, so moving between pages never shifts it. */
.top-in{display:grid;grid-template-columns:1fr auto 1fr;gap:16px}
.top-in .brand{justify-self:start}.top nav{margin:0}.top-in .pill{justify-self:end}
@media(max-width:860px){.top-in{grid-template-columns:1fr auto;height:auto;padding:10px 16px 6px;row-gap:4px}.top nav{display:flex;grid-column:1 / -1;grid-row:2;overflow-x:auto;margin:0 -8px}.top nav a:first-child{display:inline-block}.top-in .pill{display:inline-flex;padding:8px 16px;font-size:14px}}
.top .brand{line-height:1.2}.top nav a{line-height:1.4}.top .pill{line-height:1.2}
