:root{--ink:#221c3f;--paper:#fbf8f1;--accent:#f5c542;--plum:#4a3285;--teal:#145a50;--rust:#8f3420;--serif:Georgia,"Iowan Old Style",serif;--sans:"Trebuchet MS",system-ui,sans-serif;--radius:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.6 var(--serif)}
a{color:var(--plum)}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--rust);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--ink);padding:.5em 1em;z-index:9}.skip:focus{left:8px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.print-only{display:none}
.site-head{background:var(--ink);color:#fff}.bar{max-width:1100px;margin:auto;padding:.6em 1em;display:flex;flex-wrap:wrap;gap:.6em 1.4em;align-items:center;justify-content:space-between}
.brand{display:flex;gap:.5em;align-items:center;color:#fff;text-decoration:none;font:700 1.1rem var(--sans)}
.head-nav{display:flex;flex-wrap:wrap;gap:.3em 1em;font:600 .95rem var(--sans)}.head-nav a{color:var(--accent);text-decoration:none}
.wrap{max-width:1100px;margin:auto;padding:0 1em 2em}
.crumbs{font:.9rem var(--sans);margin:1em 0}
.hero{display:grid;gap:1.5em;align-items:center;margin:1em 0 2em}@media(min-width:800px){.hero{grid-template-columns:1.2fr 1fr}}
h1,h2,h3{font-family:var(--sans);line-height:1.2}h1{font-size:clamp(2rem,5vw,3rem);margin:.2em 0}
.tagline{font-size:1.25rem;color:var(--plum);font-style:italic}
.btns{display:flex;flex-wrap:wrap;gap:.6em}.btn,button{font:700 1rem var(--sans);background:var(--plum);color:#fff;border:0;border-radius:999px;padding:.6em 1.2em;text-decoration:none;cursor:pointer}.btn.ghost{background:transparent;color:var(--plum);border:2px solid var(--plum)}
figure{margin:0}svg{max-width:100%;height:auto;display:block}
.prose{max-width:68ch}
.toc{background:#fff;border:2px solid #e3dcc8;border-radius:var(--radius);padding:1em 1.4em;margin:1.5em 0}.toc ol{columns:2 14em;margin:.4em 0 0}
.card{background:#fff;border-radius:var(--radius);border-left:8px solid var(--accent);padding:1.1em 1.4em;margin:1.5em 0;box-shadow:0 2px 10px rgba(34,28,63,.08);max-width:76ch}
.card .kicker{font:700 .8rem var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--teal)}
.puzzle{background:#f3eefc;border-radius:10px;padding:.8em 1.1em}
details{margin:.8em 0}summary{cursor:pointer;font:700 1rem var(--sans);color:var(--plum)}
.callout{background:#e7f4f1;border-radius:var(--radius);padding:1em 1.4em;max-width:76ch}
table{border-collapse:collapse;margin:.6em 0}th,td{border:1px solid #cfc6ad;padding:.3em .7em;text-align:center;font-family:var(--sans)}
fieldset{border:2px solid #e3dcc8;border-radius:var(--radius);background:#fff;margin:1em 0;padding:1em 1.2em;max-width:76ch}legend{font:700 1.05rem var(--sans);padding:0 .3em}
fieldset label{display:block;padding:.25em 0;cursor:pointer}
.fb{font-family:var(--sans);font-weight:700;min-height:1.4em}.fb.ok{color:var(--teal)}.fb.no{color:var(--rust)}
.score{font:700 1.2rem var(--sans)}
.pager{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6em;margin:2em 0;font:600 1rem var(--sans)}
footer{background:var(--ink);color:#eee;padding:1.5em 1em;font:.95rem/1.5 var(--sans)}footer a{color:var(--accent)}footer .in{max-width:1100px;margin:auto}
.jugami-more{margin-top:.8em}
