/* Shared styling for the Puzzle Me This content pages (How to use, Privacy) */
:root {
  --page:#FFFFFF; --panel:#FFFFFF; --panel-2:#F1F3F8;
  --line:#DCE0EA; --line-2:#BFC6D6;
  --text:#14162A;      /* 15.8:1 on white */
  --soft:#2E3448;      /* 11.4:1 on white */
  --muted:#565E75;     /*  6.5:1 on white */
  --accent:#2A5600;    /*  7.4:1 on white — safe for text */
  --accent-chip:#C6F24E;  /* lime, only ever a background behind dark text */
  --cyan:#0B5FBF;      /*  6.3:1 on white */
}
* { box-sizing:border-box; }
body { margin:0; background:var(--page); color:var(--text);
       font-family:'Space Grotesk',system-ui,sans-serif; line-height:1.6;
       -webkit-font-smoothing:antialiased; }
a { color:var(--cyan); }
a:hover { color:var(--accent); }
.wrap { max-width:860px; margin:0 auto; padding:28px 20px 64px; }
header.bar { display:flex; align-items:center; gap:12px; background:var(--panel-2);
             border:1px solid var(--line); border-radius:16px; padding:10px 14px; margin-bottom:28px; }
.logo { width:36px; height:36px; border-radius:11px; background:var(--accent-chip); color:#14162A;
        display:flex; align-items:center; justify-content:center;
        font-family:'Space Mono',monospace; font-weight:700; font-size:15px; flex:0 0 auto; }
.brand { font-size:18px; font-weight:700; letter-spacing:-0.02em; }
.bar nav { margin-left:auto; display:flex; gap:8px; flex-wrap:wrap; }
.bar nav a { font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap;
             border:1px solid var(--line); border-radius:999px; padding:8px 15px; color:var(--text); }
.bar nav a:hover { border-color:var(--accent); color:var(--accent); background:#FBFCFE; }
.bar nav a[aria-current="page"] { background:var(--panel-2); border-color:var(--line-2); }
h1 { font-size:36px; line-height:1.12; letter-spacing:-0.025em; margin:0 0 8px; }
.updated { font-family:'Space Mono',monospace; font-size:12px; letter-spacing:0.08em;
           color:var(--muted); text-transform:uppercase; margin:0 0 26px; }
h2 { font-size:20px; margin:36px 0 10px; letter-spacing:-0.015em;
     padding-top:14px; border-top:1px solid var(--line); }
h3 { font-size:15px; margin:22px 0 6px; }
p { margin:0 0 14px; color:var(--soft); text-wrap:pretty; }
ul, ol { margin:0 0 14px; padding-left:22px; color:var(--soft); }
li { margin-bottom:7px; }
strong { color:var(--text); }
.lead { color:var(--text); font-size:17px; }
footer.site { margin-top:48px; padding-top:18px; border-top:1px solid var(--line);
              display:flex; flex-wrap:wrap; gap:8px 18px; font-size:12px; color:var(--muted); }
footer.site a { color:var(--soft); text-decoration:none; border-bottom:1px solid var(--line); }

/* screenshots */
figure { margin:0 0 22px; }
figure img { display:block; width:100%; height:auto; border-radius:14px;
             border:1px solid var(--line-2); background:var(--panel); }
figcaption { margin-top:8px; font-size:12.5px; color:var(--muted); }

/* numbered steps */
.step { display:grid; grid-template-columns:34px 1fr; gap:14px; margin-bottom:22px; align-items:start; }
.step .n { width:34px; height:34px; border-radius:11px; background:var(--accent); color:var(--page);
           display:flex; align-items:center; justify-content:center;
           font-family:'Space Mono',monospace; font-weight:700; font-size:15px; }
.step h3 { margin:5px 0 5px; font-size:16px; }
.step p { margin-bottom:6px; }

/* key/value feature rows */
.feature { border-top:1px solid var(--line); padding:13px 0; display:grid;
           grid-template-columns:170px 1fr; gap:6px 18px; }
.feature b { font-size:14px; color:var(--text); }
.feature span { font-size:13.5px; color:var(--soft); }

/* callout */
.note { background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--accent);
        border-radius:10px; padding:13px 16px; margin:0 0 18px; }
.note p { margin:0; font-size:13.5px; }

/* jump list */
nav.toc { background:var(--panel); border:1px solid var(--line); border-radius:14px;
          padding:14px 18px; margin:0 0 8px; }
nav.toc div { font-size:10.5px; letter-spacing:0.18em; color:var(--muted); margin-bottom:9px; }
nav.toc ul { columns:2; column-gap:26px; margin:0; padding-left:16px; font-size:13px; }
nav.toc li { margin-bottom:5px; }
nav.toc a { text-decoration:none; }


@media (max-width:600px) {
  h1 { font-size:28px; }
  .wrap { padding:16px 16px 48px; }
  nav.toc ul { columns:1; }
  .feature { grid-template-columns:1fr; gap:3px; }
  .bar { flex-wrap:wrap; }
  .bar nav { margin-left:0; width:100%; }
}

/* logo and wordmark are a link home on every page */
a.home { display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit;
         border-radius:12px; padding:2px 4px 2px 2px; }
a.home:hover { color:inherit; }
a.home:hover .brand { color:var(--accent); }
a.home:focus-visible { outline:3px solid var(--cyan); outline-offset:2px; }
.note { background:var(--panel-2); }
