/* Jigglow website. System fonts only, no external resources, no JavaScript, no cookies.
   Colour pairs are checked for WCAG AA contrast by site/tools/test_sitegate.py. */
:root{
  --bg:#fbfaf7;--fg:#1d1d1f;--muted:#55555c;--accent:#2c6e63;--accent-fg:#ffffff;
  --line:#d6d3c9;--card:#f1efe8;--note:#e8f1ee;--draft-bg:#fff2b8;--draft-fg:#5a4500;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#17181a;--fg:#ecece8;--muted:#a5a5ac;--accent:#7fc4b6;--accent-fg:#10201c;
    --line:#3a3c40;--card:#212326;--note:#1d2a27;--draft-bg:#4a3d00;--draft-fg:#ffe99a;
  }
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);overflow-wrap:break-word;
  font:1rem/1.65 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif}
html:lang(zh-Hant) body{line-height:1.85}
header.site,main,footer.site{max-width:46rem;margin-inline:auto;padding-inline:16px}
main{padding-top:4px;padding-bottom:32px}
a{color:var(--accent);text-underline-offset:.16em}
a:hover{text-decoration-thickness:2px}
a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:2px}
.skip{position:absolute;inset-inline-start:-999px;top:0;z-index:10;padding:8px 14px;background:var(--accent);color:var(--accent-fg)}
.skip:focus{inset-inline-start:8px;top:8px}
.draft{background:var(--draft-bg);color:var(--draft-fg);text-align:center;padding:8px 16px;font-size:.9rem}
header.site{padding-top:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.brand{font-weight:700;font-size:1.3rem;color:var(--fg);text-decoration:none;letter-spacing:.01em}
nav{display:flex;flex-wrap:wrap;gap:2px 16px;margin-top:6px;font-size:.95rem}
nav a{padding:4px 0;text-decoration:none}
nav a:hover{text-decoration:underline}
nav a[aria-current="page"]{font-weight:700;text-decoration:underline;text-decoration-thickness:2px}
nav a.lang{margin-inline-start:auto}
h1{font-size:1.9rem;line-height:1.25;margin:1.4rem 0 .5rem}
h2{font-size:1.3rem;line-height:1.3;margin:2.2rem 0 .4rem}
h3{font-size:1.05rem;line-height:1.35;margin:1.4rem 0 .2rem}
p,ul,ol,dl{margin:.6rem 0}
li{margin:.25rem 0}
.lead{font-size:1.15rem;color:var(--muted)}
.meta,.small{color:var(--muted);font-size:.9rem}
.note{background:var(--note);border:1px solid var(--line);border-inline-start:4px solid var(--accent);border-radius:8px;padding:10px 14px}
.toc{columns:2 14rem;column-gap:28px;padding-inline-start:1.3rem}
.toc li{break-inside:avoid}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:12px;list-style:none;padding:0;margin:1rem 0}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:0}
.card h3{margin-top:0}
.card p{margin-bottom:0}
.tablewrap{overflow-x:auto;margin:.8rem 0}
table{border-collapse:collapse;width:100%;font-size:.93rem}
caption{text-align:start;font-weight:600;color:var(--muted);padding:2px 0 6px}
th,td{border:1px solid var(--line);padding:6px 8px;text-align:start;vertical-align:top}
th{background:var(--card)}
code{font-size:.92em;overflow-wrap:anywhere}
footer.site{border-top:1px solid var(--line);color:var(--muted);font-size:.9rem;padding-top:12px;padding-bottom:32px}
footer.site p{margin:.35rem 0}
@media print{
  .draft,.skip,nav{display:none}
  body{background:#fff;color:#000}
  a{color:#000}
  main a[href^="http"]::after{content:" (" attr(href) ")";font-size:.85em}
  .card,.note{border-color:#999}
}
